Devuan bug report logs - #417
gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu

Package: gcc-10; Reported by: Arthur Marsh <[email protected]>; Keywords: moreinfo debian; dated Mon, 23 Mar 2020 15:03:01 UTC; Maintainer for gcc-10 is (unknown).

Message received at [email protected]:


Received: (at 417) by bugs.devuan.org; 3 Feb 2023 12:18:05 +0000
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from email.devuan.org [2001:41d0:2:d06e::5c4:2612]
	by doc.devuan.org with IMAP (fetchmail-6.4.16)
	for <debbugs@localhost> (single-drop); Fri, 03 Feb 2023 12:18:05 +0000 (UTC)
Received: from email.devuan.org
	by email.devuan.org with LMTP
	id GiKdEmH73GM2FAAAmSBk0A
	(envelope-from <[email protected]>)
	for <[email protected]>; Fri, 03 Feb 2023 12:17:37 +0000
Received: by email.devuan.org (Postfix, from userid 109)
	id 3BB6EA05; Fri,  3 Feb 2023 12:17:37 +0000 (UTC)
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on email.devuan.org
X-Spam-Level: 
X-Spam-Status: No, score=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,
	RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS autolearn=ham
	autolearn_force=no version=3.4.6
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=150.101.137.141; helo=ipmail03.adl2.internode.on.net; [email protected]; receiver=<UNKNOWN> 
Received: from ipmail03.adl2.internode.on.net (ipmail03.adl2.internode.on.net [150.101.137.141])
	by email.devuan.org (Postfix) with ESMTP id 48E42597
	for <[email protected]>; Fri,  3 Feb 2023 12:17:29 +0000 (UTC)
IronPort-SDR: qOdi5pG++A+/aMOYMIFzn9I2TeeKGHaFk0uaRoH5IsYpUY2aDq/pW939ai7wx2v4sJOQcHefTB
 ArcLVAodLiLvHEcpFBDJjNqAD6CQM8hV5S0hzzPnkfW1ynrdyuLuu9J23io+Nfm0r0XaCzA2ZO
 dSWTtnVjEZERBJxQqgZZSJe31oowPtbNtFaZP33/LY7u5UYuOpSb5ntf5QEy2wziFu9UqDCl34
 WOibyVr/2wm2c4OwJP7evSprOEduXyecqcEQmUvPqBBGSYwtRnlr4XtD+VLou3OYChnkLQ9/vf
 NHmhZOfnlCxULppPiYxClHZi
X-SMTP-MATCH: 1
X-IPAS-Result: =?us-ascii?q?A2AiBQBG+txjAPg3kwENTR4BAQsSDEAJgUiFC4ROgmKOQ?=
 =?us-ascii?q?J89DwFVBAEBhQcChScmOQUNAQIEAQEBAQMCAwEBAQEBAQMBAQYBAQEBAQEGB?=
 =?us-ascii?q?BABOlINEhw2Eh2ECQkFhxQBAQEDI2YLDQsCAiYCAlcGARKCfqpheoEyGmefW?=
 =?us-ascii?q?YFngRQtgWWLEYQwN4FVRIEVJwwDDYJnPoQiAQEgg1g5gi4EkT2LH4E3doEkD?=
 =?us-ascii?q?oFGgQsCCQIRc4EZCFM3AxkrHUADC20KPzULC0orGhsHgQYqKBUDBAQDAgYTA?=
 =?us-ascii?q?yACDSgxFAQpEw0nJmkJAgMiYgMDBCgtCT8HFREmPAdWNQEFAg8fNwYDCQMCH?=
 =?us-ascii?q?1FyLhETBQMLFSpHBAg2BQYcCSsSAggPEg8GJkMOQjc0EwaBBgsOEQNPgU4EL?=
 =?us-ascii?q?4FgBlChLl84xGg0B4N3gUwGDJ8VLoNmARKMYoZOA4wJhXqHWo91IKlwgX0zG?=
 =?us-ascii?q?i5vAYI8TwECAQEBDQECAQGOapYcYjsCBwsBAQMJjCMBAQ?=
IronPort-Data: A9a23:lsvAAKxg6ODFygNQZZR6t+dmwSrEfRIJ4+MujC+fZmUNrF6WrkVTm
 DFNWGCObKyCNzCncttzaNzj9hkAuMWAyNBmTlNu/iA0RCkV8JDLCdmXf0n9MXjCc5SSRhs5t
 Z0UZNTMcJFtZ3KN/R3F3prJ9Ckkj/vULlbf5E8oHggrGGeInQ940UoLd9YR29Iu2Z7ja++0k
 YuaT/f3YTdJ5hYtWo4qw/LbwP9QlKyaVAMw5jTSstgW1LN2vyB94KM3fcldHVOhKmVnNrLSq
 9L48V2M1jixEyHBqz+Suu2TnkUiGtY+NOUV45Zcc/DKbhNq/kTe3kunXRYRQR8/ttmHozx+4
 NdqqYOpRhkMB7zzvNk4bClmEXBBMZQTrdcrIVDn2SCS536fKSSqm7M2ShgDVWEa0r8xWD0Rs
 6FFbmpRPnhvhMrvqF6/YuB2msQ+No/uNZkEullhyy3UF/AhTZ2FRKOM49JEtNs1rpoeQKiOO
 5JIMVKDajzOQjAXH2dMAagXkcCJ1ib+SRYChFms8P9fD2/7llcviNABKuH9f9WQRu1Vn0CUo
 m/XuWPjDVcHN7S3lWPa2nixifSJkS7lRYsUUrqi+ZZXbEa7nypKVEJQCAb9+6Xp4qKjZz5BA
 04z5jU3orYXzV2UauTYYC2Goi+7sidJDrK8DNYGBBGxJrv8uljGWzRdH24cNrTKp+dzHmB7j
 A/Q9z/9LWU04ODEGCP1GqK88GvaBMQDEYMVTQY5Jefvy/DvrYU6jx7CJjqIOPPt1oWd9d3Y+
 DeXsCh2rqgIkdQC06SylW0rYg5ARbCQEWbZHi2NAgqYAvpRPeZJnbCA51nB9upnJ42EVFSHt
 3Vss5HAs71SV8jRyXLcEbtl8FSVCxCtbmK0bblHQclJythR0yP6FWytyGgleRk2a5dZEdMXS
 BaP4V8NtPe/w0dGnYctONzpYyjb5bTtEc/5TPmcb9xSb4J3eRPvwc2dTRH44owZq2BxzPFXB
 HtuWYP1VS5y5VJPnWXtHI/wENYDn0gD+I8kbcmqnk33jubPPCH9pHVsGALmU93VJZis+G39m
 +uz/ePRo/mGeOGhMCTR76AJKlUGcSoyCZzs8pIFd+ifLxBgH20sTfjXh7UsZ9U9zahSk+7J+
 FC7W1NZkQSg3y2cdVvRO30zOqnyWZtfrG4gOXJ+MFut3U8lPdSl4pAAJsk+crQQ/eB+yeJ5E
 qsecMKaD/UUFTnKomxPbZT0oIF4Wg6sgAaCY3isbDQlJsAyRgrV98XieQfisi4ISCy6qZJm8
 bGn0wraR7sFRhhjVZiJMqL0kw3q7HVEwbB8RUrFJNVXaX7AyokyJnyjlOIzLuENNQ7HmGmX2
 gOQNhFE9+PDlJBkotDGiJeNo5qtD+YjTFFRGHPW7O3pOCTX8wJPG2ObvDpkoNwFaF7JxQ==
IronPort-HdrOrdr: A9a23:Onuodq7YXC0j6My27QPXwN3XdLJyesId70hD6qkXc20xTiX4rb
 HNoB1173TJYVoqMk3I3OrvBEDiewK+yXcW2+ks1N6ZNWHbUSmTTb2KhrGP/9SPIUDDH6Jmup
 tdTw==
X-IronPort-Anti-Spam-Filtered: true
Received: from unknown (HELO [127.0.0.1]) ([1.147.55.248])
  by ipmail03.adl2.internode.on.net with ESMTP; 03 Feb 2023 22:47:19 +1030
Date: Fri, 03 Feb 2023 22:47:15 +1030
From: Arthur Marsh <[email protected]>
To: Mark Hindley <[email protected]>, [email protected]
Subject: =?US-ASCII?Q?Re=3A_bug=23417=3A_gcc-10=3A_internal_compiler_er?= =?US-ASCII?Q?ror_building_kernel_5=2E6=2E0-rc7_with_amdgpu?=
User-Agent: K-9 Mail for Android
In-Reply-To: <[email protected]>
References: <158497486864.17367.14059265919888444783.reportbug@localhost> <[email protected]> <[email protected]>
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

No=2E

I am currently building kernels with gcc-12=2E

Regards,

Arthur=2E=20

On 3 February 2023 10:10:45 pm ACDT, Mark Hindley <mark@hindley=2Eorg=2Euk=
> wrote:
>Control: tags -1 moreinfo
>
>Arthur,
>
>Is this still an issue?
>
>Mark

--=20
Sent from my Android device with K-9 Mail=2E Please excuse my brevity=2E

Acknowledgement sent to Arthur Marsh <[email protected]>:
Extra info received and forwarded to list. Copy sent to [email protected]. Full text available.
Information forwarded to [email protected], [email protected]:
bug#417; Package gcc-10. Full text available.
Added tag(s) moreinfo. Request was from Mark Hindley <[email protected]> to [email protected]. Full text available.

Message received at [email protected]:


Received: (at 417) by bugs.devuan.org; 3 Feb 2023 11:41:37 +0000
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from email.devuan.org [2001:41d0:2:d06e::5c4:2612]
	by doc.devuan.org with IMAP (fetchmail-6.4.16)
	for <debbugs@localhost> (single-drop); Fri, 03 Feb 2023 11:41:37 +0000 (UTC)
Received: from email.devuan.org
	by email.devuan.org with LMTP
	id GwmuIsDy3GOAEwAAmSBk0A
	(envelope-from <[email protected]>)
	for <[email protected]>; Fri, 03 Feb 2023 11:40:48 +0000
Received: by email.devuan.org (Postfix, from userid 109)
	id 7D58AA04; Fri,  3 Feb 2023 11:40:48 +0000 (UTC)
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on email.devuan.org
X-Spam-Level: 
X-Spam-Status: No, score=0.4 required=5.0 tests=RDNS_DYNAMIC,SPF_PASS
	autolearn=no autolearn_force=no version=3.4.6
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=193.36.131.86; helo=mx.hindley.org.uk; [email protected]; receiver=<UNKNOWN> 
Received: from mx.hindley.org.uk (193-36-131-86.cfwn.uk [193.36.131.86])
	by email.devuan.org (Postfix) with ESMTPS id 3153D393
	for <[email protected]>; Fri,  3 Feb 2023 11:40:47 +0000 (UTC)
Received: from apollo.hindleynet ([192.168.1.3] helo=hindley.org.uk)
	by mx.hindley.org.uk with smtp (Exim 4.84_2)
	(envelope-from <[email protected]>)
	id 1pNuQv-0002mz-IW; Fri, 03 Feb 2023 11:40:45 +0000
Received: (nullmailer pid 1665 invoked by uid 1000);
	Fri, 03 Feb 2023 11:40:45 -0000
Date: Fri, 3 Feb 2023 11:40:45 +0000
From: Mark Hindley <[email protected]>
To: [email protected]
Cc: Arthur Marsh <[email protected]>
Subject: Re: bug#417: gcc-10: internal compiler error building kernel
 5.6.0-rc7 with amdgpu
Message-ID: <[email protected]>
References: <158497486864.17367.14059265919888444783.reportbug@localhost>
 <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <[email protected]>
X-Debbugs-No-Ack: No Thanks

Control: tags -1 moreinfo

Arthur,

Is this still an issue?

Mark

Information forwarded to [email protected], [email protected]:
bug#417; Package gcc-10. Full text available.
Added tag(s) debian. Request was from Mark Hindley <[email protected]> to [email protected]. Full text available.

Message received at [email protected]:


Received: (at 417) by bugs.devuan.org; 23 Mar 2020 16:50:05 +0000
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from tupac3.dyne.org [195.169.149.119]
	by doc.devuan.org with IMAP (fetchmail-6.4.0.beta4)
	for <debbugs@localhost> (single-drop); Mon, 23 Mar 2020 16:50:05 +0000 (UTC)
Received: from mx.hindley.org.uk (mohindley.plus.com [81.174.245.179])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by vm6.ganeti.dyne.org (Postfix) with ESMTPS id 97E4DF60B28
	for <[email protected]>; Mon, 23 Mar 2020 17:38:36 +0100 (CET)
Received: from apollo.hindleynet ([192.168.1.3] helo=apollo)
	by mx.hindley.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
	(Exim 4.84_2)
	(envelope-from <[email protected]>)
	id 1jGQ5x-0000F3-EA; Mon, 23 Mar 2020 16:38:33 +0000
Received: from mark by apollo with local (Exim 4.84_2)
	(envelope-from <[email protected]>)
	id 1jGQ5w-00040M-2L; Mon, 23 Mar 2020 16:38:32 +0000
Date: Mon, 23 Mar 2020 16:38:31 +0000
From: Mark Hindley <[email protected]>
To: [email protected]
Cc: Arthur Marsh <[email protected]>
Subject: Re: gcc-10: internal compiler error building kernel 5.6.0-rc7 with
 amdgpu
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <158497486864.17367.14059265919888444783.reportbug@localhost>
X-Debbugs-No-Ack: No Thanks
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Spam-Status: No, score=0.0 required=5.0 tests=FAKE_REPLY_C,SPF_PASS
	autolearn=disabled version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tupac3.dyne.org

Control: tags -1 debian

On Tue, 24 Mar 2020 01:17:48 +1030 Arthur Marsh <[email protected]> wrote:
> Package: gcc-10
> Version: 10-20200321-1
> Severity: normal
> 

Arthur,

Thanks for this.

However, gcc-10 is not a forked package and Devuan uses the Debian 
pacakges directly. You would be much better reporting this directly to 
Debian's BTS so it can be fixed.

Thanks

Mark

Information forwarded to [email protected], [email protected]:
bug#417; Package gcc-10. Full text available.

Message received at [email protected]:


Received: (at submit) by bugs.devuan.org; 23 Mar 2020 14:50:06 +0000
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from tupac3.dyne.org [195.169.149.119]
	by doc.devuan.org with IMAP (fetchmail-6.4.0.beta4)
	for <debbugs@localhost> (single-drop); Mon, 23 Mar 2020 14:50:06 +0000 (UTC)
Received: from ipmail05.adl3.internode.on.net (ipmail05.adl3.internode.on.net [150.101.137.13])
	by vm6.ganeti.dyne.org (Postfix) with ESMTP id 4DF13F60B07
	for <[email protected]>; Mon, 23 Mar 2020 15:47:59 +0100 (CET)
X-IronPort-Anti-Spam-NotFiltered: toobig
Received: from ppp227-106.static.internode.on.net (HELO localhost) ([203.122.227.106])
  by ipmail05.adl3.internode.on.net with ESMTP; 24 Mar 2020 01:17:53 +1030
Received: from amarsh04 by localhost with local (Exim 4.93)
	(envelope-from <[email protected]>)
	id 1jGOMm-0006Um-Tp; Tue, 24 Mar 2020 01:17:51 +1030
Content-Type: multipart/mixed; boundary="===============2530410277144048522=="
MIME-Version: 1.0
From: Arthur Marsh <[email protected]>
To: Devuan Bug Tracking System <[email protected]>
Subject: gcc-10: internal compiler error building kernel 5.6.0-rc7 with amdgpu
Message-ID: <158497486864.17367.14059265919888444783.reportbug@localhost>
X-Mailer: reportbug 7.5.3+devuan3
Date: Tue, 24 Mar 2020 01:17:48 +1030

This is a multi-part MIME message sent by reportbug.


--===============2530410277144048522==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Package: gcc-10
Version: 10-20200321-1
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

After upgrading gcc-10, the Linux kernel failed to build

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

removing the amdgpu option from the kernel build allowed the build to complete.


   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***


-- System Information:
Distributor ID:	Debian
Description:	Devuan GNU/Linux 4 (chimaera/ceres)
Release:	testing/unstable
Codename:	n/a
Architecture: x86_64

Kernel: Linux 5.6.0-rc6+ (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: sysvinit (via /sbin/init)

Versions of packages gcc-10 depends on:
ii  binutils       2.34-5
ii  cpp-10         10-20200321-1
ii  gcc-10-base    10-20200321-1
ii  libc6          2.30-2
ii  libcc1-0       10-20200321-1
ii  libgcc-10-dev  10-20200321-1
ii  libgcc-s1      10-20200321-1
ii  libgmp10       2:6.2.0+dfsg-4
ii  libisl22       0.22.1-1
ii  libmpc3        1.1.0-1
ii  libmpfr6       4.0.2-1
ii  libstdc++6     10-20200321-1
ii  libzstd1       1.4.4+dfsg-3
ii  zlib1g         1:1.2.11.dfsg-2

Versions of packages gcc-10 recommends:
ii  libc6-dev  2.30-2

Versions of packages gcc-10 suggests:
pn  gcc-10-doc       <none>
pn  gcc-10-locales   <none>
pn  gcc-10-multilib  <none>

-- no debconf information

--===============2530410277144048522==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="20200324.log"

VXNpbmcgZGVmYXVsdCBkaXN0cmlidXRpb24gb2YgJ3Vuc3RhYmxlJyBpbiB0aGUgY2hhbmdlbG9n
Ckluc3RhbGwgbHNiLXJlbGVhc2Ugb3Igc2V0ICRLREVCX0NIQU5HRUxPR19ESVNUIGV4cGxpY2l0
bHkKG1sxbWRwa2ctYnVpbGRwYWNrYWdlOiAbWzBtG1sxOzMzbXdhcm5pbmcbWzBtOiB1c2luZyBh
IGdhaW4tcm9vdC1jb21tYW5kIHdoaWxlIGJlaW5nIHJvb3QKG1sxOzM1bSBkcGtnLXNvdXJjZSAt
LWJlZm9yZS1idWlsZCAuChtbMG0bWzE7MzVtIGRlYmlhbi9ydWxlcyBidWlsZAobWzBtZHVyaW5n
IFJUTCBwYXNzOiBjb21iaW5lCmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmM6IEluIGZ1bmN0aW9uIOKAmHJuX3VwZGF0ZV9j
bG9ja3PigJk6CmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21n
ci9kY24yMS9ybl9jbGtfbWdyLmM6MTkzOjE6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiBpbiBp
eDg2X2NjX21vZGUsIGF0IGNvbmZpZy9pMzg2L2kzODYuYzoxNTI4NQogIDE5MyB8IH0KICAgICAg
fCBeCjB4NWQwNmEyIGl4ODZfY2NfbW9kZShydHhfY29kZSwgcnR4X2RlZiosIHJ0eF9kZWYqKQoJ
Li4vLi4vc3JjL2djYy9jb25maWcvaTM4Ni9pMzg2LmM6MTUyODUKMHgxMjc4ZGUyIHNpbXBsaWZ5
X3NldAoJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6NjkzOAoweDEyN2M0NmEgc3Vic3QKCS4uLy4u
L3NyYy9nY2MvY29tYmluZS5jOjU3MTkKMHgxMjdjNWZjIHN1YnN0CgkuLi8uLi9zcmMvZ2NjL2Nv
bWJpbmUuYzo1NTgxCjB4MTI3ZTdjOSB0cnlfY29tYmluZQoJLi4vLi4vc3JjL2djYy9jb21iaW5l
LmM6MzQ3OQoweDEyODQ3NzIgY29tYmluZV9pbnN0cnVjdGlvbnMKCS4uLy4uL3NyYy9nY2MvY29t
YmluZS5jOjE0NjkKMHgxMjg0NzcyIHJlc3Rfb2ZfaGFuZGxlX2NvbWJpbmUKCS4uLy4uL3NyYy9n
Y2MvY29tYmluZS5jOjE1MDU5CjB4MTI4NDc3MiBleGVjdXRlCgkuLi8uLi9zcmMvZ2NjL2NvbWJp
bmUuYzoxNTEwNApQbGVhc2Ugc3VibWl0IGEgZnVsbCBidWcgcmVwb3J0LAp3aXRoIHByZXByb2Nl
c3NlZCBzb3VyY2UgaWYgYXBwcm9wcmlhdGUuClBsZWFzZSBpbmNsdWRlIHRoZSBjb21wbGV0ZSBi
YWNrdHJhY2Ugd2l0aCBhbnkgYnVnIHJlcG9ydC4KU2VlIDxmaWxlOi8vL3Vzci9zaGFyZS9kb2Mv
Z2NjLTEwL1JFQURNRS5CdWdzPiBmb3IgaW5zdHJ1Y3Rpb25zLgpQcmVwcm9jZXNzZWQgc291cmNl
IHN0b3JlZCBpbnRvIC90bXAvY2NGcEMxa0Qub3V0IGZpbGUsIHBsZWFzZSBhdHRhY2ggdGhpcyB0
byB5b3VyIGJ1Z3JlcG9ydC4KPT09IEJFR0lOIEdDQyBEVU1QID09PQoxNDQ3NDogLy8gVGFyZ2V0
OiB4ODZfNjQtbGludXgtZ251CjE0NDc0OiAvLyBDb25maWd1cmVkIHdpdGg6IC4uL3NyYy9jb25m
aWd1cmUgLXYgLS13aXRoLXBrZ3ZlcnNpb249J0RlYmlhbiAxMC0yMDIwMDMyMS0xJyAtLXdpdGgt
YnVndXJsPWZpbGU6Ly8vdXNyL3NoYXJlL2RvYy9nY2MtMTAvUkVBRE1FLkJ1Z3MgLS1lbmFibGUt
bGFuZ3VhZ2VzPWMsYysrLGdvLGJyaWcsZCxmb3J0cmFuLG9iamMsb2JqLWMrKyxtMiAtLXByZWZp
eD0vdXNyIC0td2l0aC1nY2MtbWFqb3ItdmVyc2lvbi1vbmx5IC0tcHJvZ3JhbS1zdWZmaXg9LTEw
IC0tcHJvZ3JhbS1wcmVmaXg9eDg2XzY0LWxpbnV4LWdudS0gLS1lbmFibGUtc2hhcmVkIC0tZW5h
YmxlLWxpbmtlci1idWlsZC1pZCAtLWxpYmV4ZWNkaXI9L3Vzci9saWIgLS13aXRob3V0LWluY2x1
ZGVkLWdldHRleHQgLS1lbmFibGUtdGhyZWFkcz1wb3NpeCAtLWxpYmRpcj0vdXNyL2xpYiAtLWVu
YWJsZS1ubHMgLS1lbmFibGUtY2xvY2FsZT1nbnUgLS1lbmFibGUtbGlic3RkY3h4LWRlYnVnIC0t
ZW5hYmxlLWxpYnN0ZGN4eC10aW1lPXllcyAtLXdpdGgtZGVmYXVsdC1saWJzdGRjeHgtYWJpPW5l
dyAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSAtLWVu
YWJsZS1wbHVnaW4gLS1lbmFibGUtZGVmYXVsdC1waWUgLS13aXRoLXN5c3RlbS16bGliIC0td2l0
aC10YXJnZXQtc3lzdGVtLXpsaWI9YXV0byAtLWVuYWJsZS1vYmpjLWdjPWF1dG8gLS1lbmFibGUt
bXVsdGlhcmNoIC0tZGlzYWJsZS13ZXJyb3IgLS13aXRoLWFyY2gtMzI9aTY4NiAtLXdpdGgtYWJp
PW02NCAtLXdpdGgtbXVsdGlsaWItbGlzdD1tMzIsbTY0LG14MzIgLS1lbmFibGUtbXVsdGlsaWIg
LS13aXRoLXR1bmU9Z2VuZXJpYyAtLWVuYWJsZS1vZmZsb2FkLXRhcmdldHM9bnZwdHgtbm9uZSxh
bWRnY24tYW1kaHNhLGhzYSAtLXdpdGhvdXQtY3VkYS1kcml2ZXIgLS1lbmFibGUtY2hlY2tpbmc9
cmVsZWFzZSAtLWJ1aWxkPXg4Nl82NC1saW51eC1nbnUgLS1ob3N0PXg4Nl82NC1saW51eC1nbnUg
LS10YXJnZXQ9eDg2XzY0LWxpbnV4LWdudQoxNDQ3NDogLy8gVGhyZWFkIG1vZGVsOiBwb3NpeAox
NDQ3NDogLy8gU3VwcG9ydGVkIExUTyBjb21wcmVzc2lvbiBhbGdvcml0aG1zOiB6bGliIHpzdGQK
MTQ0NzQ6IC8vIGdjYyB2ZXJzaW9uIDEwLjAuMSAyMDIwMDMyMSAoZXhwZXJpbWVudGFsKSBbbWFz
dGVyIHJldmlzaW9uIDE1NzExZTgzN2IyOmFiNjU4NmNiMDI0OjQ5NzQ5OGM4NzhkNDg3NTQzMThl
NDg2NDI4ZTJhYTMwODU0MDIwYjldIChEZWJpYW4gMTAtMjAyMDAzMjEtMSkgCjE0NDc0OiAvLyAK
MTQ0NzQ6IC8vIGR1cmluZyBSVEwgcGFzczogY29tYmluZQoxNDQ3NDogLy8gZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYzog
SW4gZnVuY3Rpb24g4oCYcm5fdXBkYXRlX2Nsb2Nrc+KAmToKMTQ0NzQ6IC8vIGRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmM6
MTkzOjE6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiBpbiBpeDg2X2NjX21vZGUsIGF0IGNvbmZp
Zy9pMzg2L2kzODYuYzoxNTI4NQoxNDQ3NDogLy8gICAxOTMgfCB9CjE0NDc0OiAvLyAgICAgICB8
IF4KMTQ0NzQ6IC8vIDB4NWQwNmEyIGl4ODZfY2NfbW9kZShydHhfY29kZSwgcnR4X2RlZiosIHJ0
eF9kZWYqKQoxNDQ3NDogLy8gCS4uLy4uL3NyYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jOjE1Mjg1
CjE0NDc0OiAvLyAweDEyNzhkZTIgc2ltcGxpZnlfc2V0CjE0NDc0OiAvLyAJLi4vLi4vc3JjL2dj
Yy9jb21iaW5lLmM6NjkzOAoxNDQ3NDogLy8gMHgxMjdjNDZhIHN1YnN0CjE0NDc0OiAvLyAJLi4v
Li4vc3JjL2djYy9jb21iaW5lLmM6NTcxOQoxNDQ3NDogLy8gMHgxMjdjNWZjIHN1YnN0CjE0NDc0
OiAvLyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6NTU4MQoxNDQ3NDogLy8gMHgxMjdlN2M5IHRy
eV9jb21iaW5lCjE0NDc0OiAvLyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6MzQ3OQoxNDQ3NDog
Ly8gMHgxMjg0NzcyIGNvbWJpbmVfaW5zdHJ1Y3Rpb25zCjE0NDc0OiAvLyAJLi4vLi4vc3JjL2dj
Yy9jb21iaW5lLmM6MTQ2OQoxNDQ3NDogLy8gMHgxMjg0NzcyIHJlc3Rfb2ZfaGFuZGxlX2NvbWJp
bmUKMTQ0NzQ6IC8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNTA1OQoxNDQ3NDogLy8gMHgx
Mjg0NzcyIGV4ZWN1dGUKMTQ0NzQ6IC8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNTEwNAox
NDQ3NDogLy8gUGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCwKMTQ0NzQ6IC8vIHdpdGgg
cHJlcHJvY2Vzc2VkIHNvdXJjZSBpZiBhcHByb3ByaWF0ZS4KMTQ0NzQ6IC8vIFBsZWFzZSBpbmNs
dWRlIHRoZSBjb21wbGV0ZSBiYWNrdHJhY2Ugd2l0aCBhbnkgYnVnIHJlcG9ydC4KMTQ0NzQ6IC8v
IFNlZSA8ZmlsZTovLy91c3Ivc2hhcmUvZG9jL2djYy0xMC9SRUFETUUuQnVncz4gZm9yIGluc3Ry
dWN0aW9ucy4KMTQ0NzQ6IAoxNDQ3NDogLy8gL3Vzci9saWIvZ2NjL3g4Nl82NC1saW51eC1nbnUv
MTAvY2MxIC1xdWlldCAtbm9zdGRpbmMgLUkgLi9hcmNoL3g4Ni9pbmNsdWRlIC1JIC4vYXJjaC94
ODYvaW5jbHVkZS9nZW5lcmF0ZWQgLUkgLi9pbmNsdWRlIC1JIC4vYXJjaC94ODYvaW5jbHVkZS91
YXBpIC1JIC4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSSAuL2luY2x1ZGUvdWFw
aSAtSSAuL2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9wb3dlcnBsYXkvaW5jLyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2luY2x1ZGUvYXNpY19yZWcgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNs
dWRlIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L3NtdW1nciAt
SSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL3Bvd2VycGxheS9od21nciAtSSAuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jLyAtSSAuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3IC1JIC4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyIC1JIC4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9tb2R1bGVzL2luYyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9mcmVlc3luYyAtSSAuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9jb2xvciAtSSAuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9pbmZvX3BhY2tldCAtSSAuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9wb3dlciAtSSAuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZG11Yi9pbmMgLUkgLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vaW5jbHVkZS9hc2ljX3JlZyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2luY2x1ZGUgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9hbWRncHUgLUkgLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9wb3dlcnBsYXkvaW5jIC1JIC4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vYWNwL2luY2x1ZGUgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5IC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9pbmNsdWRlIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
YyAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtIC1J
IC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vYW1ka2ZkIC1pbXVsdGlhcmNoIHg4Nl82
NC1saW51eC1nbnUgLUQgX19LRVJORUxfXyAtRCBDT05GSUdfQVNfQ0ZJPTEgLUQgQ09ORklHX0FT
X0NGSV9TSUdOQUxfRlJBTUU9MSAtRCBDT05GSUdfQVNfQ0ZJX1NFQ1RJT05TPTEgLUQgQ09ORklH
X0FTX1NTU0UzPTEgLUQgQ09ORklHX0FTX0FWWD0xIC1EIENPTkZJR19BU19BVlgyPTEgLUQgQ09O
RklHX0FTX0FWWDUxMj0xIC1EIENPTkZJR19BU19TSEExX05JPTEgLUQgQ09ORklHX0FTX1NIQTI1
Nl9OST0xIC1EIENPTkZJR19BU19BRFg9MSAtRCBDQ19VU0lOR19GRU5UUlkgLUQgQlVJTERfRkVB
VFVSRV9USU1JTkdfU1lOQz0wIC1EIE1PRFVMRSAtRCBLQlVJTERfQkFTRU5BTUU9InJuX2Nsa19t
Z3IiIC1EIEtCVUlMRF9NT0ROQU1FPSJhbWRncHUiIC1pc3lzdGVtIC91c3IvbGliL2djYy94ODZf
NjQtbGludXgtZ251LzEwL2luY2x1ZGUgLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2tjb25maWcu
aCAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCAtTUQgZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxLy5ybl9jbGtfbWdy
Lm8uZCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21nci5jIC1xdWlldCAtZHVtcGJhc2Ugcm5fY2xrX21nci5jIC1tbm8tc3NlIC1t
bm8tbW14IC1tbm8tc3NlMiAtbW5vLTNkbm93IC1tbm8tYXZ4IC1tNjQgLW1uby04MDM4NyAtbW5v
LWZwLXJldC1pbi0zODcgLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9MyAtbXNraXAtcmF4LXNl
dHVwIC1tYXJjaD1rOCAtbW5vLXJlZC16b25lIC1tY21vZGVsPWtlcm5lbCAtbWluZGlyZWN0LWJy
YW5jaD10aHVuay1leHRlcm4gLW1pbmRpcmVjdC1icmFuY2gtcmVnaXN0ZXIgLW1yZWNvcmQtbWNv
dW50IC1tZmVudHJ5IC1hdXhiYXNlLXN0cmlwIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLm8gLU8yIC1XYWxsIC1XdW5kZWYg
LVdlcnJvcj1zdHJpY3QtcHJvdG90eXBlcyAtV25vLXRyaWdyYXBocyAtV2Vycm9yPWltcGxpY2l0
LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1XZXJyb3I9aW1wbGljaXQtaW50IC1Xbm8tZm9ybWF0LXNl
Y3VyaXR5IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tZnJhbWUtYWRkcmVzcyAtV2Zvcm1hdC10cnVu
Y2F0aW9uPTAgLVdmb3JtYXQtb3ZlcmZsb3c9MCAtV25vLWFkZHJlc3Mtb2YtcGFja2VkLW1lbWJl
ciAtV2ZyYW1lLWxhcmdlci10aGFuPTIwNDggLVduby11bnVzZWQtYnV0LXNldC12YXJpYWJsZSAt
V2ltcGxpY2l0LWZhbGx0aHJvdWdoPTMgLVd1bnVzZWQtY29uc3QtdmFyaWFibGU9MCAtV2RlY2xh
cmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV3ZsYSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXN0cmlu
Z29wLXRydW5jYXRpb24gLVdlcnJvcj1kYXRlLXRpbWUgLVdlcnJvcj1pbmNvbXBhdGlibGUtcG9p
bnRlci10eXBlcyAtV2Vycm9yPWRlc2lnbmF0ZWQtaW5pdCAtV25vLXBhY2tlZC1ub3QtYWxpZ25l
ZCAtc3RkPWdudTkwIC1wIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1mc2hvcnQt
d2NoYXIgLWZuby1QSUUgLWZhbGlnbi1qdW1wcz0xIC1mYWxpZ24tbG9vcHM9MSAtZm5vLWFzeW5j
aHJvbm91cy11bndpbmQtdGFibGVzIC1mbm8tanVtcC10YWJsZXMgLWZuby1kZWxldGUtbnVsbC1w
b2ludGVyLWNoZWNrcyAtZnN0YWNrLXByb3RlY3RvciAtZm5vLXZhci10cmFja2luZy1hc3NpZ25t
ZW50cyAtZm5vLXN0cmljdC1vdmVyZmxvdyAtZm5vLW1lcmdlLWFsbC1jb25zdGFudHMgLWZtZXJn
ZS1jb25zdGFudHMgLWZzdGFjay1jaGVjaz1ubyAtZmNvbnNlcnZlLXN0YWNrIC1mbWFjcm8tcHJl
Zml4LW1hcD0uLz0gLWZjZi1wcm90ZWN0aW9uPW5vbmUgLW8gLSAtZnJhbmRvbS1zZWVkPTAgLWZk
dW1wLW5vYWRkcgoxNDQ3NDogCjE0NDc0OiAjIDEgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiCjE0NDc0OiAjIDEgIjxi
dWlsdC1pbj4iCjE0NDc0OiAjIDEgIjxjb21tYW5kLWxpbmU+IgoxNDQ3NDogIyAxICIuLy4vaW5j
bHVkZS9saW51eC9rY29uZmlnLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIyAxICIuL2luY2x1ZGUvZ2VuZXJhdGVkL2F1dG9jb25mLmgiIDEKMTQ0NzQ6ICMgNiAi
Li8uL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIiAyCjE0NDc0OiAjIDEgIjxjb21tYW5kLWxpbmU+
IiAyCjE0NDc0OiAjIDEgIi4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDEKMTQ0
NzQ6ICMgNTkgIi4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9saW51eC9jb21waWxlcl9hdHRyaWJ1dGVzLmgiIDEKMTQ0NzQ6ICMgNjAgIi4v
Li9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNjggIi4vLi9pbmNs
dWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9j
b21waWxlci1nY2MuaCIgMQoxNDQ3NDogIyA2OSAiLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJf
dHlwZXMuaCIgMgoxNDQ3NDogIyA4NSAiLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMu
aCIKMTQ0NzQ6IHN0cnVjdCBmdHJhY2VfYnJhbmNoX2RhdGEgewoxNDQ3NDogIGNvbnN0IGNoYXIg
KmZ1bmM7CjE0NDc0OiAgY29uc3QgY2hhciAqZmlsZTsKMTQ0NzQ6ICB1bnNpZ25lZCBsaW5lOwox
NDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHVuc2lnbmVkIGxvbmcg
Y29ycmVjdDsKMTQ0NzQ6ICAgIHVuc2lnbmVkIGxvbmcgaW5jb3JyZWN0OwoxNDQ3NDogICB9Owox
NDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBtaXNzOwoxNDQ3NDogICAg
dW5zaWduZWQgbG9uZyBoaXQ7CjE0NDc0OiAgIH07CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbWlz
c19oaXRbMl07CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmdHJh
Y2VfbGlrZWx5X2RhdGEgewoxNDQ3NDogIHN0cnVjdCBmdHJhY2VfYnJhbmNoX2RhdGEgZGF0YTsK
MTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGNvbnN0YW50OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMSAiPGNv
bW1hbmQtbGluZT4iIDIKMTQ0NzQ6ICMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKMTQ0NzQ6ICMgMjYgImRyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtf
bWdyLmMiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvZGNjZy5oIiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2RjY2cuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDEKMTQ0NzQ6ICMg
MzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5o
IgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
b3NfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL29zX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9rZ2Ri
LmgiIDEKMTQ0NzQ6ICMgMTYgIi4vaW5jbHVkZS9saW51eC9rZ2RiLmgiCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCIgMQoxNDQ3NDog
IyA2ICIuL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9zdHJpbmdpZnkuaCIgMQoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvbGludXgvbGlua2FnZS5o
IiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9leHBvcnQuaCIgMQoxNDQ3NDogIyAxNiAi
Li9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtb2R1bGUgX190
aGlzX21vZHVsZTsKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS9saW51eC9leHBvcnQuaCIKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDEKMTQ0NzQ6ICMgMTgwICIuL2luY2x1
ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvdHlw
ZXMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vdHlwZXMuaCIgMQoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy90eXBlcy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9pbnQtbGw2NC5oIiAxCjE0NDc0OiAjIDExICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50
LWxsNjQuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW50LWxsNjQu
aCIgMQoxNDQ3NDogIyAxMiAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIK
MTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2JpdHNwZXJsb25nLmgiIDEK
MTQ0NzQ6ICMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9iaXRzcGVybG9uZy5oIgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0c3BlcmxvbmcuaCIgMQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1n
ZW5lcmljL2JpdHNwZXJsb25nLmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmlj
L2JpdHNwZXJsb25nLmgiIDIKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2Fz
bS9iaXRzcGVybG9uZy5oIiAyCjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9pbnQtbGw2NC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX19zaWduZWRfXyBjaGFyIF9fczg7CjE0NDc0
OiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191ODsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX3Np
Z25lZF9fIHNob3J0IF9fczE2OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsK
MTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX3NpZ25lZF9fIGludCBfX3MzMjsKMTQ0NzQ6IHR5cGVk
ZWYgdW5zaWduZWQgaW50IF9fdTMyOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcgbG9uZyBfX3M2NDsKMTQ0NzQ6IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX191NjQ7CjE0NDc0OiAjIDEyICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB0eXBlZGVmIF9fczggczg7CjE0NDc0OiB0eXBlZGVmIF9fdTggdTg7CjE0NDc0
OiB0eXBlZGVmIF9fczE2IHMxNjsKMTQ0NzQ6IHR5cGVkZWYgX191MTYgdTE2OwoxNDQ3NDogdHlw
ZWRlZiBfX3MzMiBzMzI7CjE0NDc0OiB0eXBlZGVmIF9fdTMyIHUzMjsKMTQ0NzQ6IHR5cGVkZWYg
X19zNjQgczY0OwoxNDQ3NDogdHlwZWRlZiBfX3U2NCB1NjQ7CjE0NDc0OiAjIDggIi4vaW5jbHVk
ZS91YXBpL2FzbS1nZW5lcmljL3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAyCjE0NDc0OiAjIDYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMTQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3R5
cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Bvc2l4X3R5cGVzLmgiIDEK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvc3RkZGVmLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zdGRkZWYuaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUv
bGludXgvc3RkZGVmLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSB7CjE0NDc0OiAgZmFsc2UgPSAwLAoxNDQ3NDogIHRydWUgPSAxCjE0NDc0OiB9OwoxNDQ3
NDogIyA2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9wb3NpeF90eXBlcy5oIiAyCjE0NDc0OiAjIDI1
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9wb3NpeF90eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1
Y3QgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmRzX2JpdHNbMTAyNCAvICg4ICogc2l6ZW9mKGxv
bmcpKV07CjE0NDc0OiB9IF9fa2VybmVsX2ZkX3NldDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0
eXBlZGVmIHZvaWQgKCpfX2tlcm5lbF9zaWdoYW5kbGVyX3QpKGludCk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogdHlwZWRlZiBpbnQgX19rZXJuZWxfa2V5X3Q7CjE0NDc0OiB0eXBlZGVmIGludCBf
X2tlcm5lbF9tcWRfdDsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3Bvc2l4X3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcG9zaXhfdHlwZXNfNjQuaCIgMQoxNDQ3
NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3Bvc2l4X3R5cGVzXzY0LmgiCjE0
NDc0OiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX29sZF91aWRfdDsKMTQ0NzQ6IHR5
cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfb2xkX2dpZF90OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX2tlcm5lbF9vbGRfZGV2X3Q7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90eXBl
cy5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90eXBl
cy5oIgoxNDQ3NDogdHlwZWRlZiBsb25nIF9fa2VybmVsX2xvbmdfdDsKMTQ0NzQ6IHR5cGVkZWYg
dW5zaWduZWQgbG9uZyBfX2tlcm5lbF91bG9uZ190OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdHlwZWRlZiBfX2tlcm5lbF91bG9uZ190IF9fa2VybmVsX2lub190OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfbW9kZV90
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBpbnQgX19rZXJuZWxfcGlk
X3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludCBfX2tlcm5lbF9p
cGNfcGlkX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVk
IGludCBfX2tlcm5lbF91aWRfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVs
X2dpZF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9s
b25nX3QgX19rZXJuZWxfc3VzZWNvbmRzX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiB0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfdWlkMzJfdDsKMTQ0NzQ6IHR5cGVk
ZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX2dpZDMyX3Q7CjE0NDc0OiAjIDcyICIuL2luY2x1ZGUv
dWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF91
bG9uZ190IF9fa2VybmVsX3NpemVfdDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfbG9uZ190IF9f
a2VybmVsX3NzaXplX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9w
dHJkaWZmX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYg
c3RydWN0IHsKMTQ0NzQ6ICBpbnQgdmFsWzJdOwoxNDQ3NDogfSBfX2tlcm5lbF9mc2lkX3Q7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX2tl
cm5lbF9sb25nX3QgX19rZXJuZWxfb2ZmX3Q7CjE0NDc0OiB0eXBlZGVmIGxvbmcgbG9uZyBfX2tl
cm5lbF9sb2ZmX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9vbGRf
dGltZV90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBsb25nIGxvbmcg
X19rZXJuZWxfdGltZTY0X3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5l
bF9jbG9ja190OwoxNDQ3NDogdHlwZWRlZiBpbnQgX19rZXJuZWxfdGltZXJfdDsKMTQ0NzQ6IHR5
cGVkZWYgaW50IF9fa2VybmVsX2Nsb2NraWRfdDsKMTQ0NzQ6IHR5cGVkZWYgY2hhciAqIF9fa2Vy
bmVsX2NhZGRyX3Q7CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX3VpZDE2
X3Q7CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX2dpZDE2X3Q7CjE0NDc0
OiAjIDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcG9zaXhfdHlwZXNfNjQuaCIgMgox
NDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmgiIDIKMTQ0NzQ6
ICMgMzcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Bvc2l4X3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMTUg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMjkgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L3R5cGVzLmgiCjE0NDc0OiB0eXBlZGVmIF9fdTE2IF9fbGUxNjsKMTQ0NzQ6IHR5
cGVkZWYgX191MTYgX19iZTE2OwoxNDQ3NDogdHlwZWRlZiBfX3UzMiBfX2xlMzI7CjE0NDc0OiB0
eXBlZGVmIF9fdTMyIF9fYmUzMjsKMTQ0NzQ6IHR5cGVkZWYgX191NjQgX19sZTY0OwoxNDQ3NDog
dHlwZWRlZiBfX3U2NCBfX2JlNjQ7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX191MTYgX19zdW0x
NjsKMTQ0NzQ6IHR5cGVkZWYgX191MzIgX193c3VtOwoxNDQ3NDogIyA1MiAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvdHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgX19wb2xsX3Q7CjE0NDc0
OiAjIDE4MSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDIKMTQ0NzQ6ICMgMTk2ICIuL2lu
Y2x1ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpCjE0NDc0OiB2b2lkIF9fcmVhZF9vbmNlX3NpemUoY29uc3Qgdm9sYXRpbGUg
dm9pZCAqcCwgdm9pZCAqcmVzLCBpbnQgc2l6ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyBzd2l0Y2gg
KHNpemUpIHsgY2FzZSAxOiAqKF9fdTggKilyZXMgPSAqKHZvbGF0aWxlIF9fdTggKilwOyBicmVh
azsgY2FzZSAyOiAqKF9fdTE2ICopcmVzID0gKih2b2xhdGlsZSBfX3UxNiAqKXA7IGJyZWFrOyBj
YXNlIDQ6ICooX191MzIgKilyZXMgPSAqKHZvbGF0aWxlIF9fdTMyICopcDsgYnJlYWs7IGNhc2Ug
ODogKihfX3U2NCAqKXJlcyA9ICoodm9sYXRpbGUgX191NjQgKilwOyBicmVhazsgZGVmYXVsdDog
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgX19idWlsdGluX21lbWNweSgo
dm9pZCAqKXJlcywgKGNvbnN0IHZvaWQgKilwLCBzaXplKTsgX19hc21fXyBfX3ZvbGF0aWxlX18o
IiI6IDogOiJtZW1vcnkiKTsgfSB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjE0ICIuL2luY2x1ZGUv
bGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
X19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpCjE0NDc0OiB2b2lkIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjayhjb25zdCB2b2xhdGls
ZSB2b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQoxNDQ3NDogewoxNDQ3NDogICh7IHN3aXRj
aCAoc2l6ZSkgeyBjYXNlIDE6ICooX191OCAqKXJlcyA9ICoodm9sYXRpbGUgX191OCAqKXA7IGJy
ZWFrOyBjYXNlIDI6ICooX191MTYgKilyZXMgPSAqKHZvbGF0aWxlIF9fdTE2ICopcDsgYnJlYWs7
IGNhc2UgNDogKihfX3UzMiAqKXJlcyA9ICoodm9sYXRpbGUgX191MzIgKilwOyBicmVhazsgY2Fz
ZSA4OiAqKF9fdTY0ICopcmVzID0gKih2b2xhdGlsZSBfX3U2NCAqKXA7IGJyZWFrOyBkZWZhdWx0
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyBfX2J1aWx0aW5fbWVtY3B5
KCh2b2lkICopcmVzLCAoY29uc3Qgdm9pZCAqKXAsIHNpemUpOyBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOyB9IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fd3JpdGVfb25jZV9zaXplKHZv
bGF0aWxlIHZvaWQgKnAsIHZvaWQgKnJlcywgaW50IHNpemUpCjE0NDc0OiB7CjE0NDc0OiAgc3dp
dGNoIChzaXplKSB7CjE0NDc0OiAgY2FzZSAxOiAqKHZvbGF0aWxlIF9fdTggKilwID0gKihfX3U4
ICopcmVzOyBicmVhazsKMTQ0NzQ6ICBjYXNlIDI6ICoodm9sYXRpbGUgX191MTYgKilwID0gKihf
X3UxNiAqKXJlczsgYnJlYWs7CjE0NDc0OiAgY2FzZSA0OiAqKHZvbGF0aWxlIF9fdTMyICopcCA9
ICooX191MzIgKilyZXM7IGJyZWFrOwoxNDQ3NDogIGNhc2UgODogKih2b2xhdGlsZSBfX3U2NCAq
KXAgPSAqKF9fdTY0ICopcmVzOyBicmVhazsKMTQ0NzQ6ICBkZWZhdWx0OgoxNDQ3NDogICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogICBfX2J1aWx0aW5fbWVt
Y3B5KCh2b2lkICopcCwgKGNvbnN0IHZvaWQgKilyZXMsIHNpemUpOwoxNDQ3NDogICBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjU2ICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9iYXJyaWVyLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiIDEKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC90
eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiB1MzIgX19rZXJuZWxfZGV2X3Q7CjE0NDc0OiAKMTQ0NzQ6
IHR5cGVkZWYgX19rZXJuZWxfZmRfc2V0IGZkX3NldDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxf
ZGV2X3QgZGV2X3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2lub190IGlub190OwoxNDQ3NDog
dHlwZWRlZiBfX2tlcm5lbF9tb2RlX3QgbW9kZV90OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBz
aG9ydCB1bW9kZV90OwoxNDQ3NDogdHlwZWRlZiB1MzIgbmxpbmtfdDsKMTQ0NzQ6IHR5cGVkZWYg
X19rZXJuZWxfb2ZmX3Qgb2ZmX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX3BpZF90IHBpZF90
OwoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9kYWRkcl90IGRhZGRyX3Q7CjE0NDc0OiB0eXBlZGVm
IF9fa2VybmVsX2tleV90IGtleV90OwoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9zdXNlY29uZHNf
dCBzdXNlY29uZHNfdDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfdGltZXJfdCB0aW1lcl90Owox
NDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9jbG9ja2lkX3QgY2xvY2tpZF90OwoxNDQ3NDogdHlwZWRl
ZiBfX2tlcm5lbF9tcWRfdCBtcWRfdDsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfQm9vbCBib29s
OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX3VpZDMyX3QgdWlkX3Q7CjE0NDc0OiB0
eXBlZGVmIF9fa2VybmVsX2dpZDMyX3QgZ2lkX3Q7CjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX3Vp
ZDE2X3QgdWlkMTZfdDsKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfZ2lkMTZfdCBnaWQxNl90Owox
NDQ3NDogCjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWludHB0cl90OwoxNDQ3NDogIyA0
NiAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCjE0NDc0OiB0eXBlZGVmIF9fa2VybmVsX2xvZmZf
dCBsb2ZmX3Q7CjE0NDc0OiAjIDU1ICIuL2luY2x1ZGUvbGludXgvdHlwZXMuaCIKMTQ0NzQ6IHR5
cGVkZWYgX19rZXJuZWxfc2l6ZV90IHNpemVfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9zc2l6ZV90IHNzaXplX3Q7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfcHRyZGlmZl90IHB0
cmRpZmZfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBf
X2tlcm5lbF9jbG9ja190IGNsb2NrX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVfY2hhcjsKMTQ0NzQ6IHR5cGVk
ZWYgdW5zaWduZWQgc2hvcnQgdV9zaG9ydDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IHVf
aW50OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVfbG9uZzsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdW5jaGFyOwoxNDQ3NDogdHlwZWRlZiB1bnNp
Z25lZCBzaG9ydCB1c2hvcnQ7CjE0NDc0OiB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50OwoxNDQ3
NDogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVsb25nOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiB0eXBlZGVmIHU4IHVfaW50OF90OwoxNDQ3NDogdHlwZWRlZiBzOCBpbnQ4
X3Q7CjE0NDc0OiB0eXBlZGVmIHUxNiB1X2ludDE2X3Q7CjE0NDc0OiB0eXBlZGVmIHMxNiBpbnQx
Nl90OwoxNDQ3NDogdHlwZWRlZiB1MzIgdV9pbnQzMl90OwoxNDQ3NDogdHlwZWRlZiBzMzIgaW50
MzJfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdTggdWludDhfdDsK
MTQ0NzQ6IHR5cGVkZWYgdTE2IHVpbnQxNl90OwoxNDQ3NDogdHlwZWRlZiB1MzIgdWludDMyX3Q7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1NjQgdWludDY0X3Q7CjE0NDc0OiB0eXBl
ZGVmIHU2NCB1X2ludDY0X3Q7CjE0NDc0OiB0eXBlZGVmIHM2NCBpbnQ2NF90OwoxNDQ3NDogIyAx
MjUgIi4vaW5jbHVkZS9saW51eC90eXBlcy5oIgoxNDQ3NDogdHlwZWRlZiB1NjQgc2VjdG9yX3Q7
CjE0NDc0OiB0eXBlZGVmIHU2NCBibGtjbnRfdDsKMTQ0NzQ6ICMgMTQzICIuL2luY2x1ZGUvbGlu
dXgvdHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdTY0IGRtYV9hZGRyX3Q7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IGdmcF90OwoxNDQ3
NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2xhYl9mbGFnc190OwoxNDQ3NDogdHlwZWRlZiB1bnNp
Z25lZCBpbnQgZm1vZGVfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHU2NCBwaHlz
X2FkZHJfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBw
aHlzX2FkZHJfdCByZXNvdXJjZV9zaXplX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGlycV9od19udW1iZXJfdDsK
MTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIGludCBjb3VudGVyOwoxNDQ3
NDogfSBhdG9taWNfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0
NDc0OiAgczY0IGNvdW50ZXI7CjE0NDc0OiB9IGF0b21pYzY0X3Q7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGxpc3RfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCwg
KnByZXY7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaGxpc3RfaGVhZCB7CjE0NDc0
OiAgc3RydWN0IGhsaXN0X25vZGUgKmZpcnN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGhsaXN0X25vZGUgewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0LCAqKnBwcmV2
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHVzdGF0IHsKMTQ0NzQ6ICBfX2tlcm5l
bF9kYWRkcl90IGZfdGZyZWU7CjE0NDc0OiAgX19rZXJuZWxfaW5vX3QgZl90aW5vZGU7CjE0NDc0
OiAgY2hhciBmX2ZuYW1lWzZdOwoxNDQ3NDogIGNoYXIgZl9mcGFja1s2XTsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDIxNCAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgY2FsbGJh
Y2tfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgKm5leHQ7CjE0NDc0OiAgdm9p
ZCAoKmZ1bmMpKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKTsKMTQ0NzQ6IH0gX19hdHRyaWJ1
dGVfXygoYWxpZ25lZChzaXplb2Yodm9pZCAqKSkpKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0
eXBlZGVmIHZvaWQgKCpyY3VfY2FsbGJhY2tfdCkoc3RydWN0IGNhbGxiYWNrX2hlYWQgKmhlYWQp
OwoxNDQ3NDogdHlwZWRlZiB2b2lkICgqY2FsbF9yY3VfZnVuY190KShzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCAqaGVhZCwgcmN1X2NhbGxiYWNrX3QgZnVuYyk7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYg
dm9pZCAoKnN3YXBfZnVuY190KSh2b2lkICphLCB2b2lkICpiLCBpbnQgc2l6ZSk7CjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgaW50ICgqY21wX3JfZnVuY190KShjb25zdCB2b2lkICphLCBjb25zdCB2
b2lkICpiLCBjb25zdCB2b2lkICpwcml2KTsKMTQ0NzQ6IHR5cGVkZWYgaW50ICgqY21wX2Z1bmNf
dCkoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYik7CjE0NDc0OiAjIDggIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hc20uaCIgMQoxNDQ3NDogIyAxODIgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXNtLmgiCjE0NDc0OiByZWdpc3RlciB1bnNpZ25lZCBsb25nIGN1cnJlbnRf
c3RhY2tfcG9pbnRlciBhc20oInJzcCIpOwoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hbHRlcm5hdGl2ZS5oIiAyCjE0NDc0OiAjIDU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2FsdGVybmF0aXZlLmgiCjE0NDc0OiBzdHJ1Y3QgYWx0X2luc3RyIHsKMTQ0NzQ6ICBzMzIgaW5z
dHJfb2Zmc2V0OwoxNDQ3NDogIHMzMiByZXBsX29mZnNldDsKMTQ0NzQ6ICB1MTYgY3B1aWQ7CjE0
NDc0OiAgdTggaW5zdHJsZW47CjE0NDc0OiAgdTggcmVwbGFjZW1lbnRsZW47CjE0NDc0OiAgdTgg
cGFkbGVuOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhbHRlcm5hdGl2
ZXNfcGF0Y2hlZDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYWx0ZXJuYXRpdmVfaW5zdHJ1
Y3Rpb25zKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYXBwbHlfYWx0ZXJuYXRpdmVzKHN0cnVj
dCBhbHRfaW5zdHIgKnN0YXJ0LCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpOwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgbW9kdWxlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGFsdGVy
bmF0aXZlc19zbXBfbW9kdWxlX2FkZChzdHJ1Y3QgbW9kdWxlICptb2QsIGNoYXIgKm5hbWUsCjE0
NDc0OiAgICAgIHZvaWQgKmxvY2tzLCB2b2lkICpsb2Nrc19lbmQsCjE0NDc0OiAgICAgIHZvaWQg
KnRleHQsIHZvaWQgKnRleHRfZW5kKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFsdGVybmF0aXZlc19z
bXBfbW9kdWxlX2RlbChzdHJ1Y3QgbW9kdWxlICptb2QpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYWx0
ZXJuYXRpdmVzX2VuYWJsZV9zbXAodm9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGFsdGVybmF0aXZl
c190ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpOwoxNDQ3NDogZXh0ZXJuIGJv
b2wgc2tpcF9zbXBfYWx0ZXJuYXRpdmVzOwoxNDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2JhcnJpZXIuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vcHMu
aCIgMQoxNDQ3NDogIyAxNDMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9wcy5oIgoxNDQ3NDog
ZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCAqaWRlYWxfbm9wczsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGFyY2hfaW5pdF9pZGVhbF9ub3BzKHZvaWQpOwoxNDQ3NDogIyA3ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2JhcnJpZXIuaCIgMgoxNDQ3NDogIyAzNiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9iYXJyaWVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgdW5zaWduZWQgbG9uZyBhcnJheV9pbmRleF9t
YXNrX25vc3BlYyh1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIHNp
emUpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXNrOwoxNDQ3NDogCjE0NDc0OiAg
YXNtIHZvbGF0aWxlICgiY21wICUxLCUyOyBzYmIgJTAsJTA7IgoxNDQ3NDogICAgOiI9ciIgKG1h
c2spCjE0NDc0OiAgICA6ImciKHNpemUpLCJyIiAoaW5kZXgpCjE0NDc0OiAgICA6ImNjIik7CjE0
NDc0OiAgcmV0dXJuIG1hc2s7CjE0NDc0OiB9CjE0NDc0OiAjIDg1ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2JhcnJpZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JhcnJp
ZXIuaCIgMQoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JhcnJpZXIuaCIKMTQ0
NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDEKMTQ0NzQ6ICMgMTcgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iYXJyaWVyLmgiIDIKMTQ0NzQ6ICMgODYgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYmFycmllci5oIiAyCjE0NDc0OiAjIDI1NyAiLi9pbmNsdWRlL2xpbnV4L2NvbXBp
bGVyLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLWNoZWNrcy5oIiAxCjE0
NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgva2FzYW4tY2hlY2tzLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgYm9v
bCBfX2thc2FuX2NoZWNrX3JlYWQoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgdW5zaWduZWQgaW50
IHNpemUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkg
Ym9vbCBfX2thc2FuX2NoZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVk
IGludCBzaXplKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDog
IyAzNCAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLWNoZWNrcy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChfX25vX2luc3RydW1lbnRfZnVuY3Rpb25fXykpIGJvb2wga2Fz
YW5fY2hlY2tfcmVhZChjb25zdCB2b2xhdGlsZSB2b2lkICpwLCB1bnNpZ25lZCBpbnQgc2l6ZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBib29sIGth
c2FuX2NoZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXpl
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogIyAyNTggIi4v
aW5jbHVkZS9saW51eC9jb21waWxlci5oIiAyCjE0NDc0OiAjIDI3NyAiLi9pbmNsdWRlL2xpbnV4
L2NvbXBpbGVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9f
aW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KQoxNDQ3NDogdW5zaWduZWQgbG9uZyByZWFkX3dvcmRfYXRfYV90aW1lKGNvbnN0IHZvaWQgKmFk
ZHIpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfcmVhZChhZGRyLCAxKTsKMTQ0NzQ6ICBy
ZXR1cm4gKih1bnNpZ25lZCBsb25nICopYWRkcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzA4ICIuL2lu
Y2x1ZGUvbGludXgvY29tcGlsZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSB2b2lkICpvZmZzZXRfdG9fcHRyKGNv
bnN0IGludCAqb2ZmKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgodW5zaWduZWQg
bG9uZylvZmYgKyAqb2ZmKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS9saW51eC9l
eHBvcnQuaCIgMgoxNDQ3NDogIyA2MCAiLi9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oIgoxNDQ3NDog
c3RydWN0IGtlcm5lbF9zeW1ib2wgewoxNDQ3NDogIGludCB2YWx1ZV9vZmZzZXQ7CjE0NDc0OiAg
aW50IG5hbWVfb2Zmc2V0OwoxNDQ3NDogIGludCBuYW1lc3BhY2Vfb2Zmc2V0OwoxNDQ3NDogfTsK
MTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCIgMgoxNDQ3NDogIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2xpbmthZ2UuaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGlu
dXgvbGlua2FnZS5oIiAyCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgva2dkYi5oIiAyCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9pbml0LmgiIDEKMTQ0NzQ6ICMgMTE2ICIuL2luY2x1
ZGUvbGludXgvaW5pdC5oIgoxNDQ3NDogdHlwZWRlZiBpbnQgKCppbml0Y2FsbF90KSh2b2lkKTsK
MTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmV4aXRjYWxsX3QpKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgaW50IGluaXRjYWxsX2VudHJ5X3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGluaXRj
YWxsX3QgaW5pdGNhbGxfZnJvbV9lbnRyeShpbml0Y2FsbF9lbnRyeV90ICplbnRyeSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gb2Zmc2V0X3RvX3B0cihlbnRyeSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDEzNSAiLi9pbmNsdWRlL2xpbnV4L2luaXQuaCIKMTQ0NzQ6IGV4dGVybiBpbml0Y2FsbF9lbnRy
eV90IF9fY29uX2luaXRjYWxsX3N0YXJ0W10sIF9fY29uX2luaXRjYWxsX2VuZFtdOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmN0b3JfZm5fdCkodm9pZCk7CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgZG9fb25lX2luaXRjYWxsKGluaXRjYWxsX3QgZm4pOwoxNDQ3NDogZXh0ZXJuIGNo
YXIgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LmRhdGEiKSkpIGJvb3RfY29tbWFu
ZF9saW5lW107CjE0NDc0OiBleHRlcm4gY2hhciAqc2F2ZWRfY29tbWFuZF9saW5lOwoxNDQ3NDog
ZXh0ZXJuIHVuc2lnbmVkIGludCByZXNldF9kZXZpY2VzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHZvaWQgc2V0dXBfYXJjaChjaGFyICoqKTsKMTQ0NzQ6IHZvaWQgcHJlcGFyZV9uYW1lc3BhY2Uo
dm9pZCk7CjE0NDc0OiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0
IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGluaXRfcm9vdGZzKHZvaWQpOwoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIHJvb3Rmc19mc190eXBlOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIHJvZGF0YV9lbmFibGVkOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgbWFya19yb2RhdGFfcm8odm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgKCpsYXRlX3RpbWVfaW5pdCkodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBib29sIGluaXRjYWxsX2RlYnVnOwoxNDQ3NDogIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tnZGIu
aCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYXRvbWljLmgiIDEKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vY21weGNoZy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgiIDEKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcmVxdWlyZWQtZmVhdHVyZXMuaCIgMQoxNDQ3NDogIyA3ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kaXNhYmxlZC1mZWF0dXJlcy5oIiAxCjE0
NDc0OiAjIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgiIDIKMTQ0NzQ6
ICMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9feGNo
Z193cm9uZ19zaXplKHZvaWQpCjE0NDc0OiAgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCYWQg
YXJndW1lbnQgc2l6ZSBmb3IgeGNoZyIpKSk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2NtcHhjaGdf
d3Jvbmdfc2l6ZSh2b2lkKQoxNDQ3NDogIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQmFkIGFy
Z3VtZW50IHNpemUgZm9yIGNtcHhjaGciKSkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX194YWRkX3dy
b25nX3NpemUodm9pZCkKMTQ0NzQ6ICBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJhZCBhcmd1
bWVudCBzaXplIGZvciB4YWRkIikpKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYWRkX3dyb25nX3Np
emUodm9pZCkKMTQ0NzQ6ICBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJhZCBhcmd1bWVudCBz
aXplIGZvciBhZGQiKSkpOwoxNDQ3NDogIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21w
eGNoZy5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGdfNjQuaCIg
MQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF82NGJpdCh2
b2xhdGlsZSB1NjQgKnB0ciwgdTY0IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqcHRyID0gdmFsOwox
NDQ3NDogfQoxNDQ3NDogIyAxNDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZy5oIiAy
CjE0NDc0OiAjIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ybXdjYy5oIiAxCjE0NDc0OiAjIDEwICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIiAyCjE0NDc0OiAjIDI1ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2F0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBpbnQgYXJjaF9hdG9taWNfcmVhZChjb25zdCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoeyB1bmlvbiB7IHR5cGVv
ZigodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRf
b25jZV9zaXplKCYoKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKCh2KS0+Y291bnRlcikp
OyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCh2KS0+Y291bnRlciksIF9fdS5fX2Ms
IHNpemVvZigodiktPmNvdW50ZXIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWNf
c2V0KGF0b21pY190ICp2LCBpbnQgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVv
Zih2LT5jb3VudGVyKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5
cGVvZih2LT5jb3VudGVyKSkgKGkpIH07IF9fd3JpdGVfb25jZV9zaXplKCYodi0+Y291bnRlciks
IF9fdS5fX2MsIHNpemVvZih2LT5jb3VudGVyKSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDUzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFyY2hfYXRvbWljX2FkZChpbnQgaSwg
YXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24g
LnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBv
cHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiYWRkbCAlMSwlMCIKMTQ0NzQ6ICAgICAg
ICA6ICIrbSIgKHYtPmNvdW50ZXIpCjE0NDc0OiAgICAgICAgOiAiaXIiIChpKSA6ICJtZW1vcnki
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9t
aWNfc3ViKGludCBpLCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJzdWJsICUxLCUw
IgoxNDQ3NDogICAgICAgIDogIittIiAodi0+Y291bnRlcikKMTQ0NzQ6ICAgICAgICA6ICJpciIg
KGkpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogIyA4MyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
Ym9vbCBhcmNoX2F0b21pY19zdWJfYW5kX3Rlc3QoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAu
c21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9w
c2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJzdWJsIiAiICVbdmFsXSwgIiAiJVt2YXJd
IiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20i
ICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnki
KTsgYzsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDk1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0
b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFy
Y2hfYXRvbWljX2luYyhhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJpbmNsICUwIgox
NDQ3NDogICAgICAgIDogIittIiAodi0+Y291bnRlcikgOjogIm1lbW9yeSIpOwoxNDQ3NDogfQox
NDQ3NDogIyAxMDggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWNfZGVjKGF0b21p
Y190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBf
bG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0
aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY2wgJTAiCjE0NDc0OiAgICAgICAgOiAiK20i
ICh2LT5jb3VudGVyKSA6OiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAjIDEyMyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgYm9vbCBhcmNoX2F0b21pY19kZWNfYW5kX3Rlc3QoYXRvbWljX3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0
aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIg
Ii5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY2wiICIgIiAiJVt2YXJdIiAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2
LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6ICJtZW1vcnkiKTsgYzsgfSk7CjE0NDc0OiB9
CjE0NDc0OiAjIDEzNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBhcmNoX2F0b21pY19pbmNfYW5k
X3Rlc3QoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNt
IHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxu
IiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIg
ImluY2wiICIgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAi
Ki9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6ICJtZW1v
cnkiKTsgYzsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9v
bCBhcmNoX2F0b21pY19hZGRfbmVnYXRpdmUoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21w
X2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2Vj
dGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRsIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJzIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2
LT5jb3VudGVyKSwgIj1AY2MiICJzIiAoYykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnkiKTsg
YzsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE2NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9t
aWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFyY2hf
YXRvbWljX2FkZF9yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBpICsgKHsgX190eXBlb2ZfXyAoKigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKGkp
KSk7IHN3aXRjaCAoc2l6ZW9mKCooKCgmdi0+Y291bnRlcikpKSkpIHsgY2FzZSAxOiBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFk
ZCIgImIgJWIwLCAlMVxuIiA6ICIrcSIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkp
KSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIucHVz
aHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0g
LlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgIncgJXcwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9y
eSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgImwgJTAsICUxXG4iIDogIityIiAo
X19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAicSAlcTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20i
ICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0
OiBfX3hhZGRfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTc3
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgYXJjaF9hdG9taWNfc3ViX3JldHVybihpbnQgaSwgYXRv
bWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2FkZF9yZXR1cm4o
LWksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGludCBhcmNoX2F0b21pY19mZXRjaF9hZGQoaW50IGksIGF0b21pY190ICp2KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBfX3R5cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIpKSkp
IF9fcmV0ID0gKCgoaSkpKTsgc3dpdGNoIChzaXplb2YoKigoKCZ2LT5jb3VudGVyKSkpKSkgeyBj
YXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgqKCgo
JnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4
YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIp
KSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAibCAlMCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJxICVxMCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsg
YnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBh
cmNoX2F0b21pY19mZXRjaF9zdWIoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiAoeyBfX3R5cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIpKSkpIF9fcmV0ID0gKCgoLWkp
KSk7IHN3aXRjaCAoc2l6ZW9mKCooKCgmdi0+Y291bnRlcikpKSkpIHsgY2FzZSAxOiBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFk
ZCIgImIgJWIwLCAlMVxuIiA6ICIrcSIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkp
KSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIucHVz
aHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0g
LlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgIncgJXcwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9y
eSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgImwgJTAsICUxXG4iIDogIityIiAo
X19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAicSAlcTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20i
ICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0
OiBfX3hhZGRfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgYXJjaF9hdG9taWNfY21w
eGNoZyhhdG9taWNfdCAqdiwgaW50IG9sZCwgaW50IG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHsgX190eXBlb2ZfXygqKCgmdi0+Y291bnRlcikpKSBfX3JldDsgX190eXBlb2ZfXygqKCgm
di0+Y291bnRlcikpKSBfX29sZCA9ICgob2xkKSk7IF9fdHlwZW9mX18oKigoJnYtPmNvdW50ZXIp
KSkgX19uZXcgPSAoKG5ldykpOyBzd2l0Y2ggKChzaXplb2YoKigmdi0+Y291bnRlcikpKSkgeyBj
YXNlIDE6IHsgdm9sYXRpbGUgdTggKl9fcHRyID0gKHZvbGF0aWxlIHU4ICopKCgmdi0+Y291bnRl
cikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFs
aWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRs
b2NrOyAiICJjbXB4Y2hnYiAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikgOiAi
cSIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgMjogeyB2
b2xhdGlsZSB1MTYgKl9fcHRyID0gKHZvbGF0aWxlIHUxNiAqKSgoJnYtPmNvdW50ZXIpKTsgYXNt
IHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4i
ICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAi
Y21weGNoZ3cgJTIsJTEiIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpIDogInIiIChfX25l
dyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDQ6IHsgdm9sYXRpbGUg
dTMyICpfX3B0ciA9ICh2b2xhdGlsZSB1MzIgKikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGls
ZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcg
NjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGds
ICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSA6ICJyIiAoX19uZXcpLCAiMCIg
KF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gY2FzZSA4OiB7IHZvbGF0aWxlIHU2NCAqX19w
dHIgPSAodm9sYXRpbGUgdTY0ICopKCgmdi0+Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNo
c2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAu
XG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hncSAlMiwlMSIg
OiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikgOiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkg
OiAibWVtb3J5Iik7IGJyZWFrOyB9IGRlZmF1bHQ6IF9fY21weGNoZ193cm9uZ19zaXplKCk7IH0g
X19yZXQ7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBhcmNoX2F0b21pY190cnlfY21weGNoZyhhdG9taWNf
dCAqdiwgaW50ICpvbGQsIGludCBuZXcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wg
c3VjY2VzczsgX190eXBlb2ZfXygoKCZ2LT5jb3VudGVyKSkpIF9vbGQgPSAoX190eXBlb2ZfXygo
KCZ2LT5jb3VudGVyKSkpKSgoKG9sZCkpKTsgX190eXBlb2ZfXygqKCgoJnYtPmNvdW50ZXIpKSkp
IF9fb2xkID0gKl9vbGQ7IF9fdHlwZW9mX18oKigoKCZ2LT5jb3VudGVyKSkpKSBfX25ldyA9ICgo
KG5ldykpKTsgc3dpdGNoICgoc2l6ZW9mKCooJnYtPmNvdW50ZXIpKSkpIHsgY2FzZSAxOiB7IHZv
bGF0aWxlIHU4ICpfX3B0ciA9ICh2b2xhdGlsZSB1OCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20g
dm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJj
bXB4Y2hnYiAlW25ld10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAi
eiIgIiovXG4iIDogIj1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtv
bGRdICIrYSIgKF9fb2xkKSA6IFtuZXddICJxIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsg
fSBjYXNlIDI6IHsgdm9sYXRpbGUgdTE2ICpfX3B0ciA9ICh2b2xhdGlsZSB1MTYgKikoKCgmdi0+
Y291bnRlcikpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxu
IiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToi
ICJcblx0bG9jazsgIiAiY21weGNoZ3cgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0cHV0IGNv
bmRpdGlvbiBjb2RlICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBbcHRyXSAi
K20iICgqX19wdHIpLCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3KSA6ICJt
ZW1vcnkiKTsgYnJlYWs7IH0gY2FzZSA0OiB7IHZvbGF0aWxlIHUzMiAqX19wdHIgPSAodm9sYXRp
bGUgdTMyICopKCgoJnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdsICVbbmV3XSwgJVtwdHJdIiAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChz
dWNjZXNzKSwgW3B0cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10g
InIiIChfX25ldykgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgODogeyB2b2xhdGlsZSB1NjQg
Kl9fcHRyID0gKHZvbGF0aWxlIHU2NCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hncSAl
W25ld10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4i
IDogIj1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIg
KF9fb2xkKSA6IFtuZXddICJyIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBkZWZhdWx0
OiBfX2NtcHhjaGdfd3Jvbmdfc2l6ZSgpOyB9IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFzdWNj
ZXNzKSwgMCkpICpfb2xkID0gX19vbGQ7IF9fYnVpbHRpbl9leHBlY3QoISEoc3VjY2VzcyksIDEp
OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfYXRvbWljX3hjaGcoYXRvbWlj
X3QgKnYsIGludCBuZXcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IF9fdHlwZW9mX18gKCoo
KCZ2LT5jb3VudGVyKSkpIF9fcmV0ID0gKChuZXcpKTsgc3dpdGNoIChzaXplb2YoKigoJnYtPmNv
dW50ZXIpKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4i
IDogIitxIiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJj
YyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4i
IDogIityIiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJj
YyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIg
OiAiK3IiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNj
Iik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJxICVxMCwgJTFcbiIg
OiAiK3IiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNj
Iik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2F0b21pY19hbmQoaW50IGksIGF0b21pY190
ICp2KQoxNDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFuZGwgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYt
PmNvdW50ZXIpCjE0NDc0OiAgICA6ICJpciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfYXRvbWljX2ZldGNoX2FuZChpbnQgaSwgYXRv
bWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgaW50IHZhbCA9IGFyY2hfYXRvbWljX3JlYWQodik7
CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNoZyh2
LCAmdmFsLCB2YWwgJiBpKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfYXRvbWljX29yKGludCBpLCBhdG9taWNfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJvcmwgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYtPmNvdW50ZXIp
CjE0NDc0OiAgICA6ICJpciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGFyY2hfYXRvbWljX2ZldGNoX29yKGludCBpLCBhdG9taWNfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgdmFsID0gYXJjaF9hdG9taWNfcmVhZCh2KTsKMTQ0NzQ6IAox
NDQ3NDogIGRvIHsgfSB3aGlsZSAoIWFyY2hfYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZ2YWwsIHZh
bCB8IGkpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYXJjaF9hdG9taWNfeG9yKGludCBpLCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFs
aWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRs
b2NrOyAiICJ4b3JsICUxLCUwIgoxNDQ3NDogICAgOiAiK20iICh2LT5jb3VudGVyKQoxNDQ3NDog
ICAgOiAiaXIiIChpKQoxNDQ3NDogICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCBhcmNoX2F0b21pY19mZXRjaF94b3IoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIGludCB2YWwgPSBhcmNoX2F0b21pY19yZWFkKHYpOwoxNDQ3NDogCjE0NDc0OiAg
ZG8geyB9IHdoaWxlICghYXJjaF9hdG9taWNfdHJ5X2NtcHhjaGcodiwgJnZhbCwgdmFsIF4gaSkp
OwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0
XzY0LmgiIDEKMTQ0NzQ6ICMgMjAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X3JlYWQoY29uc3QgYXRvbWljNjRfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBlb2YoKHYpLT5jb3VudGVyKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCh2KS0+Y291
bnRlciksIF9fdS5fX2MsIHNpemVvZigodiktPmNvdW50ZXIpKTsgZWxzZSBfX3JlYWRfb25jZV9z
aXplX25vY2hlY2soJigodiktPmNvdW50ZXIpLCBfX3UuX19jLCBzaXplb2YoKHYpLT5jb3VudGVy
KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDMy
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hf
YXRvbWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQoxNDQ3NDogewoxNDQ3NDogICh7IHVu
aW9uIHsgdHlwZW9mKHYtPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5f
X3ZhbCA9ICggdHlwZW9mKHYtPmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJih2
LT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKHYtPmNvdW50ZXIpKTsgX191Ll9fdmFsOyB9KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNDQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBhcmNoX2F0
b21pYzY0X2FkZChzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9s
YXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRx
ICUxLCUwIgoxNDQ3NDogICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKMTQ0NzQ6ICAgICAgICA6
ICJlciIgKGkpLCAibSIgKHYtPmNvdW50ZXIpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDog
IyA1OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
cmNoX2F0b21pYzY0X3N1YihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBh
c20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICJzdWJxICUxLCUwIgoxNDQ3NDogICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKMTQ0NzQ6ICAg
ICAgICA6ICJlciIgKGkpLCAibSIgKHYtPmNvdW50ZXIpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQox
NDQ3NDogIyA3NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBhcmNoX2F0b21pYzY0X3N1Yl9hbmRfdGVzdChzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rp
b24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAi
LnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAic3VicSIgIiAlW3ZhbF0sICIgIiVb
dmFyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAiZSIgIiovXG4iIDogW3Zhcl0g
IittIiAodi0+Y291bnRlciksICI9QGNjIiAiZSIgKGMpIDogW3ZhbF0gImVyIiAoaSkgOiAibWVt
b3J5Iik7IGM7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA4NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9hdG9taWM2NF82NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIGFyY2hfYXRvbWljNjRfaW5jKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
YXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0
XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsg
IiAiaW5jcSAlMCIKMTQ0NzQ6ICAgICAgICA6ICI9bSIgKHYtPmNvdW50ZXIpCjE0NDc0OiAgICAg
ICAgOiAibSIgKHYtPmNvdW50ZXIpIDogIm1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMDAg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBhcmNoX2F0b21pYzY0X2RlYyhhdG9taWM2NF90
ICp2KQoxNDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY3EgJTAiCjE0NDc0OiAgICAgICAgOiAiPW0iICh2
LT5jb3VudGVyKQoxNDQ3NDogICAgICAgIDogIm0iICh2LT5jb3VudGVyKSA6ICJtZW1vcnkiKTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgMTE2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIGFyY2hfYXRvbWljNjRfZGVjX2FuZF90ZXN0KGF0b21pYzY0X3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hz
ZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5c
biIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImRlY3EiICIgIiAiJVt2YXJd
IiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20i
ICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6ICJtZW1vcnkiKTsgYzsgfSk7CjE0NDc0
OiB9CjE0NDc0OiAjIDEzMCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBhcmNoX2F0b21pYzY0X2luY19hbmRfdGVzdChhdG9taWM2NF90ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJpbmNxIiAiICIgIiVbdmFyXSIgIlxu
XHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAiZSIgIiovXG4iIDogW3Zhcl0gIittIiAodi0+
Y291bnRlciksICI9QGNjIiAiZSIgKGMpIDogOiAibWVtb3J5Iik7IGM7IH0pOwoxNDQ3NDogfQox
NDQ3NDogIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljNjRfNjQuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgYXJjaF9hdG9taWM2NF9hZGRfbmVnYXRpdmUoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0
aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIg
Ii5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFkZHEiICIgJVt2YWxdLCAiICIl
W3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInMiICIqL1xuIiA6IFt2YXJd
ICIrbSIgKHYtPmNvdW50ZXIpLCAiPUBjYyIgInMiIChjKSA6IFt2YWxdICJlciIgKGkpIDogIm1l
bW9yeSIpOyBjOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTU4ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2F0b21pYzY0XzY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHM2NCBhcmNoX2F0b21pYzY0X2FkZF9yZXR1cm4oczY0IGksIGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGkgKyAoeyBfX3R5cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIp
KSkpIF9fcmV0ID0gKCgoaSkpKTsgc3dpdGNoIChzaXplb2YoKigoKCZ2LT5jb3VudGVyKSkpKSkg
eyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgq
KCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFz
bSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICJ4YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50
ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAibCAl
MCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9u
IC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5w
b3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJxICVxMCwgJTFcbiIgOiAi
K3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2Mi
KTsgYnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9zdWJfcmV0dXJuKHM2NCBpLCBh
dG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pYzY0X2FkZF9y
ZXR1cm4oLWksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9m
ZXRjaF9hZGQoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7
IF9fdHlwZW9mX18gKCooKCgmdi0+Y291bnRlcikpKSkgX19yZXQgPSAoKChpKSkpOyBzd2l0Y2gg
KHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgiLnB1
c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAt
IC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICViMCwg
JTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsg
YnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJh
XCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2
NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIitt
IiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA4
OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5j
b3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRkX3dy
b25nX3NpemUoKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBhcmNo
X2F0b21pYzY0X2ZldGNoX3N1YihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHsgX190eXBlb2ZfXyAoKigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKC1p
KSkpOyBzd2l0Y2ggKHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZv
bGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAi
LmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhh
ZGQiICJiICViMCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikp
KSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1
c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAt
IC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIg
KF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFc
IlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3
MToiICJcblx0bG9jazsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIitt
IiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVs
dDogX194YWRkX3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NCBhcmNoX2F0b21pYzY0X2NtcHhjaGcoYXRvbWljNjRfdCAqdiwgczY0IG9sZCwgczY0
IG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgX190eXBlb2ZfXygqKCgmdi0+Y291bnRl
cikpKSBfX3JldDsgX190eXBlb2ZfXygqKCgmdi0+Y291bnRlcikpKSBfX29sZCA9ICgob2xkKSk7
IF9fdHlwZW9mX18oKigoJnYtPmNvdW50ZXIpKSkgX19uZXcgPSAoKG5ldykpOyBzd2l0Y2ggKChz
aXplb2YoKigmdi0+Y291bnRlcikpKSkgeyBjYXNlIDE6IHsgdm9sYXRpbGUgdTggKl9fcHRyID0g
KHZvbGF0aWxlIHU4ICopKCgmdi0+Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hnYiAlMiwlMSIgOiAiPWEi
IChfX3JldCksICIrbSIgKCpfX3B0cikgOiAicSIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVt
b3J5Iik7IGJyZWFrOyB9IGNhc2UgMjogeyB2b2xhdGlsZSB1MTYgKl9fcHRyID0gKHZvbGF0aWxl
IHUxNiAqKSgoJnYtPmNvdW50ZXIpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9s
b2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rp
b25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiY21weGNoZ3cgJTIsJTEiIDogIj1hIiAoX19yZXQp
LCAiK20iICgqX19wdHIpIDogInIiIChfX25ldyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBi
cmVhazsgfSBjYXNlIDQ6IHsgdm9sYXRpbGUgdTMyICpfX3B0ciA9ICh2b2xhdGlsZSB1MzIgKiko
KCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJh
XCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2
NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdsICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAo
Kl9fcHRyKSA6ICJyIiAoX19uZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0g
Y2FzZSA4OiB7IHZvbGF0aWxlIHU2NCAqX19wdHIgPSAodm9sYXRpbGUgdTY0ICopKCgmdi0+Y291
bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJjbXB4Y2hncSAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0cikg
OiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGRlZmF1bHQ6
IF9fY21weGNoZ193cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBhcmNo
X2F0b21pYzY0X3RyeV9jbXB4Y2hnKGF0b21pYzY0X3QgKnYsIHM2NCAqb2xkLCBzNjQgbmV3KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIHN1Y2Nlc3M7IF9fdHlwZW9mX18oKCgmdi0+
Y291bnRlcikpKSBfb2xkID0gKF9fdHlwZW9mX18oKCgmdi0+Y291bnRlcikpKSkoKChvbGQpKSk7
IF9fdHlwZW9mX18oKigoKCZ2LT5jb3VudGVyKSkpKSBfX29sZCA9ICpfb2xkOyBfX3R5cGVvZl9f
KCooKCgmdi0+Y291bnRlcikpKSkgX19uZXcgPSAoKChuZXcpKSk7IHN3aXRjaCAoKHNpemVvZigq
KCZ2LT5jb3VudGVyKSkpKSB7IGNhc2UgMTogeyB2b2xhdGlsZSB1OCAqX19wdHIgPSAodm9sYXRp
bGUgdTggKikoKCgmdi0+Y291bnRlcikpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiY21weGNoZ2IgJVtuZXddLCAlW3B0cl0iICJc
blx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1
Y2Nlc3MpLCBbcHRyXSAiK20iICgqX19wdHIpLCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAi
cSIgKF9fbmV3KSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gY2FzZSAyOiB7IHZvbGF0aWxlIHUxNiAq
X19wdHIgPSAodm9sYXRpbGUgdTE2ICopKCgoJnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgi
LnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcx
ZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGd3ICVb
bmV3XSwgJVtwdHJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIg
OiAiPUBjYyIgInoiIChzdWNjZXNzKSwgW3B0cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAo
X19vbGQpIDogW25ld10gInIiIChfX25ldykgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgNDog
eyB2b2xhdGlsZSB1MzIgKl9fcHRyID0gKHZvbGF0aWxlIHUzMiAqKSgoKCZ2LT5jb3VudGVyKSkp
OyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWdu
IDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2Nr
OyAiICJjbXB4Y2hnbCAlW25ld10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNv
ZGUgIiAieiIgIiovXG4iIDogIj1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0
ciksIFtvbGRdICIrYSIgKF9fb2xkKSA6IFtuZXddICJyIiAoX19uZXcpIDogIm1lbW9yeSIpOyBi
cmVhazsgfSBjYXNlIDg6IHsgdm9sYXRpbGUgdTY0ICpfX3B0ciA9ICh2b2xhdGlsZSB1NjQgKiko
KCgmdi0+Y291bnRlcikpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2Nrcyxc
ImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIg
IjY3MToiICJcblx0bG9jazsgIiAiY21weGNoZ3EgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0
cHV0IGNvbmRpdGlvbiBjb2RlICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBb
cHRyXSAiK20iICgqX19wdHIpLCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gZGVmYXVsdDogX19jbXB4Y2hnX3dyb25nX3NpemUoKTsg
fSBpZiAoX19idWlsdGluX2V4cGVjdCghISghc3VjY2VzcyksIDApKSAqX29sZCA9IF9fb2xkOyBf
X2J1aWx0aW5fZXhwZWN0KCEhKHN1Y2Nlc3MpLCAxKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NCBhcmNoX2F0b21pYzY0X3hjaGcoYXRvbWljNjRfdCAqdiwgczY0IG5ldykKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKHsgX190eXBlb2ZfXyAoKigoJnYtPmNvdW50ZXIpKSkgX19yZXQg
PSAoKG5ldykpOyBzd2l0Y2ggKHNpemVvZigqKCgmdi0+Y291bnRlcikpKSkgeyBjYXNlIDE6IGFz
bSB2b2xhdGlsZSAoIiIgInhjaGciICJiICViMCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIg
KCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFz
bSB2b2xhdGlsZSAoIiIgInhjaGciICJ3ICV3MCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIg
KCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFz
bSB2b2xhdGlsZSAoIiIgInhjaGciICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAo
KigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNt
IHZvbGF0aWxlICgiIiAieGNoZyIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAo
KigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
eGNoZ193cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGFyY2hfYXRvbWljNjRfYW5kKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3
NDogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxp
Z24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxv
Y2s7ICIgImFuZHEgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYtPmNvdW50ZXIpCjE0NDc0OiAg
ICA6ICJlciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0IGFyY2hfYXRvbWljNjRfZmV0Y2hfYW5kKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHM2NCB2YWwgPSBhcmNoX2F0b21pYzY0X3JlYWQodik7CjE0NDc0OiAKMTQ0
NzQ6ICBkbyB7CjE0NDc0OiAgfSB3aGlsZSAoIWFyY2hfYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwg
JnZhbCwgdmFsICYgaSkpOwoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYXJjaF9hdG9taWM2NF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJvcnEgJTEsJTAiCjE0NDc0OiAgICA6ICIrbSIgKHYtPmNvdW50ZXIpCjE0NDc0
OiAgICA6ICJlciIgKGkpCjE0NDc0OiAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgczY0IGFyY2hfYXRvbWljNjRfZmV0Y2hfb3IoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IAox
NDQ3NDogIGRvIHsKMTQ0NzQ6ICB9IHdoaWxlICghYXJjaF9hdG9taWM2NF90cnlfY21weGNoZyh2
LCAmdmFsLCB2YWwgfCBpKSk7CjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBhcmNoX2F0b21pYzY0X3hvcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4b3JxICUxLCUwIgoxNDQ3NDogICAgOiAiK20iICh2LT5jb3VudGVyKQox
NDQ3NDogICAgOiAiZXIiIChpKQoxNDQ3NDogICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX3hvcihzNjQgaSwgYXRvbWljNjRfdCAq
dikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzNjQgdmFsID0gYXJjaF9hdG9taWM2NF9yZWFkKHYpOwoxNDQ3
NDogCjE0NDc0OiAgZG8gewoxNDQ3NDogIH0gd2hpbGUgKCFhcmNoX2F0b21pYzY0X3RyeV9jbXB4
Y2hnKHYsICZ2YWwsIHZhbCBeIGkpKTsKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDogfQoxNDQ3
NDogIyAyNjMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVk
LmgiIDEKMTQ0NzQ6ICMgMjAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVu
dGVkLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9idWlsZF9idWcuaCIgMQoxNDQ3NDog
IyAyMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIgMgoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX3JlYWQoY29uc3QgYXRvbWljX3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfcmVhZCh2LCBzaXplb2YoKnYpKTsKMTQ0
NzQ6ICByZXR1cm4gYXJjaF9hdG9taWNfcmVhZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDEgIi4v
aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0
NDc0OiBhdG9taWNfc2V0KGF0b21pY190ICp2LCBpbnQgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNh
bl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0b21pY19zZXQodiwg
aSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWlu
c3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2FkZChpbnQgaSwgYXRvbWlj
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7
CjE0NDc0OiAgYXJjaF9hdG9taWNfYWRkKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfYWRkX3JldHVybihpbnQgaSwgYXRvbWlj
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7
CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2FkZF9yZXR1cm4oaSwgdik7CjE0NDc0OiB9CjE0
NDc0OiAjIDEwOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludAoxNDQ3NDogYXRvbWljX2ZldGNoX2FkZChpbnQgaSwgYXRvbWljX3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAg
cmV0dXJuIGFyY2hfYXRvbWljX2ZldGNoX2FkZChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ3
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZAoxNDQ3NDogYXRvbWljX3N1YihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
a2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWNfc3Vi
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0
OiBhdG9taWNfc3ViX3JldHVybihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
a2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRv
bWljX3N1Yl9yZXR1cm4oaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDE5NiAiLi9pbmNsdWRlL2Fz
bS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWlj
X2ZldGNoX3N1YihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hl
Y2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2ZldGNo
X3N1YihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjM2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
YXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2luYyhhdG9t
aWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYp
KTsKMTQ0NzQ6ICBhcmNoX2F0b21pY19pbmModik7CjE0NDc0OiB9CjE0NDc0OiAjIDMyNiAiLi9p
bmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0
NzQ6IGF0b21pY19kZWMoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tf
d3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWNfZGVjKHYpOwoxNDQ3NDog
fQoxNDQ3NDogIyA0MTUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVk
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfYW5kKGludCBpLCBhdG9taWNfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBh
cmNoX2F0b21pY19hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hbmQoaW50IGksIGF0b21pY190ICp2KQoxNDQ3
NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJl
dHVybiBhcmNoX2F0b21pY19mZXRjaF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDUxMyAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
MTQ0NzQ6IGF0b21pY19vcihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2Fz
YW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWNfb3IoaSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0
b21pY19mZXRjaF9vcihpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5f
Y2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljX2Zl
dGNoX29yKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA1NjEgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfeG9yKGlu
dCBpLCBhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBz
aXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0b21pY194b3IoaSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF94b3IoaW50
IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNp
emVvZigqdikpOwoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pY19mZXRjaF94b3IoaSwgdik7CjE0
NDc0OiB9CjE0NDc0OiAjIDYxMCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVt
ZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX3hjaGcoYXRvbWljX3QgKnYsIGludCBp
KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3
NDogIHJldHVybiBhcmNoX2F0b21pY194Y2hnKHYsIGkpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NTAg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQK
MTQ0NzQ6IGF0b21pY19jbXB4Y2hnKGF0b21pY190ICp2LCBpbnQgb2xkLCBpbnQgbmV3KQoxNDQ3
NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJl
dHVybiBhcmNoX2F0b21pY19jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
NjkwICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbAoxNDQ3NDogYXRvbWljX3RyeV9jbXB4Y2hnKGF0b21pY190ICp2LCBpbnQgKm9sZCwgaW50
IG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsK
MTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShvbGQsIHNpemVvZigqb2xkKSk7CjE0NDc0OiAgcmV0
dXJuIGFyY2hfYXRvbWljX3RyeV9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgNzM0ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbAoxNDQ3NDogYXRvbWljX3N1Yl9hbmRfdGVzdChpbnQgaSwgYXRvbWljX3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAg
cmV0dXJuIGFyY2hfYXRvbWljX3N1Yl9hbmRfdGVzdChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2RlY19hbmRf
dGVzdChhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBz
aXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9hdG9taWNfZGVjX2FuZF90ZXN0KHYpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0
OiBhdG9taWNfaW5jX2FuZF90ZXN0KGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGthc2Fu
X2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pY19p
bmNfYW5kX3Rlc3Qodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19hZGRfbmVnYXRpdmUoaW50IGksIGF0b21pY190ICp2
KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3
NDogIHJldHVybiBhcmNoX2F0b21pY19hZGRfbmVnYXRpdmUoaSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAjIDgzMyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NAoxNDQ3NDogYXRvbWljNjRfcmVhZChjb25zdCBhdG9taWM2NF90ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIGthc2FuX2NoZWNrX3JlYWQodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJu
IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODUxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRv
bWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2No
ZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIGFyY2hfYXRvbWljNjRfc2V0KHYsIGkp
OwoxNDQ3NDogfQoxNDQ3NDogIyA4NjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5z
dHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWM2NF9hZGQoczY0IGksIGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2
KSk7CjE0NDc0OiAgYXJjaF9hdG9taWM2NF9hZGQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2FkZF9yZXR1cm4oczY0IGks
IGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6
ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfYWRkX3JldHVybihpLCB2KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgOTE4ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3Ry
dW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9mZXRjaF9hZGQoczY0IGksIGF0
b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9m
KCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfZmV0Y2hfYWRkKGksIHYpOwoxNDQ3
NDogfQoxNDQ3NDogIyA5NTcgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVu
dGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWM2NF9zdWIoczY0IGksIGF0b21pYzY0X3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0
NDc0OiAgYXJjaF9hdG9taWM2NF9zdWIoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X3N1Yl9yZXR1cm4oczY0IGksIGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2
KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTAwNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50
ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfc3ViKHM2NCBpLCBhdG9taWM2
NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikp
OwoxNDQ3NDogIHJldHVybiBhcmNoX2F0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTA0NiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pYzY0X2luYyhhdG9taWM2NF90ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIGFyY2hf
YXRvbWljNjRfaW5jKHYpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTM2ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljNjRf
ZGVjKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwg
c2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJjaF9hdG9taWM2NF9kZWModik7CjE0NDc0OiB9CjE0NDc0
OiAjIDEyMjUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkCjE0NDc0OiBhdG9taWM2NF9hbmQoczY0IGksIGF0b21pYzY0X3QgKnYpCjE0NDc0
OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgYXJj
aF9hdG9taWM2NF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FuZChzNjQgaSwgYXRvbWljNjRfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6
ICByZXR1cm4gYXJjaF9hdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAj
IDEzMjMgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkCjE0NDc0OiBhdG9taWM2NF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0
b21pYzY0X29yKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
czY0CjE0NDc0OiBhdG9taWM2NF9mZXRjaF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1
cm4gYXJjaF9hdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTM3MSAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
MTQ0NzQ6IGF0b21pYzY0X3hvcihzNjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICBhcmNoX2F0b21pYzY0
X3hvcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAox
NDQ3NDogYXRvbWljNjRfZmV0Y2hfeG9yKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewox
NDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDogIHJldHVybiBh
cmNoX2F0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQyMCAiLi9p
bmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3
NDogYXRvbWljNjRfeGNoZyhhdG9taWM2NF90ICp2LCBzNjQgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBr
YXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9hdG9t
aWM2NF94Y2hnKHYsIGkpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNDYwICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9j
bXB4Y2hnKGF0b21pYzY0X3QgKnYsIHM2NCBvbGQsIHM2NCBuZXcpCjE0NDc0OiB7CjE0NDc0OiAg
a2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRv
bWljNjRfY21weGNoZyh2LCBvbGQsIG5ldyk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1MDAgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0
OiBhdG9taWM2NF90cnlfY21weGNoZyhhdG9taWM2NF90ICp2LCBzNjQgKm9sZCwgczY0IG5ldykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6
ICBrYXNhbl9jaGVja193cml0ZShvbGQsIHNpemVvZigqb2xkKSk7CjE0NDc0OiAgcmV0dXJuIGFy
Y2hfYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgb2xkLCBuZXcpOwoxNDQ3NDogfQoxNDQ3NDogIyAx
NTQ0ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbAoxNDQ3NDogYXRvbWljNjRfc3ViX2FuZF90ZXN0KHM2NCBpLCBhdG9taWM2NF90ICp2KQox
NDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoxNDQ3NDog
IHJldHVybiBhcmNoX2F0b21pYzY0X3N1Yl9hbmRfdGVzdChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljNjRfZGVj
X2FuZF90ZXN0KGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAga2FzYW5fY2hlY2tfd3Jp
dGUodiwgc2l6ZW9mKCp2KSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfYXRvbWljNjRfZGVjX2FuZF90
ZXN0KHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sCjE0NDc0OiBhdG9taWM2NF9pbmNfYW5kX3Rlc3QoYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4g
YXJjaF9hdG9taWM2NF9pbmNfYW5kX3Rlc3Qodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pYzY0X2FkZF9uZWdhdGl2ZShz
NjQgaSwgYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZSh2
LCBzaXplb2YoKnYpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9hdG9taWM2NF9hZGRfbmVnYXRpdmUo
aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDI2NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9t
aWMuaCIgMgoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLmgiIDIKMTQ0NzQ6ICMg
NzQgIi4vaW5jbHVkZS9saW51eC9hdG9taWMuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L2F0b21pYy1mYWxsYmFjay5oIiAxCjE0NDc0OiAjIDc5ICIuL2luY2x1ZGUvbGludXgvYXRvbWlj
LWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19yZWFkX2FjcXVpcmUoY29uc3Qg
YXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZigqJih2KS0+Y291
bnRlcikgX19fcDEgPSAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+Y291bnRlcikgX192YWw7IGNo
YXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigqJih2KS0+Y291bnRl
ciksIF9fdS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBlbHNlIF9fcmVhZF9vbmNlX3Np
emVfbm9jaGVjaygmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5jb3Vu
dGVyKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgZXh0ZXJuIHZvaWQg
X19jb21waWxldGltZV9hc3NlcnRfODIodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJO
ZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlm
ICghKChzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYo
diktPmNvdW50ZXIpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9
PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihsb25nKSkp
KSBfX2NvbXBpbGV0aW1lX2Fzc2VydF84MigpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0
aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgX19fcDE7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfc2V0X3JlbGVhc2Uo
YXRvbWljX3QgKnYsIGludCBpKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyBleHRlcm4gdm9p
ZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF85MSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18o
Ik5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsg
aWYgKCEoKHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigq
Jih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIp
ID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGxvbmcp
KSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzkxKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9s
YXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+Y291bnRl
cikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYodikt
PmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJih2KS0+Y291bnRlciksIF9f
dS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgw
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjgxICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNr
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19pbmNfcmV0dXJuKGF0b21pY190ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfYWRkX3JldHVybigxLCB2KTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfaW5j
X3JldHVybl9hY3F1aXJlKGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9t
aWNfYWRkX3JldHVybigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfaW5jX3JldHVybl9yZWxlYXNlKGF0b21pY190
ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfYWRkX3JldHVybigxLCB2KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBh
dG9taWNfaW5jX3JldHVybl9yZWxheGVkKGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWNfYWRkX3JldHVybigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzYyICIuL2lu
Y2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19m
ZXRjaF9pbmMoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRj
aF9hZGQoMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludAoxNDQ3NDogYXRvbWljX2ZldGNoX2luY19hY3F1aXJlKGF0b21pY190ICp2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfZmV0Y2hfYWRkKDEsIHYpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRj
aF9pbmNfcmVsZWFzZShhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
X2ZldGNoX2FkZCgxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfZmV0Y2hfaW5jX3JlbGF4ZWQoYXRvbWljX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hZGQoMSwgdik7CjE0NDc0OiB9
CjE0NDc0OiAjIDQ1MiAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50CjE0NDc0OiBhdG9taWNfZGVjX3JldHVybihhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljX3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX2RlY19yZXR1cm5fYWNx
dWlyZShhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljX3N1Yl9yZXR1
cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludAoxNDQ3NDogYXRvbWljX2RlY19yZXR1cm5fcmVsZWFzZShhdG9taWNfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljX3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX2RlY19y
ZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDUzMyAiLi9pbmNsdWRlL2xpbnV4
L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfZmV0Y2hfZGVjKGF0
b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWNfZmV0Y2hfc3ViKDEsIHYp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0
NzQ6IGF0b21pY19mZXRjaF9kZWNfYWNxdWlyZShhdG9taWNfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljX2ZldGNoX3N1YigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBhdG9taWNfZmV0Y2hfZGVjX3JlbGVh
c2UoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9zdWIo
MSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dAoxNDQ3NDogYXRvbWljX2ZldGNoX2RlY19yZWxheGVkKGF0b21pY190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWNfZmV0Y2hfc3ViKDEsIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA2
NDkgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6
IGF0b21pY19hbmRub3QoaW50IGksIGF0b21pY190ICp2KQoxNDQ3NDogewoxNDQ3NDogIGF0b21p
Y19hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NjUgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogYXRvbWljX2ZldGNoX2FuZG5vdChpbnQg
aSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmQo
fmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hbmRub3RfYWNxdWlyZShpbnQgaSwgYXRvbWljX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21p
Y19mZXRjaF9hbmRub3RfcmVsZWFzZShpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pY19mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hbmRub3Rf
cmVsYXhlZChpbnQgaSwgYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21p
Y19mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMDgzICIuL2luY2x1ZGUvbGlu
dXgvYXRvbWljLWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IGF0b21pY19mZXRjaF9hZGRf
dW5sZXNzKGF0b21pY190ICp2LCBpbnQgYSwgaW50IHUpCjE0NDc0OiB7CjE0NDc0OiAgaW50IGMg
PSBhdG9taWNfcmVhZCh2KTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsKMTQ0NzQ6ICAgaWYgKF9fYnVp
bHRpbl9leHBlY3QoISEoYyA9PSB1KSwgMCkpCjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdo
aWxlICghYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZjLCBjICsgYSkpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIGM7CjE0NDc0OiB9CjE0NDc0OiAjIDExMDggIi4vaW5jbHVkZS9saW51eC9hdG9taWMt
ZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19hZGRfdW5sZXNzKGF0b21pY190
ICp2LCBpbnQgYSwgaW50IHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19mZXRjaF9h
ZGRfdW5sZXNzKHYsIGEsIHUpICE9IHU7CjE0NDc0OiB9CjE0NDc0OiAjIDExMjQgIi4vaW5jbHVk
ZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19pbmNf
bm90X3plcm8oYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19hZGRf
dW5sZXNzKHYsIDEsIDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sCjE0NDc0OiBhdG9taWNfaW5jX3VubGVzc19uZWdhdGl2ZShhdG9taWNfdCAq
dikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgYyA9IGF0b21pY19yZWFkKHYpOwoxNDQ3NDogCjE0NDc0
OiAgZG8gewoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVjdCghIShjIDwgMCksIDApKQoxNDQ3
NDogICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogIH0gd2hpbGUgKCFhdG9taWNfdHJ5X2NtcHhjaGco
diwgJmMsIGMgKyAxKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2Rl
Y191bmxlc3NfcG9zaXRpdmUoYXRvbWljX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgaW50IGMgPSBh
dG9taWNfcmVhZCh2KTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRp
bl9leHBlY3QoISEoYyA+IDApLCAwKSkKMTQ0NzQ6ICAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICB9
IHdoaWxlICghYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZjLCBjIC0gMSkpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludAoxNDQ3NDogYXRvbWljX2RlY19pZl9wb3NpdGl2ZShhdG9taWNfdCAqdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpbnQgZGVjLCBjID0gYXRvbWljX3JlYWQodik7CjE0NDc0OiAKMTQ0NzQ6
ICBkbyB7CjE0NDc0OiAgIGRlYyA9IGMgLSAxOwoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVj
dCghIShkZWMgPCAwKSwgMCkpCjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdoaWxlICghYXRv
bWljX3RyeV9jbXB4Y2hnKHYsICZjLCBkZWMpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBkZWM7
CjE0NDc0OiB9CjE0NDc0OiAjIDExODkgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2su
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfcmVhZF9hY3F1aXJlKGNvbnN0IGF0b21pYzY0
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZigqJih2KS0+Y291bnRlcikg
X19fcDEgPSAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+Y291bnRlcikgX192YWw7IGNoYXIgX19j
WzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigqJih2KS0+Y291bnRlciksIF9f
dS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9j
aGVjaygmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5jb3VudGVyKSk7
IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21w
aWxldGltZV9hc3NlcnRfMTE5Mih2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQg
bmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEo
KHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJih2KS0+
Y291bnRlcikgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNp
emVvZihpbnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGxvbmcpKSkpIF9f
Y29tcGlsZXRpbWVfYXNzZXJ0XzExOTIoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7IF9fX3AxOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljNjRfc2V0X3JlbGVhc2Uo
YXRvbWljNjRfdCAqdiwgczY0IGkpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzEyMDEodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJv
cl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIp
KSk7IGlmICghKChzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihjaGFyKSB8fCBzaXpl
b2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKHYpLT5jb3Vu
dGVyKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihs
b25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xMjAxKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJih2KS0+
Y291bnRlcikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
KiYodiktPmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJih2KS0+Y291bnRl
ciksIF9fdS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBfX3UuX192YWw7IH0pOyB9IHdo
aWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTM5MSAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1m
YWxsYmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9pbmNfcmV0dXJuKGF0b21pYzY0
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4oMSwgdik7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3
NDogYXRvbWljNjRfaW5jX3JldHVybl9hY3F1aXJlKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfaW5jX3Jl
dHVybl9yZWxlYXNlKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21p
YzY0X2FkZF9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfaW5jX3JldHVybl9yZWxheGVkKGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF9yZXR1cm4oMSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAjIDE0NzIgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJh
Y2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfaW5jKGF0b21pYzY0X3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZCgxLCB2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9t
aWM2NF9mZXRjaF9pbmNfYWNxdWlyZShhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWM2NF9mZXRjaF9hZGQoMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfaW5jX3JlbGVh
c2UoYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hf
YWRkKDEsIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2luY19yZWxheGVkKGF0b21pYzY0X3QgKnYpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZCgxLCB2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTU2MiAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
czY0CjE0NDc0OiBhdG9taWM2NF9kZWNfcmV0dXJuKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGF0b21pYzY0X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZGVjX3Jl
dHVybl9hY3F1aXJlKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21p
YzY0X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZGVjX3JldHVybl9yZWxlYXNlKGF0b21p
YzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3N1Yl9yZXR1cm4oMSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAox
NDQ3NDogYXRvbWljNjRfZGVjX3JldHVybl9yZWxheGVkKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3N1Yl9yZXR1cm4oMSwgdik7CjE0NDc0OiB9CjE0NDc0
OiAjIDE2NDMgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAox
NDQ3NDogYXRvbWljNjRfZmV0Y2hfZGVjKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pYzY0X2ZldGNoX3N1YigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CjE0NDc0OiBhdG9taWM2NF9mZXRjaF9kZWNfYWNx
dWlyZShhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRj
aF9zdWIoMSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfZGVjX3JlbGVhc2UoYXRvbWljNjRfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKDEsIHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0b21p
YzY0X2ZldGNoX2RlY19yZWxheGVkKGF0b21pYzY0X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGF0b21pYzY0X2ZldGNoX3N1YigxLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTc1OSAiLi9p
bmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWlj
NjRfYW5kbm90KHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIGF0b21pYzY0
X2FuZCh+aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAjIDE3NzUgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZmV0Y2hfYW5kbm90KHM2
NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRj
aF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQKMTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FuZG5vdF9hY3F1aXJlKHM2NCBpLCBhdG9t
aWM2NF90ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQofmks
IHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQK
MTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FuZG5vdF9yZWxlYXNlKHM2NCBpLCBhdG9taWM2NF90ICp2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQofmksIHYpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKMTQ0NzQ6IGF0
b21pYzY0X2ZldGNoX2FuZG5vdF9yZWxheGVkKHM2NCBpLCBhdG9taWM2NF90ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQofmksIHYpOwoxNDQ3NDogfQoxNDQ3
NDogIyAyMTkzICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQK
MTQ0NzQ6IGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3MoYXRvbWljNjRfdCAqdiwgczY0IGEsIHM2
NCB1KQoxNDQ3NDogewoxNDQ3NDogIHM2NCBjID0gYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IAox
NDQ3NDogIGRvIHsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoYyA9PSB1KSwgMCkp
CjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdoaWxlICghYXRvbWljNjRfdHJ5X2NtcHhjaGco
diwgJmMsIGMgKyBhKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYzsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjIxOCAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAox
NDQ3NDogYXRvbWljNjRfYWRkX3VubGVzcyhhdG9taWM2NF90ICp2LCBzNjQgYSwgczY0IHUpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3ModiwgYSwgdSkg
IT0gdTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjIzNCAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxs
YmFjay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljNjRfaW5jX25vdF96ZXJvKGF0b21pYzY0
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2FkZF91bmxlc3ModiwgMSwg
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wK
MTQ0NzQ6IGF0b21pYzY0X2luY191bmxlc3NfbmVnYXRpdmUoYXRvbWljNjRfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBzNjQgYyA9IGF0b21pYzY0X3JlYWQodik7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7
CjE0NDc0OiAgIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGMgPCAwKSwgMCkpCjE0NDc0OiAgICBy
ZXR1cm4gZmFsc2U7CjE0NDc0OiAgfSB3aGlsZSAoIWF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsICZj
LCBjICsgMSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pYzY0X2RlY191
bmxlc3NfcG9zaXRpdmUoYXRvbWljNjRfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzNjQgYyA9IGF0
b21pYzY0X3JlYWQodik7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7CjE0NDc0OiAgIGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKGMgPiAwKSwgMCkpCjE0NDc0OiAgICByZXR1cm4gZmFsc2U7CjE0NDc0OiAg
fSB3aGlsZSAoIWF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsICZjLCBjIC0gMSkpOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NAoxNDQ3NDogYXRvbWljNjRfZGVjX2lmX3Bvc2l0aXZlKGF0b21pYzY0X3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAgczY0IGRlYywgYyA9IGF0b21pYzY0X3JlYWQodik7CjE0NDc0
OiAKMTQ0NzQ6ICBkbyB7CjE0NDc0OiAgIGRlYyA9IGMgLSAxOwoxNDQ3NDogICBpZiAoX19idWls
dGluX2V4cGVjdCghIShkZWMgPCAwKSwgMCkpCjE0NDc0OiAgICBicmVhazsKMTQ0NzQ6ICB9IHdo
aWxlICghYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgJmMsIGRlYykpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIGRlYzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzUgIi4vaW5jbHVkZS9saW51eC9hdG9taWMu
aCIgMgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9u
Zy5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oIgox
NDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgi
IDEKMTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oIiAyCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBhdG9taWM2NF90IGF0b21pY19sb25nX3Q7CjE0
NDc0OiAjIDI1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWxvbmcuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxv
bmcKMTQ0NzQ6IGF0b21pY19sb25nX3JlYWQoY29uc3QgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfcmVhZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfcmVhZF9hY3F1aXJlKGNvbnN0IGF0b21pY19sb25n
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3JlYWRfYWNxdWlyZSh2KTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2xvbmdfc2V0KGF0b21p
Y19sb25nX3QgKnYsIGxvbmcgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF9zZXQodiwgaSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX3NldF9yZWxl
YXNlKGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF9z
ZXRfcmVsZWFzZSh2LCBpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRv
bWljX2xvbmdfYWRkKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBh
dG9taWM2NF9hZGQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0
b21pY19sb25nX2FkZF9yZXR1cm4obG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19hZGRfcmV0dXJuX2FjcXVpcmUobG9uZyBp
LCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9hZGRf
cmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNf
bG9uZ19hZGRfcmV0dXJuX3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19hZGRfcmV0dXJuX3JlbGF4ZWQobG9u
ZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9h
ZGRfcmV0dXJuKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9t
aWNfbG9uZ19mZXRjaF9hZGQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2FkZF9hY3F1aXJlKGxvbmcgaSwgYXRv
bWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYWRk
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19m
ZXRjaF9hZGRfcmVsZWFzZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZChpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfYWRkX3JlbGF4ZWQobG9uZyBpLCBhdG9t
aWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQo
aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX3N1
Yihsb25nIGksIGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfc3Vi
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19z
dWJfcmV0dXJuKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9u
ZwoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX3JldHVybl9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xv
bmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX3Jl
dHVybl9yZWxlYXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
bG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX3JldHVybl9yZWxheGVkKGxvbmcgaSwgYXRvbWlj
X2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihp
LCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0
Y2hfc3ViKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
YXRvbWljNjRfZmV0Y2hfc3ViKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0
NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9zdWJfYWNxdWlyZShsb25nIGksIGF0b21pY19sb25nX3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfc3ViX3Jl
bGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBh
dG9taWM2NF9mZXRjaF9zdWIoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0
NzQ6IGF0b21pY19sb25nX2ZldGNoX3N1Yl9yZWxheGVkKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAq
dikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKGksIHYpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhdG9taWNfbG9uZ19pbmMoYXRvbWljX2xv
bmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF9pbmModik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2luY19yZXR1cm4oYXRvbWljX2xvbmdf
dCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfaW5jX3JldHVybih2KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfaW5jX3JldHVybl9h
Y3F1aXJlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0
X2luY19yZXR1cm5fYWNxdWlyZSh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3
NDogYXRvbWljX2xvbmdfaW5jX3JldHVybl9yZWxlYXNlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2luY19yZXR1cm5fcmVsZWFzZSh2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfaW5jX3JldHVybl9yZWxh
eGVkKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2lu
Y19yZXR1cm5fcmVsYXhlZCh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDog
YXRvbWljX2xvbmdfZmV0Y2hfaW5jKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pYzY0X2ZldGNoX2luYyh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9u
ZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfaW5jX2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfaW5jX2FjcXVpcmUodik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2luY19y
ZWxlYXNlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0
X2ZldGNoX2luY19yZWxlYXNlKHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0
OiBhdG9taWNfbG9uZ19mZXRjaF9pbmNfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9pbmNfcmVsYXhlZCh2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2xvbmdfZGVjKGF0b21pY19sb25nX3Qg
KnYpCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfZGVjKHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19kZWNfcmV0dXJuKGF0b21pY19sb25nX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2RlY19yZXR1cm4odik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2RlY19yZXR1cm5fYWNxdWly
ZShhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNf
cmV0dXJuX2FjcXVpcmUodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0
b21pY19sb25nX2RlY19yZXR1cm5fcmVsZWFzZShhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNfcmV0dXJuX3JlbGVhc2Uodik7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2RlY19yZXR1cm5fcmVsYXhlZChh
dG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNfcmV0
dXJuX3JlbGF4ZWQodik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21p
Y19sb25nX2ZldGNoX2RlYyhhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBhdG9taWM2NF9mZXRjaF9kZWModik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0
NzQ6IGF0b21pY19sb25nX2ZldGNoX2RlY19hY3F1aXJlKGF0b21pY19sb25nX3QgKnYpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2RlY19hY3F1aXJlKHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9kZWNfcmVsZWFz
ZShhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRj
aF9kZWNfcmVsZWFzZSh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRv
bWljX2xvbmdfZmV0Y2hfZGVjX3JlbGF4ZWQoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfZGVjX3JlbGF4ZWQodik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX2FuZChsb25nIGksIGF0b21pY19sb25n
X3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfYW5kKGksIHYpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9hbmQobG9uZyBpLCBhdG9t
aWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQo
aSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2Zl
dGNoX2FuZF9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9hbmRfcmVsZWFzZShsb25nIGksIGF0b21p
Y19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZChp
LCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0
Y2hfYW5kX3JlbGF4ZWQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKMTQ0NzQ6IGF0b21pY19sb25nX2FuZG5vdChsb25nIGksIGF0b21pY19sb25nX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgYXRvbWljNjRfYW5kbm90KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19mZXRjaF9hbmRub3QobG9uZyBpLCBhdG9t
aWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmRu
b3QoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25n
X2ZldGNoX2FuZG5vdF9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X2FjcXVpcmUoaSwgdik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2FuZG5vdF9y
ZWxlYXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
YXRvbWljNjRfZmV0Y2hfYW5kbm90X3JlbGVhc2UoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX2FuZG5vdF9yZWxheGVkKGxvbmcgaSwg
YXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hf
YW5kbm90X3JlbGF4ZWQoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6
IGF0b21pY19sb25nX29yKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBhdG9taWM2NF9vcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDog
YXRvbWljX2xvbmdfZmV0Y2hfb3IobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfZmV0Y2hfb3JfYWNxdWlyZShsb25nIGksIGF0
b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX29y
KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19m
ZXRjaF9vcl9yZWxlYXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfZmV0Y2hfb3IoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX29yX3JlbGF4ZWQobG9uZyBpLCBhdG9taWNf
bG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogYXRvbWljX2xvbmdfeG9yKGxv
bmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICBhdG9taWM2NF94b3IoaSwg
dik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNo
X3hvcihsb25nIGksIGF0b21pY19sb25nX3QgKnYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0
b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3
NDogYXRvbWljX2xvbmdfZmV0Y2hfeG9yX2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9mZXRjaF94b3IoaSwgdik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2ZldGNoX3hvcl9yZWxl
YXNlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRv
bWljNjRfZmV0Y2hfeG9yKGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0
OiBhdG9taWNfbG9uZ19mZXRjaF94b3JfcmVsYXhlZChsb25nIGksIGF0b21pY19sb25nX3QgKnYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfeGNoZyhhdG9taWNfbG9u
Z190ICp2LCBsb25nIGkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3hjaGcodiwg
aSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX3hjaGdf
YWNxdWlyZShhdG9taWNfbG9uZ190ICp2LCBsb25nIGkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGF0b21pYzY0X3hjaGcodiwgaSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6
IGF0b21pY19sb25nX3hjaGdfcmVsZWFzZShhdG9taWNfbG9uZ190ICp2LCBsb25nIGkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX3hjaGdfcmVsYXhlZChhdG9taWNfbG9uZ190
ICp2LCBsb25nIGkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0b21pY19sb25nX2NtcHhjaGco
YXRvbWljX2xvbmdfdCAqdiwgbG9uZyBvbGQsIGxvbmcgbmV3KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwoxNDQ3NDogYXRvbWljX2xvbmdfY21weGNoZ19hY3F1aXJlKGF0b21pY19sb25nX3Qg
KnYsIGxvbmcgb2xkLCBsb25nIG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRf
Y21weGNoZyh2LCBvbGQsIG5ldyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6
IGF0b21pY19sb25nX2NtcHhjaGdfcmVsZWFzZShhdG9taWNfbG9uZ190ICp2LCBsb25nIG9sZCwg
bG9uZyBuZXcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2NtcHhjaGcodiwgb2xk
LCBuZXcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19j
bXB4Y2hnX3JlbGF4ZWQoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBvbGQsIGxvbmcgbmV3KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2xvbmdfdHJ5X2NtcHhjaGcoYXRv
bWljX2xvbmdfdCAqdiwgbG9uZyAqb2xkLCBsb25nIG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2NCAqKW9sZCwgbmV3KTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2xvbmdfdHJ5X2NtcHhjaGdfYWNxdWlyZShh
dG9taWNfbG9uZ190ICp2LCBsb25nICpvbGQsIGxvbmcgbmV3KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBhdG9taWM2NF90cnlfY21weGNoZyh2LCAoczY0ICopb2xkLCBuZXcpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBhdG9taWNfbG9uZ190cnlfY21weGNoZ19yZWxlYXNl
KGF0b21pY19sb25nX3QgKnYsIGxvbmcgKm9sZCwgbG9uZyBuZXcpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsIChzNjQgKilvbGQsIG5ldyk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX3RyeV9jbXB4Y2hnX3JlbGF4
ZWQoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyAqb2xkLCBsb25nIG5ldykKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2NCAqKW9sZCwgbmV3KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogYXRvbWljX2xvbmdfc3ViX2FuZF90ZXN0KGxv
bmcgaSwgYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRf
c3ViX2FuZF90ZXN0KGksIHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBh
dG9taWNfbG9uZ19kZWNfYW5kX3Rlc3QoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYXRvbWljNjRfZGVjX2FuZF90ZXN0KHYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sCjE0NDc0OiBhdG9taWNfbG9uZ19pbmNfYW5kX3Rlc3QoYXRvbWljX2xvbmdfdCAqdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRfaW5jX2FuZF90ZXN0KHYpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBhdG9taWNfbG9uZ19hZGRfbmVnYXRpdmUobG9u
ZyBpLCBhdG9taWNfbG9uZ190ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9h
ZGRfbmVnYXRpdmUoaSwgdik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKMTQ0NzQ6IGF0
b21pY19sb25nX2ZldGNoX2FkZF91bmxlc3MoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBhLCBsb25n
IHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3Modiwg
YSwgdSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX2Fk
ZF91bmxlc3MoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBhLCBsb25nIHUpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pYzY0X2FkZF91bmxlc3ModiwgYSwgdSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX2luY19ub3RfemVybyhhdG9taWNfbG9uZ190
ICp2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9pbmNfbm90X3plcm8odik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGF0b21pY19sb25nX2luY191bmxlc3Nf
bmVnYXRpdmUoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
NjRfaW5jX3VubGVzc19uZWdhdGl2ZSh2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAox
NDQ3NDogYXRvbWljX2xvbmdfZGVjX3VubGVzc19wb3NpdGl2ZShhdG9taWNfbG9uZ190ICp2KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBhdG9taWM2NF9kZWNfdW5sZXNzX3Bvc2l0aXZlKHYpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCjE0NDc0OiBhdG9taWNfbG9uZ19kZWNfaWZfcG9z
aXRpdmUoYXRvbWljX2xvbmdfdCAqdikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljNjRf
ZGVjX2lmX3Bvc2l0aXZlKHYpOwoxNDQ3NDogfQoxNDQ3NDogIyA3NyAiLi9pbmNsdWRlL2xpbnV4
L2F0b21pYy5oIiAyCjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgva2dkYi5oIiAyCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rZ2RiLmgiIDEKMTQ0NzQ6ICMg
MTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2dkYi5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiIDEKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvY29uc3Qu
aCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9s
aW51eC9jb25zdC5oIiAxCjE0NDc0OiAjIDUgIi4vaW5jbHVkZS9saW51eC9jb25zdC5oIiAyCjE0
NDc0OiAjIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VnbWVudC5oIiAyCjE0NDc0OiAjIDE2
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vY2FjaGUuaCIgMQoxNDQ3NDogIyAxNzAgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vc2VnbWVudC5oIiAyCjE0NDc0OiAjIDI0OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9z
ZWdtZW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHZkc29fZW5jb2RlX2NwdW5vZGUoaW50IGNw
dSwgdW5zaWduZWQgbG9uZyBub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAobm9kZSA8PCAx
MikgfCBjcHU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmRzb19yZWFkX2NwdW5vZGUo
dW5zaWduZWQgKmNwdSwgdW5zaWduZWQgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHA7CjE0NDc0OiAjIDI2NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCjE0
NDc0OiAgYXNtIF9faW5saW5lIHZvbGF0aWxlICgiIyBBTFQ6IG9sZG5zdHJcbiIgIjY2MTpcblx0
IiAibHNsICVbc2VnXSwlW3BdIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAg
LSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkg
KiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4
OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQg
IiAiKDE2KjMyKzIyKSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUg
IiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJc
biIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBc
ImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAi
LmJ5dGUgMHhmMywweDBmLDB4YzcsMHhmOCIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rp
b25cbiIgOiBbcF0gIj1hIiAocCkgOiAiaSIgKDApLCBbc2VnXSAiciIgKCgxNSo4ICsgMykpKQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoY3B1KQoxNDQ3NDogICAqY3B1ID0gKHAgJiAw
eGZmZik7CjE0NDc0OiAgaWYgKG5vZGUpCjE0NDc0OiAgICpub2RlID0gKHAgPj4gMTIpOwoxNDQ3
NDogfQoxNDQ3NDogIyAzMDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VnbWVudC5oIgoxNDQ3
NDogZXh0ZXJuIGNvbnN0IGNoYXIgZWFybHlfaWR0X2hhbmRsZXJfYXJyYXlbMzJdWzldOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgZWFybHlfaWdub3JlX2lycSh2b2lkKTsKMTQ0NzQ6ICMgMzQ3ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19sb2Fkc2VnbWVudF9m
cyh1bnNpZ25lZCBzaG9ydCB2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIgkJ
CQkJCVxuIgoxNDQ3NDogICAgICAgICIxOgltb3Z3ICUwLCAlJWZzCQkJXG4iCjE0NDc0OiAgICAg
ICAgIjI6CQkJCQlcbiIKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICIgLnB1c2hzZWN0aW9uIFwiX19l
eF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjFiIiAiKSAtIC5c
biIgIiAubG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2NsZWFy
X2ZzIiAiKSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoxNDQ3NDogCjE0NDc0OiAgICAgICAgOiA6
ICJybSIgKHZhbHVlKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3BhZ2VfdHlwZXMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbWVtX2VuY3J5cHQuaCIgMQox
NDQ3NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L21lbV9lbmNyeXB0LmgiCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaCIgMQoxNDQ3NDogIyAxNyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2lu
Y2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDEKMTQ0NzQ6ICMgNDMgIi4vYXJjaC94ODYvaW5j
bHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Nj
cmVlbl9pbmZvLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zY3JlZW5faW5mby5oIiAxCjE0NDc0OiAjIDExICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9zY3JlZW5faW5mby5oIgoxNDQ3NDogc3RydWN0IHNjcmVlbl9pbmZv
IHsKMTQ0NzQ6ICBfX3U4IG9yaWdfeDsKMTQ0NzQ6ICBfX3U4IG9yaWdfeTsKMTQ0NzQ6ICBfX3Ux
NiBleHRfbWVtX2s7CjE0NDc0OiAgX191MTYgb3JpZ192aWRlb19wYWdlOwoxNDQ3NDogIF9fdTgg
b3JpZ192aWRlb19tb2RlOwoxNDQ3NDogIF9fdTggb3JpZ192aWRlb19jb2xzOwoxNDQ3NDogIF9f
dTggZmxhZ3M7CjE0NDc0OiAgX191OCB1bnVzZWQyOwoxNDQ3NDogIF9fdTE2IG9yaWdfdmlkZW9f
ZWdhX2J4OwoxNDQ3NDogIF9fdTE2IHVudXNlZDM7CjE0NDc0OiAgX191OCBvcmlnX3ZpZGVvX2xp
bmVzOwoxNDQ3NDogIF9fdTggb3JpZ192aWRlb19pc1ZHQTsKMTQ0NzQ6ICBfX3UxNiBvcmlnX3Zp
ZGVvX3BvaW50czsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgbGZiX3dpZHRoOwoxNDQ3
NDogIF9fdTE2IGxmYl9oZWlnaHQ7CjE0NDc0OiAgX191MTYgbGZiX2RlcHRoOwoxNDQ3NDogIF9f
dTMyIGxmYl9iYXNlOwoxNDQ3NDogIF9fdTMyIGxmYl9zaXplOwoxNDQ3NDogIF9fdTE2IGNsX21h
Z2ljLCBjbF9vZmZzZXQ7CjE0NDc0OiAgX191MTYgbGZiX2xpbmVsZW5ndGg7CjE0NDc0OiAgX191
OCByZWRfc2l6ZTsKMTQ0NzQ6ICBfX3U4IHJlZF9wb3M7CjE0NDc0OiAgX191OCBncmVlbl9zaXpl
OwoxNDQ3NDogIF9fdTggZ3JlZW5fcG9zOwoxNDQ3NDogIF9fdTggYmx1ZV9zaXplOwoxNDQ3NDog
IF9fdTggYmx1ZV9wb3M7CjE0NDc0OiAgX191OCByc3ZkX3NpemU7CjE0NDc0OiAgX191OCByc3Zk
X3BvczsKMTQ0NzQ6ICBfX3UxNiB2ZXNhcG1fc2VnOwoxNDQ3NDogIF9fdTE2IHZlc2FwbV9vZmY7
CjE0NDc0OiAgX191MTYgcGFnZXM7CjE0NDc0OiAgX191MTYgdmVzYV9hdHRyaWJ1dGVzOwoxNDQ3
NDogIF9fdTMyIGNhcGFiaWxpdGllczsKMTQ0NzQ6ICBfX3UzMiBleHRfbGZiX2Jhc2U7CjE0NDc0
OiAgX191OCBfcmVzZXJ2ZWRbMl07CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwox
NDQ3NDogIyA2ICIuL2luY2x1ZGUvbGludXgvc2NyZWVuX2luZm8uaCIgMgoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOwoxNDQ3NDogIyA0NCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9hcG1fYmlvcy5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9hcG1f
Ymlvcy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9hcG1fYmlvcy5oIiAxCjE0
NDc0OiAjIDIyICIuL2luY2x1ZGUvdWFwaS9saW51eC9hcG1fYmlvcy5oIgoxNDQ3NDogdHlwZWRl
ZiB1bnNpZ25lZCBzaG9ydCBhcG1fZXZlbnRfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgc2hv
cnQgYXBtX2V2ZW50aW5mb190OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXBtX2Jpb3NfaW5mbyB7
CjE0NDc0OiAgX191MTYgdmVyc2lvbjsKMTQ0NzQ6ICBfX3UxNiBjc2VnOwoxNDQ3NDogIF9fdTMy
IG9mZnNldDsKMTQ0NzQ6ICBfX3UxNiBjc2VnXzE2OwoxNDQ3NDogIF9fdTE2IGRzZWc7CjE0NDc0
OiAgX191MTYgZmxhZ3M7CjE0NDc0OiAgX191MTYgY3NlZ19sZW47CjE0NDc0OiAgX191MTYgY3Nl
Z18xNl9sZW47CjE0NDc0OiAgX191MTYgZHNlZ19sZW47CjE0NDc0OiB9OwoxNDQ3NDogIyAxMzMg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2FwbV9iaW9zLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2lvY3RsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lvY3RsLmgiIDEK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2lvY3RsLmgiIDEKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9pb2N0bC5oIiAxCjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9pb2N0bC5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGludCBfX2ludmFsaWRfc2l6ZV9hcmd1bWVudF9mb3JfSU9DOwoxNDQ3NDogIyAyICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lvY3RsLmgiIDIKMTQ0NzQ6ICMg
NiAiLi9pbmNsdWRlL3VhcGkvbGludXgvaW9jdGwuaCIgMgoxNDQ3NDogIyAxMzQgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L2FwbV9iaW9zLmgiIDIKMTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9saW51eC9h
cG1fYmlvcy5oIiAyCjE0NDc0OiAjIDI2ICIuL2luY2x1ZGUvbGludXgvYXBtX2Jpb3MuaCIKMTQ0
NzQ6IHN0cnVjdCBhcG1faW5mbyB7CjE0NDc0OiAgc3RydWN0IGFwbV9iaW9zX2luZm8gYmlvczsK
MTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBjb25uZWN0aW9uX3ZlcnNpb247CjE0NDc0OiAgaW50IGdl
dF9wb3dlcl9zdGF0dXNfYnJva2VuOwoxNDQ3NDogIGludCBnZXRfcG93ZXJfc3RhdHVzX3N3YWJp
bm1pbnV0ZXM7CjE0NDc0OiAgaW50IGFsbG93X2ludHM7CjE0NDc0OiAgaW50IGZvcmJpZF9pZGxl
OwoxNDQ3NDogIGludCByZWFsbW9kZV9wb3dlcl9vZmY7CjE0NDc0OiAgaW50IGRpc2FibGVkOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgODUgIi4vaW5jbHVkZS9saW51eC9hcG1fYmlvcy5oIgoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBhcG1faW5mbyBhcG1faW5mbzsKMTQ0NzQ6ICMgNDUgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvZWRkLmgiIDEKMTQ0NzQ6ICMgMjQgIi4vaW5jbHVkZS9saW51eC9lZGQuaCIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZWRkLmgiIDEKMTQ0NzQ6ICMgNzIgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2VkZC5oIgoxNDQ3NDogc3RydWN0IGVkZF9kZXZpY2VfcGFyYW1zIHsKMTQ0NzQ6
ICBfX3UxNiBsZW5ndGg7CjE0NDc0OiAgX191MTYgaW5mb19mbGFnczsKMTQ0NzQ6ICBfX3UzMiBu
dW1fZGVmYXVsdF9jeWxpbmRlcnM7CjE0NDc0OiAgX191MzIgbnVtX2RlZmF1bHRfaGVhZHM7CjE0
NDc0OiAgX191MzIgc2VjdG9yc19wZXJfdHJhY2s7CjE0NDc0OiAgX191NjQgbnVtYmVyX29mX3Nl
Y3RvcnM7CjE0NDc0OiAgX191MTYgYnl0ZXNfcGVyX3NlY3RvcjsKMTQ0NzQ6ICBfX3UzMiBkcHRl
X3B0cjsKMTQ0NzQ6ICBfX3UxNiBrZXk7CjE0NDc0OiAgX191OCBkZXZpY2VfcGF0aF9pbmZvX2xl
bmd0aDsKMTQ0NzQ6ICBfX3U4IHJlc2VydmVkMjsKMTQ0NzQ6ICBfX3UxNiByZXNlcnZlZDM7CjE0
NDc0OiAgX191OCBob3N0X2J1c190eXBlWzRdOwoxNDQ3NDogIF9fdTggaW50ZXJmYWNlX3R5cGVb
OF07CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgX191MTYgYmFz
ZV9hZGRyZXNzOwoxNDQ3NDogICAgX191MTYgcmVzZXJ2ZWQxOwoxNDQ3NDogICAgX191MzIgcmVz
ZXJ2ZWQyOwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBpc2E7CjE0NDc0OiAg
IHN0cnVjdCB7CjE0NDc0OiAgICBfX3U4IGJ1czsKMTQ0NzQ6ICAgIF9fdTggc2xvdDsKMTQ0NzQ6
ICAgIF9fdTggZnVuY3Rpb247CjE0NDc0OiAgICBfX3U4IGNoYW5uZWw7CjE0NDc0OiAgICBfX3Uz
MiByZXNlcnZlZDsKMTQ0NzQ6ICAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgcGNpOwoxNDQ3
NDogCjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICAg
fSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaWJuZDsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6
ICAgIF9fdTY0IHJlc2VydmVkOwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB4
cHJzOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQ7CjE0NDc0OiAg
IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGh0cHQ7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0
OiAgICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkg
dW5rbm93bjsKMTQ0NzQ6ICB9IGludGVyZmFjZV9wYXRoOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6
ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTggZGV2aWNlOwoxNDQ3NDogICAgX191OCByZXNlcnZl
ZDE7CjE0NDc0OiAgICBfX3UxNiByZXNlcnZlZDI7CjE0NDc0OiAgICBfX3UzMiByZXNlcnZlZDM7
CjE0NDc0OiAgICBfX3U2NCByZXNlcnZlZDQ7CjE0NDc0OiAgIH0gX19hdHRyaWJ1dGVfXyAoKHBh
Y2tlZCkpIGF0YTsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTggZGV2aWNlOwoxNDQ3
NDogICAgX191OCBsdW47CjE0NDc0OiAgICBfX3U4IHJlc2VydmVkMTsKMTQ0NzQ6ICAgIF9fdTgg
cmVzZXJ2ZWQyOwoxNDQ3NDogICAgX191MzIgcmVzZXJ2ZWQzOwoxNDQ3NDogICAgX191NjQgcmVz
ZXJ2ZWQ0OwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBhdGFwaTsKMTQ0NzQ6
ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTE2IGlkOwoxNDQ3NDogICAgX191NjQgbHVuOwoxNDQ3
NDogICAgX191MTYgcmVzZXJ2ZWQxOwoxNDQ3NDogICAgX191MzIgcmVzZXJ2ZWQyOwoxNDQ3NDog
ICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBzY3NpOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogICAgX191NjQgc2VyaWFsX251bWJlcjsKMTQ0NzQ6ICAgIF9fdTY0IHJlc2VydmVkOwoxNDQ3
NDogICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB1c2I7CjE0NDc0OiAgIHN0cnVjdCB7CjE0
NDc0OiAgICBfX3U2NCBldWk7CjE0NDc0OiAgICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICAgfSBf
X2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaTEzOTQ7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAg
ICBfX3U2NCB3d2lkOwoxNDQ3NDogICAgX191NjQgbHVuOwoxNDQ3NDogICB9IF9fYXR0cmlidXRl
X18gKChwYWNrZWQpKSBmaWJyZTsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIF9fdTY0IGlk
ZW50aXR5X3RhZzsKMTQ0NzQ6ICAgIF9fdTY0IHJlc2VydmVkOwoxNDQ3NDogICB9IF9fYXR0cmli
dXRlX18gKChwYWNrZWQpKSBpMm87CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBfX3UzMiBh
cnJheV9udW1iZXI7CjE0NDc0OiAgICBfX3UzMiByZXNlcnZlZDE7CjE0NDc0OiAgICBfX3U2NCBy
ZXNlcnZlZDI7CjE0NDc0OiAgIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHJhaWQ7CjE0NDc0
OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBfX3U4IGRldmljZTsKMTQ0NzQ6ICAgIF9fdTggcmVzZXJ2
ZWQxOwoxNDQ3NDogICAgX191MTYgcmVzZXJ2ZWQyOwoxNDQ3NDogICAgX191MzIgcmVzZXJ2ZWQz
OwoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQ0OwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSBzYXRhOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQx
OwoxNDQ3NDogICAgX191NjQgcmVzZXJ2ZWQyOwoxNDQ3NDogICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSB1bmtub3duOwoxNDQ3NDogIH0gZGV2aWNlX3BhdGg7CjE0NDc0OiAgX191OCByZXNl
cnZlZDQ7CjE0NDc0OiAgX191OCBjaGVja3N1bTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKHBh
Y2tlZCkpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZWRkX2luZm8gewoxNDQ3NDogIF9fdTggZGV2
aWNlOwoxNDQ3NDogIF9fdTggdmVyc2lvbjsKMTQ0NzQ6ICBfX3UxNiBpbnRlcmZhY2Vfc3VwcG9y
dDsKMTQ0NzQ6ICBfX3UxNiBsZWdhY3lfbWF4X2N5bGluZGVyOwoxNDQ3NDogIF9fdTggbGVnYWN5
X21heF9oZWFkOwoxNDQ3NDogIF9fdTggbGVnYWN5X3NlY3RvcnNfcGVyX3RyYWNrOwoxNDQ3NDog
IHN0cnVjdCBlZGRfZGV2aWNlX3BhcmFtcyBwYXJhbXM7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18g
KChwYWNrZWQpKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVkZCB7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1icl9zaWduYXR1cmVbMTZdOwoxNDQ3NDogIHN0cnVjdCBlZGRfaW5mbyBlZGRfaW5mb1s2
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIG1icl9zaWduYXR1cmVfbnI7CjE0NDc0OiAgdW5zaWdu
ZWQgY2hhciBlZGRfaW5mb19ucjsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvbGlu
dXgvZWRkLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGVkZCBlZGQ7
CjE0NDc0OiAjIDQ2ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDIK
MTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pc3QuaCIgMQoxNDQ3NDogIyA5ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2lzdC5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvdWFwaS9hc20vaXN0LmgiIDEKMTQ0NzQ6ICMgMjMgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBp
L2FzbS9pc3QuaCIKMTQ0NzQ6IHN0cnVjdCBpc3RfaW5mbyB7CjE0NDc0OiAgX191MzIgc2lnbmF0
dXJlOwoxNDQ3NDogIF9fdTMyIGNvbW1hbmQ7CjE0NDc0OiAgX191MzIgZXZlbnQ7CjE0NDc0OiAg
X191MzIgcGVyZl9sZXZlbDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDEwICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2lzdC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBpc3Rf
aW5mbyBpc3RfaW5mbzsKMTQ0NzQ6ICMgNDcgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9i
b290cGFyYW0uaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdmlkZW8vZWRpZC5oIiAxCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvdmlk
ZW8vZWRpZC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBlZGlkX2luZm8gewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZHVtbXlbMTI4XTsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS92aWRlby9lZGlkLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gc3RydWN0IGVkaWRfaW5mbyBlZGlkX2luZm87CjE0NDc0OiAjIDQ4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3Qgc2V0dXBfZGF0YSB7CjE0NDc0OiAgX191NjQgbmV4dDsKMTQ0NzQ6ICBfX3Uz
MiB0eXBlOwoxNDQ3NDogIF9fdTMyIGxlbjsKMTQ0NzQ6ICBfX3U4IGRhdGFbMF07CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXR1cF9pbmRpcmVjdCB7CjE0NDc0OiAg
X191MzIgdHlwZTsKMTQ0NzQ6ICBfX3UzMiByZXNlcnZlZDsKMTQ0NzQ6ICBfX3U2NCBsZW47CjE0
NDc0OiAgX191NjQgYWRkcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXR1cF9o
ZWFkZXIgewoxNDQ3NDogIF9fdTggc2V0dXBfc2VjdHM7CjE0NDc0OiAgX191MTYgcm9vdF9mbGFn
czsKMTQ0NzQ6ICBfX3UzMiBzeXNzaXplOwoxNDQ3NDogIF9fdTE2IHJhbV9zaXplOwoxNDQ3NDog
IF9fdTE2IHZpZF9tb2RlOwoxNDQ3NDogIF9fdTE2IHJvb3RfZGV2OwoxNDQ3NDogIF9fdTE2IGJv
b3RfZmxhZzsKMTQ0NzQ6ICBfX3UxNiBqdW1wOwoxNDQ3NDogIF9fdTMyIGhlYWRlcjsKMTQ0NzQ6
ICBfX3UxNiB2ZXJzaW9uOwoxNDQ3NDogIF9fdTMyIHJlYWxtb2RlX3N3dGNoOwoxNDQ3NDogIF9f
dTE2IHN0YXJ0X3N5c19zZWc7CjE0NDc0OiAgX191MTYga2VybmVsX3ZlcnNpb247CjE0NDc0OiAg
X191OCB0eXBlX29mX2xvYWRlcjsKMTQ0NzQ6ICBfX3U4IGxvYWRmbGFnczsKMTQ0NzQ6ICBfX3Ux
NiBzZXR1cF9tb3ZlX3NpemU7CjE0NDc0OiAgX191MzIgY29kZTMyX3N0YXJ0OwoxNDQ3NDogIF9f
dTMyIHJhbWRpc2tfaW1hZ2U7CjE0NDc0OiAgX191MzIgcmFtZGlza19zaXplOwoxNDQ3NDogIF9f
dTMyIGJvb3RzZWN0X2tsdWRnZTsKMTQ0NzQ6ICBfX3UxNiBoZWFwX2VuZF9wdHI7CjE0NDc0OiAg
X191OCBleHRfbG9hZGVyX3ZlcjsKMTQ0NzQ6ICBfX3U4IGV4dF9sb2FkZXJfdHlwZTsKMTQ0NzQ6
ICBfX3UzMiBjbWRfbGluZV9wdHI7CjE0NDc0OiAgX191MzIgaW5pdHJkX2FkZHJfbWF4OwoxNDQ3
NDogIF9fdTMyIGtlcm5lbF9hbGlnbm1lbnQ7CjE0NDc0OiAgX191OCByZWxvY2F0YWJsZV9rZXJu
ZWw7CjE0NDc0OiAgX191OCBtaW5fYWxpZ25tZW50OwoxNDQ3NDogIF9fdTE2IHhsb2FkZmxhZ3M7
CjE0NDc0OiAgX191MzIgY21kbGluZV9zaXplOwoxNDQ3NDogIF9fdTMyIGhhcmR3YXJlX3N1YmFy
Y2g7CjE0NDc0OiAgX191NjQgaGFyZHdhcmVfc3ViYXJjaF9kYXRhOwoxNDQ3NDogIF9fdTMyIHBh
eWxvYWRfb2Zmc2V0OwoxNDQ3NDogIF9fdTMyIHBheWxvYWRfbGVuZ3RoOwoxNDQ3NDogIF9fdTY0
IHNldHVwX2RhdGE7CjE0NDc0OiAgX191NjQgcHJlZl9hZGRyZXNzOwoxNDQ3NDogIF9fdTMyIGlu
aXRfc2l6ZTsKMTQ0NzQ6ICBfX3UzMiBoYW5kb3Zlcl9vZmZzZXQ7CjE0NDc0OiAgX191MzIga2Vy
bmVsX2luZm9fb2Zmc2V0OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHN5c19kZXNjX3RhYmxlIHsKMTQ0NzQ6ICBfX3UxNiBsZW5ndGg7CjE0
NDc0OiAgX191OCB0YWJsZVsxNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBvbHBjX29md19oZWFkZXIgewoxNDQ3NDogIF9fdTMyIG9md19tYWdpYzsKMTQ0NzQ6ICBf
X3UzMiBvZndfdmVyc2lvbjsKMTQ0NzQ6ICBfX3UzMiBjaWZfaGFuZGxlcjsKMTQ0NzQ6ICBfX3Uz
MiBpcnFfZGVzY190YWJsZTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBlZmlfaW5mbyB7CjE0NDc0OiAgX191MzIgZWZpX2xvYWRlcl9zaWdu
YXR1cmU7CjE0NDc0OiAgX191MzIgZWZpX3N5c3RhYjsKMTQ0NzQ6ICBfX3UzMiBlZmlfbWVtZGVz
Y19zaXplOwoxNDQ3NDogIF9fdTMyIGVmaV9tZW1kZXNjX3ZlcnNpb247CjE0NDc0OiAgX191MzIg
ZWZpX21lbW1hcDsKMTQ0NzQ6ICBfX3UzMiBlZmlfbWVtbWFwX3NpemU7CjE0NDc0OiAgX191MzIg
ZWZpX3N5c3RhYl9oaTsKMTQ0NzQ6ICBfX3UzMiBlZmlfbWVtbWFwX2hpOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMTQwICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiCjE0NDc0
OiBzdHJ1Y3QgYm9vdF9lODIwX2VudHJ5IHsKMTQ0NzQ6ICBfX3U2NCBhZGRyOwoxNDQ3NDogIF9f
dTY0IHNpemU7CjE0NDc0OiAgX191MzIgdHlwZTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CjE0NDc0OiAjIDE1NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJh
bS5oIgoxNDQ3NDogc3RydWN0IGphaWxob3VzZV9zZXR1cF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
ewoxNDQ3NDogICBfX3UxNiB2ZXJzaW9uOwoxNDQ3NDogICBfX3UxNiBjb21wYXRpYmxlX3ZlcnNp
b247CjE0NDc0OiAgfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBoZHI7CjE0NDc0OiAgc3RydWN0
IHsKMTQ0NzQ6ICAgX191MTYgcG1fdGltZXJfYWRkcmVzczsKMTQ0NzQ6ICAgX191MTYgbnVtX2Nw
dXM7CjE0NDc0OiAgIF9fdTY0IHBjaV9tbWNvbmZpZ19iYXNlOwoxNDQ3NDogICBfX3UzMiB0c2Nf
a2h6OwoxNDQ3NDogICBfX3UzMiBhcGljX2toejsKMTQ0NzQ6ICAgX191OCBzdGFuZGFyZF9pb2Fw
aWM7CjE0NDc0OiAgIF9fdTggY3B1X2lkc1syNTVdOwoxNDQ3NDogIH0gX19hdHRyaWJ1dGVfXygo
cGFja2VkKSkgdjE7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgX191MzIgZmxhZ3M7CjE0NDc0
OiAgfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB2MjsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygo
cGFja2VkKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJvb3RfcGFyYW1zIHsKMTQ0
NzQ6ICBzdHJ1Y3Qgc2NyZWVuX2luZm8gc2NyZWVuX2luZm87CjE0NDc0OiAgc3RydWN0IGFwbV9i
aW9zX2luZm8gYXBtX2Jpb3NfaW5mbzsKMTQ0NzQ6ICBfX3U4IF9wYWQyWzRdOwoxNDQ3NDogIF9f
dTY0IHRib290X2FkZHI7CjE0NDc0OiAgc3RydWN0IGlzdF9pbmZvIGlzdF9pbmZvOwoxNDQ3NDog
IF9fdTY0IGFjcGlfcnNkcF9hZGRyOwoxNDQ3NDogIF9fdTggX3BhZDNbOF07CjE0NDc0OiAgX191
OCBoZDBfaW5mb1sxNl07CjE0NDc0OiAgX191OCBoZDFfaW5mb1sxNl07CjE0NDc0OiAgc3RydWN0
IHN5c19kZXNjX3RhYmxlIHN5c19kZXNjX3RhYmxlOwoxNDQ3NDogIHN0cnVjdCBvbHBjX29md19o
ZWFkZXIgb2xwY19vZndfaGVhZGVyOwoxNDQ3NDogIF9fdTMyIGV4dF9yYW1kaXNrX2ltYWdlOwox
NDQ3NDogIF9fdTMyIGV4dF9yYW1kaXNrX3NpemU7CjE0NDc0OiAgX191MzIgZXh0X2NtZF9saW5l
X3B0cjsKMTQ0NzQ6ICBfX3U4IF9wYWQ0WzExNl07CjE0NDc0OiAgc3RydWN0IGVkaWRfaW5mbyBl
ZGlkX2luZm87CjE0NDc0OiAgc3RydWN0IGVmaV9pbmZvIGVmaV9pbmZvOwoxNDQ3NDogIF9fdTMy
IGFsdF9tZW1fazsKMTQ0NzQ6ICBfX3UzMiBzY3JhdGNoOwoxNDQ3NDogIF9fdTggZTgyMF9lbnRy
aWVzOwoxNDQ3NDogIF9fdTggZWRkYnVmX2VudHJpZXM7CjE0NDc0OiAgX191OCBlZGRfbWJyX3Np
Z19idWZfZW50cmllczsKMTQ0NzQ6ICBfX3U4IGtiZF9zdGF0dXM7CjE0NDc0OiAgX191OCBzZWN1
cmVfYm9vdDsKMTQ0NzQ6ICBfX3U4IF9wYWQ1WzJdOwoxNDQ3NDogIyAyMTIgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKMTQ0NzQ6ICBfX3U4IHNlbnRpbmVsOwoxNDQ3
NDogIF9fdTggX3BhZDZbMV07CjE0NDc0OiAgc3RydWN0IHNldHVwX2hlYWRlciBoZHI7CjE0NDc0
OiAgX191OCBfcGFkN1sweDI5MC0weDFmMS1zaXplb2Yoc3RydWN0IHNldHVwX2hlYWRlcildOwox
NDQ3NDogIF9fdTMyIGVkZF9tYnJfc2lnX2J1ZmZlclsxNl07CjE0NDc0OiAgc3RydWN0IGJvb3Rf
ZTgyMF9lbnRyeSBlODIwX3RhYmxlWzEyOF07CjE0NDc0OiAgX191OCBfcGFkOFs0OF07CjE0NDc0
OiAgc3RydWN0IGVkZF9pbmZvIGVkZGJ1Zls2XTsKMTQ0NzQ6ICBfX3U4IF9wYWQ5WzI3Nl07CjE0
NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoxNDQ3NDogIyAyNjIgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKMTQ0NzQ6IGVudW0geDg2X2hhcmR3YXJlX3N1
YmFyY2ggewoxNDQ3NDogIFg4Nl9TVUJBUkNIX1BDID0gMCwKMTQ0NzQ6ICBYODZfU1VCQVJDSF9M
R1VFU1QsCjE0NDc0OiAgWDg2X1NVQkFSQ0hfWEVOLAoxNDQ3NDogIFg4Nl9TVUJBUkNIX0lOVEVM
X01JRCwKMTQ0NzQ6ICBYODZfU1VCQVJDSF9DRTQxMDAsCjE0NDc0OiAgWDg2X05SX1NVQkFSQ0hT
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5
cHQuaCIgMgoxNDQ3NDogIyA1OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkg
X19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbWVfZWFybHlfZW5jcnlwdChyZXNvdXJjZV9zaXpl
X3QgcGFkZHIsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1
dGVfXygoX19jb2xkX18pKSBzbWVfZWFybHlfZGVjcnlwdChyZXNvdXJjZV9zaXplX3QgcGFkZHIs
CjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpIHNtZV9tYXBfYm9vdGRhdGEoY2hhciAqcmVhbF9tb2RlX2RhdGEpIHsg
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkg
X19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbWVfdW5tYXBfYm9vdGRhdGEoY2hhciAqcmVhbF9t
b2RlX2RhdGEpIHsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlv
bl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9lYXJseV9p
bml0KHZvaWQpIHsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlv
bl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9lbmNyeXB0
X2tlcm5lbChzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJwKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1
dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9f
KSkgc21lX2VuYWJsZShzdHJ1Y3QgYm9vdF9wYXJhbXMgKmJwKSB7IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBzbWVfYWN0aXZlKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHNldl9h
Y3RpdmUodm9pZCkgeyByZXR1cm4gZmFsc2U7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpCjE0NDc0OiBlYXJseV9zZXRfbWVtb3J5X2RlY3J5cHRlZCh1bnNpZ25lZCBsb25nIHZhZGRy
LCB1bnNpZ25lZCBsb25nIHNpemUpIHsgcmV0dXJuIDA7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0
ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18p
KQoxNDQ3NDogZWFybHlfc2V0X21lbW9yeV9lbmNyeXB0ZWQodW5zaWduZWQgbG9uZyB2YWRkciwg
dW5zaWduZWQgbG9uZyBzaXplKSB7IHJldHVybiAwOyB9CjE0NDc0OiAjIDkzICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgiCjE0NDc0OiBleHRlcm4gY2hhciBfX3N0YXJ0X2Jz
c19kZWNyeXB0ZWRbXSwgX19lbmRfYnNzX2RlY3J5cHRlZFtdLCBfX3N0YXJ0X2Jzc19kZWNyeXB0
ZWRfdW51c2VkW107CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbWVtX2VuY3J5cHRfYWN0aXZlKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDBVTEw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2
NCBzbWVfZ2V0X21lX21hc2sodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gMFVMTDsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9tZW1fZW5jcnlwdC5oIiAyCjE0NDc0
OiAjIDggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV90eXBlcy5oIiAyCjE0NDc0OiAjIDQ4
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9wYWdlXzY0X3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2Fz
bHIuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBs
b25nIGthc2xyX2dldF9yYW5kb21fbG9uZyhjb25zdCBjaGFyICpwdXJwb3NlKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiB2b2lkIGtlcm5lbF9yYW5kb21pemVfbWVtb3J5KHZvaWQpOwoxNDQ3NDog
IyA3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjRfdHlwZXMuaCIgMgoxNDQ3NDogIyA0
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNjQgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV90eXBlcy5oIgoxNDQ3NDogZXh0ZXJuIGludCBkZXZt
ZW1faXNfYWxsb3dlZCh1bnNpZ25lZCBsb25nIHBhZ2Vucik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25l
ZCBsb25nIG1heF9wZm5fbWFwcGVkOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaHlzX2FkZHJfdCBnZXRfbWF4
X21hcHBlZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAocGh5c19hZGRyX3QpbWF4X3Bm
bl9tYXBwZWQgPDwgMTI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcGZuX3JhbmdlX2lz
X21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9tZW1vcnlfbWFwcGluZyh1
bnNpZ25lZCBsb25nIHN0YXJ0LAoxNDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCBpbml0bWVtX2luaXQodm9pZCk7CjE0NDc0OiAjIDcgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNl
LWFiaS5oIiAxCjE0NDc0OiAjIDcgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wdHJhY2Uu
aCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci1mbGFncy5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL3VhcGkvYXNtL3Byb2Nlc3Nvci1mbGFncy5oIiAxCjE0NDc0OiAjIDYgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLWZsYWdzLmgiIDIKMTQ0NzQ6ICMgOCAiLi9hcmNo
L3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAyCjE0NDc0OiAjIDggIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKMTQ0NzQ6ICMgNTYgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcHRyYWNlLmgiCjE0NDc0OiBzdHJ1Y3QgcHRfcmVncyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHIxNTsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIHIxNDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHIxMzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHIxMjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGJwOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYng7
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHIxMTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHIxMDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHI5OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcjg7
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBheDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGN4OwoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgZHg7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzaTsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGRpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgbG9uZyBvcmlnX2F4OwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBpcDsK
MTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGNzOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBzcDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNzOwoxNDQ3NDog
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIgMQoxNDQ3NDogIyA0MyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2Rlc2NfZGVmcy5oIiAxCjE0NDc0OiAjIDE2ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2Rlc2NfZGVmcy5oIgoxNDQ3NDogc3RydWN0IGRlc2Nfc3RydWN0IHsKMTQ0NzQ6
ICB1MTYgbGltaXQwOwoxNDQ3NDogIHUxNiBiYXNlMDsKMTQ0NzQ6ICB1MTYgYmFzZTE6IDgsIHR5
cGU6IDQsIHM6IDEsIGRwbDogMiwgcDogMTsKMTQ0NzQ6ICB1MTYgbGltaXQxOiA0LCBhdmw6IDEs
IGw6IDEsIGQ6IDEsIGc6IDEsIGJhc2UyOiA4OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChwYWNr
ZWQpKTsKMTQ0NzQ6ICMgNDAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzY19kZWZzLmgiCjE0
NDc0OiBlbnVtIHsKMTQ0NzQ6ICBHQVRFX0lOVEVSUlVQVCA9IDB4RSwKMTQ0NzQ6ICBHQVRFX1RS
QVAgPSAweEYsCjE0NDc0OiAgR0FURV9DQUxMID0gMHhDLAoxNDQ3NDogIEdBVEVfVEFTSyA9IDB4
NSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFU0NfVFNTID0gMHg5
LAoxNDQ3NDogIERFU0NfTERUID0gMHgyLAoxNDQ3NDogIERFU0NUWVBFX1MgPSAweDEwLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbGR0dHNzX2Rlc2MgewoxNDQ3NDog
IHUxNiBsaW1pdDA7CjE0NDc0OiAgdTE2IGJhc2UwOwoxNDQ3NDogCjE0NDc0OiAgdTE2IGJhc2Ux
IDogOCwgdHlwZSA6IDUsIGRwbCA6IDIsIHAgOiAxOwoxNDQ3NDogIHUxNiBsaW1pdDEgOiA0LCB6
ZXJvMCA6IDMsIGcgOiAxLCBiYXNlMiA6IDg7CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgYmFzZTM7CjE0
NDc0OiAgdTMyIHplcm8xOwoxNDQ3NDogCjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkp
OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBsZHR0c3NfZGVzYyBsZHRfZGVzYzsKMTQ0
NzQ6IHR5cGVkZWYgc3RydWN0IGxkdHRzc19kZXNjIHRzc19kZXNjOwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgaWR0X2JpdHMgewoxNDQ3NDogIHUxNiBpc3QgOiAzLAoxNDQ3NDogICAgemVybyA6IDUs
CjE0NDc0OiAgICB0eXBlIDogNSwKMTQ0NzQ6ICAgIGRwbCA6IDIsCjE0NDc0OiAgICBwIDogMTsK
MTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBn
YXRlX3N0cnVjdCB7CjE0NDc0OiAgdTE2IG9mZnNldF9sb3c7CjE0NDc0OiAgdTE2IHNlZ21lbnQ7
CjE0NDc0OiAgc3RydWN0IGlkdF9iaXRzIGJpdHM7CjE0NDc0OiAgdTE2IG9mZnNldF9taWRkbGU7
CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgb2Zmc2V0X2hpZ2g7CjE0NDc0OiAgdTMyIHJlc2VydmVkOwox
NDQ3NDogCjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoxNDQ3NDogCjE0NDc0OiB0
eXBlZGVmIHN0cnVjdCBnYXRlX3N0cnVjdCBnYXRlX2Rlc2M7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgZ2F0ZV9vZmZzZXQoY29uc3QgZ2F0ZV9kZXNjICpnKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAgcmV0dXJuIGctPm9mZnNldF9sb3cgfCAoKHVuc2lnbmVkIGxvbmcpZy0+b2Zmc2V0
X21pZGRsZSA8PCAxNikgfAoxNDQ3NDogICAoKHVuc2lnbmVkIGxvbmcpIGctPm9mZnNldF9oaWdo
IDw8IDMyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZyBnYXRlX3NlZ21lbnQoY29uc3QgZ2F0ZV9kZXNjICpnKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBnLT5zZWdtZW50OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGVzY19wdHIgewoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHNpemU7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBhZGRyZXNzOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSA7CjE0NDc0OiAj
IDQ0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgOSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9rbWFwX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTAgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20va21hcF90eXBlcy5oIiAyCjE0NDc0OiAjIDQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0X3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
Z3RhYmxlX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTMzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bn
dGFibGVfdHlwZXMuaCIKMTQ0NzQ6IGVudW0gcGFnZV9jYWNoZV9tb2RlIHsKMTQ0NzQ6ICBfUEFH
RV9DQUNIRV9NT0RFX1dCID0gMCwKMTQ0NzQ6ICBfUEFHRV9DQUNIRV9NT0RFX1dDID0gMSwKMTQ0
NzQ6ICBfUEFHRV9DQUNIRV9NT0RFX1VDX01JTlVTID0gMiwKMTQ0NzQ6ICBfUEFHRV9DQUNIRV9N
T0RFX1VDID0gMywKMTQ0NzQ6ICBfUEFHRV9DQUNIRV9NT0RFX1dUID0gNCwKMTQ0NzQ6ICBfUEFH
RV9DQUNIRV9NT0RFX1dQID0gNSwKMTQ0NzQ6IAoxNDQ3NDogIF9QQUdFX0NBQ0hFX01PREVfTlVN
ID0gOAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjU3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFi
bGVfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0
X3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwYXJzZW1lbS5oIiAxCjE0NDc0OiAjIDYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcGd0YWJsZV82NF90eXBlcy5oIiAyCjE0NDc0OiAjIDE0ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBwdGV2YWxfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwbWR2YWxfdDsK
MTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwdWR2YWxfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5z
aWduZWQgbG9uZyBwNGR2YWxfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwZ2R2YWxf
dDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwZ3Byb3R2YWxfdDsKMTQ0NzQ6IAoxNDQ3
NDogdHlwZWRlZiBzdHJ1Y3QgeyBwdGV2YWxfdCBwdGU7IH0gcHRlX3Q7CjE0NDc0OiAjIDQzICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBpbnQgcGdkaXJfc2hpZnQ7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IHB0cnNf
cGVyX3A0ZDsKMTQ0NzQ6ICMgMjU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlw
ZXMuaCIgMgoxNDQ3NDogIyAyNzMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBl
cy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgcGdwcm90IHsgcGdwcm90dmFsX3QgcGdwcm90OyB9
IHBncHJvdF90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7IHBnZHZhbF90IHBnZDsg
fSBwZ2RfdDsKMTQ0NzQ6ICMgMzAwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlw
ZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIChwZ2RfdCkgeyB2YWwgJiAofjBVTEwpIH07CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHBnZHZhbF90IG5hdGl2ZV9wZ2RfdmFsKHBnZF90IHBnZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gcGdkLnBnZCAmICh+MFVMTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBn
ZHZhbF90IHBnZF9mbGFncyhwZ2RfdCBwZ2QpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5hdGl2
ZV9wZ2RfdmFsKHBnZCkgJiAofigocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8
IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSkpOwoxNDQ3NDog
fQoxNDQ3NDogIyAzMjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3A0ZC5oIiAxCjE0NDc0
OiAjIDkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCB7IHBnZF90IHBnZDsgfSBwNGRfdDsKMTQ0NzQ6ICMgMjIgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGdkX25vbmUocGdkX3QgcGdk
KSB7IHJldHVybiAwOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGdkX2JhZChwZ2RfdCBwZ2QpIHsgcmV0dXJuIDA7
IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCBwZ2RfcHJlc2VudChwZ2RfdCBwZ2QpIHsgcmV0dXJuIDE7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgcGdkX2NsZWFyKHBnZF90ICpwZ2QpIHsgfQoxNDQ3NDogIyAzNiAiLi9pbmNsdWRlL2Fz
bS1nZW5lcmljL3BndGFibGUtbm9wNGQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZF90ICpwNGRfb2Zmc2V0KHBnZF90
ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHA0
ZF90ICopcGdkOwoxNDQ3NDogfQoxNDQ3NDogIyAzMjkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
cGd0YWJsZV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZF90IG5hdGl2ZV9tYWtlX3A0ZChw
dWR2YWxfdCB2YWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChwNGRfdCkgeyAucGdkID0gbmF0
aXZlX21ha2VfcGdkKChwZ2R2YWxfdCl2YWwpIH07CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0
ZHZhbF90IG5hdGl2ZV9wNGRfdmFsKHA0ZF90IHA0ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
bmF0aXZlX3BnZF92YWwocDRkLnBnZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7IHB1ZHZhbF90IHB1ZDsgfSBwdWRfdDsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgcHVkX3QgbmF0aXZlX21ha2VfcHVkKHBtZHZhbF90IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHB1ZF90KSB7IHZhbCB9OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdWR2YWxf
dCBuYXRpdmVfcHVkX3ZhbChwdWRfdCBwdWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHB1ZC5w
dWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDM2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxl
X3R5cGVzLmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7IHBtZHZhbF90IHBtZDsgfSBwbWRfdDsK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgcG1kX3QgbmF0aXZlX21ha2VfcG1kKHBtZHZhbF90IHZhbCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKHBtZF90KSB7IHZhbCB9OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwbWR2YWxfdCBuYXRpdmVfcG1kX3ZhbChwbWRfdCBwbWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIHBtZC5wbWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDM5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wZ3RhYmxlX3R5cGVzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBwNGRfcGZuX21hc2socDRkX3QgcDRk
KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxv
bmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0g
MSkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZHZhbF90IHA0ZF9mbGFnc19tYXNrKHA0
ZF90IHA0ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gfnA0ZF9wZm5fbWFzayhwNGQpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBwNGRfZmxhZ3MocDRkX3QgcDRkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBuYXRpdmVfcDRkX3ZhbChwNGQpICYgcDRkX2ZsYWdzX21hc2socDRk
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHVkdmFsX3QgcHVkX3Bmbl9tYXNrKHB1ZF90IHB1
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAobmF0aXZlX3B1ZF92YWwocHVkKSAmICgoKHB0ZXZhbF90
KSgxKSkgPDwgNykpCjE0NDc0OiAgIHJldHVybiAoKChzaWduZWQgbG9uZykofigoKDFVTCkgPDwg
MzApLTEpKSkgJiAoKHBoeXNfYWRkcl90KSgoMVVMTCA8PCA1MikgLSAxKSkpOwoxNDQ3NDogIGVs
c2UKMTQ0NzQ6ICAgcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8
IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHB1ZHZhbF90IHB1ZF9mbGFnc19tYXNrKHB1ZF90IHB1ZCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gfnB1ZF9wZm5fbWFzayhwdWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBwdWR2YWxfdCBwdWRfZmxhZ3MocHVkX3QgcHVkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBuYXRpdmVfcHVkX3ZhbChwdWQpICYgcHVkX2ZsYWdzX21hc2socHVkKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgcG1kdmFsX3QgcG1kX3Bmbl9tYXNrKHBtZF90IHBtZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBpZiAobmF0aXZlX3BtZF92YWwocG1kKSAmICgoKHB0ZXZhbF90KSgxKSkgPDwgNykpCjE0
NDc0OiAgIHJldHVybiAoKChzaWduZWQgbG9uZykofigoKDFVTCkgPDwgMjEpLTEpKSkgJiAoKHBo
eXNfYWRkcl90KSgoMVVMTCA8PCA1MikgLSAxKSkpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0
dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChw
aHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHBtZHZhbF90IHBtZF9mbGFnc19tYXNrKHBtZF90IHBtZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gfnBtZF9wZm5fbWFzayhwbWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwbWR2YWxfdCBw
bWRfZmxhZ3MocG1kX3QgcG1kKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBuYXRpdmVfcG1kX3Zh
bChwbWQpICYgcG1kX2ZsYWdzX21hc2socG1kKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRl
X3QgbmF0aXZlX21ha2VfcHRlKHB0ZXZhbF90IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
KHB0ZV90KSB7IC5wdGUgPSB2YWwgfTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRldmFsX3Qg
bmF0aXZlX3B0ZV92YWwocHRlX3QgcHRlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBwdGUucHRl
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdGV2YWxfdCBwdGVfZmxhZ3MocHRlX3QgcHRlKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBuYXRpdmVfcHRlX3ZhbChwdGUpICYgKH4oKHB0ZXZhbF90
KSgoKHNpZ25lZCBsb25nKSh+KCgoMVVMKSA8PCAxMiktMSkpKSAmICgocGh5c19hZGRyX3QpKCgx
VUxMIDw8IDUyKSAtIDEpKSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVpbnQx
Nl90IF9fY2FjaGVtb2RlMnB0ZV90YmxbX1BBR0VfQ0FDSEVfTU9ERV9OVU1dOwoxNDQ3NDogZXh0
ZXJuIHVpbnQ4X3QgX19wdGUyY2FjaGVtb2RlX3RibFs4XTsKMTQ0NzQ6ICMgNDcyICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgY2Fj
aGVtb2RlMnByb3R2YWwoZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtKQoxNDQ3NDogewoxNDQ3NDog
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHBjbSA9PSAwKSwgMSkpCjE0NDc0OiAgIHJldHVybiAw
OwoxNDQ3NDogIHJldHVybiBfX2NhY2hlbW9kZTJwdGVfdGJsW3BjbV07CjE0NDc0OiB9CjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwZ3Byb3RfdCBjYWNoZW1vZGUycGdwcm90KGVudW0gcGFnZV9jYWNoZV9tb2RlIHBjbSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChwZ3Byb3RfdCkgeyAoY2FjaGVtb2RlMnByb3R2YWwocGNt
KSkgfSApOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBwYWdlX2NhY2hlX21vZGUgcGdwcm90MmNhY2hl
bW9kZShwZ3Byb3RfdCBwZ3Byb3QpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXNr
ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICBtYXNrZWQgPSAoKHBncHJvdCkucGdwcm90KSAmICgoKChwdGV2
YWxfdCkoMSkpIDw8IDMpIHwgKCgocHRldmFsX3QpKDEpKSA8PCA0KSB8ICgoKHB0ZXZhbF90KSgx
KSkgPDwgNykpOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG1hc2tlZCA9PSAwKSwg
MSkpCjE0NDc0OiAgIHJldHVybiAwOwoxNDQ3NDogIHJldHVybiBfX3B0ZTJjYWNoZW1vZGVfdGJs
WygoKChtYXNrZWQpID4+ICg3IC0gMikpICYgNCkgfCAoKChtYXNrZWQpID4+ICg0IC0gMSkpICYg
MikgfCAoKChtYXNrZWQpID4+IDMpICYgMSkpXTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJvdF90IHBn
cHJvdF80a18yX2xhcmdlKHBncHJvdF90IHBncHJvdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZ3Byb3R2
YWxfdCB2YWwgPSAoKHBncHJvdCkucGdwcm90KTsKMTQ0NzQ6ICBwZ3Byb3RfdCBuZXc7CjE0NDc0
OiAKMTQ0NzQ6ICAoKG5ldykucGdwcm90KSA9ICh2YWwgJiB+KCgoKHB0ZXZhbF90KSgxKSkgPDwg
NykgfCAoKChwdGV2YWxfdCkoMSkpIDw8IDEyKSkpIHwKMTQ0NzQ6ICAgKCh2YWwgJiAoKChwdGV2
YWxfdCkoMSkpIDw8IDcpKSA8PCAoMTIgLSA3KSk7CjE0NDc0OiAgcmV0dXJuIG5ldzsKMTQ0NzQ6
IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHBncHJvdF90IHBncHJvdF9sYXJnZV8yXzRrKHBncHJvdF90IHBncHJvdCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBwZ3Byb3R2YWxfdCB2YWwgPSAoKHBncHJvdCkucGdwcm90KTsKMTQ0NzQ6
ICBwZ3Byb3RfdCBuZXc7CjE0NDc0OiAKMTQ0NzQ6ICAoKG5ldykucGdwcm90KSA9ICh2YWwgJiB+
KCgoKHB0ZXZhbF90KSgxKSkgPDwgNykgfCAoKChwdGV2YWxfdCkoMSkpIDw8IDEyKSkpIHwKMTQ0
NzQ6ICAgICAgKCh2YWwgJiAoKChwdGV2YWxfdCkoMSkpIDw8IDEyKSkgPj4KMTQ0NzQ6ICAgICAg
ICgxMiAtIDcpKTsKMTQ0NzQ6ICByZXR1cm4gbmV3OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHBhZ2UgKnBndGFibGVfdDsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHB0ZXZhbF90IF9fc3VwcG9ydGVkX3B0ZV9tYXNrOwoxNDQ3NDogZXh0ZXJuIHB0ZXZhbF90
IF9fZGVmYXVsdF9rZXJuZWxfcHRlX21hc2s7CjE0NDc0OiBleHRlcm4gdm9pZCBzZXRfbngodm9p
ZCk7CjE0NDc0OiBleHRlcm4gaW50IG54X2VuYWJsZWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHBncHJvdF90IHBncHJvdF93cml0ZWNvbWJpbmUocGdwcm90X3QgcHJvdCk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHBncHJvdF90IHBncHJvdF93cml0ZXRocm91Z2gocGdw
cm90X3QgcHJvdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGZpbGU7CjE0NDc0OiBwZ3Byb3RfdCBwaHlzX21lbV9hY2Nlc3NfcHJvdChzdHJ1
Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBwZm4sCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHZtYV9wcm90KTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRk
ciwgcHRlX3QgcHRlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNlcV9maWxlOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
YXJjaF9yZXBvcnRfbWVtaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwoxNDQ3NDogCjE0NDc0OiBl
bnVtIHBnX2xldmVsIHsKMTQ0NzQ6ICBQR19MRVZFTF9OT05FLAoxNDQ3NDogIFBHX0xFVkVMXzRL
LAoxNDQ3NDogIFBHX0xFVkVMXzJNLAoxNDQ3NDogIFBHX0xFVkVMXzFHLAoxNDQ3NDogIFBHX0xF
VkVMXzUxMkcsCjE0NDc0OiAgUEdfTEVWRUxfTlVNCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQg
bG9uZyBwYWdlcyk7CjE0NDc0OiAjIDU2NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxl
X3R5cGVzLmgiCjE0NDc0OiBleHRlcm4gcHRlX3QgKmxvb2t1cF9hZGRyZXNzKHVuc2lnbmVkIGxv
bmcgYWRkcmVzcywgdW5zaWduZWQgaW50ICpsZXZlbCk7CjE0NDc0OiBleHRlcm4gcHRlX3QgKmxv
b2t1cF9hZGRyZXNzX2luX3BnZChwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCjE0
NDc0OiAgICAgICAgIHVuc2lnbmVkIGludCAqbGV2ZWwpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bW1fc3RydWN0OwoxNDQ3NDogZXh0ZXJuIHB0ZV90ICpsb29rdXBfYWRkcmVzc19pbl9tbShzdHJ1
Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAoxNDQ3NDogICAgICAgIHVu
c2lnbmVkIGludCAqbGV2ZWwpOwoxNDQ3NDogZXh0ZXJuIHBtZF90ICpsb29rdXBfcG1kX2FkZHJl
c3ModW5zaWduZWQgbG9uZyBhZGRyZXNzKTsKMTQ0NzQ6IGV4dGVybiBwaHlzX2FkZHJfdCBzbG93
X3ZpcnRfdG9fcGh5cyh2b2lkICpfX2FkZHJlc3MpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJp
YnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKSBrZXJuZWxfbWFwX3BhZ2VzX2luX3BnZChwZ2RfdCAqcGdkLCB1NjQgcGZuLAoxNDQ3NDog
ICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBudW1w
YWdlcywKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2VfZmxhZ3MpOwoxNDQ3NDogZXh0
ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRy
aWJ1dGVfXygoX19jb2xkX18pKSBrZXJuZWxfdW5tYXBfcGFnZXNfaW5fcGdkKHBnZF90ICpwZ2Qs
IHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnVt
cGFnZXMpOwoxNDQ3NDogIyA0NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBl
cy5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvc3RhdGljX2tleS5oIiAxCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9qdW1wX2xhYmVsLmgiIDEKMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVs
LmgiCjE0NDc0OiBleHRlcm4gYm9vbCBzdGF0aWNfa2V5X2luaXRpYWxpemVkOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgc3RhdGljX2tleSB7CjE0NDc0OiAgYXRvbWljX3QgZW5hYmxlZDsKMTQ0NzQ6ICMgMTAyICIu
L2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyB0eXBlOwoxNDQ3NDogICBzdHJ1Y3QganVtcF9lbnRyeSAqZW50cmllczsKMTQ0
NzQ6ICAgc3RydWN0IHN0YXRpY19rZXlfbW9kICpuZXh0OwoxNDQ3NDogIH07CjE0NDc0OiB9Owox
NDQ3NDogIyAxMTcgIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oIiAxCjE0NDc0OiAjIDIzICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgYm9vbCBhcmNoX3N0YXRpY19icmFuY2goc3RydWN0IHN0YXRpY19rZXkg
KmtleSwgYm9vbCBicmFuY2gpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBhc20gZ290bygiMToiICIu
Ynl0ZSAiICIweDBmLDB4MWYsMHg0NCwweDAwLDAiICJcblx0IiAiLnB1c2hzZWN0aW9uIF9fanVt
cF90YWJsZSwgIFwiYXdcIiBcblx0IiAiICIgIi5iYWxpZ24gOCIgIiAiICJcblx0IiAiLmxvbmcg
MWIgLSAuLCAlbFtsX3llc10gLSAuIFxuXHQiICIgIiAiLnF1YWQiICIgIiAiJWMwICsgJWMxIC0g
LlxuXHQiICIucG9wc2VjdGlvbiBcblx0IiA6IDogImkiIChrZXkpLCAiaSIgKGJyYW5jaCkgOiA6
IGxfeWVzKTsgYXNtICgiIik7IH0gd2hpbGUgKDApCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBmYWxzZTsKMTQ0NzQ6IGxfeWVz
OgoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgYXJjaF9zdGF0aWNfYnJhbmNoX2p1bXAoc3Ry
dWN0IHN0YXRpY19rZXkgKmtleSwgYm9vbCBicmFuY2gpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBh
c20gZ290bygiMToiICIuYnl0ZSAweGU5XG5cdCAubG9uZyAlbFtsX3llc10gLSAyZlxuXHQiICIy
OlxuXHQiICIucHVzaHNlY3Rpb24gX19qdW1wX3RhYmxlLCAgXCJhd1wiIFxuXHQiICIgIiAiLmJh
bGlnbiA4IiAiICIgIlxuXHQiICIubG9uZyAxYiAtIC4sICVsW2xfeWVzXSAtIC4gXG5cdCIgIiAi
ICIucXVhZCIgIiAiICIlYzAgKyAlYzEgLSAuXG5cdCIgIi5wb3BzZWN0aW9uIFxuXHQiIDogOiAi
aSIgKGtleSksICJpIiAoYnJhbmNoKSA6IDogbF95ZXMpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiAK
MTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiBsX3llczoKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgMTE4ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIiAyCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBqdW1wX2VudHJ5IHsK
MTQ0NzQ6ICBzMzIgY29kZTsKMTQ0NzQ6ICBzMzIgdGFyZ2V0OwoxNDQ3NDogIGxvbmcga2V5Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBqdW1wX2VudHJ5X2NvZGUoY29u
c3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodW5z
aWduZWQgbG9uZykmZW50cnktPmNvZGUgKyBlbnRyeS0+Y29kZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdW5zaWduZWQgbG9uZyBqdW1wX2VudHJ5X3RhcmdldChjb25zdCBzdHJ1Y3QganVtcF9l
bnRyeSAqZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKSZlbnRy
eS0+dGFyZ2V0ICsgZW50cnktPnRhcmdldDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IHN0YXRpY19rZXkgKmp1bXBfZW50cnlfa2V5KGNvbnN0IHN0cnVjdCBqdW1wX2VudHJ5ICplbnRy
eSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsb25nIG9mZnNldCA9IGVudHJ5LT5rZXkgJiB+M0w7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gKHN0cnVjdCBzdGF0aWNfa2V5ICopKCh1bnNpZ25lZCBsb25nKSZl
bnRyeS0+a2V5ICsgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTY0ICIuL2luY2x1ZGUvbGlu
dXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBqdW1wX2VudHJ5X2lzX2JyYW5jaChjb25zdCBz
dHJ1Y3QganVtcF9lbnRyeSAqZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25l
ZCBsb25nKWVudHJ5LT5rZXkgJiAxVUw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wganVt
cF9lbnRyeV9pc19pbml0KGNvbnN0IHN0cnVjdCBqdW1wX2VudHJ5ICplbnRyeSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpZW50cnktPmtleSAmIDJVTDsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBqdW1wX2VudHJ5X3NldF9pbml0KHN0cnVjdCBqdW1wX2VudHJ5
ICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBlbnRyeS0+a2V5IHw9IDI7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGp1
bXBfbGFiZWxfdHlwZSB7CjE0NDc0OiAgSlVNUF9MQUJFTF9OT1AgPSAwLAoxNDQ3NDogIEpVTVBf
TEFCRUxfSk1QLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1vZHVsZTsKMTQ0NzQ6
ICMgMTk4ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBib29sIHN0YXRpY19rZXlfZmFsc2Uoc3RydWN0IHN0YXRp
Y19rZXkgKmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9zdGF0aWNfYnJhbmNoKGtl
eSwgZmFsc2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGJvb2wgc3RhdGljX2tleV90cnVlKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICFhcmNoX3N0YXRpY19icmFuY2goa2V5LCB0cnVlKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBqdW1wX2VudHJ5IF9fc3RhcnRf
X19qdW1wX3RhYmxlW107CjE0NDc0OiBleHRlcm4gc3RydWN0IGp1bXBfZW50cnkgX19zdG9wX19f
anVtcF90YWJsZVtdOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBqdW1wX2xhYmVsX2luaXQo
dm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBqdW1wX2xhYmVsX2xvY2sodm9pZCk7CjE0NDc0OiBl
eHRlcm4gdm9pZCBqdW1wX2xhYmVsX3VubG9jayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFy
Y2hfanVtcF9sYWJlbF90cmFuc2Zvcm0oc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5LAoxNDQ3NDog
ICAgICAgICAgIGVudW0ganVtcF9sYWJlbF90eXBlIHR5cGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
YXJjaF9qdW1wX2xhYmVsX3RyYW5zZm9ybV9zdGF0aWMoc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5
LAoxNDQ3NDogICAgICAgICAgIGVudW0ganVtcF9sYWJlbF90eXBlIHR5cGUpOwoxNDQ3NDogZXh0
ZXJuIGJvb2wgYXJjaF9qdW1wX2xhYmVsX3RyYW5zZm9ybV9xdWV1ZShzdHJ1Y3QganVtcF9lbnRy
eSAqZW50cnksCjE0NDc0OiAgICAgICAgICBlbnVtIGp1bXBfbGFiZWxfdHlwZSB0eXBlKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIGFyY2hfanVtcF9sYWJlbF90cmFuc2Zvcm1fYXBwbHkodm9pZCk7CjE0
NDc0OiBleHRlcm4gaW50IGp1bXBfbGFiZWxfdGV4dF9yZXNlcnZlZCh2b2lkICpzdGFydCwgdm9p
ZCAqZW5kKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHN0YXRpY19rZXlfc2xvd19pbmMoc3RydWN0IHN0
YXRpY19rZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfZGVjKHN0
cnVjdCBzdGF0aWNfa2V5ICprZXkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9zbG93
X2luY19jcHVzbG9ja2VkKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgc3RhdGljX2tleV9zbG93X2RlY19jcHVzbG9ja2VkKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQganVtcF9sYWJlbF9hcHBseV9ub3BzKHN0cnVjdCBtb2R1bGUg
Km1vZCk7CjE0NDc0OiBleHRlcm4gaW50IHN0YXRpY19rZXlfY291bnQoc3RydWN0IHN0YXRpY19r
ZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBzdGF0aWNfa2V5X2VuYWJsZShzdHJ1Y3Qgc3Rh
dGljX2tleSAqa2V5KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHN0YXRpY19rZXlfZGlzYWJsZShzdHJ1
Y3Qgc3RhdGljX2tleSAqa2V5KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHN0YXRpY19rZXlfZW5hYmxl
X2NwdXNsb2NrZWQoc3RydWN0IHN0YXRpY19rZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBz
dGF0aWNfa2V5X2Rpc2FibGVfY3B1c2xvY2tlZChzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKMTQ0
NzQ6ICMgMzQ2ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgoxNDQ3NDogc3RydWN0IHN0
YXRpY19rZXlfdHJ1ZSB7CjE0NDc0OiAgc3RydWN0IHN0YXRpY19rZXkga2V5OwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN0YXRpY19rZXlfZmFsc2UgewoxNDQ3NDogIHN0cnVjdCBz
dGF0aWNfa2V5IGtleTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM4NSAiLi9pbmNsdWRlL2xpbnV4L2p1
bXBfbGFiZWwuaCIKMTQ0NzQ6IGV4dGVybiBib29sIF9fX193cm9uZ19icmFuY2hfZXJyb3Iodm9p
ZCk7CjE0NDc0OiAjIDIgIi4vaW5jbHVkZS9saW51eC9zdGF0aWNfa2V5LmgiIDIKMTQ0NzQ6ICMg
NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUtYXNtLmgi
IDEKMTQ0NzQ6ICMgMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5oIiAy
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaCIg
MQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9iaXRzLmgiIDEKMTQ0NzQ6ICMgNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5k
ZXguaCIgMgoxNDQ3NDogIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNo
LmgiIDIKMTQ0NzQ6ICMgMjEzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy1icmFuY2gu
aCIKMTQ0NzQ6IGVudW0gc3BlY3RyZV92Ml9taXRpZ2F0aW9uIHsKMTQ0NzQ6ICBTUEVDVFJFX1Yy
X05PTkUsCjE0NDc0OiAgU1BFQ1RSRV9WMl9SRVRQT0xJTkVfR0VORVJJQywKMTQ0NzQ6ICBTUEVD
VFJFX1YyX1JFVFBPTElORV9BTUQsCjE0NDc0OiAgU1BFQ1RSRV9WMl9JQlJTX0VOSEFOQ0VELAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHNwZWN0cmVfdjJfdXNlcl9taXRp
Z2F0aW9uIHsKMTQ0NzQ6ICBTUEVDVFJFX1YyX1VTRVJfTk9ORSwKMTQ0NzQ6ICBTUEVDVFJFX1Yy
X1VTRVJfU1RSSUNULAoxNDQ3NDogIFNQRUNUUkVfVjJfVVNFUl9TVFJJQ1RfUFJFRkVSUkVELAox
NDQ3NDogIFNQRUNUUkVfVjJfVVNFUl9QUkNUTCwKMTQ0NzQ6ICBTUEVDVFJFX1YyX1VTRVJfU0VD
Q09NUCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzc2JfbWl0aWdhdGlv
biB7CjE0NDc0OiAgU1BFQ19TVE9SRV9CWVBBU1NfTk9ORSwKMTQ0NzQ6ICBTUEVDX1NUT1JFX0JZ
UEFTU19ESVNBQkxFLAoxNDQ3NDogIFNQRUNfU1RPUkVfQllQQVNTX1BSQ1RMLAoxNDQ3NDogIFNQ
RUNfU1RPUkVfQllQQVNTX1NFQ0NPTVAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
Y2hhciBfX2luZGlyZWN0X3RodW5rX3N0YXJ0W107CjE0NDc0OiBleHRlcm4gY2hhciBfX2luZGly
ZWN0X3RodW5rX2VuZFtdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHZtZXhpdF9maWxsX1JTQih2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb29wczsKMTQ0NzQ6IAoxNDQ3NDogIGFz
bSB2b2xhdGlsZSAoIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLmlnbm9yZV9hbHRz
XG5cdCIgIi5sb25nIDk5OWIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIKMTQ0NzQ6ICAgICAg
ICAgIiMgQUxUOiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgImptcCA5MTBmIiAiXG42NjI6XG4iICIj
IEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2
NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA3KjMyKzEyKSIgIlxuIiAiIC5ieXRlICIgIjY2
MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24g
LmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIx
IiAiXG4iICI2NjQiIjEiIjpcblx0IiAibW92ICQoMzIvMiksICUwOyA3NzE6IGNhbGwgNzcyZjsg
NzczOiBwYXVzZTsgbGZlbmNlOyBqbXAgNzczYjsgNzcyOiBjYWxsIDc3NGY7IDc3NTogcGF1c2U7
IGxmZW5jZTsgam1wIDc3NWI7IDc3NDogZGVjICUwOyBqbnogNzcxYjsgYWRkICQoNjQvOCkgKiAz
MiwgJTE7IiAiXG4iICI2NjUiIjEiICI6XG4iICIucG9wc2VjdGlvblxuIgoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgIjkxMDoiCjE0NDc0OiAgICAgICAgIDogIj1yIiAobG9vcHMpLCAi
K3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpCjE0NDc0OiAgICAgICAgIDogOiAibWVtb3J5IiAp
OwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkKMTQ0NzQ6IHZvaWQgYWx0ZXJuYXRpdmVfbXNyX3dyaXRlKHVuc2lnbmVkIGlu
dCBtc3IsIHU2NCB2YWwsIHVuc2lnbmVkIGludCBmZWF0dXJlKQoxNDQ3NDogewoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgiIyBBTFQ6IG9sZG5zdHJcbiIgIjY2MTpcblx0IiAiIiAiXG42NjI6XG4iICIj
IEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2
NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiJWNbZmVhdHVyZV0iICJcbiIgIiAuYnl0ZSAiICI2
NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAi
IC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9u
IC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAi
MSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgIndybXNyIiAiXG4iICI2NjUiIjEiICI6XG4iICIucG9w
c2VjdGlvblxuIgoxNDQ3NDogICA6IDogImMiIChtc3IpLAoxNDQ3NDogICAgICAgImEiICgodTMy
KXZhbCksCjE0NDc0OiAgICAgICAiZCIgKCh1MzIpKHZhbCA+PiAzMikpLAoxNDQ3NDogICAgICAg
W2ZlYXR1cmVdICJpIiAoZmVhdHVyZSkKMTQ0NzQ6ICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgaW5kaXJlY3RfYnJhbmNoX3ByZWRpY3Rpb25fYmFycmllcih2b2lk
KQoxNDQ3NDogewoxNDQ3NDogIHU2NCB2YWwgPSAoKCgoMVVMKSkpIDw8ICgwKSk7CjE0NDc0OiAK
MTQ0NzQ6ICBhbHRlcm5hdGl2ZV9tc3Jfd3JpdGUoMHgwMDAwMDA0OSwgdmFsLCAoIDcqMzIrMjEp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdTY0IHg4Nl9zcGVjX2N0
cmxfYmFzZTsKMTQ0NzQ6ICMgMzA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy1icmFu
Y2guaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSBzd2l0Y2hfdG9fY29u
ZF9zdGlicDsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSBzd2l0Y2hfbW1f
Y29uZF9pYnBiOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIHN3aXRjaF9t
bV9hbHdheXNfaWJwYjsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2Zh
bHNlIG1kc191c2VyX2NsZWFyOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNl
IG1kc19pZGxlX2NsZWFyOwoxNDQ3NDogIyAzMjIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9z
cGVjLWJyYW5jaC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNfY2xlYXJfY3B1X2J1ZmZlcnModm9pZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdGF0aWMgY29uc3QgdTE2IGRzID0gKDMqOCk7CjE0NDc0OiAjIDMzNSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiCjE0NDc0OiAgYXNtIHZvbGF0
aWxlKCJ2ZXJ3ICVbZHNdIiA6IDogW2RzXSAibSIgKGRzKSA6ICJjYyIpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBt
ZHNfdXNlcl9jbGVhcl9jcHVfYnVmZmVycyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGlmICgoeyBi
b29sIGJyYW5jaDsgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCombWRz
X3VzZXJfY2xlYXIpLCBzdHJ1Y3Qgc3RhdGljX2tleV90cnVlKSkgYnJhbmNoID0gIWFyY2hfc3Rh
dGljX2JyYW5jaCgmKCZtZHNfdXNlcl9jbGVhciktPmtleSwgdHJ1ZSk7IGVsc2UgaWYgKF9fYnVp
bHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCombWRzX3VzZXJfY2xlYXIpLCBzdHJ1Y3Qg
c3RhdGljX2tleV9mYWxzZSkpIGJyYW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2hfanVtcCgmKCZt
ZHNfdXNlcl9jbGVhciktPmtleSwgdHJ1ZSk7IGVsc2UgYnJhbmNoID0gX19fX3dyb25nX2JyYW5j
aF9lcnJvcigpOyBfX2J1aWx0aW5fZXhwZWN0KCEhKGJyYW5jaCksIDEpOyB9KSkKMTQ0NzQ6ICAg
bWRzX2NsZWFyX2NwdV9idWZmZXJzKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1kc19pZGxlX2NsZWFyX2NwdV9i
dWZmZXJzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCh7IGJvb2wgYnJhbmNoOyBpZiAoX19i
dWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKiZtZHNfaWRsZV9jbGVhciksIHN0cnVj
dCBzdGF0aWNfa2V5X3RydWUpKSBicmFuY2ggPSAhYXJjaF9zdGF0aWNfYnJhbmNoKCYoJm1kc19p
ZGxlX2NsZWFyKS0+a2V5LCB0cnVlKTsgZWxzZSBpZiAoX19idWlsdGluX3R5cGVzX2NvbXBhdGli
bGVfcCh0eXBlb2YoKiZtZHNfaWRsZV9jbGVhciksIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlKSkg
YnJhbmNoID0gIWFyY2hfc3RhdGljX2JyYW5jaF9qdW1wKCYoJm1kc19pZGxlX2NsZWFyKS0+a2V5
LCB0cnVlKTsgZWxzZSBicmFuY2ggPSBfX19fd3JvbmdfYnJhbmNoX2Vycm9yKCk7IF9fYnVpbHRp
bl9leHBlY3QoISEoYnJhbmNoKSwgMSk7IH0pKQoxNDQ3NDogICBtZHNfY2xlYXJfY3B1X2J1ZmZl
cnMoKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZp
cnRfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCB0
aHJlYWRfc3RydWN0OwoxNDQ3NDogc3RydWN0IGRlc2NfcHRyOwoxNDQ3NDogc3RydWN0IHRzc19z
dHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3QgbW1fc3RydWN0OwoxNDQ3NDogc3RydWN0IGRlc2Nfc3RydWN0
OwoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogc3RydWN0IGNwdW1hc2s7CjE0NDc0
OiBzdHJ1Y3QgZmx1c2hfdGxiX2luZm87CjE0NDc0OiBzdHJ1Y3QgbW11X2dhdGhlcjsKMTQ0NzQ6
IHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFyYXZpcnRfY2FsbGVlX3NhdmUgewoxNDQ3NDogIHZvaWQg
KmZ1bmM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwdl9pbmZvIHsK
MTQ0NzQ6ICMgNzkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIKMTQ0
NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHB2
X2luaXRfb3BzIHsKMTQ0NzQ6ICMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRf
dHlwZXMuaCIKMTQ0NzQ6ICB1bnNpZ25lZCAoKnBhdGNoKSh1OCB0eXBlLCB2b2lkICppbnNuX2J1
ZmYsCjE0NDc0OiAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbGVuKTsKMTQ0NzQ6
IH0gOwoxNDQ3NDogIyAxMDQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMu
aCIKMTQ0NzQ6IHN0cnVjdCBwdl90aW1lX29wcyB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25n
ICgqc2NoZWRfY2xvY2spKHZvaWQpOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyAoKnN0ZWFs
X2Nsb2NrKShpbnQgY3B1KTsKMTQ0NzQ6IH0gOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHZfY3B1
X29wcyB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaW9fZGVsYXkpKHZvaWQpOwoxNDQ3NDogIyAx
ODMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIKMTQ0NzQ6IH0gOwox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHZfaXJxX29wcyB7CjE0NDc0OiAjIDIwNCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgoxNDQ3NDogfSA7CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwdl9tbXVfb3BzIHsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpmbHVzaF90bGJfdXNl
cikodm9pZCk7CjE0NDc0OiAgdm9pZCAoKmZsdXNoX3RsYl9rZXJuZWwpKHZvaWQpOwoxNDQ3NDog
IHZvaWQgKCpmbHVzaF90bGJfb25lX3VzZXIpKHVuc2lnbmVkIGxvbmcgYWRkcik7CjE0NDc0OiAg
dm9pZCAoKmZsdXNoX3RsYl9vdGhlcnMpKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVzLAoxNDQ3
NDogICAgICBjb25zdCBzdHJ1Y3QgZmx1c2hfdGxiX2luZm8gKmluZm8pOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKnRsYl9yZW1vdmVfdGFibGUpKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHZvaWQg
KnRhYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmV4aXRfbW1hcCkoc3RydWN0
IG1tX3N0cnVjdCAqbW0pOwoxNDQ3NDogIyAzMDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnRfdHlwZXMuaCIKMTQ0NzQ6IH0gOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXJjaF9zcGlu
bG9jazsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2Nr
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2tf
dHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgdTggX190aWNrZXRfdDsKMTQ0NzQ6IHR5cGVkZWYgdTE2
IF9fdGlja2V0cGFpcl90OwoxNDQ3NDogIyAyNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlu
bG9ja190eXBlcy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2Nr
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMjIgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2tf
dHlwZXMuaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHFzcGlubG9jayB7CjE0NDc0OiAgdW5pb24g
ewoxNDQ3NDogICBhdG9taWNfdCB2YWw7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHU4IGxv
Y2tlZDsKMTQ0NzQ6ICAgIHU4IHBlbmRpbmc7CjE0NDc0OiAgIH07CjE0NDc0OiAgIHN0cnVjdCB7
CjE0NDc0OiAgICB1MTYgbG9ja2VkX3BlbmRpbmc7CjE0NDc0OiAgICB1MTYgdGFpbDsKMTQ0NzQ6
ICAgfTsKMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2tfdHlwZXMu
aCIKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBhcmNoX3NwaW5sb2NrX3Q7CjE0NDc0OiAjIDI4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXJ3bG9ja190eXBlcy5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vYnl0ZW9yZGVyLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2xpdHRsZV9lbmRpYW4uaCIgMQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBp
L2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9zd2FiLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc3dhYi5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fY29u
c3RfXykpIF9fdTMyIF9fYXJjaF9zd2FiMzIoX191MzIgdmFsKQoxNDQ3NDogewoxNDQ3NDogIGFz
bSgiYnN3YXBsICUwIiA6ICI9ciIgKHZhbCkgOiAiMCIgKHZhbCkpOwoxNDQ3NDogIHJldHVybiB2
YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25z
dF9fKSkgX191NjQgX19hcmNoX3N3YWI2NChfX3U2NCB2YWwpCjE0NDc0OiB7CjE0NDc0OiAjIDMx
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc3dhYi5oIgoxNDQ3NDogIGFzbSgiYnN3YXBx
ICUwIiA6ICI9ciIgKHZhbCkgOiAiMCIgKHZhbCkpOwoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0
OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3dhYi5oIiAyCjE0
NDc0OiAjIDQ4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbnN0X18pKSBfX3UxNiBfX2Zzd2FiMTYoX191MTYgdmFsKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoKF9fdTE2KSggKCgoX191MTYpKHZh
bCkgJiAoX191MTYpMHgwMGZmVSkgPDwgOCkgfCAoKChfX3UxNikodmFsKSAmIChfX3UxNikweGZm
MDBVKSA+PiA4KSkpOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fY29uc3RfXykpIF9fdTMyIF9fZnN3YWIzMihfX3UzMiB2YWwpCjE0NDc0OiB7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gX19hcmNoX3N3YWIzMih2YWwpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBf
X3U2NCBfX2Zzd2FiNjQoX191NjQgdmFsKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgcmV0dXJu
IF9fYXJjaF9zd2FiNjQodmFsKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FodzMyKF9fdTMyIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKChfX3UzMikoICgoKF9fdTMyKSh2YWwp
ICYgKF9fdTMyKTB4MDAwMGZmZmZVTCkgPDwgMTYpIHwgKCgoX191MzIpKHZhbCkgJiAoX191MzIp
MHhmZmZmMDAwMFVMKSA+PiAxNikpKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FoYjMyKF9fdTMyIHZhbCkKMTQ0
NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKChfX3UzMikoICgo
KF9fdTMyKSh2YWwpICYgKF9fdTMyKTB4MDBmZjAwZmZVTCkgPDwgOCkgfCAoKChfX3UzMikodmFs
KSAmIChfX3UzMikweGZmMDBmZjAwVUwpID4+IDgpKSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMTM2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgX19zd2FiKGNvbnN0IHVuc2lnbmVk
IGxvbmcgeSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoX191NjQpX19idWlsdGlu
X2Jzd2FwNjQoKF9fdTY0KSh5KSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9CjE0
NDc0OiAjIDE3MSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3dhYi5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX3UxNiBfX3N3YWIxNnAoY29uc3QgX191MTYgKnAp
CjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIChfX3UxNilf
X2J1aWx0aW5fYnN3YXAxNigoX191MTYpKCpwKSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIF9fdTMyIF9fc3dhYjMycChjb25zdCBfX3UzMiAqcCkKMTQ0NzQ6IHsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKF9fdTMyKV9fYnVpbHRpbl9i
c3dhcDMyKChfX3UzMikoKnApKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgX191NjQgX19zd2FiNjRwKGNvbnN0IF9fdTY0ICpwKQoxNDQ3NDogewoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoX191NjQpX19idWlsdGluX2Jzd2FwNjQoKF9f
dTY0KSgqcCkpOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fdTMyIF9fc3dhaHczMnAoY29uc3Qg
X191MzIgKnApCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJu
IChfX2J1aWx0aW5fY29uc3RhbnRfcCgoX191MzIpKCpwKSkgPyAoKF9fdTMyKSggKCgoX191MzIp
KCpwKSAmIChfX3UzMikweDAwMDBmZmZmVUwpIDw8IDE2KSB8ICgoKF9fdTMyKSgqcCkgJiAoX191
MzIpMHhmZmZmMDAwMFVMKSA+PiAxNikpKSA6IF9fZnN3YWh3MzIoKnApKTsKMTQ0NzQ6IAoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX3UzMiBfX3N3YWhiMzJwKGNvbnN0IF9fdTMyICpwKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAoX19idWlsdGluX2NvbnN0YW50X3Ao
KF9fdTMyKSgqcCkpID8gKChfX3UzMikoICgoKF9fdTMyKSgqcCkgJiAoX191MzIpMHgwMGZmMDBm
ZlVMKSA8PCA4KSB8ICgoKF9fdTMyKSgqcCkgJiAoX191MzIpMHhmZjAwZmYwMFVMKSA+PiA4KSkp
IDogX19mc3dhaGIzMigqcCkpOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3N3YWIxNnMoX191MTYgKnApCjE0NDc0
OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKnAgPSBfX3N3YWIxNnAocCk7CjE0
NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fc3dhYjMycyhfX3UzMiAqcCkK
MTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAqcCA9IF9fc3dhYjMycChw
KTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX3N3YWI2
NHMoX191NjQgKnApCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKnAg
PSBfX3N3YWI2NHAocCk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3N3YWh3MzJzKF9f
dTMyICpwKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICpwID0gX19z
d2FodzMycChwKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc3dhaGIzMnMoX191MzIg
KnApCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKnAgPSBfX3N3YWhi
MzJwKHApOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9zd2Fi
LmgiIDIKMTQ0NzQ6ICMgMTQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2J5dGVvcmRlci9saXR0bGVf
ZW5kaWFuLmgiIDIKMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2J5dGVvcmRlci9s
aXR0bGVfZW5kaWFuLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IF9fbGU2NCBfX2NwdV90b19sZTY0cChjb25zdCBfX3U2NCAqcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gKCBfX2xlNjQpKnA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIF9fdTY0IF9fbGU2NF90b19jcHVwKGNvbnN0IF9fbGU2NCAqcCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKCBfX3U2NCkqcDsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgX19sZTMyIF9fY3B1X3RvX2xlMzJwKGNvbnN0IF9fdTMy
ICpwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoIF9fbGUzMikqcDsKMTQ0NzQ6IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX191MzIgX19sZTMyX3RvX2NwdXAo
Y29uc3QgX19sZTMyICpwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoIF9fdTMyKSpwOwoxNDQ3
NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX2xlMTYgX19j
cHVfdG9fbGUxNnAoY29uc3QgX191MTYgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICggX19s
ZTE2KSpwOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBfX3UxNiBfX2xlMTZfdG9fY3B1cChjb25zdCBfX2xlMTYgKnApCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuICggX191MTYpKnA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIF9fYmU2NCBfX2NwdV90b19iZTY0cChjb25zdCBfX3U2NCAqcCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKCBfX2JlNjQpX19zd2FiNjRwKHApOwoxNDQ3NDogfQoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX3U2NCBfX2JlNjRfdG9fY3B1cChj
b25zdCBfX2JlNjQgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fc3dhYjY0cCgoX191NjQg
KilwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
X19iZTMyIF9fY3B1X3RvX2JlMzJwKGNvbnN0IF9fdTMyICpwKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAoIF9fYmUzMilfX3N3YWIzMnAocCk7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTMyIF9fYmUzMl90b19jcHVwKGNvbnN0IF9fYmUzMiAq
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19zd2FiMzJwKChfX3UzMiAqKXApOwoxNDQ3NDog
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX2JlMTYgX19jcHVf
dG9fYmUxNnAoY29uc3QgX191MTYgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICggX19iZTE2
KV9fc3dhYjE2cChwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgX191MTYgX19iZTE2X3RvX2NwdXAoY29uc3QgX19iZTE2ICpwKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBfX3N3YWIxNnAoKF9fdTE2ICopcCk7CjE0NDc0OiB9CjE0NDc0OiAjIDYg
Ii4vaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
Ynl0ZW9yZGVyL2dlbmVyaWMuaCIgMQoxNDQ3NDogIyAxNDQgIi4vaW5jbHVkZS9saW51eC9ieXRl
b3JkZXIvZ2VuZXJpYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsZTE2X2FkZF9jcHUoX19sZTE2ICp2YXIsIHUx
NiB2YWwpCjE0NDc0OiB7CjE0NDc0OiAgKnZhciA9ICgoIF9fbGUxNikoX191MTYpKCgoIF9fdTE2
KShfX2xlMTYpKCp2YXIpKSArIHZhbCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxl
MzJfYWRkX2NwdShfX2xlMzIgKnZhciwgdTMyIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqdmFyID0g
KCggX19sZTMyKShfX3UzMikoKCggX191MzIpKF9fbGUzMikoKnZhcikpICsgdmFsKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGU2NF9hZGRfY3B1KF9fbGU2NCAqdmFyLCB1NjQgdmFs
KQoxNDQ3NDogewoxNDQ3NDogICp2YXIgPSAoKCBfX2xlNjQpKF9fdTY0KSgoKCBfX3U2NCkoX19s
ZTY0KSgqdmFyKSkgKyB2YWwpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGxlMzJfdG9fY3B1X2FycmF5KHUzMiAqYnVmLCB1bnNpZ25lZCBpbnQgd29yZHMpCjE0NDc0OiB7
CjE0NDc0OiAgd2hpbGUgKHdvcmRzLS0pIHsKMTQ0NzQ6ICAgZG8geyAodm9pZCkoYnVmKTsgfSB3
aGlsZSAoMCk7CjE0NDc0OiAgIGJ1ZisrOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBjcHVfdG9fbGUzMl9hcnJheSh1MzIgKmJ1ZiwgdW5zaWduZWQgaW50IHdvcmRzKQox
NDQ3NDogewoxNDQ3NDogIHdoaWxlICh3b3Jkcy0tKSB7CjE0NDc0OiAgIGRvIHsgKHZvaWQpKGJ1
Zik7IH0gd2hpbGUgKDApOwoxNDQ3NDogICBidWYrKzsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYmUxNl9hZGRfY3B1KF9fYmUxNiAqdmFyLCB1MTYgdmFsKQoxNDQ3NDog
ewoxNDQ3NDogICp2YXIgPSAoKCBfX2JlMTYpKF9fdTE2KV9fYnVpbHRpbl9ic3dhcDE2KChfX3Ux
NikoKChfX3UxNilfX2J1aWx0aW5fYnN3YXAxNigoX191MTYpKCggX191MTYpKF9fYmUxNikoKnZh
cikpKSArIHZhbCkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl9hZGRfY3B1
KF9fYmUzMiAqdmFyLCB1MzIgdmFsKQoxNDQ3NDogewoxNDQ3NDogICp2YXIgPSAoKCBfX2JlMzIp
KF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChfX3UzMikoKChfX3UzMilfX2J1aWx0aW5fYnN3YXAz
MigoX191MzIpKCggX191MzIpKF9fYmUzMikoKnZhcikpKSArIHZhbCkpKSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgYmU2NF9hZGRfY3B1KF9fYmU2NCAqdmFyLCB1NjQgdmFsKQoxNDQ3
NDogewoxNDQ3NDogICp2YXIgPSAoKCBfX2JlNjQpKF9fdTY0KV9fYnVpbHRpbl9ic3dhcDY0KChf
X3U2NCkoKChfX3U2NClfX2J1aWx0aW5fYnN3YXA2NCgoX191NjQpKCggX191NjQpKF9fYmU2NCko
KnZhcikpKSArIHZhbCkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1X3RvX2Jl
MzJfYXJyYXkoX19iZTMyICpkc3QsIGNvbnN0IHUzMiAqc3JjLCBzaXplX3QgbGVuKQoxNDQ3NDog
ewoxNDQ3NDogIGludCBpOwoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsr
KQoxNDQ3NDogICBkc3RbaV0gPSAoKCBfX2JlMzIpKF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChf
X3UzMikoKHNyY1tpXSkpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl90b19j
cHVfYXJyYXkodTMyICpkc3QsIGNvbnN0IF9fYmUzMiAqc3JjLCBzaXplX3QgbGVuKQoxNDQ3NDog
ewoxNDQ3NDogIGludCBpOwoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsr
KQoxNDQ3NDogICBkc3RbaV0gPSAoX191MzIpX19idWlsdGluX2Jzd2FwMzIoKF9fdTMyKSgoIF9f
dTMyKShfX2JlMzIpKHNyY1tpXSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTIgIi4vaW5jbHVkZS9s
aW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAyCjE0NDc0OiAjIDYgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ieXRlb3JkZXIuaCIgMgoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvYXNt
LWdlbmVyaWMvcXJ3bG9ja190eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vc3BpbmxvY2tfdHlwZXMuaCIgMQoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvYXNtLWdlbmVy
aWMvcXJ3bG9ja190eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgcXJ3bG9jayB7CjE0NDc0OiAgdW5pb24gewoxNDQ3
NDogICBhdG9taWNfdCBjbnRzOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgICB1
OCB3bG9ja2VkOwoxNDQ3NDogICAgdTggX19sc3RhdGVbM107CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIGFyY2hfc3BpbmxvY2tf
dCB3YWl0X2xvY2s7CjE0NDc0OiB9IGFyY2hfcndsb2NrX3Q7CjE0NDc0OiAjIDMwICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMzExICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgcXNwaW5sb2NrOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHZfbG9ja19vcHMgewox
NDQ3NDogIHZvaWQgKCpxdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKShzdHJ1Y3QgcXNwaW5sb2Nr
ICpsb2NrLCB1MzIgdmFsKTsKMTQ0NzQ6ICBzdHJ1Y3QgcGFyYXZpcnRfY2FsbGVlX3NhdmUgcXVl
dWVkX3NwaW5fdW5sb2NrOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKndhaXQpKHU4ICpwdHIsIHU4
IHZhbCk7CjE0NDc0OiAgdm9pZCAoKmtpY2spKGludCBjcHUpOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IHBhcmF2aXJ0X2NhbGxlZV9zYXZlIHZjcHVfaXNfcHJlZW1wdGVkOwoxNDQ3NDogfSA7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwYXJhdmlydF9wYXRj
aF90ZW1wbGF0ZSB7CjE0NDc0OiAgc3RydWN0IHB2X2luaXRfb3BzIGluaXQ7CjE0NDc0OiAgc3Ry
dWN0IHB2X3RpbWVfb3BzIHRpbWU7CjE0NDc0OiAgc3RydWN0IHB2X2NwdV9vcHMgY3B1OwoxNDQ3
NDogIHN0cnVjdCBwdl9pcnFfb3BzIGlycTsKMTQ0NzQ6ICBzdHJ1Y3QgcHZfbW11X29wcyBtbXU7
CjE0NDc0OiAgc3RydWN0IHB2X2xvY2tfb3BzIGxvY2s7CjE0NDc0OiB9IDsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHN0cnVjdCBwdl9pbmZvIHB2X2luZm87CjE0NDc0OiBleHRlcm4gc3RydWN0IHBh
cmF2aXJ0X3BhdGNoX3RlbXBsYXRlIHB2X29wczsKMTQ0NzQ6ICMgMzcwICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiCjE0NDc0OiB1bnNpZ25lZCBwYXJhdmlydF9wYXRj
aF9pZGVudF82NCh2b2lkICppbnNuX2J1ZmYsIHVuc2lnbmVkIGxlbik7CjE0NDc0OiB1bnNpZ25l
ZCBwYXJhdmlydF9wYXRjaF9kZWZhdWx0KHU4IHR5cGUsIHZvaWQgKmluc25fYnVmZiwgdW5zaWdu
ZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsZW4pOwoxNDQ3NDogdW5zaWduZWQgcGFyYXZpcnRfcGF0
Y2hfaW5zbnModm9pZCAqaW5zbl9idWZmLCB1bnNpZ25lZCBsZW4sIGNvbnN0IGNoYXIgKnN0YXJ0
LCBjb25zdCBjaGFyICplbmQpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBuYXRpdmVfcGF0Y2go
dTggdHlwZSwgdm9pZCAqaW5zbl9idWZmLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxl
bik7CjE0NDc0OiAKMTQ0NzQ6IGludCBwYXJhdmlydF9kaXNhYmxlX2lvc3BhY2Uodm9pZCk7CjE0
NDc0OiAjIDY1MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgoxNDQ3
NDogZW51bSBwYXJhdmlydF9sYXp5X21vZGUgewoxNDQ3NDogIFBBUkFWSVJUX0xBWllfTk9ORSwK
MTQ0NzQ6ICBQQVJBVklSVF9MQVpZX01NVSwKMTQ0NzQ6ICBQQVJBVklSVF9MQVpZX0NQVSwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGFyYXZpcnRfbGF6eV9tb2RlIHBhcmF2aXJ0X2dl
dF9sYXp5X21vZGUodm9pZCk7CjE0NDc0OiB2b2lkIHBhcmF2aXJ0X3N0YXJ0X2NvbnRleHRfc3dp
dGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldik7CjE0NDc0OiB2b2lkIHBhcmF2aXJ0X2VuZF9j
b250ZXh0X3N3aXRjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIHBhcmF2aXJ0X2VudGVyX2xhenlfbW11KHZvaWQpOwoxNDQ3NDogdm9pZCBwYXJhdmlydF9s
ZWF2ZV9sYXp5X21tdSh2b2lkKTsKMTQ0NzQ6IHZvaWQgcGFyYXZpcnRfZmx1c2hfbGF6eV9tbXUo
dm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgX3BhcmF2aXJ0X25vcCh2b2lkKTsKMTQ0NzQ6IHU2
NCBfcGFyYXZpcnRfaWRlbnRfNjQodTY0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3NpdGUgewoxNDQ3NDogIHU4ICppbnN0cjsK
MTQ0NzQ6ICB1OCB0eXBlOwoxNDQ3NDogIHU4IGxlbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfc2l0ZSBfX3BhcmFpbnN0cnVjdGlvbnNbXSwK
MTQ0NzQ6ICBfX3BhcmFpbnN0cnVjdGlvbnNfZW5kW107CjE0NDc0OiAjIDk1ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNw
dWluZm9feDg2OwoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdW5zaWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcKMTQ0NzQ6IGNvbnZlcnRfaXBfdG9fbGluZWFy
KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIHNlbmRfc2lndHJhcChzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGVycm9y
X2NvZGUsIGludCBzaV9jb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25n
IHJlZ3NfcmV0dXJuX3ZhbHVlKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiByZWdzLT5heDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWdzX3NldF9y
ZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgcmMpCjE0NDc0
OiB7CjE0NDc0OiAgcmVncy0+YXggPSByYzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTI2ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVzZXJfbW9kZShzdHJ1Y3QgcHRf
cmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1
cm4gISEocmVncy0+Y3MgJiAzKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
djgwODZfbW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIHVzZXJfNjRiaXRfbW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1
cm4gcmVncy0+Y3MgPT0gKDYqOCArIDMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhbnlfNjRiaXRfbW9kZShzdHJ1Y3QgcHRfcmVn
cyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAhdXNlcl9tb2RlKHJlZ3Mp
IHx8IHVzZXJfNjRiaXRfbW9kZShyZWdzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHVuc2lnbmVkIGxvbmcga2VybmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZ3MtPnNwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIGluc3RydWN0aW9uX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZ3MtPmlwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGluc3RydWN0aW9uX3BvaW50ZXJfc2V0KHN0cnVjdCBwdF9yZWdzICpyZWdzLAoxNDQ3
NDogICB1bnNpZ25lZCBsb25nIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWdzLT5pcCA9IHZhbDsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmcmFtZV9wb2ludGVyKHN0cnVj
dCBwdF9yZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiByZWdzLT5icDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB1c2VyX3N0YWNrX3BvaW50ZXIoc3RydWN0
IHB0X3JlZ3MgKnJlZ3MpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZ3MtPnNwOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVzZXJfc3RhY2tfcG9pbnRlcl9zZXQoc3RydWN0IHB0X3Jl
Z3MgKnJlZ3MsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsKQoxNDQ3NDogewoxNDQ3NDogIHJl
Z3MtPnNwID0gdmFsOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQg
cmVnc19xdWVyeV9yZWdpc3Rlcl9vZmZzZXQoY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiBleHRl
cm4gY29uc3QgY2hhciAqcmVnc19xdWVyeV9yZWdpc3Rlcl9uYW1lKHVuc2lnbmVkIGludCBvZmZz
ZXQpOwoxNDQ3NDogIyAyMjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0X3JlZ2lzdGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLAox
NDQ3NDogICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0KQoxNDQ3NDogewoxNDQ3NDogIGlm
IChfX2J1aWx0aW5fZXhwZWN0KCEhKG9mZnNldCA+IChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0
IHB0X3JlZ3MsIHNzKSkpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAjIDI0MyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKMTQ0NzQ6ICByZXR1cm4gKih1bnNpZ25lZCBs
b25nICopKCh1bnNpZ25lZCBsb25nKXJlZ3MgKyBvZmZzZXQpOwoxNDQ3NDogfQoxNDQ3NDogIyAy
NTQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVnc193aXRo
aW5fa2VybmVsX3N0YWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLAoxNDQ3NDogICAgICAgICB1bnNp
Z25lZCBsb25nIGFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoYWRkciAmIH4oKCgoMVVM
KSA8PCAxMikgPDwgKDIgKyAwKSkgLSAxKSkgPT0gKHJlZ3MtPnNwICYgfigoKCgxVUwpIDw8IDEy
KSA8PCAoMiArIDApKSAtIDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDI2OSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9wdHJhY2UuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgKnJlZ3NfZ2V0X2tlcm5l
bF9zdGFja19udGhfYWRkcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgaW50IG4pCjE0
NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyAqYWRkciA9ICh1bnNpZ25lZCBsb25nICopcmVn
cy0+c3A7CjE0NDc0OiAKMTQ0NzQ6ICBhZGRyICs9IG47CjE0NDc0OiAgaWYgKHJlZ3Nfd2l0aGlu
X2tlcm5lbF9zdGFjayhyZWdzLCAodW5zaWduZWQgbG9uZylhZGRyKSkKMTQ0NzQ6ICAgcmV0dXJu
IGFkZHI7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvbmcgcHJvYmVfa2VybmVsX3JlYWQodm9p
ZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBzaXplKTsKMTQ0NzQ6ICMgMjkyICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyByZWdzX2dl
dF9rZXJuZWxfc3RhY2tfbnRoKHN0cnVjdCBwdF9yZWdzICpyZWdzLAoxNDQ3NDogICAgICAgICAg
ICAgdW5zaWduZWQgaW50IG4pCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyAqYWRkcjsK
MTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHZhbDsKMTQ0NzQ6ICBsb25nIHJldDsKMTQ0NzQ6IAoxNDQ3
NDogIGFkZHIgPSByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRoX2FkZHIocmVncywgbik7CjE0NDc0
OiAgaWYgKGFkZHIpIHsKMTQ0NzQ6ICAgcmV0ID0gcHJvYmVfa2VybmVsX3JlYWQoJnZhbCwgYWRk
ciwgc2l6ZW9mKHZhbCkpOwoxNDQ3NDogICBpZiAoIXJldCkKMTQ0NzQ6ICAgIHJldHVybiB2YWw7
CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogIyAzMTkgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0
X2tlcm5lbF9hcmd1bWVudChzdHJ1Y3QgcHRfcmVncyAqcmVncywKMTQ0NzQ6ICAgICAgICAgICAg
dW5zaWduZWQgaW50IG4pCjE0NDc0OiB7CjE0NDc0OiAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCBhcmd1bWVudF9vZmZzW10gPSB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywg
ZGkpLAoxNDQ3NDogICBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHB0X3JlZ3MsIHNpKSwKMTQ0
NzQ6ICAgX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwdF9yZWdzLCBkeCksCjE0NDc0OiAgIF9f
YnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgY3gpLAoxNDQ3NDogICBfX2J1aWx0aW5f
b2Zmc2V0b2Yoc3RydWN0IHB0X3JlZ3MsIHI4KSwKMTQ0NzQ6ICAgX19idWlsdGluX29mZnNldG9m
KHN0cnVjdCBwdF9yZWdzLCByOSksCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIH07CjE0NDc0OiAK
MTQ0NzQ6ICBpZiAobiA+PSA2KSB7CjE0NDc0OiAgIG4gLT0gNiAtIDE7CjE0NDc0OiAgIHJldHVy
biByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRoKHJlZ3MsIG4pOwoxNDQ3NDogIH0gZWxzZQoxNDQ3
NDogICByZXR1cm4gcmVnc19nZXRfcmVnaXN0ZXIocmVncywgYXJndW1lbnRfb2Zmc1tuXSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDM1NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKMTQ0
NzQ6IHN0cnVjdCB1c2VyX2Rlc2M7CjE0NDc0OiBleHRlcm4gaW50IGRvX2dldF90aHJlYWRfYXJl
YShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBpZHgsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3Qg
dXNlcl9kZXNjICppbmZvKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZG9fc2V0X3RocmVhZF9hcmVhKHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IGlkeCwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCB1c2Vy
X2Rlc2MgKmluZm8sIGludCBjYW5fYWxsb2NhdGUpOwoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9rZ2RiLmgiIDIKMTQ0NzQ6ICMgNDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
a2dkYi5oIgoxNDQ3NDogZW51bSByZWduYW1lcyB7CjE0NDc0OiAgR0RCX0FYLAoxNDQ3NDogIEdE
Ql9CWCwKMTQ0NzQ6ICBHREJfQ1gsCjE0NDc0OiAgR0RCX0RYLAoxNDQ3NDogIEdEQl9TSSwKMTQ0
NzQ6ICBHREJfREksCjE0NDc0OiAgR0RCX0JQLAoxNDQ3NDogIEdEQl9TUCwKMTQ0NzQ6ICBHREJf
UjgsCjE0NDc0OiAgR0RCX1I5LAoxNDQ3NDogIEdEQl9SMTAsCjE0NDc0OiAgR0RCX1IxMSwKMTQ0
NzQ6ICBHREJfUjEyLAoxNDQ3NDogIEdEQl9SMTMsCjE0NDc0OiAgR0RCX1IxNCwKMTQ0NzQ6ICBH
REJfUjE1LAoxNDQ3NDogIEdEQl9QQywKMTQ0NzQ6ICBHREJfUFMsCjE0NDc0OiAgR0RCX0NTLAox
NDQ3NDogIEdEQl9TUywKMTQ0NzQ6ICBHREJfRFMsCjE0NDc0OiAgR0RCX0VTLAoxNDQ3NDogIEdE
Ql9GUywKMTQ0NzQ6ICBHREJfR1MsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2tnZGJfYnJlYWtwb2ludCh2
b2lkKQoxNDQ3NDogewoxNDQ3NDogIGFzbSgiICAgaW50ICQzIik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQga2dkYl9sbF90cmFwKGlu
dCBjbWQsIGNvbnN0IGNoYXIgKnN0ciwKMTQ0NzQ6ICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBs
b25nIGVyciwgaW50IHRyYXAsIGludCBzaWcpOwoxNDQ3NDogIyAyMSAiLi9pbmNsdWRlL2xpbnV4
L2tnZGIuaCIgMgoxNDQ3NDogIyAzMzMgIi4vaW5jbHVkZS9saW51eC9rZ2RiLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGtnZGJfcGFuaWMoY29uc3QgY2hhciAqbXNnKSB7fQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL2xpbnV4L2tyZWYuaCIgMQoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4
L2tyZWYuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDEKMTQ0NzQ6
ICMgNTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgvdHlwZWNoZWNrLmgiIDEKMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9saW51eC9zcGlubG9j
ay5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiIDEKMTQ0NzQ6ICMg
MTEgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9saXN0LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BvaXNvbi5oIiAxCjE0NDc0OiAjIDggIi4v
aW5jbHVkZS9saW51eC9saXN0LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgva2VybmVsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAjIDEgIi91c3IvbGliL2djYy94ODZfNjQtbGludXgtZ251LzEwL2luY2x1ZGUvc3RkYXJn
LmgiIDEgMyA0CjE0NDc0OiAjIDQwICIvdXNyL2xpYi9nY2MveDg2XzY0LWxpbnV4LWdudS8xMC9p
bmNsdWRlL3N0ZGFyZy5oIiAzIDQKMTQ0NzQ6IAoxNDQ3NDogIyA0MCAiL3Vzci9saWIvZ2NjL3g4
Nl82NC1saW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CjE0NDc0OiB0eXBlZGVmIF9f
YnVpbHRpbl92YV9saXN0IF9fZ251Y192YV9saXN0OwoxNDQ3NDogIyA5OSAiL3Vzci9saWIvZ2Nj
L3g4Nl82NC1saW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CjE0NDc0OiB0eXBlZGVm
IF9fZ251Y192YV9saXN0IHZhX2xpc3Q7CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9rZXJu
ZWwuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDEKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9s
aW1pdHMuaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDIKMTQ0NzQ6
ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAxCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaS9hc20vdHlwZXMuaCIgMQoxNDQ3NDogIyA1ICIuL2luY2x1ZGUvbGludXgvYml0b3BzLmgi
IDIKMTQ0NzQ6ICMgMjAgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKMTQ0NzQ6IAoxNDQ3NDog
IyAyMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGlu
dCBfX3N3X2h3ZWlnaHQ4KHVuc2lnbmVkIGludCB3KTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBp
bnQgX19zd19od2VpZ2h0MTYodW5zaWduZWQgaW50IHcpOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVk
IGludCBfX3N3X2h3ZWlnaHQzMih1bnNpZ25lZCBpbnQgdyk7CjE0NDc0OiBleHRlcm4gdW5zaWdu
ZWQgbG9uZyBfX3N3X2h3ZWlnaHQ2NChfX3U2NCB3KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3Bz
LmgiIDEKMTQ0NzQ6ICMgNTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQKMTQ0NzQ6IGFyY2hfc2V0
X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChucikpIHsKMTQ0NzQ6ICAgYXNtIHZvbGF0aWxl
KCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2
NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAib3JiICUxLCUw
IgoxNDQ3NDogICAgOiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKikgKCh2b2lkICopKGFkZHIpICsg
KChucik+PjMpKSkKMTQ0NzQ6ICAgIDogImlxIiAoKHU4KSgxIDw8ICgobnIpICYgNykpKQoxNDQ3
NDogICAgOiAibWVtb3J5Iik7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgYXNtIHZvbGF0aWxl
KCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2
NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiICIgImJ0c3Ei
ICIgIiAiICUxLCUwIgoxNDQ3NDogICAgOiA6ICJtIiAoKih2b2xhdGlsZSBsb25nICopIChhZGRy
KSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZAoxNDQ3NDogYXJjaF9f
X3NldF9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBhc20gdm9sYXRpbGUoIiAiICJidHNxIiAiICIgIiAlMSwlMCIgOiA6ICJtIiAoKih2
b2xhdGlsZSBsb25nICopIChhZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCjE0
NDc0OiBhcmNoX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRy
KQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChucikpIHsKMTQ0NzQ6
ICAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiYW5kYiAlMSwlMCIKMTQ0NzQ6ICAgIDogIittIiAoKih2b2xhdGlsZSBjaGFyICopICgo
dm9pZCAqKShhZGRyKSArICgobnIpPj4zKSkpCjE0NDc0OiAgICA6ICJpcSIgKCh1OCl+KDEgPDwg
KChucikgJiA3KSkpKTsKMTQ0NzQ6ICB9IGVsc2UgewoxNDQ3NDogICBhc20gdm9sYXRpbGUoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICIgIiAiYnRycSIgIiAi
ICIgJTEsJTAiCjE0NDc0OiAgICA6IDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwg
IklyIiAobnIpIDogIm1lbW9yeSIpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCjE0NDc0OiBhcmNoX2NsZWFy
X2JpdF91bmxvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDog
IGFyY2hfY2xlYXJfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCjE0NDc0OiBhcmNoX19fY2xlYXJfYml0
KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAg
YXNtIHZvbGF0aWxlKCIgIiAiYnRycSIgIiAiICIgJTEsJTAiIDogOiAibSIgKCoodm9sYXRpbGUg
bG9uZyAqKSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAoxNDQ3NDogYXJj
aF9jbGVhcl9iaXRfdW5sb2NrX2lzX25lZ2F0aXZlX2J5dGUobG9uZyBuciwgdm9sYXRpbGUgdW5z
aWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBib29sIG5lZ2F0aXZlOwoxNDQ3NDog
IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24g
NFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7
ICIgImFuZGIgJTIsJTEiCjE0NDc0OiAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIg
InMiICIqL1xuIgoxNDQ3NDogICA6ICI9QGNjIiAicyIgKG5lZ2F0aXZlKSwgIittIiAoKih2b2xh
dGlsZSBjaGFyICopIChhZGRyKSkKMTQ0NzQ6ICAgOiAiaXIiICgoY2hhcikgfigxIDw8IG5yKSkg
OiAibWVtb3J5Iik7CjE0NDc0OiAgcmV0dXJuIG5lZ2F0aXZlOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2
b2lkCjE0NDc0OiBhcmNoX19fY2xlYXJfYml0X3VubG9jayhsb25nIG5yLCB2b2xhdGlsZSB1bnNp
Z25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGFyY2hfX19jbGVhcl9iaXQobnIsIGFk
ZHIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQKMTQ0NzQ6IGFyY2hfX19jaGFuZ2VfYml0KGxvbmcgbnIsIHZvbGF0aWxlIHVu
c2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCIgIiAiYnRj
cSIgIiAiICIgJTEsJTAiIDogOiAibSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAiSXIi
IChucikgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZAoxNDQ3NDogYXJjaF9jaGFuZ2VfYml0KGxvbmcgbnIs
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVp
bHRpbl9jb25zdGFudF9wKG5yKSkgewoxNDQ3NDogICBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4b3JiICUxLCUwIgoxNDQ3NDogICAg
OiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKikgKCh2b2lkICopKGFkZHIpICsgKChucik+PjMpKSkK
MTQ0NzQ6ICAgIDogImlxIiAoKHU4KSgxIDw8ICgobnIpICYgNykpKSk7CjE0NDc0OiAgfSBlbHNl
IHsKMTQ0NzQ6ICAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxu
IiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToi
ICJcblx0bG9jazsgIiAiICIgImJ0Y3EiICIgIiAiICUxLCUwIgoxNDQ3NDogICAgOiA6ICJtIiAo
Kih2b2xhdGlsZSBsb25nICopIChhZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKMTQ0NzQ6
ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgYm9vbAoxNDQ3NDogYXJjaF90ZXN0X2FuZF9zZXRfYml0KGxvbmcgbnIsIHZvbGF0aWxl
IHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGJvb2wgYzsg
YXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24g
NFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7
ICIgIiAiICJidHNxIiAiICIgIiAlW3ZhbF0sICIgIiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQgY29u
ZGl0aW9uIGNvZGUgIiAiYyIgIiovXG4iIDogW3Zhcl0gIittIiAoKmFkZHIpLCAiPUBjYyIgImMi
IChjKSA6IFt2YWxdICJJciIgKG5yKSA6ICJtZW1vcnkiKTsgYzsgfSk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAoxNDQ3NDog
YXJjaF90ZXN0X2FuZF9zZXRfYml0X2xvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9u
ZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJjaF90ZXN0X2FuZF9zZXRfYml0KG5y
LCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSBib29sCjE0NDc0OiBhcmNoX19fdGVzdF9hbmRfc2V0X2JpdChsb25nIG5yLCB2
b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGJvb2wgb2xkYml0
OwoxNDQ3NDogCjE0NDc0OiAgYXNtKCIgIiAiYnRzcSIgIiAiICIgJTIsJTEiCjE0NDc0OiAgICAg
ICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImMiICIqL1xuIgoxNDQ3NDogICAgICA6
ICI9QGNjIiAiYyIgKG9sZGJpdCkKMTQ0NzQ6ICAgICAgOiAibSIgKCoodm9sYXRpbGUgbG9uZyAq
KSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CjE0NDc0OiAgcmV0dXJuIG9sZGJpdDsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBib29sCjE0NDc0OiBhcmNoX3Rlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1
bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFz
bSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICIgIiAiYnRycSIgIiAiICIgJVt2YWxdLCAiICIlW3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRp
dGlvbiBjb2RlICIgImMiICIqL1xuIiA6IFt2YXJdICIrbSIgKCphZGRyKSwgIj1AY2MiICJjIiAo
YykgOiBbdmFsXSAiSXIiIChucikgOiAibWVtb3J5Iik7IGM7IH0pOwoxNDQ3NDogfQoxNDQ3NDog
IyAxNzMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wKMTQ0NzQ6IGFyY2hfX190ZXN0X2FuZF9jbGVh
cl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBib29sIG9sZGJpdDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiICIgImJ0cnEi
ICIgIiAiICUyLCUxIgoxNDQ3NDogICAgICAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2Rl
ICIgImMiICIqL1xuIgoxNDQ3NDogICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQoxNDQ3NDog
ICAgICAgIDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwgIklyIiAobnIpIDogIm1l
bW9yeSIpOwoxNDQ3NDogIHJldHVybiBvbGRiaXQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAoxNDQ3NDogYXJjaF9fX3Rlc3Rf
YW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBib29sIG9sZGJpdDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgi
ICIgImJ0Y3EiICIgIiAiICUyLCUxIgoxNDQ3NDogICAgICAgICJcblx0Lyogb3V0cHV0IGNvbmRp
dGlvbiBjb2RlICIgImMiICIqL1xuIgoxNDQ3NDogICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0
KQoxNDQ3NDogICAgICAgIDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwgIklyIiAo
bnIpIDogIm1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIG9sZGJpdDsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sCjE0
NDc0OiBhcmNoX3Rlc3RfYW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9sYXRp
bGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiICIgImJ0
Y3EiICIgIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29k
ZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iICgqYWRkciksICI9QGNjIiAiYyIgKGMpIDogW3Zh
bF0gIklyIiAobnIpIDogIm1lbW9yeSIpOyBjOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIGNvbnN0YW50X3Rlc3RfYml0
KGxvbmcgbnIsIGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICgoMVVMIDw8IChuciAmICg2NCAtMSkpKSAmCjE0NDc0OiAgIChhZGRyW25y
ID4+IDZdKSkgIT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBib29sIHZhcmlhYmxlX3Rlc3RfYml0KGxvbmcgbnIsIHZvbGF0aWxl
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgYm9vbCBvbGRiaXQ7
CjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIiAiICJidHEiICIgIiAiICUyLCUxIgoxNDQ3
NDogICAgICAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImMiICIqL1xuIgoxNDQ3
NDogICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQoxNDQ3NDogICAgICAgIDogIm0iICgqKHVu
c2lnbmVkIGxvbmcgKilhZGRyKSwgIklyIiAobnIpIDogIm1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIG9sZGJpdDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjMzICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2JpdG9wcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB1bnNpZ25lZCBsb25nIF9fZmZzKHVuc2lnbmVkIGxvbmcgd29yZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBhc20oInJlcDsgYnNmICUxLCUwIgoxNDQ3NDogICA6ICI9ciIgKHdvcmQpCjE0NDc0OiAgIDog
InJtIiAod29yZCkpOwoxNDQ3NDogIHJldHVybiB3b3JkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgZmZ6KHVuc2lnbmVkIGxv
bmcgd29yZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20oInJlcDsgYnNmICUxLCUwIgoxNDQ3NDogICA6
ICI9ciIgKHdvcmQpCjE0NDc0OiAgIDogInIiICh+d29yZCkpOwoxNDQ3NDogIHJldHVybiB3b3Jk
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2ln
bmVkIGxvbmcgX19mbHModW5zaWduZWQgbG9uZyB3b3JkKQoxNDQ3NDogewoxNDQ3NDogIGFzbSgi
YnNyICUxLCUwIgoxNDQ3NDogICAgICA6ICI9ciIgKHdvcmQpCjE0NDc0OiAgICAgIDogInJtIiAo
d29yZCkpOwoxNDQ3NDogIHJldHVybiB3b3JkOwoxNDQ3NDogfQoxNDQ3NDogIyAyODMgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBmZnMoaW50IHgpCjE0NDc0OiB7CjE0NDc0OiAgaW50IHI7CjE0NDc0
OiAjIDI5NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKMTQ0NzQ6ICBhc20oImJz
ZmwgJTEsJTAiCjE0NDc0OiAgICAgIDogIj1yIiAocikKMTQ0NzQ6ICAgICAgOiAicm0iICh4KSwg
IjAiICgtMSkpOwoxNDQ3NDogIyAzMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgi
CjE0NDc0OiAgcmV0dXJuIHIgKyAxOwoxNDQ3NDogfQoxNDQ3NDogIyAzMjQgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIGludCBmbHModW5zaWduZWQgaW50IHgpCjE0NDc0OiB7CjE0NDc0OiAgaW50IHI7CjE0
NDc0OiAjIDMzOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKMTQ0NzQ6ICBhc20o
ImJzcmwgJTEsJTAiCjE0NDc0OiAgICAgIDogIj1yIiAocikKMTQ0NzQ6ICAgICAgOiAicm0iICh4
KSwgIjAiICgtMSkpOwoxNDQ3NDogIyAzNTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3Bz
LmgiCjE0NDc0OiAgcmV0dXJuIHIgKyAxOwoxNDQ3NDogfQoxNDQ3NDogIyAzNjYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGludCBmbHM2NChfX3U2NCB4KQoxNDQ3NDogewoxNDQ3NDogIGludCBiaXRwb3Mg
PSAtMTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXNt
KCJic3JxICUxLCVxMCIKMTQ0NzQ6ICAgICAgOiAiK3IiIChiaXRwb3MpCjE0NDc0OiAgICAgIDog
InJtIiAoeCkpOwoxNDQ3NDogIHJldHVybiBiaXRwb3MgKyAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9i
aXRvcHMvZmluZC5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3Bz
L2ZpbmQuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF9iaXQoY29uc3Qg
dW5zaWduZWQgbG9uZyAqYWRkciwgdW5zaWduZWQgbG9uZwoxNDQ3NDogICBzaXplLCB1bnNpZ25l
ZCBsb25nIG9mZnNldCk7CjE0NDc0OiAjIDMwICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3Bz
L2ZpbmQuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF9hbmRfYml0KGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIxLAoxNDQ3NDogICBjb25zdCB1bnNpZ25lZCBsb25nICph
ZGRyMiwgdW5zaWduZWQgbG9uZyBzaXplLAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIG9mZnNldCk7
CjE0NDc0OiAjIDQ1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2ZpbmQuaCIKMTQ0NzQ6
IGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdChjb25zdCB1bnNpZ25lZCBs
b25nICphZGRyLCB1bnNpZ25lZAoxNDQ3NDogICBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0KTsKMTQ0NzQ6ICMgNTkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgox
NDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9maXJzdF9iaXQoY29uc3QgdW5zaWduZWQg
bG9uZyAqYWRkciwKMTQ0NzQ6ICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplKTsKMTQ0NzQ6ICMg
NzAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGxvbmcgZmluZF9maXJzdF96ZXJvX2JpdChjb25zdCB1bnNpZ25lZCBsb25nICphZGRy
LAoxNDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBzaXplKTsKMTQ0NzQ6ICMgOTMgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
ZmluZF9uZXh0X2NsdW1wOCh1bnNpZ25lZCBsb25nICpjbHVtcCwKMTQ0NzQ6ICAgICAgICAgICBj
b25zdCB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcg
c2l6ZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpOwoxNDQ3NDogIyAzODQgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYml0b3BzL3NjaGVkLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20v
dHlwZXMuaCIgMQoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL3NjaGVk
LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCBzY2hlZF9maW5kX2ZpcnN0X2JpdChjb25zdCB1bnNpZ25lZCBsb25nICpiKQoxNDQ3
NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKGJbMF0pCjE0NDc0OiAgIHJldHVybiBfX2ZmcyhiWzBd
KTsKMTQ0NzQ6ICByZXR1cm4gX19mZnMoYlsxXSkgKyA2NDsKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvc2NoZWQuaCIKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg2ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcmNoX2h3ZWlnaHQuaCIgMQoxNDQ3NDogIyAxNSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hcmNoX2h3ZWlnaHQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdW5zaWduZWQgaW50IF9fYXJjaF9od2VpZ2h0MzIodW5zaWduZWQgaW50
IHcpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlczsKMTQ0NzQ6IAoxNDQ3NDogIGFz
bSAoIiMgQUxUOiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgImNhbGwgX19zd19od2VpZ2h0MzIiICJc
bjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nXG4iICIuc2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0
IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAiKSkgPiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIi
NjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAiKSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1
c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAi
IC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIoIDQqMzIrMjMpIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEi
ImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5w
dXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxh
Y2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIiOlxuXHQiICJwb3BjbnRsICUxLCAlMCIgIlxuIiAi
NjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIKMTQ0NzQ6ICAgICA6ICI9IiJhIiAocmVzKQox
NDQ3NDogICAgIDogIkQiICh3KSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgX19hcmNoX2h3ZWlnaHQxNih1bnNpZ25lZCBp
bnQgdykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19hcmNoX2h3ZWlnaHQzMih3ICYgMHhmZmZm
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IF9fYXJjaF9od2VpZ2h0OCh1
bnNpZ25lZCBpbnQgdykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19hcmNoX2h3ZWlnaHQzMih3
ICYgMHhmZik7CjE0NDc0OiB9CjE0NDc0OiAjIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Fy
Y2hfaHdlaWdodC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1
bnNpZ25lZCBsb25nIF9fYXJjaF9od2VpZ2h0NjQoX191NjQgdykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIHJlczsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSAoIiMgQUxUOiBvbGRuc3RyXG4i
ICI2NjE6XG5cdCIgImNhbGwgX19zd19od2VpZ2h0NjQiICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRk
aW5nXG4iICIuc2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02
NjFiIiAiKSkgPiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYy
Yi02NjFiIiAiKSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVj
dGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMSIiZiAt
IC5cbiIgIiAud29yZCAiICIoIDQqMzIrMjMpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIi
ICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0ZSAiICI2
NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJf
cmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJcbiIgIjY2
NCIiMSIiOlxuXHQiICJwb3BjbnRxICUxLCAlMCIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNl
Y3Rpb25cbiIKMTQ0NzQ6ICAgICA6ICI9IiJhIiAocmVzKQoxNDQ3NDogICAgIDogIkQiICh3KSk7
CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogIyAzODggIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2NvbnN0X2h3ZWlnaHQuaCIgMQoxNDQ3NDogIyAzOTAgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1hdG9taWMuaCIgMQoxNDQ3NDog
IyAyNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtYXRvbWljLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHNldF9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRk
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCks
IHNpemVvZihsb25nKSk7CjE0NDc0OiAgYXJjaF9zZXRfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMzkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0
b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChu
cikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0OiAgYXJjaF9jbGVhcl9iaXQobnIsIGFkZHIp
OwoxNDQ3NDogfQoxNDQ3NDogIyA1NSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0
cnVtZW50ZWQtYXRvbWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRp
bGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0
ZShhZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0OiAgYXJjaF9jaGFuZ2Vf
Yml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjggIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0ZXN0X2FuZF9zZXRf
Yml0KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0
OiAga2FzYW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwox
NDQ3NDogIHJldHVybiBhcmNoX3Rlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwoxNDQ3NDogfQox
NDQ3NDogIyA4MSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtYXRv
bWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIHRlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1
bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFk
ZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF90ZXN0
X2FuZF9jbGVhcl9iaXQobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyA5NCAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtYXRvbWljLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRl
c3RfYW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNp
emVvZihsb25nKSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfdGVzdF9hbmRfY2hhbmdlX2JpdChuciwg
YWRkcik7CjE0NDc0OiB9CjE0NDc0OiAjIDM5MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRv
cHMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1l
bnRlZC1ub24tYXRvbWljLmgiIDEKMTQ0NzQ6ICMgMjUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9i
aXRvcHMvaW5zdHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19zZXRfYml0KGxv
bmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAga2Fz
YW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwoxNDQ3NDog
IGFyY2hfX19zZXRfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDAgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgX19jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVv
Zihsb25nKSk7CjE0NDc0OiAgYXJjaF9fX2NsZWFyX2JpdChuciwgYWRkcik7CjE0NDc0OiB9CjE0
NDc0OiAjIDU1ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1ub24t
YXRvbWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fY2hhbmdlX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNp
Z25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIg
KyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICBhcmNoX19fY2hhbmdlX2JpdChu
ciwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAjIDY5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0
b3BzL2luc3RydW1lbnRlZC1ub24tYXRvbWljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIF9fdGVzdF9hbmRfc2V0
X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3
NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsK
MTQ0NzQ6ICByZXR1cm4gYXJjaF9fX3Rlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwoxNDQ3NDog
fQoxNDQ3NDogIyA4MyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQt
bm9uLWF0b21pYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3Rlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2
b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNr
X3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4g
YXJjaF9fX3Rlc3RfYW5kX2NsZWFyX2JpdChuciwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAjIDk3
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1ub24tYXRvbWljLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIF9fdGVzdF9hbmRfY2hhbmdlX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNp
Z25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIg
KyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9fX3Rlc3Rf
YW5kX2NoYW5nZV9iaXQobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0ZXN0X2JpdChsb25nIG5yLCBj
b25zdCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2Fu
X2NoZWNrX3JlYWQoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwoxNDQ3NDogIHJl
dHVybiAoX19idWlsdGluX2NvbnN0YW50X3AoKG5yKSkgPyBjb25zdGFudF90ZXN0X2JpdCgobnIp
LCAoYWRkcikpIDogdmFyaWFibGVfdGVzdF9iaXQoKG5yKSwgKGFkZHIpKSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDM5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIgMgoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1sb2NrLmgiIDEKMTQ0
NzQ6ICMgMjMgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2su
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgY2xlYXJfYml0X3VubG9jayhsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25l
ZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAo
KG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICBhcmNoX2NsZWFyX2JpdF91bmxvY2so
bnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2Jp
dG9wcy9pbnN0cnVtZW50ZWQtbG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NsZWFyX2JpdF91bmxvY2so
bG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBr
YXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0
OiAgYXJjaF9fX2NsZWFyX2JpdF91bmxvY2sobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyA1
MyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtbG9jay5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCB0ZXN0X2FuZF9zZXRfYml0X2xvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChu
cikgLyA2NCksIHNpemVvZihsb25nKSk7CjE0NDc0OiAgcmV0dXJuIGFyY2hfdGVzdF9hbmRfc2V0
X2JpdF9sb2NrKG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzEgIi4vaW5jbHVkZS9hc20t
Z2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKMTQ0NzQ6IGNs
ZWFyX2JpdF91bmxvY2tfaXNfbmVnYXRpdmVfYnl0ZShsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25l
ZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAo
KG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKMTQ0NzQ6ICByZXR1cm4gYXJjaF9jbGVhcl9iaXRf
dW5sb2NrX2lzX25lZ2F0aXZlX2J5dGUobnIsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2xlLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkv
YXNtL3R5cGVzLmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9s
ZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdF9sZShjb25zdCB2b2lkICphZGRy
LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBmaW5kX25leHRfemVyb19iaXQoYWRkciwgc2l6ZSwgb2Zmc2V0
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmaW5kX25leHRfYml0X2xl
KGNvbnN0IHZvaWQgKmFkZHIsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQg
bG9uZyBvZmZzZXQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZpbmRfbmV4dF9iaXQoYWRkciwg
c2l6ZSwgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmaW5k
X2ZpcnN0X3plcm9fYml0X2xlKGNvbnN0IHZvaWQgKmFkZHIsCjE0NDc0OiAgIHVuc2lnbmVkIGxv
bmcgc2l6ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmluZF9maXJzdF96ZXJvX2JpdChhZGRy
LCBzaXplKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTMgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRv
cHMvbGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2JpdF9sZShpbnQgbnIsIGNvbnN0IHZvaWQgKmFkZHIp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRlc3RfYml0KG5yIF4gMCwgYWRkcik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2JpdF9sZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0
OiB7CjE0NDc0OiAgc2V0X2JpdChuciBeIDAsIGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGNsZWFyX2JpdF9sZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAg
Y2xlYXJfYml0KG5yIF4gMCwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19z
ZXRfYml0X2xlKGludCBuciwgdm9pZCAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NldF9iaXQo
bnIgXiAwLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NsZWFyX2JpdF9s
ZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAgX19jbGVhcl9iaXQobnIgXiAw
LCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHRlc3RfYW5kX3NldF9iaXRfbGUo
aW50IG5yLCB2b2lkICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0ZXN0X2FuZF9zZXRf
Yml0KG5yIF4gMCwgYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9j
bGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0
ZXN0X2FuZF9jbGVhcl9iaXQobnIgXiAwLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IF9fdGVzdF9hbmRfc2V0X2JpdF9sZShpbnQgbnIsIHZvaWQgKmFkZHIpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIF9fdGVzdF9hbmRfc2V0X2JpdChuciBeIDAsIGFkZHIpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgX190ZXN0X2FuZF9jbGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICph
ZGRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX3Rlc3RfYW5kX2NsZWFyX2JpdChuciBeIDAs
IGFkZHIpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0
b3BzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3Bz
L2V4dDItYXRvbWljLXNldGJpdC5oIiAxCjE0NDc0OiAjIDM5OCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaCIgMgoxNDQ3NDogIyAzMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAy
CjE0NDc0OiAjIDY1ICIuL2luY2x1ZGUvbGludXgvYml0b3BzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZ2V0X2Jp
dG1hc2tfb3JkZXIodW5zaWduZWQgaW50IGNvdW50KQoxNDQ3NDogewoxNDQ3NDogIGludCBvcmRl
cjsKMTQ0NzQ6IAoxNDQ3NDogIG9yZGVyID0gZmxzKGNvdW50KTsKMTQ0NzQ6ICByZXR1cm4gb3Jk
ZXI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdW5zaWduZWQgbG9uZyBod2VpZ2h0X2xvbmcodW5zaWduZWQgbG9uZyB3KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBzaXplb2YodykgPT0gNCA/IChfX2J1aWx0aW5fY29uc3RhbnRfcCh3
KSA/ICgoKCh1bnNpZ25lZCBpbnQpICgoISEoKHcpICYgKDFVTEwgPDwgMCkpKSArICghISgodykg
JiAoMVVMTCA8PCAxKSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKHcpICYgKDFV
TEwgPDwgMykpKSArICghISgodykgJiAoMVVMTCA8PCA0KSkpICsgKCEhKCh3KSAmICgxVUxMIDw8
IDUpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgNikpKSArICghISgodykgJiAoMVVMTCA8PCA3KSkp
KSkgKyAoKHVuc2lnbmVkIGludCkgKCghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMCkpKSArICgh
ISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwg
MikpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDgpICYg
KDFVTEwgPDwgNCkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKHcp
ID4+IDgpICYgKDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNykpKSkp
KSArICgoKHVuc2lnbmVkIGludCkgKCghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDApKSkgKyAo
ISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCAxKSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwg
PDwgMikpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCh3KSA+PiAx
NikgJiAoMVVMTCA8PCA0KSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgNSkpKSArICgh
ISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDYpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8
PCA3KSkpKSkgKyAoKHVuc2lnbmVkIGludCkgKCghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVM
TCA8PCAwKSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDEpKSkgKyAoISEo
KCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMikpKSArICghISgoKCh3KSA+PiAxNikgPj4g
OCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDQp
KSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKCh3KSA+
PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgx
VUxMIDw8IDcpKSkpKSkpIDogX19hcmNoX2h3ZWlnaHQzMih3KSkgOiAoX19idWlsdGluX2NvbnN0
YW50X3AodykgPyAoKCgoKHVuc2lnbmVkIGludCkgKCghISgodykgJiAoMVVMTCA8PCAwKSkpICsg
KCEhKCh3KSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgMikpKSArICghISgo
dykgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKHcpICYg
KDFVTEwgPDwgNSkpKSArICghISgodykgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCh3KSAmICgxVUxM
IDw8IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAw
KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAxKSkpICsgKCEhKCgodykgPj4gOCkgJiAo
MVVMTCA8PCAyKSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgodykg
Pj4gOCkgJiAoMVVMTCA8PCA0KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsg
KCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8
PCA3KSkpKSkpICsgKCgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwg
MCkpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKCh3KSA+PiAxNikg
JiAoMVVMTCA8PCAyKSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICghISgo
KHcpID4+IDE2KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA1
KSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDE2KSAm
ICgxVUxMIDw8IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgoKHcpID4+IDE2KSA+PiA4
KSAmICgxVUxMIDw8IDApKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkp
KSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgoKHcpID4+
IDE2KSA+PiA4KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFV
TEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEh
KCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDYpKSkgKyAoISEoKCgodykgPj4gMTYpID4+
IDgpICYgKDFVTEwgPDwgNykpKSkpKSkgKyAoKCgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4g
MzIpICYgKDFVTEwgPDwgMCkpKSArICghISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDEpKSkgKyAo
ISEoKCh3KSA+PiAzMikgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgodykgPj4gMzIpICYgKDFVTEwg
PDwgMykpKSArICghISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCh3KSA+PiAz
MikgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgodykgPj4gMzIpICYgKDFVTEwgPDwgNikpKSArICgh
ISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgo
KHcpID4+IDMyKSA+PiA4KSAmICgxVUxMIDw8IDApKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgp
ICYgKDFVTEwgPDwgMSkpKSArICghISgoKCh3KSA+PiAzMikgPj4gOCkgJiAoMVVMTCA8PCAyKSkp
ICsgKCEhKCgoKHcpID4+IDMyKSA+PiA4KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCgodykgPj4g
MzIpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAzMikgPj4gOCkgJiAoMVVM
TCA8PCA1KSkpICsgKCEhKCgoKHcpID4+IDMyKSA+PiA4KSAmICgxVUxMIDw8IDYpKSkgKyAoISEo
KCgodykgPj4gMzIpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSArICgoKHVuc2lnbmVkIGludCkg
KCghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMCkpKSArICghISgoKCh3KSA+PiAz
MikgPj4gMTYpICYgKDFVTEwgPDwgMSkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFV
TEwgPDwgMikpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICgh
ISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAzMikg
Pj4gMTYpICYgKDFVTEwgPDwgNSkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwg
PDwgNikpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNykpKSkpICsgKCh1
bnNpZ25lZCBpbnQpICgoISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAw
KSkpICsgKCEhKCgoKCh3KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICgh
ISgoKCgodykgPj4gMzIpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKCgoKHcp
ID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgoKCh3KSA+PiAzMikg
Pj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCgodykgPj4gMzIpID4+IDE2KSA+
PiA4KSAmICgxVUxMIDw8IDUpKSkgKyAoISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAo
MVVMTCA8PCA2KSkpICsgKCEhKCgoKCh3KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwg
NykpKSkpKSkpIDogX19hcmNoX2h3ZWlnaHQ2NCh3KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3U2NCByb2w2NChfX3U2
NCB3b3JkLCB1bnNpZ25lZCBpbnQgc2hpZnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh3b3Jk
IDw8IChzaGlmdCAmIDYzKSkgfCAod29yZCA+PiAoKC1zaGlmdCkgJiA2MykpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX191
NjQgcm9yNjQoX191NjQgd29yZCwgdW5zaWduZWQgaW50IHNoaWZ0KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiAod29yZCA+PiAoc2hpZnQgJiA2MykpIHwgKHdvcmQgPDwgKCgtc2hpZnQpICYgNjMp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fdTMyIHJvbDMyKF9fdTMyIHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgMzEpKSB8ICh3b3JkID4+ICgo
LXNoaWZ0KSAmIDMxKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3UzMiByb3IzMihfX3UzMiB3b3JkLCB1bnNpZ25lZCBp
bnQgc2hpZnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh3b3JkID4+IChzaGlmdCAmIDMxKSkg
fCAod29yZCA8PCAoKC1zaGlmdCkgJiAzMSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX191MTYgcm9sMTYoX191MTYgd29y
ZCwgdW5zaWduZWQgaW50IHNoaWZ0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAod29yZCA8PCAo
c2hpZnQgJiAxNSkpIHwgKHdvcmQgPj4gKCgtc2hpZnQpICYgMTUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fdTE2IHJv
cjE2KF9fdTE2IHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHdvcmQgPj4gKHNoaWZ0ICYgMTUpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0KSAmIDE1KSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX3U4IHJvbDgoX191OCB3b3JkLCB1bnNpZ25lZCBpbnQgc2hpZnQpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICh3b3JkIDw8IChzaGlmdCAmIDcpKSB8ICh3b3JkID4+ICgoLXNoaWZ0KSAm
IDcpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fdTggcm9yOChfX3U4IHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgNykpIHwgKHdvcmQgPDwgKCgt
c2hpZnQpICYgNykpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNjUgIi4vaW5jbHVkZS9saW51eC9iaXRv
cHMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fczMyIHNpZ25fZXh0ZW5kMzIoX191MzIgdmFsdWUsIGludCBpbmRleCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICBfX3U4IHNoaWZ0ID0gMzEgLSBpbmRleDsKMTQ0NzQ6ICByZXR1cm4g
KF9fczMyKSh2YWx1ZSA8PCBzaGlmdCkgPj4gc2hpZnQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3M2NCBzaWduX2V4dGVu
ZDY0KF9fdTY0IHZhbHVlLCBpbnQgaW5kZXgpCjE0NDc0OiB7CjE0NDc0OiAgX191OCBzaGlmdCA9
IDYzIC0gaW5kZXg7CjE0NDc0OiAgcmV0dXJuIChfX3M2NCkodmFsdWUgPDwgc2hpZnQpID4+IHNo
aWZ0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBmbHNfbG9uZyh1bnNpZ25lZCBs
b25nIGwpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHNpemVvZihsKSA9PSA0KQoxNDQ3NDogICByZXR1
cm4gZmxzKGwpOwoxNDQ3NDogIHJldHVybiBmbHM2NChsKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGdldF9jb3VudF9vcmRlcih1bnNpZ25lZCBpbnQgY291bnQpCjE0NDc0OiB7CjE0NDc0
OiAgaW50IG9yZGVyOwoxNDQ3NDogCjE0NDc0OiAgb3JkZXIgPSBmbHMoY291bnQpIC0gMTsKMTQ0
NzQ6ICBpZiAoY291bnQgJiAoY291bnQgLSAxKSkKMTQ0NzQ6ICAgb3JkZXIrKzsKMTQ0NzQ6ICBy
ZXR1cm4gb3JkZXI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfY291bnRfb3JkZXJfbG9uZyh1bnNp
Z25lZCBsb25nIGwpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGwgPT0gMFVMKQoxNDQ3NDogICByZXR1
cm4gLTE7CjE0NDc0OiAgZWxzZSBpZiAobCAmIChsIC0gMVVMKSkKMTQ0NzQ6ICAgcmV0dXJuIChp
bnQpZmxzX2xvbmcobCk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gKGludClmbHNfbG9u
ZyhsKSAtIDE7CjE0NDc0OiB9CjE0NDc0OiAjIDIyMyAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX2ZmczY0KHU2NCB3b3JkKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBf
X2ZmcygodW5zaWduZWQgbG9uZyl3b3JkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFzc2lnbl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5z
aWduZWQgbG9uZyAqYWRkciwKMTQ0NzQ6ICAgICAgICAgICAgYm9vbCB2YWx1ZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAodmFsdWUpCjE0NDc0OiAgIHNldF9iaXQobnIsIGFkZHIpOwoxNDQ3NDogIGVs
c2UKMTQ0NzQ6ICAgY2xlYXJfYml0KG5yLCBhZGRyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fYXNzaWduX2JpdChsb25n
IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3NDogICAgICAgYm9vbCB2YWx1
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAodmFsdWUpCjE0NDc0OiAgIF9fc2V0X2JpdChuciwgYWRk
cik7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBfX2NsZWFyX2JpdChuciwgYWRkcik7CjE0NDc0OiB9
CjE0NDc0OiAjIDI5OSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIgoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGxvbmcgZmluZF9sYXN0X2JpdChjb25zdCB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3
NDogICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvbGlu
dXgva2VybmVsLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIgMQoxNDQ3
NDogIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKGNv
bnN0KSkKMTQ0NzQ6IGludCBfX2lsb2cyX3UzMih1MzIgbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gZmxzKG4pIC0gMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKGNvbnN0KSkKMTQ0NzQ6IGludCBfX2lsb2cyX3U2NCh1NjQgbikKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gZmxzNjQobikgLSAxOwoxNDQ3NDogfQoxNDQ3NDogIyA0NCAiLi9p
bmNsdWRlL2xpbnV4L2xvZzIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKGNvbnN0KSkKMTQ0NzQ6
IGJvb2wgaXNfcG93ZXJfb2ZfMih1bnNpZ25lZCBsb25nIG4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIChuICE9IDAgJiYgKChuICYgKG4gLSAxKSkgPT0gMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKGNvbnN0
KSkKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19yb3VuZHVwX3Bvd19vZl90d28odW5zaWduZWQgbG9u
ZyBuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAxVUwgPDwgZmxzX2xvbmcobiAtIDEpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKGNvbnN0KSkKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19yb3VuZGRvd25fcG93X29m
X3R3byh1bnNpZ25lZCBsb25nIG4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDFVTCA8PCAoZmxz
X2xvbmcobikgLSAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTk3ICIuL2luY2x1ZGUvbGludXgvbG9n
Mi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSkKMTQ0NzQ6IGludCBfX29yZGVy
X2Jhc2VfMih1bnNpZ25lZCBsb25nIG4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG4gPiAxID8g
KCBfX2J1aWx0aW5fY29uc3RhbnRfcChuIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9wKG4g
LSAxKSA/ICggKG4gLSAxKSA8IDIgPyAwIDogKG4gLSAxKSAmICgxVUxMIDw8IDYzKSA/IDYzIDog
KG4gLSAxKSAmICgxVUxMIDw8IDYyKSA/IDYyIDogKG4gLSAxKSAmICgxVUxMIDw8IDYxKSA/IDYx
IDogKG4gLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKG4gLSAxKSAmICgxVUxMIDw8IDU5KSA/
IDU5IDogKG4gLSAxKSAmICgxVUxMIDw8IDU4KSA/IDU4IDogKG4gLSAxKSAmICgxVUxMIDw8IDU3
KSA/IDU3IDogKG4gLSAxKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKG4gLSAxKSAmICgxVUxMIDw8
IDU1KSA/IDU1IDogKG4gLSAxKSAmICgxVUxMIDw8IDU0KSA/IDU0IDogKG4gLSAxKSAmICgxVUxM
IDw8IDUzKSA/IDUzIDogKG4gLSAxKSAmICgxVUxMIDw8IDUyKSA/IDUyIDogKG4gLSAxKSAmICgx
VUxMIDw8IDUxKSA/IDUxIDogKG4gLSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDQ5KSA/IDQ5IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKG4gLSAx
KSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ2KSA/IDQ2IDogKG4g
LSAxKSAmICgxVUxMIDw8IDQ1KSA/IDQ1IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ0KSA/IDQ0IDog
KG4gLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKG4gLSAxKSAmICgxVUxMIDw8IDQyKSA/IDQy
IDogKG4gLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKG4gLSAxKSAmICgxVUxMIDw8IDQwKSA/
IDQwIDogKG4gLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKG4gLSAxKSAmICgxVUxMIDw8IDM4
KSA/IDM4IDogKG4gLSAxKSAmICgxVUxMIDw8IDM3KSA/IDM3IDogKG4gLSAxKSAmICgxVUxMIDw8
IDM2KSA/IDM2IDogKG4gLSAxKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKG4gLSAxKSAmICgxVUxM
IDw8IDM0KSA/IDM0IDogKG4gLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDogKG4gLSAxKSAmICgx
VUxMIDw8IDMyKSA/IDMyIDogKG4gLSAxKSAmICgxVUxMIDw8IDMxKSA/IDMxIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDMwKSA/IDMwIDogKG4gLSAxKSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKG4gLSAx
KSAmICgxVUxMIDw8IDI4KSA/IDI4IDogKG4gLSAxKSAmICgxVUxMIDw8IDI3KSA/IDI3IDogKG4g
LSAxKSAmICgxVUxMIDw8IDI2KSA/IDI2IDogKG4gLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1IDog
KG4gLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0IDogKG4gLSAxKSAmICgxVUxMIDw8IDIzKSA/IDIz
IDogKG4gLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKG4gLSAxKSAmICgxVUxMIDw8IDIxKSA/
IDIxIDogKG4gLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKG4gLSAxKSAmICgxVUxMIDw8IDE5
KSA/IDE5IDogKG4gLSAxKSAmICgxVUxMIDw8IDE4KSA/IDE4IDogKG4gLSAxKSAmICgxVUxMIDw8
IDE3KSA/IDE3IDogKG4gLSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKG4gLSAxKSAmICgxVUxM
IDw8IDE1KSA/IDE1IDogKG4gLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKG4gLSAxKSAmICgx
VUxMIDw8IDEzKSA/IDEzIDogKG4gLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDExKSA/IDExIDogKG4gLSAxKSAmICgxVUxMIDw8IDEwKSA/IDEwIDogKG4gLSAx
KSAmICgxVUxMIDw8IDkpID8gOSA6IChuIC0gMSkgJiAoMVVMTCA8PCA4KSA/IDggOiAobiAtIDEp
ICYgKDFVTEwgPDwgNykgPyA3IDogKG4gLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6IChuIC0gMSkg
JiAoMVVMTCA8PCA1KSA/IDUgOiAobiAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKG4gLSAxKSAm
ICgxVUxMIDw8IDMpID8gMyA6IChuIC0gMSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6
IChzaXplb2YobiAtIDEpIDw9IDQpID8gX19pbG9nMl91MzIobiAtIDEpIDogX19pbG9nMl91NjQo
biAtIDEpICkgKyAxIDogMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjI0ICIuL2luY2x1ZGUvbGludXgv
bG9nMi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoY29uc3QpKQoxNDQ3NDogaW50IF9fYml0c19w
ZXIodW5zaWduZWQgbG9uZyBuKQoxNDQ3NDogewoxNDQ3NDogIGlmIChuIDwgMikKMTQ0NzQ6ICAg
cmV0dXJuIDE7CjE0NDc0OiAgaWYgKGlzX3Bvd2VyX29mXzIobikpCjE0NDc0OiAgIHJldHVybiAo
IF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gKCAoKG4pID09IDAgfHwgKG4pID09IDEpID8gMCA6
ICggX19idWlsdGluX2NvbnN0YW50X3AoKG4pIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9w
KChuKSAtIDEpID8gKCAoKG4pIC0gMSkgPCAyID8gMCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYz
KSA/IDYzIDogKChuKSAtIDEpICYgKDFVTEwgPDwgNjIpID8gNjIgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCA2MSkgPyA2MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgNTkpID8gNTkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDU3KSA/IDU3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTYpID8g
NTYgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDU0KSA/IDU0IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTMpID8gNTMgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCA1MikgPyA1MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUxKSA/IDUxIDogKChuKSAt
IDEpICYgKDFVTEwgPDwgNTApID8gNTAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0OSkgPyA0OSA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDcp
ID8gNDcgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgobikgLSAxKSAmICgxVUxM
IDw8IDQ1KSA/IDQ1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDQpID8gNDQgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCA0MykgPyA0MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQyKSA/IDQyIDogKChu
KSAtIDEpICYgKDFVTEwgPDwgNDEpID8gNDEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0MCkgPyA0
MCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKChuKSAtIDEpICYgKDFVTEwgPDwg
MzgpID8gMzggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzNykgPyAzNyA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDM2KSA/IDM2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzUpID8gMzUgOiAoKG4pIC0g
MSkgJiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgMzIpID8gMzIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMSkg
PyAzMSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMwKSA/IDMwIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgMjkpID8gMjkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyOCkgPyAyOCA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDI3KSA/IDI3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjYpID8gMjYgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCAyNSkgPyAyNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjMpID8gMjMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAy
MikgPyAyMiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIxKSA/IDIxIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgMjApID8gMjAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDE4KSA/IDE4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTcpID8gMTcgOiAo
KG4pIC0gMSkgJiAoMVVMTCA8PCAxNikgPyAxNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE1KSA/
IDE1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTQpID8gMTQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCAxMykgPyAxMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgMTEpID8gMTEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDkpID8gOSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDgpID8gOCA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDcpID8gNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDUpID8gNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQpID8g
NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMpID8gMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIp
ID8gMiA6IDEpIDogLTEpIDogKHNpemVvZigobikgLSAxKSA8PSA0KSA/IF9faWxvZzJfdTMyKChu
KSAtIDEpIDogX19pbG9nMl91NjQoKG4pIC0gMSkgKSArIDEpIDogX19vcmRlcl9iYXNlXzIobikg
KSArIDE7CjE0NDc0OiAgcmV0dXJuICggX19idWlsdGluX2NvbnN0YW50X3AobikgPyAoICgobikg
PT0gMCB8fCAobikgPT0gMSkgPyAwIDogKCBfX2J1aWx0aW5fY29uc3RhbnRfcCgobikgLSAxKSA/
ICggX19idWlsdGluX2NvbnN0YW50X3AoKG4pIC0gMSkgPyAoICgobikgLSAxKSA8IDIgPyAwIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA2Mikg
PyA2MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYxKSA/IDYxIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgNjApID8gNjAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1OSkgPyA1OSA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDU4KSA/IDU4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTcpID8gNTcgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCA1NikgPyA1NiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDU1KSA/IDU1
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTQpID8gNTQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1
MykgPyA1MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUyKSA/IDUyIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgNTEpID8gNTEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1MCkgPyA1MCA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDQ5KSA/IDQ5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDgpID8gNDggOiAo
KG4pIC0gMSkgJiAoMVVMTCA8PCA0NykgPyA0NyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQ2KSA/
IDQ2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCA0NCkgPyA0NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgNDIpID8gNDIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0MSkgPyA0MSA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDQwKSA/IDQwIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzkpID8gMzkg
OiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzOCkgPyAzOCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM3
KSA/IDM3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzYpID8gMzYgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCAzNSkgPyAzNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM0KSA/IDM0IDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgMzMpID8gMzMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMikgPyAzMiA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDMxKSA/IDMxIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzApID8g
MzAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyOSkgPyAyOSA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDI4KSA/IDI4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjcpID8gMjcgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCAyNikgPyAyNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1IDogKChuKSAt
IDEpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMykgPyAyMyA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjEp
ID8gMjEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMCkgPyAyMCA6ICgobikgLSAxKSAmICgxVUxM
IDw8IDE5KSA/IDE5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTgpID8gMTggOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCAxNykgPyAxNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKChu
KSAtIDEpICYgKDFVTEwgPDwgMTUpID8gMTUgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxNCkgPyAx
NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDEzKSA/IDEzIDogKChuKSAtIDEpICYgKDFVTEwgPDwg
MTIpID8gMTIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMSkgPyAxMSA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDEwKSA/IDEwIDogKChuKSAtIDEpICYgKDFVTEwgPDwgOSkgPyA5IDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgOCkgPyA4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNykgPyA3IDogKChuKSAt
IDEpICYgKDFVTEwgPDwgNikgPyA2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNSkgPyA1IDogKChu
KSAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMykgPyAzIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgMikgPyAyIDogMSkgOiAtMSkgOiAoc2l6ZW9mKChuKSAtIDEp
IDw9IDQpID8gX19pbG9nMl91MzIoKG4pIC0gMSkgOiBfX2lsb2cyX3U2NCgobikgLSAxKSApICsg
MSkgOiBfX29yZGVyX2Jhc2VfMihuKSApOwoxNDQ3NDogfQoxNDQ3NDogIyAxNCAiLi9pbmNsdWRl
L2xpbnV4L2tlcm5lbC5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3By
aW50ay5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9rZXJuX2xldmVscy5oIiAxCjE0NDc0OiAjIDgg
Ii4vaW5jbHVkZS9saW51eC9wcmludGsuaCIgMgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9jYWNoZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgva2VybmVsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNpbmZvLmgi
IDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHN5c2luZm8gewoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCB1cHRpbWU7
CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBsb2Fkc1szXTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9u
Z190IHRvdGFscmFtOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3QgZnJlZXJhbTsKMTQ0NzQ6ICBf
X2tlcm5lbF91bG9uZ190IHNoYXJlZHJhbTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IGJ1ZmZl
cnJhbTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHRvdGFsc3dhcDsKMTQ0NzQ6ICBfX2tlcm5l
bF91bG9uZ190IGZyZWVzd2FwOwoxNDQ3NDogIF9fdTE2IHByb2NzOwoxNDQ3NDogIF9fdTE2IHBh
ZDsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHRvdGFsaGlnaDsKMTQ0NzQ6ICBfX2tlcm5lbF91
bG9uZ190IGZyZWVoaWdoOwoxNDQ3NDogIF9fdTMyIG1lbV91bml0OwoxNDQ3NDogIGNoYXIgX2Zb
MjAtMipzaXplb2YoX19rZXJuZWxfdWxvbmdfdCktc2l6ZW9mKF9fdTMyKV07CjE0NDc0OiB9Owox
NDQ3NDogIyA2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9rZXJuZWwuaCIgMgoxNDQ3NDogIyA2ICIu
L2luY2x1ZGUvbGludXgvY2FjaGUuaCIgMgoxNDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3By
aW50ay5oIiAyCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyIGxpbnV4X2Jhbm5lcltd
OwoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgbGludXhfcHJvY19iYW5uZXJbXTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmludGtfZ2V0X2xldmVsKGNvbnN0IGNoYXIgKmJ1
ZmZlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoYnVmZmVyWzBdID09ICdcMDAxJyAmJiBidWZmZXJb
MV0pIHsKMTQ0NzQ6ICAgc3dpdGNoIChidWZmZXJbMV0pIHsKMTQ0NzQ6ICAgY2FzZSAnMCcgLi4u
ICc3JzoKMTQ0NzQ6ICAgY2FzZSAnYyc6CjE0NDc0OiAgICByZXR1cm4gYnVmZmVyWzFdOwoxNDQ3
NDogICB9CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBjb25zdCBjaGFyICpwcmludGtfc2tpcF9sZXZlbChjb25zdCBjaGFyICpidWZmZXIpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKHByaW50a19nZXRfbGV2ZWwoYnVmZmVyKSkKMTQ0NzQ6ICAgcmV0dXJu
IGJ1ZmZlciArIDI7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYnVmZmVyOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBjb25zdCBjaGFyICpwcmludGtfc2tpcF9oZWFkZXJzKGNvbnN0IGNoYXIgKmJ1
ZmZlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB3aGlsZSAocHJpbnRrX2dldF9sZXZlbChidWZmZXIpKQox
NDQ3NDogICBidWZmZXIgPSBwcmludGtfc2tpcF9sZXZlbChidWZmZXIpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIGJ1ZmZlcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjIgIi4vaW5jbHVkZS9saW51eC9w
cmludGsuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgY29uc29sZV9wcmludGtbXTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY29uc29sZV9z
aWxlbnQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoY29uc29sZV9wcmludGtbMF0pID0gMDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjb25zb2xlX3ZlcmJvc2Uodm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAoKGNvbnNvbGVfcHJpbnRrWzBdKSkKMTQ0NzQ6ICAgKGNvbnNvbGVfcHJpbnRr
WzBdKSA9IDE1OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNoYXIgZGV2a21zZ19sb2dfc3RyW107CjE0NDc0OiBzdHJ1Y3QgY3RsX3RhYmxlOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IHN1cHByZXNzX3ByaW50azsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHZhX2Zvcm1hdCB7CjE0NDc0OiAgY29uc3QgY2hhciAqZm10OwoxNDQ3NDogIHZhX2xpc3QgKnZh
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTQyICIuL2luY2x1ZGUvbGludXgvcHJpbnRrLmgiCjE0NDc0
OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDEsIDIpKSkKMTQ0NzQ6
IHZvaWQgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHByaW50
a19ubWlfZW50ZXIodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBwcmludGtfbm1pX2V4aXQodm9p
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBwcmludGtfbm1pX2RpcmVjdF9lbnRlcih2b2lkKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIHByaW50a19ubWlfZGlyZWN0X2V4aXQodm9pZCk7CjE0NDc0OiAjIDE2
MiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgoxNDQ3NDogIF9fYXR0cmlidXRlX18oKF9fZm9y
bWF0X18ocHJpbnRmLCA1LCAwKSkpCjE0NDc0OiBpbnQgdnByaW50a19lbWl0KGludCBmYWNpbGl0
eSwgaW50IGxldmVsLAoxNDQ3NDogICAgY29uc3QgY2hhciAqZGljdCwgc2l6ZV90IGRpY3RsZW4s
CjE0NDc0OiAgICBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CjE0NDc0OiAKMTQ0NzQ6
ICBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMCkpKQoxNDQ3NDogaW50IHZw
cmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwoxNDQ3NDogCjE0NDc0OiAgX19h
dHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDEsIDIpKSkgX19hdHRyaWJ1dGVfXygoX19j
b2xkX18pKQoxNDQ3NDogaW50IHByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18o
cHJpbnRmLCAxLCAyKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgaW50IHByaW50a19kZWZl
cnJlZChjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fcHJpbnRrX3JhdGVsaW1pdChj
b25zdCBjaGFyICpmdW5jKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgcHJpbnRrX3RpbWVk
X3JhdGVsaW1pdCh1bnNpZ25lZCBsb25nICpjYWxsZXJfamlmZmllcywKMTQ0NzQ6ICAgICAgICB1
bnNpZ25lZCBpbnQgaW50ZXJ2YWxfbXNlYyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcHJp
bnRrX2RlbGF5X21zZWM7CjE0NDc0OiBleHRlcm4gaW50IGRtZXNnX3Jlc3RyaWN0OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50CjE0NDc0OiBkZXZrbXNnX3N5c2N0bF9zZXRfbG9nbHZsKHN0cnVj
dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZvaWQgKmJ1ZiwKMTQ0NzQ6ICAgICAgc2l6
ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCB3YWtl
X3VwX2tsb2dkKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBjaGFyICpsb2dfYnVmX2FkZHJfZ2V0KHZv
aWQpOwoxNDQ3NDogdTMyIGxvZ19idWZfbGVuX2dldCh2b2lkKTsKMTQ0NzQ6IHZvaWQgbG9nX2J1
Zl92bWNvcmVpbmZvX3NldHVwKHZvaWQpOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzZXR1cF9s
b2dfYnVmKGludCBlYXJseSk7CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50
ZiwgMSwgMikpKSB2b2lkIGR1bXBfc3RhY2tfc2V0X2FyY2hfZGVzYyhjb25zdCBjaGFyICpmbXQs
IC4uLik7CjE0NDc0OiB2b2lkIGR1bXBfc3RhY2tfcHJpbnRfaW5mbyhjb25zdCBjaGFyICpsb2df
bHZsKTsKMTQ0NzQ6IHZvaWQgc2hvd19yZWdzX3ByaW50X2luZm8oY29uc3QgY2hhciAqbG9nX2x2
bCk7CjE0NDc0OiBleHRlcm4gdm9pZCBkdW1wX3N0YWNrKHZvaWQpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSk7CjE0NDc0OiBleHRlcm4gdm9pZCBwcmludGtfc2FmZV9pbml0KHZvaWQpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgcHJpbnRrX3NhZmVfZmx1c2godm9pZCk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBwcmludGtfc2FmZV9mbHVzaF9vbl9wYW5pYyh2b2lkKTsKMTQ0NzQ6ICMgMjg1ICIuL2luY2x1
ZGUvbGludXgvcHJpbnRrLmgiCjE0NDc0OiBleHRlcm4gaW50IGtwdHJfcmVzdHJpY3Q7CjE0NDc0
OiAjIDMzMSAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgvZHluYW1pY19kZWJ1Zy5oIiAxCjE0NDc0OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvZHlu
YW1pY19kZWJ1Zy5oIgoxNDQ3NDogc3RydWN0IF9kZGVidWcgewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY29uc3QgY2hhciAqbW9kbmFtZTsKMTQ0NzQ6ICBjb25zdCBj
aGFyICpmdW5jdGlvbjsKMTQ0NzQ6ICBjb25zdCBjaGFyICpmaWxlbmFtZTsKMTQ0NzQ6ICBjb25z
dCBjaGFyICpmb3JtYXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGxpbmVubzoxODsKMTQ0NzQ6ICMg
NDAgIi4vaW5jbHVkZS9saW51eC9keW5hbWljX2RlYnVnLmgiCjE0NDc0OiAgdW5zaWduZWQgaW50
IGZsYWdzOjg7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBzdGF0aWNf
a2V5X3RydWUgZGRfa2V5X3RydWU7CjE0NDc0OiAgIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIGRk
X2tleV9mYWxzZTsKMTQ0NzQ6ICB9IGtleTsKMTQ0NzQ6IAoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9f
KChhbGlnbmVkKDgpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGlu
dCBkZGVidWdfYWRkX21vZHVsZShzdHJ1Y3QgX2RkZWJ1ZyAqdGFiLCB1bnNpZ25lZCBpbnQgbiwK
MTQ0NzQ6ICAgICBjb25zdCBjaGFyICptb2RuYW1lKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZGRlYnVn
X3JlbW92ZV9tb2R1bGUoY29uc3QgY2hhciAqbW9kX25hbWUpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0
cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCjE0NDc0OiB2b2lkIF9fZHluYW1p
Y19wcl9kZWJ1ZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwgY29uc3QgY2hhciAqZm10LCAu
Li4pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGRkZWJ1Z19keW5kYmdfbW9kdWxlX3BhcmFt
X2NiKGNoYXIgKnBhcmFtLCBjaGFyICp2YWwsCjE0NDc0OiAgICAgIGNvbnN0IGNoYXIgKm1vZG5h
bWUpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
X19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IHZvaWQgX19k
eW5hbWljX2Rldl9kYmcoc3RydWN0IF9kZGVidWcgKmRlc2NyaXB0b3IsIGNvbnN0IHN0cnVjdCBk
ZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IG5ldF9kZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJp
YnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQoxNDQ3NDogdm9pZCBfX2R5bmFtaWNf
bmV0ZGV2X2RiZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwKMTQ0NzQ6ICAgICAgY29uc3Qg
c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgY29uc3QgY2hhciAqZm10LCAuLi4p
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaWJfZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
X19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IHZvaWQgX19k
eW5hbWljX2liZGV2X2RiZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwKMTQ0NzQ6ICAgICBj
b25zdCBzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKMTQ0NzQ6ICAgICBjb25zdCBjaGFyICpmbXQs
IC4uLik7CjE0NDc0OiAjIDMzMiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCjE0NDc0OiAj
IDQ3NiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMga21zZ19mb3BzOwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6
ICBEVU1QX1BSRUZJWF9OT05FLAoxNDQ3NDogIERVTVBfUFJFRklYX0FERFJFU1MsCjE0NDc0OiAg
RFVNUF9QUkVGSVhfT0ZGU0VUCjE0NDc0OiB9OwoxNDQ3NDogZXh0ZXJuIGludCBoZXhfZHVtcF90
b19idWZmZXIoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLCBpbnQgcm93c2l6ZSwKMTQ0NzQ6
ICAgICAgICAgIGludCBncm91cHNpemUsIGNoYXIgKmxpbmVidWYsIHNpemVfdCBsaW5lYnVmbGVu
LAoxNDQ3NDogICAgICAgICAgYm9vbCBhc2NpaSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IHByaW50X2hleF9kdW1wKGNvbnN0IGNoYXIgKmxldmVsLCBjb25zdCBjaGFyICpwcmVmaXhfc3Ry
LAoxNDQ3NDogICAgICAgaW50IHByZWZpeF90eXBlLCBpbnQgcm93c2l6ZSwgaW50IGdyb3Vwc2l6
ZSwKMTQ0NzQ6ICAgICAgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwgYm9vbCBhc2NpaSk7
CjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGl2NjQuaCIgMQoxNDQ3NDogIyA3
NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kaXY2NC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvZGl2NjQuaCIgMQoxNDQ3NDogIyA3NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9kaXY2NC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBtdWxfdTY0X3UzMl9kaXYodTY0IGEsIHUz
MiBtdWwsIHUzMiBkaXYpCjE0NDc0OiB7CjE0NDc0OiAgdTY0IHE7CjE0NDc0OiAKMTQ0NzQ6ICBh
c20gKCJtdWxxICUyOyBkaXZxICUzIiA6ICI9YSIgKHEpCjE0NDc0OiAgICAgOiAiYSIgKGEpLCAi
cm0iICgodTY0KW11bCksICJybSIgKCh1NjQpZGl2KQoxNDQ3NDogICAgIDogInJkeCIpOwoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIHE7CjE0NDc0OiB9CjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGlu
dXgva2VybmVsLmgiIDIKMTQ0NzQ6ICMgMTkxICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCjE0
NDc0OiBzdHJ1Y3QgY29tcGxldGlvbjsKMTQ0NzQ6IHN0cnVjdCBwdF9yZWdzOwoxNDQ3NDogc3Ry
dWN0IHVzZXI7CjE0NDc0OiAjIDI0NyAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgoxNDQ3NDog
ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIF9fX21pZ2h0X3NsZWVwKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAoxNDQ3NDog
ICAgICAgIGludCBwcmVlbXB0X29mZnNldCkgeyB9CjE0NDc0OiAgIHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19taWdodF9zbGVl
cChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKMTQ0NzQ6ICAgICAgICBpbnQgcHJlZW1wdF9v
ZmZzZXQpIHsgfQoxNDQ3NDogIyAyOTcgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHUzMiByZWNpcHJvY2FsX3NjYWxlKHUzMiB2YWwsIHUzMiBlcF9ybykKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHUzMikoKCh1NjQpIHZhbCAqIGVwX3JvKSA+PiAzMik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1p
Z2h0X2ZhdWx0KHZvaWQpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
YXRvbWljX25vdGlmaWVyX2hlYWQgcGFuaWNfbm90aWZpZXJfbGlzdDsKMTQ0NzQ6IGV4dGVybiBs
b25nICgqcGFuaWNfYmxpbmspKGludCBzdGF0ZSk7CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKHByaW50ZiwgMSwgMikpKQoxNDQ3NDogdm9pZCBwYW5pYyhjb25zdCBjaGFyICpmbXQs
IC4uLikgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKTsKMTQ0NzQ6IHZvaWQgbm1pX3BhbmljKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBjb25zdCBj
aGFyICptc2cpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgb29wc19lbnRlcih2b2lkKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIG9vcHNfZXhpdCh2b2lkKTsKMTQ0NzQ6IHZvaWQgcHJpbnRfb29wc19lbmRfbWFy
a2VyKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBvb3BzX21heV9wcmludCh2b2lkKTsKMTQ0NzQ6
IHZvaWQgZG9fZXhpdChsb25nIGVycm9yX2NvZGUpIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5f
XykpOwoxNDQ3NDogdm9pZCBjb21wbGV0ZV9hbmRfZXhpdChzdHJ1Y3QgY29tcGxldGlvbiAqLCBs
b25nKSBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9rc3RydG91bChj
b25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQgbG9uZyAqcmVzKTsKMTQ0
NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX2tzdHJ0b2wo
Y29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIGxvbmcgKnJlcyk7CjE0NDc0OiAKMTQ0
NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdWxs
KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCB1bnNpZ25lZCBsb25nIGxvbmcgKnJl
cyk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtz
dHJ0b2xsKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCBsb25nIGxvbmcgKnJlcyk7
CjE0NDc0OiAjIDM0NCAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0
cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91bChjb25zdCBjaGFyICpz
LCB1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQgbG9uZyAqcmVzKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKHNpemVvZih1bnNpZ25lZCBsb25n
KSA9PSBzaXplb2YodW5zaWduZWQgbG9uZyBsb25nKSAmJgoxNDQ3NDogICAgICBfX2FsaWdub2Zf
Xyh1bnNpZ25lZCBsb25nKSA9PSBfX2FsaWdub2ZfXyh1bnNpZ25lZCBsb25nIGxvbmcpKQoxNDQ3
NDogICByZXR1cm4ga3N0cnRvdWxsKHMsIGJhc2UsICh1bnNpZ25lZCBsb25nIGxvbmcgKilyZXMp
OwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIF9rc3RydG91bChzLCBiYXNlLCByZXMpOwox
NDQ3NDogfQoxNDQ3NDogIyAzNzIgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvbChjb25zdCBj
aGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgbG9uZyAqcmVzKQoxNDQ3NDogewoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKHNpemVvZihsb25nKSA9PSBzaXplb2Yo
bG9uZyBsb25nKSAmJgoxNDQ3NDogICAgICBfX2FsaWdub2ZfXyhsb25nKSA9PSBfX2FsaWdub2Zf
Xyhsb25nIGxvbmcpKQoxNDQ3NDogICByZXR1cm4ga3N0cnRvbGwocywgYmFzZSwgKGxvbmcgbG9u
ZyAqKXJlcyk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gX2tzdHJ0b2wocywgYmFzZSwg
cmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBrc3RydG91aW50KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBi
YXNlLCB1bnNpZ25lZCBpbnQgKnJlcyk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2ludChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgaW50ICpyZXMpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3U2NChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgdTY0ICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b3VsbChzLCBiYXNl
LCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3M2NChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgczY0ICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b2xsKHMsIGJhc2Us
IHJlcyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdTMyKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBi
YXNlLCB1MzIgKnJlcykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3N0cnRvdWludChzLCBiYXNl
LCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3MzMihjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgczMyICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b2ludChzLCBiYXNl
LCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNihjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgdTE2ICpyZXMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBrc3RydG9zMTYoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHMx
NiAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkga3N0cnRvdTgoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHU4ICpyZXMpOwox
NDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9z
OChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgczggKnJlcyk7CjE0NDc0OiBpbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2Jvb2woY29uc3Qg
Y2hhciAqcywgYm9vbCAqcmVzKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91bGxfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMs
IHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgbG9uZyAqcmVz
KTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0
cnRvbGxfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50
IGJhc2UsIGxvbmcgbG9uZyAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdWxfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVf
dCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgKnJlcyk7CjE0NDc0OiBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2xfZnJvbV91
c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIGxvbmcg
KnJlcyk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGtzdHJ0b3VpbnRfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWdu
ZWQgaW50IGJhc2UsIHVuc2lnbmVkIGludCAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvaW50X2Zyb21fdXNlcihjb25zdCBjaGFy
ICpzLCBzaXplX3QgY291bnQsIHVuc2lnbmVkIGludCBiYXNlLCBpbnQgKnJlcyk7CjE0NDc0OiBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNl9mcm9t
X3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgdTE2
ICpyZXMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBrc3RydG9zMTZfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWdu
ZWQgaW50IGJhc2UsIHMxNiAqcmVzKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdThfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVf
dCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHU4ICpyZXMpOwoxNDQ3NDogaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9zOF9mcm9tX3VzZXIoY29uc3Qg
Y2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgczggKnJlcyk7CjE0NDc0
OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2Jvb2xf
ZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgYm9vbCAqcmVzKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3Ry
dG91NjRfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50
IGJhc2UsIHU2NCAqcmVzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrc3RydG91bGxfZnJvbV91
c2VyKHMsIGNvdW50LCBiYXNlLCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3M2NF9mcm9tX3VzZXIo
Y29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgczY0ICpyZXMp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtzdHJ0b2xsX2Zyb21fdXNlcihzLCBjb3VudCwgYmFz
ZSwgcmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91MzJfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNp
emVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHUzMiAqcmVzKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBrc3RydG91aW50X2Zyb21fdXNlcihzLCBjb3VudCwgYmFzZSwgcmVzKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0
X18pKSBrc3RydG9zMzJfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5z
aWduZWQgaW50IGJhc2UsIHMzMiAqcmVzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrc3RydG9p
bnRfZnJvbV91c2VyKHMsIGNvdW50LCBiYXNlLCByZXMpOwoxNDQ3NDogfQoxNDQ3NDogIyA0NTkg
Ii4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIHNp
bXBsZV9zdHJ0b3VsKGNvbnN0IGNoYXIgKixjaGFyICoqLHVuc2lnbmVkIGludCk7CjE0NDc0OiBl
eHRlcm4gbG9uZyBzaW1wbGVfc3RydG9sKGNvbnN0IGNoYXIgKixjaGFyICoqLHVuc2lnbmVkIGlu
dCk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIHNpbXBsZV9zdHJ0b3VsbChjb25z
dCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGxvbmcgbG9uZyBz
aW1wbGVfc3RydG9sbChjb25zdCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IG51bV90b19zdHIoY2hhciAqYnVmLCBpbnQgc2l6ZSwKMTQ0NzQ6
ICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIG51bSwgdW5zaWduZWQgaW50IHdpZHRoKTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1h
dF9fKHByaW50ZiwgMiwgMykpKSBpbnQgc3ByaW50ZihjaGFyICpidWYsIGNvbnN0IGNoYXIgKiBm
bXQsIC4uLik7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYs
IDIsIDApKSkgaW50IHZzcHJpbnRmKGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqLCB2YV9saXN0KTsK
MTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQox
NDQ3NDogaW50IHNucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZt
dCwgLi4uKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50Ziwg
MywgMCkpKQoxNDQ3NDogaW50IHZzbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25z
dCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IGludCBzY25wcmludGYoY2hhciAqYnVm
LCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogZXh0ZXJuIF9fYXR0
cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCAwKSkpCjE0NDc0OiBpbnQgdnNjbnByaW50
ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7
CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkg
X19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpCjE0NDc0OiBjaGFyICprYXNwcmludGYoZ2ZwX3Qg
Z2ZwLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpCjE0
NDc0OiBjaGFyICprdmFzcHJpbnRmKGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0
IGFyZ3MpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAy
LCAwKSkpCjE0NDc0OiBjb25zdCBjaGFyICprdmFzcHJpbnRmX2NvbnN0KGdmcF90IGdmcCwgY29u
c3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhzY2FuZiwgMiwgMykpKQoxNDQ3NDogaW50IHNzY2FuZihjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHNjYW5mLCAyLCAwKSkpCjE0NDc0OiBpbnQgdnNzY2FuZihjb25zdCBjaGFy
ICosIGNvbnN0IGNoYXIgKiwgdmFfbGlzdCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2V0
X29wdGlvbihjaGFyICoqc3RyLCBpbnQgKnBpbnQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIgKmdldF9v
cHRpb25zKGNvbnN0IGNoYXIgKnN0ciwgaW50IG5pbnRzLCBpbnQgKmludHMpOwoxNDQ3NDogZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBtZW1wYXJzZShjb25zdCBjaGFyICpwdHIsIGNoYXIgKipy
ZXRwdHIpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgcGFyc2Vfb3B0aW9uX3N0cihjb25zdCBjaGFyICpz
dHIsIGNvbnN0IGNoYXIgKm9wdGlvbik7CjE0NDc0OiBleHRlcm4gY2hhciAqbmV4dF9hcmcoY2hh
ciAqYXJncywgY2hhciAqKnBhcmFtLCBjaGFyICoqdmFsKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGludCBjb3JlX2tlcm5lbF90ZXh0KHVuc2lnbmVkIGxvbmcgYWRkcik7CjE0NDc0OiBleHRlcm4g
aW50IGluaXRfa2VybmVsX3RleHQodW5zaWduZWQgbG9uZyBhZGRyKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgY29yZV9rZXJuZWxfZGF0YSh1bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBfX2tlcm5lbF90ZXh0X2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyKTsKMTQ0NzQ6IGV4dGVy
biBpbnQga2VybmVsX3RleHRfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogZXh0
ZXJuIGludCBmdW5jX3B0cl9pc19rZXJuZWxfdGV4dCh2b2lkICpwdHIpOwoxNDQ3NDogCjE0NDc0
OiB1NjQgaW50X3Bvdyh1NjQgYmFzZSwgdW5zaWduZWQgaW50IGV4cCk7CjE0NDc0OiB1bnNpZ25l
ZCBsb25nIGludF9zcXJ0KHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1MzIgaW50X3NxcnQ2NCh1NjQgeCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHUzMilpbnRfc3FydCh4KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBidXN0X3NwaW5sb2NrcyhpbnQgeWVzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgb29wc19p
bl9wcm9ncmVzczsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFuaWNfdGltZW91dDsKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBsb25nIHBhbmljX3ByaW50OwoxNDQ3NDogZXh0ZXJuIGludCBwYW5pY19vbl9v
b3BzOwoxNDQ3NDogZXh0ZXJuIGludCBwYW5pY19vbl91bnJlY292ZXJlZF9ubWk7CjE0NDc0OiBl
eHRlcm4gaW50IHBhbmljX29uX2lvX25taTsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFuaWNfb25fd2Fy
bjsKMTQ0NzQ6IGV4dGVybiBpbnQgc3lzY3RsX3BhbmljX29uX3JjdV9zdGFsbDsKMTQ0NzQ6IGV4
dGVybiBpbnQgc3lzY3RsX3BhbmljX29uX3N0YWNrb3ZlcmZsb3c7CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBib29sIGNyYXNoX2tleGVjX3Bvc3Rfbm90aWZpZXJzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGF0b21pY190IHBhbmlj
X2NwdTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgc2V0X2FyY2hfcGFuaWNfdGltZW91dChpbnQgdGltZW91dCwgaW50IGFyY2hfZGVm
YXVsdF90aW1lb3V0KQoxNDQ3NDogewoxNDQ3NDogIGlmIChwYW5pY190aW1lb3V0ID09IGFyY2hf
ZGVmYXVsdF90aW1lb3V0KQoxNDQ3NDogICBwYW5pY190aW1lb3V0ID0gdGltZW91dDsKMTQ0NzQ6
IH0KMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICpwcmludF90YWludGVkKHZvaWQpOwoxNDQ3NDog
ZW51bSBsb2NrZGVwX29rIHsKMTQ0NzQ6ICBMT0NLREVQX1NUSUxMX09LLAoxNDQ3NDogIExPQ0tE
RVBfTk9XX1VOUkVMSUFCTEUKMTQ0NzQ6IH07CjE0NDc0OiBleHRlcm4gdm9pZCBhZGRfdGFpbnQo
dW5zaWduZWQgZmxhZywgZW51bSBsb2NrZGVwX29rKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdGVzdF90
YWludCh1bnNpZ25lZCBmbGFnKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGdldF90YWlu
dCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcm9vdF9tb3VudGZsYWdzOwoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gYm9vbCBlYXJseV9ib290X2lycXNfZGlzYWJsZWQ7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGVudW0gc3lzdGVtX3N0YXRlcyB7
CjE0NDc0OiAgU1lTVEVNX0JPT1RJTkcsCjE0NDc0OiAgU1lTVEVNX1NDSEVEVUxJTkcsCjE0NDc0
OiAgU1lTVEVNX1JVTk5JTkcsCjE0NDc0OiAgU1lTVEVNX0hBTFQsCjE0NDc0OiAgU1lTVEVNX1BP
V0VSX09GRiwKMTQ0NzQ6ICBTWVNURU1fUkVTVEFSVCwKMTQ0NzQ6ICBTWVNURU1fU1VTUEVORCwK
MTQ0NzQ6IH0gc3lzdGVtX3N0YXRlOwoxNDQ3NDogIyA1OTMgIi4vaW5jbHVkZS9saW51eC9rZXJu
ZWwuaCIKMTQ0NzQ6IHN0cnVjdCB0YWludF9mbGFnIHsKMTQ0NzQ6ICBjaGFyIGNfdHJ1ZTsKMTQ0
NzQ6ICBjaGFyIGNfZmFsc2U7CjE0NDc0OiAgYm9vbCBtb2R1bGU7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gY29uc3Qgc3RydWN0IHRhaW50X2ZsYWcgdGFpbnRfZmxhZ3NbMThdOwox
NDQ3NDogCjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciBoZXhfYXNjW107CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBjaGFyICpoZXhfYnl0ZV9wYWNrKGNoYXIgKmJ1ZiwgdTggYnl0ZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICAqYnVmKysgPSBoZXhfYXNjWygoYnl0ZSkgJiAweGYwKSA+PiA0XTsK
MTQ0NzQ6ICAqYnVmKysgPSBoZXhfYXNjWygoYnl0ZSkgJiAweDBmKV07CjE0NDc0OiAgcmV0dXJu
IGJ1ZjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgaGV4X2FzY191
cHBlcltdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2hhciAqaGV4X2J5dGVfcGFj
a191cHBlcihjaGFyICpidWYsIHU4IGJ5dGUpCjE0NDc0OiB7CjE0NDc0OiAgKmJ1ZisrID0gaGV4
X2FzY191cHBlclsoKGJ5dGUpICYgMHhmMCkgPj4gNF07CjE0NDc0OiAgKmJ1ZisrID0gaGV4X2Fz
Y191cHBlclsoKGJ5dGUpICYgMHgwZildOwoxNDQ3NDogIHJldHVybiBidWY7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgaGV4X3RvX2JpbihjaGFyIGNoKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGhleDJiaW4odTgg
KmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgY291bnQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIg
KmJpbjJoZXgoY2hhciAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7CjE0NDc0
OiAKMTQ0NzQ6IGJvb2wgbWFjX3B0b24oY29uc3QgY2hhciAqcywgdTggKm1hYyk7CjE0NDc0OiAj
IDY0OSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgoxNDQ3NDogZW51bSBmdHJhY2VfZHVtcF9t
b2RlIHsKMTQ0NzQ6ICBEVU1QX05PTkUsCjE0NDc0OiAgRFVNUF9BTEwsCjE0NDc0OiAgRFVNUF9P
UklHLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHRyYWNpbmdfb24odm9p
ZCk7CjE0NDc0OiB2b2lkIHRyYWNpbmdfb2ZmKHZvaWQpOwoxNDQ3NDogaW50IHRyYWNpbmdfaXNf
b24odm9pZCk7CjE0NDc0OiB2b2lkIHRyYWNpbmdfc25hcHNob3Qodm9pZCk7CjE0NDc0OiB2b2lk
IHRyYWNpbmdfc25hcHNob3RfYWxsb2Modm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IHRyYWNpbmdfc3RhcnQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB0cmFjaW5nX3N0b3Aodm9p
ZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAy
KSkpCjE0NDc0OiB2b2lkIF9fX190cmFjZV9wcmludGtfY2hlY2tfZm9ybWF0KGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyA3MjggIi4vaW5jbHVkZS9saW51
eC9rZXJuZWwuaCIKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50
ZiwgMiwgMykpKQoxNDQ3NDogaW50IF9fdHJhY2VfYnByaW50ayh1bnNpZ25lZCBsb25nIGlwLCBj
b25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKQoxNDQ3NDogaW50IF9fdHJhY2VfcHJpbnRrKHVu
c2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKMTQ0NzQ6ICMgNzY5ICIuL2lu
Y2x1ZGUvbGludXgva2VybmVsLmgiCjE0NDc0OiBleHRlcm4gaW50IF9fdHJhY2VfYnB1dHModW5z
aWduZWQgbG9uZyBpcCwgY29uc3QgY2hhciAqc3RyKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX190cmFj
ZV9wdXRzKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKnN0ciwgaW50IHNpemUpOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCB0cmFjZV9kdW1wX3N0YWNrKGludCBza2lwKTsKMTQ0NzQ6
ICMgNzkxICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1
dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgaW50CjE0NDc0OiBfX2Z0cmFjZV92YnBy
aW50ayh1bnNpZ25lZCBsb25nIGlwLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDAp
KSkgaW50CjE0NDc0OiBfX2Z0cmFjZV92cHJpbnRrKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNo
YXIgKmZtdCwgdmFfbGlzdCBhcCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGZ0cmFjZV9k
dW1wKGVudW0gZnRyYWNlX2R1bXBfbW9kZSBvb3BzX2R1bXBfbW9kZSk7CjE0NDc0OiAjIDEwICIu
L2luY2x1ZGUvbGludXgvbGlzdC5oIiAyCjE0NDc0OiAjIDMzICIuL2luY2x1ZGUvbGludXgvbGlz
dC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBJTklUX0xJU1RfSEVBRChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQox
NDQ3NDogewoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKGxpc3QtPm5leHQpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGxpc3QtPm5leHQpKSAobGlzdCkg
fTsgX193cml0ZV9vbmNlX3NpemUoJihsaXN0LT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKGxpc3Qt
Pm5leHQpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBsaXN0LT5wcmV2ID0gbGlzdDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBfX2xpc3RfYWRkX3ZhbGlkKHN0
cnVjdCBsaXN0X2hlYWQgKm5ldywKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnBy
ZXYsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0KTsKMTQ0NzQ6IGV4dGVy
biBib29sIF9fbGlzdF9kZWxfZW50cnlfdmFsaWQoc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpOwox
NDQ3NDogIyA2MyAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19saXN0X2Fk
ZChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICpwcmV2LAoxNDQ3NDogICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAoIV9fbGlzdF9hZGRfdmFsaWQobmV3LCBwcmV2LCBuZXh0KSkKMTQ0NzQ6ICAg
cmV0dXJuOwoxNDQ3NDogCjE0NDc0OiAgbmV4dC0+cHJldiA9IG5ldzsKMTQ0NzQ6ICBuZXctPm5l
eHQgPSBuZXh0OwoxNDQ3NDogIG5ldy0+cHJldiA9IHByZXY7CjE0NDc0OiAgKHsgdW5pb24geyB0
eXBlb2YocHJldi0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0g
KCB0eXBlb2YocHJldi0+bmV4dCkpIChuZXcpIH07IF9fd3JpdGVfb25jZV9zaXplKCYocHJldi0+
bmV4dCksIF9fdS5fX2MsIHNpemVvZihwcmV2LT5uZXh0KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0
OiB9CjE0NDc0OiAjIDg0ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0
X2FkZChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0
OiB7CjE0NDc0OiAgX19saXN0X2FkZChuZXcsIGhlYWQsIGhlYWQtPm5leHQpOwoxNDQ3NDogfQox
NDQ3NDogIyA5OCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9hZGRf
dGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0
OiB7CjE0NDc0OiAgX19saXN0X2FkZChuZXcsIGhlYWQtPnByZXYsIGhlYWQpOwoxNDQ3NDogfQox
NDQ3NDogIyAxMTAgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9k
ZWwoc3RydWN0IGxpc3RfaGVhZCAqIHByZXYsIHN0cnVjdCBsaXN0X2hlYWQgKiBuZXh0KQoxNDQ3
NDogewoxNDQ3NDogIG5leHQtPnByZXYgPSBwcmV2OwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9m
KHByZXYtPm5leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlw
ZW9mKHByZXYtPm5leHQpKSAobmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihwcmV2LT5uZXh0
KSwgX191Ll9fYywgc2l6ZW9mKHByZXYtPm5leHQpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTI0ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3Rf
ZGVsX2NsZWFycHJldihzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBf
X2xpc3RfZGVsKGVudHJ5LT5wcmV2LCBlbnRyeS0+bmV4dCk7CjE0NDc0OiAgZW50cnktPnByZXYg
PSAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3RfZGVsX2Vu
dHJ5KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIGlmICghX19saXN0
X2RlbF9lbnRyeV92YWxpZChlbnRyeSkpCjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6IAoxNDQ3NDog
IF9fbGlzdF9kZWwoZW50cnktPnByZXYsIGVudHJ5LT5uZXh0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBsaXN0X2RlbChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2xp
c3RfZGVsX2VudHJ5KGVudHJ5KTsKMTQ0NzQ6ICBlbnRyeS0+bmV4dCA9ICgodm9pZCAqKSAweDEw
MCArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwoxNDQ3NDogIGVudHJ5LT5wcmV2ID0gKCh2b2lk
ICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1
OCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9yZXBsYWNlKHN0cnVj
dCBsaXN0X2hlYWQgKm9sZCwKMTQ0NzQ6ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXcpCjE0NDc0
OiB7CjE0NDc0OiAgbmV3LT5uZXh0ID0gb2xkLT5uZXh0OwoxNDQ3NDogIG5ldy0+bmV4dC0+cHJl
diA9IG5ldzsKMTQ0NzQ6ICBuZXctPnByZXYgPSBvbGQtPnByZXY7CjE0NDc0OiAgbmV3LT5wcmV2
LT5uZXh0ID0gbmV3OwoxNDQ3NDogfQoxNDQ3NDogIyAxNzQgIi4vaW5jbHVkZS9saW51eC9saXN0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGxpc3RfcmVwbGFjZV9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKm9sZCwK
MTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5ldykKMTQ0NzQ6IHsKMTQ0NzQ6ICBs
aXN0X3JlcGxhY2Uob2xkLCBuZXcpOwoxNDQ3NDogIElOSVRfTElTVF9IRUFEKG9sZCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGxpc3Rfc3dhcChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeTEsCjE0NDc0OiAgICAgICAg
IHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5MikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9o
ZWFkICpwb3MgPSBlbnRyeTItPnByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBsaXN0X2RlbChlbnRyeTIp
OwoxNDQ3NDogIGxpc3RfcmVwbGFjZShlbnRyeTEsIGVudHJ5Mik7CjE0NDc0OiAgaWYgKHBvcyA9
PSBlbnRyeTEpCjE0NDc0OiAgIHBvcyA9IGVudHJ5MjsKMTQ0NzQ6ICBsaXN0X2FkZChlbnRyeTEs
IHBvcyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3NDog
ewoxNDQ3NDogIF9fbGlzdF9kZWxfZW50cnkoZW50cnkpOwoxNDQ3NDogIElOSVRfTElTVF9IRUFE
KGVudHJ5KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9tb3ZlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIHN0
cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgX19saXN0X2RlbF9lbnRyeShs
aXN0KTsKMTQ0NzQ6ICBsaXN0X2FkZChsaXN0LCBoZWFkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9tb3Zl
X3RhaWwoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsaXN0X2hl
YWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgX19saXN0X2RlbF9lbnRyeShsaXN0KTsKMTQ0NzQ6
ICBsaXN0X2FkZF90YWlsKGxpc3QsIGhlYWQpOwoxNDQ3NDogfQoxNDQ3NDogIyAyNDAgIi4vaW5j
bHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfYnVsa19tb3ZlX3RhaWwoc3RydWN0
IGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZmly
c3QsCjE0NDc0OiAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QpCjE0NDc0OiB7CjE0
NDc0OiAgZmlyc3QtPnByZXYtPm5leHQgPSBsYXN0LT5uZXh0OwoxNDQ3NDogIGxhc3QtPm5leHQt
PnByZXYgPSBmaXJzdC0+cHJldjsKMTQ0NzQ6IAoxNDQ3NDogIGhlYWQtPnByZXYtPm5leHQgPSBm
aXJzdDsKMTQ0NzQ6ICBmaXJzdC0+cHJldiA9IGhlYWQtPnByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBs
YXN0LT5uZXh0ID0gaGVhZDsKMTQ0NzQ6ICBoZWFkLT5wcmV2ID0gbGFzdDsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBs
aXN0X2lzX2ZpcnN0KGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0OiAgICAgIGNv
bnN0IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3Qt
PnByZXYgPT0gaGVhZDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBsaXN0X2lzX2xhc3QoY29uc3Qgc3RydWN0IGxpc3Rf
aGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICBjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBsaXN0LT5uZXh0ID09IGhlYWQ7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxpc3RfZW1wdHkoY29u
c3Qgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5p
b24geyB0eXBlb2YoaGVhZC0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEp
IF9fcmVhZF9vbmNlX3NpemUoJihoZWFkLT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKGhlYWQtPm5l
eHQpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihoZWFkLT5uZXh0KSwgX191Ll9f
Yywgc2l6ZW9mKGhlYWQtPm5leHQpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KSA9
PSBoZWFkOwoxNDQ3NDogfQoxNDQ3NDogIyAyOTggIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgbGlzdF9lbXB0eV9jYXJlZnVsKGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQp
CjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCA9IGhlYWQtPm5leHQ7CjE0
NDc0OiAgcmV0dXJuIChuZXh0ID09IGhlYWQpICYmIChuZXh0ID09IGhlYWQtPnByZXYpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bGlzdF9yb3RhdGVfbGVmdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDog
IHN0cnVjdCBsaXN0X2hlYWQgKmZpcnN0OwoxNDQ3NDogCjE0NDc0OiAgaWYgKCFsaXN0X2VtcHR5
KGhlYWQpKSB7CjE0NDc0OiAgIGZpcnN0ID0gaGVhZC0+bmV4dDsKMTQ0NzQ6ICAgbGlzdF9tb3Zl
X3RhaWwoZmlyc3QsIGhlYWQpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzI1ICIuL2lu
Y2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3JvdGF0ZV90b19mcm9udChzdHJ1
Y3QgbGlzdF9oZWFkICpsaXN0LAoxNDQ3NDogICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQox
NDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBs
aXN0X21vdmVfdGFpbChoZWFkLCBsaXN0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbGlzdF9pc19zaW5ndWxhcihjb25zdCBzdHJ1
Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhbGlzdF9lbXB0eSho
ZWFkKSAmJiAoaGVhZC0+bmV4dCA9PSBoZWFkLT5wcmV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBfX2xpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0
OiAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3
NDogewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgKm5ld19maXJzdCA9IGVudHJ5LT5uZXh0Owox
NDQ3NDogIGxpc3QtPm5leHQgPSBoZWFkLT5uZXh0OwoxNDQ3NDogIGxpc3QtPm5leHQtPnByZXYg
PSBsaXN0OwoxNDQ3NDogIGxpc3QtPnByZXYgPSBlbnRyeTsKMTQ0NzQ6ICBlbnRyeS0+bmV4dCA9
IGxpc3Q7CjE0NDc0OiAgaGVhZC0+bmV4dCA9IG5ld19maXJzdDsKMTQ0NzQ6ICBuZXdfZmlyc3Qt
PnByZXYgPSBoZWFkOwoxNDQ3NDogfQoxNDQ3NDogIyAzNzEgIi4vaW5jbHVkZS9saW51eC9saXN0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGxpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3Qs
CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIGlmIChsaXN0X2VtcHR5KGhlYWQpKQoxNDQ3NDogICByZXR1cm47
CjE0NDc0OiAgaWYgKGxpc3RfaXNfc2luZ3VsYXIoaGVhZCkgJiYKMTQ0NzQ6ICAgKGhlYWQtPm5l
eHQgIT0gZW50cnkgJiYgaGVhZCAhPSBlbnRyeSkpCjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6ICBp
ZiAoZW50cnkgPT0gaGVhZCkKMTQ0NzQ6ICAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CjE0NDc0OiAg
ZWxzZQoxNDQ3NDogICBfX2xpc3RfY3V0X3Bvc2l0aW9uKGxpc3QsIGhlYWQsIGVudHJ5KTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgMzk5ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBs
aXN0X2N1dF9iZWZvcmUoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgICBzdHJ1
Y3QgbGlzdF9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIGlmIChoZWFkLT5uZXh0ID09IGVudHJ5KSB7CjE0NDc0OiAgIElO
SVRfTElTVF9IRUFEKGxpc3QpOwoxNDQ3NDogICByZXR1cm47CjE0NDc0OiAgfQoxNDQ3NDogIGxp
c3QtPm5leHQgPSBoZWFkLT5uZXh0OwoxNDQ3NDogIGxpc3QtPm5leHQtPnByZXYgPSBsaXN0Owox
NDQ3NDogIGxpc3QtPnByZXYgPSBlbnRyeS0+cHJldjsKMTQ0NzQ6ICBsaXN0LT5wcmV2LT5uZXh0
ID0gbGlzdDsKMTQ0NzQ6ICBoZWFkLT5uZXh0ID0gZW50cnk7CjE0NDc0OiAgZW50cnktPnByZXYg
PSBoZWFkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9zcGxpY2UoY29uc3Qg
c3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqcHJl
diwKMTQ0NzQ6ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBz
dHJ1Y3QgbGlzdF9oZWFkICpmaXJzdCA9IGxpc3QtPm5leHQ7CjE0NDc0OiAgc3RydWN0IGxpc3Rf
aGVhZCAqbGFzdCA9IGxpc3QtPnByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBmaXJzdC0+cHJldiA9IHBy
ZXY7CjE0NDc0OiAgcHJldi0+bmV4dCA9IGZpcnN0OwoxNDQ3NDogCjE0NDc0OiAgbGFzdC0+bmV4
dCA9IG5leHQ7CjE0NDc0OiAgbmV4dC0+cHJldiA9IGxhc3Q7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3Rfc3Bs
aWNlKGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0OiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqaGVhZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWxpc3RfZW1wdHkobGlzdCkpCjE0NDc0
OiAgIF9fbGlzdF9zcGxpY2UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxp
c3Rfc3BsaWNlX3RhaWwoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIGlmICghbGlzdF9lbXB0eShsaXN0KSkK
MTQ0NzQ6ICAgX19saXN0X3NwbGljZShsaXN0LCBoZWFkLT5wcmV2LCBoZWFkKTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgNDYwICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3Nw
bGljZV9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBs
aXN0X2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCFsaXN0X2VtcHR5KGxpc3QpKSB7
CjE0NDc0OiAgIF9fbGlzdF9zcGxpY2UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCk7CjE0NDc0OiAg
IElOSVRfTElTVF9IRUFEKGxpc3QpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDc3ICIu
L2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3NwbGljZV90YWlsX2luaXQo
c3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhl
YWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCFsaXN0X2VtcHR5KGxpc3QpKSB7CjE0NDc0OiAgIF9f
bGlzdF9zcGxpY2UobGlzdCwgaGVhZC0+cHJldiwgaGVhZCk7CjE0NDc0OiAgIElOSVRfTElTVF9I
RUFEKGxpc3QpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzY1ICIuL2luY2x1ZGUvbGlu
dXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBJTklUX0hMSVNUX05PREUoc3RydWN0IGhsaXN0X25vZGUg
KmgpCjE0NDc0OiB7CjE0NDc0OiAgaC0+bmV4dCA9ICgodm9pZCAqKTApOwoxNDQ3NDogIGgtPnBw
cmV2ID0gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDc3OSAiLi9pbmNsdWRlL2xpbnV4
L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBobGlzdF91bmhhc2hlZChjb25zdCBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqaCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIWgtPnBwcmV2OwoxNDQ3NDogfQoxNDQ3NDog
IyA3OTIgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGxpc3RfdW5oYXNoZWRf
bG9ja2xlc3MoY29uc3Qgc3RydWN0IGhsaXN0X25vZGUgKmgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuICEoeyB1bmlvbiB7IHR5cGVvZihoLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihoLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZiho
LT5wcHJldikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKGgtPnBwcmV2KSwgX191
Ll9fYywgc2l6ZW9mKGgtPnBwcmV2KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGhsaXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBobGlzdF9oZWFkICpoKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAhKHsgdW5pb24geyB0eXBlb2YoaC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoaC0+Zmlyc3QpLCBfX3UuX19jLCBz
aXplb2YoaC0+Zmlyc3QpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihoLT5maXJz
dCksIF9fdS5fX2MsIHNpemVvZihoLT5maXJzdCkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192
YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9faGxpc3RfZGVsKHN0cnVjdCBo
bGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0ID0g
bi0+bmV4dDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7CjE0
NDc0OiAKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZigqcHByZXYpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCpwcHJldikpIChuZXh0KSB9OyBfX3dyaXRl
X29uY2Vfc2l6ZSgmKCpwcHJldiksIF9fdS5fX2MsIHNpemVvZigqcHByZXYpKTsgX191Ll9fdmFs
OyB9KTsKMTQ0NzQ6ICBpZiAobmV4dCkKMTQ0NzQ6ICAgKHsgdW5pb24geyB0eXBlb2YobmV4dC0+
cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5l
eHQtPnBwcmV2KSkgKHBwcmV2KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG5leHQtPnBwcmV2KSwg
X191Ll9fYywgc2l6ZW9mKG5leHQtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDgyMyAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfZGVs
KHN0cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIF9faGxpc3RfZGVsKG4pOwox
NDQ3NDogIG4tPm5leHQgPSAoKHZvaWQgKikgMHgxMDAgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwp
KTsKMTQ0NzQ6ICBuLT5wcHJldiA9ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAw
MDBVTCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2RlbF9pbml0KHN0cnVjdCBobGlzdF9u
b2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGlmICghaGxpc3RfdW5oYXNoZWQobikpIHsKMTQ0NzQ6
ICAgX19obGlzdF9kZWwobik7CjE0NDc0OiAgIElOSVRfSExJU1RfTk9ERShuKTsKMTQ0NzQ6ICB9
CjE0NDc0OiB9CjE0NDc0OiAjIDg1MiAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaGxpc3RfYWRkX2hlYWQoc3RydWN0IGhsaXN0X25vZGUgKm4sIHN0cnVjdCBobGlzdF9oZWFk
ICpoKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlICpmaXJzdCA9IGgtPmZpcnN0
OwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPm5leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPm5leHQpKSAoZmlyc3QpIH07IF9fd3JpdGVf
b25jZV9zaXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5uZXh0KSk7IF9fdS5fX3Zh
bDsgfSk7CjE0NDc0OiAgaWYgKGZpcnN0KQoxNDQ3NDogICAoeyB1bmlvbiB7IHR5cGVvZihmaXJz
dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9m
KGZpcnN0LT5wcHJldikpICgmbi0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihmaXJzdC0+
cHByZXYpLCBfX3UuX19jLCBzaXplb2YoZmlyc3QtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CjE0
NDc0OiAgKHsgdW5pb24geyB0eXBlb2YoaC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBf
X3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGgtPmZpcnN0KSkgKG4pIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoaC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgX191Ll9fdmFsOyB9
KTsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJmgtPmZpcnN0KSB9OyBf
X3dyaXRlX29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBwcmV2KSk7
IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2FkZF9iZWZvcmUoc3RydWN0IGhsaXN0
X25vZGUgKm4sCjE0NDc0OiAgICAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0KQoxNDQ3NDog
ewoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikpIChuZXh0LT5wcHJldikgfTsg
X193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikp
OyBfX3UuX192YWw7IH0pOwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPm5leHQpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPm5leHQpKSAobmV4
dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKG4tPm5l
eHQpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihuZXh0LT5wcHJl
dikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YobmV4dC0+
cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobmV4dC0+cHByZXYpLCBf
X3UuX19jLCBzaXplb2YobmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAoeyB1
bmlvbiB7IHR5cGVvZigqKG4tPnBwcmV2KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsg
Ll9fdmFsID0gKCB0eXBlb2YoKihuLT5wcHJldikpKSAobikgfTsgX193cml0ZV9vbmNlX3NpemUo
JigqKG4tPnBwcmV2KSksIF9fdS5fX2MsIHNpemVvZigqKG4tPnBwcmV2KSkpOyBfX3UuX192YWw7
IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9hZGRfYmVoaW5kKHN0cnVjdCBobGlzdF9ub2RlICpuLAox
NDQ3NDogICAgICAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqcHJldikKMTQ0NzQ6IHsKMTQ0NzQ6ICAo
eyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAu
X192YWwgPSAoIHR5cGVvZihuLT5uZXh0KSkgKHByZXYtPm5leHQpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5uZXh0KSk7IF9fdS5fX3ZhbDsgfSk7
CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2YocHJldi0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YocHJldi0+bmV4dCkpIChuKSB9OyBfX3dyaXRl
X29uY2Vfc2l6ZSgmKHByZXYtPm5leHQpLCBfX3UuX19jLCBzaXplb2YocHJldi0+bmV4dCkpOyBf
X3UuX192YWw7IH0pOwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsg
Y2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikpICgmcHJl
di0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVv
ZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogCjE0NDc0OiAgaWYgKG4tPm5leHQp
CjE0NDc0OiAgICh7IHVuaW9uIHsgdHlwZW9mKG4tPm5leHQtPnBwcmV2KSBfX3ZhbDsgY2hhciBf
X2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5uZXh0LT5wcHJldikpICgmbi0+
bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5uZXh0LT5wcHJldiksIF9fdS5fX2MsIHNp
emVvZihuLT5uZXh0LT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA5
MDAgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2FkZF9mYWtlKHN0
cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIG4tPnBwcmV2ID0gJm4tPm5leHQ7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBobGlzdF9mYWtlKHN0cnVjdCBobGlzdF9ub2RlICpoKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBoLT5wcHJldiA9PSAmaC0+bmV4dDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOTIyICIuL2luY2x1
ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogaGxpc3RfaXNfc2luZ3VsYXJfbm9k
ZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwgc3RydWN0IGhsaXN0X2hlYWQgKmgpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICFuLT5uZXh0ICYmIG4tPnBwcmV2ID09ICZoLT5maXJzdDsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgOTM2ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9t
b3ZlX2xpc3Qoc3RydWN0IGhsaXN0X2hlYWQgKm9sZCwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgaGxp
c3RfaGVhZCAqbmV3KQoxNDQ3NDogewoxNDQ3NDogIG5ldy0+Zmlyc3QgPSBvbGQtPmZpcnN0Owox
NDQ3NDogIGlmIChuZXctPmZpcnN0KQoxNDQ3NDogICBuZXctPmZpcnN0LT5wcHJldiA9ICZuZXct
PmZpcnN0OwoxNDQ3NDogIG9sZC0+Zmlyc3QgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMTIgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiIDIKMTQ0NzQ6ICMgNzggIi4vaW5jbHVk
ZS9saW51eC9wcmVlbXB0LmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJl
ZW1wdC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oIiAxCjE0NDc0OiAjIDg4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3BlcmNwdS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iYWRfcGVy
Y3B1X3NpemUodm9pZCk7CjE0NDc0OiAjIDUyNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZXJj
cHUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCB4ODZf
dGhpc19jcHVfY29uc3RhbnRfdGVzdF9iaXQodW5zaWduZWQgaW50IG5yLAoxNDQ3NDogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nICphID0KMTQ0NzQ6ICAgKHVuc2lnbmVkIGxvbmcgKilhZGRyICsg
bnIgLyA2NDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICgoMVVMIDw8IChuciAlIDY0
KSkgJiAoeyB0eXBlb2YoKmEpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoKmEpKSB7IGNhc2Ug
MTogYXNtICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3Jl
dF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgibW92IiAidyAiIiUlIiJncyIi
OiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7IGNh
c2UgNDogYXNtICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7IGNhc2UgODogYXNtICgibW92IiAicSAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoKmEpKTsgYnJlYWs7
IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KSkgIT0gMDsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4ODZfdGhp
c19jcHVfdmFyaWFibGVfdGVzdF9iaXQoaW50IG5yLAoxNDQ3NDogICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBib29sIG9s
ZGJpdDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiYnRsICIiJSUiImdzIiI6IiAiJSIg
IjIiIiwlMSIKMTQ0NzQ6ICAgICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImMiICIq
L1xuIgoxNDQ3NDogICAgOiAiPUBjYyIgImMiIChvbGRiaXQpCjE0NDc0OiAgICA6ICJtIiAoKih1
bnNpZ25lZCBsb25nICopYWRkciksICJJciIgKG5yKSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4g
b2xkYml0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZXJjcHUu
aCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3RocmVhZHMuaCIgMQoxNDQ3NDogIyA3ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvcGVyY3B1LmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1kZWZz
LmgiIDEKMTQ0NzQ6ICMgMzA4ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LWRlZnMuaCIKMTQ0NzQ6
IGV4dGVybiB2b2lkIF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIodm9pZCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX190aGlzX2NwdV9wcmVlbXB0X2NoZWNr
KGNvbnN0IGNoYXIgKm9wKSB7IH0KMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Bl
cmNwdS5oIiAyCjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmgiCjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3Blcl9jcHVfb2Zmc2V0WzhdOwoxNDQ3NDogIyA0
OCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0
dXBfcGVyX2NwdV9hcmVhcyh2b2lkKTsKMTQ0NzQ6ICMgNTU3ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3BlcmNwdS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRl
X18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9f
KHVuc2lnbmVkIGxvbmcpIHRoaXNfY3B1X29mZjsKMTQ0NzQ6ICMgNyAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wcmVlbXB0LmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9p
bmZvLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIgoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvbGludXgvYnVnLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5oIiAxCjE0NDc0
OiAjIDgzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5oIgoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvYnVnLmgiIDEKMTQ0NzQ6ICMgMjQgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9idWcuaCIKMTQ0NzQ6IHN0cnVjdCBidWdfZW50cnkgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHNpZ25lZCBpbnQgYnVnX2FkZHJfZGlzcDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc2lnbmVkIGludCBmaWxlX2Rpc3A7CjE0NDc0OiAK
MTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBsaW5lOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgc2hv
cnQgZmxhZ3M7CjE0NDc0OiB9OwoxNDQ3NDogIyA4OSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2J1
Zy5oIgoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAy
KSkpIHZvaWQgX193YXJuX3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAjIDEw
NSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2J1Zy5oIgoxNDQ3NDogc3RydWN0IHdhcm5fYXJnczsK
MTQ0NzQ6IHN0cnVjdCBwdF9yZWdzOwoxNDQ3NDogCjE0NDc0OiB2b2lkIF9fd2Fybihjb25zdCBj
aGFyICpmaWxlLCBpbnQgbGluZSwgdm9pZCAqY2FsbGVyLCB1bnNpZ25lZCB0YWludCwKMTQ0NzQ6
ICAgICAgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCB3YXJuX2FyZ3MgKmFyZ3MpOwoxNDQ3
NDogIyA4NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9idWcuaCIgMgoxNDQ3NDogIyA2ICIuL2lu
Y2x1ZGUvbGludXgvYnVnLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
YnVnX3RyYXBfdHlwZSB7CjE0NDc0OiAgQlVHX1RSQVBfVFlQRV9OT05FID0gMCwKMTQ0NzQ6ICBC
VUdfVFJBUF9UWVBFX1dBUk4gPSAxLAoxNDQ3NDogIEJVR19UUkFQX1RZUEVfQlVHID0gMiwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwdF9yZWdzOwoxNDQ3NDogIyAzNCAiLi9pbmNs
dWRlL2xpbnV4L2J1Zy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlzX3dhcm5pbmdfYnVnKGNvbnN0IHN0cnVjdCBi
dWdfZW50cnkgKmJ1ZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYnVnLT5mbGFncyAmICgxIDw8
IDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnVnX2VudHJ5ICpmaW5kX2J1Zyh1
bnNpZ25lZCBsb25nIGJ1Z2FkZHIpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJ1Z190cmFwX3R5cGUg
cmVwb3J0X2J1Zyh1bnNpZ25lZCBsb25nIGJ1Z19hZGRyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IGlzX3ZhbGlkX2J1Z2FkZHIodW5zaWduZWQgbG9u
ZyBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBnZW5lcmljX2J1Z19jbGVhcl9vbmNlKHZvaWQp
OwoxNDQ3NDogIyA3MCAiLi9pbmNsdWRlL2xpbnV4L2J1Zy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJvb2wgY2hlY2tfZGF0YV9jb3JydXB0aW9uKGJv
b2wgdikgeyByZXR1cm4gdjsgfQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9p
bmZvLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Jlc3RhcnRfYmxvY2suaCIgMQox
NDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3Jlc3RhcnRfYmxvY2suaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3RpbWU2NC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIiAxCjE0NDc0OiAjIDI0ICIu
L2luY2x1ZGUvbGludXgvbWF0aDY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgZGl2X3U2NF9yZW0odTY0IGRpdmlk
ZW5kLCB1MzIgZGl2aXNvciwgdTMyICpyZW1haW5kZXIpCjE0NDc0OiB7CjE0NDc0OiAgKnJlbWFp
bmRlciA9IGRpdmlkZW5kICUgZGl2aXNvcjsKMTQ0NzQ6ICByZXR1cm4gZGl2aWRlbmQgLyBkaXZp
c29yOwoxNDQ3NDogfQoxNDQ3NDogIyAzOCAiLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0IGRpdl9zNjRfcmVtKHM2NCBkaXZpZGVuZCwgczMyIGRpdmlzb3IsIHMzMiAqcmVtYWlu
ZGVyKQoxNDQ3NDogewoxNDQ3NDogICpyZW1haW5kZXIgPSBkaXZpZGVuZCAlIGRpdmlzb3I7CjE0
NDc0OiAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2aXNvcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTIgIi4v
aW5jbHVkZS9saW51eC9tYXRoNjQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBkaXY2NF91NjRfcmVtKHU2NCBkaXZp
ZGVuZCwgdTY0IGRpdmlzb3IsIHU2NCAqcmVtYWluZGVyKQoxNDQ3NDogewoxNDQ3NDogICpyZW1h
aW5kZXIgPSBkaXZpZGVuZCAlIGRpdmlzb3I7CjE0NDc0OiAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2
aXNvcjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjUgIi4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHU2NCBkaXY2NF91NjQodTY0IGRpdmlkZW5kLCB1NjQgZGl2aXNvcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gZGl2aWRlbmQgLyBkaXZpc29yOwoxNDQ3NDogfQoxNDQ3NDogIyA3NyAiLi9p
bmNsdWRlL2xpbnV4L21hdGg2NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGRpdjY0X3M2NChzNjQgZGl2aWRlbmQs
IHM2NCBkaXZpc29yKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7
CjE0NDc0OiB9CjE0NDc0OiAjIDEyMyAiLi9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dTY0IGRpdl91NjQodTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
MzIgcmVtYWluZGVyOwoxNDQ3NDogIHJldHVybiBkaXZfdTY0X3JlbShkaXZpZGVuZCwgZGl2aXNv
ciwgJnJlbWFpbmRlcik7CjE0NDc0OiB9CjE0NDc0OiAjIDEzNiAiLi9pbmNsdWRlL2xpbnV4L21h
dGg2NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0IGRpdl9zNjQoczY0IGRpdmlkZW5kLCBzMzIgZGl2aXNvcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzMzIgcmVtYWluZGVyOwoxNDQ3NDogIHJldHVybiBkaXZfczY0X3JlbShk
aXZpZGVuZCwgZGl2aXNvciwgJnJlbWFpbmRlcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdTMyIGl0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvciwgdTY0
ICpyZW1haW5kZXIpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHUzMgoxNDQ3NDogX19pdGVyX2Rpdl91NjRfcmVtKHU2NCBkaXZpZGVuZCwgdTMyIGRp
dmlzb3IsIHU2NCAqcmVtYWluZGVyKQoxNDQ3NDogewoxNDQ3NDogIHUzMiByZXQgPSAwOwoxNDQ3
NDogCjE0NDc0OiAgd2hpbGUgKGRpdmlkZW5kID49IGRpdmlzb3IpIHsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIGFzbSgiIiA6ICIrcm0iKGRpdmlkZW5kKSk7CjE0NDc0OiAKMTQ0NzQ6ICAgZGl2
aWRlbmQgLT0gZGl2aXNvcjsKMTQ0NzQ6ICAgcmV0Kys7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0
OiAgKnJlbWFpbmRlciA9IGRpdmlkZW5kOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQg
bXVsX3UzMl91MzIodTMyIGEsIHUzMiBiKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodTY0KWEg
KiBiOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHU2NCBtdWxfdTY0X3UzMl9zaHIodTY0IGEsIHUzMiBtdWwsIHVuc2lnbmVkIGludCBzaGlm
dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHU2NCkoKCh1bnNpZ25lZCBfX2ludDEyOClhICog
bXVsKSA+PiBzaGlmdCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
NjQgbXVsX3U2NF91NjRfc2hyKHU2NCBhLCB1NjQgbXVsLCB1bnNpZ25lZCBpbnQgc2hpZnQpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1NjQpKCgodW5zaWduZWQgX19pbnQxMjgpYSAqIG11bCkg
Pj4gc2hpZnQpOwoxNDQ3NDogfQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvbGludXgvdGltZTY0Lmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBfX3M2NCB0aW1lNjRfdDsKMTQ0NzQ6IHR5cGVkZWYg
X191NjQgdGltZXU2NF90OwoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L3RpbWUuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZV90eXBlcy5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX19rZXJuZWxf
dGltZXNwZWMgewoxNDQ3NDogIF9fa2VybmVsX3RpbWU2NF90IHR2X3NlYzsKMTQ0NzQ6ICBsb25n
IGxvbmcgdHZfbnNlYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfX2tlcm5lbF9p
dGltZXJzcGVjIHsKMTQ0NzQ6ICBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgaXRfaW50ZXJ2YWw7
CjE0NDc0OiAgc3RydWN0IF9fa2VybmVsX3RpbWVzcGVjIGl0X3ZhbHVlOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMjUgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWVfdHlwZXMuaCIKMTQ0NzQ6IHN0cnVj
dCBfX2tlcm5lbF9vbGRfdGltZXZhbCB7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHR2X3NlYzsK
MTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgdHZfdXNlYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IF9fa2VybmVsX29sZF90aW1lc3BlYyB7CjE0NDc0OiAgX19rZXJuZWxf
b2xkX3RpbWVfdCB0dl9zZWM7CjE0NDc0OiAgbG9uZyB0dl9uc2VjOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IF9fa2VybmVsX29sZF9pdGltZXJ2YWwgewoxNDQ3NDogIHN0cnVjdCBf
X2tlcm5lbF9vbGRfdGltZXZhbCBpdF9pbnRlcnZhbDsKMTQ0NzQ6ICBzdHJ1Y3QgX19rZXJuZWxf
b2xkX3RpbWV2YWwgaXRfdmFsdWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX19r
ZXJuZWxfc29ja190aW1ldmFsIHsKMTQ0NzQ6ICBfX3M2NCB0dl9zZWM7CjE0NDc0OiAgX19zNjQg
dHZfdXNlYzsKMTQ0NzQ6IH07CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWUu
aCIgMgoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZS5oIgoxNDQ3NDogc3Ry
dWN0IHRpbWV6b25lIHsKMTQ0NzQ6ICBpbnQgdHpfbWludXRlc3dlc3Q7CjE0NDc0OiAgaW50IHR6
X2RzdHRpbWU7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWU2NC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lc3BlYzY0IHsKMTQ0NzQ6ICB0aW1lNjRfdCB0
dl9zZWM7CjE0NDc0OiAgbG9uZyB0dl9uc2VjOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGl0aW1lcnNwZWM2NCB7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaXRfaW50ZXJ2YWw7
CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaXRfdmFsdWU7CjE0NDc0OiB9OwoxNDQ3NDogIyA0
OSAiLi9pbmNsdWRlL2xpbnV4L3RpbWU2NC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHRpbWVzcGVjNjRfZXF1YWwo
Y29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKmEsCjE0NDc0OiAgICAgICAgY29uc3Qgc3RydWN0IHRp
bWVzcGVjNjQgKmIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChhLT50dl9zZWMgPT0gYi0+dHZf
c2VjKSAmJiAoYS0+dHZfbnNlYyA9PSBiLT50dl9uc2VjKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0aW1lc3BlYzY0
X2NvbXBhcmUoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKmxocywgY29uc3Qgc3RydWN0IHRpbWVz
cGVjNjQgKnJocykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAobGhzLT50dl9zZWMgPCByaHMtPnR2X3Nl
YykKMTQ0NzQ6ICAgcmV0dXJuIC0xOwoxNDQ3NDogIGlmIChsaHMtPnR2X3NlYyA+IHJocy0+dHZf
c2VjKQoxNDQ3NDogICByZXR1cm4gMTsKMTQ0NzQ6ICByZXR1cm4gbGhzLT50dl9uc2VjIC0gcmhz
LT50dl9uc2VjOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXRfbm9ybWFs
aXplZF90aW1lc3BlYzY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cywgdGltZTY0X3Qgc2VjLCBzNjQg
bnNlYyk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0aW1lc3BlYzY0IHRpbWVzcGVjNjRfYWRkKHN0
cnVjdCB0aW1lc3BlYzY0IGxocywKMTQ0NzQ6ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0IHJocykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXNwZWM2NCB0c19kZWx0YTsKMTQ0NzQ6ICBzZXRf
bm9ybWFsaXplZF90aW1lc3BlYzY0KCZ0c19kZWx0YSwgbGhzLnR2X3NlYyArIHJocy50dl9zZWMs
CjE0NDc0OiAgICAgbGhzLnR2X25zZWMgKyByaHMudHZfbnNlYyk7CjE0NDc0OiAgcmV0dXJuIHRz
X2RlbHRhOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
dHJ1Y3QgdGltZXNwZWM2NCB0aW1lc3BlYzY0X3N1YihzdHJ1Y3QgdGltZXNwZWM2NCBsaHMsCjE0
NDc0OiAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCByaHMpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0
IHRpbWVzcGVjNjQgdHNfZGVsdGE7CjE0NDc0OiAgc2V0X25vcm1hbGl6ZWRfdGltZXNwZWM2NCgm
dHNfZGVsdGEsIGxocy50dl9zZWMgLSByaHMudHZfc2VjLAoxNDQ3NDogICAgIGxocy50dl9uc2Vj
IC0gcmhzLnR2X25zZWMpOwoxNDQ3NDogIHJldHVybiB0c19kZWx0YTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lc3BlYzY0X3ZhbGlkKGNv
bnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIGlmICh0
cy0+dHZfc2VjIDwgMCkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgaWYg
KCh1bnNpZ25lZCBsb25nKXRzLT50dl9uc2VjID49IDEwMDAwMDAwMDBMKQoxNDQ3NDogICByZXR1
cm4gZmFsc2U7CjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgdGltZXNwZWM2NF92YWxpZF9zdHJpY3QoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzKQox
NDQ3NDogewoxNDQ3NDogIGlmICghdGltZXNwZWM2NF92YWxpZCh0cykpCjE0NDc0OiAgIHJldHVy
biBmYWxzZTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICgodW5zaWduZWQgbG9uZyBsb25nKXRzLT50dl9z
ZWMgPj0gKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAwMDAwTCkpCjE0NDc0OiAgIHJl
dHVybiBmYWxzZTsKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCB0aW1lc3BlYzY0X3ZhbGlkX3NldHRvZChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMp
CjE0NDc0OiB7CjE0NDc0OiAgaWYgKCF0aW1lc3BlYzY0X3ZhbGlkKHRzKSkKMTQ0NzQ6ICAgcmV0
dXJuIGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCh1bnNpZ25lZCBsb25nIGxvbmcpdHMtPnR2
X3NlYyA+PSAoKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAwMDAwTCkgLSAoMzBMTCAq
IDM2NSAqIDI0ICozNjAwKSkpCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICByZXR1cm4g
dHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTMzICIuL2luY2x1ZGUvbGludXgvdGltZTY0LmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQgdGltZXNwZWM2NF90b19ucyhjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoczY0KSB0cy0+dHZfc2VjICogMTAwMDAwMDAwMEwpICsg
dHMtPnR2X25zZWM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdGltZXNwZWM2NCBuc190
b190aW1lc3BlYzY0KGNvbnN0IHM2NCBuc2VjKTsKMTQ0NzQ6ICMgMTU0ICIuL2luY2x1ZGUvbGlu
dXgvdGltZTY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgdGltZXNwZWM2NF9hZGRfbnMoc3RydWN0IHRpbWVzcGVjNjQgKmEsIHU2NCBucykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBhLT50dl9zZWMgKz0gX19pdGVyX2Rpdl91NjRfcmVtKGEtPnR2X25zZWMgKyBu
cywgMTAwMDAwMDAwMEwsICZucyk7CjE0NDc0OiAgYS0+dHZfbnNlYyA9IG5zOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3QgdGltZXNwZWM2NCB0aW1lc3BlYzY0X2FkZF9zYWZlKGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0
IGxocywKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0IHJocyk7CjE0NDc0OiAj
IDExICIuL2luY2x1ZGUvbGludXgvcmVzdGFydF9ibG9jay5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCB0aW1lc3BlYzsKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXNwZWMzMjsKMTQ0NzQ6IHN0cnVj
dCBwb2xsZmQ7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdGltZXNwZWNfdHlwZSB7CjE0NDc0OiAgVFRf
Tk9ORSA9IDAsCjE0NDc0OiAgVFRfTkFUSVZFID0gMSwKMTQ0NzQ6ICBUVF9DT01QQVQgPSAyLAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJl
c3RhcnRfYmxvY2sgewoxNDQ3NDogIGxvbmcgKCpmbikoc3RydWN0IHJlc3RhcnRfYmxvY2sgKik7
CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICB1MzIg
KnVhZGRyOwoxNDQ3NDogICAgdTMyIHZhbDsKMTQ0NzQ6ICAgIHUzMiBmbGFnczsKMTQ0NzQ6ICAg
IHUzMiBiaXRzZXQ7CjE0NDc0OiAgICB1NjQgdGltZTsKMTQ0NzQ6ICAgIHUzMiAqdWFkZHIyOwox
NDQ3NDogICB9IGZ1dGV4OwoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICBjbG9j
a2lkX3QgY2xvY2tpZDsKMTQ0NzQ6ICAgIGVudW0gdGltZXNwZWNfdHlwZSB0eXBlOwoxNDQ3NDog
ICAgdW5pb24gewoxNDQ3NDogICAgIHN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyAqcm10cDsKMTQ0
NzQ6ICAgICBzdHJ1Y3Qgb2xkX3RpbWVzcGVjMzIgKmNvbXBhdF9ybXRwOwoxNDQ3NDogICAgfTsK
MTQ0NzQ6ICAgIHU2NCBleHBpcmVzOwoxNDQ3NDogICB9IG5hbm9zbGVlcDsKMTQ0NzQ6IAoxNDQ3
NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgc3RydWN0IHBvbGxmZCAqdWZkczsKMTQ0NzQ6ICAgIGlu
dCBuZmRzOwoxNDQ3NDogICAgaW50IGhhc190aW1lb3V0OwoxNDQ3NDogICAgdW5zaWduZWQgbG9u
ZyB0dl9zZWM7CjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIHR2X25zZWM7CjE0NDc0OiAgIH0gcG9s
bDsKMTQ0NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvbmcgZG9fbm9f
cmVzdGFydF9zeXNjYWxsKHN0cnVjdCByZXN0YXJ0X2Jsb2NrICpwYXJtKTsKMTQ0NzQ6ICMgMTQg
Ii4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9jdXJyZW50LmgiIDEKMTQ0NzQ6ICMgOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9jdXJyZW50LmgiCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5cGVv
Zl9fKHN0cnVjdCB0YXNrX3N0cnVjdCAqKSBjdXJyZW50X3Rhc2s7CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRf
Y3VycmVudCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoY3VycmVudF90
YXNrKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGN1cnJlbnRfdGFzaykpIHsgY2FzZSAxOiBh
c20oIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18p
IDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJlYWs7IGNhc2UgMjogYXNtKCJtb3YiICJ3ICIi
JSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJwIiAoJihjdXJy
ZW50X3Rhc2spKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSgibW92IiAibCAiIiUlIiJncyIiOiIgIiUi
ICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAicCIgKCYoY3VycmVudF90YXNrKSkpOyBi
cmVhazsgY2FzZSA4OiBhc20oIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIiAyCjE0NDc0OiAjIDMxICIuL2luY2x1
ZGUvbGludXgvdGhyZWFkX2luZm8uaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIEJBRF9TVEFDSyA9
IC0xLAoxNDQ3NDogIE5PVF9TVEFDSyA9IDAsCjE0NDc0OiAgR09PRF9GUkFNRSwKMTQ0NzQ6ICBH
T09EX1NUQUNLLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3RocmVhZF9pbmZvLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vdGhyZWFkX2luZm8uaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdl
LmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oIgoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjQuaCIgMQoxNDQ3NDogIyAxMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlXzY0LmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9u
ZyBtYXhfcGZuOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGh5c19iYXNlOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBwYWdlX29mZnNldF9iYXNlOwoxNDQ3NDogZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgdm1hbGxvY19iYXNlOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxv
bmcgdm1lbW1hcF9iYXNlOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fcGh5c19hZGRy
X25vZGVidWcodW5zaWduZWQgbG9uZyB4KQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
eSA9IHggLSAoMHhmZmZmZmZmZjgwMDAwMDAwVUwpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB4
ID0geSArICgoeCA+IHkpID8gcGh5c19iYXNlIDogKCgweGZmZmZmZmZmODAwMDAwMDBVTCkgLSAo
KHVuc2lnbmVkIGxvbmcpcGFnZV9vZmZzZXRfYmFzZSkpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biB4OwoxNDQ3NDogfQoxNDQ3NDogIyA0MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlXzY0
LmgiCjE0NDc0OiB2b2lkIGNsZWFyX3BhZ2Vfb3JpZyh2b2lkICpwYWdlKTsKMTQ0NzQ6IHZvaWQg
Y2xlYXJfcGFnZV9yZXAodm9pZCAqcGFnZSk7CjE0NDc0OiB2b2lkIGNsZWFyX3BhZ2VfZXJtcyh2
b2lkICpwYWdlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl9wYWdlKHZvaWQgKnBhZ2UpCjE0
NDc0OiB7CjE0NDc0OiAgYXNtIF9faW5saW5lIHZvbGF0aWxlICgiIyBBTFQ6IG9sZGluc3RyMlxu
IiAiNjYxOlxuXHQiICJjYWxsICVQW29sZF0iICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nMlxu
IiAiLnNraXAgLSgoIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1
IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAm
IC0oLSgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQi
IjIiImYiICIpKSkpKSIgIiAtICgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCIgIigoIiAi
NjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IikgXiAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkgJiAtKC0oKCIgIjY2NSIiMSIiZi0i
IjY2NCIiMSIiZiIgIikgPCAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkpKSkiICIgLSAo
IiAiNjYyYi02NjFiIiAiKSksIDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0
aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQi
IjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCAzKjMyKzE2KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5
dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2
NCIiMiIiZiAtIC5cbiIgIiAud29yZCAiICIoIDkqMzIrIDkpIiAiXG4iICIgLmJ5dGUgIiAiNjYz
IiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICJcbiIgIiAu
Ynl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEi
ICJcbiIgIjY2NCIiMSIiOlxuXHQiICJjYWxsICVQW25ldzFdIiAiXG4iICI2NjUiIjEiICI6XG4i
ICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMiIgIlxuIiAiNjY0IiIyIiI6XG5cdCIgImNhbGwgJVBb
bmV3Ml0iICJcbiIgIjY2NSIiMiIgIjpcbiIgIi5wb3BzZWN0aW9uXG4iIDogIj1EIiAocGFnZSks
ICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbb2xkXSAiaSIgKGNsZWFyX3BhZ2Vfb3Jp
ZyksIFtuZXcxXSAiaSIgKGNsZWFyX3BhZ2VfcmVwKSwgW25ldzJdICJpIiAoY2xlYXJfcGFnZV9l
cm1zKSwgIjAiIChwYWdlKSA6ICJjYyIsICJtZW1vcnkiLCAicmF4IiwgInJjeCIpCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgY29weV9wYWdlKHZvaWQg
KnRvLCB2b2lkICpmcm9tKTsKMTQ0NzQ6ICMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFn
ZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcmFu
Z2UuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmFu
Z2UgewoxNDQ3NDogIHU2NCBzdGFydDsKMTQ0NzQ6ICB1NjQgZW5kOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogaW50IGFkZF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgYXosIGludCBu
cl9yYW5nZSwKMTQ0NzQ6ICAgdTY0IHN0YXJ0LCB1NjQgZW5kKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBpbnQgYWRkX3JhbmdlX3dpdGhfbWVyZ2Uoc3RydWN0IHJhbmdlICpyYW5nZSwgaW50IGF6
LCBpbnQgbnJfcmFuZ2UsCjE0NDc0OiAgICAgdTY0IHN0YXJ0LCB1NjQgZW5kKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBzdWJ0cmFjdF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgYXosIHU2
NCBzdGFydCwgdTY0IGVuZCk7CjE0NDc0OiAKMTQ0NzQ6IGludCBjbGVhbl9zb3J0X3JhbmdlKHN0
cnVjdCByYW5nZSAqcmFuZ2UsIGludCBheik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc29ydF9yYW5n
ZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHJlc291cmNlX3NpemVfdCBjYXBfcmVzb3VyY2UodTY0IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAodmFsID4gKChyZXNvdXJjZV9zaXplX3QpfjApKQoxNDQ3NDogICByZXR1cm4gKChyZXNv
dXJjZV9zaXplX3QpfjApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgMjIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oIiAyCjE0NDc0OiBleHRlcm4g
c3RydWN0IHJhbmdlIHBmbl9tYXBwZWRbXTsKMTQ0NzQ6IGV4dGVybiBpbnQgbnJfcGZuX21hcHBl
ZDsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl91c2VyX3BhZ2Uodm9pZCAqcGFnZSwgdW5zaWdu
ZWQgbG9uZyB2YWRkciwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgcGFnZSAqcGcpCjE0NDc0OiB7CjE0
NDc0OiAgY2xlYXJfcGFnZShwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjb3B5
X3VzZXJfcGFnZSh2b2lkICp0bywgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyB2YWRkciwKMTQ0
NzQ6ICAgICAgIHN0cnVjdCBwYWdlICp0b3BhZ2UpCjE0NDc0OiB7CjE0NDc0OiAgY29weV9wYWdl
KHRvLCBmcm9tKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
cGFnZS5oIgoxNDQ3NDogZXh0ZXJuIGJvb2wgX192aXJ0X2FkZHJfdmFsaWQodW5zaWduZWQgbG9u
ZyBrYWRkcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2FzbS1nZW5lcmljL21lbW9yeV9tb2RlbC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Bmbi5oIiAxCjE0NDc0OiAj
IDEzICIuL2luY2x1ZGUvbGludXgvcGZuLmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0
OiAgdTY0IHZhbDsKMTQ0NzQ6IH0gcGZuX3Q7CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9tZW1vcnlfbW9kZWwuaCIgMgoxNDQ3NDogIyA3NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wYWdlLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2dldG9yZGVyLmgi
IDEKMTQ0NzQ6ICMgMjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9nZXRvcmRlci5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSkgaW50IGdldF9vcmRlcih1bnNpZ25lZCBsb25nIHNp
emUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKSB7CjE0
NDc0OiAgIGlmICghc2l6ZSkKMTQ0NzQ6ICAgIHJldHVybiA2NCAtIDEyOwoxNDQ3NDogCjE0NDc0
OiAgIGlmIChzaXplIDwgKDFVTCA8PCAxMikpCjE0NDc0OiAgICByZXR1cm4gMDsKMTQ0NzQ6IAox
NDQ3NDogICByZXR1cm4gKCBfX2J1aWx0aW5fY29uc3RhbnRfcCgoc2l6ZSkgLSAxKSA/ICggX19i
dWlsdGluX2NvbnN0YW50X3AoKHNpemUpIC0gMSkgPyAoICgoc2l6ZSkgLSAxKSA8IDIgPyAwIDog
KChzaXplKSAtIDEpICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8
PCA2MikgPyA2MiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDYxKSA/IDYxIDogKChzaXplKSAt
IDEpICYgKDFVTEwgPDwgNjApID8gNjAgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1OSkgPyA1
OSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDU4KSA/IDU4IDogKChzaXplKSAtIDEpICYgKDFV
TEwgPDwgNTcpID8gNTcgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1NikgPyA1NiA6ICgoc2l6
ZSkgLSAxKSAmICgxVUxMIDw8IDU1KSA/IDU1IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNTQp
ID8gNTQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1MykgPyA1MyA6ICgoc2l6ZSkgLSAxKSAm
ICgxVUxMIDw8IDUyKSA/IDUyIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNTEpID8gNTEgOiAo
KHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1MCkgPyA1MCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8
IDQ5KSA/IDQ5IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDgpID8gNDggOiAoKHNpemUpIC0g
MSkgJiAoMVVMTCA8PCA0NykgPyA0NyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQ2KSA/IDQ2
IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKHNpemUpIC0gMSkgJiAoMVVM
TCA8PCA0NCkgPyA0NCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKChzaXpl
KSAtIDEpICYgKDFVTEwgPDwgNDIpID8gNDIgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA0MSkg
PyA0MSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQwKSA/IDQwIDogKChzaXplKSAtIDEpICYg
KDFVTEwgPDwgMzkpID8gMzkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzOCkgPyAzOCA6ICgo
c2l6ZSkgLSAxKSAmICgxVUxMIDw8IDM3KSA/IDM3IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwg
MzYpID8gMzYgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzNSkgPyAzNSA6ICgoc2l6ZSkgLSAx
KSAmICgxVUxMIDw8IDM0KSA/IDM0IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMzMpID8gMzMg
OiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzMikgPyAzMiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxM
IDw8IDMxKSA/IDMxIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMzApID8gMzAgOiAoKHNpemUp
IC0gMSkgJiAoMVVMTCA8PCAyOSkgPyAyOSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDI4KSA/
IDI4IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjcpID8gMjcgOiAoKHNpemUpIC0gMSkgJiAo
MVVMTCA8PCAyNikgPyAyNiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1IDogKChz
aXplKSAtIDEpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAy
MykgPyAyMyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKChzaXplKSAtIDEp
ICYgKDFVTEwgPDwgMjEpID8gMjEgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAyMCkgPyAyMCA6
ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDE5KSA/IDE5IDogKChzaXplKSAtIDEpICYgKDFVTEwg
PDwgMTgpID8gMTggOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxNykgPyAxNyA6ICgoc2l6ZSkg
LSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMTUpID8g
MTUgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxNCkgPyAxNCA6ICgoc2l6ZSkgLSAxKSAmICgx
VUxMIDw8IDEzKSA/IDEzIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMTIpID8gMTIgOiAoKHNp
emUpIC0gMSkgJiAoMVVMTCA8PCAxMSkgPyAxMSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDEw
KSA/IDEwIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgOSkgPyA5IDogKChzaXplKSAtIDEpICYg
KDFVTEwgPDwgOCkgPyA4IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNykgPyA3IDogKChzaXpl
KSAtIDEpICYgKDFVTEwgPDwgNikgPyA2IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNSkgPyA1
IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKChzaXplKSAtIDEpICYgKDFVTEwg
PDwgMykgPyAzIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMikgPyAyIDogMSkgOiAtMSkgOiAo
c2l6ZW9mKChzaXplKSAtIDEpIDw9IDQpID8gX19pbG9nMl91MzIoKHNpemUpIC0gMSkgOiBfX2ls
b2cyX3U2NCgoc2l6ZSkgLSAxKSApIC0gMTIgKyAxOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDog
IHNpemUtLTsKMTQ0NzQ6ICBzaXplID4+PSAxMjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gZmxzNjQoc2l6ZSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzggIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5oIiAyCjE0NDc0OiAjIDEzICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTUgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCIgMgoxNDQ3NDogIyA1MiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIgoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0Owox
NDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIgMQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcHJvY2Vzc29yLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogc3RydWN0
IG1tX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBpb19iaXRtYXA7CjE0NDc0OiBzdHJ1Y3Qgdm04NjsK
MTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21hdGhfZW11LmgiIDEK
MTQ0NzQ6ICMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWF0aF9lbXUuaCIKMTQ0NzQ6IHN0
cnVjdCBtYXRoX2VtdV9pbmZvIHsKMTQ0NzQ6ICBsb25nIF9fX29yaWdfZWlwOwoxNDQ3NDogIHN0
cnVjdCBwdF9yZWdzICpyZWdzOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTQgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2lu
Y2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIgMQoxNDQ3NDogIyA0MCAiLi9hcmNoL3g4Ni9pbmNs
dWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKMTQ0NzQ6IHN0cnVjdCBfZnB4X3N3X2J5dGVzIHsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIG1hZ2ljMTsKMTQ0
NzQ6ICMgNTQgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiCjE0NDc0
OiAgX191MzIgZXh0ZW5kZWRfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgX191NjQgeGZlYXR1cmVzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiB4c3RhdGVfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgX191MzIgcGFkZGluZ1s3XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDg1ICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogc3RydWN0IF9mcHJlZyB7
CjE0NDc0OiAgX191MTYgc2lnbmlmaWNhbmRbNF07CjE0NDc0OiAgX191MTYgZXhwb25lbnQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfZnB4cmVnIHsKMTQ0NzQ6ICBf
X3UxNiBzaWduaWZpY2FuZFs0XTsKMTQ0NzQ6ICBfX3UxNiBleHBvbmVudDsKMTQ0NzQ6ICBfX3Ux
NiBwYWRkaW5nWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3ht
bXJlZyB7CjE0NDc0OiAgX191MzIgZWxlbWVudFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX2Zwc3RhdGVf
MzIgewoxNDQ3NDogCjE0NDc0OiAgX191MzIgY3c7CjE0NDc0OiAgX191MzIgc3c7CjE0NDc0OiAg
X191MzIgdGFnOwoxNDQ3NDogIF9fdTMyIGlwb2ZmOwoxNDQ3NDogIF9fdTMyIGNzc2VsOwoxNDQ3
NDogIF9fdTMyIGRhdGFvZmY7CjE0NDc0OiAgX191MzIgZGF0YXNlbDsKMTQ0NzQ6ICBzdHJ1Y3Qg
X2ZwcmVnIF9zdFs4XTsKMTQ0NzQ6ICBfX3UxNiBzdGF0dXM7CjE0NDc0OiAgX191MTYgbWFnaWM7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgX2Z4c3JfZW52WzZdOwoxNDQ3
NDogIF9fdTMyIG14Y3NyOwoxNDQ3NDogIF9fdTMyIHJlc2VydmVkOwoxNDQ3NDogIHN0cnVjdCBf
ZnB4cmVnIF9meHNyX3N0WzhdOwoxNDQ3NDogIHN0cnVjdCBfeG1tcmVnIF94bW1bOF07CjE0NDc0
OiAgdW5pb24gewoxNDQ3NDogICBfX3UzMiBwYWRkaW5nMVs0NF07CjE0NDc0OiAgIF9fdTMyIHBh
ZGRpbmdbNDRdOwoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIF9f
dTMyIHBhZGRpbmcyWzEyXTsKMTQ0NzQ6ICAgc3RydWN0IF9mcHhfc3dfYnl0ZXMgc3dfcmVzZXJ2
ZWQ7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE0OSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKMTQ0NzQ6IHN0cnVjdCBfZnBzdGF0ZV82NCB7CjE0NDc0
OiAgX191MTYgY3dkOwoxNDQ3NDogIF9fdTE2IHN3ZDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTE2IHR3
ZDsKMTQ0NzQ6ICBfX3UxNiBmb3A7CjE0NDc0OiAgX191NjQgcmlwOwoxNDQ3NDogIF9fdTY0IHJk
cDsKMTQ0NzQ6ICBfX3UzMiBteGNzcjsKMTQ0NzQ6ICBfX3UzMiBteGNzcl9tYXNrOwoxNDQ3NDog
IF9fdTMyIHN0X3NwYWNlWzMyXTsKMTQ0NzQ6ICBfX3UzMiB4bW1fc3BhY2VbNjRdOwoxNDQ3NDog
IF9fdTMyIHJlc2VydmVkMlsxMl07CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBfX3UzMiByZXNl
cnZlZDNbMTJdOwoxNDQ3NDogICBzdHJ1Y3QgX2ZweF9zd19ieXRlcyBzd19yZXNlcnZlZDsKMTQ0
NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF9oZWFkZXIgewoxNDQ3NDogIF9fdTY0IHhm
ZWF0dXJlczsKMTQ0NzQ6ICBfX3U2NCByZXNlcnZlZDFbMl07CjE0NDc0OiAgX191NjQgcmVzZXJ2
ZWQyWzVdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF95bW1oX3N0YXRlIHsKMTQ0
NzQ6IAoxNDQ3NDogIF9fdTMyIHltbWhfc3BhY2VbNjRdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTky
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogc3RydWN0
IF94c3RhdGUgewoxNDQ3NDogIHN0cnVjdCBfZnBzdGF0ZV82NCBmcHN0YXRlOwoxNDQ3NDogIHN0
cnVjdCBfaGVhZGVyIHhzdGF0ZV9oZHI7CjE0NDc0OiAgc3RydWN0IF95bW1oX3N0YXRlIHltbWg7
CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBzaWdjb250ZXh0XzMyIHsKMTQ0NzQ6ICBfX3UxNiBncywgX19nc2g7CjE0NDc0OiAg
X191MTYgZnMsIF9fZnNoOwoxNDQ3NDogIF9fdTE2IGVzLCBfX2VzaDsKMTQ0NzQ6ICBfX3UxNiBk
cywgX19kc2g7CjE0NDc0OiAgX191MzIgZGk7CjE0NDc0OiAgX191MzIgc2k7CjE0NDc0OiAgX191
MzIgYnA7CjE0NDc0OiAgX191MzIgc3A7CjE0NDc0OiAgX191MzIgYng7CjE0NDc0OiAgX191MzIg
ZHg7CjE0NDc0OiAgX191MzIgY3g7CjE0NDc0OiAgX191MzIgYXg7CjE0NDc0OiAgX191MzIgdHJh
cG5vOwoxNDQ3NDogIF9fdTMyIGVycjsKMTQ0NzQ6ICBfX3UzMiBpcDsKMTQ0NzQ6ICBfX3UxNiBj
cywgX19jc2g7CjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0OiAgX191MzIgc3BfYXRfc2lnbmFs
OwoxNDQ3NDogIF9fdTE2IHNzLCBfX3NzaDsKMTQ0NzQ6ICMgMjMwICIuL2FyY2gveDg2L2luY2x1
ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogIF9fdTMyIGZwc3RhdGU7CjE0NDc0OiAg
X191MzIgb2xkbWFzazsKMTQ0NzQ6ICBfX3UzMiBjcjI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2lnY29udGV4dF82NCB7CjE0NDc0OiAg
X191NjQgcjg7CjE0NDc0OiAgX191NjQgcjk7CjE0NDc0OiAgX191NjQgcjEwOwoxNDQ3NDogIF9f
dTY0IHIxMTsKMTQ0NzQ6ICBfX3U2NCByMTI7CjE0NDc0OiAgX191NjQgcjEzOwoxNDQ3NDogIF9f
dTY0IHIxNDsKMTQ0NzQ6ICBfX3U2NCByMTU7CjE0NDc0OiAgX191NjQgZGk7CjE0NDc0OiAgX191
NjQgc2k7CjE0NDc0OiAgX191NjQgYnA7CjE0NDc0OiAgX191NjQgYng7CjE0NDc0OiAgX191NjQg
ZHg7CjE0NDc0OiAgX191NjQgYXg7CjE0NDc0OiAgX191NjQgY3g7CjE0NDc0OiAgX191NjQgc3A7
CjE0NDc0OiAgX191NjQgaXA7CjE0NDc0OiAgX191NjQgZmxhZ3M7CjE0NDc0OiAgX191MTYgY3M7
CjE0NDc0OiAgX191MTYgZ3M7CjE0NDc0OiAgX191MTYgZnM7CjE0NDc0OiAgX191MTYgc3M7CjE0
NDc0OiAgX191NjQgZXJyOwoxNDQ3NDogIF9fdTY0IHRyYXBubzsKMTQ0NzQ6ICBfX3U2NCBvbGRt
YXNrOwoxNDQ3NDogIF9fdTY0IGNyMjsKMTQ0NzQ6ICMgMjczICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vc2lnY29udGV4dC5oIgoxNDQ3NDogIF9fdTY0IGZwc3RhdGU7CjE0NDc0OiAgX191
NjQgcmVzZXJ2ZWQxWzhdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTcgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiIDEKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L21zci1pbmRleC5oIiAxCjE0NDc0OiAjIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2Vycm5vLmgiIDEKMTQ0NzQ6ICMgMSAiLi9pbmNs
dWRlL3VhcGkvYXNtLWdlbmVyaWMvZXJybm8uaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2Vycm5vLWJhc2Uu
aCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9lcnJuby5oIiAyCjE0
NDc0OiAjIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vZXJybm8uaCIg
MgoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIgMgoxNDQ3NDogIyAx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdW1hc2suaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiIDEKMTQ0
NzQ6ICMgMTIgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9iaXRtYXAuaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgi
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMQoxNDQ3NDogIyAxMCAiLi9p
bmNsdWRlL2xpbnV4L3N0cmluZy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9z
dHJpbmcuaCIgMQoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICpzdHJuZHVwX3VzZXIoY29uc3QgY2hhciAqLCBsb25nKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkICptZW1kdXBfdXNlcihjb25zdCB2b2lkICosIHNpemVfdCk7CjE0
NDc0OiBleHRlcm4gdm9pZCAqdm1lbWR1cF91c2VyKGNvbnN0IHZvaWQgKiwgc2l6ZV90KTsKMTQ0
NzQ6IGV4dGVybiB2b2lkICptZW1kdXBfdXNlcl9udWwoY29uc3Qgdm9pZCAqLCBzaXplX3QpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vc3RyaW5nLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0cmluZ182NC5oIiAxCjE0NDc0OiAjIDE0
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0cmluZ182NC5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQg
Km1lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGxlbik7CjE0NDc0OiBl
eHRlcm4gdm9pZCAqX19tZW1jcHkodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBs
ZW4pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKm1lbXNldCh2b2lkICpzLCBpbnQgYywg
c2l6ZV90IG4pOwoxNDQ3NDogdm9pZCAqX19tZW1zZXQodm9pZCAqcywgaW50IGMsIHNpemVfdCBu
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQxNih1aW50MTZfdCAqcywgdWlu
dDE2X3Qgdiwgc2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBkMCwgZDE7CjE0NDc0OiAg
YXNtIHZvbGF0aWxlKCJyZXBcblx0IgoxNDQ3NDogICAgICAgICJzdG9zdyIKMTQ0NzQ6ICAgICAg
ICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKMTQ0NzQ6ICAgICAgICA6ICJhIiAodiksICIxIiAo
cyksICIwIiAobikKMTQ0NzQ6ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICByZXR1cm4gczsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQzMih1aW50MzJfdCAq
cywgdWludDMyX3Qgdiwgc2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBkMCwgZDE7CjE0
NDc0OiAgYXNtIHZvbGF0aWxlKCJyZXBcblx0IgoxNDQ3NDogICAgICAgICJzdG9zbCIKMTQ0NzQ6
ICAgICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKMTQ0NzQ6ICAgICAgICA6ICJhIiAodiks
ICIxIiAocyksICIwIiAobikKMTQ0NzQ6ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICByZXR1
cm4gczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQ2NCh1aW50
NjRfdCAqcywgdWludDY0X3Qgdiwgc2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBkMCwg
ZDE7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJyZXBcblx0IgoxNDQ3NDogICAgICAgICJzdG9zcSIK
MTQ0NzQ6ICAgICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKMTQ0NzQ6ICAgICAgICA6ICJh
IiAodiksICIxIiAocyksICIwIiAobikKMTQ0NzQ6ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6
ICByZXR1cm4gczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkICptZW1tb3Zl
KHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6IHZvaWQg
Kl9fbWVtbW92ZSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7CjE0
NDc0OiAKMTQ0NzQ6IGludCBtZW1jbXAoY29uc3Qgdm9pZCAqY3MsIGNvbnN0IHZvaWQgKmN0LCBz
aXplX3QgY291bnQpOwoxNDQ3NDogc2l6ZV90IHN0cmxlbihjb25zdCBjaGFyICpzKTsKMTQ0NzQ6
IGNoYXIgKnN0cmNweShjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMpOwoxNDQ3NDogY2hhciAq
c3RyY2F0KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYyk7CjE0NDc0OiBpbnQgc3RyY21wKGNv
bnN0IGNoYXIgKmNzLCBjb25zdCBjaGFyICpjdCk7CjE0NDc0OiAjIDg2ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3N0cmluZ182NC5oIgoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIHVuc2lnbmVkIGxvbmcgX19tZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29u
c3Qgdm9pZCAqc3JjLAoxNDQ3NDogICBzaXplX3QgY250KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
c3RhdGljX2tleV9mYWxzZSBtY3NhZmVfa2V5OwoxNDQ3NDogIyAxMDUgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vc3RyaW5nXzY0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB1bnNpZ25lZCBs
b25nCjE0NDc0OiBtZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXpl
X3QgY250KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKCh7IGJvb2wgYnJhbmNoOyBpZiAo
X19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKiZtY3NhZmVfa2V5KSwgc3RydWN0
IHN0YXRpY19rZXlfdHJ1ZSkpIGJyYW5jaCA9IGFyY2hfc3RhdGljX2JyYW5jaF9qdW1wKCYoJm1j
c2FmZV9rZXkpLT5rZXksIGZhbHNlKTsgZWxzZSBpZiAoX19idWlsdGluX3R5cGVzX2NvbXBhdGli
bGVfcCh0eXBlb2YoKiZtY3NhZmVfa2V5KSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2UpKSBicmFu
Y2ggPSBhcmNoX3N0YXRpY19icmFuY2goJigmbWNzYWZlX2tleSktPmtleSwgZmFsc2UpOyBlbHNl
IGJyYW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWlsdGluX2V4cGVjdCghIShi
cmFuY2gpLCAwKTsgfSkpCjE0NDc0OiAgIHJldHVybiBfX21lbWNweV9tY3NhZmUoZHN0LCBzcmMs
IGNudCk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogCjE0NDc0OiAgIG1lbWNweShkc3QsIHNyYywgY250
KTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgX19tZW1jcHlfZmx1c2hjYWNoZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywg
c2l6ZV90IGNudCk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgbWVtY3B5X2ZsdXNoY2FjaGUodm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBj
bnQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKGNudCkpIHsKMTQ0
NzQ6ICAgc3dpdGNoIChjbnQpIHsKMTQ0NzQ6ICAgIGNhc2UgNDoKMTQ0NzQ6ICAgICBhc20gKCJt
b3ZudGlsICUxLCAlMCIgOiAiPW0iKCoodTMyICopZHN0KSA6ICJyIigqKHUzMiAqKXNyYykpOwox
NDQ3NDogICAgIHJldHVybjsKMTQ0NzQ6ICAgIGNhc2UgODoKMTQ0NzQ6ICAgICBhc20gKCJtb3Zu
dGlxICUxLCAlMCIgOiAiPW0iKCoodTY0ICopZHN0KSA6ICJyIigqKHU2NCAqKXNyYykpOwoxNDQ3
NDogICAgIHJldHVybjsKMTQ0NzQ6ICAgIGNhc2UgMTY6CjE0NDc0OiAgICAgYXNtICgibW92bnRp
cSAlMSwgJTAiIDogIj1tIigqKHU2NCAqKWRzdCkgOiAiciIoKih1NjQgKilzcmMpKTsKMTQ0NzQ6
ICAgICBhc20gKCJtb3ZudGlxICUxLCAlMCIgOiAiPW0iKCoodTY0ICopKGRzdCArIDgpKSA6ICJy
IigqKHU2NCAqKShzcmMgKyA4KSkpOwoxNDQ3NDogICAgIHJldHVybjsKMTQ0NzQ6ICAgfQoxNDQ3
NDogIH0KMTQ0NzQ6ICBfX21lbWNweV9mbHVzaGNhY2hlKGRzdCwgc3JjLCBjbnQpOwoxNDQ3NDog
fQoxNDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0cmluZy5oIiAyCjE0NDc0OiAj
IDIxICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gY2hhciAqIHN0cmNweShjaGFyICosY29uc3QgY2hhciAqKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gY2hhciAqIHN0cm5jcHkoY2hhciAqLGNvbnN0IGNoYXIgKiwgX19rZXJu
ZWxfc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzaXplX3Qgc3RybGNweShjaGFyICos
IGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzc2l6ZV90IHN0
cnNjcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzc2l6ZV90IHN0cnNjcHlfcGFkKGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNy
Yywgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY2hhciAqIHN0
cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNoYXIgKiBzdHJuY2F0KGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX2tlcm5lbF9zaXplX3QpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzaXplX3Qgc3RybGNhdChjaGFyICosIGNvbnN0
IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
aW50IHN0cmNtcChjb25zdCBjaGFyICosY29uc3QgY2hhciAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IHN0cm5jbXAoY29uc3QgY2hhciAqLGNvbnN0IGNoYXIgKixfX2tlcm5l
bF9zaXplX3QpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgc3RyY2FzZWNtcChj
b25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgc3RybmNhc2VjbXAoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLCBzaXpl
X3Qgbik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIgKiBzdHJjaHIoY29uc3Qg
Y2hhciAqLGludCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIgKiBzdHJjaHJu
dWwoY29uc3QgY2hhciAqLGludCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICogc3RybmNo
cm51bChjb25zdCBjaGFyICosIHNpemVfdCwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNo
YXIgKiBzdHJuY2hyKGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBpbnQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBjaGFyICogc3RycmNocihjb25zdCBjaGFyICosaW50KTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGNoYXIgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgc2tpcF9zcGFjZXMoY29uc3QgY2hhciAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIg
KnN0cmltKGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVz
ZWRfcmVzdWx0X18pKSBjaGFyICpzdHJzdHJpcChjaGFyICpzdHIpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHN0cmltKHN0cik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNoYXIgKiBzdHJzdHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICogc3RybnN0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kiwgc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19rZXJuZWxfc2l6ZV90
IHN0cmxlbihjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2tl
cm5lbF9zaXplX3Qgc3Rybmxlbihjb25zdCBjaGFyICosX19rZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY2hhciAqIHN0cnBicmsoY29uc3QgY2hhciAqLGNvbnN0
IGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNoYXIgKiBzdHJzZXAoY2hh
ciAqKixjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2tlcm5l
bF9zaXplX3Qgc3Ryc3BuKGNvbnN0IGNoYXIgKixjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3RyY3Nwbihjb25zdCBjaGFyICosY29u
c3QgY2hhciAqKTsKMTQ0NzQ6ICMgMTIyICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkICptZW1zZXRfbCh1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHYsCjE0NDc0
OiAgIF9fa2VybmVsX3NpemVfdCBuKQoxNDQ3NDogewoxNDQ3NDogIGlmICg2NCA9PSAzMikKMTQ0
NzQ6ICAgcmV0dXJuIG1lbXNldDMyKCh1aW50MzJfdCAqKXAsIHYsIG4pOwoxNDQ3NDogIGVsc2UK
MTQ0NzQ6ICAgcmV0dXJuIG1lbXNldDY0KCh1aW50NjRfdCAqKXAsIHYsIG4pOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXRfcCh2b2lkICoqcCwgdm9pZCAqdiwgX19rZXJuZWxf
c2l6ZV90IG4pCjE0NDc0OiB7CjE0NDc0OiAgaWYgKDY0ID09IDMyKQoxNDQ3NDogICByZXR1cm4g
bWVtc2V0MzIoKHVpbnQzMl90ICopcCwgKHVpbnRwdHJfdCl2LCBuKTsKMTQ0NzQ6ICBlbHNlCjE0
NDc0OiAgIHJldHVybiBtZW1zZXQ2NCgodWludDY0X3QgKilwLCAodWludHB0cl90KXYsIG4pOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCAqKl9fbWVtY2F0X3Aodm9pZCAqKmEs
IHZvaWQgKipiKTsKMTQ0NzQ6ICMgMTUzICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCjE0NDc0
OiBleHRlcm4gdm9pZCAqIG1lbXNjYW4odm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbWVtY21wKGNvbnN0IHZvaWQgKixjb25zdCB2
b2lkICosX19rZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50
IGJjbXAoY29uc3Qgdm9pZCAqLGNvbnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICogbWVtY2hyKGNvbnN0IHZvaWQgKixpbnQsX19r
ZXJuZWxfc2l6ZV90KTsKMTQ0NzQ6ICMgMTc4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCjE0
NDc0OiB2b2lkICptZW1jaHJfaW52KGNvbnN0IHZvaWQgKnMsIGludCBjLCBzaXplX3Qgbik7CjE0
NDc0OiBjaGFyICpzdHJyZXBsYWNlKGNoYXIgKnMsIGNoYXIgb2xkLCBjaGFyIG5ldyk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGtmcmVlX2NvbnN0KGNvbnN0IHZvaWQgKngpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gY2hhciAqa3N0cmR1cChjb25zdCBjaGFyICpzLCBnZnBfdCBnZnApIF9f
YXR0cmlidXRlX18oKF9fbWFsbG9jX18pKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICprc3Ry
ZHVwX2NvbnN0KGNvbnN0IGNoYXIgKnMsIGdmcF90IGdmcCk7CjE0NDc0OiBleHRlcm4gY2hhciAq
a3N0cm5kdXAoY29uc3QgY2hhciAqcywgc2l6ZV90IGxlbiwgZ2ZwX3QgZ2ZwKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkICprbWVtZHVwKGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGxlbiwgZ2ZwX3QgZ2Zw
KTsKMTQ0NzQ6IGV4dGVybiBjaGFyICprbWVtZHVwX251bChjb25zdCBjaGFyICpzLCBzaXplX3Qg
bGVuLCBnZnBfdCBnZnApOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY2hhciAqKmFyZ3Zfc3BsaXQo
Z2ZwX3QgZ2ZwLCBjb25zdCBjaGFyICpzdHIsIGludCAqYXJnY3ApOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgYXJndl9mcmVlKGNoYXIgKiphcmd2KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgc3lz
ZnNfc3RyZXEoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyKTsKMTQ0NzQ6IGV4dGVybiBp
bnQga3N0cnRvYm9vbChjb25zdCBjaGFyICpzLCBib29sICpyZXMpOwoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN0cnRv
Ym9vbChjb25zdCBjaGFyICpzLCBib29sICpyZXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtz
dHJ0b2Jvb2wocywgcmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IG1hdGNoX3N0cmlu
Zyhjb25zdCBjaGFyICogY29uc3QgKmFycmF5LCBzaXplX3QgbiwgY29uc3QgY2hhciAqc3RyaW5n
KTsKMTQ0NzQ6IGludCBfX3N5c2ZzX21hdGNoX3N0cmluZyhjb25zdCBjaGFyICogY29uc3QgKmFy
cmF5LCBzaXplX3QgbiwgY29uc3QgY2hhciAqcyk7CjE0NDc0OiAjIDIxMiAiLi9pbmNsdWRlL2xp
bnV4L3N0cmluZy5oIgoxNDQ3NDogaW50IHZiaW5fcHJpbnRmKHUzMiAqYmluX2J1Ziwgc2l6ZV90
IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKMTQ0NzQ6IGludCBic3RyX3By
aW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIGNvbnN0IHUzMiAq
YmluX2J1Zik7CjE0NDc0OiBpbnQgYnByaW50Zih1MzIgKmJpbl9idWYsIHNpemVfdCBzaXplLCBj
b25zdCBjaGFyICpmbXQsIC4uLikgX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMs
IDQpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHNzaXplX3QgbWVtb3J5X3JlYWRf
ZnJvbV9idWZmZXIodm9pZCAqdG8sIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zLAoxNDQ3NDog
ICAgICAgICAgICBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgYXZhaWxhYmxlKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IHB0cl90b19oYXNodmFsKGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyAq
aGFzaHZhbF9vdXQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBzdHJzdGFydHMoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpw
cmVmaXgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHN0cm5jbXAoc3RyLCBwcmVmaXgsIHN0cmxl
bihwcmVmaXgpKSA9PSAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzaXplX3QgbWVtd2VpZ2h0
KGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGJ5dGVzKTsKMTQ0NzQ6ICMgMjQ4ICIuL2luY2x1ZGUv
bGludXgvc3RyaW5nLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1lbXplcm9fZXhwbGljaXQodm9pZCAqcywgc2l6
ZV90IGNvdW50KQoxNDQ3NDogewoxNDQ3NDogIG1lbXNldChzLCAwLCBjb3VudCk7CjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDoiciIocykgOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0
IGNoYXIgKmtiYXNlbmFtZShjb25zdCBjaGFyICpwYXRoKQoxNDQ3NDogewoxNDQ3NDogIGNvbnN0
IGNoYXIgKnRhaWwgPSBzdHJyY2hyKHBhdGgsICcvJyk7CjE0NDc0OiAgcmV0dXJuIHRhaWwgPyB0
YWlsICsgMSA6IHBhdGg7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgZm9ydGlmeV9wYW5pYyhjb25zdCBjaGFyICpuYW1lKSBfX2F0dHJpYnV0ZV9f
KChfX25vcmV0dXJuX18pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpOwoxNDQ3NDogdm9pZCBf
X3JlYWRfb3ZlcmZsb3codm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJkZXRlY3RlZCBy
ZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgMXN0IHBhcmFtZXRlciIpKSk7CjE0
NDc0OiB2b2lkIF9fcmVhZF9vdmVyZmxvdzIodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9f
KCJkZXRlY3RlZCByZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgMm5kIHBhcmFt
ZXRlciIpKSk7CjE0NDc0OiB2b2lkIF9fcmVhZF9vdmVyZmxvdzModm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJkZXRlY3RlZCByZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQg
YXMgM3JkIHBhcmFtZXRlciIpKSk7CjE0NDc0OiB2b2lkIF9fd3JpdGVfb3ZlcmZsb3codm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJkZXRlY3RlZCB3cml0ZSBiZXlvbmQgc2l6ZSBvZiBv
YmplY3QgcGFzc2VkIGFzIDFzdCBwYXJhbWV0ZXIiKSkpOwoxNDQ3NDogIyA0NzggIi4vaW5jbHVk
ZS9saW51eC9zdHJpbmcuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWVtY3B5X2FuZF9wYWQodm9pZCAqZGVzdCwg
c2l6ZV90IGRlc3RfbGVuLAoxNDQ3NDogICAgICAgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgY291
bnQsIGludCBwYWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGRlc3RfbGVuID4gY291bnQpIHsKMTQ0
NzQ6ICAgbWVtY3B5KGRlc3QsIHNyYywgY291bnQpOwoxNDQ3NDogICBtZW1zZXQoZGVzdCArIGNv
dW50LCBwYWQsIGRlc3RfbGVuIC0gY291bnQpOwoxNDQ3NDogIH0gZWxzZQoxNDQ3NDogICBtZW1j
cHkoZGVzdCwgc3JjLCBkZXN0X2xlbik7CjE0NDc0OiB9CjE0NDc0OiAjIDUwMyAiLi9pbmNsdWRl
L2xpbnV4L3N0cmluZy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBzaXplX3Qgc3RyX2hhc19wcmVmaXgoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpwcmVm
aXgpCjE0NDc0OiB7CjE0NDc0OiAgc2l6ZV90IGxlbiA9IHN0cmxlbihwcmVmaXgpOwoxNDQ3NDog
IHJldHVybiBzdHJuY21wKHN0ciwgcHJlZml4LCBsZW4pID09IDAgPyBsZW4gOiAwOwoxNDQ3NDog
fQoxNDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIiAyCjE0NDc0OiAjIDExNSAi
Li9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKmJp
dG1hcF9hbGxvYyh1bnNpZ25lZCBpbnQgbmJpdHMsIGdmcF90IGZsYWdzKTsKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBsb25nICpiaXRtYXBfemFsbG9jKHVuc2lnbmVkIGludCBuYml0cywgZ2ZwX3Qg
ZmxhZ3MpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYml0bWFwX2ZyZWUoY29uc3QgdW5zaWduZWQgbG9u
ZyAqYml0bWFwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gaW50IF9fYml0bWFwX2VtcHR5KGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwg
dW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19iaXRtYXBfZnVsbChjb25z
dCB1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRl
cm4gaW50IF9fYml0bWFwX2VxdWFsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0NDc0
OiAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDIsIHVuc2lnbmVkIGludCBuYml0cyk7
CjE0NDc0OiBleHRlcm4gYm9vbCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIF9fYml0bWFwX29y
X2VxdWFsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzEsCjE0NDc0OiAgICAgICAgICBjb25zdCB1
bnNpZ25lZCBsb25nICpzcmMyLAoxNDQ3NDogICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAq
c3JjMywKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4g
dm9pZCBfX2JpdG1hcF9jb21wbGVtZW50KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWdu
ZWQgbG9uZyAqc3JjLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIF9fYml0bWFwX3NoaWZ0X3JpZ2h0KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5z
aWduZWQgbG9uZyAqc3JjLAoxNDQ3NDogICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQg
aW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYml0bWFwX3NoaWZ0X2xlZnQodW5zaWdu
ZWQgbG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCjE0NDc0OiAgICAgdW5zaWdu
ZWQgaW50IHNoaWZ0LCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYml0
bWFwX2N1dCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0
NzQ6ICAgICAgICAgIHVuc2lnbmVkIGludCBmaXJzdCwgdW5zaWduZWQgaW50IGN1dCwKMTQ0NzQ6
ICAgICAgICAgIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4gaW50IF9fYml0bWFw
X2FuZCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0
NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iaXRtYXBfb3IodW5zaWduZWQgbG9uZyAqZHN0LCBjb25z
dCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQgbG9uZyAq
Yml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYml0bWFw
X3hvcih1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0
NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMp
OwoxNDQ3NDogZXh0ZXJuIGludCBfX2JpdG1hcF9hbmRub3QodW5zaWduZWQgbG9uZyAqZHN0LCBj
b25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQgbG9u
ZyAqYml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYml0
bWFwX3JlcGxhY2UodW5zaWduZWQgbG9uZyAqZHN0LAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsCjE0NDc0OiAgICBjb25zdCB1bnNp
Z25lZCBsb25nICptYXNrLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJuIGludCBf
X2JpdG1hcF9pbnRlcnNlY3RzKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCjE0NDc0OiAg
ICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3
NDogZXh0ZXJuIGludCBfX2JpdG1hcF9zdWJzZXQoY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFw
MSwKMTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDIsIHVuc2lnbmVkIGludCBu
Yml0cyk7CjE0NDc0OiBleHRlcm4gaW50IF9fYml0bWFwX3dlaWdodChjb25zdCB1bnNpZ25lZCBs
b25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2Jp
dG1hcF9zZXQodW5zaWduZWQgbG9uZyAqbWFwLCB1bnNpZ25lZCBpbnQgc3RhcnQsIGludCBsZW4p
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iaXRtYXBfY2xlYXIodW5zaWduZWQgbG9uZyAqbWFwLCB1
bnNpZ25lZCBpbnQgc3RhcnQsIGludCBsZW4pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdW5zaWdu
ZWQgbG9uZyBiaXRtYXBfZmluZF9uZXh0X3plcm9fYXJlYV9vZmYodW5zaWduZWQgbG9uZyAqbWFw
LAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKMTQ0NzQ6ICAgICAgICAgICB1
bnNpZ25lZCBsb25nIHN0YXJ0LAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGludCBuciwKMTQ0
NzQ6ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFsaWduX21hc2ssCjE0NDc0OiAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBhbGlnbl9vZmZzZXQpOwoxNDQ3NDogIyAxNzggIi4vaW5jbHVkZS9saW51
eC9iaXRtYXAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcKMTQ0NzQ6IGJpdG1hcF9maW5kX25leHRf
emVyb19hcmVhKHVuc2lnbmVkIGxvbmcgKm1hcCwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcg
c2l6ZSwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCjE0NDc0OiAgICAgICB1bnNp
Z25lZCBpbnQgbnIsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGFsaWduX21hc2spCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhX29mZihtYXAsIHNp
emUsIHN0YXJ0LCBuciwKMTQ0NzQ6ICAgICAgICAgICAgYWxpZ25fbWFzaywgMCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYml0bWFwX3BhcnNlKGNvbnN0IGNoYXIgKmJ1Ziwg
dW5zaWduZWQgaW50IGJ1ZmxlbiwKMTQ0NzQ6ICAgIHVuc2lnbmVkIGxvbmcgKmRzdCwgaW50IG5i
aXRzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYml0bWFwX3BhcnNlX3VzZXIoY29uc3QgY2hhciAqdWJ1
ZiwgdW5zaWduZWQgaW50IHVsZW4sCjE0NDc0OiAgICB1bnNpZ25lZCBsb25nICpkc3QsIGludCBu
Yml0cyk7CjE0NDc0OiBleHRlcm4gaW50IGJpdG1hcF9wYXJzZWxpc3QoY29uc3QgY2hhciAqYnVm
LCB1bnNpZ25lZCBsb25nICptYXNrcCwKMTQ0NzQ6ICAgIGludCBubWFza2JpdHMpOwoxNDQ3NDog
ZXh0ZXJuIGludCBiaXRtYXBfcGFyc2VsaXN0X3VzZXIoY29uc3QgY2hhciAqdWJ1ZiwgdW5zaWdu
ZWQgaW50IHVsZW4sCjE0NDc0OiAgICB1bnNpZ25lZCBsb25nICpkc3QsIGludCBuYml0cyk7CjE0
NDc0OiBleHRlcm4gdm9pZCBiaXRtYXBfcmVtYXAodW5zaWduZWQgbG9uZyAqZHN0LCBjb25zdCB1
bnNpZ25lZCBsb25nICpzcmMsCjE0NDc0OiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm9sZCwgY29u
c3QgdW5zaWduZWQgbG9uZyAqbmV3LCB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJu
IGludCBiaXRtYXBfYml0cmVtYXAoaW50IG9sZGJpdCwKMTQ0NzQ6ICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsIGludCBiaXRzKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGJpdG1hcF9vbnRvKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQg
bG9uZyAqb3JpZywKMTQ0NzQ6ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqcmVsbWFwLCB1bnNpZ25l
ZCBpbnQgYml0cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBiaXRtYXBfZm9sZCh1bnNpZ25lZCBsb25n
ICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm9yaWcsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBz
eiwgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYml0bWFwX2ZpbmRfZnJl
ZV9yZWdpb24odW5zaWduZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgYml0cywgaW50IG9y
ZGVyKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGJpdG1hcF9yZWxlYXNlX3JlZ2lvbih1bnNpZ25lZCBs
b25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBwb3MsIGludCBvcmRlcik7CjE0NDc0OiBleHRlcm4g
aW50IGJpdG1hcF9hbGxvY2F0ZV9yZWdpb24odW5zaWduZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25l
ZCBpbnQgcG9zLCBpbnQgb3JkZXIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBiaXRtYXBfb3JkX3RvX3Bv
cyhjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBvcmQsIHVuc2lnbmVk
IGludCBuYml0cyk7CjE0NDc0OiBleHRlcm4gaW50IGJpdG1hcF9wcmludF90b19wYWdlYnVmKGJv
b2wgbGlzdCwgY2hhciAqYnVmLAoxNDQ3NDogICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1h
c2twLCBpbnQgbm1hc2tiaXRzKTsKMTQ0NzQ6ICMgMjI5ICIuL2luY2x1ZGUvbGludXgvYml0bWFw
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF96ZXJvKHVuc2lnbmVkIGxvbmcgKmRzdCwgdW5zaWduZWQg
aW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCBsZW4gPSAoKChuYml0cykg
KyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkpICogc2l6
ZW9mKHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogIG1lbXNldChkc3QsIDAsIGxlbik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2ZpbGwodW5zaWduZWQgbG9uZyAqZHN0LCB1bnNp
Z25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGxlbiA9ICgoKG5i
aXRzKSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSkg
KiBzaXplb2YodW5zaWduZWQgbG9uZyk7CjE0NDc0OiAgbWVtc2V0KGRzdCwgMHhmZiwgbGVuKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfY29weSh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBuYml0
cykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbGVuID0gKCgobmJpdHMpICsgKChzaXpl
b2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZih1bnNp
Z25lZCBsb25nKTsKMTQ0NzQ6ICBtZW1jcHkoZHN0LCBzcmMsIGxlbik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2NvcHlfY2xlYXJf
dGFpbCh1bnNpZ25lZCBsb25nICpkc3QsCjE0NDc0OiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNy
YywgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF9jb3B5KGRzdCwg
c3JjLCBuYml0cyk7CjE0NDc0OiAgaWYgKG5iaXRzICUgNjQpCjE0NDc0OiAgIGRzdFtuYml0cyAv
IDY0XSAmPSAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZv
aWQgYml0bWFwX2Zyb21fYXJyMzIodW5zaWduZWQgbG9uZyAqYml0bWFwLCBjb25zdCB1MzIgKmJ1
ZiwKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBpbnQgbmJpdHMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
Yml0bWFwX3RvX2FycjMyKHUzMiAqYnVmLCBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAsCjE0
NDc0OiAgICAgICAgdW5zaWduZWQgaW50IG5iaXRzKTsKMTQ0NzQ6ICMgMjc3ICIuL2luY2x1ZGUv
bGludXgvYml0bWFwLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYml0bWFwX2FuZCh1bnNpZ25lZCBsb25nICpkc3Qs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzEsCjE0NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25n
ICpzcmMyLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKChfX2J1aWx0
aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCjE0
NDc0OiAgIHJldHVybiAoKmRzdCA9ICpzcmMxICYgKnNyYzIgJiAofjBVTCA+PiAoLShuYml0cykg
JiAoNjQgLSAxKSkpKSAhPSAwOwoxNDQ3NDogIHJldHVybiBfX2JpdG1hcF9hbmQoZHN0LCBzcmMx
LCBzcmMyLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX29yKHVu
c2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0NzQ6ICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgKnNyYzIsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0
NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYm
IChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgKmRzdCA9ICpzcmMxIHwgKnNyYzI7CjE0NDc0OiAgZWxz
ZQoxNDQ3NDogICBfX2JpdG1hcF9vcihkc3QsIHNyYzEsIHNyYzIsIG5iaXRzKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfeG9yKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3Qg
dW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzIs
IHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25z
dGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAg
KmRzdCA9ICpzcmMxIF4gKnNyYzI7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBfX2JpdG1hcF94b3Io
ZHN0LCBzcmMxLCBzcmMyLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfYW5kbm90KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwK
MTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzIsIHVuc2lnbmVkIGludCBuYml0cykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJp
dHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgcmV0dXJuICgqZHN0ID0gKnNyYzEg
JiB+KCpzcmMyKSAmICh+MFVMID4+ICgtKG5iaXRzKSAmICg2NCAtIDEpKSkpICE9IDA7CjE0NDc0
OiAgcmV0dXJuIF9fYml0bWFwX2FuZG5vdChkc3QsIHNyYzEsIHNyYzIsIG5iaXRzKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfY29tcGxlbWVudCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBuYml0
cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAo
bmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgKmRzdCA9IH4oKnNyYyk7CjE0
NDc0OiAgZWxzZQoxNDQ3NDogICBfX2JpdG1hcF9jb21wbGVtZW50KGRzdCwgc3JjLCBuYml0cyk7
CjE0NDc0OiB9CjE0NDc0OiAjIDMyNyAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGJpdG1hcF9lcXVhbChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMxLAoxNDQ3NDogICAgY29u
c3QgdW5zaWduZWQgbG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3
NDogIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AobmJpdHMpICYmIChuYml0cykgPD0gNjQgJiYg
KG5iaXRzKSA+IDApKQoxNDQ3NDogICByZXR1cm4gISgoKnNyYzEgXiAqc3JjMikgJiAofjBVTCA+
PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKTsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2NvbnN0YW50
X3AobmJpdHMgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgICAoKChuYml0cykgJiAoKHR5cGVvZihu
Yml0cykpKDgpIC0gMSkpID09IDApKQoxNDQ3NDogICByZXR1cm4gIW1lbWNtcChzcmMxLCBzcmMy
LCBuYml0cyAvIDgpOwoxNDQ3NDogIHJldHVybiBfX2JpdG1hcF9lcXVhbChzcmMxLCBzcmMyLCBu
Yml0cyk7CjE0NDc0OiB9CjE0NDc0OiAjIDM0NyAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBiaXRtYXBfb3JfZXF1YWwoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0
NzQ6ICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMyLAoxNDQ3NDogICAgICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgKnNyYzMsCjE0NDc0OiAgICAgICAgdW5zaWduZWQgaW50IG5iaXRzKQox
NDQ3NDogewoxNDQ3NDogIGlmICghKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJp
dHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgcmV0dXJuIF9fYml0bWFwX29yX2Vx
dWFsKHNyYzEsIHNyYzIsIHNyYzMsIG5iaXRzKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAhKCgo
KnNyYzEgfCAqc3JjMikgXiAqc3JjMykgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1hcF9pbnRlcnNlY3RzKGNvbnN0IHVu
c2lnbmVkIGxvbmcgKnNyYzEsCjE0NDc0OiAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMyLCB1
bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKChfX2J1aWx0aW5fY29uc3Rh
bnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCjE0NDc0OiAgIHJl
dHVybiAoKCpzcmMxICYgKnNyYzIpICYgKH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSkg
IT0gMDsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiBfX2JpdG1hcF9pbnRlcnNlY3RzKHNy
YzEsIHNyYzIsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1hcF9zdWJz
ZXQoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKMTQ0NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgKnNyYzIsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVp
bHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkK
MTQ0NzQ6ICAgcmV0dXJuICEgKCgqc3JjMSAmIH4oKnNyYzIpKSAmICh+MFVMID4+ICgtKG5iaXRz
KSAmICg2NCAtIDEpKSkpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIF9fYml0bWFwX3N1
YnNldChzcmMxLCBzcmMyLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfZW1wdHkoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCB1bnNpZ25lZCBuYml0cykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9
IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgcmV0dXJuICEgKCpzcmMgJiAofjBVTCA+PiAo
LShuYml0cykgJiAoNjQgLSAxKSkpKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBmaW5kX2ZpcnN0
X2JpdChzcmMsIG5iaXRzKSA9PSBuYml0czsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJp
dG1hcF9mdWxsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywgdW5zaWduZWQgaW50IG5iaXRzKQox
NDQ3NDogewoxNDQ3NDogIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AobmJpdHMpICYmIChuYml0
cykgPD0gNjQgJiYgKG5iaXRzKSA+IDApKQoxNDQ3NDogICByZXR1cm4gISAofigqc3JjKSAmICh+
MFVMID4+ICgtKG5iaXRzKSAmICg2NCAtIDEpKSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGZp
bmRfZmlyc3RfemVyb19iaXQoc3JjLCBuYml0cykgPT0gbmJpdHM7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGJpdG1hcF93ZWln
aHQoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7
CjE0NDc0OiAgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2
NCAmJiAobmJpdHMpID4gMCkpCjE0NDc0OiAgIHJldHVybiBod2VpZ2h0X2xvbmcoKnNyYyAmICh+
MFVMID4+ICgtKG5iaXRzKSAmICg2NCAtIDEpKSkpOwoxNDQ3NDogIHJldHVybiBfX2JpdG1hcF93
ZWlnaHQoc3JjLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBiaXRtYXBfc2V0KHVuc2lnbmVkIGxvbmcgKm1hcCwg
dW5zaWduZWQgaW50IHN0YXJ0LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7
CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiBuYml0cyA9PSAxKQox
NDQ3NDogICBfX3NldF9iaXQoc3RhcnQsIG1hcCk7CjE0NDc0OiAgZWxzZSBpZiAoX19idWlsdGlu
X2NvbnN0YW50X3Aoc3RhcnQgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgoc3RhcnQpICYgKCh0
eXBlb2Yoc3RhcnQpKSg4KSAtIDEpKSA9PSAwKSAmJgoxNDQ3NDogICAgX19idWlsdGluX2NvbnN0
YW50X3AobmJpdHMgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgobmJpdHMpICYgKCh0eXBlb2Yo
bmJpdHMpKSg4KSAtIDEpKSA9PSAwKSkKMTQ0NzQ6ICAgbWVtc2V0KChjaGFyICopbWFwICsgc3Rh
cnQgLyA4LCAweGZmLCBuYml0cyAvIDgpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19iaXRtYXBf
c2V0KG1hcCwgc3RhcnQsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGJpdG1hcF9jbGVhcih1bnNpZ25lZCBsb25n
ICptYXAsIHVuc2lnbmVkIGludCBzdGFydCwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IG5iaXRzKQox
NDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgbmJpdHMg
PT0gMSkKMTQ0NzQ6ICAgX19jbGVhcl9iaXQoc3RhcnQsIG1hcCk7CjE0NDc0OiAgZWxzZSBpZiAo
X19idWlsdGluX2NvbnN0YW50X3Aoc3RhcnQgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgoc3Rh
cnQpICYgKCh0eXBlb2Yoc3RhcnQpKSg4KSAtIDEpKSA9PSAwKSAmJgoxNDQ3NDogICAgX19idWls
dGluX2NvbnN0YW50X3AobmJpdHMgJiAoOCAtIDEpKSAmJgoxNDQ3NDogICAgKCgobmJpdHMpICYg
KCh0eXBlb2YobmJpdHMpKSg4KSAtIDEpKSA9PSAwKSkKMTQ0NzQ6ICAgbWVtc2V0KChjaGFyICop
bWFwICsgc3RhcnQgLyA4LCAwLCBuYml0cyAvIDgpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19i
aXRtYXBfY2xlYXIobWFwLCBzdGFydCwgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGJpdG1hcF9zaGlmdF9yaWdodCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVk
IGxvbmcgKnNyYywKMTQ0NzQ6ICAgICB1bnNpZ25lZCBpbnQgc2hpZnQsIHVuc2lnbmVkIGludCBu
Yml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAm
JiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0NzQ6ICAgKmRzdCA9ICgqc3JjICYg
KH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSkgPj4gc2hpZnQ7CjE0NDc0OiAgZWxzZQox
NDQ3NDogICBfX2JpdG1hcF9zaGlmdF9yaWdodChkc3QsIHNyYywgc2hpZnQsIG5iaXRzKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25n
ICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKMTQ0NzQ6ICAgICB1bnNpZ25lZCBpbnQg
c2hpZnQsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRp
bl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKMTQ0
NzQ6ICAgKmRzdCA9ICgqc3JjIDw8IHNoaWZ0KSAmICh+MFVMID4+ICgtKG5iaXRzKSAmICg2NCAt
IDEpKSk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBfX2JpdG1hcF9zaGlmdF9sZWZ0KGRzdCwgc3Jj
LCBzaGlmdCwgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9yZXBs
YWNlKHVuc2lnbmVkIGxvbmcgKmRzdCwKMTQ0NzQ6ICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcg
Km9sZCwKMTQ0NzQ6ICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm5ldywKMTQ0NzQ6ICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1hc2ssCjE0NDc0OiAgICAgICB1bnNpZ25lZCBpbnQgbmJp
dHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYg
KG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCjE0NDc0OiAgICpkc3QgPSAoKm9sZCAmIH4o
Km1hc2spKSB8ICgqbmV3ICYgKm1hc2spOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19iaXRtYXBf
cmVwbGFjZShkc3QsIG9sZCwgbmV3LCBtYXNrLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYml0bWFwX25leHRfY2xlYXJfcmVnaW9uKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwK
MTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGludCAqcnMsIHVuc2lnbmVkIGludCAqcmUsCjE0NDc0
OiAgICAgICAgICB1bnNpZ25lZCBpbnQgZW5kKQoxNDQ3NDogewoxNDQ3NDogICpycyA9IGZpbmRf
bmV4dF96ZXJvX2JpdChiaXRtYXAsIGVuZCwgKnJzKTsKMTQ0NzQ6ICAqcmUgPSBmaW5kX25leHRf
Yml0KGJpdG1hcCwgZW5kLCAqcnMgKyAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBi
aXRtYXBfbmV4dF9zZXRfcmVnaW9uKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwKMTQ0NzQ6ICAgICAg
ICB1bnNpZ25lZCBpbnQgKnJzLCB1bnNpZ25lZCBpbnQgKnJlLAoxNDQ3NDogICAgICAgIHVuc2ln
bmVkIGludCBlbmQpCjE0NDc0OiB7CjE0NDc0OiAgKnJzID0gZmluZF9uZXh0X2JpdChiaXRtYXAs
IGVuZCwgKnJzKTsKMTQ0NzQ6ICAqcmUgPSBmaW5kX25leHRfemVyb19iaXQoYml0bWFwLCBlbmQs
ICpycyArIDEpOwoxNDQ3NDogfQoxNDQ3NDogIyA1MzUgIi4vaW5jbHVkZS9saW51eC9iaXRtYXAu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYml0bWFwX2Zyb21fdTY0KHVuc2lnbmVkIGxvbmcgKmRzdCwgdTY0IG1h
c2spCjE0NDc0OiB7CjE0NDc0OiAgZHN0WzBdID0gbWFzayAmICh+MFVMKTsKMTQ0NzQ6IAoxNDQ3
NDogIGlmIChzaXplb2YobWFzaykgPiBzaXplb2YodW5zaWduZWQgbG9uZykpCjE0NDc0OiAgIGRz
dFsxXSA9IG1hc2sgPj4gMzI7CjE0NDc0OiB9CjE0NDc0OiAjIDU1MSAiLi9pbmNsdWRlL2xpbnV4
L2JpdG1hcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBiaXRtYXBfZ2V0X3ZhbHVlOChjb25zdCB1
bnNpZ25lZCBsb25nICptYXAsCjE0NDc0OiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQp
CjE0NDc0OiB7CjE0NDc0OiAgY29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CjE0
NDc0OiAgY29uc3QgdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBzdGFydCAlIDY0OwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIChtYXBbaW5kZXhdID4+IG9mZnNldCkgJiAweEZGOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGJpdG1hcF9zZXRfdmFsdWU4KHVuc2lnbmVkIGxvbmcgKm1hcCwgdW5zaWduZWQgbG9u
ZyB2YWx1ZSwKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQpCjE0NDc0OiB7CjE0
NDc0OiAgY29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CjE0NDc0OiAgY29uc3Qg
dW5zaWduZWQgbG9uZyBvZmZzZXQgPSBzdGFydCAlIDY0OwoxNDQ3NDogCjE0NDc0OiAgbWFwW2lu
ZGV4XSAmPSB+KDB4RkZVTCA8PCBvZmZzZXQpOwoxNDQ3NDogIG1hcFtpbmRleF0gfD0gdmFsdWUg
PDwgb2Zmc2V0OwoxNDQ3NDogfQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2su
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVj
dCBjcHVtYXNrIHsgdW5zaWduZWQgbG9uZyBiaXRzWygoKDgpICsgKChzaXplb2YobG9uZykgKiA4
KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKV07IH0gY3B1bWFza190OwoxNDQ3NDogIyAz
OSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQg
bnJfY3B1X2lkczsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0
OiBleHRlcm4gc3RydWN0IGNwdW1hc2sgX19jcHVfcG9zc2libGVfbWFzazsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgY3B1bWFzayBfX2NwdV9vbmxpbmVfbWFzazsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
Y3B1bWFzayBfX2NwdV9wcmVzZW50X21hc2s7CjE0NDc0OiBleHRlcm4gc3RydWN0IGNwdW1hc2sg
X19jcHVfYWN0aXZlX21hc2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGF0b21pY190IF9fbnVtX29ubGluZV9jcHVzOwoxNDQ3NDogIyAxMTAg
Ii4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgbnVtX29ubGlu
ZV9jcHVzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19yZWFkKCZfX251bV9v
bmxpbmVfY3B1cyk7CjE0NDc0OiB9CjE0NDc0OiAjIDEzMiAiLi9pbmNsdWRlL2xpbnV4L2NwdW1h
c2suaCIKMTQ0NzQ6IGV4dGVybiBjcHVtYXNrX3QgY3B1c19ib290ZWRfb25jZV9tYXNrOwoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGNwdV9tYXhfYml0c193YXJuKHVuc2lnbmVkIGludCBjcHUsIHVuc2ln
bmVkIGludCBiaXRzKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVtYXNrX2NoZWNrKHVuc2lnbmVk
IGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgY3B1X21heF9iaXRzX3dhcm4oY3B1LCAoKHVuc2ln
bmVkIGludCk4KSk7CjE0NDc0OiAgcmV0dXJuIGNwdTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjEyICIu
L2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdW1hc2tfZmly
c3QoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZp
bmRfZmlyc3RfYml0KCgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGludCBjcHVtYXNrX2xhc3QoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNy
Y3ApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZpbmRfbGFzdF9iaXQoKChzcmNwKS0+Yml0cyks
ICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQgaW50
IGNwdW1hc2tfbmV4dChpbnQgbiwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApOwoxNDQ3NDog
IyAyMzcgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgY3B1
bWFza19uZXh0X3plcm8oaW50IG4sIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQoxNDQ3NDog
ewoxNDQ3NDogCjE0NDc0OiAgaWYgKG4gIT0gLTEpCjE0NDc0OiAgIGNwdW1hc2tfY2hlY2sobik7
CjE0NDc0OiAgcmV0dXJuIGZpbmRfbmV4dF96ZXJvX2JpdCgoKHNyY3ApLT5iaXRzKSwgKCh1bnNp
Z25lZCBpbnQpOCksIG4rMSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGludCBjcHVtYXNrX25l
eHRfYW5kKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqLCBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqKTsKMTQ0NzQ6IGludCBjcHVtYXNrX2FueV9idXQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1h
c2ssIHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogdW5zaWduZWQgaW50IGNwdW1hc2tfbG9jYWxf
c3ByZWFkKHVuc2lnbmVkIGludCBpLCBpbnQgbm9kZSk7CjE0NDc0OiAjIDI3MyAiLi9pbmNsdWRl
L2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IGV4dGVybiBpbnQgY3B1bWFza19uZXh0X3dyYXAoaW50
IG4sIGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCBpbnQgc3RhcnQsIGJvb2wgd3JhcCk7CjE0
NDc0OiAjIDMyNSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFz
a19zZXRfY3B1KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDog
ewoxNDQ3NDogIHNldF9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKGRzdHApLT5iaXRzKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19jcHVtYXNrX3NldF9jcHUodW5zaWduZWQgaW50
IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRzdHApCjE0NDc0OiB7CjE0NDc0OiAgX19zZXRfYml0KGNw
dW1hc2tfY2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNw
dW1hc2tfY2xlYXJfY3B1KGludCBjcHUsIHN0cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewox
NDQ3NDogIGNsZWFyX2JpdChjcHVtYXNrX2NoZWNrKGNwdSksICgoZHN0cCktPmJpdHMpKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NwdW1hc2tfY2xlYXJfY3B1KGludCBjcHUsIHN0
cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewoxNDQ3NDogIF9fY2xlYXJfYml0KGNwdW1hc2tf
Y2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwoxNDQ3NDogfQoxNDQ3NDogIyAzNTggIi4vaW5j
bHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza190ZXN0X2NwdShpbnQgY3B1
LCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1bWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
dGVzdF9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKChjcHVtYXNrKSktPmJpdHMpKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMzcyICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNw
dW1hc2tfdGVzdF9hbmRfc2V0X2NwdShpbnQgY3B1LCBzdHJ1Y3QgY3B1bWFzayAqY3B1bWFzaykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChjcHVtYXNrX2NoZWNrKGNw
dSksICgoY3B1bWFzayktPmJpdHMpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg2ICIuL2luY2x1ZGUv
bGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdW1hc2tfdGVzdF9hbmRfY2xlYXJfY3B1KGlu
dCBjcHUsIHN0cnVjdCBjcHVtYXNrICpjcHVtYXNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0
ZXN0X2FuZF9jbGVhcl9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKGNwdW1hc2spLT5iaXRzKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBjcHVtYXNrX3NldGFsbChzdHJ1Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBiaXRtYXBfZmlsbCgoKGRzdHApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1
bWFza19jbGVhcihzdHJ1Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBf
emVybygoKGRzdHApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDog
IyA0MTcgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19hbmQo
c3RydWN0IGNwdW1hc2sgKmRzdHAsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1h
c2sgKnNyYzFwLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX2FuZCgoKGRzdHApLT5iaXRzKSwgKChzcmMx
cCktPmJpdHMpLAoxNDQ3NDogICAgICAgICAgICAoKHNyYzJwKS0+Yml0cyksICgodW5zaWduZWQg
aW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX29yKHN0cnVjdCBjcHVtYXNrICpk
c3RwLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICAgICBjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX29yKCgoZHN0cCkt
PmJpdHMpLCAoKHNyYzFwKS0+Yml0cyksCjE0NDc0OiAgICAgICAgICAgKChzcmMycCktPmJpdHMp
LCAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza194b3Ioc3Ry
dWN0IGNwdW1hc2sgKmRzdHAsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sg
KnNyYzFwLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfeG9yKCgoZHN0cCktPmJpdHMpLCAoKHNyYzFwKS0+Yml0cyks
CjE0NDc0OiAgICAgICAgICAgICgoc3JjMnApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwox
NDQ3NDogfQoxNDQ3NDogIyA0NjAgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgY3B1bWFza19hbmRub3Qoc3RydWN0IGNwdW1hc2sgKmRzdHAsCjE0NDc0OiAgICAgICBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9hbmRub3QoKChkc3RwKS0+
Yml0cyksICgoc3JjMXApLT5iaXRzKSwKMTQ0NzQ6ICAgICAgICAoKHNyYzJwKS0+Yml0cyksICgo
dW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza19jb21wbGVtZW50KHN0cnVjdCBj
cHVtYXNrICpkc3RwLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNw
KQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF9jb21wbGVtZW50KCgoZHN0cCktPmJpdHMpLCAoKHNy
Y3ApLT5iaXRzKSwKMTQ0NzQ6ICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBjcHVtYXNrX2VxdWFsKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMxcCwKMTQ0NzQ6ICAg
ICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJp
dG1hcF9lcXVhbCgoKHNyYzFwKS0+Yml0cyksICgoc3JjMnApLT5iaXRzKSwKMTQ0NzQ6ICAgICAg
ICAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgY3B1bWFza19vcl9lcXVh
bChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVj
dCBjcHVtYXNrICpzcmMycCwKMTQ0NzQ6ICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNy
YzNwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBfb3JfZXF1YWwoKChzcmMxcCktPmJp
dHMpLCAoKHNyYzJwKS0+Yml0cyksCjE0NDc0OiAgICAgICAgICAgKChzcmMzcCktPmJpdHMpLCAo
KHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tfaW50ZXJzZWN0cyhjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqc3JjMXAsCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9pbnRlcnNlY3RzKCgoc3Jj
MXApLT5iaXRzKSwgKChzcmMycCktPmJpdHMpLAoxNDQ3NDogICAgICAgICAgICAgKCh1bnNpZ25l
ZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDogIyA1MjUgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNr
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgY3B1bWFza19zdWJzZXQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFw
LAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGJpdG1hcF9zdWJzZXQoKChzcmMxcCktPmJpdHMpLCAoKHNyYzJwKS0+Yml0cyks
CjE0NDc0OiAgICAgICAgICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tfZW1wdHkoY29u
c3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9l
bXB0eSgoKHNyY3ApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgY3B1bWFza19mdWxs
KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRt
YXBfZnVsbCgoKHNyY3ApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBj
cHVtYXNrX3dlaWdodChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gYml0bWFwX3dlaWdodCgoKHNyY3ApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNwdW1hc2tfc2hpZnRfcmlnaHQoc3RydWN0IGNwdW1hc2sg
KmRzdHAsCjE0NDc0OiAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwLCBpbnQg
bikKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfc2hpZnRfcmlnaHQoKChkc3RwKS0+Yml0cyksICgo
c3JjcCktPmJpdHMpLCBuLAoxNDQ3NDogICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGNwdW1hc2tfc2hpZnRfbGVmdChzdHJ1Y3QgY3B1bWFzayAqZHN0
cCwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCwgaW50IG4pCjE0
NDc0OiB7CjE0NDc0OiAgYml0bWFwX3NoaWZ0X2xlZnQoKChkc3RwKS0+Yml0cyksICgoc3JjcCkt
PmJpdHMpLCBuLAoxNDQ3NDogICAgICAgICAgICAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGNwdW1hc2tfY29weShzdHJ1Y3QgY3B1bWFzayAqZHN0cCwKMTQ0NzQ6ICAgICBjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqc3JjcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfY29weSgoKGRzdHAp
LT5iaXRzKSwgKChzcmNwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgNjM2ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdW1hc2tf
cGFyc2VfdXNlcihjb25zdCBjaGFyICpidWYsIGludCBsZW4sCjE0NDc0OiAgICAgICAgICBzdHJ1
Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlX3Vz
ZXIoYnVmLCBsZW4sICgoZHN0cCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7CjE0NDc0OiB9
CjE0NDc0OiAjIDY1MCAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBjcHVt
YXNrX3BhcnNlbGlzdF91c2VyKGNvbnN0IGNoYXIgKmJ1ZiwgaW50IGxlbiwKMTQ0NzQ6ICAgICAg
ICAgIHN0cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBf
cGFyc2VsaXN0X3VzZXIoYnVmLCBsZW4sICgoZHN0cCktPmJpdHMpLAoxNDQ3NDogICAgICAgICAg
KCh1bnNpZ25lZCBpbnQpOCkpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NjQgIi4vaW5jbHVkZS9saW51
eC9jcHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19wYXJzZShjb25zdCBjaGFyICpidWYsIHN0
cnVjdCBjcHVtYXNrICpkc3RwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBfcGFyc2Uo
YnVmLCAofjBVKSwgKChkc3RwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgNjc2ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdWxp
c3RfcGFyc2UoY29uc3QgY2hhciAqYnVmLCBzdHJ1Y3QgY3B1bWFzayAqZHN0cCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlbGlzdChidWYsICgoZHN0cCktPmJpdHMpLCAoKHVu
c2lnbmVkIGludCk4KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGludCBjcHVtYXNrX3NpemUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gKCgoKCh1bnNpZ25lZCBpbnQpOCkpICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAv
ICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZihsb25nKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
NzQ5ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgY3B1
bWFzayBjcHVtYXNrX3Zhcl90WzFdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGFsbG9jX2NwdW1hc2tfdmFyKGNwdW1hc2tfdmFyX3QgKm1hc2ssIGdmcF90IGZs
YWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGFsbG9jX2NwdW1hc2tfdmFyX25vZGUoY3B1bWFza192YXJfdCAqbWFzaywgZ2ZwX3Qg
ZmxhZ3MsCjE0NDc0OiAgICAgICAgaW50IG5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRy
dWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgemFsbG9jX2NwdW1hc2tfdmFyKGNwdW1h
c2tfdmFyX3QgKm1hc2ssIGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGNwdW1hc2tfY2xl
YXIoKm1hc2spOwoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHphbGxvY19jcHVtYXNrX3Zhcl9ub2RlKGNwdW1hc2tfdmFyX3QgKm1hc2ssIGdmcF90IGZs
YWdzLAoxNDQ3NDogICAgICAgIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogIGNwdW1hc2tfY2xl
YXIoKm1hc2spOwoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGFsbG9jX2Jvb3RtZW1fY3B1bWFza192YXIoY3B1bWFza192YXJfdCAqbWFzaykKMTQ0NzQ6
IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmcmVlX2NwdW1hc2tfdmFyKGNwdW1hc2tf
dmFyX3QgbWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmcmVlX2Jv
b3RtZW1fY3B1bWFza192YXIoY3B1bWFza192YXJfdCBtYXNrKQoxNDQ3NDogewoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tfYXZhaWxhYmxlKGNwdW1hc2tfdmFyX3QgbWFzaykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGxvbmcgY3B1X2FsbF9i
aXRzWygoKDgpICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICog
OCkpKV07CjE0NDc0OiAjIDgwOSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0NzQ6IHZv
aWQgaW5pdF9jcHVfcHJlc2VudChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKMTQ0NzQ6IHZv
aWQgaW5pdF9jcHVfcG9zc2libGUoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYyk7CjE0NDc0OiB2
b2lkIGluaXRfY3B1X29ubGluZShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCByZXNldF9jcHVfcG9zc2libGVfbWFzayh2b2lkKQoxNDQ3NDogewoxNDQ3NDog
IGJpdG1hcF96ZXJvKCgoJl9fY3B1X3Bvc3NpYmxlX21hc2spLT5iaXRzKSwgOCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IHNldF9jcHVfcG9zc2libGUodW5zaWduZWQgaW50
IGNwdSwgYm9vbCBwb3NzaWJsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAocG9zc2libGUpCjE0NDc0
OiAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZfX2NwdV9wb3NzaWJsZV9tYXNrKTsKMTQ0NzQ6ICBl
bHNlCjE0NDc0OiAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3Bvc3NpYmxlX21hc2sp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBzZXRfY3B1X3ByZXNlbnQodW5z
aWduZWQgaW50IGNwdSwgYm9vbCBwcmVzZW50KQoxNDQ3NDogewoxNDQ3NDogIGlmIChwcmVzZW50
KQoxNDQ3NDogICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmX19jcHVfcHJlc2VudF9tYXNrKTsKMTQ0
NzQ6ICBlbHNlCjE0NDc0OiAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3ByZXNlbnRf
bWFzayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2V0X2NwdV9vbmxpbmUodW5zaWdu
ZWQgaW50IGNwdSwgYm9vbCBvbmxpbmUpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBzZXRf
Y3B1X2FjdGl2ZSh1bnNpZ25lZCBpbnQgY3B1LCBib29sIGFjdGl2ZSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAoYWN0aXZlKQoxNDQ3NDogICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmX19jcHVfYWN0aXZl
X21hc2spOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmX19j
cHVfYWN0aXZlX21hc2spOwoxNDQ3NDogfQoxNDQ3NDogIyA4NjIgIi4vaW5jbHVkZS9saW51eC9j
cHVtYXNrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgX19jaGVja19pc19iaXRtYXAoY29uc3QgdW5zaWduZWQgbG9u
ZyAqYml0bWFwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3NDogIyA4
NzQgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCjE0NDc0OiBleHRlcm4gY29uc3QgdW5zaWdu
ZWQgbG9uZwoxNDQ3NDogIGNwdV9iaXRfYml0bWFwWzY0ICsxXVsoKCg4KSArICgoc2l6ZW9mKGxv
bmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSldOwoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBj
b25zdCBzdHJ1Y3QgY3B1bWFzayAqZ2V0X2NwdV9tYXNrKHVuc2lnbmVkIGludCBjcHUpCjE0NDc0
OiB7CjE0NDc0OiAgY29uc3QgdW5zaWduZWQgbG9uZyAqcCA9IGNwdV9iaXRfYml0bWFwWzEgKyBj
cHUgJSA2NF07CjE0NDc0OiAgcCAtPSBjcHUgLyA2NDsKMTQ0NzQ6ICByZXR1cm4gKChzdHJ1Y3Qg
Y3B1bWFzayAqKSgxID8gKHApIDogKHZvaWQgKilzaXplb2YoX19jaGVja19pc19iaXRtYXAocCkp
KSk7CjE0NDc0OiB9CjE0NDc0OiAjIDkxMSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHNzaXplX3QKMTQ0NzQ6IGNwdW1hcF9wcmludF90b19wYWdlYnVmKGJvb2wgbGlzdCwgY2hh
ciAqYnVmLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYml0bWFwX3ByaW50X3RvX3BhZ2VidWYobGlzdCwgYnVmLCAoKG1hc2spLT5iaXRzKSwKMTQ0
NzQ6ICAgICAgICAgICBucl9jcHVfaWRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9jcHVtYXNrLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNwdW1hc2tf
dmFyX3QgY3B1X2NhbGxpbl9tYXNrOwoxNDQ3NDogZXh0ZXJuIGNwdW1hc2tfdmFyX3QgY3B1X2Nh
bGxvdXRfbWFzazsKMTQ0NzQ6IGV4dGVybiBjcHVtYXNrX3Zhcl90IGNwdV9pbml0aWFsaXplZF9t
YXNrOwoxNDQ3NDogZXh0ZXJuIGNwdW1hc2tfdmFyX3QgY3B1X3NpYmxpbmdfc2V0dXBfbWFzazsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0dXBfY3B1X2xvY2FsX21hc2tzKHZvaWQpOwox
NDQ3NDogIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIgMgoxNDQ3NDogIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vbXNyLmgiIDEKMTQ0NzQ6ICMgMTMgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vbXNyLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1zciB7CjE0NDc0
OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdTMyIGw7CjE0NDc0OiAgICB1
MzIgaDsKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICAgdTY0IHE7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtc3JfaW5mbyB7CjE0NDc0OiAgdTMyIG1zcl9ubzsKMTQ0NzQ6
ICBzdHJ1Y3QgbXNyIHJlZzsKMTQ0NzQ6ICBzdHJ1Y3QgbXNyICptc3JzOwoxNDQ3NDogIGludCBl
cnI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXNyX3JlZ3NfaW5mbyB7CjE0NDc0
OiAgdTMyICpyZWdzOwoxNDQ3NDogIGludCBlcnI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3Qgc2F2ZWRfbXNyIHsKMTQ0NzQ6ICBib29sIHZhbGlkOwoxNDQ3NDogIHN0cnVjdCBtc3Jf
aW5mbyBpbmZvOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNhdmVkX21zcnMgewox
NDQ3NDogIHVuc2lnbmVkIGludCBudW07CjE0NDc0OiAgc3RydWN0IHNhdmVkX21zciAqYXJyYXk7
CjE0NDc0OiB9OwoxNDQ3NDogIyA2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKMTQ0
NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQtZGVmcy5oIiAxCjE0NDc0OiAjIDEy
ICIuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC1kZWZzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9zdGF0aWNfa2V5LmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC90cmFj
ZXBvaW50LWRlZnMuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdHJhY2VfcHJpbnRfZmxhZ3Mg
ewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbWFzazsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRyYWNlX3ByaW50X2ZsYWdzX3U2NCB7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIG1hc2s7CjE0NDc0OiAgY29uc3QgY2hhciAqbmFtZTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFjZXBvaW50X2Z1bmMgewoxNDQ3NDog
IHZvaWQgKmZ1bmM7CjE0NDc0OiAgdm9pZCAqZGF0YTsKMTQ0NzQ6ICBpbnQgcHJpbzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFjZXBvaW50IHsKMTQ0NzQ6ICBjb25zdCBjaGFy
ICpuYW1lOwoxNDQ3NDogIHN0cnVjdCBzdGF0aWNfa2V5IGtleTsKMTQ0NzQ6ICBpbnQgKCpyZWdm
dW5jKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqdW5yZWdmdW5jKSh2b2lkKTsKMTQ0NzQ6ICBzdHJ1
Y3QgdHJhY2Vwb2ludF9mdW5jICpmdW5jczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogdHlwZWRlZiBjb25zdCBpbnQgdHJhY2Vwb2ludF9wdHJfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwZl9yYXdfZXZlbnRfbWFwIHsKMTQ0NzQ6ICBz
dHJ1Y3QgdHJhY2Vwb2ludCAqdHA7CjE0NDc0OiAgdm9pZCAqYnBmX2Z1bmM7CjE0NDc0OiAgdTMy
IG51bV9hcmdzOwoxNDQ3NDogIHUzMiB3cml0YWJsZV9zaXplOwoxNDQ3NDogfSBfX2F0dHJpYnV0
ZV9fKChfX2FsaWduZWRfXygzMikpKTsKMTQ0NzQ6ICMgNjkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJh
Y2Vwb2ludF9yZWFkX21zcjsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdHJhY2Vwb2ludCBfX3RyYWNl
cG9pbnRfd3JpdGVfbXNyOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vw
b2ludF9yZHBtYzsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZG9fdHJhY2Vfd3JpdGVfbXNy
KHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwsIGludCBmYWlsZWQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgZG9fdHJhY2VfcmVhZF9tc3IodW5zaWduZWQgaW50IG1zciwgdTY0IHZhbCwgaW50IGZhaWxl
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBkb190cmFjZV9yZHBtYyh1bnNpZ25lZCBpbnQgbXNyLCB1
NjQgdmFsLCBpbnQgZmFpbGVkKTsKMTQ0NzQ6ICMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bXNyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fcmRtc3IodW5zaWduZWQgaW50IG1zcikKMTQ0NzQ6IHsKMTQ0NzQ6
ICB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgi
MTogcmRtc3JcbiIKMTQ0NzQ6ICAgICAgICAiMjpcbiIKMTQ0NzQ6ICAgICAgICAiIC5wdXNoc2Vj
dGlvbiBcIl9fZXhfdGFibGVcIixcImFcIlxuIiAiIC5iYWxpZ24gNFxuIiAiIC5sb25nICgiICIx
YiIgIikgLSAuXG4iICIgLmxvbmcgKCIgIjJiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiZXhfaGFu
ZGxlcl9yZG1zcl91bnNhZmUiICIpIC0gLlxuIiAiIC5wb3BzZWN0aW9uXG4iCjE0NDc0OiAgICAg
ICAgOiAiPWEiIChsb3cpLCAiPWQiIChoaWdoKSA6ICJjIiAobXNyKSk7CjE0NDc0OiAKMTQ0NzQ6
ICByZXR1cm4gKChsb3cpIHwgKGhpZ2gpIDw8IDMyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX193cm1zcih1bnNp
Z25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9s
YXRpbGUoIjE6IHdybXNyXG4iCjE0NDc0OiAgICAgICAgIjI6XG4iCjE0NDc0OiAgICAgICAgIiAu
cHVzaHNlY3Rpb24gXCJfX2V4X3RhYmxlXCIsXCJhXCJcbiIgIiAuYmFsaWduIDRcbiIgIiAubG9u
ZyAoIiAiMWIiICIpIC0gLlxuIiAiIC5sb25nICgiICIyYiIgIikgLSAuXG4iICIgLmxvbmcgKCIg
ImV4X2hhbmRsZXJfd3Jtc3JfdW5zYWZlIiAiKSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoxNDQ3
NDogICAgICAgIDogOiAiYyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpIDogIm1lbW9yeSIp
OwoxNDQ3NDogfQoxNDQ3NDogIyAxMjUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRfbXNyKHVuc2lnbmVkIGludCBtc3Ip
CjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIHZhbDsKMTQ0NzQ6IAoxNDQ3NDog
IHZhbCA9IF9fcmRtc3IobXNyKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChzdGF0aWNfa2V5X2ZhbHNl
KCYoX190cmFjZXBvaW50X3JlYWRfbXNyKS5rZXkpKQoxNDQ3NDogICBkb190cmFjZV9yZWFkX21z
cihtc3IsIHZhbCwgMCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRfbXNyX3NhZmUodW5zaWdu
ZWQgaW50IG1zciwKMTQ0NzQ6ICAgICAgICAgICAgIGludCAqZXJyKQoxNDQ3NDogewoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgbG93LCBoaWdoOwoxNDQ3NDogCjE0NDc0OiAgYXNtIHZvbGF0aWxlKCIy
OiByZG1zciA7IHhvciAlW2Vycl0sJVtlcnJdXG4iCjE0NDc0OiAgICAgICAgIjE6XG5cdCIKMTQ0
NzQ6ICAgICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuXHQiCjE0NDc0OiAgICAgICAgIjM6
IG1vdiAlW2ZhdWx0XSwlW2Vycl1cblx0IgoxNDQ3NDogICAgICAgICJ4b3JsICUlZWF4LCAlJWVh
eFxuXHQiCjE0NDc0OiAgICAgICAgInhvcmwgJSVlZHgsICUlZWR4XG5cdCIKMTQ0NzQ6ICAgICAg
ICAiam1wIDFiXG5cdCIKMTQ0NzQ6ICAgICAgICAiLnByZXZpb3VzXG5cdCIKMTQ0NzQ6ICAgICAg
ICAiIC5wdXNoc2VjdGlvbiBcIl9fZXhfdGFibGVcIixcImFcIlxuIiAiIC5iYWxpZ24gNFxuIiAi
IC5sb25nICgiICIyYiIgIikgLSAuXG4iICIgLmxvbmcgKCIgIjNiIiAiKSAtIC5cbiIgIiAubG9u
ZyAoIiAiZXhfaGFuZGxlcl9kZWZhdWx0IiAiKSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoxNDQ3
NDogICAgICAgIDogW2Vycl0gIj1yIiAoKmVyciksICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpCjE0
NDc0OiAgICAgICAgOiAiYyIgKG1zciksIFtmYXVsdF0gImkiICgtNSkpOwoxNDQ3NDogIGlmIChz
dGF0aWNfa2V5X2ZhbHNlKCYoX190cmFjZXBvaW50X3JlYWRfbXNyKS5rZXkpKQoxNDQ3NDogICBk
b190cmFjZV9yZWFkX21zcihtc3IsICgobG93KSB8IChoaWdoKSA8PCAzMiksICplcnIpOwoxNDQ3
NDogIHJldHVybiAoKGxvdykgfCAoaGlnaCkgPDwgMzIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpCjE0
NDc0OiBuYXRpdmVfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBtc3IsIHUzMiBsb3csIHUzMiBoaWdo
KQoxNDQ3NDogewoxNDQ3NDogIF9fd3Jtc3IobXNyLCBsb3csIGhpZ2gpOwoxNDQ3NDogCjE0NDc0
OiAgaWYgKHN0YXRpY19rZXlfZmFsc2UoJihfX3RyYWNlcG9pbnRfd3JpdGVfbXNyKS5rZXkpKQox
NDQ3NDogICBkb190cmFjZV93cml0ZV9tc3IobXNyLCAoKHU2NCloaWdoIDw8IDMyIHwgbG93KSwg
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKQoxNDQ3NDogbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2ln
bmVkIGludCBtc3IsIHUzMiBsb3csIHUzMiBoaWdoKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7
CjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoIjI6IHdybXNyIDsgeG9yICVbZXJyXSwlW2Vy
cl1cbiIKMTQ0NzQ6ICAgICAgICAiMTpcblx0IgoxNDQ3NDogICAgICAgICIuc2VjdGlvbiAuZml4
dXAsXCJheFwiXG5cdCIKMTQ0NzQ6ICAgICAgICAiMzogIG1vdiAlW2ZhdWx0XSwlW2Vycl0gOyBq
bXAgMWJcblx0IgoxNDQ3NDogICAgICAgICIucHJldmlvdXNcblx0IgoxNDQ3NDogICAgICAgICIg
LnB1c2hzZWN0aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxv
bmcgKCIgIjJiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiM2IiICIpIC0gLlxuIiAiIC5sb25nICgi
ICJleF9oYW5kbGVyX2RlZmF1bHQiICIpIC0gLlxuIiAiIC5wb3BzZWN0aW9uXG4iCjE0NDc0OiAg
ICAgICAgOiBbZXJyXSAiPWEiIChlcnIpCjE0NDc0OiAgICAgICAgOiAiYyIgKG1zciksICIwIiAo
bG93KSwgImQiIChoaWdoKSwKMTQ0NzQ6ICAgICAgICAgIFtmYXVsdF0gImkiICgtNSkKMTQ0NzQ6
ICAgICAgICA6ICJtZW1vcnkiKTsKMTQ0NzQ6ICBpZiAoc3RhdGljX2tleV9mYWxzZSgmKF9fdHJh
Y2Vwb2ludF93cml0ZV9tc3IpLmtleSkpCjE0NDc0OiAgIGRvX3RyYWNlX3dyaXRlX21zcihtc3Is
ICgodTY0KWhpZ2ggPDwgMzIgfCBsb3cpLCBlcnIpOwoxNDQ3NDogIHJldHVybiBlcnI7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmRtc3Jfc2FmZV9yZWdzKHUzMiByZWdzWzhd
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgd3Jtc3Jfc2FmZV9yZWdzKHUzMiByZWdzWzhdKTsKMTQ0NzQ6
ICMgMjAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGxvbmcgcmR0c2Modm9pZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKMTQ0NzQ6IAoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgicmR0c2MiIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkpOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7CjE0NDc0OiB9CjE0NDc0OiAjIDIx
OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdW5zaWduZWQgbG9uZyBsb25nIHJkdHNjX29yZGVyZWQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKMTQ0NzQ6ICMgMjM2ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiIyBBTFQ6
IG9sZGluc3RyMlxuIiAiNjYxOlxuXHQiICJyZHRzYyIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRp
bmcyXG4iICIuc2tpcCAtKCgiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgXiAoKCgi
ICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIg
IikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIDwgKCIgIjY2NSIiMiIiZi0i
IjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoIiAi
KCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIx
IiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAmIC0oLSgoIiAiNjY1IiIx
IiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSkpKSIg
IiAtICgiICI2NjJiLTY2MWIiICIpKSwgMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9u
IC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIg
IjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIoIDMqMzIrMTgpIiAiXG4iICIgLmJ5dGUgIiAi
NjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIg
IiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcg
IiAiNjY0IiIyIiJmIC0gLlxuIiAiIC53b3JkICIgIiggMSozMisyNykiICJcbiIgIiAuYnl0ZSAi
ICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIlxu
IiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0
aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQg
IiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgImxmZW5jZTsgcmR0c2MiICJcbiIgIjY2NSIiMSIg
IjpcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIyIiAiXG4iICI2NjQiIjIiIjpcblx0IiAicmR0
c2NwIiAiXG4iICI2NjUiIjIiICI6XG4iICIucG9wc2VjdGlvblxuIgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICAgIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkKMTQ0NzQ6IAoxNDQ3NDogICAgOjog
ImVjeCIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfcmVhZF9wbWMo
aW50IGNvdW50ZXIpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb3csIGhpZ2g7CjE0
NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoInJkcG1jIiA6ICI9YSIgKGxvdyksICI9ZCIgKGhp
Z2gpIDogImMiIChjb3VudGVyKSk7CjE0NDc0OiAgaWYgKHN0YXRpY19rZXlfZmFsc2UoJihfX3Ry
YWNlcG9pbnRfcmRwbWMpLmtleSkpCjE0NDc0OiAgIGRvX3RyYWNlX3JkcG1jKGNvdW50ZXIsICgo
bG93KSB8IChoaWdoKSA8PCAzMiksIDApOwoxNDQ3NDogIHJldHVybiAoKGxvdykgfCAoaGlnaCkg
PDwgMzIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9lcnJuby5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZXJybm8uaCIgMQoxNDQ3NDog
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2Vycm5vLmgiIDEKMTQ0
NzQ6ICMgMiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZXJybm8uaCIgMgoxNDQ3NDogIyA2ICIuL2lu
Y2x1ZGUvbGludXgvZXJybm8uaCIgMgoxNDQ3NDogIyAyNjAgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLmgiIDIKMTQ0NzQ6ICMgMjczICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB3cm1zcih1bnNpZ25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfd3JpdGVfbXNyKG1zciwgbG93LCBoaWdoKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cm1zcmwodW5zaWdu
ZWQgaW50IG1zciwgdTY0IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfd3JpdGVfbXNyKG1z
ciwgKHUzMikodmFsICYgMHhmZmZmZmZmZlVMTCksICh1MzIpKHZhbCA+PiAzMikpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB3cm1zcl9zYWZlKHVuc2lnbmVkIGludCBtc3Is
IHUzMiBsb3csIHUzMiBoaWdoKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBuYXRpdmVfd3JpdGVf
bXNyX3NhZmUobXNyLCBsb3csIGhpZ2gpOwoxNDQ3NDogfQoxNDQ3NDogIyAzMDIgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vbXNyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmRtc3JsX3NhZmUodW5zaWduZWQgaW50
IG1zciwgdW5zaWduZWQgbG9uZyBsb25nICpwKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7CjE0
NDc0OiAKMTQ0NzQ6ICAqcCA9IG5hdGl2ZV9yZWFkX21zcl9zYWZlKG1zciwgJmVycik7CjE0NDc0
OiAgcmV0dXJuIGVycjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzI0ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL21zci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHdybXNybF9zYWZlKHUzMiBtc3IsIHU2NCB2YWwpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIHdybXNyX3NhZmUobXNyLCAodTMyKXZhbCwgKHUzMikodmFsID4+
IDMyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IG1zciAqbXNyc19hbGxvYyh2b2lkKTsKMTQ0NzQ6IHZvaWQgbXNyc19mcmVl
KHN0cnVjdCBtc3IgKm1zcnMpOwoxNDQ3NDogaW50IG1zcl9zZXRfYml0KHUzMiBtc3IsIHU4IGJp
dCk7CjE0NDc0OiBpbnQgbXNyX2NsZWFyX2JpdCh1MzIgbXNyLCB1OCBiaXQpOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGludCByZG1zcl9vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgdTMyIG1zcl9u
bywgdTMyICpsLCB1MzIgKmgpOwoxNDQ3NDogaW50IHdybXNyX29uX2NwdSh1bnNpZ25lZCBpbnQg
Y3B1LCB1MzIgbXNyX25vLCB1MzIgbCwgdTMyIGgpOwoxNDQ3NDogaW50IHJkbXNybF9vbl9jcHUo
dW5zaWduZWQgaW50IGNwdSwgdTMyIG1zcl9ubywgdTY0ICpxKTsKMTQ0NzQ6IGludCB3cm1zcmxf
b25fY3B1KHVuc2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHU2NCBxKTsKMTQ0NzQ6IHZvaWQg
cmRtc3Jfb25fY3B1cyhjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgdTMyIG1zcl9ubywgc3Ry
dWN0IG1zciAqbXNycyk7CjE0NDc0OiB2b2lkIHdybXNyX29uX2NwdXMoY29uc3Qgc3RydWN0IGNw
dW1hc2sgKm1hc2ssIHUzMiBtc3Jfbm8sIHN0cnVjdCBtc3IgKm1zcnMpOwoxNDQ3NDogaW50IHJk
bXNyX3NhZmVfb25fY3B1KHVuc2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHUzMiAqbCwgdTMy
ICpoKTsKMTQ0NzQ6IGludCB3cm1zcl9zYWZlX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIg
bXNyX25vLCB1MzIgbCwgdTMyIGgpOwoxNDQ3NDogaW50IHJkbXNybF9zYWZlX29uX2NwdSh1bnNp
Z25lZCBpbnQgY3B1LCB1MzIgbXNyX25vLCB1NjQgKnEpOwoxNDQ3NDogaW50IHdybXNybF9zYWZl
X29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgbXNyX25vLCB1NjQgcSk7CjE0NDc0OiBpbnQg
cmRtc3Jfc2FmZV9yZWdzX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgcmVnc1s4XSk7CjE0
NDc0OiBpbnQgd3Jtc3Jfc2FmZV9yZWdzX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgcmVn
c1s4XSk7CjE0NDc0OiAjIDIzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwZWNp
YWxfaW5zbnMuaCIgMQoxNDQ3NDogIyAxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjaWFs
X2luc25zLmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2ZvcmNlX29yZGVyOwoxNDQ3
NDogCjE0NDc0OiB2b2lkIG5hdGl2ZV93cml0ZV9jcjAodW5zaWduZWQgbG9uZyB2YWwpOwoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9yZWFkX2NyMCh2b2lkKQoxNDQ3NDogewox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgdmFsOwoxNDQ3NDogIGFzbSB2b2xhdGlsZSgibW92ICUlY3Iw
LCUwXG5cdCIgOiAiPXIiICh2YWwpLCAiPW0iIChfX2ZvcmNlX29yZGVyKSk7CjE0NDc0OiAgcmV0
dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBuYXRpdmVfcmVh
ZF9jcjIodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHZhbDsKMTQ0NzQ6ICBh
c20gdm9sYXRpbGUoIm1vdiAlJWNyMiwlMFxuXHQiIDogIj1yIiAodmFsKSwgIj1tIiAoX19mb3Jj
ZV9vcmRlcikpOwoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgbmF0aXZlX3dyaXRlX2NyMih1bnNpZ25lZCBsb25nIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBh
c20gdm9sYXRpbGUoIm1vdiAlMCwlJWNyMiI6IDogInIiICh2YWwpLCAibSIgKF9fZm9yY2Vfb3Jk
ZXIpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX25hdGl2ZV9yZWFk
X2NyMyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgdmFsOwoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgibW92ICUlY3IzLCUwXG5cdCIgOiAiPXIiICh2YWwpLCAiPW0iIChfX2ZvcmNl
X29yZGVyKSk7CjE0NDc0OiAgcmV0dXJuIHZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBuYXRpdmVfd3JpdGVfY3IzKHVuc2lnbmVkIGxvbmcgdmFsKQoxNDQ3NDogewoxNDQ3NDogIGFz
bSB2b2xhdGlsZSgibW92ICUwLCUlY3IzIjogOiAiciIgKHZhbCksICJtIiAoX19mb3JjZV9vcmRl
cikpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9yZWFkX2Ny
NCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgdmFsOwoxNDQ3NDogIyA2OSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGVjaWFsX2luc25zLmgiCjE0NDc0OiAgYXNtIHZvbGF0
aWxlKCJtb3YgJSVjcjQsJTBcblx0IiA6ICI9ciIgKHZhbCksICI9bSIgKF9fZm9yY2Vfb3JkZXIp
KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiB2YWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgbmF0aXZlX3dyaXRlX2NyNCh1bnNpZ25lZCBsb25nIHZhbCk7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdTMyIHJkcGtydSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHUzMiBlY3ggPSAwOwoxNDQ3
NDogIHUzMiBlZHgsIHBrcnU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgiLmJ5dGUgMHgwZiwweDAxLDB4ZWVcblx0IgoxNDQ3NDog
ICAgICAgIDogIj1hIiAocGtydSksICI9ZCIgKGVkeCkKMTQ0NzQ6ICAgICAgICA6ICJjIiAoZWN4
KSk7CjE0NDc0OiAgcmV0dXJuIHBrcnU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3Jw
a3J1KHUzMiBwa3J1KQoxNDQ3NDogewoxNDQ3NDogIHUzMiBlY3ggPSAwLCBlZHggPSAwOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUo
Ii5ieXRlIDB4MGYsMHgwMSwweGVmXG5cdCIKMTQ0NzQ6ICAgICAgICA6IDogImEiIChwa3J1KSwg
ImMiKGVjeCksICJkIihlZHgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3dyaXRl
X3BrcnUodTMyIHBrcnUpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBpZiAocGtydSA9PSByZHBrcnUoKSkKMTQ0NzQ6ICAgcmV0dXJuOwoxNDQ3NDogCjE0
NDc0OiAgd3Jwa3J1KHBrcnUpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjcgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vc3BlY2lhbF9pbnNucy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfd2JpbnZkKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJ3YmludmQiOiA6IDoibWVtb3J5Iik7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIG5hdGl2ZV9sb2FkX2dzX2luZGV4KHVu
c2lnbmVkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3JlYWRfY3I0KHZvaWQpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5hdGl2ZV9yZWFkX2NyNCgpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcmVh
ZF9jcjAodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbmF0aXZlX3JlYWRfY3IwKCk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfY3IwKHVuc2lnbmVkIGxvbmcgeCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfd3JpdGVfY3IwKHgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIHJlYWRfY3IyKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5h
dGl2ZV9yZWFkX2NyMigpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX2NyMih1
bnNpZ25lZCBsb25nIHgpCjE0NDc0OiB7CjE0NDc0OiAgbmF0aXZlX3dyaXRlX2NyMih4KTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBsb25nIF9fcmVhZF9jcjModm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19uYXRp
dmVfcmVhZF9jcjMoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9jcjModW5z
aWduZWQgbG9uZyB4KQoxNDQ3NDogewoxNDQ3NDogIG5hdGl2ZV93cml0ZV9jcjMoeCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX193cml0ZV9jcjQodW5zaWduZWQgbG9uZyB4KQoxNDQ3
NDogewoxNDQ3NDogIG5hdGl2ZV93cml0ZV9jcjQoeCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgd2JpbnZkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgbmF0aXZlX3diaW52ZCgpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2FkX2dzX2luZGV4KHVu
c2lnbmVkIHNlbGVjdG9yKQoxNDQ3NDogewoxNDQ3NDogIG5hdGl2ZV9sb2FkX2dzX2luZGV4KHNl
bGVjdG9yKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGNsZmx1c2godm9sYXRpbGUgdm9pZCAqX19wKQoxNDQ3NDogewoxNDQ3NDog
IGFzbSB2b2xhdGlsZSgiY2xmbHVzaCAlMCIgOiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKilfX3Ap
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGZsdXNob3B0KHZvbGF0aWxlIHZvaWQg
Kl9fcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDogb2xk
bnN0clxuIiAiNjYxOlxuXHQiICIuYnl0ZSAiICIweDNlIiAiOyBjbGZsdXNoICVQMCIgIlxuNjYy
OlxuIiAiIyBBTFQ6IHBhZGRpbmdcbiIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEi
ImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNl
Y3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxv
bmcgIiAiNjY0IiIxIiJmIC0gLlxuIiAiIC53b3JkICIgIiggOSozMisyMykiICJcbiIgIiAuYnl0
ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hz
ZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1l
bnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgIi5ieXRlIDB4NjY7IGNsZmx1c2ggJVAwIiAi
XG4iICI2NjUiIjEiICI6XG4iICIucG9wc2VjdGlvblxuIiA6ICIrbSIgKCoodm9sYXRpbGUgY2hh
ciAqKV9fcCkgOiAiaSIgKDApKQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgY2x3Yih2b2xhdGlsZSB2b2lkICpfX3ApCjE0NDc0OiB7CjE0NDc0OiAgdm9sYXRpbGUg
c3RydWN0IHsgY2hhciB4WzY0XTsgfSAqcCA9IF9fcDsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xh
dGlsZSgiIyBBTFQ6IG9sZGluc3RyMlxuIiAiNjYxOlxuXHQiICIuYnl0ZSAiICIweDNlIiAiOyBj
bGZsdXNoICglW3BheF0pIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZzJcbiIgIi5za2lwIC0o
KCIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgoKCIgIjY2NSIiMSIiZi0iIjY2
NCIiMSIiZiIgIikgXiAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkgJiAtKC0oKCIgIjY2
NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgPCAoIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkp
KSkiICIgLSAoIiAiNjYyYi02NjFiIiAiKSkgPiAwKSAqICIgIigiICIoKCIgIjY2NSIiMSIiZi0i
IjY2NCIiMSIiZiIgIikgXiAoKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCIgIjY2
NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYi
ICIpIDwgKCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2MmItNjYx
YiIgIikpLCAweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9u
cyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxu
IiAiIC53b3JkICIgIiggOSozMisyMykiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxu
IiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjJiIiAiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjIiImYgLSAu
XG4iICIgLndvcmQgIiAiKCA5KjMyKzI0KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAi
XG4iICIgLmJ5dGUgIiAiNjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYz
IiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3Jl
cGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQi
IjEiIjpcblx0IiAiLmJ5dGUgMHg2NjsgY2xmbHVzaCAoJVtwYXhdKSIgIlxuIiAiNjY1IiIxIiAi
OlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjIiICJcbiIgIjY2NCIiMiIiOlxuXHQiICIuYnl0
ZSAweDY2LCAweDBmLCAweGFlLCAweDMwIiAiXG4iICI2NjUiIjIiICI6XG4iICIucG9wc2VjdGlv
blxuIgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgOiBb
cF0gIittIiAoKnApCjE0NDc0OiAgIDogW3BheF0gImEiIChwKSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDI2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgZnJlZ3Nfc3RhdGUgewox
NDQ3NDogIHUzMiBjd2Q7CjE0NDc0OiAgdTMyIHN3ZDsKMTQ0NzQ6ICB1MzIgdHdkOwoxNDQ3NDog
IHUzMiBmaXA7CjE0NDc0OiAgdTMyIGZjczsKMTQ0NzQ6ICB1MzIgZm9vOwoxNDQ3NDogIHUzMiBm
b3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHUzMiBzdF9zcGFjZVsyMF07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHUzMiBzdGF0dXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZnhyZWdzX3N0
YXRlIHsKMTQ0NzQ6ICB1MTYgY3dkOwoxNDQ3NDogIHUxNiBzd2Q7CjE0NDc0OiAgdTE2IHR3ZDsK
MTQ0NzQ6ICB1MTYgZm9wOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6
ICAgIHU2NCByaXA7CjE0NDc0OiAgICB1NjQgcmRwOwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1
Y3QgewoxNDQ3NDogICAgdTMyIGZpcDsKMTQ0NzQ6ICAgIHUzMiBmY3M7CjE0NDc0OiAgICB1MzIg
Zm9vOwoxNDQ3NDogICAgdTMyIGZvczsKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIHUz
MiBteGNzcjsKMTQ0NzQ6ICB1MzIgbXhjc3JfbWFzazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dTMyIHN0X3NwYWNlWzMyXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTMyIHhtbV9zcGFjZVs2
NF07CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgcGFkZGluZ1sxMl07CjE0NDc0OiAKMTQ0NzQ6ICB1bmlv
biB7CjE0NDc0OiAgIHUzMiBwYWRkaW5nMVsxMl07CjE0NDc0OiAgIHUzMiBzd19yZXNlcnZlZFsx
Ml07CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2
KSkpOwoxNDQ3NDogIyA3OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKMTQ0
NzQ6IHN0cnVjdCBzd3JlZ3Nfc3RhdGUgewoxNDQ3NDogIHUzMiBjd2Q7CjE0NDc0OiAgdTMyIHN3
ZDsKMTQ0NzQ6ICB1MzIgdHdkOwoxNDQ3NDogIHUzMiBmaXA7CjE0NDc0OiAgdTMyIGZjczsKMTQ0
NzQ6ICB1MzIgZm9vOwoxNDQ3NDogIHUzMiBmb3M7CjE0NDc0OiAKMTQ0NzQ6ICB1MzIgc3Rfc3Bh
Y2VbMjBdOwoxNDQ3NDogIHU4IGZ0b3A7CjE0NDc0OiAgdTggY2hhbmdlZDsKMTQ0NzQ6ICB1OCBs
b29rYWhlYWQ7CjE0NDc0OiAgdTggbm9fdXBkYXRlOwoxNDQ3NDogIHU4IHJtOwoxNDQ3NDogIHU4
IGFsaW1pdDsKMTQ0NzQ6ICBzdHJ1Y3QgbWF0aF9lbXVfaW5mbyAqaW5mbzsKMTQ0NzQ6ICB1MzIg
ZW50cnlfZWlwOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZW51bSB4ZmVhdHVyZSB7CjE0NDc0OiAgWEZFQVRVUkVfRlAsCjE0NDc0OiAgWEZFQVRVUkVf
U1NFLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgWEZFQVRVUkVfWU1N
LAoxNDQ3NDogIFhGRUFUVVJFX0JORFJFR1MsCjE0NDc0OiAgWEZFQVRVUkVfQk5EQ1NSLAoxNDQ3
NDogIFhGRUFUVVJFX09QTUFTSywKMTQ0NzQ6ICBYRkVBVFVSRV9aTU1fSGkyNTYsCjE0NDc0OiAg
WEZFQVRVUkVfSGkxNl9aTU0sCjE0NDc0OiAgWEZFQVRVUkVfUFRfVU5JTVBMRU1FTlRFRF9TT19G
QVIsCjE0NDc0OiAgWEZFQVRVUkVfUEtSVSwKMTQ0NzQ6IAoxNDQ3NDogIFhGRUFUVVJFX01BWCwK
MTQ0NzQ6IH07CjE0NDc0OiAjIDEzOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMu
aCIKMTQ0NzQ6IHN0cnVjdCByZWdfMTI4X2JpdCB7CjE0NDc0OiAgdTggcmVnYnl0ZXNbMTI4Lzhd
OwoxNDQ3NDogfTsKMTQ0NzQ6IHN0cnVjdCByZWdfMjU2X2JpdCB7CjE0NDc0OiAgdTggcmVnYnl0
ZXNbMjU2LzhdOwoxNDQ3NDogfTsKMTQ0NzQ6IHN0cnVjdCByZWdfNTEyX2JpdCB7CjE0NDc0OiAg
dTggcmVnYnl0ZXNbNTEyLzhdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTU5ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2ZwdS90eXBlcy5oIgoxNDQ3NDogc3RydWN0IHltbWhfc3RydWN0IHsKMTQ0NzQ6
ICBzdHJ1Y3QgcmVnXzEyOF9iaXQgaGlfeW1tWzE2XTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygo
X19wYWNrZWRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1weF9i
bmRyZWcgewoxNDQ3NDogIHU2NCBsb3dlcl9ib3VuZDsKMTQ0NzQ6ICB1NjQgdXBwZXJfYm91bmQ7
CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcHhfYm5kcmVnX3N0YXRlIHsKMTQ0NzQ6ICBzdHJ1Y3QgbXB4
X2JuZHJlZyBibmRyZWdbNF07CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBtcHhfYm5kY3NyIHsKMTQ0NzQ6ICB1NjQgYm5kY2ZndTsKMTQ0NzQ6ICB1NjQgYm5kc3Rh
dHVzOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcHhfYm5kY3NyX3N0YXRlIHsKMTQ0NzQ6
ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBtcHhfYm5kY3NyIGJuZGNzcjsKMTQ0NzQ6ICAgdTgg
cGFkX3RvXzY0X2J5dGVzWzY0XTsKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChf
X3BhY2tlZF9fKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdnhfNTEyX29wbWFza19zdGF0ZSB7CjE0NDc0OiAg
dTY0IG9wbWFza19yZWdbOF07CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdnhfNTEyX3ptbV91cHBlcnNfc3RhdGUgewoxNDQ3NDogIHN0cnVjdCByZWdfMjU2X2Jp
dCB6bW1fdXBwZXJbMTZdOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF2eF81
MTJfaGkxNl9zdGF0ZSB7CjE0NDc0OiAgc3RydWN0IHJlZ181MTJfYml0IGhpMTZfem1tWzE2XTsK
MTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwa3J1X3N0YXRlIHsKMTQ0NzQ6ICB1
MzIgcGtydTsKMTQ0NzQ6ICB1MzIgcGFkOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tl
ZF9fKSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4c3RhdGVfaGVhZGVyIHsKMTQ0NzQ6ICB1NjQg
eGZlYXR1cmVzOwoxNDQ3NDogIHU2NCB4Y29tcF9idjsKMTQ0NzQ6ICB1NjQgcmVzZXJ2ZWRbNl07
CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoxNDQ3NDogIyAyNTMgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgeHJlZ3Nfc3RhdGUgewox
NDQ3NDogIHN0cnVjdCBmeHJlZ3Nfc3RhdGUgaTM4NzsKMTQ0NzQ6ICBzdHJ1Y3QgeHN0YXRlX2hl
YWRlciBoZWFkZXI7CjE0NDc0OiAgdTggZXh0ZW5kZWRfc3RhdGVfYXJlYVswXTsKMTQ0NzQ6IH0g
X19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCAoNjQpKSk7CjE0NDc0OiAjIDI2OCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKMTQ0NzQ6IHVuaW9uIGZwcmVnc19zdGF0
ZSB7CjE0NDc0OiAgc3RydWN0IGZyZWdzX3N0YXRlIGZzYXZlOwoxNDQ3NDogIHN0cnVjdCBmeHJl
Z3Nfc3RhdGUgZnhzYXZlOwoxNDQ3NDogIHN0cnVjdCBzd3JlZ3Nfc3RhdGUgc29mdDsKMTQ0NzQ6
ICBzdHJ1Y3QgeHJlZ3Nfc3RhdGUgeHNhdmU7CjE0NDc0OiAgdTggX19wYWRkaW5nWygoMVVMKSA8
PCAxMildOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmcHUgewoxNDQ3NDogIyAyOTQgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vZnB1L3R5cGVzLmgiCjE0NDc0OiAgdW5zaWduZWQgaW50IGxhc3RfY3B1OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgYXZ4NTEyX3RpbWVzdGFtcDsKMTQ0NzQ6ICMgMzEyICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2ZwdS90eXBlcy5oIgoxNDQ3NDogIHVuaW9uIGZwcmVnc19zdGF0ZSBzdGF0ZTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjcgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS91bndpbmRfaGludHMuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL29yY190eXBlcy5oIiAxCjE0NDc0OiAjIDcz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL29yY190eXBlcy5oIgoxNDQ3NDogc3RydWN0IG9yY19l
bnRyeSB7CjE0NDc0OiAgczE2IHNwX29mZnNldDsKMTQ0NzQ6ICBzMTYgYnBfb2Zmc2V0OwoxNDQ3
NDogIHVuc2lnbmVkIHNwX3JlZzo0OwoxNDQ3NDogIHVuc2lnbmVkIGJwX3JlZzo0OwoxNDQ3NDog
IHVuc2lnbmVkIHR5cGU6MjsKMTQ0NzQ6ICB1bnNpZ25lZCBlbmQ6MTsKMTQ0NzQ6IH0gX19hdHRy
aWJ1dGVfXygoX19wYWNrZWRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdW53aW5kX2hpbnQgewoxNDQ3NDog
IHUzMiBpcDsKMTQ0NzQ6ICBzMTYgc3Bfb2Zmc2V0OwoxNDQ3NDogIHU4IHNwX3JlZzsKMTQ0NzQ6
ICB1OCB0eXBlOwoxNDQ3NDogIHU4IGVuZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDUgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vdW53aW5kX2hpbnRzLmgiIDIKMTQ0NzQ6ICMgMjggIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS92bXhmZWF0dXJlcy5oIiAxCjE0NDc0OiAjIDI5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3Byb2Nlc3Nvci5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BlcnNv
bmFsaXR5LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvdWFwaS9saW51eC9wZXJzb25hbGl0eS5oIiAxCjE0NDc0OiAjIDExICIuL2luY2x1
ZGUvdWFwaS9saW51eC9wZXJzb25hbGl0eS5oIgoxNDQ3NDogZW51bSB7CjE0NDc0OiAgVU5BTUUy
NiA9IDB4MDAyMDAwMCwKMTQ0NzQ6ICBBRERSX05PX1JBTkRPTUlaRSA9IDB4MDA0MDAwMCwKMTQ0
NzQ6ICBGRFBJQ19GVU5DUFRSUyA9IDB4MDA4MDAwMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
TU1BUF9QQUdFX1pFUk8gPSAweDAxMDAwMDAsCjE0NDc0OiAgQUREUl9DT01QQVRfTEFZT1VUID0g
MHgwMjAwMDAwLAoxNDQ3NDogIFJFQURfSU1QTElFU19FWEVDID0gMHgwNDAwMDAwLAoxNDQ3NDog
IEFERFJfTElNSVRfMzJCSVQgPSAweDA4MDAwMDAsCjE0NDc0OiAgU0hPUlRfSU5PREUgPSAweDEw
MDAwMDAsCjE0NDc0OiAgV0hPTEVfU0VDT05EUyA9IDB4MjAwMDAwMCwKMTQ0NzQ6ICBTVElDS1lf
VElNRU9VVFMgPSAweDQwMDAwMDAsCjE0NDc0OiAgQUREUl9MSU1JVF8zR0IgPSAweDgwMDAwMDAs
CjE0NDc0OiB9OwoxNDQ3NDogIyA0MiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGVyc29uYWxpdHku
aCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFBFUl9MSU5VWCA9IDB4MDAwMCwKMTQ0NzQ6ICBQRVJf
TElOVVhfMzJCSVQgPSAweDAwMDAgfCBBRERSX0xJTUlUXzMyQklULAoxNDQ3NDogIFBFUl9MSU5V
WF9GRFBJQyA9IDB4MDAwMCB8IEZEUElDX0ZVTkNQVFJTLAoxNDQ3NDogIFBFUl9TVlI0ID0gMHgw
MDAxIHwgU1RJQ0tZX1RJTUVPVVRTIHwgTU1BUF9QQUdFX1pFUk8sCjE0NDc0OiAgUEVSX1NWUjMg
PSAweDAwMDIgfCBTVElDS1lfVElNRU9VVFMgfCBTSE9SVF9JTk9ERSwKMTQ0NzQ6ICBQRVJfU0NP
U1ZSMyA9IDB4MDAwMyB8IFNUSUNLWV9USU1FT1VUUyB8CjE0NDc0OiAgICAgICBXSE9MRV9TRUNP
TkRTIHwgU0hPUlRfSU5PREUsCjE0NDc0OiAgUEVSX09TUjUgPSAweDAwMDMgfCBTVElDS1lfVElN
RU9VVFMgfCBXSE9MRV9TRUNPTkRTLAoxNDQ3NDogIFBFUl9XWVNFVjM4NiA9IDB4MDAwNCB8IFNU
SUNLWV9USU1FT1VUUyB8IFNIT1JUX0lOT0RFLAoxNDQ3NDogIFBFUl9JU0NSNCA9IDB4MDAwNSB8
IFNUSUNLWV9USU1FT1VUUywKMTQ0NzQ6ICBQRVJfQlNEID0gMHgwMDA2LAoxNDQ3NDogIFBFUl9T
VU5PUyA9IDB4MDAwNiB8IFNUSUNLWV9USU1FT1VUUywKMTQ0NzQ6ICBQRVJfWEVOSVggPSAweDAw
MDcgfCBTVElDS1lfVElNRU9VVFMgfCBTSE9SVF9JTk9ERSwKMTQ0NzQ6ICBQRVJfTElOVVgzMiA9
IDB4MDAwOCwKMTQ0NzQ6ICBQRVJfTElOVVgzMl8zR0IgPSAweDAwMDggfCBBRERSX0xJTUlUXzNH
QiwKMTQ0NzQ6ICBQRVJfSVJJWDMyID0gMHgwMDA5IHwgU1RJQ0tZX1RJTUVPVVRTLAoxNDQ3NDog
IFBFUl9JUklYTjMyID0gMHgwMDBhIHwgU1RJQ0tZX1RJTUVPVVRTLAoxNDQ3NDogIFBFUl9JUklY
NjQgPSAweDAwMGIgfCBTVElDS1lfVElNRU9VVFMsCjE0NDc0OiAgUEVSX1JJU0NPUyA9IDB4MDAw
YywKMTQ0NzQ6ICBQRVJfU09MQVJJUyA9IDB4MDAwZCB8IFNUSUNLWV9USU1FT1VUUywKMTQ0NzQ6
ICBQRVJfVVc3ID0gMHgwMDBlIHwgU1RJQ0tZX1RJTUVPVVRTIHwgTU1BUF9QQUdFX1pFUk8sCjE0
NDc0OiAgUEVSX09TRjQgPSAweDAwMGYsCjE0NDc0OiAgUEVSX0hQVVggPSAweDAwMTAsCjE0NDc0
OiAgUEVSX01BU0sgPSAweDAwZmYsCjE0NDc0OiB9OwoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvbGlu
dXgvcGVyc29uYWxpdHkuaCIgMgoxNDQ3NDogIyAzMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvZXJyLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVk
L3VhcGkvYXNtL2Vycm5vLmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2Vyci5oIiAy
CjE0NDc0OiAjIDI0ICIuL2luY2x1ZGUvbGludXgvZXJyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICogX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIEVSUl9QVFIobG9uZyBlcnJvcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHZvaWQgKikgZXJyb3I7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIFBUUl9FUlIo
IGNvbnN0IHZvaWQgKnB0cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKGxvbmcpIHB0cjsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgSVNfRVJSKCBjb25zdCB2b2lkICpwdHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpKHZvaWQgKikoKHVuc2lnbmVkIGxv
bmcpcHRyKSA+PSAodW5zaWduZWQgbG9uZyktNDA5NSksIDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBJU19FUlJf
T1JfTlVMTCggY29uc3Qgdm9pZCAqcHRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0
aW5fZXhwZWN0KCEhKCFwdHIpLCAwKSB8fCBfX2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBs
b25nKSh2b2lkICopKCh1bnNpZ25lZCBsb25nKXB0cikgPj0gKHVuc2lnbmVkIGxvbmcpLTQwOTUp
LCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9saW51eC9lcnIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgRVJSX0NBU1Qo
IGNvbnN0IHZvaWQgKnB0cikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAodm9pZCAq
KSBwdHI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgUFRSX0VSUl9PUl9aRVJPKCBjb25zdCB2b2lkICpwdHIpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKElTX0VSUihwdHIpKQoxNDQ3NDogICByZXR1cm4gUFRSX0VSUihwdHIp
OwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDM1ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9pcnFmbGFncy5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvaXJxZmxh
Z3MuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oIiAxCjE0
NDc0OiAjIDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZsYWdzLmgiCjE0NDc0OiBleHRl
cm4gaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBsb25nIG5hdGl2ZV9zYXZlX2ZsKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBuYXRp
dmVfc2F2ZV9mbCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXNt
IHZvbGF0aWxlKCIjIF9fcmF3X3NhdmVfZmxhZ3Ncblx0IgoxNDQ3NDogICAgICAgICJwdXNoZiA7
IHBvcCAlMCIKMTQ0NzQ6ICAgICAgICA6ICI9cm0iIChmbGFncykKMTQ0NzQ6ICAgICAgICA6CjE0
NDc0OiAgICAgICAgOiAibWVtb3J5Iik7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZmxhZ3M7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbmF0aXZlX3Jlc3RvcmVfZmwodW5zaWduZWQgbG9u
ZyBmbGFncyk7CjE0NDc0OiBleHRlcm4gaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9yZXN0b3JlX2ZsKHVuc2lnbmVkIGxvbmcgZmxh
Z3MpCjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJwdXNoICUwIDsgcG9wZiIKMTQ0NzQ6
ICAgICAgICA6CjE0NDc0OiAgICAgICAgOiJnIiAoZmxhZ3MpCjE0NDc0OiAgICAgICAgOiJtZW1v
cnkiLCAiY2MiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfaXJxX2Rpc2Fi
bGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoImNsaSI6IDogOiJtZW1vcnki
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfaXJxX2VuYWJsZSh2b2lkKQox
NDQ3NDogewoxNDQ3NDogIGFzbSB2b2xhdGlsZSgic3RpIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmNwdWlkbGUudGV4
dCIpKSkgdm9pZCBuYXRpdmVfc2FmZV9oYWx0KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgbWRzX2lk
bGVfY2xlYXJfY3B1X2J1ZmZlcnMoKTsKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoInN0aTsgaGx0Ijog
OiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmNwdWlkbGUudGV4dCIpKSkgdm9pZCBuYXRpdmVfaGFsdCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIG1kc19pZGxlX2NsZWFyX2NwdV9idWZmZXJzKCk7CjE0NDc0OiAgYXNtIHZvbGF0
aWxlKCJobHQiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAjIDc3ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2lycWZsYWdzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBhcmNoX2xvY2FsX3NhdmVfZmxhZ3Modm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbmF0aXZlX3NhdmVfZmwoKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJj
aF9sb2NhbF9pcnFfcmVzdG9yZSh1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDog
IG5hdGl2ZV9yZXN0b3JlX2ZsKGZsYWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJjaF9sb2NhbF9pcnFfZGlz
YWJsZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIG5hdGl2ZV9pcnFfZGlzYWJsZSgpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBhcmNoX2xvY2FsX2lycV9lbmFibGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVf
aXJxX2VuYWJsZSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuY3B1aWRsZS50ZXh0Iikp
KSB2b2lkIGFyY2hfc2FmZV9oYWx0KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgbmF0aXZlX3NhZmVf
aGFsdCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuY3B1aWRsZS50ZXh0IikpKSB2b2lk
IGhhbHQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfaGFsdCgpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBhcmNoX2xvY2FsX2lycV9zYXZlKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFncyA9IGFyY2hfbG9jYWxfc2F2ZV9m
bGFncygpOwoxNDQ3NDogIGFyY2hfbG9jYWxfaXJxX2Rpc2FibGUoKTsKMTQ0NzQ6ICByZXR1cm4g
ZmxhZ3M7CjE0NDc0OiB9CjE0NDc0OiAjIDE2MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFm
bGFncy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfaXJxc19kaXNhYmxlZF9mbGFncyh1bnNpZ25lZCBsb25n
IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhKGZsYWdzICYgKCgoMVVMKSkgPDwgKDkp
KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBhcmNoX2lycXNfZGlzYWJsZWQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzID0gYXJjaF9sb2NhbF9zYXZlX2Zs
YWdzKCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYXJjaF9pcnFzX2Rpc2FibGVkX2ZsYWdzKGZs
YWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9pcnFmbGFncy5oIiAy
CjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaCIKMTQ0NzQ6ICAgc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0
cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKSB7IH0KMTQ0NzQ6ICAgc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0cmFj
ZV9zb2Z0aXJxc19vZmYodW5zaWduZWQgbG9uZyBpcCkgeyB9CjE0NDc0OiAgIHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2Rl
cF9oYXJkaXJxc19vbih1bnNpZ25lZCBsb25nIGlwKSB7IH0KMTQ0NzQ6ICAgc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVw
X2hhcmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKSB7IH0KMTQ0NzQ6ICMgMzYgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKMTQ0NzQ6ICMgNjEgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmgiCjE0NDc0OiBlbnVtIHRsYl9pbmZvcyB7CjE0NDc0OiAgRU5U
UklFUywKMTQ0NzQ6ICBOUl9JTkZPCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdTE2
IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9s
bGlfNGtbTlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlv
bl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGlfMm1bTlJfSU5GT107CjE0NDc0OiBl
eHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHki
KSkpIHRsYl9sbGlfNG1bTlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfNGtbTlJfSU5GT107
CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVh
ZF9tb3N0bHkiKSkpIHRsYl9sbGRfMm1bTlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfNG1b
TlJfSU5GT107CjE0NDc0OiBleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIu
ZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfMWdbTlJfSU5GT107CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBj
cHVpbmZvX3g4NiB7CjE0NDc0OiAgX191OCB4ODY7CjE0NDc0OiAgX191OCB4ODZfdmVuZG9yOwox
NDQ3NDogIF9fdTggeDg2X21vZGVsOwoxNDQ3NDogIF9fdTggeDg2X3N0ZXBwaW5nOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgeDg2X3RsYnNpemU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IF9fdTMyIHZteF9jYXBhYmlsaXR5WzNdOwoxNDQ3NDogCjE0NDc0OiAgX191OCB4ODZfdmlydF9i
aXRzOwoxNDQ3NDogIF9fdTggeDg2X3BoeXNfYml0czsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTggeDg2
X2NvcmVpZF9iaXRzOwoxNDQ3NDogIF9fdTggY3VfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBl
eHRlbmRlZF9jcHVpZF9sZXZlbDsKMTQ0NzQ6IAoxNDQ3NDogIGludCBjcHVpZF9sZXZlbDsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5pb24gewoxNDQ3
NDogICBfX3UzMiB4ODZfY2FwYWJpbGl0eVsxOSArIDFdOwoxNDQ3NDogICB1bnNpZ25lZCBsb25n
IHg4Nl9jYXBhYmlsaXR5X2FsaWdubWVudDsKMTQ0NzQ6ICB9OwoxNDQ3NDogIGNoYXIgeDg2X3Zl
bmRvcl9pZFsxNl07CjE0NDc0OiAgY2hhciB4ODZfbW9kZWxfaWRbNjRdOwoxNDQ3NDogCjE0NDc0
OiAgdW5zaWduZWQgaW50IHg4Nl9jYWNoZV9zaXplOwoxNDQ3NDogIGludCB4ODZfY2FjaGVfYWxp
Z25tZW50OwoxNDQ3NDogCjE0NDc0OiAgaW50IHg4Nl9jYWNoZV9tYXhfcm1pZDsKMTQ0NzQ6ICBp
bnQgeDg2X2NhY2hlX29jY19zY2FsZTsKMTQ0NzQ6ICBpbnQgeDg2X3Bvd2VyOwoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgbG9vcHNfcGVyX2ppZmZ5OwoxNDQ3NDogCjE0NDc0OiAgdTE2IHg4Nl9tYXhf
Y29yZXM7CjE0NDc0OiAgdTE2IGFwaWNpZDsKMTQ0NzQ6ICB1MTYgaW5pdGlhbF9hcGljaWQ7CjE0
NDc0OiAgdTE2IHg4Nl9jbGZsdXNoX3NpemU7CjE0NDc0OiAKMTQ0NzQ6ICB1MTYgYm9vdGVkX2Nv
cmVzOwoxNDQ3NDogCjE0NDc0OiAgdTE2IHBoeXNfcHJvY19pZDsKMTQ0NzQ6IAoxNDQ3NDogIHUx
NiBsb2dpY2FsX3Byb2NfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1MTYgY3B1X2NvcmVfaWQ7CjE0NDc0
OiAgdTE2IGNwdV9kaWVfaWQ7CjE0NDc0OiAgdTE2IGxvZ2ljYWxfZGllX2lkOwoxNDQ3NDogCjE0
NDc0OiAgdTE2IGNwdV9pbmRleDsKMTQ0NzQ6ICB1MzIgbWljcm9jb2RlOwoxNDQ3NDogCjE0NDc0
OiAgdTggeDg2X2NhY2hlX2JpdHM7CjE0NDc0OiAgdW5zaWduZWQgaW5pdGlhbGl6ZWQgOiAxOwox
NDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBjcHVpZF9yZWdzIHsKMTQ0NzQ6ICB1MzIgZWF4LCBlYngsIGVjeCwgZWR4Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjcHVpZF9yZWdzX2lkeCB7CjE0NDc0OiAgQ1BV
SURfRUFYID0gMCwKMTQ0NzQ6ICBDUFVJRF9FQlgsCjE0NDc0OiAgQ1BVSURfRUNYLAoxNDQ3NDog
IENQVUlEX0VEWCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDE3MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY3B1aW5mb194ODYgYm9vdF9jcHVf
ZGF0YTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY3B1aW5mb194ODYgbmV3X2NwdV9kYXRhOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gX191MzIgY3B1X2NhcHNfY2xlYXJlZFsxOSArIDFdOwoxNDQ3NDog
ZXh0ZXJuIF9fdTMyIGNwdV9jYXBzX3NldFsxOSArIDFdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21v
c3RseSIpKSkgX190eXBlb2ZfXyhzdHJ1Y3QgY3B1aW5mb194ODYpIGNwdV9pbmZvOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNv
bnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBjcHVpbmZvX29wOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgY3B1X2RldGVjdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMp
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbDF0Zl9wZm5fbGltaXQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCgoKDFVTEwpKSkgPDwgKGJvb3RfY3B1X2RhdGEueDg2
X2NhY2hlX2JpdHMgLSAxIC0gMTIpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZv
aWQgZWFybHlfY3B1X2luaXQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBpZGVudGlmeV9ib290
X2NwdSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3Ry
dWN0IGNwdWluZm9feDg2ICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcHJpbnRfY3B1X2luZm8oc3Ry
dWN0IGNwdWluZm9feDg2ICopOwoxNDQ3NDogdm9pZCBwcmludF9jcHVfbXNyKHN0cnVjdCBjcHVp
bmZvX3g4NiAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGhh
dmVfY3B1aWRfcCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9jcHVpZCh1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQg
aW50ICplYngsCjE0NDc0OiAgICAgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4
KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJjcHVpZCIKMTQ0NzQ6ICAg
ICAgOiAiPWEiICgqZWF4KSwKMTQ0NzQ6ICAgICAgICAiPWIiICgqZWJ4KSwKMTQ0NzQ6ICAgICAg
ICAiPWMiICgqZWN4KSwKMTQ0NzQ6ICAgICAgICAiPWQiICgqZWR4KQoxNDQ3NDogICAgICA6ICIw
IiAoKmVheCksICIyIiAoKmVjeCkKMTQ0NzQ6ICAgICAgOiAibWVtb3J5Iik7CjE0NDc0OiB9CjE0
NDc0OiAjIDIzNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVu
c2lnbmVkIGludCBuYXRpdmVfY3B1aWRfZWF4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBp
bnQgZWF4ID0gb3AsIGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwg
JmVjeCwgJmVkeCk7IHJldHVybiBlYXg7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBuYXRpdmVfY3B1
aWRfZWJ4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBpbnQgZWF4ID0gb3AsIGVieCwgZWN4
ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7IHJldHVybiBl
Yng7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBuYXRpdmVfY3B1aWRfZWN4KHVuc2lnbmVkIGludCBv
cCkgeyB1bnNpZ25lZCBpbnQgZWF4ID0gb3AsIGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1
aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7IHJldHVybiBlY3g7IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGludCBuYXRpdmVfY3B1aWRfZWR4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBpbnQgZWF4
ID0gb3AsIGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwgJmVjeCwg
JmVkeCk7IHJldHVybiBlZHg7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdW5zaWduZWQgbG9uZyByZWFkX2NyM19wYSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBfX3JlYWRfY3IzKCkgJiAoMHg3RkZGRkZGRkZGRkZGMDAwdWxsKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBuYXRpdmVfcmVhZF9jcjNfcGEodm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gX19uYXRpdmVfcmVhZF9jcjMoKSAmICgweDdGRkZGRkZGRkZGRkYwMDB1
bGwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvYWRfY3IzKHBnZF90ICpwZ2RpcikK
MTQ0NzQ6IHsKMTQ0NzQ6ICB3cml0ZV9jcjMoKF9fcGh5c19hZGRyX25vZGVidWcoKHVuc2lnbmVk
IGxvbmcpKHBnZGlyKSkgfCAwVUxMKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDMxMiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IHN0cnVjdCB4ODZfaHdfdHNzIHsKMTQ0
NzQ6ICB1MzIgcmVzZXJ2ZWQxOwoxNDQ3NDogIHU2NCBzcDA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBzcDE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IHNwMjsKMTQ0NzQ6IAoxNDQ3
NDogIHU2NCByZXNlcnZlZDI7CjE0NDc0OiAgdTY0IGlzdFs3XTsKMTQ0NzQ6ICB1MzIgcmVzZXJ2
ZWQzOwoxNDQ3NDogIHUzMiByZXNlcnZlZDQ7CjE0NDc0OiAgdTE2IHJlc2VydmVkNTsKMTQ0NzQ6
ICB1MTYgaW9fYml0bWFwX2Jhc2U7CjE0NDc0OiAKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CjE0NDc0OiAjIDM3MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIK
MTQ0NzQ6IHN0cnVjdCBlbnRyeV9zdGFjayB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB3b3Jkc1s2
NF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZW50cnlfc3RhY2tfcGFnZSB7CjE0
NDc0OiAgc3RydWN0IGVudHJ5X3N0YWNrIHN0YWNrOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChf
X2FsaWduZWRfXygoKDFVTCkgPDwgMTIpKSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgeDg2X2lvX2JpdG1hcCB7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgcHJl
dl9zZXF1ZW5jZTsKMTQ0NzQ6ICMgMzkyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oIgoxNDQ3NDogIHVuc2lnbmVkIGludCBwcmV2X21heDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
Yml0bWFwWygoNjU1MzYgLyA4KSAvIHNpemVvZihsb25nKSkgKyAxXTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXBhbGxbKCg2
NTUzNiAvIDgpIC8gc2l6ZW9mKGxvbmcpKSArIDFdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHRzc19zdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3QgeDg2X2h3X3RzcyB4ODZfdHNzOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IHg4Nl9pb19iaXRtYXAgaW9fYml0bWFwOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Fs
aWduZWRfXygoKDFVTCkgPDwgMTIpKSkpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1
dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucGFnZV9hbGlnbmVkIikpKSBfX3R5cGVv
Zl9fKHN0cnVjdCB0c3Nfc3RydWN0KSBjcHVfdHNzX3J3IF9fYXR0cmlidXRlX18oKF9fYWxpZ25l
ZF9fKCgoMVVMKSA8PCAxMikpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGlycV9z
dGFjayB7CjE0NDc0OiAgY2hhciBzdGFja1soKCgxVUwpIDw8IDEyKSA8PCAoMiArIDApKV07CjE0
NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgoKDFVTCkgPDwgMTIpIDw8ICgyICsg
MCkpKSkpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRh
dGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhzdHJ1Y3QgaXJxX3N0YWNrICopIGhhcmRpcnFf
c3RhY2tfcHRyOwoxNDQ3NDogIyA0MzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29y
LmgiCjE0NDc0OiBzdHJ1Y3QgZml4ZWRfcGVyY3B1X2RhdGEgewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjaGFyIGdzX2Jhc2VbNDBdOwoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgc3RhY2tfY2FuYXJ5OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLmZpcnN0IikpKSBfX3R5
cGVvZl9fKHN0cnVjdCBmaXhlZF9wZXJjcHVfZGF0YSkgZml4ZWRfcGVyY3B1X2RhdGEgX19hdHRy
aWJ1dGVfXygoX19leHRlcm5hbGx5X3Zpc2libGVfXykpOwoxNDQ3NDogZXh0ZXJuIHR5cGVvZihm
aXhlZF9wZXJjcHVfZGF0YSkgaW5pdF9wZXJfY3B1X19maXhlZF9wZXJjcHVfZGF0YTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBjcHVfa2VybmVsbW9kZV9nc19iYXNlKGludCBjcHUpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKSgqKHsgZG8geyBjb25zdCB2b2lk
ICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSAr
IDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNp
Z25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2Yo
KigoJihmaXhlZF9wZXJjcHVfZGF0YS5nc19iYXNlKSkpKSAqKSgoJihmaXhlZF9wZXJjcHVfZGF0
YS5nc19iYXNlKSkpKSk7ICh0eXBlb2YoKHR5cGVvZigqKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdz
X2Jhc2UpKSkpICopKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSkpKSAoX19wdHIgKyAo
KChfX3Blcl9jcHVfb2Zmc2V0WyhjcHUpXSkpKSk7IH0pOyB9KSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikp
KSBfX3R5cGVvZl9fKHVuc2lnbmVkIGludCkgaXJxX2NvdW50OwoxNDQ3NDogZXh0ZXJuIHZvaWQg
aWdub3JlX3N5c3JldCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQg
c2F2ZV9mc2dzX2Zvcl9rdm0odm9pZCk7CjE0NDc0OiAjIDQ4MCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgZnB1X2tlcm5lbF94
c3RhdGVfc2l6ZTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgZnB1X3VzZXJfeHN0YXRlX3Np
emU7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwZXJmX2V2ZW50OwoxNDQ3NDogCjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzZWc7CjE0NDc0OiB9IG1tX3NlZ21l
bnRfdDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRocmVhZF9zdHJ1Y3QgewoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGRlc2Nfc3RydWN0IHRsc19hcnJheVszXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIHNob3J0IGVzOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IGRzOwoxNDQ3NDog
IHVuc2lnbmVkIHNob3J0IGZzaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgZ3NpbmRleDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZzYmFzZTsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIGdzYmFzZTsKMTQ0NzQ6ICMgNTE4ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3NDogIHN0cnVjdCBwZXJmX2V2ZW50ICpwdHJhY2VfYnBz
WzRdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBkZWJ1Z3JlZzY7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIHB0cmFjZV9kcjc7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIGNyMjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHRyYXBfbnI7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBlcnJvcl9jb2RlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgaW9fYml0bWFwICppb19iaXRtYXA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBpb3BsX2Vt
dWw7CjE0NDc0OiAKMTQ0NzQ6ICBtbV9zZWdtZW50X3QgYWRkcl9saW1pdDsKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGludCBzaWdfb25fdWFjY2Vzc19lcnI6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgdWFjY2Vzc19lcnI6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZwdSBmcHU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBhcmNoX3RocmVhZF9zdHJ1Y3Rfd2hpdGVsaXN0KHVuc2lnbmVkIGxvbmcg
Km9mZnNldCwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgKnNpemUpCjE0NDc0OiB7CjE0NDc0
OiAgKm9mZnNldCA9IF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgdGhyZWFkX3N0cnVjdCwgZnB1
LnN0YXRlKTsKMTQ0NzQ6ICAqc2l6ZSA9IGZwdV9rZXJuZWxfeHN0YXRlX3NpemU7CjE0NDc0OiB9
CjE0NDc0OiAjIDU3MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKMTQ0NzQ6IG5hdGl2ZV9sb2FkX3NwMCh1bnNpZ25lZCBsb25nIHNwMCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihj
cHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVy
aWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZihjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkg
eyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSBw
dG9fVF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190bXBfXzsgcHRvX3RtcF9fID0gKHNwMCk7ICh2
b2lkKXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicWkiICgocHRvX1RfXykoc3Aw
KSkpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICUxLCIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9f
VF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgJTEsIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJp
IiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAi
cSAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3Aw
KSkgOiAicmUiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSAyOiBkbyB7IHR5cGVkZWYgdHlwZW9m
KChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgcHRvX1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9f
dG1wX187IHB0b190bXBfXyA9IChzcDApOyAodm9pZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXpl
b2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1v
diIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNz
LnNwMCkpIDogInFpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0
aWxlICgibW92IiAidyAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3
Lng4Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSA0OiBh
c20gdm9sYXRpbGUgKCJtb3YiICJsICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNw
dV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBj
YXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJlIiAoKHB0b19UX18pKHNwMCkpKTsg
YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7
IGNhc2UgNDogZG8geyB0eXBlZGVmIHR5cGVvZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIHB0
b19UX187IGlmICgwKSB7IHB0b19UX18gcHRvX3RtcF9fOyBwdG9fdG1wX18gPSAoc3AwKTsgKHZv
aWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkp
IHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICUxLCIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJxaSIgKChwdG9fVF9fKShzcDAp
KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgJTEsIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJpIiAoKHB0b19U
X18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAlMSwiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmki
ICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJx
ICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDAp
KSA6ICJyZSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSBwdG9fVF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190
bXBfXzsgcHRvX3RtcF9fID0gKHNwMCk7ICh2b2lkKXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVv
ZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92
IiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Mu
c3AwKSkgOiAicWkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRp
bGUgKCJtb3YiICJ3ICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3Nfcncu
eDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFz
bSB2b2xhdGlsZSAoIm1vdiIgImwgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1
X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNh
c2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmUiICgocHRvX1RfXykoc3AwKSkpOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsg
ZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpO2JyZWFrOyB9IH0gd2hpbGUgKDAp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9zd2FwZ3Modm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgic3dhcGdzIiA6OjogIm1lbW9yeSIpOwox
NDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgY3VycmVudF90b3Bf
b2Zfc3RhY2sodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZihjcHVfdHNzX3J3Lng4Nl90c3Muc3AxKSBw
Zm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpKSB7IGNhc2Ug
MTogYXNtKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1xIiAocGZvX3Jl
dF9fKSA6ICJwIiAoJihjcHVfdHNzX3J3Lng4Nl90c3Muc3AxKSkpOyBicmVhazsgY2FzZSAyOiBh
c20oIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogInAiICgmKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
cCIgKCYoY3B1X3Rzc19ydy54ODZfdHNzLnNwMSkpKTsgYnJlYWs7IGNhc2UgODogYXNtKCJtb3Yi
ICJxICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJwIiAo
JihjcHVfdHNzX3J3Lng4Nl90c3Muc3AxKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG9u
X3RocmVhZF9zdGFjayh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodW5zaWduZWQgbG9u
ZykoY3VycmVudF90b3Bfb2Zfc3RhY2soKSAtCjE0NDc0OiAgICAgICAgICAgY3VycmVudF9zdGFj
a19wb2ludGVyKSA8ICgoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2Fk
X3NwMCh1bnNpZ25lZCBsb25nIHNwMCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBuYXRpdmVfbG9hZF9zcDAo
c3AwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHZvaWQgcmVsZWFzZV90aHJlYWQoc3RydWN0IHRhc2tfc3RydWN0ICopOwoxNDQ3NDogCjE0
NDc0OiB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBj
cHVpZCh1bnNpZ25lZCBpbnQgb3AsCjE0NDc0OiAgICAgdW5zaWduZWQgaW50ICplYXgsIHVuc2ln
bmVkIGludCAqZWJ4LAoxNDQ3NDogICAgIHVuc2lnbmVkIGludCAqZWN4LCB1bnNpZ25lZCBpbnQg
KmVkeCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqZWF4ID0gb3A7CjE0NDc0OiAgKmVjeCA9IDA7CjE0NDc0
OiAgbmF0aXZlX2NwdWlkKGVheCwgZWJ4LCBlY3gsIGVkeCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBjcHVpZF9jb3VudCh1bnNpZ25lZCBpbnQgb3AsIGludCBjb3VudCwK
MTQ0NzQ6ICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCjE0
NDc0OiAgICAgICAgICAgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4KQoxNDQ3
NDogewoxNDQ3NDogICplYXggPSBvcDsKMTQ0NzQ6ICAqZWN4ID0gY291bnQ7CjE0NDc0OiAgbmF0
aXZlX2NwdWlkKGVheCwgZWJ4LCBlY3gsIGVkeCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVpZF9lYXgodW5zaWduZWQgaW50
IG9wKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7CjE0
NDc0OiAKMTQ0NzQ6ICBjcHVpZChvcCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7CjE0NDc0OiAK
MTQ0NzQ6ICByZXR1cm4gZWF4OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQg
Y3B1aWRfZWJ4KHVuc2lnbmVkIGludCBvcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZWF4LCBlYngsIGVjeCwgZWR4OwoxNDQ3NDogCjE0NDc0OiAgY3B1aWQob3AsICZlYXgsICZlYngs
ICZlY3gsICZlZHgpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVieDsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdWlkX2VjeCh1bnNpZ25lZCBpbnQgb3ApCjE0NDc0OiB7
CjE0NDc0OiAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsKMTQ0NzQ6IAoxNDQ3NDog
IGNwdWlkKG9wLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biBlY3g7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVpZF9lZHgodW5z
aWduZWQgaW50IG9wKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4
LCBlZHg7CjE0NDc0OiAKMTQ0NzQ6ICBjcHVpZChvcCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7
CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZWR4OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCByZXBfbm9wKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgYXNtIHZvbGF0aWxlKCJyZXA7IG5vcCIgOjo6ICJtZW1vcnkiKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIGNwdV9yZWxheCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJlcF9ub3AoKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgNzA1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBzeW5jX2NvcmUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICMgNzM4ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3NDogIHVuc2lnbmVkIGludCB0bXA7CjE0NDc0
OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUgKAoxNDQ3NDogICAiOTg3OiBcblx0IiAiLnB1c2hzZWN0
aW9uIC5kaXNjYXJkLnVud2luZF9oaW50c1xuXHQiICIubG9uZyA5ODdiIC0gLlxuXHQiICIuc2hv
cnQgIiAiMCIgIlxuXHQiICIuYnl0ZSAiICIwIiAiXG5cdCIgIi5ieXRlICIgIjMiICJcblx0IiAi
LmJ5dGUgIiAiMCIgIlxuXHQiICIuYmFsaWduIDQgXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIKMTQ0
NzQ6ICAgIm1vdiAlJXNzLCAlMFxuXHQiCjE0NDc0OiAgICJwdXNocSAlcTBcblx0IgoxNDQ3NDog
ICAicHVzaHEgJSVyc3Bcblx0IgoxNDQ3NDogICAiYWRkcSAkOCwgKCUlcnNwKVxuXHQiCjE0NDc0
OiAgICJwdXNoZnFcblx0IgoxNDQ3NDogICAibW92ICUlY3MsICUwXG5cdCIKMTQ0NzQ6ICAgInB1
c2hxICVxMFxuXHQiCjE0NDc0OiAgICJwdXNocSAkMWZcblx0IgoxNDQ3NDogICAiaXJldHFcblx0
IgoxNDQ3NDogICAiOTg3OiBcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVud2luZF9oaW50
c1xuXHQiICIubG9uZyA5ODdiIC0gLlxuXHQiICIuc2hvcnQgIiAiMCIgIlxuXHQiICIuYnl0ZSAi
ICIwIiAiXG5cdCIgIi5ieXRlICIgIjQiICJcblx0IiAiLmJ5dGUgIiAiMCIgIlxuXHQiICIuYmFs
aWduIDQgXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIKMTQ0NzQ6ICAgIjE6IgoxNDQ3NDogICA6ICI9
JnIiICh0bXApLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogOiAiY2MiLCAibWVtb3J5
Iik7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc2VsZWN0X2lk
bGVfcm91dGluZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgYW1kX2U0MDBfYzFlX2FwaWNfc2V0dXAodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBsb25nIGJvb3Rfb3B0aW9uX2lkbGVfb3ZlcnJpZGU7CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gaWRsZV9ib290X292ZXJyaWRlIHtJRExFX05PX09WRVJSSURFPTAsIElETEVfSEFMVCwgSURM
RV9OT01XQUlULAoxNDQ3NDogICAgIElETEVfUE9MTH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGVuYWJsZV9zZXBfY3B1KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBzeXNlbnRlcl9zZXR1
cCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVz
Y19wdHIgZWFybHlfZ2R0X2Rlc2NyOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzd2l0Y2hf
dG9fbmV3X2dkdChpbnQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbG9hZF9kaXJlY3RfZ2R0KGludCk7
CjE0NDc0OiBleHRlcm4gdm9pZCBsb2FkX2ZpeG1hcF9nZHQoaW50KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGxvYWRfcGVyY3B1X3NlZ21lbnQoaW50KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNwdV9pbml0
KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY3I0X2luaXQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHVuc2lnbmVkIGxvbmcgZ2V0X2RlYnVnY3RsbXNyKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBkZWJ1Z2N0bG1zciA9IDA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICgoZGVidWdjdGxtc3IpID0gbmF0aXZlX3JlYWRfbXNyKCgweDAw
MDAwMWQ5KSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGRlYnVnY3RsbXNyOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHVwZGF0ZV9kZWJ1Z2N0bG1zcih1bnNpZ25lZCBsb25nIGRlYnVn
Y3RsbXNyKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
d3Jtc3JsKDB4MDAwMDAxZDksIGRlYnVnY3RsbXNyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgc2V0X3Rhc2tfYmxvY2tzdGVwKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywg
Ym9vbCBvbik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBib290bG9hZGVyX3R5
cGU7CjE0NDc0OiBleHRlcm4gaW50IGJvb3Rsb2FkZXJfdmVyc2lvbjsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGNoYXIgaWdub3JlX2ZwdV9pcnE7CjE0NDc0OiAjIDgyNiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wcm9jZXNzb3IuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcHJlZmV0Y2goY29uc3Qgdm9pZCAqeCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDogb2xkbnN0clxu
IiAiNjYxOlxuXHQiICJwcmVmZXRjaHQwICVQMSIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmdc
biIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIi
ICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2
MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9u
cyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxu
IiAiIC53b3JkICIgIiggMCozMisyNSkiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxu
IiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBs
YWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIx
IiI6XG5cdCIgInByZWZldGNobnRhICVQMSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rp
b25cbiIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkpCjE0NDc0OiAKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHByZWZldGNodyhjb25z
dCB2b2lkICp4KQoxNDQ3NDogewoxNDQ3NDogIGFzbSBfX2lubGluZSB2b2xhdGlsZSAoIiMgQUxU
OiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgInByZWZldGNodDAgJVAxIiAiXG42NjI6XG4iICIjIEFM
VDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIg
IjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0
aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQi
IjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA2KjMyKyA4KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIi
Yi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5
dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFs
dGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAi
XG4iICI2NjQiIjEiIjpcblx0IiAicHJlZmV0Y2h3ICVQMSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAi
LnBvcHNlY3Rpb25cbiIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkpCjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgc3Bpbl9sb2NrX3ByZWZldGNoKGNvbnN0IHZvaWQgKngpCjE0NDc0OiB7CjE0
NDc0OiAgcHJlZmV0Y2h3KHgpOwoxNDQ3NDogfQoxNDQ3NDogIyA5MjUgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vcHJvY2Vzc29yLmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBLU1RLX0VT
UChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgc3RhcnRfdGhyZWFkKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25l
ZCBsb25nIG5ld19pcCwKMTQ0NzQ6ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3X3NwKTsK
MTQ0NzQ6ICMgOTQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgoxNDQ3NDog
ZXh0ZXJuIGludCBnZXRfdHNjX21vZGUodW5zaWduZWQgbG9uZyBhZHIpOwoxNDQ3NDogZXh0ZXJu
IGludCBzZXRfdHNjX21vZGUodW5zaWduZWQgaW50IHZhbCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5cGVvZl9f
KHU2NCkgbXNyX21pc2NfZmVhdHVyZXNfc2hhZG93OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiB1MTYgYW1kX2dldF9uYl9pZChpbnQgY3B1KTsKMTQ0NzQ6IGV4dGVybiB1MzIgYW1kX2dl
dF9ub2Rlc19wZXJfc29ja2V0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVpbnQzMl90IGh5cGVydmlzb3JfY3B1aWRfYmFzZShjb25zdCBjaGFy
ICpzaWcsIHVpbnQzMl90IGxlYXZlcykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1aW50MzJfdCBiYXNlLCBl
YXgsIHNpZ25hdHVyZVszXTsKMTQ0NzQ6IAoxNDQ3NDogIGZvciAoYmFzZSA9IDB4NDAwMDAwMDA7
IGJhc2UgPCAweDQwMDEwMDAwOyBiYXNlICs9IDB4MTAwKSB7CjE0NDc0OiAgIGNwdWlkKGJhc2Us
ICZlYXgsICZzaWduYXR1cmVbMF0sICZzaWduYXR1cmVbMV0sICZzaWduYXR1cmVbMl0pOwoxNDQ3
NDogCjE0NDc0OiAgIGlmICghbWVtY21wKHNpZywgc2lnbmF0dXJlLCAxMikgJiYKMTQ0NzQ6ICAg
ICAgIChsZWF2ZXMgPT0gMCB8fCAoKGVheCAtIGJhc2UpID49IGxlYXZlcykpKQoxNDQ3NDogICAg
cmV0dXJuIGJhc2U7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGFyY2hfYWxpZ25fc3RhY2sodW5z
aWduZWQgbG9uZyBzcCk7CjE0NDc0OiB2b2lkIGZyZWVfaW5pdF9wYWdlcyhjb25zdCBjaGFyICp3
aGF0LCB1bnNpZ25lZCBsb25nIGJlZ2luLCB1bnNpZ25lZCBsb25nIGVuZCk7CjE0NDc0OiBleHRl
cm4gdm9pZCBmcmVlX2tlcm5lbF9pbWFnZV9wYWdlcyhjb25zdCBjaGFyICp3aGF0LCB2b2lkICpi
ZWdpbiwgdm9pZCAqZW5kKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkZWZhdWx0X2lkbGUodm9pZCk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2
b2lkIHN0b3BfdGhpc19jcHUodm9pZCAqZHVtbXkpOwoxNDQ3NDogdm9pZCBtaWNyb2NvZGVfY2hl
Y2sodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gbDF0Zl9taXRpZ2F0aW9ucyB7CjE0NDc0OiAg
TDFURl9NSVRJR0FUSU9OX09GRiwKMTQ0NzQ6ICBMMVRGX01JVElHQVRJT05fRkxVU0hfTk9XQVJO
LAoxNDQ3NDogIEwxVEZfTUlUSUdBVElPTl9GTFVTSCwKMTQ0NzQ6ICBMMVRGX01JVElHQVRJT05f
RkxVU0hfTk9TTVQsCjE0NDc0OiAgTDFURl9NSVRJR0FUSU9OX0ZVTEwsCjE0NDc0OiAgTDFURl9N
SVRJR0FUSU9OX0ZVTExfRk9SQ0UKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBlbnVt
IGwxdGZfbWl0aWdhdGlvbnMgbDF0Zl9taXRpZ2F0aW9uOwoxNDQ3NDogCjE0NDc0OiBlbnVtIG1k
c19taXRpZ2F0aW9ucyB7CjE0NDc0OiAgTURTX01JVElHQVRJT05fT0ZGLAoxNDQ3NDogIE1EU19N
SVRJR0FUSU9OX0ZVTEwsCjE0NDc0OiAgTURTX01JVElHQVRJT05fVk1XRVJWLAoxNDQ3NDogfTsK
MTQ0NzQ6ICMgNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgiIDIKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY3B1
aWRfbGVhZnMKMTQ0NzQ6IHsKMTQ0NzQ6ICBDUFVJRF8xX0VEWCA9IDAsCjE0NDc0OiAgQ1BVSURf
ODAwMF8wMDAxX0VEWCwKMTQ0NzQ6ICBDUFVJRF84MDg2XzAwMDFfRURYLAoxNDQ3NDogIENQVUlE
X0xOWF8xLAoxNDQ3NDogIENQVUlEXzFfRUNYLAoxNDQ3NDogIENQVUlEX0MwMDBfMDAwMV9FRFgs
CjE0NDc0OiAgQ1BVSURfODAwMF8wMDAxX0VDWCwKMTQ0NzQ6ICBDUFVJRF9MTlhfMiwKMTQ0NzQ6
ICBDUFVJRF9MTlhfMywKMTQ0NzQ6ICBDUFVJRF83XzBfRUJYLAoxNDQ3NDogIENQVUlEX0RfMV9F
QVgsCjE0NDc0OiAgQ1BVSURfTE5YXzQsCjE0NDc0OiAgQ1BVSURfN18xX0VBWCwKMTQ0NzQ6ICBD
UFVJRF84MDAwXzAwMDhfRUJYLAoxNDQ3NDogIENQVUlEXzZfRUFYLAoxNDQ3NDogIENQVUlEXzgw
MDBfMDAwQV9FRFgsCjE0NDc0OiAgQ1BVSURfN19FQ1gsCjE0NDc0OiAgQ1BVSURfODAwMF8wMDA3
X0VCWCwKMTQ0NzQ6ICBDUFVJRF83X0VEWCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25zdCB4ODZfY2FwX2ZsYWdzWzE5KjMyXTsKMTQ0NzQ6
IGV4dGVybiBjb25zdCBjaGFyICogY29uc3QgeDg2X3Bvd2VyX2ZsYWdzWzMyXTsKMTQ0NzQ6ICMg
NDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIgoxNDQ3NDogZXh0ZXJuIGNv
bnN0IGNoYXIgKiBjb25zdCB4ODZfYnVnX2ZsYWdzWzEqMzJdOwoxNDQ3NDogIyAxNDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0dXBf
Y2xlYXJfY3B1X2NhcCh1bnNpZ25lZCBpbnQgYml0KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsZWFy
X2NwdV9jYXAoc3RydWN0IGNwdWluZm9feDg2ICpjLCB1bnNpZ25lZCBpbnQgYml0KTsKMTQ0NzQ6
ICMgMTczICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBfc3RhdGljX2NwdV9oYXModTE2IGJp
dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGFzbSBnb3RvKCIxOiBqbXAgNmZcbiIgIjI6XG4iICIu
c2tpcCAtKCgoNWYtNGYpIC0gKDJiLTFiKSkgPiAwKSAqICIgIigoNWYtNGYpIC0gKDJiLTFiKSks
MHg5MFxuIiAiMzpcbiIgIi5zZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9u
ZyAxYiAtIC5cbiIgIiAubG9uZyA0ZiAtIC5cbiIgIiAud29yZCAlUFthbHdheXNdXG4iICIgLmJ5
dGUgM2IgLSAxYlxuIiAiIC5ieXRlIDVmIC0gNGZcbiIgIiAuYnl0ZSAzYiAtIDJiXG4iICIucHJl
dmlvdXNcbiIgIi5zZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCxcImF4XCJcbiIgIjQ6IGpt
cCAlbFt0X25vXVxuIiAiNTpcbiIgIi5wcmV2aW91c1xuIiAiLnNlY3Rpb24gLmFsdGluc3RydWN0
aW9ucyxcImFcIlxuIiAiIC5sb25nIDFiIC0gLlxuIiAiIC5sb25nIDBcbiIgIiAud29yZCAlUFtm
ZWF0dXJlXVxuIiAiIC5ieXRlIDNiIC0gMWJcbiIgIiAuYnl0ZSAwXG4iICIgLmJ5dGUgMFxuIiAi
LnByZXZpb3VzXG4iICIuc2VjdGlvbiAuYWx0aW5zdHJfYXV4LFwiYXhcIlxuIiAiNjpcbiIgIiB0
ZXN0YiAlW2JpdG51bV0sJVtjYXBfYnl0ZV1cbiIgIiBqbnogJWxbdF95ZXNdXG4iICIgam1wICVs
W3Rfbm9dXG4iICIucHJldmlvdXNcbiIgOiA6IFtmZWF0dXJlXSAiaSIgKGJpdCksIFthbHdheXNd
ICJpIiAoKCAzKjMyKzIxKSksIFtiaXRudW1dICJpIiAoMSA8PCAoYml0ICYgNykpLCBbY2FwX2J5
dGVdICJtIiAoKChjb25zdCBjaGFyICopYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSlbYml0
ID4+IDNdKSA6IDogdF95ZXMsIHRfbm8pOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkKMTQ0NzQ6ICMg
MjEwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIKMTQ0NzQ6ICAgICAgICAg
ICAgICAgICAgICA7CjE0NDc0OiB0X3llczoKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IHRf
bm86CjE0NDc0OiAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogfQoxNDQ3NDogIyA1NCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IHRocmVhZF9pbmZvIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogIHUz
MiBzdGF0dXM7CjE0NDc0OiB9OwoxNDQ3NDogIyAxODYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
dGhyZWFkX2luZm8uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBhcmNoX3dpdGhpbl9zdGFja19mcmFtZXMoY29uc3Qg
dm9pZCAqIGNvbnN0IHN0YWNrLAoxNDQ3NDogICAgICAgICBjb25zdCB2b2lkICogY29uc3Qgc3Rh
Y2tlbmQsCjE0NDc0OiAgICAgICAgIGNvbnN0IHZvaWQgKm9iaiwgdW5zaWduZWQgbG9uZyBsZW4p
CjE0NDc0OiB7CjE0NDc0OiAjIDIxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5m
by5oIgoxNDQ3NDogIHJldHVybiBOT1RfU1RBQ0s7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjQyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgiCjE0NDc0OiBleHRlcm4g
dm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYXJjaF9k
dXBfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICpkc3QsIHN0cnVjdCB0YXNrX3N0cnVj
dCAqc3JjKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFyY2hfcmVsZWFzZV90YXNrX3N0cnVjdChzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnRzayk7CjE0NDc0OiBleHRlcm4gdm9pZCBhcmNoX3NldHVwX25ld19l
eGVjKHZvaWQpOwoxNDQ3NDogIyAzOSAiLi9pbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmgiIDIK
MTQ0NzQ6ICMgNTMgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBz
ZXRfdGlfdGhyZWFkX2ZsYWcoc3RydWN0IHRocmVhZF9pbmZvICp0aSwgaW50IGZsYWcpCjE0NDc0
OiB7CjE0NDc0OiAgc2V0X2JpdChmbGFnLCAodW5zaWduZWQgbG9uZyAqKSZ0aS0+ZmxhZ3MpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX3RpX3RocmVhZF9mbGFnKHN0cnVjdCB0
aHJlYWRfaW5mbyAqdGksIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIGNsZWFyX2JpdChmbGFn
LCAodW5zaWduZWQgbG9uZyAqKSZ0aS0+ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHVwZGF0ZV90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgZmxh
ZywKMTQ0NzQ6ICAgICAgIGJvb2wgdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHZhbHVlKQox
NDQ3NDogICBzZXRfdGlfdGhyZWFkX2ZsYWcodGksIGZsYWcpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6
ICAgY2xlYXJfdGlfdGhyZWFkX2ZsYWcodGksIGZsYWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgdGVzdF9hbmRfc2V0X3RpX3RocmVhZF9mbGFnKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGks
IGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KGZsYWcs
ICh1bnNpZ25lZCBsb25nICopJnRpLT5mbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCB0ZXN0X2FuZF9jbGVhcl90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBp
bnQgZmxhZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KGZsYWcs
ICh1bnNpZ25lZCBsb25nICopJnRpLT5mbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCB0ZXN0X3RpX3RocmVhZF9mbGFnKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGksIGludCBmbGFnKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiB0ZXN0X2JpdChmbGFnLCAodW5zaWduZWQgbG9uZyAqKSZ0
aS0+ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRf
aW5mby5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja19vYmplY3Rfc2l6ZShjb25zdCB2b2lkICpwdHIsIHVu
c2lnbmVkIGxvbmcgbiwKMTQ0NzQ6ICAgICAgICAgIGJvb2wgdG9fdXNlcikKMTQ0NzQ6IHsgfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fZXJyb3Jf
XygiY29weSBzb3VyY2Ugc2l6ZSBpcyB0b28gc21hbGwiKSkpCjE0NDc0OiBfX2JhZF9jb3B5X2Zy
b20odm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oImNv
cHkgZGVzdGluYXRpb24gc2l6ZSBpcyB0b28gc21hbGwiKSkpCjE0NDc0OiBfX2JhZF9jb3B5X3Rv
KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNvcHlfb3ZlcmZsb3coaW50IHNpemUsIHVuc2ln
bmVkIGxvbmcgY291bnQpCjE0NDc0OiB7CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
ISgxKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IF9f
d2Fybl9wcmludGsoIkJ1ZmZlciBvdmVyZmxvdyBkZXRlY3RlZCAoJWQgPCAlbHUpIVxuIiwgc2l6
ZSwgY291bnQpOyBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUg
MHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpc
dCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQi
ICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQg
JWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5
OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNs
dWRlL2xpbnV4L3RocmVhZF9pbmZvLmgiKSwgImkiICgxMzQpLCAiaSIgKCgxIDw8IDApfCgoMSA8
PCAzKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3
aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMCkpOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIGJvb2wKMTQ0NzQ6IGNoZWNrX2NvcHlfc2l6ZShjb25zdCB2b2lkICph
ZGRyLCBzaXplX3QgYnl0ZXMsIGJvb2wgaXNfc291cmNlKQoxNDQ3NDogewoxNDQ3NDogIGludCBz
eiA9IF9fYnVpbHRpbl9vYmplY3Rfc2l6ZShhZGRyLCAwKTsKMTQ0NzQ6ICBpZiAoX19idWlsdGlu
X2V4cGVjdCghIShzeiA+PSAwICYmIHN6IDwgYnl0ZXMpLCAwKSkgewoxNDQ3NDogICBpZiAoIV9f
YnVpbHRpbl9jb25zdGFudF9wKGJ5dGVzKSkKMTQ0NzQ6ICAgIGNvcHlfb3ZlcmZsb3coc3osIGJ5
dGVzKTsKMTQ0NzQ6ICAgZWxzZSBpZiAoaXNfc291cmNlKQoxNDQ3NDogICAgX19iYWRfY29weV9m
cm9tKCk7CjE0NDc0OiAgIGVsc2UKMTQ0NzQ6ICAgIF9fYmFkX2NvcHlfdG8oKTsKMTQ0NzQ6ICAg
cmV0dXJuIGZhbHNlOwoxNDQ3NDogIH0KMTQ0NzQ6ICBpZiAoKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhIShieXRlcyA+ICgoaW50KSh+MFUgPj4gMSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0
IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdc
IlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRk
clxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIg
Ilx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMg
YnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAi
aSIgKCJpbmNsdWRlL2xpbnV4L3RocmVhZF9pbmZvLmgiKSwgImkiICgxNTApLCAiaSIgKCgxIDw8
IDApfCgoMSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rp
b24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoMSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3Qo
ISEoX19yZXRfd2Fybl9vbiksIDApOyB9KSkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDog
IGNoZWNrX29iamVjdF9zaXplKGFkZHIsIGJ5dGVzLCBpc19zb3VyY2UpOwoxNDQ3NDogIHJldHVy
biB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogIyA4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVt
cHQuaCIgMgoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRh
dGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhpbnQpIF9fcHJlZW1wdF9jb3VudDsKMTQ0NzQ6
ICMgMjQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcHJlZW1wdF9jb3VudCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoX19wcmVlbXB0X2NvdW50KSBwZm9fcmV0X187IHN3
aXRjaCAoc2l6ZW9mKF9fcHJlZW1wdF9jb3VudCkpIHsgY2FzZSAxOiBhc20gKCJtb3YiICJiICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVt
cHRfY291bnQpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJy
ZWFrOyBjYXNlIDQ6IGFzbSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsgY2FzZSA4OiBh
c20gKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gcGZvX3JldF9fOyB9KSAmIH4weDgwMDAwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgcHJlZW1wdF9jb3Vu
dF9zZXQoaW50IHBjKQoxNDQ3NDogewoxNDQ3NDogIGludCBvbGQsIG5ldzsKMTQ0NzQ6IAoxNDQ3
NDogIGRvIHsKMTQ0NzQ6ICAgb2xkID0gKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3Jl
dF9fOyBzd2l0Y2ggKHNpemVvZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92
IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAo
X19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3Vu
dCkpOyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNh
c2UgODogYXNtICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7CjE0NDc0OiAgIG5ldyA9IChvbGQgJiAweDgw
MDAwMDAwKSB8CjE0NDc0OiAgICAocGMgJiB+MHg4MDAwMDAwMCk7CjE0NDc0OiAgfSB3aGlsZSAo
KHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGNvX3JldF9fOyB0eXBlb2YoX19wcmVlbXB0X2Nv
dW50KSBwY29fb2xkX18gPSAob2xkKTsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGNvX25ld19f
ID0gKG5ldyk7IHN3aXRjaCAoc2l6ZW9mKF9fcHJlZW1wdF9jb3VudCkpIHsgY2FzZSAxOiBhc20g
KCJjbXB4Y2hnYiAlMiwgIiIlJSIiZ3MiIjoiICIlIiAiMSIgOiAiPWEiIChwY29fcmV0X18pLCAi
K20iIChfX3ByZWVtcHRfY291bnQpIDogInEiIChwY29fbmV3X18pLCAiMCIgKHBjb19vbGRfXykg
OiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDI6IGFzbSAoImNtcHhjaGd3ICUyLCAiIiUlIiJncyIi
OiIgIiUiICIxIiA6ICI9YSIgKHBjb19yZXRfXyksICIrbSIgKF9fcHJlZW1wdF9jb3VudCkgOiAi
ciIgKHBjb19uZXdfXyksICIwIiAocGNvX29sZF9fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
NDogYXNtICgiY21weGNoZ2wgJTIsICIiJSUiImdzIiI6IiAiJSIgIjEiIDogIj1hIiAocGNvX3Jl
dF9fKSwgIittIiAoX19wcmVlbXB0X2NvdW50KSA6ICJyIiAocGNvX25ld19fKSwgIjAiIChwY29f
b2xkX18pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBhc20gKCJjbXB4Y2hncSAlMiwgIiIl
JSIiZ3MiIjoiICIlIiAiMSIgOiAiPWEiIChwY29fcmV0X18pLCAiK20iIChfX3ByZWVtcHRfY291
bnQpIDogInIiIChwY29fbmV3X18pLCAiMCIgKHBjb19vbGRfXykgOiAibWVtb3J5Iik7IGJyZWFr
OyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBjb19yZXRfXzsgfSkgIT0gb2xkKTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNldF9wcmVlbXB0
X25lZWRfcmVzY2hlZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KF9fcHJlZW1wdF9jb3VudCkpIHB0b19UX187IGlmICgwKSB7IHB0b19UX18gcHRvX3RtcF9fOyBw
dG9fdG1wX18gPSAofjB4ODAwMDAwMDApOyAodm9pZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXpl
b2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7IGNhc2UgMTogYXNtICgiYW5kIiAiYiAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJxaSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgiYW5kIiAidyAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyaSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNhc2UgNDogYXNtICgiYW5kIiAibCAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyaSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNhc2UgODogYXNtICgiYW5kIiAicSAlMSwiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyZSIgKChwdG9fVF9f
KSh+MHg4MDAwMDAwMCkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0g
fSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBjbGVhcl9wcmVlbXB0X25lZWRfcmVzY2hlZCh2b2lkKQoxNDQ3
NDogewoxNDQ3NDogIGRvIHsgdHlwZWRlZiB0eXBlb2YoKF9fcHJlZW1wdF9jb3VudCkpIHB0b19U
X187IGlmICgwKSB7IHB0b19UX18gcHRvX3RtcF9fOyBwdG9fdG1wX18gPSAoMHg4MDAwMDAwMCk7
ICh2b2lkKXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoX19wcmVlbXB0X2NvdW50KSkpIHsg
Y2FzZSAxOiBhc20gKCJvciIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19w
cmVlbXB0X2NvdW50KSkgOiAicWkiICgocHRvX1RfXykoMHg4MDAwMDAwMCkpKTsgYnJlYWs7IGNh
c2UgMjogYXNtICgib3IiICJ3ICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJl
ZW1wdF9jb3VudCkpIDogInJpIiAoKHB0b19UX18pKDB4ODAwMDAwMDApKSk7IGJyZWFrOyBjYXNl
IDQ6IGFzbSAoIm9yIiAibCAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVt
cHRfY291bnQpKSA6ICJyaSIgKChwdG9fVF9fKSgweDgwMDAwMDAwKSkpOyBicmVhazsgY2FzZSA4
OiBhc20gKCJvciIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0
X2NvdW50KSkgOiAicmUiICgocHRvX1RfXykoMHg4MDAwMDAwMCkpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCB0ZXN0X3ByZWVtcHRf
bmVlZF9yZXNjaGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICEoKHsgdHlwZW9mKF9f
cHJlZW1wdF9jb3VudCkgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihfX3ByZWVtcHRfY291bnQp
KSB7IGNhc2UgMTogYXNtICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1x
IiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDI6IGFz
bSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykg
OiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVt
cHRfY291bnQpKTsgYnJlYWs7IGNhc2UgODogYXNtICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSkgJiAweDgw
MDAwMDAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19wcmVlbXB0
X2NvdW50X2FkZChpbnQgdmFsKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KF9fcHJlZW1wdF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0
aW5fY29uc3RhbnRfcCh2YWwpICYmICgodmFsKSA9PSAxIHx8ICh2YWwpID09IC0xKSkgPyAoaW50
KSh2YWwpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9ICh2YWwp
OyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7
IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkg
YXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQp
KSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19w
cmVlbXB0X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykodmFsKSkpOyBicmVhazsgY2FzZSAyOiBp
ZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291
bnQpKSA6ICJyaSIgKChwYW9fVF9fKSh2YWwpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1w
dF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGwg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKHZhbCkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmUiICgocGFvX1Rf
XykodmFsKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxl
ICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIF9fcHJlZW1wdF9jb3VudF9zdWIoaW50IHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBkbyB7IHR5cGVkZWYgdHlwZW9mKChfX3ByZWVtcHRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBp
bnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLXZhbCkgJiYgKCgtdmFsKSA9PSAx
IHx8ICgtdmFsKSA9PSAtMSkpID8gKGludCkoLXZhbCkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBh
b190bXBfXzsgcGFvX3RtcF9fID0gKC12YWwpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChz
aXplb2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicWkiICgocGFvX1Rf
XykoLXZhbCkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLXZhbCkp
KTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURf
XyA9PSAtMSkgYXNtICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVt
cHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLXZhbCkpKTsgYnJlYWs7
IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkg
YXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQp
KSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19w
cmVlbXB0X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLXZhbCkpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgX19wcmVlbXB0X2NvdW50X2RlY19hbmRfdGVzdCh2
b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoImRl
Y2wiICIgIiAiJSUiImdzIiI6IiAiJSIgIlt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iIChfX3ByZWVtcHRfY291bnQpLCAiPUBjYyIg
ImUiIChjKSA6IDogIm1lbW9yeSIpOyBjOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBi
b29sIHNob3VsZF9yZXNjaGVkKGludCBwcmVlbXB0X29mZnNldCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gX19idWlsdGluX2V4cGVjdCghISgoeyB0eXBlb2YoX19wcmVlbXB0X2NvdW50KSBwZm9f
cmV0X187IHN3aXRjaCAoc2l6ZW9mKF9fcHJlZW1wdF9jb3VudCkpIHsgY2FzZSAxOiBhc20gKCJt
b3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0i
IChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgMjogYXNtICgibW92IiAidyAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2Nv
dW50KSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsg
Y2FzZSA4OiBhc20gKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KSA9PSBwcmVlbXB0X29mZnNldCksIDApOwox
NDQ3NDogfQoxNDQ3NDogIyA3OSAiLi9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaCIgMgoxNDQ3NDog
IyAyNzcgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCjE0NDc0OiBzdHJ1Y3QgcHJlZW1wdF9u
b3RpZmllcjsKMTQ0NzQ6ICMgMjkzICIuL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oIgoxNDQ3NDog
c3RydWN0IHByZWVtcHRfb3BzIHsKMTQ0NzQ6ICB2b2lkICgqc2NoZWRfaW4pKHN0cnVjdCBwcmVl
bXB0X25vdGlmaWVyICpub3RpZmllciwgaW50IGNwdSk7CjE0NDc0OiAgdm9pZCAoKnNjaGVkX291
dCkoc3RydWN0IHByZWVtcHRfbm90aWZpZXIgKm5vdGlmaWVyLAoxNDQ3NDogICAgICBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKm5leHQpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzA2ICIuL2luY2x1ZGUvbGlu
dXgvcHJlZW1wdC5oIgoxNDQ3NDogc3RydWN0IHByZWVtcHRfbm90aWZpZXIgewoxNDQ3NDogIHN0
cnVjdCBobGlzdF9ub2RlIGxpbms7CjE0NDc0OiAgc3RydWN0IHByZWVtcHRfb3BzICpvcHM7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHByZWVtcHRfbm90aWZpZXJfaW5jKHZvaWQpOwox
NDQ3NDogdm9pZCBwcmVlbXB0X25vdGlmaWVyX2RlYyh2b2lkKTsKMTQ0NzQ6IHZvaWQgcHJlZW1w
dF9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgcHJlZW1wdF9ub3RpZmllciAqbm90aWZpZXIpOwox
NDQ3NDogdm9pZCBwcmVlbXB0X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IHByZWVtcHRfbm90
aWZpZXIgKm5vdGlmaWVyKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwcmVlbXB0X25vdGlmaWVyX2lu
aXQoc3RydWN0IHByZWVtcHRfbm90aWZpZXIgKm5vdGlmaWVyLAoxNDQ3NDogICAgICAgICAgc3Ry
dWN0IHByZWVtcHRfb3BzICpvcHMpCjE0NDc0OiB7CjE0NDc0OiAgSU5JVF9ITElTVF9OT0RFKCZu
b3RpZmllci0+bGluayk7CjE0NDc0OiAgbm90aWZpZXItPm9wcyA9IG9wczsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgNTIgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9ib3R0b21faGFsZi5oIiAxCjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvbGludXgvYm90dG9tX2hh
bGYuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX2xv
Y2FsX2JoX2Rpc2FibGVfaXAodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgaW50IGNudCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBfX3ByZWVtcHRfY291bnRfYWRkKGNudCk7CjE0NDc0OiAgX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGxvY2FsX2JoX2Rpc2FibGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2xvY2Fs
X2JoX2Rpc2FibGVfaXAoKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9u
ZykmJl9faGVyZTsgfSksICgyICogKDFVTCA8PCAoMCArIDgpKSkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBfbG9jYWxfYmhfZW5hYmxlKHZvaWQpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19sb2NhbF9iaF9lbmFibGVfaXAodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgaW50
IGNudCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9jYWxfYmhfZW5hYmxlX2lwKHVuc2lnbmVkIGxv
bmcgaXApCjE0NDc0OiB7CjE0NDc0OiAgX19sb2NhbF9iaF9lbmFibGVfaXAoaXAsICgyICogKDFV
TCA8PCAoMCArIDgpKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2FsX2JoX2Vu
YWJsZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIF9fbG9jYWxfYmhfZW5hYmxlX2lwKCh7IF9fbGFi
ZWxfXyBfX2hlcmU7IF9faGVyZTogKHVuc2lnbmVkIGxvbmcpJiZfX2hlcmU7IH0pLCAoMiAqICgx
VUwgPDwgKDAgKyA4KSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTkgIi4vaW5jbHVkZS9saW51eC9z
cGlubG9jay5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVy
YXRlZC9hc20vbW1pb3diLmgiIDEKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL21t
aW93Yi5oIiAxCjE0NDc0OiAjIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvYXNtL21t
aW93Yi5oIiAyCjE0NDc0OiAjIDYxICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIgMgoxNDQ3
NDogIyA4MyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9zcGlubG9ja190eXBlcy5oIiAxCjE0NDc0OiAjIDE4ICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2tfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIg
MQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIKMTQ0NzQ6IHN0cnVjdCB0
YXNrX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBsb2NrZGVwX21hcDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IHByb3ZlX2xvY2tpbmc7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tfc3Rh
dDsKMTQ0NzQ6ICMgNDEzICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBs
b2NrZGVwX2luaXRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9vZmYodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVwX29uKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9zZXRfc2VsZnRlc3RfdGFzayhzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAjIDQ1OCAiLi9pbmNsdWRl
L2xpbnV4L2xvY2tkZXAuaCIKMTQ0NzQ6IHN0cnVjdCBsb2NrX2NsYXNzX2tleSB7IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgbG9ja2RlcF9yZWdpc3Rlcl9rZXkoc3RydWN0IGxvY2tfY2xhc3Nfa2V5
ICprZXkpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF91bnJl
Z2lzdGVyX2tleShzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxvY2tkZXBfbWFw
IHsgfTsKMTQ0NzQ6ICMgNDg0ICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgoxNDQ3NDogc3Ry
dWN0IHBpbl9jb29raWUgeyB9OwoxNDQ3NDogIyA0OTQgIi4vaW5jbHVkZS9saW51eC9sb2NrZGVw
LmgiCjE0NDc0OiBlbnVtIHhobG9ja19jb250ZXh0X3QgewoxNDQ3NDogIFhITE9DS19IQVJELAox
NDQ3NDogIFhITE9DS19TT0ZULAoxNDQ3NDogIFhITE9DS19DVFhfTlIsCjE0NDc0OiB9OwoxNDQ3
NDogIyA1MDggIi4vaW5jbHVkZS9saW51eC9sb2NrZGVwLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2tkZXBf
aW52YXJpYW50X3N0YXRlKGJvb2wgZm9yY2UpIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2tkZXBfZnJlZV90
YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykge30KMTQ0NzQ6ICMgNTcwICIuL2luY2x1ZGUv
bGludXgvbG9ja2RlcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwcmludF9pcnF0cmFjZV9ldmVudHMoc3RydWN0
IHRhc2tfc3RydWN0ICpjdXJyKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyA2NjggIi4vaW5j
bHVkZS9saW51eC9sb2NrZGVwLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBsb2NrZGVwX3JjdV9zdXNw
aWNpb3VzKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLCBjb25zdCBjaGFyICpzKQox
NDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyAxOSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5
cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgcmF3X3NwaW5sb2NrIHsKMTQ0
NzQ6ICBhcmNoX3NwaW5sb2NrX3QgcmF3X2xvY2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0gcmF3X3NwaW5sb2NrX3Q7CjE0
NDc0OiAjIDYxICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfdHlwZXMuaCIKMTQ0NzQ6IHR5cGVk
ZWYgc3RydWN0IHNwaW5sb2NrIHsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCByYXdf
c3BpbmxvY2sgcmxvY2s7CjE0NDc0OiAjIDcyICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfdHlw
ZXMuaCIKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBzcGlubG9ja190OwoxNDQ3NDogIyA4MyAiLi9pbmNs
dWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9y
d2xvY2tfdHlwZXMuaCIgMQoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja190eXBl
cy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIGFyY2hfcndsb2NrX3QgcmF3X2xv
Y2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IH0gcndsb2NrX3Q7CjE0NDc0OiAjIDg0ICIuL2luY2x1ZGUvbGludXgvc3Bpbmxv
Y2tfdHlwZXMuaCIgMgoxNDQ3NDogIyA4NCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMQoxNDQ3NDogIyAxMCAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGlubG9jay5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0LmgiIDEKMTQ0NzQ6ICMgMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZp
cnQuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcmFtZS5oIiAxCjE0NDc0
OiAjIDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdW5zaWduZWQgbG9uZyBsb25nIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuICh7IHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldDsgdW5zaWduZWQgbG9u
ZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9f
ZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy50aW1lLnNjaGVkX2Nsb2NrKTsgaWYg
KHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpID4gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7IGFz
bSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1
c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIg
IlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5
cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZp
cnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMi
IChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiPWEiIChfX2VheCksICIrciIg
KGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWls
dGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgdGltZS5zY2hlZF9j
bG9jaykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMu
dGltZS5zY2hlZF9jbG9jaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAx
KSkgOiAibWVtb3J5IiwgImNjIiAsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7IF9fcmV0ID0g
KHVuc2lnbmVkIGxvbmcgbG9uZykoKCgodTY0KV9fZWR4KSA8PCAzMikgfCBfX2VheCk7IH0gZWxz
ZSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAi
LnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxu
IiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4
IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2
aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNb
cGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkp
LCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiPWEiIChfX2VheCks
ICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgo
X19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgdGltZS5z
Y2hlZF9jbG9jaykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihw
dl9vcHMudGltZS5zY2hlZF9jbG9jaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwg
OSkgLSAxKSkgOiAibWVtb3J5IiwgImNjIiAsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7IF9f
cmV0ID0gKHVuc2lnbmVkIGxvbmcgbG9uZykoX19lYXggJiAoeyB1bnNpZ25lZCBsb25nIF9fbWFz
ayA9IH4wVUw7IHN3aXRjaCAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykpIHsgY2FzZSAxOiBf
X21hc2sgPSAweGZmVUw7IGJyZWFrOyBjYXNlIDI6IF9fbWFzayA9IDB4ZmZmZlVMOyBicmVhazsg
Y2FzZSA0OiBfX21hc2sgPSAweGZmZmZmZmZmVUw7IGJyZWFrOyBkZWZhdWx0OiBicmVhazsgfSBf
X21hc2s7IH0pKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBz
dGF0aWNfa2V5OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFs
X2VuYWJsZWQ7CjE0NDc0OiBleHRlcm4gc3RydWN0IHN0YXRpY19rZXkgcGFyYXZpcnRfc3RlYWxf
cnFfZW5hYmxlZDsKMTQ0NzQ6IAoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19leHRlcm5hbGx5X3Zp
c2libGVfXykpIHZvaWQgX19uYXRpdmVfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3Bpbmxv
Y2sgKmxvY2spOwoxNDQ3NDogYm9vbCBwdl9pc19uYXRpdmVfc3Bpbl91bmxvY2sodm9pZCk7CjE0
NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgYm9vbCBfX25hdGl2
ZV92Y3B1X2lzX3ByZWVtcHRlZChsb25nIGNwdSk7CjE0NDc0OiBib29sIHB2X2lzX25hdGl2ZV92
Y3B1X2lzX3ByZWVtcHRlZCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IHBhcmF2aXJ0X3N0ZWFs
X2Nsb2NrKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHU2NCBfX3JldDsgdW5z
aWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBf
X2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy50aW1lLnN0ZWFsX2Ns
b2NrKTsgaWYgKHNpemVvZih1NjQpID4gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7IGFzbSB2b2xh
dGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRw
b2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25c
blx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0
aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAi
ICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1d
IiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xv
YmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2Vz
aSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiPWEiIChfX2VheCksICIrciIgKGN1cnJl
bnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWlsdGluX29m
ZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgdGltZS5zdGVhbF9jbG9jaykg
LyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMudGltZS5z
dGVhbF9jbG9jaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJE
IiAoKHVuc2lnbmVkIGxvbmcpKGNwdSkpIDogIm1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAi
cjEwIiwgInIxMSIpOyBfX3JldCA9ICh1NjQpKCgoKHU2NClfX2VkeCkgPDwgMzIpIHwgX19lYXgp
OyB9IGVsc2UgeyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTli
XG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIg
Ijc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5i
YWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIl
Y1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0
ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIg
KF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIj1hIiAo
X19lYXgpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1d
ICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUs
IHRpbWUuc3RlYWxfY2xvY2spIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAi
aSIgKCYocHZfb3BzLnRpbWUuc3RlYWxfY2xvY2spKSwgW3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAo
KCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShjcHUpKSA6ICJtZW1vcnkiLCAi
Y2MiICwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgX19yZXQgPSAodTY0KShfX2VheCAmICh7
IHVuc2lnbmVkIGxvbmcgX19tYXNrID0gfjBVTDsgc3dpdGNoIChzaXplb2YodTY0KSkgeyBjYXNl
IDE6IF9fbWFzayA9IDB4ZmZVTDsgYnJlYWs7IGNhc2UgMjogX19tYXNrID0gMHhmZmZmVUw7IGJy
ZWFrOyBjYXNlIDQ6IF9fbWFzayA9IDB4ZmZmZmZmZmZVTDsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFr
OyB9IF9fbWFzazsgfSkpOyB9IF9fcmV0OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHNsb3dfZG93bl9pbyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHB2X29wcy5jcHUu
aW9fZGVsYXkoKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19mbHVzaF90bGIodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICAoeyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0g
X19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLm1tdS5m
bHVzaF90bGJfdXNlcik7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5w
dXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAi
IDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIg
IlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIg
IiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRl
ICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAu
c2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDog
Ij1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAi
K3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9f
YnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5mbHVz
aF90bGJfdXNlcikgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihw
dl9vcHMubW11LmZsdXNoX3RsYl91c2VyKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8
PCA5KSAtIDEpKSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAi
cjExIik7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fZmx1c2hfdGxiX2dsb2Jh
bCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogICh7IHVuc2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwg
X19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2Vh
eDs7ICgodm9pZClwdl9vcHMubW11LmZsdXNoX3RsYl9rZXJuZWwpOyBhc20gdm9sYXRpbGUoIiIg
Ijc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3Nh
ZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNh
bGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFy
YWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVh
ZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAi
ICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAi
XG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQi
IChfX2VkeCksICI9YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtw
YXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0
X3BhdGNoX3RlbXBsYXRlLCBtbXUuZmx1c2hfdGxiX2tlcm5lbCkgLyBzaXplb2Yodm9pZCAqKSkp
LCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMubW11LmZsdXNoX3RsYl9rZXJuZWwpKSwg
W3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpIDogIm1lbW9yeSIsICJjYyIg
LCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19mbHVzaF90bGJfb25lX3VzZXIodW5zaWduZWQgbG9uZyBhZGRyKQoxNDQ3
NDogewoxNDQ3NDogICh7IHVuc2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2Vz
aSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClw
dl9vcHMubW11LmZsdXNoX3RsYl9vbmVfdXNlcik7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQi
ICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIg
IiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFy
YXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rp
b25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3
NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3
MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3Bz
ZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwg
Ij1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5
cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVt
cGxhdGUsIG1tdS5mbHVzaF90bGJfb25lX3VzZXIpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2
aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLm1tdS5mbHVzaF90bGJfb25lX3VzZXIpKSwgW3BhcmF2
aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShh
ZGRyKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIp
OyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmbHVzaF90bGJfb3RoZXJzKGNvbnN0
IHN0cnVjdCBjcHVtYXNrICpjcHVtYXNrLAoxNDQ3NDogICAgICAgICBjb25zdCBzdHJ1Y3QgZmx1
c2hfdGxiX2luZm8gKmluZm8pCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5zaWduZWQgbG9uZyBfX2Vk
aSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBf
X2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUuZmx1c2hfdGxiX290aGVycyk7IGFzbSB2
b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5y
ZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rp
b25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hz
ZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxu
IiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVu
dW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRf
Y2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChf
X2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3Bv
aW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1
Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5mbHVzaF90bGJfb3RoZXJzKSAvIHNpemVv
Zih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29wcy5tbXUuZmx1c2hfdGxi
X290aGVycykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAo
KHVuc2lnbmVkIGxvbmcpKGNwdW1hc2spKSwgIlMiICgodW5zaWduZWQgbG9uZykoaW5mbykpIDog
Im1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGFyYXZpcnRfdGxiX3JlbW92ZV90YWJsZShzdHJ1
Y3QgbW11X2dhdGhlciAqdGxiLCB2b2lkICp0YWJsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNp
Z25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0gX19lZHgsIF9f
ZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLm1tdS50bGJfcmVtb3Zl
X3RhYmxlKTsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0
aW9uIC5kaXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5Ylxu
XHQiICIucG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3
NzI6XG4iICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFs
aWduIDgiICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNb
cGFyYXZpcnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAi
ICIlY1twYXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPUQiIChf
X2VkaSksICI9UyIgKF9fZXNpKSwgIj1kIiAoX19lZHgpLCAiPWMiIChfX2VjeCksICIrciIgKGN1
cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWlsdGlu
X29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbW11LnRsYl9yZW1vdmVf
dGFibGUpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3Bz
Lm1tdS50bGJfcmVtb3ZlX3RhYmxlKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5
KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9uZykodGxiKSksICJTIiAoKHVuc2lnbmVkIGxvbmcp
KHRhYmxlKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIx
MSIpOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwYXJhdmlydF9hcmNoX2V4aXRf
bW1hcChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNpZ25lZCBs
b25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0gX19lZHgsIF9fZWN4ID0g
X19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLm1tdS5leGl0X21tYXApOyBhc20g
dm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQu
cmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNo
c2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJc
biIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBl
bnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0
X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAo
X19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19w
b2ludGVyKSA6IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3Ry
dWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBsYXRlLCBtbXUuZXhpdF9tbWFwKSAvIHNpemVvZih2b2lk
ICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29wcy5tbXUuZXhpdF9tbWFwKSksIFtw
YXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9u
ZykobW0pKSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAicjEx
Iik7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA2NDIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBw
dl9xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssCjE0NDc0
OiAgICAgICAgdTMyIHZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNpZ25lZCBsb25nIF9fZWRp
ID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9f
ZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLmxvY2sucXVldWVkX3NwaW5fbG9ja19zbG93cGF0
aCk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAi
LnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxu
IiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4
IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2
aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNb
cGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkp
LCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50
X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZz
ZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIGxvY2sucXVldWVkX3NwaW5fbG9j
a19zbG93cGF0aCkgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihw
dl9vcHMubG9jay5xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKSksIFtwYXJhdmlydF9jbG9iYmVy
XSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9uZykobG9jaykpLCAiUyIg
KCh1bnNpZ25lZCBsb25nKSh2YWwpKSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJy
OSIsICJyMTAiLCAicjExIik7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgcHZfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVj
dCBxc3BpbmxvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5zaWduZWQgbG9uZyBfX2Vk
aSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBf
X2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5sb2NrLnF1ZXVlZF9zcGluX3VubG9jay5mdW5j
KTsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5YlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3NzI6XG4i
ICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFsaWduIDgi
ICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNbcGFyYXZp
cnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAiICIlY1tw
YXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPWEiIChfX2VheCks
ICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgo
X19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbG9jay5x
dWV1ZWRfc3Bpbl91bmxvY2suZnVuYykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3Bw
dHJdICJpIiAoJihwdl9vcHMubG9jay5xdWV1ZWRfc3Bpbl91bmxvY2suZnVuYykpLCBbcGFyYXZp
cnRfY2xvYmJlcl0gImkiICgoKDEgPDwgMCkpKSwgIkQiICgodW5zaWduZWQgbG9uZykobG9jaykp
IDogIm1lbW9yeSIsICJjYyIgKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBwdl93YWl0KHU4ICpwdHIsIHU4IHZhbCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0g
X19lc2ksIF9fZWR4ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZv
aWQpcHZfb3BzLmxvY2sud2FpdCk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQi
ICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3Bw
dHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwi
XG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIg
IC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxu
IiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4i
ICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19l
Y3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJp
IiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIGxv
Y2sud2FpdCkgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9v
cHMubG9jay53YWl0KSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwg
IkQiICgodW5zaWduZWQgbG9uZykocHRyKSksICJTIiAoKHVuc2lnbmVkIGxvbmcpKHZhbCkpIDog
Im1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBwdl9raWNrKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5zaWduZWQgbG9uZyBf
X2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4
LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5sb2NrLmtpY2spOyBhc20gdm9sYXRpbGUo
IiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5l
X3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
ImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAu
cGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIu
cXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxu
IiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJd
IiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAi
PWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6
IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2
aXJ0X3BhdGNoX3RlbXBsYXRlLCBsb2NrLmtpY2spIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2
aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLmxvY2sua2ljaykpLCBbcGFyYXZpcnRfY2xvYmJlcl0g
ImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKGNwdSkpIDogIm1lbW9y
eSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBw
dl92Y3B1X2lzX3ByZWVtcHRlZChsb25nIGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsg
Ym9vbCBfX3JldDsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBf
X2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29w
cy5sb2NrLnZjcHVfaXNfcHJlZW1wdGVkLmZ1bmMpOyBpZiAoc2l6ZW9mKGJvb2wpID4gc2l6ZW9m
KHVuc2lnbmVkIGxvbmcpKSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIg
Ii5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIg
IiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJd
OyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5i
eXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAi
ICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIi
IDogIj1hIiAoX19lYXgpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0
X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hf
dGVtcGxhdGUsIGxvY2sudmNwdV9pc19wcmVlbXB0ZWQuZnVuYykgLyBzaXplb2Yodm9pZCAqKSkp
LCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMubG9jay52Y3B1X2lzX3ByZWVtcHRlZC5m
dW5jKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCAwKSkpLCAiRCIgKCh1bnNpZ25l
ZCBsb25nKShjcHUpKSA6ICJtZW1vcnkiLCAiY2MiICk7IF9fcmV0ID0gKGJvb2wpKCgoKHU2NClf
X2VkeCkgPDwgMzIpIHwgX19lYXgpOyB9IGVsc2UgeyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0
IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAi
ICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3Bh
cmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0
aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIg
NzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3
NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9w
c2VjdGlvblxuIiAiIiA6ICI9YSIgKF9fZWF4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVy
KSA6IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBh
cmF2aXJ0X3BhdGNoX3RlbXBsYXRlLCBsb2NrLnZjcHVfaXNfcHJlZW1wdGVkLmZ1bmMpIC8gc2l6
ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLmxvY2sudmNwdV9p
c19wcmVlbXB0ZWQuZnVuYykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgMCkpKSwg
IkQiICgodW5zaWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiApOyBfX3JldCA9IChi
b29sKShfX2VheCAmICh7IHVuc2lnbmVkIGxvbmcgX19tYXNrID0gfjBVTDsgc3dpdGNoIChzaXpl
b2YoYm9vbCkpIHsgY2FzZSAxOiBfX21hc2sgPSAweGZmVUw7IGJyZWFrOyBjYXNlIDI6IF9fbWFz
ayA9IDB4ZmZmZlVMOyBicmVhazsgY2FzZSA0OiBfX21hc2sgPSAweGZmZmZmZmZmVUw7IGJyZWFr
OyBkZWZhdWx0OiBicmVhazsgfSBfX21hc2s7IH0pKTsgfSBfX3JldDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHZvaWQgX19yYXdfY2FsbGVlX3NhdmVfX19uYXRpdmVfcXVldWVkX3NwaW5f
dW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spOwoxNDQ3NDogYm9vbCBfX3Jhd19jYWxsZWVf
c2F2ZV9fX25hdGl2ZV92Y3B1X2lzX3ByZWVtcHRlZChsb25nIGNwdSk7CjE0NDc0OiAjIDc5OCAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVm
YXVsdF9iYW5uZXIodm9pZCk7CjE0NDc0OiAjIDkzOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
YXJhdmlydC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwYXJhdmlydF9hcmNoX2R1cF9tbWFwKHN0cnVjdCBtbV9z
dHJ1Y3QgKm9sZG1tLAoxNDQ3NDogICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoxNDQ3NDog
ewoxNDQ3NDogfQoxNDQ3NDogIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5o
IiAyCjE0NDc0OiAjIDI3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiCjE0NDc0
OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiIDEKMTQ0NzQ6ICMgMTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHUzMiBxdWV1ZWRfZmV0Y2hfc2V0X3BlbmRpbmdfYWNxdWly
ZShzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIHUzMiB2YWw7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdmFsID0g
KHsgYm9vbCBjOyBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxu
IiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToi
ICJcblx0bG9jazsgIiAiYnRzbCIgIiAlW3ZhbF0sICIgIiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQg
Y29uZGl0aW9uIGNvZGUgIiAiYyIgIiovXG4iIDogW3Zhcl0gIittIiAobG9jay0+dmFsLmNvdW50
ZXIpLCAiPUBjYyIgImMiIChjKSA6IFt2YWxdICJJIiAoKDAgKyA4KSkgOiAibWVtb3J5Iik7IGM7
IH0pCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAoMVUgPDwgKDAg
KyA4KSk7CjE0NDc0OiAgdmFsIHw9IGF0b21pY19yZWFkKCZsb2NrLT52YWwpICYgfigoKDFVIDw8
IDgpIC0gMSkgPDwgKDAgKyA4KSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdmFsOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIG5hdGl2ZV9xdWV1ZWRfc3Bpbl9s
b2NrX3Nsb3dwYXRoKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssIHUzMiB2YWwpOwoxNDQ3NDogZXh0
ZXJuIHZvaWQgX19wdl9pbml0X2xvY2tfaGFzaCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9f
cHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrLCB1MzIg
dmFsKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fcmF3X2NhbGxlZV9zYXZlX19fcHZfcXVldWVkX3Nw
aW5fdW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spOwoxNDQ3NDogIyA0MyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9xc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbmF0aXZlX3F1ZXVlZF9zcGlu
X3VubG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8g
eyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF80NSh2b2lkKSBfX2F0dHJpYnV0ZV9f
KChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9t
aWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJmxvY2stPmxvY2tlZCkgPT0gc2l6ZW9mKGNoYXIp
IHx8IHNpemVvZigqJmxvY2stPmxvY2tlZCkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiZs
b2NrLT5sb2NrZWQpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJmxvY2stPmxvY2tlZCkgPT0g
c2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQ1KCk7IH0gd2hpbGUgKDApOyBf
X2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigq
JmxvY2stPmxvY2tlZCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0
eXBlb2YoKiZsb2NrLT5sb2NrZWQpKSAoMCkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJmxvY2st
PmxvY2tlZCksIF9fdS5fX2MsIHNpemVvZigqJmxvY2stPmxvY2tlZCkpOyBfX3UuX192YWw7IH0p
OyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBxdWV1ZWRfc3Bpbl9s
b2NrX3Nsb3dwYXRoKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssIHUzMiB2YWwpCjE0NDc0OiB7CjE0
NDc0OiAgcHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChsb2NrLCB2YWwpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF9zcGluX3VubG9jayhzdHJ1Y3QgcXNwaW5sb2NrICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIHB2X3F1ZXVlZF9zcGluX3VubG9jayhsb2NrKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHZjcHVfaXNfcHJlZW1wdGVkKGxvbmcgY3B1
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBwdl92Y3B1X2lzX3ByZWVtcHRlZChjcHUpOwoxNDQ3
NDogfQoxNDQ3NDogIyA3MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9xc3BpbmxvY2suaCIKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV90cnVlIHZpcnRfc3Bpbl9sb2NrX2tleTsKMTQ0
NzQ6IAoxNDQ3NDogdm9pZCBuYXRpdmVfcHZfbG9ja19pbml0KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIDsK
MTQ0NzQ6ICMgODYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHZpcnRfc3Bpbl9sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKCEoeyBib29sIGJyYW5jaDsgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ao
dHlwZW9mKComdmlydF9zcGluX2xvY2tfa2V5KSwgc3RydWN0IHN0YXRpY19rZXlfdHJ1ZSkpIGJy
YW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2goJigmdmlydF9zcGluX2xvY2tfa2V5KS0+a2V5LCB0
cnVlKTsgZWxzZSBpZiAoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKiZ2aXJ0
X3NwaW5fbG9ja19rZXkpLCBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSkpIGJyYW5jaCA9ICFhcmNo
X3N0YXRpY19icmFuY2hfanVtcCgmKCZ2aXJ0X3NwaW5fbG9ja19rZXkpLT5rZXksIHRydWUpOyBl
bHNlIGJyYW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWlsdGluX2V4cGVjdCgh
IShicmFuY2gpLCAxKTsgfSkpCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsKMTQ0
NzQ6ICAgd2hpbGUgKGF0b21pY19yZWFkKCZsb2NrLT52YWwpICE9IDApCjE0NDc0OiAgICBjcHVf
cmVsYXgoKTsKMTQ0NzQ6ICB9IHdoaWxlIChhdG9taWNfY21weGNoZygmbG9jay0+dmFsLCAwLCAo
MVUgPDwgMCkpICE9IDApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2suaCIgMQoxNDQ3NDogIyAyMCAiLi9pbmNs
dWRlL2FzbS1nZW5lcmljL3FzcGlubG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSBpbnQgcXVldWVkX3NwaW5faXNfbG9ja2VkKHN0cnVjdCBxc3BpbmxvY2sg
KmxvY2spCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gYXRvbWljX3JlYWQoJmxvY2stPnZhbCk7CjE0NDc0OiB9CjE0NDc0OiAjIDM5ICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBxdWV1ZWRfc3Bpbl92YWx1ZV91bmxvY2tlZChzdHJ1Y3QgcXNw
aW5sb2NrIGxvY2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICFhdG9taWNfcmVhZCgmbG9jay52
YWwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcXVldWVk
X3NwaW5faXNfY29udGVuZGVkKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGF0b21pY19yZWFkKCZsb2NrLT52YWwpICYgfigoKDFVIDw8IDgpIC0gMSkgPDwg
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcXVldWVkX3NwaW5fdHJ5
bG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIHUzMiB2YWwgPSBh
dG9taWNfcmVhZCgmbG9jay0+dmFsKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKHZhbCksIDApKQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biBfX2J1aWx0aW5fZXhwZWN0KCEhKGF0b21pY190cnlfY21weGNoZygmbG9jay0+dmFsLCAmdmFs
LCAoMVUgPDwgMCkpKSwgMSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHF1
ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgoc3RydWN0IHFzcGlubG9jayAqbG9jaywgdTMyIHZhbCk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHF1ZXVlZF9zcGluX2xvY2soc3RydWN0IHFz
cGlubG9jayAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1MzIgdmFsID0gMDsKMTQ0NzQ6IAoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGF0b21pY190cnlfY21weGNoZygmbG9jay0+dmFs
LCAmdmFsLCAoMVUgPDwgMCkpKSwgMSkpCjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6IAoxNDQ3NDog
IHF1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgobG9jaywgdmFsKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MTExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIiAyCjE0NDc0OiAjIDI4ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiIDIKMTQ0NzQ6ICMgNDMgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9xcndsb2NrLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xcndsb2NrLmgiIDEKMTQ0NzQ6ICMg
MzAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xcndsb2NrLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBx
dWV1ZWRfcmVhZF9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxcndsb2NrICpsb2NrKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIHF1ZXVlZF93cml0ZV9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxcndsb2NrICpsb2Nr
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBxdWV1ZWRfcmVhZF90cnlsb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQoxNDQ3NDogewox
NDQ3NDogIHUzMiBjbnRzOwoxNDQ3NDogCjE0NDc0OiAgY250cyA9IGF0b21pY19yZWFkKCZsb2Nr
LT5jbnRzKTsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVjdCghISghKGNudHMgJiAweDFmZikp
LCAxKSkgewoxNDQ3NDogICBjbnRzID0gKHUzMilhdG9taWNfYWRkX3JldHVybigoMVUgPDwgOSks
ICZsb2NrLT5jbnRzKTsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIShjbnRzICYg
MHgxZmYpKSwgMSkpCjE0NDc0OiAgICByZXR1cm4gMTsKMTQ0NzQ6ICAgYXRvbWljX3N1YigoMVUg
PDwgOSksICZsb2NrLT5jbnRzKTsKMTQ0NzQ6ICB9CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgcXVldWVkX3dyaXRlX3RyeWxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCjE0NDc0OiB7CjE0
NDc0OiAgdTMyIGNudHM7CjE0NDc0OiAKMTQ0NzQ6ICBjbnRzID0gYXRvbWljX3JlYWQoJmxvY2st
PmNudHMpOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGNudHMpLCAwKSkKMTQ0NzQ6
ICAgcmV0dXJuIDA7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gX19idWlsdGluX2V4cGVjdCghIShh
dG9taWNfdHJ5X2NtcHhjaGcoJmxvY2stPmNudHMsICZjbnRzLCAweDBmZikpLCAxKQoxNDQ3NDog
ICAgICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBxdWV1ZWRfcmVhZF9sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQoxNDQ3
NDogewoxNDQ3NDogIHUzMiBjbnRzOwoxNDQ3NDogCjE0NDc0OiAgY250cyA9IGF0b21pY19hZGRf
cmV0dXJuKCgxVSA8PCA5KSwgJmxvY2stPmNudHMpOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKCEoY250cyAmIDB4MWZmKSksIDEpKQoxNDQ3NDogICByZXR1cm47CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHF1ZXVlZF9yZWFkX2xvY2tfc2xvd3BhdGgobG9jayk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBxdWV1ZWRf
d3JpdGVfbG9jayhzdHJ1Y3QgcXJ3bG9jayAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1MzIgY250
cyA9IDA7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVjdCghIShhdG9taWNfdHJ5
X2NtcHhjaGcoJmxvY2stPmNudHMsICZjbnRzLCAweDBmZikpLCAxKSkKMTQ0NzQ6ICAgcmV0dXJu
OwoxNDQ3NDogCjE0NDc0OiAgcXVldWVkX3dyaXRlX2xvY2tfc2xvd3BhdGgobG9jayk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBx
dWV1ZWRfcmVhZF91bmxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgKHZvaWQpYXRvbWljX3N1Yl9yZXR1cm4oKDFVIDw8IDkp
LCAmbG9jay0+Y250cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBxdWV1ZWRfd3JpdGVfdW5sb2NrKHN0cnVjdCBxcndsb2NrICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1l
X2Fzc2VydF8xMTYodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3
b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2Yo
KiZsb2NrLT53bG9ja2VkKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKCombG9jay0+d2xvY2tl
ZCkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiZsb2NrLT53bG9ja2VkKSA9PSBzaXplb2Yo
aW50KSB8fCBzaXplb2YoKiZsb2NrLT53bG9ja2VkKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21w
aWxldGltZV9hc3NlcnRfMTE2KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJmxvY2stPndsb2NrZWQpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCombG9jay0+d2xvY2tl
ZCkpICgwKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCombG9jay0+d2xvY2tlZCksIF9fdS5fX2Ms
IHNpemVvZigqJmxvY2stPndsb2NrZWQpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiB9CjE0NDc0OiAjIDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXJ3bG9jay5oIiAyCjE0
NDc0OiAjIDQ0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiIDIKMTQ0NzQ6ICMg
OTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCjE0NDc0OiAjIDE3OCAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvX3Jhd19zcGluX2xvY2socmF3X3NwaW5s
b2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6ICBxdWV1ZWRfc3Bp
bl9sb2NrKCZsb2NrLT5yYXdfbG9jayk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0
NDc0OiBkb19yYXdfc3Bpbl9sb2NrX2ZsYWdzKHJhd19zcGlubG9ja190ICpsb2NrLCB1bnNpZ25l
ZCBsb25nICpmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogIHF1ZXVlZF9z
cGluX2xvY2soJmxvY2stPnJhd19sb2NrKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZG9fcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tf
dCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgcmV0ID0gcXVldWVkX3NwaW5fdHJ5bG9jaygm
KGxvY2spLT5yYXdfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAocmV0KQoxNDQ3NDogICBkbyB7
IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBkb19yYXdfc3Bpbl91bmxvY2socmF3X3NwaW5sb2NrX3QgKmxvY2spCjE0
NDc0OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBxdWV1ZWRfc3Bpbl91bmxv
Y2soJmxvY2stPnJhd19sb2NrKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogfQoxNDQ3NDogIyAz
MTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvcndsb2NrLmgiIDEKMTQ0NzQ6ICMgMzExICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAuaCIgMQoxNDQ3NDogIyAxOCAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAuaCIKMTQ0NzQ6IGludCBpbl9sb2NrX2Z1bmN0aW9ucyh1
bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBf
X2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2so
cmF3X3NwaW5sb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlv
bigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl9sb2NrX25lc3RlZChyYXdfc3BpbmxvY2tf
dCAqbG9jaywgaW50IHN1YmNsYXNzKQoxNDQ3NDogICAgICAgICA7CjE0NDc0OiB2b2lkIF9fYXR0
cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19zcGluX2xv
Y2tfbmVzdF9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrLCBzdHJ1Y3QgbG9ja2RlcF9tYXAgKm1h
cCkKMTQ0NzQ6ICAgICAgICAgOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2sp
IDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkp
IF9yYXdfc3Bpbl9sb2NrX2lycShyYXdfc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6ICAgICAgICAg
OwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5z
cGlubG9jay50ZXh0IikpKSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHJhd19zcGlubG9ja190ICps
b2NrKQoxNDQ3NDogICAgICAgICA7CjE0NDc0OiB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18o
KHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19zcGluX2xvY2tfaXJxc2F2
ZV9uZXN0ZWQocmF3X3NwaW5sb2NrX3QgKmxvY2ssIGludCBzdWJjbGFzcykKMTQ0NzQ6ICAgICAg
ICAgOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0Iikp
KSBfcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jayk7CjE0NDc0OiBpbnQgX19h
dHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl90cnlsb2Nr
X2JoKHJhd19zcGlubG9ja190ICpsb2NrKTsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2Vj
dGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl91bmxvY2socmF3X3NwaW5sb2NrX3Qg
KmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRl
eHQiKSkpIF9yYXdfc3Bpbl91bmxvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2spIDsKMTQ0NzQ6
IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bp
bl91bmxvY2tfaXJxKHJhd19zcGlubG9ja190ICpsb2NrKSA7CjE0NDc0OiB2b2lkIF9fYXR0cmli
dXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19zcGluX3VubG9j
a19pcnFyZXN0b3JlKHJhd19zcGlubG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQox
NDQ3NDogICAgICAgICA7CjE0NDc0OiAjIDg2ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBp
X3NtcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IF9fcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9j
aykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwoxNDQ3NDogIGlmIChkb19yYXdfc3Bpbl90cnlsb2NrKGxvY2spKSB7CjE0NDc0OiAgIGRvIHsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgIHJldHVybiAxOwoxNDQ3NDogIH0KMTQ0NzQ6ICBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDog
fQoxNDQ3NDogIyAxMDQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja19hcGlfc21wLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nIF9fcmF3X3NwaW5fbG9ja19pcnFzYXZlKHJhd19zcGlubG9ja190ICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6
ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVt
bXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IGZsYWdzID0gYXJjaF9s
b2NhbF9pcnFfc2F2ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19hc21f
XyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDAp
OwoxNDQ3NDogIyAxMTkgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja19hcGlfc21wLmgiCjE0NDc0
OiAgZG9fcmF3X3NwaW5fbG9ja19mbGFncyhsb2NrLCAmZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3NwaW5fbG9j
a19pcnEocmF3X3NwaW5sb2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBhcmNoX2xv
Y2FsX2lycV9kaXNhYmxlKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBk
b19yYXdfc3Bpbl9sb2NrKGxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3
X3NwaW5fbG9ja19iaChyYXdfc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2xv
Y2FsX2JoX2Rpc2FibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNz
KDApLCAoKDIgKiAoMVVMIDw8ICgwICsgOCkpKSArIDApKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUg
KDApOwoxNDQ3NDogIGRvX3Jhd19zcGluX2xvY2sobG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgX19yYXdfc3Bpbl9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewox
NDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgZG8g
eyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkb19yYXdfc3Bpbl9sb2NrKGxvY2spOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19zcGluX3VubG9jayhyYXdf
c3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3
NDogIGRvX3Jhd19zcGluX3VubG9jayhsb2NrKTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3Nw
aW5fdW5sb2NrX2lycXJlc3RvcmUocmF3X3NwaW5sb2NrX3QgKmxvY2ssCjE0NDc0OiAgICAgICAg
ICB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7
CjE0NDc0OiAgZG9fcmF3X3NwaW5fdW5sb2NrKGxvY2spOwoxNDQ3NDogIGRvIHsgZG8geyAoeyB1
bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19k
dW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgYXJjaF9sb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7
IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3NwaW5f
dW5sb2NrX2lycShyYXdfc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IH0g
d2hpbGUgKDApOwoxNDQ3NDogIGRvX3Jhd19zcGluX3VubG9jayhsb2NrKTsKMTQ0NzQ6ICBkbyB7
IGFyY2hfbG9jYWxfaXJxX2VuYWJsZSgpOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBfX2FzbV9fIF9f
dm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IF9fcmF3X3NwaW5fdW5sb2NrX2JoKHJhd19zcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3
NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG9fcmF3X3NwaW5fdW5sb2NrKGxvY2spOwox
NDQ3NDogIF9fbG9jYWxfYmhfZW5hYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1
cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBfX3Jhd19zcGluX3RyeWxvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxv
Y2spCjE0NDc0OiB7CjE0NDc0OiAgX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25n
KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAw
KSk7CjE0NDc0OiAgaWYgKGRvX3Jhd19zcGluX3RyeWxvY2sobG9jaykpIHsKMTQ0NzQ6ICAgZG8g
eyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgfQoxNDQ3NDogIF9fbG9j
YWxfYmhfZW5hYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygw
KSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgi
IDEKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9yd2xvY2tfYXBpX3NtcC5oIgoxNDQ3NDog
dm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFk
X2xvY2socndsb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlv
bigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9jayhyd2xvY2tfdCAqbG9jaykgOwox
NDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jh
d19yZWFkX2xvY2tfYmgocndsb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9ja19iaChyd2xvY2tf
dCAqbG9jaykgOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2su
dGV4dCIpKSkgX3Jhd19yZWFkX2xvY2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CjE0NDc0OiB2b2lk
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3dyaXRlX2xv
Y2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CjE0NDc0OiB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRl
X18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3JlYWRfbG9ja19pcnFzYXZlKHJ3
bG9ja190ICpsb2NrKQoxNDQ3NDogICAgICAgIDsKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9ja19pcnFz
YXZlKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogICAgICAgIDsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0
ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX3RyeWxvY2socndsb2Nr
X3QgKmxvY2spOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50
ZXh0IikpKSBfcmF3X3dyaXRlX3RyeWxvY2socndsb2NrX3QgKmxvY2spOwoxNDQ3NDogdm9pZCBf
X2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX3VubG9j
ayhyd2xvY2tfdCAqbG9jaykgOwoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd193cml0ZV91bmxvY2socndsb2NrX3QgKmxvY2spIDsKMTQ0
NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdf
cmVhZF91bmxvY2tfYmgocndsb2NrX3QgKmxvY2spIDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfdW5sb2NrX2JoKHJ3bG9j
a190ICpsb2NrKSA7CjE0NDc0OiB2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9j
ay50ZXh0IikpKSBfcmF3X3JlYWRfdW5sb2NrX2lycShyd2xvY2tfdCAqbG9jaykgOwoxNDQ3NDog
dm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd193cml0
ZV91bmxvY2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CjE0NDc0OiB2b2lkIF9fYXR0cmlidXRlX18o
KHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQoxNDQ3NDogX3Jhd19yZWFkX3VubG9ja19pcnFy
ZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogICAgICAg
IDsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkp
CjE0NDc0OiBfcmF3X3dyaXRlX3VubG9ja19pcnFyZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNp
Z25lZCBsb25nIGZsYWdzKQoxNDQ3NDogICAgICAgIDsKMTQ0NzQ6ICMgMTE3ICIuL2luY2x1ZGUv
bGludXgvcndsb2NrX2FwaV9zbXAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX3Jhd19yZWFkX3RyeWxvY2socnds
b2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKMTQ0NzQ6ICBpZiAocXVldWVkX3JlYWRfdHJ5bG9jaygmKGxvY2spLT5yYXdf
bG9jaykpIHsKMTQ0NzQ6ICAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0
NDc0OiAgfQoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0
NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX3Jhd193cml0ZV90
cnlsb2NrKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgaWYgKHF1ZXVlZF93cml0ZV90cnlsb2NrKCYo
bG9jayktPnJhd19sb2NrKSkgewoxNDQ3NDogICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogICBy
ZXR1cm4gMTsKMTQ0NzQ6ICB9CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ2ICIuL2luY2x1
ZGUvbGludXgvcndsb2NrX2FwaV9zbXAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF9sb2NrKHJ3
bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6
IDoibWVtb3J5Iik7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQp
MDsgcXVldWVkX3JlYWRfbG9jaygmKGxvY2spLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fcmF3X3JlYWRfbG9ja19pcnFzYXZl
KHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2Yo
ZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IGZs
YWdzID0gYXJjaF9sb2NhbF9pcnFfc2F2ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBkbyB7
IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsodm9pZCkwOyBxdWV1ZWRfcmVhZF9sb2NrKCYoKGxv
Y2spKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogIHJldHVybiBmbGFnczsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX3Jhd19yZWFkX2xvY2tfaXJxKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDog
ewoxNDQ3NDogIGRvIHsgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSgpOyB9IHdoaWxlICgwKTsKMTQ0
NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIGRvIHsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8geyh2b2lkKTA7IHF1ZXVlZF9yZWFkX2xvY2soJihsb2Nr
KS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBf
X3Jhd19yZWFkX2xvY2tfYmgocndsb2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAgX19sb2Nh
bF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygw
KSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgw
KTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsgcXVldWVkX3JlYWRfbG9jaygmKGxvY2spLT5yYXdfbG9j
ayk7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9f
cmF3X3dyaXRlX2xvY2tfaXJxc2F2ZShyd2xvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgZG8geyBkbyB7ICh7IHVuc2lnbmVk
IGxvbmcgX19kdW1teTsgdHlwZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09
ICZfX2R1bW15Mik7IDE7IH0pOyBmbGFncyA9IGFyY2hfbG9jYWxfaXJxX3NhdmUoKTsgfSB3aGls
ZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoi
bWVtb3J5Iik7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsg
cXVldWVkX3dyaXRlX2xvY2soJigobG9jaykpLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogIHJldHVy
biBmbGFnczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd193cml0ZV9sb2NrX2ly
cShyd2xvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGFyY2hfbG9jYWxfaXJxX2Rp
c2FibGUoKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsodm9pZCkw
OyBxdWV1ZWRfd3JpdGVfbG9jaygmKGxvY2spLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX2xvY2tfYmgocndsb2NrX3QgKmxv
Y2spCjE0NDc0OiB7CjE0NDc0OiAgX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25n
KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAw
KSk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsgcXVldWVk
X3dyaXRlX2xvY2soJihsb2NrKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd193cml0ZV9sb2NrKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDog
ewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAg
ZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7KHZvaWQpMDsgcXVldWVkX3dyaXRlX2xvY2so
Jihsb2NrKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfdW5sb2NrKHJ3bG9ja190ICpsb2NrKQox
NDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVlZF93cml0
ZV91bmxvY2soJihsb2NrKS0+cmF3X2xvY2spOyAodm9pZCkwOyB9IHdoaWxlICgwKTsKMTQ0NzQ6
ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fcmF3X3JlYWRfdW5sb2NrKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewox
NDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVlZF9yZWFkX3VubG9jaygm
KGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hpbGUgKDApOwoxNDQ3NDogIF9fYXNtX18g
X192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQKMTQ0NzQ6IF9fcmF3X3JlYWRfdW5sb2NrX2lycXJlc3RvcmUocndsb2NrX3QgKmxvY2ssIHVu
c2lnbmVkIGxvbmcgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0
NzQ6ICBkbyB7cXVldWVkX3JlYWRfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsg
dHlwZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZfX2R1bW15Mik7IDE7
IH0pOyBhcmNoX2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUg
KDApOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF91bmxvY2tfaXJxKHJ3bG9ja190ICps
b2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVl
ZF9yZWFkX3VubG9jaygmKGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hpbGUgKDApOwox
NDQ3NDogIGRvIHsgYXJjaF9sb2NhbF9pcnFfZW5hYmxlKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDog
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19yYXdfcmVhZF91bmxvY2tfYmgocndsb2NrX3QgKmxvY2spCjE0NDc0OiB7
CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7cXVldWVkX3JlYWRfdW5sb2Nr
KCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19sb2Nh
bF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDAp
LCAoKDIgKiAoMVVMIDw8ICgwICsgOCkpKSArIDApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX3Jhd193cml0ZV91bmxvY2tfaXJxcmVzdG9yZShyd2xvY2tfdCAqbG9jaywKMTQ0NzQ6
ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3
aGlsZSAoMCk7CjE0NDc0OiAgZG8ge3F1ZXVlZF93cml0ZV91bmxvY2soJihsb2NrKS0+cmF3X2xv
Y2spOyAodm9pZCkwOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQg
bG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0g
Jl9fZHVtbXkyKTsgMTsgfSk7IGFyY2hfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd193cml0ZV91bmxvY2tf
aXJxKHJ3bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgZG8ge3F1ZXVlZF93cml0ZV91bmxvY2soJihsb2NrKS0+cmF3X2xvY2spOyAodm9pZCkw
OyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBkbyB7IGFyY2hfbG9jYWxfaXJxX2VuYWJsZSgpOyB9IHdo
aWxlICgwKTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX3VubG9ja19iaChyd2xvY2tf
dCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHtx
dWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgX19sb2NhbF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGlu
X3JldHVybl9hZGRyZXNzKDApLCAoKDIgKiAoMVVMIDw8ICgwICsgOCkpKSArIDApKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTkxICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oIiAyCjE0
NDc0OiAjIDMxNyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKMTQ0NzQ6ICMgMzI1ICIu
L2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgcmF3X3NwaW5sb2NrX3QgKnNwaW5sb2NrX2NoZWNrKHNwaW5sb2NrX3QgKmxv
Y2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICZsb2NrLT5ybG9jazsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNwaW5fbG9jayhzcGlubG9j
a190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9yYXdfc3Bpbl9sb2NrKCZsb2NrLT5ybG9jayk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9f
KSkgdm9pZCBzcGluX2xvY2tfYmgoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBf
cmF3X3NwaW5fbG9ja19iaCgmbG9jay0+cmxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBzcGluX3RyeWxvY2soc3Bpbmxv
Y2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKF9yYXdfc3Bpbl90cnlsb2NrKCZs
b2NrLT5ybG9jaykpOwoxNDQ3NDogfQoxNDQ3NDogIyAzNjEgIi4vaW5jbHVkZS9saW51eC9zcGlu
bG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNw
aW5fbG9ja19pcnEoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfcmF3X3NwaW5f
bG9ja19pcnEoJmxvY2stPnJsb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzc2ICIuL2luY2x1ZGUv
bGludXgvc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9f
KSkgdm9pZCBzcGluX3VubG9jayhzcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9f
cmF3X3NwaW5fdW5sb2NrKCZsb2NrLT5ybG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19iaChzcGlu
bG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogIF9yYXdfc3Bpbl91bmxvY2tfYmgoJmxvY2st
PnJsb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIHNwaW5fdW5sb2NrX2lycShzcGlubG9ja190ICpsb2NrKQoxNDQ3NDog
ewoxNDQ3NDogIF9fcmF3X3NwaW5fdW5sb2NrX2lycSgmbG9jay0+cmxvY2spOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgc3Bp
bl91bmxvY2tfaXJxcmVzdG9yZShzcGlubG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdz
KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2Yo
ZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IF9y
YXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbG9jay0+cmxvY2ssIGZsYWdzKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IHNwaW5fdHJ5bG9ja19iaChzcGlubG9ja190ICpsb2NrKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAoX3Jhd19zcGluX3RyeWxvY2tfYmgoJmxvY2stPnJsb2NrKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IHNw
aW5fdHJ5bG9ja19pcnEoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
KHsgZG8geyBhcmNoX2xvY2FsX2lycV9kaXNhYmxlKCk7IH0gd2hpbGUgKDApOyAoX3Jhd19zcGlu
X3RyeWxvY2soJmxvY2stPnJsb2NrKSkgPyAxIDogKHsgZG8geyBhcmNoX2xvY2FsX2lycV9lbmFi
bGUoKTsgfSB3aGlsZSAoMCk7IDA7IH0pOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDI5ICIuL2lu
Y2x1ZGUvbGludXgvc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgaW50IHNwaW5faXNfbG9ja2VkKHNwaW5sb2NrX3QgKmxvY2spCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIHF1ZXVlZF9zcGluX2lzX2xvY2tlZCgmKCZsb2NrLT5ybG9jayktPnJhd19s
b2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgc3Bpbl9pc19jb250ZW5kZWQoc3BpbmxvY2tfdCAqbG9jaykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gcXVldWVkX3NwaW5faXNfY29udGVuZGVkKCYoJmxvY2stPnJsb2NrKS0+
cmF3X2xvY2spOwoxNDQ3NDogfQoxNDQ3NDogIyA0NTQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9j
ay5oIgoxNDQ3NDogZXh0ZXJuIGludCBfYXRvbWljX2RlY19hbmRfbG9jayhhdG9taWNfdCAqYXRv
bWljLCBzcGlubG9ja190ICpsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgX2F0b21pY19kZWNfYW5kX2xvY2tfaXJxc2F2ZShhdG9taWNfdCAqYXRvbWljLCBz
cGlubG9ja190ICpsb2NrLAoxNDQ3NDogICAgICB1bnNpZ25lZCBsb25nICpmbGFncyk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgX19hbGxvY19idWNrZXRfc3BpbmxvY2tzKHNw
aW5sb2NrX3QgKipsb2NrcywgdW5zaWduZWQgaW50ICpsb2NrX21hc2ssCjE0NDc0OiAgICAgICAg
IHNpemVfdCBtYXhfc2l6ZSwgdW5zaWduZWQgaW50IGNwdV9tdWx0LAoxNDQ3NDogICAgICAgICBn
ZnBfdCBnZnAsIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBsb2NrX2Ns
YXNzX2tleSAqa2V5KTsKMTQ0NzQ6ICMgNDc4ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIK
MTQ0NzQ6IHZvaWQgZnJlZV9idWNrZXRfc3BpbmxvY2tzKHNwaW5sb2NrX3QgKmxvY2tzKTsKMTQ0
NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9rcmVmLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRl
L2xpbnV4L3JlZmNvdW50LmgiIDEKMTQ0NzQ6ICMgODggIi4vaW5jbHVkZS9saW51eC9yZWZjb3Vu
dC5oIgoxNDQ3NDogc3RydWN0IG11dGV4OwoxNDQ3NDogIyA5OCAiLi9pbmNsdWRlL2xpbnV4L3Jl
ZmNvdW50LmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCByZWZjb3VudF9zdHJ1Y3QgewoxNDQ3NDog
IGF0b21pY190IHJlZnM7CjE0NDc0OiB9IHJlZmNvdW50X3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSByZWZjb3VudF9zYXR1cmF0aW9uX3R5cGUg
ewoxNDQ3NDogIFJFRkNPVU5UX0FERF9OT1RfWkVST19PVkYsCjE0NDc0OiAgUkVGQ09VTlRfQURE
X09WRiwKMTQ0NzQ6ICBSRUZDT1VOVF9BRERfVUFGLAoxNDQ3NDogIFJFRkNPVU5UX1NVQl9VQUYs
CjE0NDc0OiAgUkVGQ09VTlRfREVDX0xFQUssCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lk
IHJlZmNvdW50X3dhcm5fc2F0dXJhdGUocmVmY291bnRfdCAqciwgZW51bSByZWZjb3VudF9zYXR1
cmF0aW9uX3R5cGUgdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHJlZmNvdW50X3NldChyZWZjb3VudF90ICpyLCBpbnQgbikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBhdG9taWNfc2V0KCZyLT5yZWZzLCBuKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5z
aWduZWQgaW50IHJlZmNvdW50X3JlYWQoY29uc3QgcmVmY291bnRfdCAqcikKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYXRvbWljX3JlYWQoJnItPnJlZnMpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNTUg
Ii4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGJvb2wgcmVmY291bnRfYWRkX25vdF96ZXJvKGludCBpLCByZWZj
b3VudF90ICpyKQoxNDQ3NDogewoxNDQ3NDogIGludCBvbGQgPSByZWZjb3VudF9yZWFkKHIpOwox
NDQ3NDogCjE0NDc0OiAgZG8gewoxNDQ3NDogICBpZiAoIW9sZCkKMTQ0NzQ6ICAgIGJyZWFrOwox
NDQ3NDogIH0gd2hpbGUgKCFhdG9taWNfdHJ5X2NtcHhjaGcoJnItPnJlZnMsICZvbGQsIG9sZCAr
IGkpKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAgfHwg
b2xkICsgaSA8IDApLCAwKSkKMTQ0NzQ6ICAgcmVmY291bnRfd2Fybl9zYXR1cmF0ZShyLCBSRUZD
T1VOVF9BRERfTk9UX1pFUk9fT1ZGKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBvbGQ7CjE0NDc0
OiB9CjE0NDc0OiAjIDE4NiAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJlZmNvdW50X2FkZChpbnQgaSwgcmVmY291bnRfdCAqcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQg
b2xkID0gYXRvbWljX2ZldGNoX2FkZChpLCAmci0+cmVmcyk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAo
X19idWlsdGluX2V4cGVjdCghISghb2xkKSwgMCkpCjE0NDc0OiAgIHJlZmNvdW50X3dhcm5fc2F0
dXJhdGUociwgUkVGQ09VTlRfQUREX1VBRik7CjE0NDc0OiAgZWxzZSBpZiAoX19idWlsdGluX2V4
cGVjdCghIShvbGQgPCAwIHx8IG9sZCArIGkgPCAwKSwgMCkpCjE0NDc0OiAgIHJlZmNvdW50X3dh
cm5fc2F0dXJhdGUociwgUkVGQ09VTlRfQUREX09WRik7CjE0NDc0OiB9CjE0NDc0OiAjIDIwOSAi
Li9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgYm9vbCByZWZjb3VudF9pbmNfbm90X3plcm8ocmVmY291bnRfdCAq
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcmVmY291bnRfYWRkX25vdF96ZXJvKDEsIHIpOwox
NDQ3NDogfQoxNDQ3NDogIyAyMjYgIi4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCByZWZjb3VudF9pbmMocmVmY291bnRfdCAqcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWZjb3Vu
dF9hZGQoMSwgcik7CjE0NDc0OiB9CjE0NDc0OiAjIDI1MSAiLi9pbmNsdWRlL2xpbnV4L3JlZmNv
dW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9v
bCByZWZjb3VudF9zdWJfYW5kX3Rlc3QoaW50IGksIHJlZmNvdW50X3QgKnIpCjE0NDc0OiB7CjE0
NDc0OiAgaW50IG9sZCA9IGF0b21pY19mZXRjaF9zdWIoaSwgJnItPnJlZnMpOwoxNDQ3NDogCjE0
NDc0OiAgaWYgKG9sZCA9PSBpKSB7CjE0NDc0OiAgIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6
IDoibWVtb3J5Iik7CjE0NDc0OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAgfHwgb2xkIC0gaSA8IDApLCAwKSkK
MTQ0NzQ6ICAgcmVmY291bnRfd2Fybl9zYXR1cmF0ZShyLCBSRUZDT1VOVF9TVUJfVUFGKTsKMTQ0
NzQ6IAoxNDQ3NDogIHJldHVybiBmYWxzZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjc5ICIuL2luY2x1
ZGUvbGludXgvcmVmY291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRfdGVzdChyZWZjb3VudF90ICpyKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiByZWZjb3VudF9zdWJfYW5kX3Rlc3QoMSwgcik7CjE0NDc0OiB9
CjE0NDc0OiAjIDI5NCAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJl
ZmNvdW50X2RlYyhyZWZjb3VudF90ICpyKQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5f
ZXhwZWN0KCEhKGF0b21pY19mZXRjaF9zdWIoMSwgJnItPnJlZnMpIDw9IDEpLCAwKSkKMTQ0NzQ6
ICAgcmVmY291bnRfd2Fybl9zYXR1cmF0ZShyLCBSRUZDT1VOVF9ERUNfTEVBSyk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgYm9vbCByZWZjb3VudF9kZWNfaWZfb25lKHJlZmNvdW50X3QgKnIpOwoxNDQ3NDogZXh0
ZXJuIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50
X2RlY19ub3Rfb25lKHJlZmNvdW50X3QgKnIpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRfbXV0ZXhfbG9j
ayhyZWZjb3VudF90ICpyLCBzdHJ1Y3QgbXV0ZXggKmxvY2spOwoxNDQ3NDogZXh0ZXJuIF9fYXR0
cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRf
bG9jayhyZWZjb3VudF90ICpyLCBzcGlubG9ja190ICpsb2NrKTsKMTQ0NzQ6IGV4dGVybiBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9vbCByZWZjb3VudF9kZWNfYW5k
X2xvY2tfaXJxc2F2ZShyZWZjb3VudF90ICpyLAoxNDQ3NDogICAgICAgICAgICAgIHNwaW5sb2Nr
X3QgKmxvY2ssCjE0NDc0OiAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqZmxhZ3MpOwoxNDQ3
NDogIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tyZWYuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
a3JlZiB7CjE0NDc0OiAgcmVmY291bnRfdCByZWZjb3VudDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
a3JlZl9pbml0KHN0cnVjdCBrcmVmICprcmVmKQoxNDQ3NDogewoxNDQ3NDogIHJlZmNvdW50X3Nl
dCgma3JlZi0+cmVmY291bnQsIDEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBp
bnQga3JlZl9yZWFkKGNvbnN0IHN0cnVjdCBrcmVmICprcmVmKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiByZWZjb3VudF9yZWFkKCZrcmVmLT5yZWZjb3VudCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrcmVmX2dldChzdHJ1Y3Qg
a3JlZiAqa3JlZikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWZjb3VudF9pbmMoJmtyZWYtPnJlZmNvdW50
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjIgIi4vaW5jbHVkZS9saW51eC9rcmVmLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQga3JlZl9wdXQoc3RydWN0IGtyZWYgKmtyZWYsIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3Qga3Jl
ZiAqa3JlZikpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgma3Jl
Zi0+cmVmY291bnQpKSB7CjE0NDc0OiAgIHJlbGVhc2Uoa3JlZik7CjE0NDc0OiAgIHJldHVybiAx
OwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IGtyZWZfcHV0X211dGV4KHN0cnVjdCBrcmVmICprcmVmLAoxNDQ3NDogICAgICB2b2lkICgqcmVs
ZWFzZSkoc3RydWN0IGtyZWYgKmtyZWYpLAoxNDQ3NDogICAgICBzdHJ1Y3QgbXV0ZXggKmxvY2sp
CjE0NDc0OiB7CjE0NDc0OiAgaWYgKHJlZmNvdW50X2RlY19hbmRfbXV0ZXhfbG9jaygma3JlZi0+
cmVmY291bnQsIGxvY2spKSB7CjE0NDc0OiAgIHJlbGVhc2Uoa3JlZik7CjE0NDc0OiAgIHJldHVy
biAxOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGtyZWZfcHV0X2xvY2soc3RydWN0IGtyZWYgKmtyZWYsCjE0NDc0OiAgICAgdm9pZCAoKnJl
bGVhc2UpKHN0cnVjdCBrcmVmICprcmVmKSwKMTQ0NzQ6ICAgICBzcGlubG9ja190ICpsb2NrKQox
NDQ3NDogewoxNDQ3NDogIGlmIChyZWZjb3VudF9kZWNfYW5kX2xvY2soJmtyZWYtPnJlZmNvdW50
LCBsb2NrKSkgewoxNDQ3NDogICByZWxlYXNlKGtyZWYpOwoxNDQ3NDogICByZXR1cm4gMTsKMTQ0
NzQ6ICB9CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDEwOSAiLi9pbmNsdWRl
L2xpbnV4L2tyZWYuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkga3JlZl9nZXRfdW5sZXNzX3plcm8oc3RydWN0IGtyZWYgKmtyZWYpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIHJlZmNvdW50X2luY19ub3RfemVybygma3JlZi0+cmVmY291bnQpOwox
NDQ3NDogfQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
c2xhYi5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbW1kZWJ1Zy5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBw
YWdlOwoxNDQ3NDogc3RydWN0IHZtX2FyZWFfc3RydWN0OwoxNDQ3NDogc3RydWN0IG1tX3N0cnVj
dDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZHVtcF9wYWdlKHN0cnVjdCBwYWdlICpwYWdl
LCBjb25zdCBjaGFyICpyZWFzb24pOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19kdW1wX3BhZ2Uoc3Ry
dWN0IHBhZ2UgKnBhZ2UsIGNvbnN0IGNoYXIgKnJlYXNvbik7CjE0NDc0OiB2b2lkIGR1bXBfdm1h
KGNvbnN0IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKMTQ0NzQ6IHZvaWQgZHVtcF9tbShj
b25zdCBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9n
ZnAuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKMTQ0NzQ6ICMg
MTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L3dhaXQuaCIgMQoxNDQ3NDogIyAxMiAiLi9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL3VhcGkvbGludXgvd2FpdC5oIiAxCjE0NDc0OiAjIDEzICIuL2luY2x1ZGUv
bGludXgvd2FpdC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHdhaXRfcXVldWVf
ZW50cnkgd2FpdF9xdWV1ZV9lbnRyeV90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludCAoKndh
aXRfcXVldWVfZnVuY190KShzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnksIHVuc2ln
bmVkIG1vZGUsIGludCBmbGFncywgdm9pZCAqa2V5KTsKMTQ0NzQ6IGludCBkZWZhdWx0X3dha2Vf
ZnVuY3Rpb24oc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2Rl
LCBpbnQgZmxhZ3MsIHZvaWQgKmtleSk7CjE0NDc0OiAjIDI3ICIuL2luY2x1ZGUvbGludXgvd2Fp
dC5oIgoxNDQ3NDogc3RydWN0IHdhaXRfcXVldWVfZW50cnkgewoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBmbGFnczsKMTQ0NzQ6ICB2b2lkICpwcml2YXRlOwoxNDQ3NDogIHdhaXRfcXVldWVfZnVuY190
IGZ1bmM7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgewoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsK
MTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CjE0NDc0OiB9OwoxNDQ3NDogdHlwZWRlZiBz
dHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkIHdhaXRfcXVldWVfaGVhZF90OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAjIDYxICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIgox
NDQ3NDogZXh0ZXJuIHZvaWQgX19pbml0X3dhaXRxdWV1ZV9oZWFkKHN0cnVjdCB3YWl0X3F1ZXVl
X2hlYWQgKndxX2hlYWQsIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAq
KTsKMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGluaXRf
d2FpdHF1ZXVlX2VudHJ5KHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSwgc3RydWN0
IHRhc2tfc3RydWN0ICpwKQoxNDQ3NDogewoxNDQ3NDogIHdxX2VudHJ5LT5mbGFncyA9IDA7CjE0
NDc0OiAgd3FfZW50cnktPnByaXZhdGUgPSBwOwoxNDQ3NDogIHdxX2VudHJ5LT5mdW5jID0gZGVm
YXVsdF93YWtlX2Z1bmN0aW9uOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBp
bml0X3dhaXRxdWV1ZV9mdW5jX2VudHJ5KHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRy
eSwgd2FpdF9xdWV1ZV9mdW5jX3QgZnVuYykKMTQ0NzQ6IHsKMTQ0NzQ6ICB3cV9lbnRyeS0+Zmxh
Z3MgPSAwOwoxNDQ3NDogIHdxX2VudHJ5LT5wcml2YXRlID0gKCh2b2lkICopMCk7CjE0NDc0OiAg
d3FfZW50cnktPmZ1bmMgPSBmdW5jOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjQgIi4vaW5jbHVkZS9s
aW51eC93YWl0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgd2FpdHF1ZXVlX2FjdGl2ZShzdHJ1Y3Qgd2FpdF9xdWV1
ZV9oZWFkICp3cV9oZWFkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhbGlzdF9lbXB0eSgmd3Ff
aGVhZC0+aGVhZCk7CjE0NDc0OiB9CjE0NDc0OiAjIDEzNyAiLi9pbmNsdWRlL2xpbnV4L3dhaXQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgd3FfaGFzX3NpbmdsZV9zbGVlcGVyKHN0cnVjdCB3YWl0X3F1ZXVlX2hl
YWQgKndxX2hlYWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3RfaXNfc2luZ3VsYXIoJndx
X2hlYWQtPmhlYWQpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNTAgIi4vaW5jbHVkZS9saW51eC93YWl0
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIHdxX2hhc19zbGVlcGVyKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndx
X2hlYWQpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwgJDAsLTQoJSVy
c3ApIiA6OjogIm1lbW9yeSIsICJjYyIpOwoxNDQ3NDogIHJldHVybiB3YWl0cXVldWVfYWN0aXZl
KHdxX2hlYWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBhZGRfd2FpdF9x
dWV1ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9l
bnRyeSAqd3FfZW50cnkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYWRkX3dhaXRfcXVldWVfZXhjbHVz
aXZlKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVjdCB3YWl0X3F1ZXVlX2Vu
dHJ5ICp3cV9lbnRyeSk7CjE0NDc0OiBleHRlcm4gdm9pZCByZW1vdmVfd2FpdF9xdWV1ZShzdHJ1
Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3Ff
ZW50cnkpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYWRkX3dhaXRfcXVldWUoc3RydWN0IHdhaXRf
cXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KQox
NDQ3NDogewoxNDQ3NDogIGxpc3RfYWRkKCZ3cV9lbnRyeS0+ZW50cnksICZ3cV9oZWFkLT5oZWFk
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAox
NDQ3NDogX19hZGRfd2FpdF9xdWV1ZV9leGNsdXNpdmUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAq
d3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KQoxNDQ3NDogewoxNDQ3
NDogIHdxX2VudHJ5LT5mbGFncyB8PSAweDAxOwoxNDQ3NDogIF9fYWRkX3dhaXRfcXVldWUod3Ff
aGVhZCwgd3FfZW50cnkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYWRkX3dhaXRf
cXVldWVfZW50cnlfdGFpbChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qg
d2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgbGlzdF9hZGRfdGFp
bCgmd3FfZW50cnktPmVudHJ5LCAmd3FfaGVhZC0+aGVhZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQKMTQ0NzQ6IF9fYWRkX3dhaXRfcXVldWVfZW50cnlfdGFpbF9leGNsdXNpdmUoc3Ry
dWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndx
X2VudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHdxX2VudHJ5LT5mbGFncyB8PSAweDAxOwoxNDQ3NDog
IF9fYWRkX3dhaXRfcXVldWVfZW50cnlfdGFpbCh3cV9oZWFkLCB3cV9lbnRyeSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IF9fcmVtb3ZlX3dhaXRfcXVldWUoc3RydWN0IHdh
aXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIGxpc3RfZGVsKCZ3cV9lbnRyeS0+ZW50cnkpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiB2b2lkIF9fd2FrZV91cChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9o
ZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgaW50IG5yLCB2b2lkICprZXkpOwoxNDQ3NDogdm9pZCBf
X3dha2VfdXBfbG9ja2VkX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCB1bnNp
Z25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKMTQ0NzQ6IHZvaWQgX193YWtlX3VwX2xvY2tlZF9r
ZXlfYm9va21hcmsoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IG1vZGUsIHZvaWQgKmtleSwgd2FpdF9xdWV1ZV9lbnRyeV90ICpib29rbWFyayk7
CjE0NDc0OiB2b2lkIF9fd2FrZV91cF9zeW5jX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3
cV9oZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKMTQ0NzQ6IHZvaWQgX193YWtl
X3VwX2xvY2tlZF9zeW5jX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCB1bnNp
Z25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKMTQ0NzQ6IHZvaWQgX193YWtlX3VwX2xvY2tlZChz
dHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgaW50IG5y
KTsKMTQ0NzQ6IHZvaWQgX193YWtlX3VwX3N5bmMoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3Ff
aGVhZCwgdW5zaWduZWQgaW50IG1vZGUpOwoxNDQ3NDogIyAyNDggIi4vaW5jbHVkZS9saW51eC93
YWl0LmgiCjE0NDc0OiBleHRlcm4gdm9pZCBpbml0X3dhaXRfZW50cnkoc3RydWN0IHdhaXRfcXVl
dWVfZW50cnkgKndxX2VudHJ5LCBpbnQgZmxhZ3MpOwoxNDQ3NDogIyA3MzIgIi4vaW5jbHVkZS9s
aW51eC93YWl0LmgiCjE0NDc0OiBleHRlcm4gaW50IGRvX3dhaXRfaW50cih3YWl0X3F1ZXVlX2hl
YWRfdCAqLCB3YWl0X3F1ZXVlX2VudHJ5X3QgKik7CjE0NDc0OiBleHRlcm4gaW50IGRvX3dhaXRf
aW50cl9pcnEod2FpdF9xdWV1ZV9oZWFkX3QgKiwgd2FpdF9xdWV1ZV9lbnRyeV90ICopOwoxNDQ3
NDogIyAxMTI2ICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIgoxNDQ3NDogdm9pZCBwcmVwYXJlX3Rv
X3dhaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVf
ZW50cnkgKndxX2VudHJ5LCBpbnQgc3RhdGUpOwoxNDQ3NDogdm9pZCBwcmVwYXJlX3RvX3dhaXRf
ZXhjbHVzaXZlKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVjdCB3YWl0X3F1
ZXVlX2VudHJ5ICp3cV9lbnRyeSwgaW50IHN0YXRlKTsKMTQ0NzQ6IGxvbmcgcHJlcGFyZV90b193
YWl0X2V2ZW50KHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVjdCB3YWl0X3F1
ZXVlX2VudHJ5ICp3cV9lbnRyeSwgaW50IHN0YXRlKTsKMTQ0NzQ6IHZvaWQgZmluaXNoX3dhaXQo
c3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkg
KndxX2VudHJ5KTsKMTQ0NzQ6IGxvbmcgd2FpdF93b2tlbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRy
eSAqd3FfZW50cnksIHVuc2lnbmVkIG1vZGUsIGxvbmcgdGltZW91dCk7CjE0NDc0OiBpbnQgd29r
ZW5fd2FrZV9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnksIHVuc2ln
bmVkIG1vZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwoxNDQ3NDogaW50IGF1dG9yZW1vdmVfd2Fr
ZV9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnksIHVuc2lnbmVkIG1v
ZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L21t
em9uZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9udW1hLmgiIDEKMTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiIDEKMTQ0NzQ6ICMg
NDggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBzZXFj
b3VudCB7CjE0NDc0OiAgdW5zaWduZWQgc2VxdWVuY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB9IHNlcWNvdW50X3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19zZXFjb3VudF9pbml0
KHNlcWNvdW50X3QgKnMsIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgICAgc3RydWN0IGxv
Y2tfY2xhc3Nfa2V5ICprZXkpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgZG8geyAodm9pZCkobmFtZSk7ICh2b2lkKShrZXkpOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBz
LT5zZXF1ZW5jZSA9IDA7CjE0NDc0OiB9CjE0NDc0OiAjIDEwOCAiLi9pbmNsdWRlL2xpbnV4L3Nl
cWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIF9fcmVhZF9zZXFjb3VudF9iZWdpbihjb25zdCBzZXFj
b3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIHJldDsKMTQ0NzQ6IAoxNDQ3NDog
cmVwZWF0OgoxNDQ3NDogIHJldCA9ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVl
bmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6
ZV9ub2NoZWNrKCYocy0+c2VxdWVuY2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsg
ZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4
cGVjdCghIShyZXQgJiAxKSwgMCkpIHsKMTQ0NzQ6ICAgY3B1X3JlbGF4KCk7CjE0NDc0OiAgIGdv
dG8gcmVwZWF0OwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gcmV0OwoxNDQ3NDogfQoxNDQ3NDog
IyAxMzAgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCByYXdfcmVh
ZF9zZXFjb3VudChjb25zdCBzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVk
IHJldCA9ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywg
c2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocy0+
c2VxdWVuY2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsgZG8geyB9IHdoaWxlICgw
KTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1l
bW9yeSIpOwoxNDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0OiAjIDE0NiAiLi9pbmNs
dWRlL2xpbnV4L3NlcWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19yZWFkX3NlcWNvdW50X2Jl
Z2luKGNvbnN0IHNlcWNvdW50X3QgKnMpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgcmV0ID0g
X19yZWFkX3NlcWNvdW50X2JlZ2luKHMpOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIi
OiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTYy
ICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgcmVhZF9zZXFjb3Vu
dF9iZWdpbihjb25zdCBzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIDsKMTQ0NzQ6ICBy
ZXR1cm4gcmF3X3JlYWRfc2VxY291bnRfYmVnaW4ocyk7CjE0NDc0OiB9CjE0NDc0OiAjIDE4MiAi
Li9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19zZXFjb3VudF9i
ZWdpbihjb25zdCBzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIHJldCA9
ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191
OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywgc2l6ZW9m
KHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocy0+c2VxdWVu
Y2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsgZG8geyB9IHdoaWxlICgwKTsgX191
Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwoxNDQ3NDogIHJldHVybiByZXQgJiB+MTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjAzICIuL2luY2x1
ZGUvbGludXgvc2VxbG9jay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fcmVhZF9zZXFjb3VudF9yZXRyeShjb25z
dCBzZXFjb3VudF90ICpzLCB1bnNpZ25lZCBzdGFydCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X19idWlsdGluX2V4cGVjdCghIShzLT5zZXF1ZW5jZSAhPSBzdGFydCksIDApOwoxNDQ3NDogfQox
NDQ3NDogIyAyMTggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVhZF9z
ZXFjb3VudF9yZXRyeShjb25zdCBzZXFjb3VudF90ICpzLCB1bnNpZ25lZCBzdGFydCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDog
IHJldHVybiBfX3JlYWRfc2VxY291bnRfcmV0cnkocywgc3RhcnQpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYXdfd3JpdGVfc2VxY291bnRfYmVnaW4oc2Vx
Y291bnRfdCAqcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzLT5zZXF1ZW5jZSsrOwoxNDQ3NDogIF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgcmF3X3dyaXRlX3NlcWNvdW50X2VuZChzZXFjb3VudF90ICpzKQoxNDQ3NDogewoxNDQ3
NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgcy0+c2Vx
dWVuY2UrKzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjcyICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByYXdfd3JpdGVfc2VxY291bnRfYmFycmllcihzZXFjb3VudF90ICpzKQox
NDQ3NDogewoxNDQ3NDogIHMtPnNlcXVlbmNlKys7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBzLT5zZXF1ZW5jZSsrOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgcmF3X3JlYWRfc2VxY291bnRfbGF0Y2goc2VxY291bnRfdCAqcykKMTQ0
NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIGludCBzZXEgPSAoeyB1bmlvbiB7IHR5cGVvZihzLT5zZXF1
ZW5jZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUo
JihzLT5zZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1ZW5jZSkpOyBlbHNlIF9fcmVh
ZF9vbmNlX3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNl
cXVlbmNlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiAgcmV0dXJu
IHNlcTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzYzICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCByYXdfd3JpdGVfc2VxY291bnRfbGF0Y2goc2VxY291bnRfdCAqcykKMTQ0NzQ6
IHsKMTQ0NzQ6ICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwox
NDQ3NDogICAgICAgIHMtPnNlcXVlbmNlKys7CjE0NDc0OiAgICAgICAgX19hc21fXyBfX3ZvbGF0
aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcWNvdW50X2JlZ2luX25lc3RlZChz
ZXFjb3VudF90ICpzLCBpbnQgc3ViY2xhc3MpCjE0NDc0OiB7CjE0NDc0OiAgcmF3X3dyaXRlX3Nl
cWNvdW50X2JlZ2luKHMpOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxY291bnRfYmVnaW4oc2VxY291bnRfdCAqcykKMTQ0NzQ6
IHsKMTQ0NzQ6ICB3cml0ZV9zZXFjb3VudF9iZWdpbl9uZXN0ZWQocywgMCk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxY291bnRfZW5kKHNlcWNvdW50X3QgKnMpCjE0NDc0
OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICByYXdfd3JpdGVfc2VxY291bnRf
ZW5kKHMpOwoxNDQ3NDogfQoxNDQ3NDogIyAzOTggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHdyaXRlX3NlcWNvdW50X2ludmFsaWRhdGUoc2VxY291bnRfdCAqcykKMTQ0
NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3
NDogIHMtPnNlcXVlbmNlKz0yOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVj
dCB7CjE0NDc0OiAgc3RydWN0IHNlcWNvdW50IHNlcWNvdW50OwoxNDQ3NDogIHNwaW5sb2NrX3Qg
bG9jazsKMTQ0NzQ6IH0gc2VxbG9ja190OwoxNDQ3NDogIyA0MzEgIi4vaW5jbHVkZS9saW51eC9z
ZXFsb2NrLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCByZWFkX3NlcWJlZ2luKGNvbnN0IHNlcWxvY2tfdCAq
c2wpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlYWRfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFj
b3VudCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJlYWRfc2VxcmV0cnkoY29u
c3Qgc2VxbG9ja190ICpzbCwgdW5zaWduZWQgc3RhcnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHJlYWRfc2VxY291bnRfcmV0cnkoJnNsLT5zZXFjb3VudCwgc3RhcnQpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3
cml0ZV9zZXFsb2NrKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bpbl9sb2NrKCZz
bC0+bG9jayk7CjE0NDc0OiAgd3JpdGVfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxdW5sb2NrKHNlcWxvY2tfdCAqc2wp
CjE0NDc0OiB7CjE0NDc0OiAgd3JpdGVfc2VxY291bnRfZW5kKCZzbC0+c2VxY291bnQpOwoxNDQ3
NDogIHNwaW5fdW5sb2NrKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
d3JpdGVfc2VxbG9ja19iaChzZXFsb2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDogIHNwaW5fbG9j
a19iaCgmc2wtPmxvY2spOwoxNDQ3NDogIHdyaXRlX3NlcWNvdW50X2JlZ2luKCZzbC0+c2VxY291
bnQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcXVubG9ja19iaChzZXFs
b2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDogIHdyaXRlX3NlcWNvdW50X2VuZCgmc2wtPnNlcWNv
dW50KTsKMTQ0NzQ6ICBzcGluX3VubG9ja19iaCgmc2wtPmxvY2spOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHdyaXRlX3NlcWxvY2tfaXJxKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0
NDc0OiAgc3Bpbl9sb2NrX2lycSgmc2wtPmxvY2spOwoxNDQ3NDogIHdyaXRlX3NlcWNvdW50X2Jl
Z2luKCZzbC0+c2VxY291bnQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3Nl
cXVubG9ja19pcnEoc2VxbG9ja190ICpzbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB3cml0ZV9zZXFjb3Vu
dF9lbmQoJnNsLT5zZXFjb3VudCk7CjE0NDc0OiAgc3Bpbl91bmxvY2tfaXJxKCZzbC0+bG9jayk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgX193cml0ZV9zZXFsb2NrX2ly
cXNhdmUoc2VxbG9ja190ICpzbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdz
OwoxNDQ3NDogCjE0NDc0OiAgZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsgdHlw
ZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZfX2R1bW15Mik7IDE7IH0p
OyBmbGFncyA9IF9yYXdfc3Bpbl9sb2NrX2lycXNhdmUoc3BpbmxvY2tfY2hlY2soJnNsLT5sb2Nr
KSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICB3cml0ZV9zZXFjb3VudF9iZWdp
bigmc2wtPnNlcWNvdW50KTsKMTQ0NzQ6ICByZXR1cm4gZmxhZ3M7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IHdyaXRlX3NlcXVubG9j
a19pcnFyZXN0b3JlKHNlcWxvY2tfdCAqc2wsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCjE0NDc0OiB7
CjE0NDc0OiAgd3JpdGVfc2VxY291bnRfZW5kKCZzbC0+c2VxY291bnQpOwoxNDQ3NDogIHNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnNsLT5sb2NrLCBmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlYWRfc2Vx
bG9ja19leGNsKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bpbl9sb2NrKCZzbC0+
bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVhZF9zZXF1bmxvY2tfZXhjbChz
ZXFsb2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDogIHNwaW5fdW5sb2NrKCZzbC0+bG9jayk7CjE0
NDc0OiB9CjE0NDc0OiAjIDUyNiAiLi9pbmNsdWRlL2xpbnV4L3NlcWxvY2suaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgcmVhZF9zZXFiZWdpbl9vcl9sb2NrKHNlcWxvY2tfdCAqbG9jaywgaW50ICpzZXEpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKCEoKnNlcSAmIDEpKQoxNDQ3NDogICAqc2VxID0gcmVhZF9zZXFiZWdp
bihsb2NrKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJlYWRfc2VxbG9ja19leGNsKGxvY2spOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbmVlZF9zZXFyZXRyeShzZXFsb2NrX3QgKmxvY2ss
IGludCBzZXEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICEoc2VxICYgMSkgJiYgcmVhZF9zZXFy
ZXRyeShsb2NrLCBzZXEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvbmVfc2VxcmV0
cnkoc2VxbG9ja190ICpsb2NrLCBpbnQgc2VxKQoxNDQ3NDogewoxNDQ3NDogIGlmIChzZXEgJiAx
KQoxNDQ3NDogICByZWFkX3NlcXVubG9ja19leGNsKGxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHJlYWRfc2VxbG9ja19leGNsX2JoKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0
NDc0OiAgc3Bpbl9sb2NrX2JoKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgcmVhZF9zZXF1bmxvY2tfZXhjbF9iaChzZXFsb2NrX3QgKnNsKQoxNDQ3NDogewoxNDQ3NDog
IHNwaW5fdW5sb2NrX2JoKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
cmVhZF9zZXFsb2NrX2V4Y2xfaXJxKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bp
bl9sb2NrX2lycSgmc2wtPmxvY2spOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlYWRf
c2VxdW5sb2NrX2V4Y2xfaXJxKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0NDc0OiAgc3Bpbl91
bmxvY2tfaXJxKCZzbC0+bG9jayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxv
bmcgX19yZWFkX3NlcWxvY2tfZXhjbF9pcnFzYXZlKHNlcWxvY2tfdCAqc2wpCjE0NDc0OiB7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsgZG8geyAoeyB1
bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19k
dW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgZmxhZ3MgPSBfcmF3X3NwaW5fbG9ja19pcnFzYXZl
KHNwaW5sb2NrX2NoZWNrKCZzbC0+bG9jaykpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgcmV0dXJuIGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiByZWFkX3NlcXVubG9ja19leGNsX2lycXJlc3RvcmUoc2Vx
bG9ja190ICpzbCwgdW5zaWduZWQgbG9uZyBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzcGluX3Vu
bG9ja19pcnFyZXN0b3JlKCZzbC0+bG9jaywgZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBsb25nCjE0NDc0OiByZWFkX3NlcWJlZ2luX29yX2xvY2tfaXJxc2F2ZShzZXFs
b2NrX3QgKmxvY2ssIGludCAqc2VxKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxh
Z3MgPSAwOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCEoKnNlcSAmIDEpKQoxNDQ3NDogICAqc2VxID0g
cmVhZF9zZXFiZWdpbihsb2NrKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIGRvIHsgZmxhZ3MgPSBf
X3JlYWRfc2VxbG9ja19leGNsX2lycXNhdmUobG9jayk7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBk
b25lX3NlcXJldHJ5X2lycXJlc3RvcmUoc2VxbG9ja190ICpsb2NrLCBpbnQgc2VxLCB1bnNpZ25l
ZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGlmIChzZXEgJiAxKQoxNDQ3NDogICByZWFk
X3NlcXVubG9ja19leGNsX2lycXJlc3RvcmUobG9jaywgZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDog
IyAxNyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9ub2RlbWFzay5oIiAxCjE0NDc0OiAjIDk4ICIuL2luY2x1ZGUvbGludXgvbm9kZW1hc2su
aCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgbG9uZyBiaXRzWygoKCgxIDw8IDAp
KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSldOyB9
IG5vZGVtYXNrX3Q7CjE0NDc0OiBleHRlcm4gbm9kZW1hc2tfdCBfdW51c2VkX25vZGVtYXNrX2Fy
Z187CjE0NDc0OiAjIDEwOSAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBpbnQgX19ub2RlbWFza19wcl9udW1ub2Rlcyhjb25zdCBub2RlbWFza190ICptKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBtID8gKDEgPDwgMCkgOiAwOwoxNDQ3NDogfQoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29u
c3QgdW5zaWduZWQgbG9uZyAqX19ub2RlbWFza19wcl9iaXRzKGNvbnN0IG5vZGVtYXNrX3QgKm0p
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG0gPyBtLT5iaXRzIDogKCh2b2lkICopMCk7CjE0NDc0
OiB9CjE0NDc0OiAjIDEyOCAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19ub2RlX3NldChpbnQgbm9kZSwg
dm9sYXRpbGUgbm9kZW1hc2tfdCAqZHN0cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzZXRfYml0KG5vZGUs
IGRzdHAtPmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19ub2Rl
X2NsZWFyKGludCBub2RlLCB2b2xhdGlsZSBub2RlbWFza190ICpkc3RwKQoxNDQ3NDogewoxNDQ3
NDogIGNsZWFyX2JpdChub2RlLCBkc3RwLT5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fbm9kZXNfc2V0YWxsKG5vZGVtYXNrX3QgKmRzdHAsIHVuc2lnbmVkIGlu
dCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfZmlsbChkc3RwLT5iaXRzLCBuYml0cyk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVzX2NsZWFyKG5vZGVt
YXNrX3QgKmRzdHAsIHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBf
emVybyhkc3RwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlX3Rlc3RfYW5kX3NldChp
bnQgbm9kZSwgbm9kZW1hc2tfdCAqYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9h
bmRfc2V0X2JpdChub2RlLCBhZGRyLT5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19hbmQobm9kZW1hc2tfdCAqZHN0cCwgY29uc3Qgbm9k
ZW1hc2tfdCAqc3JjMXAsCjE0NDc0OiAgICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyYzJwLCB1bnNp
Z25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX2FuZChkc3RwLT5iaXRzLCBz
cmMxcC0+Yml0cywgc3JjMnAtPmJpdHMsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19vcihub2RlbWFza190ICpkc3RwLCBjb25zdCBu
b2RlbWFza190ICpzcmMxcCwKMTQ0NzQ6ICAgICAgY29uc3Qgbm9kZW1hc2tfdCAqc3JjMnAsIHVu
c2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBiaXRtYXBfb3IoZHN0cC0+Yml0cywg
c3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfeG9yKG5vZGVtYXNrX3QgKmRzdHAsIGNvbnN0
IG5vZGVtYXNrX3QgKnNyYzFwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwg
dW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF94b3IoZHN0cC0+Yml0
cywgc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfYW5kbm90KG5vZGVtYXNrX3QgKmRzdHAs
IGNvbnN0IG5vZGVtYXNrX3QgKnNyYzFwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpz
cmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIGJpdG1hcF9hbmRub3Qo
ZHN0cC0+Yml0cywgc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfY29tcGxlbWVudChub2Rl
bWFza190ICpkc3RwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpzcmNwLCB1bnNpZ25l
ZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX2NvbXBsZW1lbnQoZHN0cC0+Yml0
cywgc3JjcC0+Yml0cywgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IF9fbm9kZXNfZXF1YWwoY29uc3Qgbm9kZW1hc2tfdCAqc3JjMXAsCjE0NDc0OiAg
ICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyYzJwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGJpdG1hcF9lcXVhbChzcmMxcC0+Yml0cywgc3JjMnAtPmJpdHMsIG5i
aXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVz
X2ludGVyc2VjdHMoY29uc3Qgbm9kZW1hc2tfdCAqc3JjMXAsCjE0NDc0OiAgICAgIGNvbnN0IG5v
ZGVtYXNrX3QgKnNyYzJwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGJpdG1hcF9pbnRlcnNlY3RzKHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywgbmJpdHMpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfc3Vic2V0
KGNvbnN0IG5vZGVtYXNrX3QgKnNyYzFwLAoxNDQ3NDogICAgICBjb25zdCBub2RlbWFza190ICpz
cmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBf
c3Vic2V0KHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVzX2VtcHR5KGNvbnN0IG5vZGVtYXNrX3QgKnNyY3As
IHVuc2lnbmVkIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX2VtcHR5
KHNyY3AtPmJpdHMsIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
X19ub2Rlc19mdWxsKGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIHVuc2lnbmVkIGludCBuYml0cykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0bWFwX2Z1bGwoc3JjcC0+Yml0cywgbmJpdHMpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVzX3dlaWdodChjb25zdCBu
b2RlbWFza190ICpzcmNwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGJpdG1hcF93ZWlnaHQoc3JjcC0+Yml0cywgbmJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVzX3NoaWZ0X3JpZ2h0KG5vZGVtYXNrX3Qg
KmRzdHAsCjE0NDc0OiAgICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJp
dHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX3NoaWZ0X3JpZ2h0KGRzdHAtPmJpdHMsIHNyY3At
PmJpdHMsIG4sIG5iaXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgX19ub2Rlc19zaGlmdF9sZWZ0KG5vZGVtYXNrX3QgKmRzdHAsCjE0NDc0OiAgICAgIGNv
bnN0IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAg
Yml0bWFwX3NoaWZ0X2xlZnQoZHN0cC0+Yml0cywgc3JjcC0+Yml0cywgbiwgbmJpdHMpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBf
X2ZpcnN0X25vZGUoY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gX19idWlsdGluX2Nob29zZV9leHByKCgoISEoc2l6ZW9mKCh0eXBlb2YoKGludCkoKDEgPDwg
MCkpKSAqKTEgPT0gKHR5cGVvZigoaW50KShmaW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRzLCAoMSA8
PCAwKSkpKSAqKTEpKSkgJiYgKChzaXplb2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICop
KChsb25nKSgoaW50KSgoMSA8PCAwKSkpICogMGwpKSA6IChpbnQgKik4KSkpICYmIChzaXplb2Yo
aW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgoaW50KShmaW5kX2ZpcnN0X2Jp
dChzcmNwLT5iaXRzLCAoMSA8PCAwKSkpKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKChpbnQp
KCgxIDw8IDApKSkgPCAoKGludCkoZmluZF9maXJzdF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCkp
KSkgPyAoKGludCkoKDEgPDwgMCkpKSA6ICgoaW50KShmaW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRz
LCAoMSA8PCAwKSkpKSksICh7IHR5cGVvZigoaW50KSgoMSA8PCAwKSkpIF9fVU5JUVVFX0lEX19f
eDIgPSAoKGludCkoKDEgPDwgMCkpKTsgdHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfYml0KHNyY3At
PmJpdHMsICgxIDw8IDApKSkpIF9fVU5JUVVFX0lEX19feTMgPSAoKGludCkoZmluZF9maXJzdF9i
aXQoc3JjcC0+Yml0cywgKDEgPDwgMCkpKSk7ICgoX19VTklRVUVfSURfX194MikgPCAoX19VTklR
VUVfSURfX195MykgPyAoX19VTklRVUVfSURfX194MikgOiAoX19VTklRVUVfSURfX195MykpOyB9
KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbmV4dF9ub2RlKGludCBu
LCBjb25zdCBub2RlbWFza190ICpzcmNwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0
aW5fY2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5cGVvZigoaW50KSgoMSA8PCAwKSkpICopMSA9
PSAodHlwZW9mKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkp
KSAqKTEpKSkgJiYgKChzaXplb2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25n
KSgoaW50KSgoMSA8PCAwKSkpICogMGwpKSA6IChpbnQgKik4KSkpICYmIChzaXplb2YoaW50KSA9
PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgoaW50KShmaW5kX25leHRfYml0KHNyY3At
PmJpdHMsICgxIDw8IDApLCBuKzEpKSkgKiAwbCkpIDogKGludCAqKTgpKSkpKSwgKCgoaW50KSgo
MSA8PCAwKSkpIDwgKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4r
MSkpKSA/ICgoaW50KSgoMSA8PCAwKSkpIDogKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0
cywgKDEgPDwgMCksIG4rMSkpKSksICh7IHR5cGVvZigoaW50KSgoMSA8PCAwKSkpIF9fVU5JUVVF
X0lEX19feDQgPSAoKGludCkoKDEgPDwgMCkpKTsgdHlwZW9mKChpbnQpKGZpbmRfbmV4dF9iaXQo
c3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkpKSBfX1VOSVFVRV9JRF9fX3k1ID0gKChpbnQpKGZp
bmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkpKTsgKChfX1VOSVFVRV9JRF9f
X3g0KSA8IChfX1VOSVFVRV9JRF9fX3k1KSA/IChfX1VOSVFVRV9JRF9fX3g0KSA6IChfX1VOSVFV
RV9JRF9fX3k1KSk7IH0pKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGludCBfX25leHRfbm9kZV9pbihpbnQgbm9kZSwgY29u
c3Qgbm9kZW1hc2tfdCAqc3JjcCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5pdF9ub2RlbWFza19v
Zl9ub2RlKG5vZGVtYXNrX3QgKm1hc2ssIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogIF9fbm9k
ZXNfY2xlYXIoJigqbWFzayksICgxIDw8IDApKTsKMTQ0NzQ6ICBfX25vZGVfc2V0KChub2RlKSwg
JigqbWFzaykpOwoxNDQ3NDogfQoxNDQ3NDogIyAyOTkgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFz
ay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IF9fZmlyc3RfdW5zZXRfbm9kZShjb25zdCBub2RlbWFza190ICptYXNr
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19idWlsdGluX2Nob29zZV9leHByKCgoISEoc2l6
ZW9mKCh0eXBlb2YoKGludCkoKDEgPDwgMCkpKSAqKTEgPT0gKHR5cGVvZigoaW50KShmaW5kX2Zp
cnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAwKSkpKSAqKTEpKSkgJiYgKChzaXplb2Yo
aW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgoaW50KSgoMSA8PCAwKSkpICog
MGwpKSA6IChpbnQgKik4KSkpICYmIChzaXplb2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lk
ICopKChsb25nKSgoaW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAw
KSkpKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKChpbnQpKCgxIDw8IDApKSkgPCAoKGludCko
ZmluZF9maXJzdF96ZXJvX2JpdChtYXNrcC0+Yml0cywgKDEgPDwgMCkpKSkgPyAoKGludCkoKDEg
PDwgMCkpKSA6ICgoaW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAw
KSkpKSksICh7IHR5cGVvZigoaW50KSgoMSA8PCAwKSkpIF9fVU5JUVVFX0lEX19feDYgPSAoKGlu
dCkoKDEgPDwgMCkpKTsgdHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQobWFza3AtPmJp
dHMsICgxIDw8IDApKSkpIF9fVU5JUVVFX0lEX19feTcgPSAoKGludCkoZmluZF9maXJzdF96ZXJv
X2JpdChtYXNrcC0+Yml0cywgKDEgPDwgMCkpKSk7ICgoX19VTklRVUVfSURfX194NikgPCAoX19V
TklRVUVfSURfX195NykgPyAoX19VTklRVUVfSURfX194NikgOiAoX19VTklRVUVfSURfX195Nykp
OyB9KSkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogIyAzMzMgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fbm9kZW1hc2tfcGFyc2VfdXNlcihjb25zdCBjaGFyICpidWYsIGludCBs
ZW4sCjE0NDc0OiAgICAgIG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlX3VzZXIoYnVmLCBsZW4sIGRzdHAtPmJpdHMsIG5iaXRz
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlbGlzdF9wYXJzZShj
b25zdCBjaGFyICpidWYsIG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gYml0bWFwX3BhcnNlbGlzdChidWYsIGRzdHAtPmJpdHMsIG5iaXRzKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVfcmVtYXAoaW50
IG9sZGJpdCwKMTQ0NzQ6ICAgY29uc3Qgbm9kZW1hc2tfdCAqb2xkcCwgY29uc3Qgbm9kZW1hc2tf
dCAqbmV3cCwgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBiaXRtYXBfYml0cmVt
YXAob2xkYml0LCBvbGRwLT5iaXRzLCBuZXdwLT5iaXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfcmVtYXAobm9kZW1hc2tfdCAq
ZHN0cCwgY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCwKMTQ0NzQ6ICAgY29uc3Qgbm9kZW1hc2tfdCAq
b2xkcCwgY29uc3Qgbm9kZW1hc2tfdCAqbmV3cCwgaW50IG5iaXRzKQoxNDQ3NDogewoxNDQ3NDog
IGJpdG1hcF9yZW1hcChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBvbGRwLT5iaXRzLCBuZXdwLT5i
aXRzLCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IF9fbm9kZXNfb250byhub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190ICpvcmlncCwK
MTQ0NzQ6ICAgY29uc3Qgbm9kZW1hc2tfdCAqcmVsbWFwcCwgaW50IG5iaXRzKQoxNDQ3NDogewox
NDQ3NDogIGJpdG1hcF9vbnRvKGRzdHAtPmJpdHMsIG9yaWdwLT5iaXRzLCByZWxtYXBwLT5iaXRz
LCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9f
bm9kZXNfZm9sZChub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190ICpvcmlncCwKMTQ0
NzQ6ICAgaW50IHN6LCBpbnQgbmJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgYml0bWFwX2ZvbGQoZHN0
cC0+Yml0cywgb3JpZ3AtPmJpdHMsIHN6LCBuYml0cyk7CjE0NDc0OiB9CjE0NDc0OiAjIDM5MSAi
Li9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBlbnVtIG5vZGVfc3RhdGVzIHsKMTQ0
NzQ6ICBOX1BPU1NJQkxFLAoxNDQ3NDogIE5fT05MSU5FLAoxNDQ3NDogIE5fTk9STUFMX01FTU9S
WSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBOX0hJR0hfTUVNT1JZID0gTl9OT1JN
QUxfTUVNT1JZLAoxNDQ3NDogCjE0NDc0OiAgTl9NRU1PUlksCjE0NDc0OiAgTl9DUFUsCjE0NDc0
OiAgTlJfTk9ERV9TVEFURVMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gbm9kZW1hc2tfdCBub2RlX3N0YXRlc1tO
Ul9OT0RFX1NUQVRFU107CjE0NDc0OiAjIDQ2NCAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgbm9kZV9zdGF0ZShpbnQgbm9kZSwgZW51bSBub2RlX3N0YXRlcyBzdGF0ZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbm9kZSA9PSAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIG5vZGVfc2V0X3N0YXRlKGludCBub2RlLCBlbnVtIG5vZGVfc3RhdGVzIHN0YXRlKQox
NDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5vZGVfY2xlYXJfc3RhdGUoaW50
IG5vZGUsIGVudW0gbm9kZV9zdGF0ZXMgc3RhdGUpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBudW1fbm9kZV9zdGF0ZShlbnVtIG5vZGVfc3RhdGVzIHN0YXRlKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3NDogIyA0OTkgIi4vaW5jbHVkZS9saW51
eC9ub2RlbWFzay5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG5vZGVfcmFuZG9tKGNvbnN0IG5vZGVtYXNrX3QgKm1h
c2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDUzMSAiLi9p
bmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCjE0NDc0OiBzdHJ1Y3Qgbm9kZW1hc2tfc2NyYXRjaCB7
CjE0NDc0OiAgbm9kZW1hc2tfdCBtYXNrMTsKMTQ0NzQ6ICBub2RlbWFza190IG1hc2syOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgiIDEKMTQ0NzQ6ICMgMTggIi4vaW5j
bHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaCIKMTQ0NzQ6IGVudW0gcGFnZWJsb2NrX2JpdHMg
ewoxNDQ3NDogIFBCX21pZ3JhdGUsCjE0NDc0OiAgUEJfbWlncmF0ZV9lbmQgPSBQQl9taWdyYXRl
ICsgMyAtIDEsCjE0NDc0OiAKMTQ0NzQ6ICBQQl9taWdyYXRlX3NraXAsCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIE5SX1BBR0VCTE9DS19CSVRTCjE0NDc0
OiB9OwoxNDQ3NDogIyA1NSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFncy5oIgoxNDQ3
NDogc3RydWN0IHBhZ2U7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgZ2V0X3BmbmJsb2Nr
X2ZsYWdzX21hc2soc3RydWN0IHBhZ2UgKnBhZ2UsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBw
Zm4sCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBlbmRfYml0aWR4LAoxNDQ3NDogICAgIHVuc2ln
bmVkIGxvbmcgbWFzayk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2V0X3BmbmJsb2NrX2ZsYWdzX21h
c2soc3RydWN0IHBhZ2UgKnBhZ2UsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKMTQ0
NzQ6ICAgICB1bnNpZ25lZCBsb25nIHBmbiwKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nIGVuZF9i
aXRpZHgsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBtYXNrKTsKMTQ0NzQ6ICMgMTkgIi4vaW5j
bHVkZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcGFnZS1m
bGFncy1sYXlvdXQuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2dlbmVyYXRlZC9ib3VuZHMuaCIgMQoxNDQ3NDogIyA3ICIu
L2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy1sYXlvdXQuaCIgMgoxNDQ3NDogIyAyMCAiLi9pbmNs
dWRlL2xpbnV4L21tem9uZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L21tX3R5cGVzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIiAxCjE0NDc0OiAjIDE5ICIuL2luY2x1
ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3RsYmJhdGNoLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhcmNoX3RsYmZsdXNoX3VubWFwX2JhdGNoIHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjcHVtYXNrIGNwdW1hc2s7
CjE0NDc0OiB9OwoxNDQ3NDogIyAyMCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaCIg
MgoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rhc2suaCIKMTQ0NzQ6IHN0
cnVjdCB2bWFjYWNoZSB7CjE0NDc0OiAgdTY0IHNlcW51bTsKMTQ0NzQ6ICBzdHJ1Y3Qgdm1fYXJl
YV9zdHJ1Y3QgKnZtYXNbKDFVIDw8IDIpXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTU1fRklMRVBBR0VTLAox
NDQ3NDogIE1NX0FOT05QQUdFUywKMTQ0NzQ6ICBNTV9TV0FQRU5UUywKMTQ0NzQ6ICBNTV9TSE1F
TVBBR0VTLAoxNDQ3NDogIE5SX01NX0NPVU5URVJTCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdGFza19yc3Nfc3RhdCB7CjE0NDc0OiAgaW50
IGV2ZW50czsKMTQ0NzQ6ICBpbnQgY291bnRbTlJfTU1fQ09VTlRFUlNdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbW1fcnNzX3N0YXQgewoxNDQ3NDogIGF0b21pY19s
b25nX3QgY291bnRbTlJfTU1fQ09VTlRFUlNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IHBhZ2VfZnJhZyB7CjE0NDc0OiAgc3RydWN0IHBhZ2UgKnBhZ2U7CjE0NDc0OiAKMTQ0NzQ6
ICBfX3UzMiBvZmZzZXQ7CjE0NDc0OiAgX191MzIgc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdGxiZmx1
c2hfdW5tYXBfYmF0Y2ggewoxNDQ3NDogIyA4NSAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzX3Rh
c2suaCIKMTQ0NzQ6ICBzdHJ1Y3QgYXJjaF90bGJmbHVzaF91bm1hcF9iYXRjaCBhcmNoOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIGZsdXNoX3JlcXVpcmVkOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgd3JpdGFibGU7CjE0
NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAy
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2F1eHZlYy5oIiAxCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgv
YXV4dmVjLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4dmVjLmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNs
dWRlL3VhcGkvbGludXgvYXV4dmVjLmgiIDIKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L2F1
eHZlYy5oIiAyCjE0NDc0OiAjIDggIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgiIDEKMTQ0NzQ6
ICMgMjIgIi4vaW5jbHVkZS9saW51eC9yYnRyZWUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xp
bnV4L3JjdXBkYXRlLmgiIDEKMTQ0NzQ6ICMgMzggIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5o
IgoxNDQ3NDogdm9pZCBjYWxsX3JjdShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCwgcmN1X2Nh
bGxiYWNrX3QgZnVuYyk7CjE0NDc0OiB2b2lkIHJjdV9iYXJyaWVyX3Rhc2tzKHZvaWQpOwoxNDQ3
NDogdm9pZCBzeW5jaHJvbml6ZV9yY3Uodm9pZCk7CjE0NDc0OiAjIDU3ICIuL2luY2x1ZGUvbGlu
dXgvcmN1cGRhdGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yY3VfcmVhZF9sb2NrKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3JjdV9yZWFkX3VubG9jayh2b2lkKQoxNDQ3NDogewoxNDQ3
NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCByY3VfcHJlZW1wdF9kZXB0aCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2
b2lkIHJjdV9pbml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCByY3Vfc2NoZWR1bGVyX2FjdGl2
ZSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKTsKMTQ0
NzQ6IHZvaWQgcmN1X3NjaGVkX2Nsb2NrX2lycShpbnQgdXNlcik7CjE0NDc0OiB2b2lkIHJjdV9y
ZXBvcnRfZGVhZCh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IHZvaWQgcmN1dHJlZV9taWdyYXRl
X2NhbGxiYWNrcyhpbnQgY3B1KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHJjdV9zeXNy
cV9zdGFydCh2b2lkKTsKMTQ0NzQ6IHZvaWQgcmN1X3N5c3JxX2VuZCh2b2lkKTsKMTQ0NzQ6ICMg
OTMgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfdXNlcl9lbnRl
cih2b2lkKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3VzZXJfZXhpdCh2b2lkKSB7IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9pbml0X25vaHoo
dm9pZCkgeyB9CjE0NDc0OiAjIDE0OCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGV4aXRfdGFza3NfcmN1X3N0YXJ0KHZvaWQpIHsgfQoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0X3Rh
c2tzX3JjdV9maW5pc2godm9pZCkgeyB9CjE0NDc0OiAjIDE3MSAiLi9pbmNsdWRlL2xpbnV4L3Jj
dXBkYXRlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yY3V0cmVlLmgiIDEKMTQ0NzQ6
ICMgMjAgIi4vaW5jbHVkZS9saW51eC9yY3V0cmVlLmgiCjE0NDc0OiB2b2lkIHJjdV9zb2Z0aXJx
X3FzKHZvaWQpOwoxNDQ3NDogdm9pZCByY3Vfbm90ZV9jb250ZXh0X3N3aXRjaChib29sIHByZWVt
cHQpOwoxNDQ3NDogaW50IHJjdV9uZWVkc19jcHUodTY0IGJhc2VtLCB1NjQgKm5leHRldnQpOwox
NDQ3NDogdm9pZCByY3VfY3B1X3N0YWxsX3Jlc2V0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfdmlydF9ub3RlX2Nv
bnRleHRfc3dpdGNoKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgcmN1X25vdGVfY29udGV4dF9z
d2l0Y2goZmFsc2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIHN5bmNocm9uaXplX3Jj
dV9leHBlZGl0ZWQodm9pZCk7CjE0NDc0OiB2b2lkIGtmcmVlX2NhbGxfcmN1KHN0cnVjdCBjYWxs
YmFja19oZWFkICpoZWFkLCByY3VfY2FsbGJhY2tfdCBmdW5jKTsKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCByY3VfYmFycmllcih2b2lkKTsKMTQ0NzQ6IGJvb2wgcmN1X2Vxc19zcGVjaWFsX3NldChpbnQg
Y3B1KTsKMTQ0NzQ6IHZvaWQgcmN1X21vbWVudGFyeV9keW50aWNrX2lkbGUodm9pZCk7CjE0NDc0
OiB2b2lkIGtmcmVlX3JjdV9zY2hlZHVsZXJfcnVubmluZyh2b2lkKTsKMTQ0NzQ6IHVuc2lnbmVk
IGxvbmcgZ2V0X3N0YXRlX3N5bmNocm9uaXplX3JjdSh2b2lkKTsKMTQ0NzQ6IHZvaWQgY29uZF9z
eW5jaHJvbml6ZV9yY3UodW5zaWduZWQgbG9uZyBvbGRzdGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgcmN1X2lkbGVfZW50ZXIodm9pZCk7CjE0NDc0OiB2b2lkIHJjdV9pZGxlX2V4aXQodm9pZCk7
CjE0NDc0OiB2b2lkIHJjdV9pcnFfZW50ZXIodm9pZCk7CjE0NDc0OiB2b2lkIHJjdV9pcnFfZXhp
dCh2b2lkKTsKMTQ0NzQ6IHZvaWQgcmN1X2lycV9lbnRlcl9pcnFzb24odm9pZCk7CjE0NDc0OiB2
b2lkIHJjdV9pcnFfZXhpdF9pcnFzb24odm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZXhpdF9y
Y3Uodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcmN1X3NjaGVkdWxlcl9zdGFydGluZyh2b2lk
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcmN1X3NjaGVkdWxlcl9hY3RpdmUgX19hdHRyaWJ1dGVfXygo
X19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSk7CjE0NDc0OiB2b2lkIHJjdV9lbmRf
aW5rZXJuZWxfYm9vdCh2b2lkKTsKMTQ0NzQ6IGJvb2wgcmN1X2lzX3dhdGNoaW5nKHZvaWQpOwox
NDQ3NDogCjE0NDc0OiB2b2lkIHJjdV9hbGxfcXModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBpbnQgcmN1dHJlZV9wcmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0
NzQ6IGludCByY3V0cmVlX29ubGluZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiBpbnQg
cmN1dHJlZV9vZmZsaW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCByY3V0cmVl
X2RlYWRfY3B1KHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogaW50IHJjdXRyZWVfZHlpbmdfY3B1
KHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogdm9pZCByY3VfY3B1X3N0YXJ0aW5nKHVuc2lnbmVk
IGludCBjcHUpOwoxNDQ3NDogIyAxNzIgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiAyCjE0
NDc0OiAjIDE5MiAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGluaXRf
cmN1X2hlYWQoc3RydWN0IGNhbGxiYWNrX2hlYWQgKmhlYWQpIHsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0
cm95X3JjdV9oZWFkKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7IH0KMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aW5pdF9yY3VfaGVhZF9vbl9zdGFjayhzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkgeyB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGRlc3Ryb3lfcmN1X2hlYWRfb25fc3RhY2soc3RydWN0IGNhbGxiYWNrX2hlYWQg
KmhlYWQpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgcmN1X2xvY2tkZXBfY3VycmVudF9jcHVfb25saW5lKHZvaWQpIHsgcmV0dXJuIHRydWU7
IH0KMTQ0NzQ6ICMgMjMxICIuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBy
Y3VfcmVhZF9sb2NrX2hlbGQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gMTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJjdV9yZWFkX2xvY2tfYmhfaGVsZCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmN1X3JlYWRf
bG9ja19zY2hlZF9oZWxkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICEwOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgcmN1X3JlYWRfbG9ja19hbnlfaGVsZCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAhMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTk3ICIuL2luY2x1ZGUvbGlu
dXgvcmN1cGRhdGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCByY3VfcmVhZF9sb2NrKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgX19yY3VfcmVhZF9sb2Nr
KCk7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRv
IHsgfSB3aGlsZSAoMCkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjQ5ICIuL2luY2x1ZGUvbGludXgvcmN1
cGRhdGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5sb2NrKHZvaWQpCjE0NDc0OiB7CjE0NDc0
OiAgZG8geyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6ICBfX3JjdV9yZWFk
X3VubG9jaygpOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDY3
MCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFkX2xvY2tf
Ymgodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsb2NhbF9iaF9kaXNhYmxlKCk7CjE0NDc0OiAgKHZv
aWQpMDsKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCkK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5sb2NrX2JoKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAg
ZG8geyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAo
dm9pZCkwOwoxNDQ3NDogIGxvY2FsX2JoX2VuYWJsZSgpOwoxNDQ3NDogfQoxNDQ3NDogIyA3MDUg
Ii4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfcmVhZF9sb2NrX3Nj
aGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0
OiAgZG8geyB9IHdoaWxlICgwKQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFkX2xv
Y2tfc2NoZWRfbm90cmFjZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3Jl
YWRfdW5sb2NrX3NjaGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKQox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDog
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgcmN1X3JlYWRfdW5sb2NrX3NjaGVkX25vdHJhY2Uodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAo
dm9pZCkwOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0
NDc0OiB9CjE0NDc0OiAjIDg3MCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJjdV9oZWFkX2luaXQoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByaHAtPmZ1bmMgPSAocmN1X2NhbGxiYWNrX3QpfjBMOwoxNDQ3NDogfQoxNDQ3NDogIyA4
ODggIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAoxNDQ3NDogcmN1X2hl
YWRfYWZ0ZXJfY2FsbF9yY3Uoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCwgcmN1X2NhbGxiYWNr
X3QgZikKMTQ0NzQ6IHsKMTQ0NzQ6ICByY3VfY2FsbGJhY2tfdCBmdW5jID0gKHsgdW5pb24geyB0
eXBlb2YocmhwLT5mdW5jKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFk
X29uY2Vfc2l6ZSgmKHJocC0+ZnVuYyksIF9fdS5fX2MsIHNpemVvZihyaHAtPmZ1bmMpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihyaHAtPmZ1bmMpLCBfX3UuX19jLCBzaXplb2Yo
cmhwLT5mdW5jKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiAKMTQ0
NzQ6ICBpZiAoZnVuYyA9PSBmKQoxNDQ3NDogICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6ICAoeyBpbnQg
X19yZXRfd2Fybl9vbiA9ICEhKGZ1bmMgIT0gKHJjdV9jYWxsYmFja190KX4wTCk7IGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGlu
ZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBf
X2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVn
X2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0
LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5w
b3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiksICJpIiAoODk1
KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0
cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxu
XHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDgpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1
aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiAgcmV0dXJuIGZh
bHNlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmN1X2V4cGVk
aXRlZDsKMTQ0NzQ6IGV4dGVybiBpbnQgcmN1X25vcm1hbDsKMTQ0NzQ6ICMgMjMgIi4vaW5jbHVk
ZS9saW51eC9yYnRyZWUuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmJfbm9kZSB7CjE0NDc0
OiAgdW5zaWduZWQgbG9uZyBfX3JiX3BhcmVudF9jb2xvcjsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9k
ZSAqcmJfcmlnaHQ7CjE0NDc0OiAgc3RydWN0IHJiX25vZGUgKnJiX2xlZnQ7CjE0NDc0OiB9IF9f
YXR0cmlidXRlX18oKGFsaWduZWQoc2l6ZW9mKGxvbmcpKSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCByYl9yb290IHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSAqcmJfbm9kZTsKMTQ0
NzQ6IH07CjE0NDc0OiAjIDQ5ICIuL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgiCjE0NDc0OiBleHRl
cm4gdm9pZCByYl9pbnNlcnRfY29sb3Ioc3RydWN0IHJiX25vZGUgKiwgc3RydWN0IHJiX3Jvb3Qg
Kik7CjE0NDc0OiBleHRlcm4gdm9pZCByYl9lcmFzZShzdHJ1Y3QgcmJfbm9kZSAqLCBzdHJ1Y3Qg
cmJfcm9vdCAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
cmJfbm9kZSAqcmJfbmV4dChjb25zdCBzdHJ1Y3QgcmJfbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3QgcmJfbm9kZSAqcmJfcHJldihjb25zdCBzdHJ1Y3QgcmJfbm9kZSAqKTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfZmlyc3QoY29uc3Qgc3RydWN0IHJiX3Jvb3QgKik7CjE0
NDc0OiBleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX2xhc3QoY29uc3Qgc3RydWN0IHJiX3Jvb3Qg
Kik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9maXJz
dF9wb3N0b3JkZXIoY29uc3Qgc3RydWN0IHJiX3Jvb3QgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0
IHJiX25vZGUgKnJiX25leHRfcG9zdG9yZGVyKGNvbnN0IHN0cnVjdCByYl9ub2RlICopOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHJiX3JlcGxhY2Vfbm9kZShzdHJ1Y3QgcmJf
bm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAoxNDQ3NDogICAgICAgIHN0cnVjdCBy
Yl9yb290ICpyb290KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHJiX3JlcGxhY2Vfbm9kZV9yY3Uoc3Ry
dWN0IHJiX25vZGUgKnZpY3RpbSwgc3RydWN0IHJiX25vZGUgKm5ldywKMTQ0NzQ6ICAgICBzdHJ1
Y3QgcmJfcm9vdCAqcm9vdCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmJfbGlua19ub2RlKHN0cnVj
dCByYl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LAoxNDQ3NDogICAgIHN0cnVj
dCByYl9ub2RlICoqcmJfbGluaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBub2RlLT5fX3JiX3BhcmVudF9j
b2xvciA9ICh1bnNpZ25lZCBsb25nKXBhcmVudDsKMTQ0NzQ6ICBub2RlLT5yYl9sZWZ0ID0gbm9k
ZS0+cmJfcmlnaHQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IAoxNDQ3NDogICpyYl9saW5rID0gbm9k
ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYl9saW5rX25vZGVfcmN1KHN0cnVjdCBy
Yl9ub2RlICpub2RlLCBzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LAoxNDQ3NDogICAgICAgICBzdHJ1
Y3QgcmJfbm9kZSAqKnJiX2xpbmspCjE0NDc0OiB7CjE0NDc0OiAgbm9kZS0+X19yYl9wYXJlbnRf
Y29sb3IgPSAodW5zaWduZWQgbG9uZylwYXJlbnQ7CjE0NDc0OiAgbm9kZS0+cmJfbGVmdCA9IG5v
ZGUtPnJiX3JpZ2h0ID0gKCh2b2lkICopMCk7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7IHVpbnRwdHJf
dCBfcl9hX3BfX3YgPSAodWludHB0cl90KShub2RlKTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50
X3Aobm9kZSkgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5p
b24geyB0eXBlb2YoKCpyYl9saW5rKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9f
dmFsID0gKCB0eXBlb2YoKCpyYl9saW5rKSkpICgodHlwZW9mKCpyYl9saW5rKSkoX3JfYV9wX192
KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKnJiX2xpbmspKSwgX191Ll9fYywgc2l6ZW9mKCgq
cmJfbGluaykpKTsgX191Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19j
b21waWxldGltZV9hc3NlcnRfODQodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVk
IG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICgh
KChzaXplb2YoKiYqcmJfbGluaykgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJipyYl9saW5r
KSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJipyYl9saW5rKSA9PSBzaXplb2YoaW50KSB8
fCBzaXplb2YoKiYqcmJfbGluaykgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0Xzg0KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJipyYl9saW5rKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0g
X191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJipyYl9saW5rKSkgKCh0eXBlb2YoKigodHlwZW9m
KCpyYl9saW5rKSlfcl9hX3BfX3YpKSAqKSgodHlwZW9mKCpyYl9saW5rKSlfcl9hX3BfX3YpKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKnJiX2xpbmspLCBfX3UuX19jLCBzaXplb2YoKiYqcmJf
bGluaykpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiB9
CjE0NDc0OiAjIDEyNSAiLi9pbmNsdWRlL2xpbnV4L3JidHJlZS5oIgoxNDQ3NDogc3RydWN0IHJi
X3Jvb3RfY2FjaGVkIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfcm9vdCByYl9yb290OwoxNDQ3NDogIHN0
cnVjdCByYl9ub2RlICpyYl9sZWZ0bW9zdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJiX2luc2VydF9jb2xvcl9j
YWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCjE0NDc0OiAgICAgICAgc3RydWN0IHJiX3Jvb3Rf
Y2FjaGVkICpyb290LAoxNDQ3NDogICAgICAgIGJvb2wgbGVmdG1vc3QpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKGxlZnRtb3N0KQoxNDQ3NDogICByb290LT5yYl9sZWZ0bW9zdCA9IG5vZGU7CjE0NDc0
OiAgcmJfaW5zZXJ0X2NvbG9yKG5vZGUsICZyb290LT5yYl9yb290KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByYl9lcmFzZV9jYWNoZWQoc3RydWN0IHJiX25vZGUgKm5vZGUsCjE0NDc0
OiAgICAgICAgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290KQoxNDQ3NDogewoxNDQ3NDogIGlm
IChyb290LT5yYl9sZWZ0bW9zdCA9PSBub2RlKQoxNDQ3NDogICByb290LT5yYl9sZWZ0bW9zdCA9
IHJiX25leHQobm9kZSk7CjE0NDc0OiAgcmJfZXJhc2Uobm9kZSwgJnJvb3QtPnJiX3Jvb3QpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJiX3JlcGxhY2Vfbm9kZV9jYWNoZWQoc3RydWN0
IHJiX25vZGUgKnZpY3RpbSwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAoxNDQ3
NDogICAgICAgIHN0cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBp
ZiAocm9vdC0+cmJfbGVmdG1vc3QgPT0gdmljdGltKQoxNDQ3NDogICByb290LT5yYl9sZWZ0bW9z
dCA9IG5ldzsKMTQ0NzQ6ICByYl9yZXBsYWNlX25vZGUodmljdGltLCBuZXcsICZyb290LT5yYl9y
b290KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTEgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAy
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yd3NlbS5oIiAxCjE0NDc0OiAjIDIwICIuL2lu
Y2x1ZGUvbGludXgvcndzZW0uaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L29zcV9sb2Nr
LmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L29zcV9sb2NrLmgiCjE0NDc0OiBzdHJ1
Y3Qgb3B0aW1pc3RpY19zcGluX25vZGUgewoxNDQ3NDogIHN0cnVjdCBvcHRpbWlzdGljX3NwaW5f
bm9kZSAqbmV4dCwgKnByZXY7CjE0NDc0OiAgaW50IGxvY2tlZDsKMTQ0NzQ6ICBpbnQgY3B1Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9xdWV1ZSB7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCB0YWlsOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgb3NxX2xvY2tfaW5pdChzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2Nr
KQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19zZXQoJmxvY2stPnRhaWwsICgwKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIG9zcV9sb2NrKHN0cnVjdCBvcHRpbWlzdGljX3Nw
aW5fcXVldWUgKmxvY2spOwoxNDQ3NDogZXh0ZXJuIHZvaWQgb3NxX3VubG9jayhzdHJ1Y3Qgb3B0
aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBvc3FfaXNfbG9j
a2VkKHN0cnVjdCBvcHRpbWlzdGljX3NwaW5fcXVldWUgKmxvY2spCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGF0b21pY19yZWFkKCZsb2NrLT50YWlsKSAhPSAoMCk7CjE0NDc0OiB9CjE0NDc0OiAj
IDIxICIuL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL2xp
bnV4L3J3c2VtLmgiCjE0NDc0OiBzdHJ1Y3Qgcndfc2VtYXBob3JlIHsKMTQ0NzQ6ICBhdG9taWNf
bG9uZ190IGNvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBhdG9taWNfbG9uZ190IG93bmVyOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG9wdGltaXN0
aWNfc3Bpbl9xdWV1ZSBvc3E7CjE0NDc0OiAKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCB3YWl0X2xv
Y2s7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyA2MyAiLi9p
bmNsdWRlL2xpbnV4L3J3c2VtLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcndzZW1faXNfbG9ja2VkKHN0cnVjdCBy
d19zZW1hcGhvcmUgKnNlbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRvbWljX2xvbmdfcmVh
ZCgmc2VtLT5jb3VudCkgIT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTAzICIuL2luY2x1ZGUvbGlu
dXgvcndzZW0uaCIKMTQ0NzQ6IGV4dGVybiB2b2lkIF9faW5pdF9yd3NlbShzdHJ1Y3Qgcndfc2Vt
YXBob3JlICpzZW0sIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgc3RydWN0IGxvY2tfY2xh
c3Nfa2V5ICprZXkpOwoxNDQ3NDogIyAxMTkgIi4vaW5jbHVkZS9saW51eC9yd3NlbS5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IHJ3c2VtX2lzX2NvbnRlbmRlZChzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuICFsaXN0X2VtcHR5KCZzZW0tPndhaXRfbGlzdCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRvd25f
cmVhZChzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZG93bl9yZWFkX2tpbGxhYmxlKHN0cnVj
dCByd19zZW1hcGhvcmUgKnNlbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBpbnQgZG93bl9yZWFkX3RyeWxvY2soc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2Vt
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZG93
bl93cml0ZShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZG93bl93cml0ZV9raWxsYWJsZShz
dHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IGRvd25fd3JpdGVfdHJ5bG9jayhzdHJ1Y3Qgcndfc2VtYXBob3Jl
ICpzZW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCB1cF9yZWFkKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhv
cmUgKnNlbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGRvd25ncmFkZV93cml0ZShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogIyAx
MiAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xp
bnV4L2NvbXBsZXRpb24uaCIgMQoxNDQ3NDogIyAyNiAiLi9pbmNsdWRlL2xpbnV4L2NvbXBsZXRp
b24uaCIKMTQ0NzQ6IHN0cnVjdCBjb21wbGV0aW9uIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZG9u
ZTsKMTQ0NzQ6ICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY29tcGxldGVfYWNxdWlyZShzdHJ1Y3QgY29tcGxldGlv
biAqeCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY29tcGxldGVfcmVsZWFzZShzdHJ1Y3QgY29tcGxldGlvbiAq
eCkge30KMTQ0NzQ6ICMgODUgIi4vaW5jbHVkZS9saW51eC9jb21wbGV0aW9uLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9faW5pdF9jb21wbGV0aW9uKHN0cnVjdCBjb21wbGV0aW9uICp4KQoxNDQ3NDogewoxNDQ3
NDogIHgtPmRvbmUgPSAwOwoxNDQ3NDogIGRvIHsgc3RhdGljIHN0cnVjdCBsb2NrX2NsYXNzX2tl
eSBfX2tleTsgX19pbml0X3dhaXRxdWV1ZV9oZWFkKCgmeC0+d2FpdCksICImeC0+d2FpdCIsICZf
X2tleSk7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogIyA5OCAiLi9pbmNsdWRlL2xpbnV4
L2NvbXBsZXRpb24uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVpbml0X2NvbXBsZXRpb24oc3RydWN0IGNvbXBs
ZXRpb24gKngpCjE0NDc0OiB7CjE0NDc0OiAgeC0+ZG9uZSA9IDA7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiB2b2lkIHdhaXRfZm9yX2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24g
Kik7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWl0X2Zvcl9jb21wbGV0aW9uX2lvKHN0cnVjdCBjb21w
bGV0aW9uICopOwoxNDQ3NDogZXh0ZXJuIGludCB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVw
dGlibGUoc3RydWN0IGNvbXBsZXRpb24gKngpOwoxNDQ3NDogZXh0ZXJuIGludCB3YWl0X2Zvcl9j
b21wbGV0aW9uX2tpbGxhYmxlKHN0cnVjdCBjb21wbGV0aW9uICp4KTsKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBsb25nIHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dChzdHJ1Y3QgY29tcGxldGlv
biAqeCwKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCk7CjE0NDc0OiBleHRl
cm4gdW5zaWduZWQgbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX2lvX3RpbWVvdXQoc3RydWN0IGNv
bXBsZXRpb24gKngsCjE0NDc0OiAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKMTQ0
NzQ6IGV4dGVybiBsb25nIHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0
KAoxNDQ3NDogIHN0cnVjdCBjb21wbGV0aW9uICp4LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwox
NDQ3NDogZXh0ZXJuIGxvbmcgd2FpdF9mb3JfY29tcGxldGlvbl9raWxsYWJsZV90aW1lb3V0KAox
NDQ3NDogIHN0cnVjdCBjb21wbGV0aW9uICp4LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwoxNDQ3
NDogZXh0ZXJuIGJvb2wgdHJ5X3dhaXRfZm9yX2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24g
KngpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgY29tcGxldGlvbl9kb25lKHN0cnVjdCBjb21wbGV0aW9u
ICp4KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgY29tcGxldGUoc3RydWN0IGNvbXBsZXRp
b24gKik7CjE0NDc0OiBleHRlcm4gdm9pZCBjb21wbGV0ZV9hbGwoc3RydWN0IGNvbXBsZXRpb24g
Kik7CjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIgMgoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC91cHJvYmVzLmgiIDEKMTQ0NzQ6ICMgMTkgIi4vaW5j
bHVkZS9saW51eC91cHJvYmVzLmgiCjE0NDc0OiBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CjE0NDc0
OiBzdHJ1Y3QgbW1fc3RydWN0OwoxNDQ3NDogc3RydWN0IGlub2RlOwoxNDQ3NDogc3RydWN0IG5v
dGlmaWVyX2Jsb2NrOwoxNDQ3NDogc3RydWN0IHBhZ2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHVwcm9iZV9maWx0ZXJfY3R4IHsK
MTQ0NzQ6ICBVUFJPQkVfRklMVEVSX1JFR0lTVEVSLAoxNDQ3NDogIFVQUk9CRV9GSUxURVJfVU5S
RUdJU1RFUiwKMTQ0NzQ6ICBVUFJPQkVfRklMVEVSX01NQVAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyIHsKMTQ0NzQ6ICBpbnQgKCpoYW5kbGVyKShzdHJ1
Y3QgdXByb2JlX2NvbnN1bWVyICpzZWxmLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CjE0NDc0OiAg
aW50ICgqcmV0X2hhbmRsZXIpKHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKnNlbGYsCjE0NDc0OiAg
ICAgdW5zaWduZWQgbG9uZyBmdW5jLAoxNDQ3NDogICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsK
MTQ0NzQ6ICBib29sICgqZmlsdGVyKShzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICpzZWxmLAoxNDQ3
NDogICAgIGVudW0gdXByb2JlX2ZpbHRlcl9jdHggY3R4LAoxNDQ3NDogICAgIHN0cnVjdCBtbV9z
dHJ1Y3QgKm1tKTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKm5leHQ7
CjE0NDc0OiB9OwoxNDQ3NDogIyAxNDIgIi4vaW5jbHVkZS9saW51eC91cHJvYmVzLmgiCjE0NDc0
OiBzdHJ1Y3QgdXByb2Jlc19zdGF0ZSB7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVw
cm9iZXNfaW5pdCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50CjE0NDc0OiB1cHJvYmVfcmVnaXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwg
bG9mZl90IG9mZnNldCwgc3RydWN0IHVwcm9iZV9jb25zdW1lciAqdWMpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIC0zODsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1cHJvYmVfcmVnaXN0ZXJfcmVmY3Ry
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCByZWZfY3RyX29mZnNl
dCwgc3RydWN0IHVwcm9iZV9jb25zdW1lciAqdWMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIC0z
ODsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogdXByb2JlX2FwcGx5KHN0cnVjdCBpbm9kZSAq
aW5vZGUsIGxvZmZfdCBvZmZzZXQsIHN0cnVjdCB1cHJvYmVfY29uc3VtZXIgKnVjLCBib29sIGFk
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gLTM4OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3
NDogdXByb2JlX3VucmVnaXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwg
c3RydWN0IHVwcm9iZV9jb25zdW1lciAqdWMpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
dXByb2JlX21tYXAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiB1cHJvYmVfbXVubWFwKHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n
IGVuZCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXByb2JlX3N0YXJ0X2R1cF9tbWFw
KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9lbmRfZHVwX21tYXAo
dm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKMTQ0NzQ6IHVwcm9iZV9kdXBfbW1h
cChzdHJ1Y3QgbW1fc3RydWN0ICpvbGRtbSwgc3RydWN0IG1tX3N0cnVjdCAqbmV3bW0pCjE0NDc0
OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9ub3RpZnlfcmVzdW1lKHN0cnVjdCBwdF9y
ZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1cHJvYmVfZGVueV9zaWdu
YWwodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHVwcm9iZV9mcmVlX3V0YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKMTQ0NzQ6IHsKMTQ0
NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgdXByb2JlX2NvcHlfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVw
cm9iZV9jbGVhcl9zdGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVk
ZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgi
IDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC9rdGltZS5oIiAxCjE0NDc0OiAjIDI0ICIuL2luY2x1ZGUvbGludXgva3Rp
bWUuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQoxNDQ3NDogIyAxMCAi
Li9pbmNsdWRlL2xpbnV4L3RpbWUuaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdGltZXpvbmUgc3lz
X3R6OwoxNDQ3NDogCjE0NDc0OiBpbnQgZ2V0X3RpbWVzcGVjNjQoc3RydWN0IHRpbWVzcGVjNjQg
KnRzLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnV0cyk7CjE0NDc0
OiBpbnQgcHV0X3RpbWVzcGVjNjQoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzLAoxNDQ3NDog
ICBzdHJ1Y3QgX19rZXJuZWxfdGltZXNwZWMgKnV0cyk7CjE0NDc0OiBpbnQgZ2V0X2l0aW1lcnNw
ZWM2NChzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBfX2tl
cm5lbF9pdGltZXJzcGVjICp1aXQpOwoxNDQ3NDogaW50IHB1dF9pdGltZXJzcGVjNjQoY29uc3Qg
c3RydWN0IGl0aW1lcnNwZWM2NCAqaXQsCjE0NDc0OiAgICBzdHJ1Y3QgX19rZXJuZWxfaXRpbWVy
c3BlYyAqdWl0KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHRpbWU2NF90IG1rdGltZTY0KGNvbnN0
IHVuc2lnbmVkIGludCB5ZWFyLCBjb25zdCB1bnNpZ25lZCBpbnQgbW9uLAoxNDQ3NDogICAgY29u
c3QgdW5zaWduZWQgaW50IGRheSwgY29uc3QgdW5zaWduZWQgaW50IGhvdXIsCjE0NDc0OiAgICBj
b25zdCB1bnNpZ25lZCBpbnQgbWluLCBjb25zdCB1bnNpZ25lZCBpbnQgc2VjKTsKMTQ0NzQ6ICMg
MzkgIi4vaW5jbHVkZS9saW51eC90aW1lLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBjbGVhcl9pdGlt
ZXIodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBs
b25nIGRvX3V0aW1lcyhpbnQgZGZkLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRpbWVz
cGVjNjQgKnRpbWVzLCBpbnQgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0bSB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBpbnQgdG1fc2VjOwoxNDQ3NDogCjE0NDc0OiAgaW50IHRtX21pbjsKMTQ0NzQ6
IAoxNDQ3NDogIGludCB0bV9ob3VyOwoxNDQ3NDogCjE0NDc0OiAgaW50IHRtX21kYXk7CjE0NDc0
OiAKMTQ0NzQ6ICBpbnQgdG1fbW9uOwoxNDQ3NDogCjE0NDc0OiAgbG9uZyB0bV95ZWFyOwoxNDQ3
NDogCjE0NDc0OiAgaW50IHRtX3dkYXk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgdG1feWRheTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgdGltZTY0X3RvX3RtKHRpbWU2NF90IHRvdGFsc2Vj
cywgaW50IG9mZnNldCwgc3RydWN0IHRtICpyZXN1bHQpOwoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC90aW1lMzIuaCIgMQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3Rp
bWUzMi5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIgMQoxNDQ3NDogIyA1
NiAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L3RpbWV4LmgiIDEKMTQ0NzQ6ICMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4Lmgi
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC90aW1lLmgiIDEKMTQ0NzQ6ICMgNTcgIi4vaW5j
bHVkZS91YXBpL2xpbnV4L3RpbWV4LmgiIDIKMTQ0NzQ6ICMgOTcgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L3RpbWV4LmgiCjE0NDc0OiBzdHJ1Y3QgX19rZXJuZWxfdGltZXhfdGltZXZhbCB7CjE0NDc0
OiAgX19rZXJuZWxfdGltZTY0X3QgdHZfc2VjOwoxNDQ3NDogIGxvbmcgbG9uZyB0dl91c2VjOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF9fa2VybmVsX3RpbWV4IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbW9kZXM7CjE0NDc0OiAgaW50IDozMjsKMTQ0NzQ6ICBsb25nIGxvbmcgb2Zm
c2V0OwoxNDQ3NDogIGxvbmcgbG9uZyBmcmVxOwoxNDQ3NDogIGxvbmcgbG9uZyBtYXhlcnJvcjsK
MTQ0NzQ6ICBsb25nIGxvbmcgZXN0ZXJyb3I7CjE0NDc0OiAgaW50IHN0YXR1czsKMTQ0NzQ6ICBp
bnQgOjMyOwoxNDQ3NDogIGxvbmcgbG9uZyBjb25zdGFudDsKMTQ0NzQ6ICBsb25nIGxvbmcgcHJl
Y2lzaW9uOwoxNDQ3NDogIGxvbmcgbG9uZyB0b2xlcmFuY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBfX2tlcm5lbF90aW1leF90aW1ldmFsIHRpbWU7CjE0NDc0OiAgbG9uZyBsb25n
IHRpY2s7CjE0NDc0OiAKMTQ0NzQ6ICBsb25nIGxvbmcgcHBzZnJlcTsKMTQ0NzQ6ICBsb25nIGxv
bmcgaml0dGVyOwoxNDQ3NDogIGludCBzaGlmdDsKMTQ0NzQ6ICBpbnQgOjMyOwoxNDQ3NDogIGxv
bmcgbG9uZyBzdGFiaWw7CjE0NDc0OiAgbG9uZyBsb25nIGppdGNudDsKMTQ0NzQ6ICBsb25nIGxv
bmcgY2FsY250OwoxNDQ3NDogIGxvbmcgbG9uZyBlcnJjbnQ7CjE0NDc0OiAgbG9uZyBsb25nIHN0
YmNudDsKMTQ0NzQ6IAoxNDQ3NDogIGludCB0YWk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgOjMyOyBp
bnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwoxNDQ3NDogIGludCA6MzI7IGludCA6MzI7IGludCA6
MzI7IGludCA6MzI7CjE0NDc0OiAgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDU3ICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIgMgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFw
aS9saW51eC9wYXJhbS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9wYXJhbS5oIiAxCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wYXJhbS5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMv
cGFyYW0uaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGFyYW0uaCIgMgox
NDQ3NDogIyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3BhcmFtLmgi
IDIKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGFyYW0uaCIgMgoxNDQ3NDogIyA2
NCAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3RpbWV4LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiIDEKMTQ0
NzQ6ICMgMTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiCjE0NDc0OiB0eXBlZGVmIHVu
c2lnbmVkIGxvbmcgbG9uZyBjeWNsZXNfdDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVk
IGludCBjcHVfa2h6OwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCB0c2Nfa2h6OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBkaXNhYmxlX1RTQyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY3lj
bGVzX3QgZ2V0X2N5Y2xlcyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcmR0c2MoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90IGNvbnZlcnRfYXJ0X3RvX3Rz
Yyh1NjQgYXJ0KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCBjb252
ZXJ0X2FydF9uc190b190c2ModTY0IGFydF9ucyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IHRzY19lYXJseV9pbml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgdHNjX2luaXQodm9pZCk7
CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBjYWxpYnJhdGVfZGVsYXlfaXNfa25vd24odm9p
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBtYXJrX3RzY191bnN0YWJsZShjaGFyICpyZWFzb24pOwox
NDQ3NDogZXh0ZXJuIGludCB1bnN5bmNocm9uaXplZF90c2Modm9pZCk7CjE0NDc0OiBleHRlcm4g
aW50IGNoZWNrX3RzY191bnN0YWJsZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIG1hcmtfdHNj
X2FzeW5jX3Jlc2V0cyhjaGFyICpyZWFzb24pOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
bmF0aXZlX2NhbGlicmF0ZV9jcHVfZWFybHkodm9pZCk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQg
bG9uZyBuYXRpdmVfY2FsaWJyYXRlX3RzYyh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBs
b25nIGxvbmcgbmF0aXZlX3NjaGVkX2Nsb2NrX2Zyb21fdHNjKHU2NCB0c2MpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IHRzY19jbG9ja3NvdXJjZV9yZWxpYWJsZTsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGJvb2wgdHNjX2FzeW5jX3Jlc2V0czsKMTQ0NzQ6ICMgNTkgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vdHNjLmgiCjE0NDc0OiBleHRlcm4gYm9vbCB0c2Nfc3RvcmVfYW5kX2NoZWNrX3Rz
Y19hZGp1c3QoYm9vbCBib290Y3B1KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRzY192ZXJpZnlfdHNj
X2FkanVzdChib29sIHJlc3VtZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBjaGVja190c2Nfc3luY19z
b3VyY2UoaW50IGNwdSk7CjE0NDc0OiBleHRlcm4gdm9pZCBjaGVja190c2Nfc3luY190YXJnZXQo
dm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbm90c2Nfc2V0dXAoY2hhciAqKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIHRzY19zYXZlX3NjaGVkX2Nsb2NrX3N0YXRlKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgdHNjX3Jlc3RvcmVfc2NoZWRfY2xvY2tfc3RhdGUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHVu
c2lnbmVkIGxvbmcgY3B1X2toel9mcm9tX21zcih2b2lkKTsKMTQ0NzQ6ICMgNyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90aW1leC5oIiAyCjE0NDc0OiAjIDY2ICIuL2luY2x1ZGUvbGludXgvdGlt
ZXguaCIgMgoxNDQ3NDogIyAxMzkgIi4vaW5jbHVkZS9saW51eC90aW1leC5oIgoxNDQ3NDogZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgdGlja191c2VjOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
dGlja19uc2VjOwoxNDQ3NDogIyAxNTQgIi4vaW5jbHVkZS9saW51eC90aW1leC5oIgoxNDQ3NDog
ZXh0ZXJuIGludCBkb19hZGp0aW1leChzdHJ1Y3QgX19rZXJuZWxfdGltZXggKik7CjE0NDc0OiBl
eHRlcm4gaW50IGRvX2Nsb2NrX2FkanRpbWUoY29uc3QgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLCBz
dHJ1Y3QgX19rZXJuZWxfdGltZXggKiBrdHgpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBo
YXJkcHBzKGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICosIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0
ICopOwoxNDQ3NDogCjE0NDc0OiBpbnQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcg
KnRpbWVyX3ZhbCk7CjE0NDc0OiB2b2lkIG50cF9ub3RpZnlfY21vc190aW1lcih2b2lkKTsKMTQ0
NzQ6ICMgMTQgIi4vaW5jbHVkZS9saW51eC90aW1lMzIuaCIgMgoxNDQ3NDogCjE0NDc0OiB0eXBl
ZGVmIHMzMiBvbGRfdGltZTMyX3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXNwZWMz
MiB7CjE0NDc0OiAgb2xkX3RpbWUzMl90IHR2X3NlYzsKMTQ0NzQ6ICBzMzIgdHZfbnNlYzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXZhbDMyIHsKMTQ0NzQ6ICBvbGRf
dGltZTMyX3QgdHZfc2VjOwoxNDQ3NDogIHMzMiB0dl91c2VjOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IG9sZF9pdGltZXJzcGVjMzIgewoxNDQ3NDogIHN0cnVjdCBvbGRfdGltZXNw
ZWMzMiBpdF9pbnRlcnZhbDsKMTQ0NzQ6ICBzdHJ1Y3Qgb2xkX3RpbWVzcGVjMzIgaXRfdmFsdWU7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgb2xkX3V0aW1idWYzMiB7CjE0NDc0OiAg
b2xkX3RpbWUzMl90IGFjdGltZTsKMTQ0NzQ6ICBvbGRfdGltZTMyX3QgbW9kdGltZTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvbGRfdGltZXgzMiB7CjE0NDc0OiAgdTMyIG1vZGVz
OwoxNDQ3NDogIHMzMiBvZmZzZXQ7CjE0NDc0OiAgczMyIGZyZXE7CjE0NDc0OiAgczMyIG1heGVy
cm9yOwoxNDQ3NDogIHMzMiBlc3RlcnJvcjsKMTQ0NzQ6ICBzMzIgc3RhdHVzOwoxNDQ3NDogIHMz
MiBjb25zdGFudDsKMTQ0NzQ6ICBzMzIgcHJlY2lzaW9uOwoxNDQ3NDogIHMzMiB0b2xlcmFuY2U7
CjE0NDc0OiAgc3RydWN0IG9sZF90aW1ldmFsMzIgdGltZTsKMTQ0NzQ6ICBzMzIgdGljazsKMTQ0
NzQ6ICBzMzIgcHBzZnJlcTsKMTQ0NzQ6ICBzMzIgaml0dGVyOwoxNDQ3NDogIHMzMiBzaGlmdDsK
MTQ0NzQ6ICBzMzIgc3RhYmlsOwoxNDQ3NDogIHMzMiBqaXRjbnQ7CjE0NDc0OiAgczMyIGNhbGNu
dDsKMTQ0NzQ6ICBzMzIgZXJyY250OwoxNDQ3NDogIHMzMiBzdGJjbnQ7CjE0NDc0OiAgczMyIHRh
aTsKMTQ0NzQ6IAoxNDQ3NDogIHMzMjozMjsgczMyOjMyOyBzMzI6MzI7IHMzMjozMjsKMTQ0NzQ6
ICBzMzI6MzI7IHMzMjozMjsgczMyOjMyOyBzMzI6MzI7CjE0NDc0OiAgczMyOjMyOyBzMzI6MzI7
IHMzMjozMjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2V0X29sZF90aW1l
c3BlYzMyKHN0cnVjdCB0aW1lc3BlYzY0ICosIGNvbnN0IHZvaWQgKik7CjE0NDc0OiBleHRlcm4g
aW50IHB1dF9vbGRfdGltZXNwZWMzMihjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqLCB2b2lkICop
OwoxNDQ3NDogZXh0ZXJuIGludCBnZXRfb2xkX2l0aW1lcnNwZWMzMihzdHJ1Y3QgaXRpbWVyc3Bl
YzY0ICppdHMsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3Qgb2xkX2l0aW1lcnNwZWMzMiAqdWl0cyk7
CjE0NDc0OiBleHRlcm4gaW50IHB1dF9vbGRfaXRpbWVyc3BlYzMyKGNvbnN0IHN0cnVjdCBpdGlt
ZXJzcGVjNjQgKml0cywKMTQ0NzQ6ICAgIHN0cnVjdCBvbGRfaXRpbWVyc3BlYzMyICp1aXRzKTsK
MTQ0NzQ6IHN0cnVjdCBfX2tlcm5lbF90aW1leDsKMTQ0NzQ6IGludCBnZXRfb2xkX3RpbWV4MzIo
c3RydWN0IF9fa2VybmVsX3RpbWV4ICosIGNvbnN0IHN0cnVjdCBvbGRfdGltZXgzMiAqKTsKMTQ0
NzQ6IGludCBwdXRfb2xkX3RpbWV4MzIoc3RydWN0IG9sZF90aW1leDMyICosIGNvbnN0IHN0cnVj
dCBfX2tlcm5lbF90aW1leCAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBfX2tlcm5lbF9vbGRfdGlt
ZXZhbCBuc190b19rZXJuZWxfb2xkX3RpbWV2YWwoczY0IG5zZWMpOwoxNDQ3NDogIyA3NSAiLi9p
bmNsdWRlL2xpbnV4L3RpbWUuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGl0aW1lcnNwZWM2NF92
YWxpZChjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdHMpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KCF0aW1lc3BlYzY0X3ZhbGlkKCYoaXRzLT5pdF9pbnRlcnZhbCkpIHx8CjE0NDc0OiAgICF0aW1l
c3BlYzY0X3ZhbGlkKCYoaXRzLT5pdF92YWx1ZSkpKQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0
NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTE0ICIuL2luY2x1
ZGUvbGludXgvdGltZS5oIgoxNDQ3NDogc3RydWN0IHRpbWVuc19vZmZzZXQgewoxNDQ3NDogIHM2
NCBzZWM7CjE0NDc0OiAgdTY0IG5zZWM7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNSAiLi9pbmNsdWRl
L2xpbnV4L2t0aW1lLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIg
MQoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIKMTQ0NzQ6ICMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9wYXJhbS5oIiAxCjE0NDc0OiAjIDEy
ICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9nZW5l
cmF0ZWQvdGltZWNvbnN0LmgiIDEKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVz
LmgiIDIKMTQ0NzQ6ICMgNjAgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCjE0NDc0OiBleHRl
cm4gaW50IHJlZ2lzdGVyX3JlZmluZWRfamlmZmllcyhsb25nIGNsb2NrX3RpY2tfcmF0ZSk7CjE0
NDc0OiAjIDgwICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIgoxNDQ3NDogZXh0ZXJuIHU2NCBf
X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSwgX19zZWN0aW9uX18oIi5kYXRh
Li5jYWNoZWxpbmVfYWxpZ25lZCIpKSkgamlmZmllc182NDsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25l
ZCBsb25nIHZvbGF0aWxlIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpLCBf
X3NlY3Rpb25fXygiLmRhdGEuLmNhY2hlbGluZV9hbGlnbmVkIikpKSBqaWZmaWVzOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgZ2V0X2ppZmZpZXNfNjQodm9pZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHU2NClqaWZmaWVzOwoxNDQ3NDogfQoxNDQ3NDogIyAx
OTAgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9u
ZyBwcmVzZXRfbHBqOwoxNDQ3NDogIyAyOTEgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IGppZmZpZXNfdG9fbXNlY3MoY29uc3QgdW5zaWduZWQg
bG9uZyBqKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgamlmZmllc190b191c2Vjcyhjb25z
dCB1bnNpZ25lZCBsb25nIGopOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgamlmZmllc190b19uc2Vjcyhj
b25zdCB1bnNpZ25lZCBsb25nIGopCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1NjQpamlmZmll
c190b191c2VjcyhqKSAqIDEwMDBMOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdTY0
IGppZmZpZXM2NF90b19uc2Vjcyh1NjQgaik7CjE0NDc0OiBleHRlcm4gdTY0IGppZmZpZXM2NF90
b19tc2Vjcyh1NjQgaik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIF9fbXNl
Y3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQgbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9tc2Vjc190
b19qaWZmaWVzKGNvbnN0IHVuc2lnbmVkIGludCBtKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAo
bSArICgxMDAwTCAvIDI1MCkgLSAxKSAvICgxMDAwTCAvIDI1MCk7CjE0NDc0OiB9CjE0NDc0OiAj
IDM2NCAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdW5zaWduZWQgbG9uZyBtc2Vjc190b19qaWZmaWVzKGNvbnN0IHVu
c2lnbmVkIGludCBtKQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCht
KSkgewoxNDQ3NDogICBpZiAoKGludCltIDwgMCkKMTQ0NzQ6ICAgIHJldHVybiAoKCgobG9uZyko
fjBVTCA+PiAxKSkgPj4gMSktMSk7CjE0NDc0OiAgIHJldHVybiBfbXNlY3NfdG9famlmZmllcyht
KTsKMTQ0NzQ6ICB9IGVsc2UgewoxNDQ3NDogICByZXR1cm4gX19tc2Vjc190b19qaWZmaWVzKG0p
OwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
X191c2Vjc190b19qaWZmaWVzKGNvbnN0IHVuc2lnbmVkIGludCB1KTsKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZyBfdXNlY3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQgdSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHUgKyAoMTAwMDAwMEwgLyAyNTApIC0gMSkgLyAoMTAwMDAw
MEwgLyAyNTApOwoxNDQ3NDogfQoxNDQ3NDogIyA0MTEgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVz
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxv
bmcgdXNlY3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQgdSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AodSkpIHsKMTQ0NzQ6ICAgaWYgKHUgPiBqaWZmaWVz
X3RvX3VzZWNzKCgoKChsb25nKSh+MFVMID4+IDEpKSA+PiAxKS0xKSkpCjE0NDc0OiAgICByZXR1
cm4gKCgoKGxvbmcpKH4wVUwgPj4gMSkpID4+IDEpLTEpOwoxNDQ3NDogICByZXR1cm4gX3VzZWNz
X3RvX2ppZmZpZXModSk7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgcmV0dXJuIF9fdXNlY3Nf
dG9famlmZmllcyh1KTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1
bnNpZ25lZCBsb25nIHRpbWVzcGVjNjRfdG9famlmZmllcyhjb25zdCBzdHJ1Y3QgdGltZXNwZWM2
NCAqdmFsdWUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgamlmZmllc190b190aW1lc3BlYzY0KGNvbnN0
IHVuc2lnbmVkIGxvbmcgamlmZmllcywKMTQ0NzQ6ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp2
YWx1ZSk7CjE0NDc0OiBleHRlcm4gY2xvY2tfdCBqaWZmaWVzX3RvX2Nsb2NrX3QodW5zaWduZWQg
bG9uZyB4KTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGNsb2NrX3QgamlmZmllc19kZWx0YV90b19jbG9ja190KGxvbmcgZGVs
dGEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGppZmZpZXNfdG9fY2xvY2tfdChfX2J1aWx0aW5f
Y2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5cGVvZigwTCkgKikxID09ICh0eXBlb2YoZGVsdGEp
ICopMSkpKSAmJiAoKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcp
KDBMKSAqIDBsKSkgOiAoaW50ICopOCkpKSAmJiAoc2l6ZW9mKGludCkgPT0gc2l6ZW9mKCooOCA/
ICgodm9pZCAqKSgobG9uZykoZGVsdGEpICogMGwpKSA6IChpbnQgKik4KSkpKSksICgoMEwpID4g
KGRlbHRhKSA/ICgwTCkgOiAoZGVsdGEpKSwgKHsgdHlwZW9mKDBMKSBfX1VOSVFVRV9JRF9fX3g5
ID0gKDBMKTsgdHlwZW9mKGRlbHRhKSBfX1VOSVFVRV9JRF9fX3kxMCA9IChkZWx0YSk7ICgoX19V
TklRVUVfSURfX194OSkgPiAoX19VTklRVUVfSURfX195MTApID8gKF9fVU5JUVVFX0lEX19feDkp
IDogKF9fVU5JUVVFX0lEX19feTEwKSk7IH0pKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVu
c2lnbmVkIGludCBqaWZmaWVzX2RlbHRhX3RvX21zZWNzKGxvbmcgZGVsdGEpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGppZmZpZXNfdG9fbXNlY3MoX19idWlsdGluX2Nob29zZV9leHByKCgoISEo
c2l6ZW9mKCh0eXBlb2YoMEwpICopMSA9PSAodHlwZW9mKGRlbHRhKSAqKTEpKSkgJiYgKChzaXpl
b2YoaW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgwTCkgKiAwbCkpIDogKGlu
dCAqKTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcp
KGRlbHRhKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKDBMKSA+IChkZWx0YSkgPyAoMEwpIDog
KGRlbHRhKSksICh7IHR5cGVvZigwTCkgX19VTklRVUVfSURfX194MTEgPSAoMEwpOyB0eXBlb2Yo
ZGVsdGEpIF9fVU5JUVVFX0lEX19feTEyID0gKGRlbHRhKTsgKChfX1VOSVFVRV9JRF9fX3gxMSkg
PiAoX19VTklRVUVfSURfX195MTIpID8gKF9fVU5JUVVFX0lEX19feDExKSA6IChfX1VOSVFVRV9J
RF9fX3kxMikpOyB9KSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdW5zaWduZWQg
bG9uZyBjbG9ja190X3RvX2ppZmZpZXModW5zaWduZWQgbG9uZyB4KTsKMTQ0NzQ6IGV4dGVybiB1
NjQgamlmZmllc182NF90b19jbG9ja190KHU2NCB4KTsKMTQ0NzQ6IGV4dGVybiB1NjQgbnNlY190
b19jbG9ja190KHU2NCB4KTsKMTQ0NzQ6IGV4dGVybiB1NjQgbnNlY3NfdG9famlmZmllczY0KHU2
NCBuKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIG5zZWNzX3RvX2ppZmZpZXModTY0IG4p
OwoxNDQ3NDogIyAyNiAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHM2NCBrdGltZV90OwoxNDQ3NDogIyAzNyAiLi9pbmNsdWRlL2xpbnV4
L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX3NldChjb25zdCBzNjQgc2VjcywgY29uc3Qg
dW5zaWduZWQgbG9uZyBuc2VjcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVj
dCghIShzZWNzID49ICgoKHM2NCl+KCh1NjQpMSA8PCA2MykpIC8gMTAwMDAwMDAwMEwpKSwgMCkp
CjE0NDc0OiAgIHJldHVybiAoKHM2NCl+KCh1NjQpMSA8PCA2MykpOwoxNDQ3NDogCjE0NDc0OiAg
cmV0dXJuIHNlY3MgKiAxMDAwMDAwMDAwTCArIChzNjQpbnNlY3M7CjE0NDc0OiB9CjE0NDc0OiAj
IDcwICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgdGltZXNwZWM2NF90
b19rdGltZShzdHJ1Y3QgdGltZXNwZWM2NCB0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3Rp
bWVfc2V0KHRzLnR2X3NlYywgdHMudHZfbnNlYyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGt0aW1lX3RvX25zKGNvbnN0IGt0aW1l
X3Qga3QpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0OwoxNDQ3NDogfQoxNDQ3NDogIyA5NCAi
Li9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga3RpbWVfY29tcGFyZShjb25zdCBr
dGltZV90IGNtcDEsIGNvbnN0IGt0aW1lX3QgY21wMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoY21w
MSA8IGNtcDIpCjE0NDc0OiAgIHJldHVybiAtMTsKMTQ0NzQ6ICBpZiAoY21wMSA+IGNtcDIpCjE0
NDc0OiAgIHJldHVybiAxOwoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTAg
Ii4vaW5jbHVkZS9saW51eC9rdGltZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrdGltZV9hZnRlcihjb25zdCBr
dGltZV90IGNtcDEsIGNvbnN0IGt0aW1lX3QgY21wMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
a3RpbWVfY29tcGFyZShjbXAxLCBjbXAyKSA+IDA7CjE0NDc0OiB9CjE0NDc0OiAjIDEyMiAiLi9p
bmNsdWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGt0aW1lX2JlZm9yZShjb25zdCBrdGlt
ZV90IGNtcDEsIGNvbnN0IGt0aW1lX3QgY21wMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3Rp
bWVfY29tcGFyZShjbXAxLCBjbXAyKSA8IDA7CjE0NDc0OiB9CjE0NDc0OiAjIDE0NyAiLi9pbmNs
dWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3RpbWVfZGl2bnMoY29uc3Qga3RpbWVfdCBr
dCwgczY0IGRpdikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEoZGl2IDwgMCk7IGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGls
ZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs
ZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpm
aWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMy
IiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9u
IiA6IDogImkiICgiaW5jbHVkZS9saW51eC9rdGltZS5oIiksICJpIiAoMTUzKSwgImkiICgoMSA8
PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdo
aWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6
IDogImkiICgxMykpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRf
d2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICByZXR1cm4ga3QgLyBkaXY7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0IGt0aW1lX3RvX3VzKGNvbnN0IGt0aW1lX3Qga3QpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX2Rpdm5zKGt0LCAxMDAwTCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBrdGltZV90b19tcyhjb25zdCBrdGltZV90IGt0KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBrdGltZV9kaXZucyhrdCwgMTAwMDAwMEwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQga3RpbWVfdXNfZGVsdGEoY29uc3Qga3RpbWVfdCBsYXRlciwgY29uc3Qga3RpbWVf
dCBlYXJsaWVyKQoxNDQ3NDogewoxNDQ3NDogICAgICAgIHJldHVybiBrdGltZV90b191cygoKGxh
dGVyKSAtIChlYXJsaWVyKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3RpbWVfbXNf
ZGVsdGEoY29uc3Qga3RpbWVfdCBsYXRlciwgY29uc3Qga3RpbWVfdCBlYXJsaWVyKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBrdGltZV90b19tcygoKGxhdGVyKSAtIChlYXJsaWVyKSkpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX2FkZF91cyhjb25zdCBrdGltZV90IGt0
LCBjb25zdCB1NjQgdXNlYykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChrdCkgKyAodXNlYyAq
IDEwMDBMKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfYWRkX21zKGNv
bnN0IGt0aW1lX3Qga3QsIGNvbnN0IHU2NCBtc2VjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAo
KGt0KSArIChtc2VjICogMTAwMDAwMEwpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVf
dCBrdGltZV9zdWJfdXMoY29uc3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IHVzZWMpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuICgoa3QpIC0gKHVzZWMgKiAxMDAwTCkpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBrdGltZV90IGt0aW1lX3N1Yl9tcyhjb25zdCBrdGltZV90IGt0LCBjb25zdCB1NjQg
bXNlYykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChrdCkgLSAobXNlYyAqIDEwMDAwMDBMKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBrdGltZV90IGt0aW1lX2FkZF9zYWZlKGNv
bnN0IGt0aW1lX3QgbGhzLCBjb25zdCBrdGltZV90IHJocyk7CjE0NDc0OiAjIDIwOCAiLi9pbmNs
dWRlL2xpbnV4L2t0aW1lLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgYm9vbCBrdGltZV90b190aW1lc3BlYzY0X2NvbmQoY29uc3Qga3RpbWVfdCBrdCwK
MTQ0NzQ6ICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKGt0KSB7CjE0NDc0OiAgICp0cyA9IG5zX3RvX3RpbWVzcGVjNjQoKGt0KSk7CjE0NDc0
OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHJldHVybiBmYWxzZTsK
MTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAjIDIyOCAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBrdGltZV90IG5zX3RvX2t0aW1lKHU2NCBucykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gbnM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgbXNfdG9fa3RpbWUodTY0IG1z
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtcyAqIDEwMDAwMDBMOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIiAxCjE0NDc0OiAjIDkg
Ii4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIgoxNDQ3NDogdm9pZCB0aW1la2VlcGluZ19p
bml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCB0aW1la2VlcGluZ19zdXNwZW5kZWQ7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVz
ZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgeHRpbWVfdXBkYXRlKHVuc2lnbmVkIGxvbmcgdGlja3Mp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGRvX3Nl
dHRpbWVvZmRheTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0OiBleHRlcm4g
aW50IGRvX3N5c19zZXR0aW1lb2ZkYXk2NChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHYsCjE0
NDc0OiAgICAgIGNvbnN0IHN0cnVjdCB0aW1lem9uZSAqdHopOwoxNDQ3NDogIyA0MSAiLi9pbmNs
dWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBrdGltZV9nZXRfcmF3
X3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGt0aW1lX2dl
dF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBrdGltZV9n
ZXRfcmVhbF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0dik7CjE0NDc0OiBleHRlcm4gdm9pZCBr
dGltZV9nZXRfY29hcnNlX3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGt0aW1lX2dldF9jb2Fyc2VfcmVhbF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7
CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2V0Ym9vdHRpbWU2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdGltZTY0X3Qg
a3RpbWVfZ2V0X3NlY29uZHModm9pZCk7CjE0NDc0OiBleHRlcm4gdGltZTY0X3QgX19rdGltZV9n
ZXRfcmVhbF9zZWNvbmRzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHRpbWU2NF90IGt0aW1lX2dldF9y
ZWFsX3NlY29uZHModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSB0a19vZmZzZXRzIHsKMTQ0NzQ6ICBUS19PRkZTX1JFQUwsCjE0NDc0OiAg
VEtfT0ZGU19CT09ULAoxNDQ3NDogIFRLX09GRlNfVEFJLAoxNDQ3NDogIFRLX09GRlNfTUFYLAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0KHZvaWQpOwox
NDQ3NDogZXh0ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KGVudW0gdGtfb2Zmc2V0
cyBvZmZzKTsKMTQ0NzQ6IGV4dGVybiBrdGltZV90IGt0aW1lX2dldF9jb2Fyc2Vfd2l0aF9vZmZz
ZXQoZW51bSB0a19vZmZzZXRzIG9mZnMpOwoxNDQ3NDogZXh0ZXJuIGt0aW1lX3Qga3RpbWVfbW9u
b190b19hbnkoa3RpbWVfdCB0bW9ubywgZW51bSB0a19vZmZzZXRzIG9mZnMpOwoxNDQ3NDogZXh0
ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0X3Jhdyh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB1MzIga3RpbWVf
Z2V0X3Jlc29sdXRpb25fbnModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X3JlYWwodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4ga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KFRLX09GRlNfUkVBTCk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9yZWFsKHZvaWQpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGt0aW1lX2dldF9jb2Fyc2Vfd2l0aF9vZmZzZXQoVEtfT0ZGU19SRUFMKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9nZXRfYm9vdHRpbWUodm9pZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4ga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KFRLX09GRlNfQk9PVCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9ib290dGltZSh2b2lkKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KFRLX09G
RlNfQk9PVCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGt0aW1lX3Qga3RpbWVfZ2V0X2Nsb2NrdGFpKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGt0aW1lX2dldF93aXRoX29mZnNldChUS19PRkZTX1RBSSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaSh2b2lkKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KFRLX09GRlNfVEFJKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9nZXRfY29hcnNlKHZvaWQpCjE0NDc0
OiB7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgdHM7CjE0NDc0OiAKMTQ0NzQ6ICBrdGltZV9n
ZXRfY29hcnNlX3RzNjQoJnRzKTsKMTQ0NzQ6ICByZXR1cm4gdGltZXNwZWM2NF90b19rdGltZSh0
cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNlX25zKHZvaWQp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9jb2Fyc2UoKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNlX3JlYWxfbnModm9p
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X2NvYXJzZV9y
ZWFsKCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X2NvYXJzZV9ib290
dGltZV9ucyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV90b19ucyhrdGltZV9n
ZXRfY29hcnNlX2Jvb3R0aW1lKCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVf
Z2V0X2NvYXJzZV9jbG9ja3RhaV9ucyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGlt
ZV90b19ucyhrdGltZV9nZXRfY29hcnNlX2Nsb2NrdGFpKCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX21vbm9fdG9fcmVhbChr
dGltZV90IG1vbm8pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX21vbm9fdG9fYW55KG1v
bm8sIFRLX09GRlNfUkVBTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRf
bnModm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X3JlYWxfbnModm9pZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X3JlYWwoKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfYm9vdHRpbWVfbnModm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X2Jvb3R0aW1lKCkpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X2Nsb2NrdGFpX25zKHZvaWQpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9jbG9ja3RhaSgpKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGt0aW1lX2dldF9yYXdfbnModm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0X3JhdygpKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHU2NCBrdGltZV9nZXRfbW9ub19mYXN0X25zKHZvaWQpOwoxNDQ3
NDogZXh0ZXJuIHU2NCBrdGltZV9nZXRfcmF3X2Zhc3RfbnModm9pZCk7CjE0NDc0OiBleHRlcm4g
dTY0IGt0aW1lX2dldF9ib290X2Zhc3RfbnModm9pZCk7CjE0NDc0OiBleHRlcm4gdTY0IGt0aW1l
X2dldF9yZWFsX2Zhc3RfbnModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1lX2dldF9ib290dGltZV90czY0KHN0cnVj
dCB0aW1lc3BlYzY0ICp0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICAqdHMgPSBuc190b190aW1lc3BlYzY0
KChrdGltZV9nZXRfYm9vdHRpbWUoKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0
aW1lX2dldF9jb2Fyc2VfYm9vdHRpbWVfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0NDc0
OiB7CjE0NDc0OiAgKnRzID0gbnNfdG9fdGltZXNwZWM2NCgoa3RpbWVfZ2V0X2NvYXJzZV9ib290
dGltZSgpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHRpbWU2NF90IGt0aW1lX2dldF9ib290
dGltZV9zZWNvbmRzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX2Rpdm5zKGt0
aW1lX2dldF9jb2Fyc2VfYm9vdHRpbWUoKSwgMTAwMDAwMDAwMEwpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGt0aW1lX2dldF9jbG9ja3RhaV90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0
cykKMTQ0NzQ6IHsKMTQ0NzQ6ICAqdHMgPSBuc190b190aW1lc3BlYzY0KChrdGltZV9nZXRfY2xv
Y2t0YWkoKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1lX2dldF9jb2Fyc2Vf
Y2xvY2t0YWlfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCjE0NDc0OiB7CjE0NDc0OiAgKnRz
ID0gbnNfdG9fdGltZXNwZWM2NCgoa3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaSgpKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHRpbWU2NF90IGt0aW1lX2dldF9jbG9ja3RhaV9zZWNvbmRzKHZv
aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGt0aW1lX2Rpdm5zKGt0aW1lX2dldF9jb2Fyc2Vf
Y2xvY2t0YWkoKSwgMTAwMDAwMDAwMEwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCB0aW1la2VlcGluZ19ydGNfc2tpcHN1c3BlbmQo
dm9pZCk7CjE0NDc0OiBleHRlcm4gYm9vbCB0aW1la2VlcGluZ19ydGNfc2tpcHJlc3VtZSh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgdGltZWtlZXBpbmdfaW5qZWN0X3NsZWVwdGlt
ZTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpkZWx0YSk7CjE0NDc0OiAjIDIzNCAiLi9pbmNs
dWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCjE0NDc0OiBzdHJ1Y3Qgc3lzdGVtX3RpbWVfc25hcHNo
b3QgewoxNDQ3NDogIHU2NCBjeWNsZXM7CjE0NDc0OiAga3RpbWVfdCByZWFsOwoxNDQ3NDogIGt0
aW1lX3QgcmF3OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjbG9ja193YXNfc2V0X3NlcTsKMTQ0NzQ6
ICB1OCBjc193YXNfY2hhbmdlZF9zZXE7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNDkgIi4vaW5jbHVk
ZS9saW51eC90aW1la2VlcGluZy5oIgoxNDQ3NDogc3RydWN0IHN5c3RlbV9kZXZpY2VfY3Jvc3N0
c3RhbXAgewoxNDQ3NDogIGt0aW1lX3QgZGV2aWNlOwoxNDQ3NDogIGt0aW1lX3Qgc3lzX3JlYWx0
aW1lOwoxNDQ3NDogIGt0aW1lX3Qgc3lzX21vbm9yYXc7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNjIg
Ii4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIgoxNDQ3NDogc3RydWN0IHN5c3RlbV9jb3Vu
dGVydmFsX3QgewoxNDQ3NDogIHU2NCBjeWNsZXM7CjE0NDc0OiAgc3RydWN0IGNsb2Nrc291cmNl
ICpjczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgZ2V0X2RldmljZV9zeXN0ZW1fY3Jvc3N0c3RhbXAoCjE0NDc0OiAgICBpbnQgKCpn
ZXRfdGltZV9mbikoa3RpbWVfdCAqZGV2aWNlX3RpbWUsCjE0NDc0OiAgICAgc3RydWN0IHN5c3Rl
bV9jb3VudGVydmFsX3QgKnN5c3RlbV9jb3VudGVydmFsLAoxNDQ3NDogICAgIHZvaWQgKmN0eCks
CjE0NDc0OiAgICB2b2lkICpjdHgsCjE0NDc0OiAgICBzdHJ1Y3Qgc3lzdGVtX3RpbWVfc25hcHNo
b3QgKmhpc3RvcnksCjE0NDc0OiAgICBzdHJ1Y3Qgc3lzdGVtX2RldmljZV9jcm9zc3RzdGFtcCAq
eHRzdGFtcCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGt0aW1lX2dldF9zbmFwc2hvdChzdHJ1Y3Qgc3lzdGVtX3RpbWVfc25hcHNob3QgKnN5c3Rp
bWVfc25hcHNob3QpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gaW50IHBlcnNpc3RlbnRfY2xvY2tfaXNfbG9jYWw7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIHJlYWRfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0
OiB2b2lkIHJlYWRfcGVyc2lzdGVudF93YWxsX2FuZF9ib290X29mZnNldChzdHJ1Y3QgdGltZXNw
ZWM2NCAqd2FsbF9jbG9jaywKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCAqYm9vdF9v
ZmZzZXQpOwoxNDQ3NDogZXh0ZXJuIGludCB1cGRhdGVfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVj
dCB0aW1lc3BlYzY0IG5vdyk7CjE0NDc0OiAjIDIzOSAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgi
IDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nMzIuaCIgMQoxNDQ3NDog
IyA5ICIuL2luY2x1ZGUvbGludXgvdGltZWtlZXBpbmczMi5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZyBnZXRfc2Vjb25kcyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV9nZXRfcmVh
bF9zZWNvbmRzKCk7CjE0NDc0OiB9CjE0NDc0OiAjIDI0MCAiLi9pbmNsdWRlL2xpbnV4L2t0aW1l
LmgiIDIKMTQ0NzQ6ICMgNyAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvbGludXgvZGVidWdvYmplY3RzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkZWJ1
Z19vYmpfc3RhdGUgewoxNDQ3NDogIE9ERUJVR19TVEFURV9OT05FLAoxNDQ3NDogIE9ERUJVR19T
VEFURV9JTklULAoxNDQ3NDogIE9ERUJVR19TVEFURV9JTkFDVElWRSwKMTQ0NzQ6ICBPREVCVUdf
U1RBVEVfQUNUSVZFLAoxNDQ3NDogIE9ERUJVR19TVEFURV9ERVNUUk9ZRUQsCjE0NDc0OiAgT0RF
QlVHX1NUQVRFX05PVEFWQUlMQUJMRSwKMTQ0NzQ6ICBPREVCVUdfU1RBVEVfTUFYLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlYnVnX29ial9kZXNjcjsKMTQ0NzQ6ICMgMjggIi4v
aW5jbHVkZS9saW51eC9kZWJ1Z29iamVjdHMuaCIKMTQ0NzQ6IHN0cnVjdCBkZWJ1Z19vYmogewox
NDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIG5vZGU7CjE0NDc0OiAgZW51bSBkZWJ1Z19vYmpfc3Rh
dGUgc3RhdGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IGFzdGF0ZTsKMTQ0NzQ6ICB2b2lkICpvYmpl
Y3Q7CjE0NDc0OiAgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3I7CjE0NDc0OiB9OwoxNDQ3
NDogIyA1NSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnb2JqZWN0cy5oIgoxNDQ3NDogc3RydWN0IGRl
YnVnX29ial9kZXNjciB7CjE0NDc0OiAgY29uc3QgY2hhciAqbmFtZTsKMTQ0NzQ6ICB2b2lkICoo
KmRlYnVnX2hpbnQpKHZvaWQgKmFkZHIpOwoxNDQ3NDogIGJvb2wgKCppc19zdGF0aWNfb2JqZWN0
KSh2b2lkICphZGRyKTsKMTQ0NzQ6ICBib29sICgqZml4dXBfaW5pdCkodm9pZCAqYWRkciwgZW51
bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGUpOwoxNDQ3NDogIGJvb2wgKCpmaXh1cF9hY3RpdmF0ZSko
dm9pZCAqYWRkciwgZW51bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGUpOwoxNDQ3NDogIGJvb2wgKCpm
aXh1cF9kZXN0cm95KSh2b2lkICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0ZSBzdGF0ZSk7CjE0
NDc0OiAgYm9vbCAoKmZpeHVwX2ZyZWUpKHZvaWQgKmFkZHIsIGVudW0gZGVidWdfb2JqX3N0YXRl
IHN0YXRlKTsKMTQ0NzQ6ICBib29sICgqZml4dXBfYXNzZXJ0X2luaXQpKHZvaWQgKmFkZHIsIGVu
dW0gZGVidWdfb2JqX3N0YXRlIHN0YXRlKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDg4ICIuL2luY2x1
ZGUvbGludXgvZGVidWdvYmplY3RzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBkZWJ1Z19vYmplY3Rf
aW5pdCAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgfQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZAoxNDQ3NDogZGVidWdfb2JqZWN0X2luaXRfb25fc3RhY2sodm9pZCAqYWRkciwgc3Ry
dWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiBkZWJ1Z19v
YmplY3RfYWN0aXZhdGUgKHZvaWQgKmFkZHIsIHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2Ny
KSB7IHJldHVybiAwOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBkZWJ1Z19vYmplY3RfZGVhY3RpdmF0
ZSh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfb2JqX2Rlc2NyICpkZXNjcikgeyB9CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkCjE0NDc0OiBkZWJ1Z19vYmplY3RfZGVzdHJveSAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVn
X29ial9kZXNjciAqZGVzY3IpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogZGVidWdfb2JqZWN0X2Zy
ZWUgKHZvaWQgKmFkZHIsIHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKSB7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKMTQ0NzQ6IGRlYnVnX29iamVjdF9hc3NlcnRfaW5pdCh2b2lkICphZGRyLCBzdHJ1Y3Qg
ZGVidWdfb2JqX2Rlc2NyICpkZXNjcikgeyB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGVidWdfb2Jq
ZWN0c19lYXJseV9pbml0KHZvaWQpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z19vYmplY3RzX21lbV9p
bml0KHZvaWQpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQKMTQ0NzQ6IGRlYnVnX2NoZWNrX25vX29ial9mcmVlZChjb25zdCB2b2lkICphZGRy
ZXNzLCB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgv
dGltZXIuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lcl9saXN0IHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIGVu
dHJ5OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZXhwaXJlczsKMTQ0NzQ6ICB2b2lkICgqZnVuY3Rp
b24pKHN0cnVjdCB0aW1lcl9saXN0ICopOwoxNDQ3NDogIHUzMiBmbGFnczsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS9saW51
eC90aW1lci5oIgoxNDQ3NDogdm9pZCBpbml0X3RpbWVyX2tleShzdHJ1Y3QgdGltZXJfbGlzdCAq
dGltZXIsCjE0NDc0OiAgICAgICB2b2lkICgqZnVuYykoc3RydWN0IHRpbWVyX2xpc3QgKiksIHVu
c2lnbmVkIGludCBmbGFncywKMTQ0NzQ6ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBs
b2NrX2NsYXNzX2tleSAqa2V5KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X3RpbWVyX29uX3N0YWNrX2tleShz
dHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIsCjE0NDc0OiAgICAgICAgIHZvaWQgKCpmdW5jKShzdHJ1
Y3QgdGltZXJfbGlzdCAqKSwKMTQ0NzQ6ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAoxNDQ3
NDogICAgICAgICBjb25zdCBjaGFyICpuYW1lLAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgbG9ja19j
bGFzc19rZXkgKmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbml0X3RpbWVyX2tleSh0aW1lciwgZnVu
YywgZmxhZ3MsIG5hbWUsIGtleSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRlL2xp
bnV4L3RpbWVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRlc3Ryb3lfdGltZXJfb25fc3RhY2soc3RydWN0IHRp
bWVyX2xpc3QgKnRpbWVyKSB7IH0KMTQ0NzQ6ICMgMTY1ICIuL2luY2x1ZGUvbGludXgvdGltZXIu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCB0aW1lcl9wZW5kaW5nKGNvbnN0IHN0cnVjdCB0aW1lcl9saXN0ICogdGlt
ZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRpbWVyLT5lbnRyeS5wcHJldiAhPSAoKHZvaWQg
KikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYWRkX3RpbWVyX29uKHN0
cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgaW50IGNwdSk7CjE0NDc0OiBleHRlcm4gaW50IGRlbF90
aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqIHRpbWVyKTsKMTQ0NzQ6IGV4dGVybiBpbnQgbW9kX3Rp
bWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgdW5zaWduZWQgbG9uZyBleHBpcmVzKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgbW9kX3RpbWVyX3BlbmRpbmcoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVy
LCB1bnNpZ25lZCBsb25nIGV4cGlyZXMpOwoxNDQ3NDogZXh0ZXJuIGludCB0aW1lcl9yZWR1Y2Uo
c3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyLCB1bnNpZ25lZCBsb25nIGV4cGlyZXMpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gdm9pZCBhZGRfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCB0cnlfdG9fZGVsX3RpbWVyX3N5bmMoc3RydWN0IHRpbWVyX2xpc3Qg
KnRpbWVyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGV4dGVybiBpbnQgZGVsX3RpbWVyX3N5
bmMoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGluaXRfdGltZXJzKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgcnVuX2xvY2FsX3RpbWVycyh2b2lkKTsKMTQ0NzQ6IHN0cnVj
dCBocnRpbWVyOwoxNDQ3NDogZXh0ZXJuIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGl0X3JlYWxfZm4o
c3RydWN0IGhydGltZXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGN0bF90YWJs
ZTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfdGltZXJfbWlncmF0
aW9uOwoxNDQ3NDogaW50IHRpbWVyX21pZ3JhdGlvbl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUg
KnRhYmxlLCBpbnQgd3JpdGUsCjE0NDc0OiAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxl
bnAsCjE0NDc0OiAgICAgICAgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1
bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllcyh1bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwox
NDQ3NDogdW5zaWduZWQgbG9uZyBfX3JvdW5kX2ppZmZpZXNfcmVsYXRpdmUodW5zaWduZWQgbG9u
ZyBqLCBpbnQgY3B1KTsKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgcm91bmRfamlmZmllcyh1bnNpZ25l
ZCBsb25nIGopOwoxNDQ3NDogdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3JlbGF0aXZlKHVu
c2lnbmVkIGxvbmcgaik7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgX19yb3VuZF9qaWZm
aWVzX3VwKHVuc2lnbmVkIGxvbmcgaiwgaW50IGNwdSk7CjE0NDc0OiB1bnNpZ25lZCBsb25nIF9f
cm91bmRfamlmZmllc191cF9yZWxhdGl2ZSh1bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwoxNDQ3
NDogdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3VwKHVuc2lnbmVkIGxvbmcgaik7CjE0NDc0
OiB1bnNpZ25lZCBsb25nIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUodW5zaWduZWQgbG9uZyBq
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgdGltZXJzX3ByZXBhcmVfY3B1KHVuc2lnbmVk
IGludCBjcHUpOwoxNDQ3NDogaW50IHRpbWVyc19kZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsK
MTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIgMgoxNDQ3NDogIyAxOCAi
Li9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgoxNDQ3NDogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1
Y3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB3b3JrX3N0cnVjdDsKMTQ0NzQ6IHR5cGVkZWYgdm9p
ZCAoKndvcmtfZnVuY190KShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwoxNDQ3NDogdm9pZCBk
ZWxheWVkX3dvcmtfdGltZXJfZm4oc3RydWN0IHRpbWVyX2xpc3QgKnQpOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsK
MTQ0NzQ6ICBXT1JLX1NUUlVDVF9QRU5ESU5HX0JJVCA9IDAsCjE0NDc0OiAgV09SS19TVFJVQ1Rf
REVMQVlFRF9CSVQgPSAxLAoxNDQ3NDogIFdPUktfU1RSVUNUX1BXUV9CSVQgPSAyLAoxNDQ3NDog
IFdPUktfU1RSVUNUX0xJTktFRF9CSVQgPSAzLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgV09SS19TVFJVQ1RfQ09MT1JfU0hJRlQgPSA0LAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBXT1JLX1NUUlVDVF9DT0xPUl9CSVRTID0gNCwKMTQ0NzQ6IAoxNDQ3NDogIFdPUktf
U1RSVUNUX1BFTkRJTkcgPSAxIDw8IFdPUktfU1RSVUNUX1BFTkRJTkdfQklULAoxNDQ3NDogIFdP
UktfU1RSVUNUX0RFTEFZRUQgPSAxIDw8IFdPUktfU1RSVUNUX0RFTEFZRURfQklULAoxNDQ3NDog
IFdPUktfU1RSVUNUX1BXUSA9IDEgPDwgV09SS19TVFJVQ1RfUFdRX0JJVCwKMTQ0NzQ6ICBXT1JL
X1NUUlVDVF9MSU5LRUQgPSAxIDw8IFdPUktfU1RSVUNUX0xJTktFRF9CSVQsCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgV09SS19TVFJVQ1RfU1RBVElDID0gMCwKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBXT1JLX05SX0NPTE9S
UyA9ICgxIDw8IFdPUktfU1RSVUNUX0NPTE9SX0JJVFMpIC0gMSwKMTQ0NzQ6ICBXT1JLX05PX0NP
TE9SID0gV09SS19OUl9DT0xPUlMsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFdPUktfQ1BVX1VO
Qk9VTkQgPSA4LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIFdPUktfU1RSVUNUX0ZMQUdfQklUUyA9IFdPUktfU1RSVUNUX0NPTE9SX1NISUZU
ICsKMTQ0NzQ6ICAgICAgIFdPUktfU1RSVUNUX0NPTE9SX0JJVFMsCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIFdPUktfT0ZGUV9GTEFHX0JBU0UgPSBXT1JLX1NUUlVDVF9DT0xPUl9TSElGVCwKMTQ0
NzQ6IAoxNDQ3NDogIF9fV09SS19PRkZRX0NBTkNFTElORyA9IFdPUktfT0ZGUV9GTEFHX0JBU0Us
CjE0NDc0OiAgV09SS19PRkZRX0NBTkNFTElORyA9ICgxIDw8IF9fV09SS19PRkZRX0NBTkNFTElO
RyksCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgV09SS19PRkZRX0ZMQUdfQklUUyA9IDEsCjE0NDc0OiAgV09SS19PRkZRX1BPT0xfU0hJRlQg
PSBXT1JLX09GRlFfRkxBR19CQVNFICsgV09SS19PRkZRX0ZMQUdfQklUUywKMTQ0NzQ6ICBXT1JL
X09GRlFfTEVGVCA9IDY0IC0gV09SS19PRkZRX1BPT0xfU0hJRlQsCjE0NDc0OiAgV09SS19PRkZR
X1BPT0xfQklUUyA9IFdPUktfT0ZGUV9MRUZUIDw9IDMxID8gV09SS19PRkZRX0xFRlQgOiAzMSwK
MTQ0NzQ6ICBXT1JLX09GRlFfUE9PTF9OT05FID0gKDFMVSA8PCBXT1JLX09GRlFfUE9PTF9CSVRT
KSAtIDEsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFdPUktfU1RSVUNUX0ZMQUdfTUFTSyA9ICgx
VUwgPDwgV09SS19TVFJVQ1RfRkxBR19CSVRTKSAtIDEsCjE0NDc0OiAgV09SS19TVFJVQ1RfV1Ff
REFUQV9NQVNLID0gfldPUktfU1RSVUNUX0ZMQUdfTUFTSywKMTQ0NzQ6ICBXT1JLX1NUUlVDVF9O
T19QT09MID0gKHVuc2lnbmVkIGxvbmcpV09SS19PRkZRX1BPT0xfTk9ORSA8PCBXT1JLX09GRlFf
UE9PTF9TSElGVCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgV09SS19CVVNZX1BFTkRJTkcgPSAx
IDw8IDAsCjE0NDc0OiAgV09SS19CVVNZX1JVTk5JTkcgPSAxIDw8IDEsCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIFdPUktFUl9ERVNDX0xFTiA9IDI0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHdvcmtfc3RydWN0IHsKMTQ0NzQ6ICBhdG9taWNfbG9uZ190IGRhdGE7CjE0NDc0OiAg
c3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKMTQ0NzQ6ICB3b3JrX2Z1bmNfdCBmdW5jOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGVsYXllZF93b3JrIHsKMTQ0NzQ6ICBzdHJ1Y3Qgd29y
a19zdHJ1Y3Qgd29yazsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwoxNDQ3NDogIGludCBj
cHU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmN1X3dvcmsgewoxNDQ3NDogIHN0
cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwoxNDQ3NDogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCB3b3JrcXVldWVfYXR0cnMgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGludCBuaWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY3B1
bWFza192YXJfdCBjcHVtYXNrOwoxNDQ3NDogIyAxNTUgIi4vaW5jbHVkZS9saW51eC93b3JrcXVl
dWUuaCIKMTQ0NzQ6ICBib29sIG5vX251bWE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgZGVsYXllZF93b3JrICp0b19kZWxheWVkX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKSh3b3Jr
KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjAodm9pZCkgX19hdHRy
aWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29m
KCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHdv
cmspKSwgdHlwZW9mKCgoc3RydWN0IGRlbGF5ZWRfd29yayAqKTApLT53b3JrKSkgJiYgIV9fYnVp
bHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCood29yaykpLCB0eXBlb2Yodm9pZCkpKSkp
IF9fY29tcGlsZXRpbWVfYXNzZXJ0XzE2MCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgZGVsYXll
ZF93b3JrICopKF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgZGVsYXllZF93b3Jr
LCB3b3JrKSkpOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHJjdV93b3JrICp0
b19yY3Vfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICopKHdvcmspOyBkbyB7IGV4dGVybiB2b2lkIF9f
Y29tcGlsZXRpbWVfYXNzZXJ0XzE2NSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBv
aW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVp
bHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCood29yaykpLCB0eXBlb2YoKChzdHJ1Y3Qg
cmN1X3dvcmsgKikwKS0+d29yaykpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5
cGVvZigqKHdvcmspKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjUo
KTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IHJjdV93b3JrICopKF9fbXB0ciAtIF9fYnVpbHRpbl9v
ZmZzZXRvZihzdHJ1Y3QgcmN1X3dvcmssIHdvcmspKSk7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZXhlY3V0ZV93b3JrIHsKMTQ0NzQ6ICBzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29y
azsKMTQ0NzQ6IH07CjE0NDc0OiAjIDIxNSAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBfX2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmssIGludCBvbnN0
YWNrKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZGVzdHJveV93b3JrX29uX3N0YWNrKHN0cnVjdCB3b3JrX3N0
cnVjdCAqd29yaykgeyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRlc3Ryb3lfZGVsYXllZF93b3JrX29uX3N0YWNr
KHN0cnVjdCBkZWxheWVkX3dvcmsgKndvcmspIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IHdvcmtf
c3RhdGljKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgeyByZXR1cm4gMDsgfQoxNDQ3NDogIyAz
MDggIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFdR
X1VOQk9VTkQgPSAxIDw8IDEsCjE0NDc0OiAgV1FfRlJFRVpBQkxFID0gMSA8PCAyLAoxNDQ3NDog
IFdRX01FTV9SRUNMQUlNID0gMSA8PCAzLAoxNDQ3NDogIFdRX0hJR0hQUkkgPSAxIDw8IDQsCjE0
NDc0OiAgV1FfQ1BVX0lOVEVOU0lWRSA9IDEgPDwgNSwKMTQ0NzQ6ICBXUV9TWVNGUyA9IDEgPDwg
NiwKMTQ0NzQ6ICMgMzQxICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0NDc0OiAgV1Ff
UE9XRVJfRUZGSUNJRU5UID0gMSA8PCA3LAoxNDQ3NDogCjE0NDc0OiAgX19XUV9EUkFJTklORyA9
IDEgPDwgMTYsCjE0NDc0OiAgX19XUV9PUkRFUkVEID0gMSA8PCAxNywKMTQ0NzQ6ICBfX1dRX0xF
R0FDWSA9IDEgPDwgMTgsCjE0NDc0OiAgX19XUV9PUkRFUkVEX0VYUExJQ0lUID0gMSA8PCAxOSwK
MTQ0NzQ6IAoxNDQ3NDogIFdRX01BWF9BQ1RJVkUgPSA1MTIsCjE0NDc0OiAgV1FfTUFYX1VOQk9V
TkRfUEVSX0NQVSA9IDQsCjE0NDc0OiAgV1FfREZMX0FDVElWRSA9IFdRX01BWF9BQ1RJVkUgLyAy
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzg1ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0
NDc0OiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV93cTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX2hpZ2hwcmlfd3E7CjE0NDc0OiBl
eHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9sb25nX3dxOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzeXN0ZW1fdW5ib3VuZF93cTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX2ZyZWV6YWJsZV93cTsKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX3Bvd2VyX2VmZmljaWVudF93
cTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX2ZyZWV6YWJs
ZV9wb3dlcl9lZmZpY2llbnRfd3E7CjE0NDc0OiAjIDQwNyAiLi9pbmNsdWRlL2xpbnV4L3dvcmtx
dWV1ZS5oIgoxNDQ3NDogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmFsbG9jX3dvcmtxdWV1ZShj
b25zdCBjaGFyICpmbXQsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCjE0NDc0OiAg
ICAgICBpbnQgbWF4X2FjdGl2ZSwgLi4uKTsKMTQ0NzQ6ICMgNDM2ICIuL2luY2x1ZGUvbGludXgv
d29ya3F1ZXVlLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBkZXN0cm95X3dvcmtxdWV1ZShzdHJ1Y3Qg
d29ya3F1ZXVlX3N0cnVjdCAqd3EpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd29ya3F1ZXVlX2F0
dHJzICphbGxvY193b3JrcXVldWVfYXR0cnModm9pZCk7CjE0NDc0OiB2b2lkIGZyZWVfd29ya3F1
ZXVlX2F0dHJzKHN0cnVjdCB3b3JrcXVldWVfYXR0cnMgKmF0dHJzKTsKMTQ0NzQ6IGludCBhcHBs
eV93b3JrcXVldWVfYXR0cnMoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAoxNDQ3NDogICAg
ICBjb25zdCBzdHJ1Y3Qgd29ya3F1ZXVlX2F0dHJzICphdHRycyk7CjE0NDc0OiBpbnQgd29ya3F1
ZXVlX3NldF91bmJvdW5kX2NwdW1hc2soY3B1bWFza192YXJfdCBjcHVtYXNrKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGJvb2wgcXVldWVfd29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1ZXVl
X3N0cnVjdCAqd3EsCjE0NDc0OiAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwoxNDQ3NDog
ZXh0ZXJuIGJvb2wgcXVldWVfd29ya19ub2RlKGludCBub2RlLCBzdHJ1Y3Qgd29ya3F1ZXVlX3N0
cnVjdCAqd3EsCjE0NDc0OiAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKMTQ0NzQ6
IGV4dGVybiBib29sIHF1ZXVlX2RlbGF5ZWRfd29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1
ZXVlX3N0cnVjdCAqd3EsCjE0NDc0OiAgICBzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrLCB1bnNp
Z25lZCBsb25nIGRlbGF5KTsKMTQ0NzQ6IGV4dGVybiBib29sIG1vZF9kZWxheWVkX3dvcmtfb24o
aW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAoxNDQ3NDogICAgc3RydWN0IGRl
bGF5ZWRfd29yayAqZHdvcmssIHVuc2lnbmVkIGxvbmcgZGVsYXkpOwoxNDQ3NDogZXh0ZXJuIGJv
b2wgcXVldWVfcmN1X3dvcmsoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLCBzdHJ1Y3QgcmN1
X3dvcmsgKnJ3b3JrKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZmx1c2hfd29ya3F1ZXVl
KHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcmFpbl93
b3JrcXVldWUoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIGludCBzY2hlZHVsZV9vbl9lYWNoX2NwdSh3b3JrX2Z1bmNfdCBmdW5jKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IGV4ZWN1dGVfaW5fcHJvY2Vzc19jb250ZXh0KHdvcmtfZnVuY190IGZuLCBzdHJ1
Y3QgZXhlY3V0ZV93b3JrICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBmbHVzaF93b3Jr
KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CjE0NDc0OiBleHRlcm4gYm9vbCBjYW5jZWxfd29y
a19zeW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBi
b29sIGZsdXNoX2RlbGF5ZWRfd29yayhzdHJ1Y3QgZGVsYXllZF93b3JrICpkd29yayk7CjE0NDc0
OiBleHRlcm4gYm9vbCBjYW5jZWxfZGVsYXllZF93b3JrKHN0cnVjdCBkZWxheWVkX3dvcmsgKmR3
b3JrKTsKMTQ0NzQ6IGV4dGVybiBib29sIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhzdHJ1Y3Qg
ZGVsYXllZF93b3JrICpkd29yayk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIGZsdXNoX3Jj
dV93b3JrKHN0cnVjdCByY3Vfd29yayAqcndvcmspOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCB3b3JrcXVldWVfc2V0X21heF9hY3RpdmUoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAox
NDQ3NDogICAgICAgICAgaW50IG1heF9hY3RpdmUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB3b3Jr
X3N0cnVjdCAqY3VycmVudF93b3JrKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgY3VycmVudF9p
c193b3JrcXVldWVfcmVzY3Vlcih2b2lkKTsKMTQ0NzQ6IGV4dGVybiBib29sIHdvcmtxdWV1ZV9j
b25nZXN0ZWQoaW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxKTsKMTQ0NzQ6IGV4
dGVybiB1bnNpZ25lZCBpbnQgd29ya19idXN5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CjE0
NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDEsIDIpKSkgdm9p
ZCBzZXRfd29ya2VyX2Rlc2MoY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgcHJpbnRfd29ya2VyX2luZm8oY29uc3QgY2hhciAqbG9nX2x2bCwgc3RydWN0IHRhc2tfc3Ry
dWN0ICp0YXNrKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNob3dfd29ya3F1ZXVlX3N0YXRlKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgd3Ffd29ya2VyX2NvbW0oY2hhciAqYnVmLCBzaXplX3Qgc2l6
ZSwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKMTQ0NzQ6ICMgNTA0ICIuL2luY2x1ZGUvbGlu
dXgvd29ya3F1ZXVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHF1ZXVlX3dvcmsoc3RydWN0IHdvcmtxdWV1ZV9z
dHJ1Y3QgKndxLAoxNDQ3NDogICAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBxdWV1ZV93b3JrX29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCB3
b3JrKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTE4ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHF1ZXVlX2RlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAq
d3EsCjE0NDc0OiAgICAgICAgICAgc3RydWN0IGRlbGF5ZWRfd29yayAqZHdvcmssCjE0NDc0OiAg
ICAgICAgICAgdW5zaWduZWQgbG9uZyBkZWxheSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcXVl
dWVfZGVsYXllZF93b3JrX29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCBkd29yaywgZGVsYXkpOwox
NDQ3NDogfQoxNDQ3NDogIyA1MzMgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgbW9kX2RlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3EsCjE0NDc0
OiAgICAgICAgIHN0cnVjdCBkZWxheWVkX3dvcmsgKmR3b3JrLAoxNDQ3NDogICAgICAgICB1bnNp
Z25lZCBsb25nIGRlbGF5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtb2RfZGVsYXllZF93b3Jr
X29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCBkd29yaywgZGVsYXkpOwoxNDQ3NDogfQoxNDQ3NDog
IyA1NDcgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2NoZWR1bGVf
d29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIHF1ZXVlX3dvcmtfb24oY3B1LCBzeXN0ZW1fd3EsIHdvcmspOwoxNDQ3NDogfQox
NDQ3NDogIyA1NjYgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2No
ZWR1bGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIHF1ZXVlX3dvcmsoc3lzdGVtX3dxLCB3b3JrKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTk1ICIu
L2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZsdXNoX3NjaGVkdWxlZF93
b3JrKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgZmx1c2hfd29ya3F1ZXVlKHN5c3RlbV93cSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDYwOSAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmtfb24oaW50IGNwdSwgc3RydWN0IGRlbGF5ZWRfd29y
ayAqZHdvcmssCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIGRlbGF5KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBxdWV1ZV9kZWxheWVkX3dvcmtfb24oY3B1LCBzeXN0ZW1fd3EsIGR3b3Jr
LCBkZWxheSk7CjE0NDc0OiB9CjE0NDc0OiAjIDYyMyAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1
ZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmsoc3RydWN0IGRlbGF5ZWRfd29y
ayAqZHdvcmssCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGRlbGF5KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCBkd29yaywgZGVsYXkpOwox
NDQ3NDogfQoxNDQ3NDogIyA2MzkgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKMTQ0NzQ6
IGxvbmcgd29ya19vbl9jcHUoaW50IGNwdSwgbG9uZyAoKmZuKSh2b2lkICopLCB2b2lkICphcmcp
OwoxNDQ3NDogbG9uZyB3b3JrX29uX2NwdV9zYWZlKGludCBjcHUsIGxvbmcgKCpmbikodm9pZCAq
KSwgdm9pZCAqYXJnKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lk
IGZyZWV6ZV93b3JrcXVldWVzX2JlZ2luKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgZnJlZXpl
X3dvcmtxdWV1ZXNfYnVzeSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRoYXdfd29ya3F1ZXVl
cyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGludCB3b3JrcXVldWVfc3lz
ZnNfcmVnaXN0ZXIoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxKTsKMTQ0NzQ6ICMgNjU5ICIu
L2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdxX3dhdGNoZG9nX3RvdWNo
KGludCBjcHUpIHsgfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IHdvcmtxdWV1
ZV9wcmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCB3b3JrcXVldWVfb25s
aW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCB3b3JrcXVldWVfb2ZmbGluZV9j
cHUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpIHdvcmtxdWV1ZV9pbml0X2Vhcmx5KHZvaWQpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHdv
cmtxdWV1ZV9pbml0KHZvaWQpOwoxNDQ3NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVz
LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oIiAx
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9tdXRleC5oIiAxCjE0NDc0OiAjIDIxICIuL2luY2x1ZGUvbGlu
dXgvbXV0ZXguaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiIDEK
MTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiCjE0NDc0OiBzdHJ1Y3Qg
dGFza19zdHJ1Y3Q7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZGVidWdfbG9ja3MgX19hdHRy
aWJ1dGVfXygoX19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSk7CjE0NDc0OiBleHRl
cm4gaW50IGRlYnVnX2xvY2tzX3NpbGVudCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRh
dGEuLnJlYWRfbW9zdGx5IikpKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19kZWJ1Z19s
b2Nrc19vZmYodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdHlwZW9mKCZkZWJ1Z19s
b2NrcykgX19haV9wdHIgPSAoJmRlYnVnX2xvY2tzKTsga2FzYW5fY2hlY2tfd3JpdGUoX19haV9w
dHIsIHNpemVvZigqX19haV9wdHIpKTsgKHsgX190eXBlb2ZfXyAoKigoX19haV9wdHIpKSkgX19y
ZXQgPSAoKDApKTsgc3dpdGNoIChzaXplb2YoKigoX19haV9wdHIpKSkpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgq
KChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9s
YXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChf
X2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRp
bGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlf
cHRyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAo
IiIgInhjaGciICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlfcHRy
KSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6
ZSgpOyB9IF9fcmV0OyB9KTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZGVidWdfbG9ja3Nfb2ZmKHZvaWQpOwoxNDQ3NDogIyA0
OSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1
Y3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZGVidWdfc2hvd19hbGxfbG9ja3Modm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z19zaG93X2hlbGRfbG9ja3Moc3RydWN0IHRhc2tf
c3RydWN0ICp0YXNrKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0
OiBkZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZChjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBs
b25nIGxlbikKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogZGVi
dWdfY2hlY2tfbm9fbG9ja3NfaGVsZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogIyAy
MiAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHd3X2Fj
cXVpcmVfY3R4OwoxNDQ3NDogIyA1MyAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCjE0NDc0OiBz
dHJ1Y3QgbXV0ZXggewoxNDQ3NDogIGF0b21pY19sb25nX3Qgb3duZXI7CjE0NDc0OiAgc3Bpbmxv
Y2tfdCB3YWl0X2xvY2s7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1
ZXVlIG9zcTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgd2FpdF9saXN0OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXV0ZXhf
d2FpdGVyIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CjE0NDc0OiAgc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrOwoxNDQ3NDogIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqd3dfY3R4Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTIgIi4vaW5jbHVkZS9s
aW51eC9tdXRleC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtdXRleF9kZXN0cm95KHN0cnVjdCBtdXRleCAqbG9j
aykge30KMTQ0NzQ6ICMgMTI4ICIuL2luY2x1ZGUvbGludXgvbXV0ZXguaCIKMTQ0NzQ6IGV4dGVy
biB2b2lkIF9fbXV0ZXhfaW5pdChzdHJ1Y3QgbXV0ZXggKmxvY2ssIGNvbnN0IGNoYXIgKm5hbWUs
CjE0NDc0OiAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9v
bCBtdXRleF9pc19sb2NrZWQoc3RydWN0IG11dGV4ICpsb2NrKTsKMTQ0NzQ6ICMgMTY1ICIuL2lu
Y2x1ZGUvbGludXgvbXV0ZXguaCIKMTQ0NzQ6IGV4dGVybiB2b2lkIG11dGV4X2xvY2soc3RydWN0
IG11dGV4ICpsb2NrKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgbXV0ZXggKmxv
Y2spOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgbXV0ZXhfbG9ja19raWxsYWJsZShzdHJ1Y3QgbXV0ZXggKmxvY2spOwoxNDQ3NDogZXh0
ZXJuIHZvaWQgbXV0ZXhfbG9ja19pbyhzdHJ1Y3QgbXV0ZXggKmxvY2spOwoxNDQ3NDogIyAxODMg
Ii4vaW5jbHVkZS9saW51eC9tdXRleC5oIgoxNDQ3NDogZXh0ZXJuIGludCBtdXRleF90cnlsb2Nr
KHN0cnVjdCBtdXRleCAqbG9jayk7CjE0NDc0OiBleHRlcm4gdm9pZCBtdXRleF91bmxvY2soc3Ry
dWN0IG11dGV4ICpsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhdG9taWNfZGVjX2Fu
ZF9tdXRleF9sb2NrKGF0b21pY190ICpjbnQsIHN0cnVjdCBtdXRleCAqbG9jayk7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBtdXRleF90cnlsb2Nr
X3JlY3Vyc2l2ZV9lbnVtIHsKMTQ0NzQ6ICBNVVRFWF9UUllMT0NLX0ZBSUxFRCA9IDAsCjE0NDc0
OiAgTVVURVhfVFJZTE9DS19TVUNDRVNTID0gMSwKMTQ0NzQ6ICBNVVRFWF9UUllMT0NLX1JFQ1VS
U0lWRSwKMTQ0NzQ6IH07CjE0NDc0OiAjIDIxMCAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCjE0
NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGVudW0g
bXV0ZXhfdHJ5bG9ja19yZWN1cnNpdmVfZW51bQoxNDQ3NDogbXV0ZXhfdHJ5bG9ja19yZWN1cnNp
dmUoc3RydWN0IG11dGV4ICpsb2NrKTsKMTQ0NzQ6ICMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9tbXUuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHU2NCBjdHhfaWQ7CjE0NDc0OiAjIDI4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oIgox
NDQ3NDogIGF0b21pYzY0X3QgdGxiX2dlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IHJ3X3NlbWFwaG9yZSBsZHRfdXNyX3NlbTsKMTQ0NzQ6ICBzdHJ1Y3QgbGR0X3N0cnVjdCAqbGR0
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgc2hvcnQg
aWEzMl9jb21wYXQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtdXRleCBsb2NrOwox
NDQ3NDogIHZvaWQgKnZkc287CjE0NDc0OiAgY29uc3Qgc3RydWN0IHZkc29faW1hZ2UgKnZkc29f
aW1hZ2U7CjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCBwZXJmX3JkcG1jX2FsbG93ZWQ7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHUxNiBwa2V5X2FsbG9j
YXRpb25fbWFwOwoxNDQ3NDogIHMxNiBleGVjdXRlX29ubHlfcGtleTsKMTQ0NzQ6IAoxNDQ3NDog
fSBtbV9jb250ZXh0X3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgbGVhdmVfbW0oaW50IGNwdSk7CjE0NDc0OiAjIDE5
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYWRkcmVzc19zcGFj
ZTsKMTQ0NzQ6IHN0cnVjdCBtZW1fY2dyb3VwOwoxNDQ3NDogIyA2OCAiLi9pbmNsdWRlL2xpbnV4
L21tX3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgcGFnZSB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBm
bGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxydTsKMTQ0
NzQ6IAoxNDQ3NDogICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CjE0NDc0OiAgICB1
bnNpZ25lZCBsb25nIGluZGV4OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBwcml2YXRlOwoxNDQ3NDogICB9Owox
NDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
ICBkbWFfYWRkcl90IGRtYV9hZGRyOwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogICAgdW5pb24gewoxNDQ3NDogICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xhYl9saXN0OwoxNDQ3
NDogICAgIHN0cnVjdCB7CjE0NDc0OiAgICAgIHN0cnVjdCBwYWdlICpuZXh0OwoxNDQ3NDogCjE0
NDc0OiAgICAgIGludCBwYWdlczsKMTQ0NzQ6ICAgICAgaW50IHBvYmplY3RzOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICAgfTsKMTQ0NzQ6ICAgIH07CjE0NDc0OiAg
ICBzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYl9jYWNoZTsKMTQ0NzQ6IAoxNDQ3NDogICAgdm9pZCAq
ZnJlZWxpc3Q7CjE0NDc0OiAgICB1bmlvbiB7CjE0NDc0OiAgICAgdm9pZCAqc19tZW07CjE0NDc0
OiAgICAgdW5zaWduZWQgbG9uZyBjb3VudGVyczsKMTQ0NzQ6ICAgICBzdHJ1Y3QgewoxNDQ3NDog
ICAgICB1bnNpZ25lZCBpbnVzZToxNjsKMTQ0NzQ6ICAgICAgdW5zaWduZWQgb2JqZWN0czoxNTsK
MTQ0NzQ6ICAgICAgdW5zaWduZWQgZnJvemVuOjE7CjE0NDc0OiAgICAgfTsKMTQ0NzQ6ICAgIH07
CjE0NDc0OiAgIH07CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIGNv
bXBvdW5kX2hlYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICAgdW5zaWduZWQgY2hhciBjb21w
b3VuZF9kdG9yOwoxNDQ3NDogICAgdW5zaWduZWQgY2hhciBjb21wb3VuZF9vcmRlcjsKMTQ0NzQ6
ICAgIGF0b21pY190IGNvbXBvdW5kX21hcGNvdW50OwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1
Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBfY29tcG91bmRfcGFkXzE7CjE0NDc0OiAgICB1
bnNpZ25lZCBsb25nIF9jb21wb3VuZF9wYWRfMjsKMTQ0NzQ6IAoxNDQ3NDogICAgc3RydWN0IGxp
c3RfaGVhZCBkZWZlcnJlZF9saXN0OwoxNDQ3NDogICB9OwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogICAgdW5zaWduZWQgbG9uZyBfcHRfcGFkXzE7CjE0NDc0OiAgICBwZ3RhYmxlX3QgcG1kX2h1
Z2VfcHRlOwoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBfcHRfcGFkXzI7CjE0NDc0OiAgICB1bmlv
biB7CjE0NDc0OiAgICAgc3RydWN0IG1tX3N0cnVjdCAqcHRfbW07CjE0NDc0OiAgICAgYXRvbWlj
X3QgcHRfZnJhZ19yZWZjb3VudDsKMTQ0NzQ6ICAgIH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgICBzcGlubG9ja190IHB0bDsKMTQ0NzQ6IAoxNDQ3NDogICB9OwoxNDQ3NDogICBz
dHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgICBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwOwoxNDQ3
NDogICAgdm9pZCAqem9uZV9kZXZpY2VfZGF0YTsKMTQ0NzQ6ICMgMTcyICIuL2luY2x1ZGUvbGlu
dXgvbW1fdHlwZXMuaCIKMTQ0NzQ6ICAgfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHN0cnVj
dCBjYWxsYmFja19oZWFkIGNhbGxiYWNrX2hlYWQ7CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDog
IHVuaW9uIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBhdG9taWNf
dCBfbWFwY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHBhZ2VfdHlwZTsKMTQ0NzQ6IAoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgYWN0aXZlOwoxNDQ3NDogICBpbnQgdW5pdHM7CjE0NDc0OiAgfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXRvbWljX3QgX3JlZmNvdW50OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtX2Nncm91cDsKMTQ0NzQ6ICMgMjIyICIu
L2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IH0gOwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBhdG9t
aWNfdCAqY29tcG91bmRfbWFwY291bnRfcHRyKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAmcGFnZVsxXS5jb21wb3VuZF9tYXBjb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjQwICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCBwYWdlX2Zy
YWdfY2FjaGUgewoxNDQ3NDogIHZvaWQgKiB2YTsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTE2IG9mZnNl
dDsKMTQ0NzQ6ICBfX3UxNiBzaXplOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBwYWdlY250X2JpYXM7CjE0NDc0OiAg
Ym9vbCBwZm1lbWFsbG9jOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIHZtX2ZsYWdzX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgdm1fcmVnaW9uIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9k
ZSB2bV9yYjsKMTQ0NzQ6ICB2bV9mbGFnc190IHZtX2ZsYWdzOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgdm1fc3RhcnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB2bV9lbmQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB2bV90b3A7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB2bV9wZ29mZjsKMTQ0NzQ6ICBz
dHJ1Y3QgZmlsZSAqdm1fZmlsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCB2bV91c2FnZTsKMTQ0NzQ6
ICBib29sIHZtX2ljYWNoZV9mbHVzaGVkIDogMTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMg
MjgzICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCB2bV91c2VyZmF1
bHRmZF9jdHgge307CjE0NDc0OiAjIDI5MiAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCjE0
NDc0OiBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHZtX3N0YXJ0OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgdm1fZW5kOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1fbmV4dCwg
KnZtX3ByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSB2bV9yYjsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgcmJfc3VidHJlZV9nYXA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IG1tX3N0cnVjdCAqdm1fbW07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHBncHJvdF90IHZtX3BhZ2VfcHJvdDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHZtX2ZsYWdzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICBzdHJ1Y3QgcmJfbm9kZSByYjsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyByYl9zdWJ0cmVlX2xhc3Q7CjE0NDc0OiAgfSBzaGFyZWQ7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgbGlzdF9oZWFkIGFub25fdm1hX2NoYWluOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGFub25f
dm1hICphbm9uX3ZtYTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY29uc3Qgc3RydWN0IHZtX29w
ZXJhdGlvbnNfc3RydWN0ICp2bV9vcHM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGxvbmcgdm1fcGdvZmY7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZmlsZSAqIHZtX2ZpbGU7CjE0
NDc0OiAgdm9pZCAqIHZtX3ByaXZhdGVfZGF0YTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYXRv
bWljX2xvbmdfdCBzd2FwX3JlYWRhaGVhZF9pbmZvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHZtX3VzZXJmYXVs
dGZkX2N0eCB2bV91c2VyZmF1bHRmZF9jdHg7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fZGVz
aWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvcmVfdGhyZWFkIHsKMTQ0
NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CjE0NDc0OiAgc3RydWN0IGNvcmVfdGhyZWFk
ICpuZXh0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvcmVfc3RhdGUgewoxNDQ3
NDogIGF0b21pY190IG5yX3RocmVhZHM7CjE0NDc0OiAgc3RydWN0IGNvcmVfdGhyZWFkIGR1bXBl
cjsKMTQ0NzQ6ICBzdHJ1Y3QgY29tcGxldGlvbiBzdGFydHVwOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGtpb2N0eF90YWJsZTsKMTQ0NzQ6IHN0cnVjdCBtbV9zdHJ1Y3QgewoxNDQ3
NDogIHN0cnVjdCB7CjE0NDc0OiAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqbW1hcDsKMTQ0NzQ6
ICAgc3RydWN0IHJiX3Jvb3QgbW1fcmI7CjE0NDc0OiAgIHU2NCB2bWFjYWNoZV9zZXFudW07CjE0
NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyAoKmdldF91bm1hcHBlZF9hcmVhKSAoc3RydWN0
IGZpbGUgKmZpbHAsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25n
IGxlbiwKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nIHBnb2ZmLCB1bnNpZ25lZCBsb25nIGZsYWdz
KTsKMTQ0NzQ6IAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIG1tYXBfYmFzZTsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyBtbWFwX2xlZ2FjeV9iYXNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyB0YXNrX3NpemU7CjE0NDc0OiAgIHVu
c2lnbmVkIGxvbmcgaGlnaGVzdF92bV9lbmQ7CjE0NDc0OiAgIHBnZF90ICogcGdkOwoxNDQ3NDog
IyA0MDMgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgoxNDQ3NDogICBhdG9taWNfdCBtZW1i
YXJyaWVyX3N0YXRlOwoxNDQ3NDogIyA0MTUgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgox
NDQ3NDogICBhdG9taWNfdCBtbV91c2VyczsKMTQ0NzQ6ICMgNDI0ICIuL2luY2x1ZGUvbGludXgv
bW1fdHlwZXMuaCIKMTQ0NzQ6ICAgYXRvbWljX3QgbW1fY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogICBhdG9taWNfbG9uZ190IHBndGFibGVzX2J5dGVzOwoxNDQ3NDogCjE0NDc0OiAgIGlu
dCBtYXBfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3Qgcndfc2VtYXBob3JlIG1tYXBfc2VtOwox
NDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgbW1saXN0OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGhp
d2F0ZXJfcnNzOwoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGhpd2F0ZXJfdm07CjE0NDc0OiAKMTQ0
NzQ6ICAgdW5zaWduZWQgbG9uZyB0b3RhbF92bTsKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBsb2Nr
ZWRfdm07CjE0NDc0OiAgIGF0b21pYzY0X3QgcGlubmVkX3ZtOwoxNDQ3NDogICB1bnNpZ25lZCBs
b25nIGRhdGFfdm07CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgZXhlY192bTsKMTQ0NzQ6ICAgdW5z
aWduZWQgbG9uZyBzdGFja192bTsKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBkZWZfZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6ICAgc3BpbmxvY2tfdCBhcmdfbG9jazsKMTQ0NzQ6ICAgdW5zaWduZWQgbG9u
ZyBzdGFydF9jb2RlLCBlbmRfY29kZSwgc3RhcnRfZGF0YSwgZW5kX2RhdGE7CjE0NDc0OiAgIHVu
c2lnbmVkIGxvbmcgc3RhcnRfYnJrLCBicmssIHN0YXJ0X3N0YWNrOwoxNDQ3NDogICB1bnNpZ25l
ZCBsb25nIGFyZ19zdGFydCwgYXJnX2VuZCwgZW52X3N0YXJ0LCBlbnZfZW5kOwoxNDQ3NDogCjE0
NDc0OiAgIHVuc2lnbmVkIGxvbmcgc2F2ZWRfYXV4dlsoMiooMSArIDIwICsgMSkpXTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBtbV9yc3Nf
c3RhdCByc3Nfc3RhdDsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgbGludXhfYmluZm10ICpiaW5m
bXQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBtbV9jb250ZXh0X3QgY29udGV4dDsKMTQ0NzQ6
IAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBj
b3JlX3N0YXRlICpjb3JlX3N0YXRlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgc3BpbmxvY2tf
dCBpb2N0eF9sb2NrOwoxNDQ3NDogICBzdHJ1Y3Qga2lvY3R4X3RhYmxlICppb2N0eF90YWJsZTsK
MTQ0NzQ6ICMgNDkxICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6ICAgc3RydWN0
IHRhc2tfc3RydWN0ICpvd25lcjsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgdXNlcl9uYW1lc3Bh
Y2UgKnVzZXJfbnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgZmlsZSAqZXhlX2Zp
bGU7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IG1tdV9ub3RpZmllcl9zdWJzY3JpcHRpb25zICpu
b3RpZmllcl9zdWJzY3JpcHRpb25zOwoxNDQ3NDogIyA1MjIgIi4vaW5jbHVkZS9saW51eC9tbV90
eXBlcy5oIgoxNDQ3NDogICBhdG9taWNfdCB0bGJfZmx1c2hfcGVuZGluZzsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgIGJvb2wgdGxiX2ZsdXNoX2JhdGNoZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgc3Ry
dWN0IHVwcm9iZXNfc3RhdGUgdXByb2Jlc19zdGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogICBhdG9taWNf
bG9uZ190IGh1Z2V0bGJfdXNhZ2U7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHdvcmtfc3RydWN0
IGFzeW5jX3B1dF93b3JrOwoxNDQ3NDogIH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2lu
aXRfXykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGNwdV9iaXRtYXBbXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgbW1fc3RydWN0IGluaXRfbW07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBt
bV9pbml0X2NwdW1hc2soc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBjcHVfYml0bWFwID0gKHVuc2lnbmVkIGxvbmcpbW07CjE0NDc0OiAKMTQ0NzQ6
ICBjcHVfYml0bWFwICs9IF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgbW1fc3RydWN0LCBjcHVf
Yml0bWFwKTsKMTQ0NzQ6ICBjcHVtYXNrX2NsZWFyKChzdHJ1Y3QgY3B1bWFzayAqKWNwdV9iaXRt
YXApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNwdW1hc2tfdCAqbW1fY3B1bWFz
ayhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHN0cnVjdCBj
cHVtYXNrICopJm1tLT5jcHVfYml0bWFwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bW11X2dhdGhlcjsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRsYl9nYXRoZXJfbW11KHN0cnVjdCBtbXVf
Z2F0aGVyICp0bGIsIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAoxNDQ3NDogICAgIHVuc2lnbmVkIGxv
bmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRsYl9maW5p
c2hfbW11KHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsCjE0NDc0OiAgICAgdW5zaWduZWQgbG9uZyBz
dGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGluaXRfdGxiX2Zs
dXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7CjE0NDc0OiAgYXRvbWlj
X3NldCgmbW0tPnRsYl9mbHVzaF9wZW5kaW5nLCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBpbmNfdGxiX2ZsdXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7
CjE0NDc0OiAgYXRvbWljX2luYygmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKTsKMTQ0NzQ6ICMgNjA4
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBkZWNfdGxiX2ZsdXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCjE0NDc0OiB7CjE0
NDc0OiAjIDYyMCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCjE0NDc0OiAgYXRvbWljX2Rl
YygmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBt
bV90bGJfZmx1c2hfcGVuZGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICMgNjMzICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6ICByZXR1cm4gYXRvbWlj
X3JlYWQoJm1tLT50bGJfZmx1c2hfcGVuZGluZyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgbW1fdGxiX2ZsdXNoX25lc3RlZChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKMTQ0NzQ6IHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBhdG9taWNfcmVhZCgmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKSA+IDE7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB2bV9mYXVsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IHZt
X2ZhdWx0X3Q7CjE0NDc0OiAjIDY4MiAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCjE0NDc0
OiBlbnVtIHZtX2ZhdWx0X3JlYXNvbiB7CjE0NDc0OiAgVk1fRkFVTFRfT09NID0gKCB2bV9mYXVs
dF90KTB4MDAwMDAxLAoxNDQ3NDogIFZNX0ZBVUxUX1NJR0JVUyA9ICggdm1fZmF1bHRfdCkweDAw
MDAwMiwKMTQ0NzQ6ICBWTV9GQVVMVF9NQUpPUiA9ICggdm1fZmF1bHRfdCkweDAwMDAwNCwKMTQ0
NzQ6ICBWTV9GQVVMVF9XUklURSA9ICggdm1fZmF1bHRfdCkweDAwMDAwOCwKMTQ0NzQ6ICBWTV9G
QVVMVF9IV1BPSVNPTiA9ICggdm1fZmF1bHRfdCkweDAwMDAxMCwKMTQ0NzQ6ICBWTV9GQVVMVF9I
V1BPSVNPTl9MQVJHRSA9ICggdm1fZmF1bHRfdCkweDAwMDAyMCwKMTQ0NzQ6ICBWTV9GQVVMVF9T
SUdTRUdWID0gKCB2bV9mYXVsdF90KTB4MDAwMDQwLAoxNDQ3NDogIFZNX0ZBVUxUX05PUEFHRSA9
ICggdm1fZmF1bHRfdCkweDAwMDEwMCwKMTQ0NzQ6ICBWTV9GQVVMVF9MT0NLRUQgPSAoIHZtX2Zh
dWx0X3QpMHgwMDAyMDAsCjE0NDc0OiAgVk1fRkFVTFRfUkVUUlkgPSAoIHZtX2ZhdWx0X3QpMHgw
MDA0MDAsCjE0NDc0OiAgVk1fRkFVTFRfRkFMTEJBQ0sgPSAoIHZtX2ZhdWx0X3QpMHgwMDA4MDAs
CjE0NDc0OiAgVk1fRkFVTFRfRE9ORV9DT1cgPSAoIHZtX2ZhdWx0X3QpMHgwMDEwMDAsCjE0NDc0
OiAgVk1fRkFVTFRfTkVFRERTWU5DID0gKCB2bV9mYXVsdF90KTB4MDAyMDAwLAoxNDQ3NDogIFZN
X0ZBVUxUX0hJTkRFWF9NQVNLID0gKCB2bV9mYXVsdF90KTB4MGYwMDAwLAoxNDQ3NDogfTsKMTQ0
NzQ6ICMgNzIyICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCB2bV9z
cGVjaWFsX21hcHBpbmcgewoxNDQ3NDogIGNvbnN0IGNoYXIgKm5hbWU7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
cGFnZSAqKnBhZ2VzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICB2bV9mYXVsdF90ICgqZmF1bHQpKGNvbnN0IHN0cnVjdCB2bV9zcGVjaWFsX21hcHBpbmcg
KnNtLAoxNDQ3NDogICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAoxNDQ3NDogICAgIHN0
cnVjdCB2bV9mYXVsdCAqdm1mKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKm1yZW1hcCkoY29uc3Qg
c3RydWN0IHZtX3NwZWNpYWxfbWFwcGluZyAqc20sCjE0NDc0OiAgICAgICAgc3RydWN0IHZtX2Fy
ZWFfc3RydWN0ICpuZXdfdm1hKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdGxiX2Zs
dXNoX3JlYXNvbiB7CjE0NDc0OiAgVExCX0ZMVVNIX09OX1RBU0tfU1dJVENILAoxNDQ3NDogIFRM
Ql9SRU1PVEVfU0hPT1RET1dOLAoxNDQ3NDogIFRMQl9MT0NBTF9TSE9PVERPV04sCjE0NDc0OiAg
VExCX0xPQ0FMX01NX1NIT09URE9XTiwKMTQ0NzQ6ICBUTEJfUkVNT1RFX1NFTkRfSVBJLAoxNDQ3
NDogIE5SX1RMQl9GTFVTSF9SRUFTT05TLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB2YWw7CjE0NDc0OiB9IHN3cF9lbnRyeV90OwoxNDQ3NDogIyAyMiAiLi9pbmNsdWRl
L2xpbnV4L21tem9uZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdz
LmgiIDEKMTQ0NzQ6ICMgOTkgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCjE0NDc0OiBl
bnVtIHBhZ2VmbGFncyB7CjE0NDc0OiAgUEdfbG9ja2VkLAoxNDQ3NDogIFBHX3JlZmVyZW5jZWQs
CjE0NDc0OiAgUEdfdXB0b2RhdGUsCjE0NDc0OiAgUEdfZGlydHksCjE0NDc0OiAgUEdfbHJ1LAox
NDQ3NDogIFBHX2FjdGl2ZSwKMTQ0NzQ6ICBQR193b3JraW5nc2V0LAoxNDQ3NDogIFBHX3dhaXRl
cnMsCjE0NDc0OiAgUEdfZXJyb3IsCjE0NDc0OiAgUEdfc2xhYiwKMTQ0NzQ6ICBQR19vd25lcl9w
cml2XzEsCjE0NDc0OiAgUEdfYXJjaF8xLAoxNDQ3NDogIFBHX3Jlc2VydmVkLAoxNDQ3NDogIFBH
X3ByaXZhdGUsCjE0NDc0OiAgUEdfcHJpdmF0ZV8yLAoxNDQ3NDogIFBHX3dyaXRlYmFjaywKMTQ0
NzQ6ICBQR19oZWFkLAoxNDQ3NDogIFBHX21hcHBlZHRvZGlzaywKMTQ0NzQ6ICBQR19yZWNsYWlt
LAoxNDQ3NDogIFBHX3N3YXBiYWNrZWQsCjE0NDc0OiAgUEdfdW5ldmljdGFibGUsCjE0NDc0OiAK
MTQ0NzQ6ICBQR19tbG9ja2VkLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBQR191bmNhY2hlZCwK
MTQ0NzQ6ICMgMTM0ICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogIF9fTlJf
UEFHRUZMQUdTLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBQR19jaGVja2VkID0gUEdfb3duZXJf
cHJpdl8xLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBQR19zd2FwY2FjaGUgPSBQR19vd25lcl9w
cml2XzEsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFBH
X2ZzY2FjaGUgPSBQR19wcml2YXRlXzIsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
UEdfcGlubmVkID0gUEdfb3duZXJfcHJpdl8xLAoxNDQ3NDogCjE0NDc0OiAgUEdfc2F2ZXBpbm5l
ZCA9IFBHX2RpcnR5LAoxNDQ3NDogCjE0NDc0OiAgUEdfZm9yZWlnbiA9IFBHX293bmVyX3ByaXZf
MSwKMTQ0NzQ6IAoxNDQ3NDogIFBHX3hlbl9yZW1hcHBlZCA9IFBHX293bmVyX3ByaXZfMSwKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgUEdfc2xvYl9mcmVlID0gUEdfcHJpdmF0ZSwKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgUEdfZG91YmxlX21hcCA9IFBHX3ByaXZhdGVfMiwKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgUEdfaXNvbGF0ZWQgPSBQR19yZWNsYWltLAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwYWdlOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qg
cGFnZSAqY29tcG91bmRfaGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGhlYWQgPSAoeyB1bmlvbiB7IHR5cGVvZihwYWdlLT5jb21wb3VuZF9oZWFk
KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHBh
Z2UtPmNvbXBvdW5kX2hlYWQpLCBfX3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91bmRfaGVhZCkp
OyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHBhZ2UtPmNvbXBvdW5kX2hlYWQpLCBf
X3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91bmRfaGVhZCkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pOwoxNDQ3NDogCjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoaGVh
ZCAmIDEpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIChzdHJ1Y3QgcGFnZSAqKSAoaGVhZCAtIDEpOwox
NDQ3NDogIHJldHVybiBwYWdlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlVGFpbChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBlb2YocGFnZS0+Y29tcG91bmRfaGVh
ZCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihw
YWdlLT5jb21wb3VuZF9oZWFkKSwgX191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQp
KTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihwYWdlLT5jb21wb3VuZF9oZWFkKSwg
X191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQpKTsgZG8geyB9IHdoaWxlICgwKTsg
X191Ll9fdmFsOyB9KSAmIDE7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VDb21wb3VuZChzdHJ1Y3QgcGFnZSAqcGFnZSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGVzdF9iaXQoUEdfaGVhZCwgJnBhZ2UtPmZsYWdzKSB8
fCBQYWdlVGFpbChwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFn
ZVBvaXNvbmVkKGNvbnN0IHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBwYWdlLT5mbGFncyA9PSAtMWw7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgcGFnZV9pbml0X3BvaXNvbihzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6
ZV90IHNpemUpCjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAjIDMxMiAiLi9pbmNsdWRlL2xpbnV4
L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
aW50IFBhZ2VMb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2xv
Y2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZUxvY2tlZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfbG9ja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25n
KSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9
KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
X19DbGVhclBhZ2VMb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfbG9j
a2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVdhaXRlcnMoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3dhaXRlcnMsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVdhaXRlcnMoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgc2V0X2JpdChQR193YWl0ZXJzLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVk
KHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVdhaXRlcnMoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
Y2xlYXJfYml0KFBHX3dhaXRlcnMsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VUYWls
KHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkp
KSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgX19DbGVhclBhZ2VXYWl0ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xl
YXJfYml0KFBHX3dhaXRlcnMsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VUYWlsKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSBpbnQgUGFnZUVycm9yKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0
X2JpdChQR19lcnJvciwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChw
YWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5k
X2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0g
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VFcnJvcihzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2Vycm9yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBs
b25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgQ2xlYXJQYWdlRXJyb3Ioc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX2Vycm9y
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkp
KSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlRXJyb3Ioc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19lcnJvciwgJih7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRf
aGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50IFBhZ2VSZWZlcmVuY2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJl
dHVybiB0ZXN0X2JpdChQR19yZWZlcmVuY2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBT
ZXRQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3JlZmVyZW5j
ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFk
KHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVJlZmVyZW5jZWQoc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3JlZmVyZW5jZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlZmVyZW5jZWQsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNv
bXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyBfX3NldF9iaXQoUEdfcmVmZXJlbmNlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChw
YWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSBpbnQgUGFnZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQ
R19kaXJ0eSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5k
X2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZURpcnR5KHN0cnVjdCBw
YWdlICpwYWdlKSB7IHNldF9iaXQoUEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lk
IENsZWFyUGFnZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19kaXJ0eSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0U2V0UGFnZURpcnR5KHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KFBHX2RpcnR5LCAmKHsgKCh2b2lkKShzaXpl
b2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3Vu
ZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VEaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9hbmRfY2xlYXJfYml0KFBHX2RpcnR5LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIF9fQ2xlYXJQYWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQo
UEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3Vu
ZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0KMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VMUlUoc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRf
aGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgU2V0UGFnZUxSVShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2xydSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlTFJVKHN0cnVjdCBwYWdlICpwYWdl
KSB7IGNsZWFyX2JpdChQR19scnUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5m
bGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQ
YWdlTFJVKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX2xydSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsg
Y29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUFjdGl2ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBy
ZXR1cm4gdGVzdF9iaXQoUEdfYWN0aXZlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQ
YWdlQWN0aXZlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfYWN0aXZlLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
Y2xlYXJfYml0KFBHX2FjdGl2ZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNv
bmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZs
YWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBh
Z2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfYWN0aXZlLCAmKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkp
KSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZUFjdGl2ZShzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX2FjdGl2ZSwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVdvcmtpbmdzZXQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3dvcmtpbmdzZXQsICYoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hl
YWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIFNldFBhZ2VXb3JraW5nc2V0KHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdf
d29ya2luZ3NldCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBv
dW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlV29ya2luZ3Nl
dChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfd29ya2luZ3NldCwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsg
Y29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VXb3JraW5nc2V0KHN0cnVjdCBw
YWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfd29ya2luZ3NldCwgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkp
KSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVNsYWIoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgcmV0dXJuIHRlc3RfYml0KFBHX3NsYWIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAg
JiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX1Nl
dFBhZ2VTbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19zbGFiLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21w
b3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VTbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9f
Y2xlYXJfYml0KFBHX3NsYWIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRh
aWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21w
b3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3Mp
OyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlU2xv
YkZyZWUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3Nsb2JfZnJlZSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpw
YWdlKSB7IF9fc2V0X2JpdChQR19zbG9iX2ZyZWUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0p
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X0NsZWFyUGFnZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX3Ns
b2JfZnJlZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkp
KSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQo
cGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VDaGVja2VkKHN0cnVj
dCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19jaGVja2VkLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7
IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VDaGVja2Vk
KHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfY2hlY2tlZCwgJih7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VDaGVja2Vk
KHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19jaGVja2VkLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIGludCBQYWdlUGlubmVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQ
R19waW5uZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZUNvbXBvdW5kKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgU2V0UGFnZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3Bp
bm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkp
KSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBDbGVhclBhZ2VQaW5uZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3Bp
bm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkp
KSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgVGVzdFNldFBhZ2VQaW5uZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJu
IHRlc3RfYW5kX3NldF9iaXQoUEdfcGlubmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgx
ICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVBpbm5lZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3Bpbm5lZCwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+Zmxh
Z3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdl
U2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfc2F2ZXBp
bm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlQ29tcG91bmQocGFnZSkp
KSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBTZXRQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3Nh
dmVwaW5uZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgQ2xlYXJQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9i
aXQoUEdfc2F2ZXBpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29t
cG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChw
YWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9OwoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUZvcmVpZ24oc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIHRlc3RfYml0KFBHX2ZvcmVpZ24sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZUZvcmVpZ24oc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgc2V0X2JpdChQR19mb3JlaWduLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZUZvcmVpZ24oc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgY2xlYXJfYml0KFBHX2ZvcmVpZ24sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfTsKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VYZW5SZW1hcHBlZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfeGVuX3JlbWFwcGVkLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VYZW5S
ZW1hcHBlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3hlbl9yZW1hcHBlZCwgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVh
clBhZ2VYZW5SZW1hcHBlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfeGVuX3Jl
bWFwcGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlWGVuUmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR194ZW5fcmVtYXBwZWQsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdz
KTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlUmVzZXJ2ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3Jl
c2VydmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIFNldFBhZ2VSZXNlcnZlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3Jl
c2VydmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIENsZWFyUGFnZVJlc2VydmVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQ
R19yZXNlcnZlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQo
cGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlUmVzZXJ2ZWQoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgX19jbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX1NldFBhZ2VSZXNlcnZlZChzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVN3YXBCYWNr
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3N3YXBiYWNrZWQsICYo
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7
IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlU3dhcEJhY2tlZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBzZXRfYml0KFBHX3N3YXBiYWNrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9
KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVh
clBhZ2VTd2FwQmFja2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19zd2FwYmFj
a2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZVN3YXBCYWNr
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfc3dhcGJhY2tlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29t
cG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlU3dhcEJhY2tlZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfc3dhcGJhY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdl
KTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50
IFBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19wcml2
YXRlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBw
YWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBTZXRQYWdlUHJpdmF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3ByaXZhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENs
ZWFyUGFnZVByaXZhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3ByaXZhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9f
U2V0UGFnZVByaXZhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19zZXRfYml0KFBHX3ByaXZhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7
IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgX19DbGVhclBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0
KFBHX3ByaXZhdGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdl
KSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgaW50IFBhZ2VQcml2YXRlMihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9iaXQoUEdfcHJpdmF0ZV8yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlUHJpdmF0ZTIoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
c2V0X2JpdChQR19wcml2YXRlXzIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVByaXZhdGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7
IGNsZWFyX2JpdChQR19wcml2YXRlXzIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBpbnQgVGVzdFNldFBhZ2VQcml2YXRlMihzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChQR19wcml2YXRlXzIsICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0g
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVByaXZh
dGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfcHJp
dmF0ZV8yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIGludCBQYWdlT3duZXJQcml2MShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVz
dF9iaXQoUEdfb3duZXJfcHJpdl8xLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlT3duZXJQcml2MShzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyBzZXRfYml0KFBHX293bmVyX3ByaXZfMSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlT3duZXJQcml2MShzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyBjbGVhcl9iaXQoUEdfb3duZXJfcHJpdl8xLCAmKHsgKCh2b2lkKShzaXplb2YoKCBs
b25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAg
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZU93bmVy
UHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19v
d25lcl9wcml2XzEsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdl
KSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQ
YWdlV3JpdGViYWNrKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR193cml0
ZWJhY2ssICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZVRhaWwocGFnZSkpKSkp
OyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBh
Z2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAg
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdFNldFBhZ2VXcml0ZWJh
Y2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQoUEdfd3JpdGVi
YWNrLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlV3JpdGViYWNrKHN0cnVj
dCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfd3JpdGViYWNrLCAm
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZU1hcHBlZFRvRGlzayhzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfbWFwcGVkdG9kaXNrLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9o
ZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgU2V0UGFnZU1hcHBlZFRvRGlzayhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRf
Yml0KFBHX21hcHBlZHRvZGlzaywgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdl
VGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZU1h
cHBlZFRvRGlzayhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfbWFwcGVkdG9kaXNr
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkp
KSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VSZWNs
YWltKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19yZWNsYWltLCAmKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVJlY2xhaW0oc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
c2V0X2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VU
YWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29t
cG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdz
KTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlUmVj
bGFpbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVjbGFpbSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6ICBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUmVjbGFpbShzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBQYWdlUmVhZGFoZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJl
dHVybiB0ZXN0X2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VSZWFkYWhlYWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgc2V0X2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVJlYWRhaGVhZChzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVjbGFpbSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBh
Z2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAgc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVJlYWRhaGVh
ZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlY2xh
aW0sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkp
KTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIyAzNzYgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZs
YWdzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgUGFnZUhpZ2hNZW0oY29uc3Qgc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIDA7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBTZXRQYWdlSGlnaE1lbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgQ2xlYXJQYWdlSGlnaE1lbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQ
YWdlU3dhcENhY2hlKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAg
cGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gUGFnZVN3
YXBCYWNrZWQocGFnZSkgJiYgdGVzdF9iaXQoUEdfc3dhcGNhY2hlLCAmcGFnZS0+ZmxhZ3MpOwox
NDQ3NDogCjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgU2V0UGFnZVN3YXBDYWNoZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3N3
YXBjYWNoZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkp
KSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQo
cGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VTd2FwQ2Fj
aGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3N3YXBjYWNoZSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFn
ZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR191bmV2
aWN0YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5k
X2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVVuZXZpY3RhYmxlKHN0
cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfdW5ldmljdGFibGUsICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBv
dW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIENsZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNs
ZWFyX2JpdChQR191bmV2aWN0YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSkt
PmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBfX0NsZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0
KFBHX3VuZXZpY3RhYmxlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQo
Y29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3Mp
OyB9CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENs
ZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9j
bGVhcl9iaXQoUEdfdW5ldmljdGFibGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0p
LT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBQYWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdl
VGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VNbG9j
a2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRf
aGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIENsZWFyUGFnZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJf
Yml0KFBHX21sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwo
cGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3Vu
ZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9
CjE0NDc0OiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQ
YWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX2NsZWFyX2JpdChQR19tbG9ja2VkLCAm
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoxNDQ3NDogIHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RTZXRQYWdlTWxvY2tlZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChQR19tbG9ja2VkLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21w
b3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX21sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQo
cGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IGludCBQYWdlVW5jYWNoZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBH
X3VuY2FjaGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChw
YWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkp
KTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSB2b2lkIFNldFBhZ2VVbmNhY2hlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBH
X3VuY2FjaGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChw
YWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkp
KTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSB2b2lkIENsZWFyUGFnZVVuY2FjaGVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2Jp
dChQR191bmNhY2hlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91
bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdl
KSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAjIDQxOSAiLi9pbmNsdWRlL2xp
bnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlSFdQb2lzb24oY29uc3Qgc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIDA7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBTZXRQYWdlSFdQb2lzb24oc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIENsZWFyUGFnZUhXUG9pc29uKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0K
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgc2V0X2h3cG9pc29uX2ZyZWVfYnVkZHlfcGFnZShzdHJ1Y3QgcGFnZSAqcGFn
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDU2ICIuL2lu
Y2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSBpbnQgUGFnZU1hcHBpbmdGbGFncyhzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBsb25nKXBhZ2UtPm1hcHBpbmcgJiAoMHgxIHwg
MHgyKSkgIT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSBpbnQgUGFnZUFub24oc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0
NDc0OiAgcGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CjE0NDc0OiAgcmV0dXJuICgodW5zaWdu
ZWQgbG9uZylwYWdlLT5tYXBwaW5nICYgMHgxKSAhPSAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBfX1BhZ2VNb3ZhYmxlKHN0
cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVkIGxvbmcp
cGFnZS0+bWFwcGluZyAmICgweDEgfCAweDIpKSA9PQoxNDQ3NDogICAgIDB4MjsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgNDgwICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUtzbShzdHJ1Y3QgcGFnZSAqcGFn
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwYWdlID0gY29tcG91bmRfaGVhZChwYWdlKTsKMTQ0NzQ6ICBy
ZXR1cm4gKCh1bnNpZ25lZCBsb25nKXBhZ2UtPm1hcHBpbmcgJiAoMHgxIHwgMHgyKSkgPT0KMTQ0
NzQ6ICAgICAoMHgxIHwgMHgyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogdTY0IHN0YWJsZV9wYWdlX2ZsYWdzKHN0cnVjdCBwYWdlICpwYWdlKTsKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IFBhZ2VVcHRvZGF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpbnQgcmV0OwoxNDQ3NDogIHBhZ2UgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwoxNDQ3
NDogIHJldCA9IHRlc3RfYml0KFBHX3VwdG9kYXRlLCAmKHBhZ2UpLT5mbGFncyk7CjE0NDc0OiAj
IDUwNSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6ICBpZiAocmV0KQoxNDQ3
NDogICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZVVwdG9kYXRlKHN0cnVjdCBwYWdlICpwYWdl
KQoxNDQ3NDogewoxNDQ3NDogICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVRhaWwocGFnZSkp
KSkpOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0
OiAgX19zZXRfYml0KFBHX3VwdG9kYXRlLCAmcGFnZS0+ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVVw
dG9kYXRlKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoUGFnZVRhaWwocGFnZSkpKSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwoxNDQ3NDogIHNldF9iaXQoUEdfdXB0b2RhdGUsICZwYWdlLT5mbGFncyk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVh
clBhZ2VVcHRvZGF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfdXB0b2RhdGUs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6
IGludCB0ZXN0X2NsZWFyX3BhZ2Vfd3JpdGViYWNrKHN0cnVjdCBwYWdlICpwYWdlKTsKMTQ0NzQ6
IGludCBfX3Rlc3Rfc2V0X3BhZ2Vfd3JpdGViYWNrKHN0cnVjdCBwYWdlICpwYWdlLCBib29sIGtl
ZXBfd3JpdGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBzZXRfcGFnZV93cml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0
OiB7CjE0NDc0OiAgX190ZXN0X3NldF9wYWdlX3dyaXRlYmFjayhwYWdlLCBmYWxzZSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X3BhZ2Vfd3JpdGViYWNrX2tlZXB3cml0ZShzdHJ1
Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3Rlc3Rfc2V0X3BhZ2Vfd3JpdGViYWNr
KHBhZ2UsIHRydWUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBQYWdlSGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
dGVzdF9iaXQoUEdfaGVhZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVk
KHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQgX19TZXRQYWdlSGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9i
aXQoUEdfaGVhZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2Up
KSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgX19DbGVhclBhZ2VIZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0
KFBHX2hlYWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIENsZWFyUGFnZUhlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX2hl
YWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBh
Z2U7IH0pLT5mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIHNldF9jb21wb3VuZF9oZWFkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1
Y3QgcGFnZSAqaGVhZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihwYWdlLT5j
b21wb3VuZF9oZWFkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5
cGVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSkgKCh1bnNpZ25lZCBsb25nKWhlYWQgKyAxKSB9OyBf
X3dyaXRlX29uY2Vfc2l6ZSgmKHBhZ2UtPmNvbXBvdW5kX2hlYWQpLCBfX3UuX19jLCBzaXplb2Yo
cGFnZS0+Y29tcG91bmRfaGVhZCkpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgY2xlYXJfY29tcG91
bmRfaGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5
cGVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAu
X192YWwgPSAoIHR5cGVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSkgKDApIH07IF9fd3JpdGVfb25j
ZV9zaXplKCYocGFnZS0+Y29tcG91bmRfaGVhZCksIF9fdS5fX2MsIHNpemVvZihwYWdlLT5jb21w
b3VuZF9oZWFkKSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBDbGVhclBhZ2VDb21wb3VuZChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFQYWdlSGVhZChwYWdlKSksIDApKSBk
byB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIg
IlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIg
IjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIl
YzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1
Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAi
XHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3Bh
Z2UtZmxhZ3MuaCIpLCAiaSIgKDU2NSksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdf
ZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIu
cHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0
IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgxNCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsg
X19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGls
ZSAoMCk7CjE0NDc0OiAgQ2xlYXJQYWdlSGVhZChwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgUGFnZUh1Z2Uoc3RydWN0IHBh
Z2UgKnBhZ2UpOwoxNDQ3NDogaW50IFBhZ2VIZWFkSHVnZShzdHJ1Y3QgcGFnZSAqcGFnZSk7CjE0
NDc0OiBib29sIHBhZ2VfaHVnZV9hY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpOwoxNDQ3NDogIyA1
OTYgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFnZVRyYW5zSHVn
ZShzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VUYWlsKHBhZ2UpKSkpKTsKMTQ0NzQ6ICByZXR1cm4gUGFnZUhlYWQocGFnZSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgUGFnZVRyYW5zQ29tcG91bmQoc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIFBhZ2VDb21wb3VuZChwYWdlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjMzICIu
L2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFBhZ2VUcmFuc0NvbXBvdW5k
TWFwKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBwYWdlICpoZWFk
OwoxNDQ3NDogCjE0NDc0OiAgaWYgKCFQYWdlVHJhbnNDb21wb3VuZChwYWdlKSkKMTQ0NzQ6ICAg
cmV0dXJuIDA7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoUGFnZUFub24ocGFnZSkpCjE0NDc0OiAgIHJl
dHVybiBhdG9taWNfcmVhZCgmcGFnZS0+X21hcGNvdW50KSA8IDA7CjE0NDc0OiAKMTQ0NzQ6ICBo
ZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBhdG9taWNf
cmVhZCgmcGFnZS0+X21hcGNvdW50KSA9PQoxNDQ3NDogICAgICAgICBhdG9taWNfcmVhZChjb21w
b3VuZF9tYXBjb3VudF9wdHIoaGVhZCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFBhZ2VUcmFuc1RhaWwoc3RydWN0
IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIFBhZ2VUYWlsKHBhZ2UpOwoxNDQ3
NDogfQoxNDQ3NDogIyA2NzIgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgUGFnZURvdWJsZU1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gUGFnZUhlYWQocGFnZSkgJiYgdGVzdF9iaXQoUEdfZG91YmxlX21hcCwgJnBhZ2VbMV0uZmxh
Z3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VEb3VibGVNYXAoc3RydWN0
IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFn
ZUhlYWQocGFnZSkpKSkpOwoxNDQ3NDogIHNldF9iaXQoUEdfZG91YmxlX21hcCwgJnBhZ2VbMV0u
ZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIENsZWFyUGFnZURvdWJsZU1hcChz
dHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KCFQYWdlSGVhZChwYWdlKSkpKSk7CjE0NDc0OiAgY2xlYXJfYml0KFBHX2RvdWJsZV9tYXAsICZw
YWdlWzFdLmZsYWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBUZXN0U2V0UGFnZURvdWJsZU1hcChz
dHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KCFQYWdlSGVhZChwYWdlKSkpKSk7CjE0NDc0OiAgcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQoUEdf
ZG91YmxlX21hcCwgJnBhZ2VbMV0uZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
VGVzdENsZWFyUGFnZURvdWJsZU1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlSGVhZChwYWdlKSkpKSk7CjE0NDc0OiAgcmV0
dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19kb3VibGVfbWFwLCAmcGFnZVsxXS5mbGFncyk7CjE0
NDc0OiB9CjE0NDc0OiAjIDczMSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBwYWdlX2hhc190eXBlKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAoaW50KXBhZ2UtPnBhZ2VfdHlwZSA8IC0xMjg7CjE0NDc0OiB9CjE0NDc0OiAjIDc1NiAi
Li9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50IFBhZ2VCdWRkeShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4g
KChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDB4MDAwMDAwODApKSA9PSAweGYwMDAw
MDAwKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdl
QnVkZHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghKChwYWdl
LT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDApKSA9PSAweGYwMDAwMDAwKSkpKSk7IHBhZ2Ut
PnBhZ2VfdHlwZSAmPSB+MHgwMDAwMDA4MDsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgX19DbGVhclBhZ2VCdWRkeShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKCFQYWdlQnVkZHkocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0g
MHgwMDAwMDA4MDsgfQoxNDQ3NDogIyA3NjUgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlT2ZmbGlu
ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAw
MDAwMCB8IDB4MDAwMDAxMDApKSA9PSAweGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlT2ZmbGluZShzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAw
IHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMTAw
OyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZU9m
ZmxpbmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZU9m
ZmxpbmUocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0gMHgwMDAwMDEwMDsgfQoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VLbWVtY2coc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuICgocGFnZS0+cGFnZV90eXBlICYgKDB4ZjAwMDAwMDAgfCAweDAwMDAwMjAwKSkgPT0gMHhm
MDAwMDAwMCk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0
UGFnZUttZW1jZyhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEo
KHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsg
cGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMjAwOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUttZW1jZyhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlS21lbWNnKHBhZ2UpKSkpKTsgcGFnZS0+cGFnZV90
eXBlIHw9IDB4MDAwMDAyMDA7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVRhYmxlKHN0cnVj
dCBwYWdlICpwYWdlKSB7IHJldHVybiAoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwg
MHgwMDAwMDQwMCkpID09IDB4ZjAwMDAwMDApOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgdm9pZCBfX1NldFBhZ2VUYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09
IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwNDAwOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZVRhYmxlKHN0cnVj
dCBwYWdlICpwYWdlKSB7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VUYWJsZShwYWdlKSkp
KSk7IHBhZ2UtPnBhZ2VfdHlwZSB8PSAweDAwMDAwNDAwOyB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50
IFBhZ2VHdWFyZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUg
JiAoMHhmMDAwMDAwMCB8IDB4MDAwMDA4MDApKSA9PSAweGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlR3VhcmQoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhm
MDAwMDAwMCB8IDApKSA9PSAweGYwMDAwMDAwKSkpKSk7IHBhZ2UtPnBhZ2VfdHlwZSAmPSB+MHgw
MDAwMDgwMDsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19DbGVh
clBhZ2VHdWFyZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQ
YWdlR3VhcmQocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0gMHgwMDAwMDgwMDsgfQoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gYm9vbCBpc19mcmVlX2J1ZGR5X3BhZ2Uoc3RydWN0IHBhZ2UgKnBh
Z2UpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlSXNvbGF0ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2lz
b2xhdGVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBfX1NldFBhZ2VJc29sYXRlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdf
aXNvbGF0ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIF9fQ2xlYXJQYWdlSXNvbGF0ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9i
aXQoUEdfaXNvbGF0ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChw
YWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFBhZ2VTbGFiUGZtZW1hbGxvYyhzdHJ1Y3QgcGFnZSAq
cGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlU2xhYihw
YWdlKSkpKSk7CjE0NDc0OiAgcmV0dXJuIFBhZ2VBY3RpdmUocGFnZSk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgU2V0UGFnZVNsYWJQZm1lbWFsbG9jKHN0cnVjdCBwYWdlICpwYWdlKQox
NDQ3NDogewoxNDQ3NDogICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VTbGFiKHBhZ2UpKSkp
KTsKMTQ0NzQ6ICBTZXRQYWdlQWN0aXZlKHBhZ2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fQ2xlYXJQYWdlU2xhYlBmbWVtYWxsb2Moc3RydWN0IHBhZ2UgKnBhZ2UpCjE0NDc0OiB7
CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZVNsYWIocGFnZSkpKSkpOwoxNDQ3
NDogIF9fQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IENsZWFyUGFnZVNsYWJQZm1lbWFsbG9jKHN0cnVjdCBwYWdlICpwYWdlKQoxNDQ3NDogewoxNDQ3
NDogICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VTbGFiKHBhZ2UpKSkpKTsKMTQ0NzQ6ICBD
bGVhclBhZ2VBY3RpdmUocGFnZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDg1MiAiLi9pbmNsdWRlL2xp
bnV4L3BhZ2UtZmxhZ3MuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwYWdlX2hhc19wcml2YXRlKHN0cnVjdCBwYWdl
ICpwYWdlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhIShwYWdlLT5mbGFncyAmICgxVUwgPDwg
UEdfcHJpdmF0ZSB8IDFVTCA8PCBQR19wcml2YXRlXzIpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjMg
Ii4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogIyA0MSAiLi9pbmNsdWRlL2xpbnV4
L21tem9uZS5oIgoxNDQ3NDogZW51bSBtaWdyYXRldHlwZSB7CjE0NDc0OiAgTUlHUkFURV9VTk1P
VkFCTEUsCjE0NDc0OiAgTUlHUkFURV9NT1ZBQkxFLAoxNDQ3NDogIE1JR1JBVEVfUkVDTEFJTUFC
TEUsCjE0NDc0OiAgTUlHUkFURV9QQ1BUWVBFUywKMTQ0NzQ6ICBNSUdSQVRFX0hJR0hBVE9NSUMg
PSBNSUdSQVRFX1BDUFRZUEVTLAoxNDQ3NDogIyA2NCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5o
IgoxNDQ3NDogIE1JR1JBVEVfSVNPTEFURSwKMTQ0NzQ6IAoxNDQ3NDogIE1JR1JBVEVfVFlQRVMK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25z
dCBtaWdyYXRldHlwZV9uYW1lc1tNSUdSQVRFX1RZUEVTXTsKMTQ0NzQ6ICMgODAgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfbWlncmF0ZV9tb3ZhYmxlKGludCBtdCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmFsc2UgfHwgbXQgPT0gTUlHUkFURV9NT1ZBQkxFOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgcGFnZV9ncm91cF9ieV9tb2JpbGl0eV9kaXNhYmxlZDsKMTQ0NzQ6ICMgOTggIi4v
aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0cnVjdCBmcmVlX2FyZWEgewoxNDQ3NDog
IHN0cnVjdCBsaXN0X2hlYWQgZnJlZV9saXN0W01JR1JBVEVfVFlQRVNdOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgbnJfZnJlZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
ZGRfdG9fZnJlZV9hcmVhKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgZnJlZV9hcmVhICphcmVh
LAoxNDQ3NDogICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgbGlzdF9h
ZGQoJnBhZ2UtPmxydSwgJmFyZWEtPmZyZWVfbGlzdFttaWdyYXRldHlwZV0pOwoxNDQ3NDogIGFy
ZWEtPm5yX2ZyZWUrKzsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFkZF90
b19mcmVlX2FyZWFfdGFpbChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGZyZWVfYXJlYSAqYXJl
YSwKMTQ0NzQ6ICAgICAgIGludCBtaWdyYXRldHlwZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsaXN0X2Fk
ZF90YWlsKCZwYWdlLT5scnUsICZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKMTQ0NzQ6
ICBhcmVhLT5ucl9mcmVlKys7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWFfcmFuZG9tKHN0
cnVjdCBwYWdlICpwYWdlLAoxNDQ3NDogICBzdHJ1Y3QgZnJlZV9hcmVhICphcmVhLCBpbnQgbWln
cmF0ZXR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgYWRkX3RvX2ZyZWVfYXJlYShwYWdlLCBhcmVhLCBt
aWdyYXRldHlwZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IG1vdmVfdG9fZnJlZV9hcmVhKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgZnJlZV9hcmVhICph
cmVhLAoxNDQ3NDogICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgbGlz
dF9tb3ZlKCZwYWdlLT5scnUsICZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKmdldF9wYWdlX2Zyb21fZnJlZV9hcmVhKHN0
cnVjdCBmcmVlX2FyZWEgKmFyZWEsCjE0NDc0OiAgICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWRfXyA9ICgmYXJl
YS0+ZnJlZV9saXN0W21pZ3JhdGV0eXBlXSk7IHN0cnVjdCBsaXN0X2hlYWQgKnBvc19fID0gKHsg
dW5pb24geyB0eXBlb2YoaGVhZF9fLT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBp
ZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGhlYWRfXy0+bmV4dCksIF9fdS5fX2MsIHNpemVvZiho
ZWFkX18tPm5leHQpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihoZWFkX18tPm5l
eHQpLCBfX3UuX19jLCBzaXplb2YoaGVhZF9fLT5uZXh0KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9f
dS5fX3ZhbDsgfSk7IHBvc19fICE9IGhlYWRfXyA/ICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICop
KHBvc19fKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDEodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFp
bmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKHBvc19fKSksIHR5cGVvZigoKHN0cnVjdCBwYWdlICopMCktPmxydSkpICYmICFfX2J1aWx0
aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHBvc19fKSksIHR5cGVvZih2b2lkKSkpKSkg
X19jb21waWxldGltZV9hc3NlcnRfMTQxKCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCBwYWdlICop
KF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFnZSwgbHJ1KSkpOyB9KSA6ICgo
dm9pZCAqKTApOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBkZWxfcGFnZV9mcm9tX2ZyZWVfYXJlYShzdHJ1Y3QgcGFnZSAqcGFn
ZSwKMTQ0NzQ6ICAgc3RydWN0IGZyZWVfYXJlYSAqYXJlYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBsaXN0
X2RlbCgmcGFnZS0+bHJ1KTsKMTQ0NzQ6ICBfX0NsZWFyUGFnZUJ1ZGR5KHBhZ2UpOwoxNDQ3NDog
ICgocGFnZSktPnByaXZhdGUgPSAoMCkpOwoxNDQ3NDogIGFyZWEtPm5yX2ZyZWUtLTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBmcmVlX2FyZWFfZW1wdHkoc3RydWN0IGZyZWVfYXJlYSAq
YXJlYSwgaW50IG1pZ3JhdGV0eXBlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBsaXN0X2VtcHR5
KCZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHBnbGlzdF9kYXRhOwoxNDQ3NDogIyAxNjggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKMTQ0NzQ6IHN0cnVjdCB6b25lX3BhZGRpbmcgewoxNDQ3NDogIGNoYXIgeFswXTsKMTQ0NzQ6
IH0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMSA8PCAoNikpKSk7CjE0NDc0OiAjIDE5MCAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogZW51bSB6b25lX3N0YXRfaXRlbSB7CjE0
NDc0OiAKMTQ0NzQ6ICBOUl9GUkVFX1BBR0VTLAoxNDQ3NDogIE5SX1pPTkVfTFJVX0JBU0UsCjE0
NDc0OiAgTlJfWk9ORV9JTkFDVElWRV9BTk9OID0gTlJfWk9ORV9MUlVfQkFTRSwKMTQ0NzQ6ICBO
Ul9aT05FX0FDVElWRV9BTk9OLAoxNDQ3NDogIE5SX1pPTkVfSU5BQ1RJVkVfRklMRSwKMTQ0NzQ6
ICBOUl9aT05FX0FDVElWRV9GSUxFLAoxNDQ3NDogIE5SX1pPTkVfVU5FVklDVEFCTEUsCjE0NDc0
OiAgTlJfWk9ORV9XUklURV9QRU5ESU5HLAoxNDQ3NDogIE5SX01MT0NLLAoxNDQ3NDogIE5SX1BB
R0VUQUJMRSwKMTQ0NzQ6ICBOUl9LRVJORUxfU1RBQ0tfS0IsCjE0NDc0OiAKMTQ0NzQ6ICBOUl9C
T1VOQ0UsCjE0NDc0OiAKMTQ0NzQ6ICBOUl9aU1BBR0VTLAoxNDQ3NDogCjE0NDc0OiAgTlJfRlJF
RV9DTUFfUEFHRVMsCjE0NDc0OiAgTlJfVk1fWk9ORV9TVEFUX0lURU1TIH07CjE0NDc0OiAKMTQ0
NzQ6IGVudW0gbm9kZV9zdGF0X2l0ZW0gewoxNDQ3NDogIE5SX0xSVV9CQVNFLAoxNDQ3NDogIE5S
X0lOQUNUSVZFX0FOT04gPSBOUl9MUlVfQkFTRSwKMTQ0NzQ6ICBOUl9BQ1RJVkVfQU5PTiwKMTQ0
NzQ6ICBOUl9JTkFDVElWRV9GSUxFLAoxNDQ3NDogIE5SX0FDVElWRV9GSUxFLAoxNDQ3NDogIE5S
X1VORVZJQ1RBQkxFLAoxNDQ3NDogIE5SX1NMQUJfUkVDTEFJTUFCTEUsCjE0NDc0OiAgTlJfU0xB
Ql9VTlJFQ0xBSU1BQkxFLAoxNDQ3NDogIE5SX0lTT0xBVEVEX0FOT04sCjE0NDc0OiAgTlJfSVNP
TEFURURfRklMRSwKMTQ0NzQ6ICBXT1JLSU5HU0VUX05PREVTLAoxNDQ3NDogIFdPUktJTkdTRVRf
UkVGQVVMVCwKMTQ0NzQ6ICBXT1JLSU5HU0VUX0FDVElWQVRFLAoxNDQ3NDogIFdPUktJTkdTRVRf
UkVTVE9SRSwKMTQ0NzQ6ICBXT1JLSU5HU0VUX05PREVSRUNMQUlNLAoxNDQ3NDogIE5SX0FOT05f
TUFQUEVELAoxNDQ3NDogIE5SX0ZJTEVfTUFQUEVELAoxNDQ3NDogCjE0NDc0OiAgTlJfRklMRV9Q
QUdFUywKMTQ0NzQ6ICBOUl9GSUxFX0RJUlRZLAoxNDQ3NDogIE5SX1dSSVRFQkFDSywKMTQ0NzQ6
ICBOUl9XUklURUJBQ0tfVEVNUCwKMTQ0NzQ6ICBOUl9TSE1FTSwKMTQ0NzQ6ICBOUl9TSE1FTV9U
SFBTLAoxNDQ3NDogIE5SX1NITUVNX1BNRE1BUFBFRCwKMTQ0NzQ6ICBOUl9GSUxFX1RIUFMsCjE0
NDc0OiAgTlJfRklMRV9QTURNQVBQRUQsCjE0NDc0OiAgTlJfQU5PTl9USFBTLAoxNDQ3NDogIE5S
X1VOU1RBQkxFX05GUywKMTQ0NzQ6ICBOUl9WTVNDQU5fV1JJVEUsCjE0NDc0OiAgTlJfVk1TQ0FO
X0lNTUVESUFURSwKMTQ0NzQ6ICBOUl9ESVJUSUVELAoxNDQ3NDogIE5SX1dSSVRURU4sCjE0NDc0
OiAgTlJfS0VSTkVMX01JU0NfUkVDTEFJTUFCTEUsCjE0NDc0OiAgTlJfVk1fTk9ERV9TVEFUX0lU
RU1TCjE0NDc0OiB9OwoxNDQ3NDogIyAyNjIgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0
NzQ6IGVudW0gbHJ1X2xpc3QgewoxNDQ3NDogIExSVV9JTkFDVElWRV9BTk9OID0gMCwKMTQ0NzQ6
ICBMUlVfQUNUSVZFX0FOT04gPSAwICsgMSwKMTQ0NzQ6ICBMUlVfSU5BQ1RJVkVfRklMRSA9IDAg
KyAyLAoxNDQ3NDogIExSVV9BQ1RJVkVfRklMRSA9IDAgKyAyICsgMSwKMTQ0NzQ6ICBMUlVfVU5F
VklDVEFCTEUsCjE0NDc0OiAgTlJfTFJVX0xJU1RTCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfZmlsZV9scnUoZW51bSBscnVf
bGlzdCBscnUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChscnUgPT0gTFJVX0lOQUNUSVZFX0ZJ
TEUgfHwgbHJ1ID09IExSVV9BQ1RJVkVfRklMRSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgaXNfYWN0aXZlX2xydShlbnVtIGxydV9saXN0IGxydSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKGxydSA9PSBMUlVfQUNUSVZFX0FOT04gfHwgbHJ1ID09IExSVV9BQ1RJVkVfRklMRSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB6b25lX3JlY2xhaW1fc3RhdCB7CjE0NDc0OiAj
IDI5NCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcmVj
ZW50X3JvdGF0ZWRbMl07CjE0NDc0OiAgdW5zaWduZWQgbG9uZyByZWNlbnRfc2Nhbm5lZFsyXTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gbHJ1dmVjX2ZsYWdzIHsKMTQ0NzQ6ICBMUlVW
RUNfQ09OR0VTVEVELAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBscnV2ZWMgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdHNbTlJfTFJVX0xJU1RT
XTsKMTQ0NzQ6ICBzdHJ1Y3Qgem9uZV9yZWNsYWltX3N0YXQgcmVjbGFpbV9zdGF0OwoxNDQ3NDog
CjE0NDc0OiAgYXRvbWljX2xvbmdfdCBpbmFjdGl2ZV9hZ2U7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHJlZmF1bHRzOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsK
MTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQ7CjE0NDc0OiAKMTQ0NzQ6
IH07CjE0NDc0OiAjIDMyNiAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogdHlwZWRl
ZiB1bnNpZ25lZCBpc29sYXRlX21vZGVfdDsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB6b25lX3dhdGVy
bWFya3MgewoxNDQ3NDogIFdNQVJLX01JTiwKMTQ0NzQ6ICBXTUFSS19MT1csCjE0NDc0OiAgV01B
UktfSElHSCwKMTQ0NzQ6ICBOUl9XTUFSSwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwZXJfY3B1X3BhZ2VzIHsK
MTQ0NzQ6ICBpbnQgY291bnQ7CjE0NDc0OiAgaW50IGhpZ2g7CjE0NDc0OiAgaW50IGJhdGNoOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3RzW01JR1JBVEVfUENQ
VFlQRVNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBlcl9jcHVfcGFnZXNldCB7
CjE0NDc0OiAgc3RydWN0IHBlcl9jcHVfcGFnZXMgcGNwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzOCBzdGF0X3RocmVzaG9sZDsKMTQ0NzQ6ICBzOCB2
bV9zdGF0X2RpZmZbTlJfVk1fWk9ORV9TVEFUX0lURU1TXTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHBlcl9jcHVfbm9kZXN0YXQgewoxNDQ3NDogIHM4IHN0YXRfdGhy
ZXNob2xkOwoxNDQ3NDogIHM4IHZtX25vZGVfc3RhdF9kaWZmW05SX1ZNX05PREVfU1RBVF9JVEVN
U107CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB6b25lX3R5
cGUgewoxNDQ3NDogIyA0MDAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICBaT05F
X0RNQSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgWk9ORV9ETUEzMiwKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBaT05FX05PUk1BTCwKMTQ0
NzQ6ICMgNDIyICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiAgWk9ORV9NT1ZBQkxF
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fTUFYX05SX1pPTkVTCjE0NDc0OiAK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgem9uZSB7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBfd2F0ZXJtYXJrW05S
X1dNQVJLXTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHdhdGVybWFya19ib29zdDsKMTQ0NzQ6IAox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbnJfcmVzZXJ2ZWRfaGlnaGF0b21pYzsKMTQ0NzQ6ICMgNDUw
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiAgbG9uZyBsb3dtZW1fcmVzZXJ2ZVs0
XTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwZ2xpc3Rf
ZGF0YSAqem9uZV9wZ2RhdDsKMTQ0NzQ6ICBzdHJ1Y3QgcGVyX2NwdV9wYWdlc2V0ICpwYWdlc2V0
OwoxNDQ3NDogIyA0NjcgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHpvbmVfc3RhcnRfcGZuOwoxNDQ3NDogIyA1MDQgIi4vaW5jbHVkZS9saW51eC9tbXpv
bmUuaCIKMTQ0NzQ6ICBhdG9taWNfbG9uZ190IG1hbmFnZWRfcGFnZXM7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBzcGFubmVkX3BhZ2VzOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcHJlc2VudF9wYWdl
czsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IGNoYXIgKm5hbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IG5yX2lzb2xhdGVfcGFnZWJsb2NrOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgc2VxbG9ja190IHNwYW5fc2VxbG9jazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50
IGluaXRpYWxpemVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgem9uZV9wYWRkaW5n
IF9wYWQxXzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZyZWVfYXJlYSBmcmVlX2Fy
ZWFbMTFdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBzcGlubG9ja190IGxvY2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCB6b25lX3BhZGRpbmcgX3BhZDJfOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcGVyY3B1X2RyaWZ0
X21hcms7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBjb21w
YWN0X2NhY2hlZF9mcmVlX3BmbjsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgY29tcGFj
dF9jYWNoZWRfbWlncmF0ZV9wZm5bMl07CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBjb21wYWN0X2lu
aXRfbWlncmF0ZV9wZm47CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBjb21wYWN0X2luaXRfZnJlZV9w
Zm47CjE0NDc0OiAjIDU2MyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogIHVuc2ln
bmVkIGludCBjb21wYWN0X2NvbnNpZGVyZWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNvbXBhY3Rf
ZGVmZXJfc2hpZnQ7CjE0NDc0OiAgaW50IGNvbXBhY3Rfb3JkZXJfZmFpbGVkOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBjb21wYWN0X2Jsb2Nrc2tpcF9mbHVz
aDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBjb250aWd1b3VzOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IHpvbmVfcGFkZGluZyBfcGFkM187CjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfbG9u
Z190IHZtX3N0YXRbTlJfVk1fWk9ORV9TVEFUX0lURU1TXTsKMTQ0NzQ6ICBhdG9taWNfbG9uZ190
IHZtX251bWFfc3RhdFswXTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMSA8
PCAoNikpKSk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGdkYXRfZmxhZ3MgewoxNDQ3NDogIFBHREFU
X0RJUlRZLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFBHREFUX1dSSVRFQkFDSywK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgUEdEQVRfUkVDTEFJTV9MT0NLRUQsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIHpvbmVfZmxhZ3MgewoxNDQ3NDogIFpPTkVfQk9PU1RFRF9XQVRF
Uk1BUkssCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyB6b25lX21hbmFnZWRfcGFnZXMoc3RydWN0IHpvbmUgKnpvbmUpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKWF0b21pY19sb25nX3JlYWQoJnpvbmUtPm1hbmFnZWRf
cGFnZXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHpvbmVfZW5kX3Bm
bihjb25zdCBzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gem9uZS0+
em9uZV9zdGFydF9wZm4gKyB6b25lLT5zcGFubmVkX3BhZ2VzOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIHpvbmVfc3BhbnNfcGZuKGNvbnN0IHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25l
ZCBsb25nIHBmbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gem9uZS0+em9uZV9zdGFydF9wZm4g
PD0gcGZuICYmIHBmbiA8IHpvbmVfZW5kX3Bmbih6b25lKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCB6b25lX2lzX2luaXRpYWxpemVkKHN0cnVjdCB6b25lICp6b25lKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiB6b25lLT5pbml0aWFsaXplZDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCB6b25lX2lzX2VtcHR5KHN0cnVjdCB6b25lICp6b25lKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiB6b25lLT5zcGFubmVkX3BhZ2VzID09IDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB6b25lX2ludGVyc2VjdHMoc3RydWN0
IHpvbmUgKnpvbmUsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBs
b25nIG5yX3BhZ2VzKQoxNDQ3NDogewoxNDQ3NDogIGlmICh6b25lX2lzX2VtcHR5KHpvbmUpKQox
NDQ3NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgaWYgKHN0YXJ0X3BmbiA+PSB6b25lX2VuZF9w
Zm4oem9uZSkgfHwKMTQ0NzQ6ICAgICAgc3RhcnRfcGZuICsgbnJfcGFnZXMgPD0gem9uZS0+em9u
ZV9zdGFydF9wZm4pCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogIyA2NDkgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIK
MTQ0NzQ6IGVudW0gewoxNDQ3NDogIFpPTkVMSVNUX0ZBTExCQUNLLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgTUFYX1pPTkVM
SVNUUwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3Qgem9uZXJlZiB7CjE0NDc0OiAgc3RydWN0IHpvbmUgKnpvbmU7CjE0NDc0OiAg
aW50IHpvbmVfaWR4OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNjg0ICIuL2luY2x1ZGUvbGludXgvbW16
b25lLmgiCjE0NDc0OiBzdHJ1Y3Qgem9uZWxpc3QgewoxNDQ3NDogIHN0cnVjdCB6b25lcmVmIF96
b25lcmVmc1soKDEgPDwgMCkgKiA0KSArIDFdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcGFnZSAqbWVtX21hcDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZWZlcnJlZF9zcGxpdCB7CjE0NDc0OiAgc3BpbmxvY2tf
dCBzcGxpdF9xdWV1ZV9sb2NrOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc3BsaXRfcXVldWU7
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzcGxpdF9xdWV1ZV9sZW47CjE0NDc0OiB9OwoxNDQ3NDog
IyA3MDkgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0cnVjdCBib290bWVtX2Rh
dGE7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBwZ2xpc3RfZGF0YSB7CjE0NDc0OiAgc3RydWN0IHpv
bmUgbm9kZV96b25lc1s0XTsKMTQ0NzQ6ICBzdHJ1Y3Qgem9uZWxpc3Qgbm9kZV96b25lbGlzdHNb
TUFYX1pPTkVMSVNUU107CjE0NDc0OiAgaW50IG5yX3pvbmVzOwoxNDQ3NDogIyA3MzEgIi4vaW5j
bHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6ICBzcGlubG9ja190IG5vZGVfc2l6ZV9sb2NrOwox
NDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBub2RlX3N0YXJ0X3BmbjsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIG5vZGVfcHJlc2VudF9wYWdlczsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG5vZGVf
c3Bhbm5lZF9wYWdlczsKMTQ0NzQ6IAoxNDQ3NDogIGludCBub2RlX2lkOwoxNDQ3NDogIHdhaXRf
cXVldWVfaGVhZF90IGtzd2FwZF93YWl0OwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHBmbWVt
YWxsb2Nfd2FpdDsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmtzd2FwZDsKMTQ0NzQ6IAox
NDQ3NDogIGludCBrc3dhcGRfb3JkZXI7CjE0NDc0OiAgZW51bSB6b25lX3R5cGUga3N3YXBkX2Ns
YXNzem9uZV9pZHg7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQga3N3YXBkX2ZhaWx1cmVzOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBpbnQga2NvbXBhY3RkX21heF9vcmRlcjsKMTQ0NzQ6ICBlbnVtIHpv
bmVfdHlwZSBrY29tcGFjdGRfY2xhc3N6b25lX2lkeDsKMTQ0NzQ6ICB3YWl0X3F1ZXVlX2hlYWRf
dCBrY29tcGFjdGRfd2FpdDsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmtjb21wYWN0ZDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
bG9uZyB0b3RhbHJlc2VydmVfcGFnZXM7CjE0NDc0OiAjIDc2OCAiLi9pbmNsdWRlL2xpbnV4L21t
em9uZS5oIgoxNDQ3NDogIHN0cnVjdCB6b25lX3BhZGRpbmcgX3BhZDFfOwoxNDQ3NDogIHNwaW5s
b2NrX3QgbHJ1X2xvY2s7CjE0NDc0OiAjIDc4MCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgox
NDQ3NDogIHN0cnVjdCBkZWZlcnJlZF9zcGxpdCBkZWZlcnJlZF9zcGxpdF9xdWV1ZTsKMTQ0NzQ6
ICMgNzkwICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiAgc3RydWN0IGxydXZlYyBf
X2xydXZlYzsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3Qgem9uZV9wYWRkaW5nIF9wYWQyXzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IHBlcl9jcHVfbm9kZXN0YXQgKnBlcl9jcHVfbm9kZXN0YXRzOwoxNDQ3NDogIGF0b21p
Y19sb25nX3Qgdm1fc3RhdFtOUl9WTV9OT0RFX1NUQVRfSVRFTVNdOwoxNDQ3NDogfSBwZ19kYXRh
X3Q7CjE0NDc0OiAjIDgxMyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWdu
ZWQgbG9uZyBwZ2RhdF9lbmRfcGZuKHBnX2RhdGFfdCAqcGdkYXQpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHBnZGF0LT5ub2RlX3N0YXJ0X3BmbiArIHBnZGF0LT5ub2RlX3NwYW5uZWRfcGFnZXM7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcGdkYXRfaXNfZW1wdHkocGdfZGF0YV90ICpw
Z2RhdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIXBnZGF0LT5ub2RlX3N0YXJ0X3BmbiAmJiAh
cGdkYXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMQoxNDQ3NDog
IyA2ICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIgMgoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9ub3RpZmllci5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUv
bGludXgvbm90aWZpZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIgMQox
NDQ3NDogIyAyMiAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRl
L2xpbnV4L3JjdV9zZWdjYmxpc3QuaCIgMQoxNDQ3NDogIyAyMSAiLi9pbmNsdWRlL2xpbnV4L3Jj
dV9zZWdjYmxpc3QuaCIKMTQ0NzQ6IHN0cnVjdCByY3VfY2JsaXN0IHsKMTQ0NzQ6ICBzdHJ1Y3Qg
Y2FsbGJhY2tfaGVhZCAqaGVhZDsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqKnRhaWw7
CjE0NDc0OiAgbG9uZyBsZW47CjE0NDc0OiB9OwoxNDQ3NDogIyA2NiAiLi9pbmNsdWRlL2xpbnV4
L3JjdV9zZWdjYmxpc3QuaCIKMTQ0NzQ6IHN0cnVjdCByY3Vfc2VnY2JsaXN0IHsKMTQ0NzQ6ICBz
dHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZDsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAq
KnRhaWxzWzRdOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZ3Bfc2VxWzRdOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIGxvbmcgbGVuOwoxNDQ3NDogCjE0NDc0OiAgdTggZW5hYmxlZDsK
MTQ0NzQ6ICB1OCBvZmZsb2FkZWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAyMyAiLi9pbmNsdWRlL2xp
bnV4L3NyY3UuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3JjdV9zdHJ1Y3Q7CjE0NDc0OiAj
IDQxICIuL2luY2x1ZGUvbGludXgvc3JjdS5oIgoxNDQ3NDogaW50IGluaXRfc3JjdV9zdHJ1Y3Qo
c3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zcmN1
dHJlZS5oIiAxCjE0NDc0OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvc3JjdXRyZWUuaCIKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3JjdV9ub2RlX3RyZWUuaCIgMQoxNDQ3NDogIyAxNSAiLi9p
bmNsdWRlL2xpbnV4L3NyY3V0cmVlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
c3JjdV9ub2RlOwoxNDQ3NDogc3RydWN0IHNyY3Vfc3RydWN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzcmN1X2RhdGEgewoxNDQ3NDogCjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBzcmN1X2xvY2tfY291bnRbMl07CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBzcmN1X3VubG9ja19jb3VudFsyXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3Bpbmxv
Y2tfdCBsb2NrIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDEgPDwgKDYpKSkpOwoxNDQ3NDog
IHN0cnVjdCByY3Vfc2VnY2JsaXN0IHNyY3VfY2JsaXN0OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
c3JjdV9ncF9zZXFfbmVlZGVkOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9ncF9zZXFfbmVl
ZGVkX2V4cDsKMTQ0NzQ6ICBib29sIHNyY3VfY2JsaXN0X2ludm9raW5nOwoxNDQ3NDogIHN0cnVj
dCB0aW1lcl9saXN0IGRlbGF5X3dvcms7CjE0NDc0OiAgc3RydWN0IHdvcmtfc3RydWN0IHdvcms7
CjE0NDc0OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgc3JjdV9iYXJyaWVyX2hlYWQ7CjE0NDc0OiAg
c3RydWN0IHNyY3Vfbm9kZSAqbXlub2RlOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZ3JwbWFzazsK
MTQ0NzQ6IAoxNDQ3NDogIGludCBjcHU7CjE0NDc0OiAgc3RydWN0IHNyY3Vfc3RydWN0ICpzc3A7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
c3JjdV9ub2RlIHsKMTQ0NzQ6ICBzcGlubG9ja190IGxvY2s7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBzcmN1X2hhdmVfY2JzWzRdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHNyY3VfZGF0YV9oYXZlX2Nic1s0XTsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3Jj
dV9ncF9zZXFfbmVlZGVkX2V4cDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3JjdV9ub2RlICpzcmN1X3BhcmVu
dDsKMTQ0NzQ6ICBpbnQgZ3JwbG87CjE0NDc0OiAgaW50IGdycGhpOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNyY3Vfc3RydWN0IHsKMTQ0
NzQ6ICBzdHJ1Y3Qgc3JjdV9ub2RlIG5vZGVbMV07CjE0NDc0OiAgc3RydWN0IHNyY3Vfbm9kZSAq
bGV2ZWxbMSArIDFdOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG11dGV4IHNyY3VfY2JfbXV0ZXg7
CjE0NDc0OiAgc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIHN0cnVjdCBtdXRleCBzcmN1X2dwX211
dGV4OwoxNDQ3NDogIHVuc2lnbmVkIGludCBzcmN1X2lkeDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IHNyY3VfZ3Bfc2VxOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9ncF9zZXFfbmVlZGVkOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9ncF9zZXFfbmVlZGVkX2V4cDsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNyY3VfbGFzdF9ncF9lbmQ7CjE0NDc0OiAgc3RydWN0IHNyY3VfZGF0YSAqc2Rh
OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3JjdV9iYXJyaWVyX3NlcTsKMTQ0NzQ6ICBzdHJ1Y3Qg
bXV0ZXggc3JjdV9iYXJyaWVyX211dGV4OwoxNDQ3NDogIHN0cnVjdCBjb21wbGV0aW9uIHNyY3Vf
YmFycmllcl9jb21wbGV0aW9uOwoxNDQ3NDogCjE0NDc0OiAgYXRvbWljX3Qgc3JjdV9iYXJyaWVy
X2NwdV9jbnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkZWxheWVkX3dvcmsgd29y
azsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDEzNyAiLi9pbmNs
dWRlL2xpbnV4L3NyY3V0cmVlLmgiCjE0NDc0OiB2b2lkIHN5bmNocm9uaXplX3NyY3VfZXhwZWRp
dGVkKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6IHZvaWQgc3JjdV9iYXJyaWVyKHN0
cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6IHZvaWQgc3JjdV90b3J0dXJlX3N0YXRzX3By
aW50KHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwLCBjaGFyICp0dCwgY2hhciAqdGYpOwoxNDQ3NDog
IyA1MCAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGNhbGxfc3JjdShzdHJ1
Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCwgc3RydWN0IGNhbGxiYWNrX2hlYWQgKmhlYWQsCjE0NDc0OiAg
IHZvaWQgKCpmdW5jKShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkpOwoxNDQ3NDogdm9pZCBj
bGVhbnVwX3NyY3Vfc3RydWN0KHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6IGludCBf
X3NyY3VfcmVhZF9sb2NrKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKSA7CjE0NDc0OiB2b2lkIF9f
c3JjdV9yZWFkX3VubG9jayhzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCwgaW50IGlkeCkgOwoxNDQ3
NDogdm9pZCBzeW5jaHJvbml6ZV9zcmN1KHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKMTQ0NzQ6
ICMgOTEgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3JjdV9yZWFkX2xvY2tf
aGVsZChjb25zdCBzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gMTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTUwICIuL2luY2x1ZGUvbGludXgvc3JjdS5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IHNyY3VfcmVhZF9sb2NrKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKQoxNDQ3NDogewox
NDQ3NDogIGludCByZXR2YWw7CjE0NDc0OiAKMTQ0NzQ6ICByZXR2YWwgPSBfX3NyY3VfcmVhZF9s
b2NrKHNzcCk7CjE0NDc0OiAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1cm4gcmV0dmFs
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IHNyY3VfcmVhZF9sb2NrX25vdHJhY2Uoc3RydWN0
IHNyY3Vfc3RydWN0ICpzc3ApCjE0NDc0OiB7CjE0NDc0OiAgaW50IHJldHZhbDsKMTQ0NzQ6IAox
NDQ3NDogIHJldHZhbCA9IF9fc3JjdV9yZWFkX2xvY2soc3NwKTsKMTQ0NzQ6ICByZXR1cm4gcmV0
dmFsOwoxNDQ3NDogfQoxNDQ3NDogIyAxNzYgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHNyY3VfcmVhZF91bmxvY2soc3RydWN0IHNyY3Vfc3RydWN0ICpzc3AsIGludCBpZHgp
CjE0NDc0OiAKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGlkeCAm
IH4weDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsg
ZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4i
ICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIg
IiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2Vu
dHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5v
cmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvc3JjdS5o
IiksICJpIiAoMTc5KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE1KSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3
NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgX19zcmN1X3JlYWRfdW5sb2NrKHNzcCwgaWR4
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKHN0
cnVjdCBzcmN1X3N0cnVjdCAqc3NwLCBpbnQgaWR4KQoxNDQ3NDogewoxNDQ3NDogIF9fc3JjdV9y
ZWFkX3VubG9jayhzc3AsIGlkeCk7CjE0NDc0OiB9CjE0NDc0OiAjIDIwMCAiLi9pbmNsdWRlL2xp
bnV4L3NyY3UuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc21wX21iX19hZnRlcl9zcmN1X3JlYWRfdW5sb2NrKHZv
aWQpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51
eC9ub3RpZmllci5oIiAyCjE0NDc0OiAjIDQ5ICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIuaCIK
MTQ0NzQ6IHN0cnVjdCBub3RpZmllcl9ibG9jazsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBpbnQg
KCpub3RpZmllcl9mbl90KShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAoxNDQ3NDogICAgdW5z
aWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgbm90
aWZpZXJfYmxvY2sgewoxNDQ3NDogIG5vdGlmaWVyX2ZuX3Qgbm90aWZpZXJfY2FsbDsKMTQ0NzQ6
ICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5leHQ7CjE0NDc0OiAgaW50IHByaW9yaXR5OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkIHsKMTQ0NzQ6
ICBzcGlubG9ja190IGxvY2s7CjE0NDc0OiAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpoZWFkOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJsb2NraW5nX25vdGlmaWVyX2hlYWQgewox
NDQ3NDogIHN0cnVjdCByd19zZW1hcGhvcmUgcndzZW07CjE0NDc0OiAgc3RydWN0IG5vdGlmaWVy
X2Jsb2NrICpoZWFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJhd19ub3RpZmll
cl9oZWFkIHsKMTQ0NzQ6ICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKmhlYWQ7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
bXV0ZXggbXV0ZXg7CjE0NDc0OiAgc3RydWN0IHNyY3Vfc3RydWN0IHNyY3U7CjE0NDc0OiAgc3Ry
dWN0IG5vdGlmaWVyX2Jsb2NrICpoZWFkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTMgIi4vaW5jbHVk
ZS9saW51eC9ub3RpZmllci5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc3JjdV9pbml0X25vdGlmaWVy
X2hlYWQoc3RydWN0IHNyY3Vfbm90aWZpZXJfaGVhZCAqbmgpOwoxNDQ3NDogIyAxNDQgIi4vaW5j
bHVkZS9saW51eC9ub3RpZmllci5oIgoxNDQ3NDogZXh0ZXJuIGludCBhdG9taWNfbm90aWZpZXJf
Y2hhaW5fcmVnaXN0ZXIoc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAg
c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0OiBleHRlcm4gaW50IGJsb2NraW5nX25v
dGlmaWVyX2NoYWluX3JlZ2lzdGVyKHN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFkICpuaCwK
MTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0OiBleHRlcm4gaW50IHJh
d19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcihzdHJ1Y3QgcmF3X25vdGlmaWVyX2hlYWQgKm5oLAox
NDQ3NDogICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc3Jj
dV9ub3RpZmllcl9jaGFpbl9yZWdpc3RlcihzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkICpuaCwK
MTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBpbnQgYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoc3RydWN0IGF0b21pY19ub3Rp
Zmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CjE0NDc0
OiBleHRlcm4gaW50IGJsb2NraW5nX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoc3RydWN0IGJs
b2NraW5nX25vdGlmaWVyX2hlYWQgKm5oLAoxNDQ3NDogICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg
Km5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcmF3X25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoc3Ry
dWN0IHJhd19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuYik7CjE0NDc0OiBleHRlcm4gaW50IHNyY3Vfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3Rlcihz
dHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgc3RydWN0IG5vdGlmaWVyX2Js
b2NrICpuYik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYXRvbWljX25vdGlmaWVyX2NhbGxf
Y2hhaW4oc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICAgdW5zaWduZWQg
bG9uZyB2YWwsIHZvaWQgKnYpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0b21pY19ub3RpZmllcl9j
YWxsX2NoYWluKHN0cnVjdCBhdG9taWNfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2NhbGxzKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbihzdHJ1Y3QgYmxvY2tp
bmdfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICp2
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVj
dCBibG9ja2luZ19ub3RpZmllcl9oZWFkICpuaCwKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHZhbCwg
dm9pZCAqdiwgaW50IG5yX3RvX2NhbGwsIGludCAqbnJfY2FsbHMpOwoxNDQ3NDogZXh0ZXJuIGlu
dCByYXdfbm90aWZpZXJfY2FsbF9jaGFpbihzdHJ1Y3QgcmF3X25vdGlmaWVyX2hlYWQgKm5oLAox
NDQ3NDogICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CjE0NDc0OiBleHRlcm4gaW50IF9f
cmF3X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IHJhd19ub3RpZmllcl9oZWFkICpuaCwKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdiwgaW50IG5yX3RvX2NhbGwsIGludCAqbnJf
Y2FsbHMpOwoxNDQ3NDogZXh0ZXJuIGludCBzcmN1X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0
IHNyY3Vfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lk
ICp2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19zcmN1X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0
IHNyY3Vfbm90aWZpZXJfaGVhZCAqbmgsCjE0NDc0OiAgdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQg
KnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2NhbGxzKTsKMTQ0NzQ6ICMgMTkwICIuL2luY2x1
ZGUvbGludXgvbm90aWZpZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBub3RpZmllcl9mcm9tX2Vycm5vKGludCBl
cnIpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGVycikKMTQ0NzQ6ICAgcmV0dXJuIDB4ODAwMCB8ICgw
eDAwMDEgLSBlcnIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIDB4MDAwMTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbm90aWZpZXJfdG9fZXJybm8oaW50IHJldCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXQgJj0gfjB4ODAwMDsKMTQ0NzQ6ICByZXR1cm4gcmV0ID4gMHgwMDAxID8g
MHgwMDAxIC0gcmV0IDogMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjM0ICIuL2luY2x1ZGUvbGludXgv
bm90aWZpZXIuaCIKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgYmxvY2tpbmdfbm90aWZpZXJfaGVhZCBy
ZWJvb3Rfbm90aWZpZXJfbGlzdDsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9o
b3RwbHVnLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0
cnVjdCB6b25lOwoxNDQ3NDogc3RydWN0IHBnbGlzdF9kYXRhOwoxNDQ3NDogc3RydWN0IG1lbV9z
ZWN0aW9uOwoxNDQ3NDogc3RydWN0IG1lbW9yeV9ibG9jazsKMTQ0NzQ6IHN0cnVjdCByZXNvdXJj
ZTsKMTQ0NzQ6IHN0cnVjdCB2bWVtX2FsdG1hcDsKMTQ0NzQ6ICMgNDAgIi4vaW5jbHVkZS9saW51
eC9tZW1vcnlfaG90cGx1Zy5oIgoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTUVNT1JZX0hPVFBMVUdf
TUlOX0JPT1RNRU1fVFlQRSA9IDEyLAoxNDQ3NDogIFNFQ1RJT05fSU5GTyA9IE1FTU9SWV9IT1RQ
TFVHX01JTl9CT09UTUVNX1RZUEUsCjE0NDc0OiAgTUlYX1NFQ1RJT05fSU5GTywKMTQ0NzQ6ICBO
T0RFX0lORk8sCjE0NDc0OiAgTUVNT1JZX0hPVFBMVUdfTUFYX0JPT1RNRU1fVFlQRSA9IE5PREVf
SU5GTywKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTU1P
UF9PRkZMSU5FID0gLTEsCjE0NDc0OiAgTU1PUF9PTkxJTkVfS0VFUCwKMTQ0NzQ6ICBNTU9QX09O
TElORV9LRVJORUwsCjE0NDc0OiAgTU1PUF9PTkxJTkVfTU9WQUJMRSwKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bWhwX3Jlc3RyaWN0aW9ucyB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsKMTQ0NzQ6ICBz
dHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1hcDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDczICIuL2luY2x1
ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHpvbmVfc3Bhbl9zZXFi
ZWdpbihzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcmVhZF9zZXFi
ZWdpbigmem9uZS0+c3Bhbl9zZXFsb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB6b25lX3NwYW5f
c2VxcmV0cnkoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGl2KQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiByZWFkX3NlcXJldHJ5KCZ6b25lLT5zcGFuX3NlcWxvY2ssIGl2KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgem9uZV9zcGFuX3dyaXRlbG9jayhzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICB3cml0ZV9zZXFsb2NrKCZ6b25lLT5zcGFuX3NlcWxvY2spOwoxNDQ3NDogfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB6b25lX3NwYW5fd3JpdGV1bmxvY2soc3RydWN0IHpvbmUgKnpvbmUpCjE0NDc0
OiB7CjE0NDc0OiAgd3JpdGVfc2VxdW5sb2NrKCZ6b25lLT5zcGFuX3NlcWxvY2spOwoxNDQ3NDog
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCB6b25lX3NlcWxvY2tfaW5pdChzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBkbyB7IF9fc2VxY291bnRfaW5pdCgmKCZ6b25lLT5zcGFuX3NlcWxvY2spLT5z
ZXFjb3VudCwgKCh2b2lkICopMCksICgodm9pZCAqKTApKTsgZG8geyBzcGlubG9ja19jaGVjaygm
KCZ6b25lLT5zcGFuX3NlcWxvY2spLT5sb2NrKTsgZG8geyAqKCYoJigmem9uZS0+c3Bhbl9zZXFs
b2NrKS0+bG9jayktPnJsb2NrKSA9IChyYXdfc3BpbmxvY2tfdCkgeyAucmF3X2xvY2sgPSB7IHsg
LnZhbCA9IHsgKDApIH0gfSB9LCB9OyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUg
KDApOwoxNDQ3NDogfQoxNDQ3NDogZXh0ZXJuIGludCB6b25lX2dyb3dfZnJlZV9saXN0cyhzdHJ1
Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9uZyBuZXdfbnJfcGFnZXMpOwoxNDQ3NDogZXh0ZXJu
IGludCB6b25lX2dyb3dfd2FpdHF1ZXVlcyhzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9u
ZyBucl9wYWdlcyk7CjE0NDc0OiBleHRlcm4gaW50IGFkZF9vbmVfaGlnaHBhZ2Uoc3RydWN0IHBh
Z2UgKnBhZ2UsIGludCBwZm4sIGludCBiYWRfcHBybyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBp
bnQgb25saW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2Vz
LAoxNDQ3NDogICAgaW50IG9ubGluZV90eXBlLCBpbnQgbmlkKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3Qgem9uZSAqdGVzdF9wYWdlc19pbl9hX3pvbmUodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCjE0
NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVk
IGxvbmcgX19vZmZsaW5lX2lzb2xhdGVkX3BhZ2VzKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAox
NDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRl
ZiB2b2lkICgqb25saW5lX3BhZ2VfY2FsbGJhY2tfdCkoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2ln
bmVkIGludCBvcmRlcik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGdlbmVyaWNfb25saW5l
X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcik7CjE0NDc0OiBleHRl
cm4gaW50IHNldF9vbmxpbmVfcGFnZV9jYWxsYmFjayhvbmxpbmVfcGFnZV9jYWxsYmFja190IGNh
bGxiYWNrKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcmVzdG9yZV9vbmxpbmVfcGFnZV9jYWxsYmFjayhv
bmxpbmVfcGFnZV9jYWxsYmFja190IGNhbGxiYWNrKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGlu
dCB0cnlfb25saW5lX25vZGUoaW50IG5pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYXJj
aF9hZGRfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUsCjE0NDc0OiAgICBzdHJ1
Y3QgbWhwX3Jlc3RyaWN0aW9ucyAqcmVzdHJpY3Rpb25zKTsKMTQ0NzQ6IGV4dGVybiB1NjQgbWF4
X21lbV9zaXplOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBtZW1ocF9hdXRvX29ubGluZTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgbW92YWJsZV9ub2RlX2VuYWJsZWQ7CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIG1vdmFibGVfbm9kZV9pc19lbmFibGVkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IG1vdmFibGVfbm9kZV9lbmFibGVkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCBhcmNoX3JlbW92ZV9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSwKMTQ0NzQ6
ICAgICAgICAgICBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1hcCk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBfX3JlbW92ZV9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBu
cl9wYWdlcywKMTQ0NzQ6ICAgICAgIHN0cnVjdCB2bWVtX2FsdG1hcCAqYWx0bWFwKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYWRkX3BhZ2VzKGludCBuaWQsIHVuc2lnbmVk
IGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAoxNDQ3NDogICAgICAgICAg
c3RydWN0IG1ocF9yZXN0cmljdGlvbnMgKnJlc3RyaWN0aW9ucyk7CjE0NDc0OiAjIDE0MCAiLi9p
bmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCjE0NDc0OiBpbnQgYWRkX3BhZ2VzKGludCBu
aWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAoxNDQ3
NDogICAgICAgIHN0cnVjdCBtaHBfcmVzdHJpY3Rpb25zICpyZXN0cmljdGlvbnMpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtZW1vcnlfYWRkX3Bo
eXNhZGRyX3RvX25pZCh1NjQgc3RhcnQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0
OiB9CjE0NDc0OiAjIDE5OSAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwZ19kYXRhX3QgKmdlbmVyaWNfYWxsb2Nfbm9kZWRhdGEoaW50IG5pZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwg
MHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5s
b25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9u
ZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAi
XHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFn
c1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xp
bnV4L21lbW9yeV9ob3RwbHVnLmgiKSwgImkiICgyMDEpLCAiaSIgKDApLCAiaSIgKHNpemVvZihz
dHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVj
MDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVj
MGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMTYpKTsgfSk7IGFzbSB2b2xh
dGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgcmV0dXJuICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBnZW5l
cmljX2ZyZWVfbm9kZWRhdGEocGdfZGF0YV90ICpwZ2RhdCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgYXJjaF9yZWZyZXNoX25vZGVkYXRhKGludCBuaWQsIHBnX2RhdGFfdCAqcGdkYXQp
CjE0NDc0OiB7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHJlZ2lzdGVyX3BhZ2VfYm9vdG1lbV9pbmZvX25vZGUo
c3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgcHV0X3BhZ2VfYm9vdG1lbShzdHJ1Y3QgcGFn
ZSAqcGFnZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBnZXRfcGFnZV9ib290bWVtKHVuc2lnbmVkIGxv
bmcgaW5nbywgc3RydWN0IHBhZ2UgKnBhZ2UsCjE0NDc0OiAgICAgICAgIHVuc2lnbmVkIGxvbmcg
dHlwZSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2V0X29ubGluZV9tZW1zKHZvaWQpOwoxNDQ3NDog
dm9pZCBwdXRfb25saW5lX21lbXModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgbWVtX2hvdHBs
dWdfYmVnaW4odm9pZCk7CjE0NDc0OiB2b2lkIG1lbV9ob3RwbHVnX2RvbmUodm9pZCk7CjE0NDc0
OiAjIDI4MyAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQoxNDQ3NDog
dm9pZCBwZ2RhdF9yZXNpemVfbG9jayhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LCB1bnNpZ25l
ZCBsb25nICpmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9u
ZyBfX2R1bW15OyB0eXBlb2YoKmZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZf
X2R1bW15Mik7IDE7IH0pOyAqZmxhZ3MgPSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHNwaW5sb2Nr
X2NoZWNrKCZwZ2RhdC0+bm9kZV9zaXplX2xvY2spKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDAp
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkKMTQ0NzQ6IHZvaWQgcGdkYXRfcmVzaXplX3VubG9jayhzdHJ1Y3Qg
cGdsaXN0X2RhdGEgKnBnZGF0LCB1bnNpZ25lZCBsb25nICpmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6
ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RhdC0+bm9kZV9zaXplX2xvY2ssICpmbGFncyk7
CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKQoxNDQ3NDogdm9pZCBwZ2RhdF9yZXNpemVfaW5pdChzdHJ1Y3QgcGds
aXN0X2RhdGEgKnBnZGF0KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgc3BpbmxvY2tfY2hlY2soJnBn
ZGF0LT5ub2RlX3NpemVfbG9jayk7IGRvIHsgKigmKCZwZ2RhdC0+bm9kZV9zaXplX2xvY2spLT5y
bG9jaykgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJhd19sb2NrID0geyB7IC52YWwgPSB7ICgwKSB9
IH0gfSwgfTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogIyAzMDkg
Ii4vaW5jbHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oIgoxNDQ3NDogZXh0ZXJuIGJvb2wgaXNf
bWVtX3NlY3Rpb25fcmVtb3ZhYmxlKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5y
X3BhZ2VzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHRyeV9vZmZsaW5lX25vZGUoaW50IG5pZCk7CjE0
NDc0OiBleHRlcm4gaW50IG9mZmxpbmVfcGFnZXModW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVu
c2lnbmVkIGxvbmcgbnJfcGFnZXMpOwoxNDQ3NDogZXh0ZXJuIGludCByZW1vdmVfbWVtb3J5KGlu
dCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19yZW1vdmVf
bWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwoxNDQ3NDogIyAzMzcgIi4vaW5j
bHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0X3pvbmVf
Y29udGlndW91cyhzdHJ1Y3Qgem9uZSAqem9uZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBjbGVhcl96
b25lX2NvbnRpZ3VvdXMoc3RydWN0IHpvbmUgKnpvbmUpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLnJlZi50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX25vaW5saW5lX18pKSBmcmVlX2FyZWFfaW5pdF9jb3JlX2hvdHBsdWcoaW50IG5pZCk7
CjE0NDc0OiBleHRlcm4gaW50IF9fYWRkX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2NCBz
aXplKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWRkX21lbW9yeShpbnQgbmlkLCB1NjQgc3RhcnQsIHU2
NCBzaXplKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWRkX21lbW9yeV9yZXNvdXJjZShpbnQgbmlkLCBz
dHJ1Y3QgcmVzb3VyY2UgKnJlc291cmNlKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIG1vdmVfcGZuX3Jh
bmdlX3RvX3pvbmUoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAox
NDQ3NDogICB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFsdG1h
cCk7CjE0NDc0OiBleHRlcm4gdm9pZCByZW1vdmVfcGZuX3JhbmdlX2Zyb21fem9uZShzdHJ1Y3Qg
em9uZSAqem9uZSwKMTQ0NzQ6ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCjE0
NDc0OiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwoxNDQ3NDogZXh0ZXJuIGJv
b2wgaXNfbWVtYmxvY2tfb2ZmbGluZWQoc3RydWN0IG1lbW9yeV9ibG9jayAqbWVtKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgc3BhcnNlX2FkZF9zZWN0aW9uKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgcGZu
LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBzdHJ1Y3Qgdm1lbV9hbHRtYXAgKmFs
dG1hcCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzcGFyc2VfcmVtb3ZlX3NlY3Rpb24oc3RydWN0IG1l
bV9zZWN0aW9uICptcywKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcg
bnJfcGFnZXMsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbWFwX29mZnNldCwgc3RydWN0IHZtZW1f
YWx0bWFwICphbHRtYXApOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwYWdlICpzcGFyc2VfZGVjb2Rl
X21lbV9tYXAodW5zaWduZWQgbG9uZyBjb2RlZF9tZW1fbWFwLAoxNDQ3NDogICAgICAgIHVuc2ln
bmVkIGxvbmcgcG51bSk7CjE0NDc0OiBleHRlcm4gYm9vbCBhbGxvd19vbmxpbmVfcGZuX3Jhbmdl
KGludCBuaWQsIHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAoxNDQ3
NDogICBpbnQgb25saW5lX3R5cGUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB6b25lICp6b25lX2Zv
cl9wZm5fcmFuZ2UoaW50IG9ubGluZV90eXBlLCBpbnQgbmlkLCB1bnNpZ25lZCBzdGFydF9wZm4s
CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwoxNDQ3NDogIyA4MjQgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIgMgoxNDQ3NDogCjE0NDc0OiB2b2lkIGJ1aWxkX2FsbF96b25lbGlz
dHMocGdfZGF0YV90ICpwZ2RhdCk7CjE0NDc0OiB2b2lkIHdha2V1cF9rc3dhcGQoc3RydWN0IHpv
bmUgKnpvbmUsIGdmcF90IGdmcF9tYXNrLCBpbnQgb3JkZXIsCjE0NDc0OiAgICAgIGVudW0gem9u
ZV90eXBlIGNsYXNzem9uZV9pZHgpOwoxNDQ3NDogYm9vbCBfX3pvbmVfd2F0ZXJtYXJrX29rKHN0
cnVjdCB6b25lICp6LCB1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2lnbmVkIGxvbmcgbWFyaywKMTQ0
NzQ6ICAgICBpbnQgY2xhc3N6b25lX2lkeCwgdW5zaWduZWQgaW50IGFsbG9jX2ZsYWdzLAoxNDQ3
NDogICAgIGxvbmcgZnJlZV9wYWdlcyk7CjE0NDc0OiBib29sIHpvbmVfd2F0ZXJtYXJrX29rKHN0
cnVjdCB6b25lICp6LCB1bnNpZ25lZCBpbnQgb3JkZXIsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcg
bWFyaywgaW50IGNsYXNzem9uZV9pZHgsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBhbGxvY19mbGFn
cyk7CjE0NDc0OiBib29sIHpvbmVfd2F0ZXJtYXJrX29rX3NhZmUoc3RydWN0IHpvbmUgKnosIHVu
c2lnbmVkIGludCBvcmRlciwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBtYXJrLCBpbnQgY2xhc3N6
b25lX2lkeCk7CjE0NDc0OiBlbnVtIG1lbW1hcF9jb250ZXh0IHsKMTQ0NzQ6ICBNRU1NQVBfRUFS
TFksCjE0NDc0OiAgTUVNTUFQX0hPVFBMVUcsCjE0NDc0OiB9OwoxNDQ3NDogZXh0ZXJuIHZvaWQg
aW5pdF9jdXJyZW50bHlfZW1wdHlfem9uZShzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9u
ZyBzdGFydF9wZm4sCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBscnV2ZWNfaW5pdChzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMpOwox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGdsaXN0X2RhdGEgKmxydXZlY19wZ2RhdChzdHJ1Y3QgbHJ1
dmVjICpscnV2ZWMpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gbHJ1dmVjLT5wZ2Rh
dDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHVuc2lnbmVkIGxvbmcgbHJ1dmVjX2xydV9zaXplKHN0cnVjdCBscnV2ZWMgKmxydXZlYywgZW51
bSBscnVfbGlzdCBscnUsIGludCB6b25lX2lkeCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBtZW1vcnlfcHJlc2VudChpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBs
b25nIGVuZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
dm9pZCBtZW1ibG9ja3NfcHJlc2VudCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxvY2FsX21lbW9yeV9ub2Rl
KGludCBub2RlX2lkKSB7IHJldHVybiBub2RlX2lkOyB9OwoxNDQ3NDogIyA4ODUgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbWFuYWdlZF96b25lKHN0cnVjdCB6b25lICp6
b25lKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB6b25lX21hbmFnZWRfcGFnZXMoem9uZSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwb3B1bGF0ZWRfem9uZShzdHJ1Y3Qg
em9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gem9uZS0+cHJlc2VudF9wYWdlczsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgOTA3ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgem9uZV90b19uaWQoc3RydWN0IHpvbmUgKnpvbmUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgem9uZV9zZXRfbmlkKHN0cnVjdCB6b25l
ICp6b25lLCBpbnQgbmlkKSB7fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbW92
YWJsZV96b25lOwoxNDQ3NDogIyA5MjggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBpc19oaWdobWVtX2lkeChlbnVtIHpvbmVfdHlwZSBpZHgpCjE0NDc0OiB7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgaXNfaGlnaG1lbShzdHJ1Y3Qgem9uZSAqem9uZSkKMTQ0NzQ6IHsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGU7CjE0NDc0OiBpbnQgbWluX2ZyZWVf
a2J5dGVzX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAg
ICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBpbnQgd2F0ZXJtYXJrX2Jvb3N0
X2ZhY3Rvcl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKMTQ0NzQ6ICAg
ICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogaW50IHdhdGVybWFya19zY2Fs
ZV9mYWN0b3Jfc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAg
ICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc3lzY3Rs
X2xvd21lbV9yZXNlcnZlX3JhdGlvWzRdOwoxNDQ3NDogaW50IGxvd21lbV9yZXNlcnZlX3JhdGlv
X3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAgICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBpbnQgcGVyY3B1X3BhZ2VsaXN0X2ZyYWN0
aW9uX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAgICB2
b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBpbnQgc3lzY3RsX21pbl91bm1hcHBl
ZF9yYXRpb19zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKMTQ0NzQ6ICAg
IHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGludCBzeXNjdGxfbWluX3NsYWJf
cmF0aW9fc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICB2
b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbnVt
YV96b25lbGlzdF9vcmRlcl9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDog
ICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIGNoYXIgbnVtYV96
b25lbGlzdF9vcmRlcltdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gc3RydWN0IHBnbGlzdF9kYXRhIGNvbnRpZ19wYWdlX2RhdGE7CjE0NDc0OiAjIDk4OCAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwZ2xpc3RfZGF0
YSAqZmlyc3Rfb25saW5lX3BnZGF0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwZ2xpc3Rf
ZGF0YSAqbmV4dF9vbmxpbmVfcGdkYXQoc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCk7CjE0NDc0
OiBleHRlcm4gc3RydWN0IHpvbmUgKm5leHRfem9uZShzdHJ1Y3Qgem9uZSAqem9uZSk7CjE0NDc0
OiAjIDEwMjAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB6b25lICp6
b25lbGlzdF96b25lKHN0cnVjdCB6b25lcmVmICp6b25lcmVmKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiB6b25lcmVmLT56b25lOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgem9uZWxpc3Rf
em9uZV9pZHgoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHpvbmVyZWYtPnpvbmVfaWR4OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgem9uZWxpc3Rf
bm9kZV9pZHgoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHpvbmVfdG9fbmlkKHpvbmVyZWYtPnpvbmUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgem9uZXJlZiAqX19uZXh0X3pvbmVzX3pvbmVsaXN0KHN0cnVjdCB6b25lcmVmICp6LAoxNDQ3
NDogICAgICBlbnVtIHpvbmVfdHlwZSBoaWdoZXN0X3pvbmVpZHgsCjE0NDc0OiAgICAgIG5vZGVt
YXNrX3QgKm5vZGVzKTsKMTQ0NzQ6ICMgMTA1MSAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBzdHJ1Y3Qgem9uZXJlZiAq
bmV4dF96b25lc196b25lbGlzdChzdHJ1Y3Qgem9uZXJlZiAqeiwKMTQ0NzQ6ICAgICAgZW51bSB6
b25lX3R5cGUgaGlnaGVzdF96b25laWR4LAoxNDQ3NDogICAgICBub2RlbWFza190ICpub2RlcykK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoX19idWlsdGluX2V4cGVjdCghISghbm9kZXMgJiYgem9uZWxp
c3Rfem9uZV9pZHgoeikgPD0gaGlnaGVzdF96b25laWR4KSwgMSkpCjE0NDc0OiAgIHJldHVybiB6
OwoxNDQ3NDogIHJldHVybiBfX25leHRfem9uZXNfem9uZWxpc3QoeiwgaGlnaGVzdF96b25laWR4
LCBub2Rlcyk7CjE0NDc0OiB9CjE0NDc0OiAjIDEwNzYgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCB6b25lcmVmICpmaXJzdF96b25lc196b25lbGlzdChzdHJ1Y3Qgem9u
ZWxpc3QgKnpvbmVsaXN0LAoxNDQ3NDogICAgICBlbnVtIHpvbmVfdHlwZSBoaWdoZXN0X3pvbmVp
ZHgsCjE0NDc0OiAgICAgIG5vZGVtYXNrX3QgKm5vZGVzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBuZXh0X3pvbmVzX3pvbmVsaXN0KHpvbmVsaXN0LT5fem9uZXJlZnMsCjE0NDc0OiAgICAgICAg
aGlnaGVzdF96b25laWR4LCBub2Rlcyk7CjE0NDc0OiB9CjE0NDc0OiAjIDExNjAgIi4vaW5jbHVk
ZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcGZuX3RvX3NlY3Rpb25fbnIo
dW5zaWduZWQgbG9uZyBwZm4pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHBmbiA+PiAoMjcgLSAx
Mik7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHNlY3Rpb25fbnJfdG9fcGZuKHVuc2ln
bmVkIGxvbmcgc2VjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBzZWMgPDwgKDI3IC0gMTIpOwox
NDQ3NDogfQoxNDQ3NDogIyAxMTg3ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBz
dHJ1Y3QgbWVtX3NlY3Rpb25fdXNhZ2UgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3Vic2VjdGlv
bl9tYXBbKCgoKDFVTCA8PCAoMjcgLSAyMSkpKSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkg
LyAoKHNpemVvZihsb25nKSAqIDgpKSldOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBw
YWdlYmxvY2tfZmxhZ3NbMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHN1YnNlY3Rp
b25fbWFwX2luaXQodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpOwox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCBwYWdlX2V4dDsKMTQ0NzQ6
IHN0cnVjdCBtZW1fc2VjdGlvbiB7CjE0NDc0OiAjIDEyMTAgIi4vaW5jbHVkZS9saW51eC9tbXpv
bmUuaCIKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNlY3Rpb25fbWVtX21hcDsKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBtZW1fc2VjdGlvbl91c2FnZSAqdXNhZ2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwYWdlX2V4dCAqcGFnZV9leHQ7CjE0
NDc0OiAgdW5zaWduZWQgbG9uZyBwYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTIzOCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5o
IgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtZW1fc2VjdGlvbiAqKm1lbV9zZWN0aW9uOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nICpzZWN0aW9uX3Rv
X3VzZW1hcChzdHJ1Y3QgbWVtX3NlY3Rpb24gKm1zKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBt
cy0+dXNhZ2UtPnBhZ2VibG9ja19mbGFnczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IG1lbV9zZWN0aW9uICpfX25yX3RvX3NlY3Rpb24odW5zaWduZWQgbG9uZyBucikKMTQ0NzQ6IHsK
MTQ0NzQ6IAoxNDQ3NDogIGlmICghbWVtX3NlY3Rpb24pCjE0NDc0OiAgIHJldHVybiAoKHZvaWQg
KikwKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICghbWVtX3NlY3Rpb25bKChucikgLyAoKCgxVUwpIDw8
IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0aW9uKSkpXSkKMTQ0NzQ6ICAgcmV0dXJuICgo
dm9pZCAqKTApOwoxNDQ3NDogIHJldHVybiAmbWVtX3NlY3Rpb25bKChucikgLyAoKCgxVUwpIDw8
IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0aW9uKSkpXVtuciAmICgoKCgxVUwpIDw8IDEy
KSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0aW9uKSkgLSAxKV07CjE0NDc0OiB9CjE0NDc0OiBl
eHRlcm4gdW5zaWduZWQgbG9uZyBfX3NlY3Rpb25fbnIoc3RydWN0IG1lbV9zZWN0aW9uICptcyk7
CjE0NDc0OiBleHRlcm4gc2l6ZV90IG1lbV9zZWN0aW9uX3VzYWdlX3NpemUodm9pZCk7CjE0NDc0
OiAjIDEyODIgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwYWdlICpf
X3NlY3Rpb25fbWVtX21hcF9hZGRyKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKMTQ0NzQ6
IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG1hcCA9IHNlY3Rpb24tPnNlY3Rpb25fbWVtX21hcDsK
MTQ0NzQ6ICBtYXAgJj0gKH4oKDFVTDw8NCktMSkpOwoxNDQ3NDogIHJldHVybiAoc3RydWN0IHBh
Z2UgKiltYXA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmVzZW50X3NlY3Rpb24oc3Ry
dWN0IG1lbV9zZWN0aW9uICpzZWN0aW9uKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoc2VjdGlv
biAmJiAoc2VjdGlvbi0+c2VjdGlvbl9tZW1fbWFwICYgKDFVTDw8MCkpKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHByZXNlbnRfc2VjdGlvbl9ucih1bnNpZ25lZCBsb25nIG5yKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBwcmVzZW50X3NlY3Rpb24oX19ucl90b19zZWN0aW9uKG5yKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2YWxpZF9zZWN0aW9uKHN0cnVjdCBtZW1fc2Vj
dGlvbiAqc2VjdGlvbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rp
b24tPnNlY3Rpb25fbWVtX21hcCAmICgxVUw8PDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBlYXJseV9zZWN0aW9uKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rpb24tPnNlY3Rpb25fbWVtX21hcCAmICgx
VUw8PDMpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2YWxpZF9zZWN0aW9uX25yKHVu
c2lnbmVkIGxvbmcgbnIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHZhbGlkX3NlY3Rpb24oX19u
cl90b19zZWN0aW9uKG5yKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBvbmxpbmVfc2Vj
dGlvbihzdHJ1Y3QgbWVtX3NlY3Rpb24gKnNlY3Rpb24pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IChzZWN0aW9uICYmIChzZWN0aW9uLT5zZWN0aW9uX21lbV9tYXAgJiAoMVVMPDwyKSkpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgb25saW5lX3NlY3Rpb25fbnIodW5zaWduZWQgbG9uZyBu
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gb25saW5lX3NlY3Rpb24oX19ucl90b19zZWN0aW9u
KG5yKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBvbmxpbmVfbWVtX3Nl
Y3Rpb25zKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwox
NDQ3NDogCjE0NDc0OiB2b2lkIG9mZmxpbmVfbWVtX3NlY3Rpb25zKHVuc2lnbmVkIGxvbmcgc3Rh
cnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IG1lbV9zZWN0aW9uICpfX3Bmbl90b19zZWN0aW9uKHVuc2lnbmVkIGxvbmcg
cGZuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX25yX3RvX3NlY3Rpb24ocGZuX3RvX3NlY3Rp
b25fbnIocGZuKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25n
IF9faGlnaGVzdF9wcmVzZW50X3NlY3Rpb25fbnI7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzdWJzZWN0
aW9uX21hcF9pbmRleCh1bnNpZ25lZCBsb25nIHBmbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
KHBmbiAmIH4oKH4oKDFVTCA8PCAoMjcgLSAxMikpLTEpKSkpIC8gKDFVTCA8PCAoMjEgLSAxMikp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZm5fc2VjdGlvbl92YWxpZChz
dHJ1Y3QgbWVtX3NlY3Rpb24gKm1zLCB1bnNpZ25lZCBsb25nIHBmbikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpbnQgaWR4ID0gc3Vic2VjdGlvbl9tYXBfaW5kZXgocGZuKTsKMTQ0NzQ6IAoxNDQ3NDogIHJl
dHVybiB0ZXN0X2JpdChpZHgsIG1zLT51c2FnZS0+c3Vic2VjdGlvbl9tYXApOwoxNDQ3NDogfQox
NDQ3NDogIyAxMzU4ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGZuX3Zh
bGlkKHVuc2lnbmVkIGxvbmcgcGZuKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBtZW1fc2VjdGlv
biAqbXM7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAocGZuX3RvX3NlY3Rpb25fbnIocGZuKSA+PSAoMVVM
IDw8ICgoMCA/IDUyIDogNDYpIC0gMjcpKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgbXMg
PSBfX25yX3RvX3NlY3Rpb24ocGZuX3RvX3NlY3Rpb25fbnIocGZuKSk7CjE0NDc0OiAgaWYgKCF2
YWxpZF9zZWN0aW9uKG1zKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZWFybHlfc2VjdGlvbihtcykgfHwgcGZuX3NlY3Rp
b25fdmFsaWQobXMsIHBmbik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHBm
bl9wcmVzZW50KHVuc2lnbmVkIGxvbmcgcGZuKQoxNDQ3NDogewoxNDQ3NDogIGlmIChwZm5fdG9f
c2VjdGlvbl9ucihwZm4pID49ICgxVUwgPDwgKCgwID8gNTIgOiA0NikgLSAyNykpKQoxNDQ3NDog
ICByZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gcHJlc2VudF9zZWN0aW9uKF9fbnJfdG9fc2VjdGlv
bihwZm5fdG9fc2VjdGlvbl9ucihwZm4pKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgbmV4dF9wcmVzZW50X3NlY3Rpb25fbnIodW5zaWduZWQgbG9uZyBzZWN0aW9uX25y
KQoxNDQ3NDogewoxNDQ3NDogIHdoaWxlICgrK3NlY3Rpb25fbnIgPD0gX19oaWdoZXN0X3ByZXNl
bnRfc2VjdGlvbl9ucikgewoxNDQ3NDogICBpZiAocHJlc2VudF9zZWN0aW9uX25yKHNlY3Rpb25f
bnIpKQoxNDQ3NDogICAgcmV0dXJuIHNlY3Rpb25fbnI7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0
OiAgcmV0dXJuIC0xOwoxNDQ3NDogfQoxNDQ3NDogIyAxNDA4ICIuL2luY2x1ZGUvbGludXgvbW16
b25lLmgiCjE0NDc0OiB2b2lkIHNwYXJzZV9pbml0KHZvaWQpOwoxNDQ3NDogIyAxNDIxICIuL2lu
Y2x1ZGUvbGludXgvbW16b25lLmgiCjE0NDc0OiBzdHJ1Y3QgbW1pbml0X3Bmbm5pZF9jYWNoZSB7
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsYXN0X3N0YXJ0OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
bGFzdF9lbmQ7CjE0NDc0OiAgaW50IGxhc3RfbmlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIG1lbW9yeV9wcmVzZW50KGludCBu
aWQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKMTQ0NzQ6ICMgMTQ2
OSAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBtZW1tYXBfdmFsaWRfd2l0
aGluKHVuc2lnbmVkIGxvbmcgcGZuLAoxNDQ3NDogICAgICBzdHJ1Y3QgcGFnZSAqcGFnZSwgc3Ry
dWN0IHpvbmUgKnpvbmUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0
NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiIDEKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVk
ZS9saW51eC90b3BvbG9neS5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYXJjaF90b3Bv
bG9neS5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9hcmNoX3RvcG9sb2d5LmgiCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
c21wLmgiIDEKMTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9zbXAuaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L2xsaXN0LmgiIDEKMTQ0NzQ6ICMgNTQgIi4vaW5jbHVkZS9saW51eC9s
bGlzdC5oIgoxNDQ3NDogc3RydWN0IGxsaXN0X2hlYWQgewoxNDQ3NDogIHN0cnVjdCBsbGlzdF9u
b2RlICpmaXJzdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsbGlzdF9ub2RlIHsK
MTQ0NzQ6ICBzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV4dDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDY5ICIu
L2luY2x1ZGUvbGludXgvbGxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5pdF9sbGlzdF9oZWFkKHN0cnVj
dCBsbGlzdF9oZWFkICpsaXN0KQoxNDQ3NDogewoxNDQ3NDogIGxpc3QtPmZpcnN0ID0gKCh2b2lk
ICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE4NyAiLi9pbmNsdWRlL2xpbnV4L2xsaXN0LmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGxsaXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiAoeyB1bmlvbiB7IHR5cGVvZihoZWFkLT5maXJzdCkgX192YWw7
IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihoZWFkLT5maXJz
dCksIF9fdS5fX2MsIHNpemVvZihoZWFkLT5maXJzdCkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVf
bm9jaGVjaygmKGhlYWQtPmZpcnN0KSwgX191Ll9fYywgc2l6ZW9mKGhlYWQtPmZpcnN0KSk7IGRv
IHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSkgPT0gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHN0cnVjdCBsbGlzdF9ub2RlICpsbGlzdF9uZXh0KHN0cnVjdCBsbGlzdF9u
b2RlICpub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBub2RlLT5uZXh0OwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBsbGlzdF9hZGRfYmF0Y2goc3RydWN0IGxsaXN0X25v
ZGUgKm5ld19maXJzdCwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV3X2xhc3Qs
CjE0NDc0OiAgICAgICAgc3RydWN0IGxsaXN0X2hlYWQgKmhlYWQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGxsaXN0
X2FkZChzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV3LCBzdHJ1Y3QgbGxpc3RfaGVhZCAqaGVhZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbGxpc3RfYWRkX2JhdGNoKG5ldywgbmV3LCBoZWFkKTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgMjIwICIuL2luY2x1ZGUvbGludXgvbGxpc3QuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBsbGlzdF9ub2RlICpsbGlzdF9kZWxfYWxsKHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoJmhlYWQtPmZpcnN0KSBfX2FpX3B0ciA9ICgm
aGVhZC0+Zmlyc3QpOyBrYXNhbl9jaGVja193cml0ZShfX2FpX3B0ciwgc2l6ZW9mKCpfX2FpX3B0
cikpOyAoeyBfX3R5cGVvZl9fICgqKChfX2FpX3B0cikpKSBfX3JldCA9ICgoKCh2b2lkICopMCkp
KTsgc3dpdGNoIChzaXplb2YoKigoX19haV9wdHIpKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUg
KCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0
cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIi
ICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0cikp
KSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIiICJ4
Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlfcHRyKSkpIDog
OiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGci
ICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlfcHRyKSkpIDogOiAi
bWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6ZSgpOyB9IF9f
cmV0OyB9KTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgbGxpc3Rf
bm9kZSAqbGxpc3RfZGVsX2ZpcnN0KHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGxsaXN0X25vZGUgKmxsaXN0X3JldmVyc2Vfb3JkZXIoc3RydWN0IGxsaXN0
X25vZGUgKmhlYWQpOwoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKnNtcF9jYWxsX2Z1bmNfdCkodm9pZCAqaW5mbyk7CjE0
NDc0OiB0eXBlZGVmIGJvb2wgKCpzbXBfY29uZF9mdW5jX3QpKGludCBjcHUsIHZvaWQgKmluZm8p
OwoxNDQ3NDogc3RydWN0IF9fY2FsbF9zaW5nbGVfZGF0YSB7CjE0NDc0OiAgc3RydWN0IGxsaXN0
X25vZGUgbGxpc3Q7CjE0NDc0OiAgc21wX2NhbGxfZnVuY190IGZ1bmM7CjE0NDc0OiAgdm9pZCAq
aW5mbzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF9fY2FsbF9zaW5nbGVfZGF0YSBjYWxsX3NpbmdsZV9k
YXRhX3QKMTQ0NzQ6ICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhzaXplb2Yoc3RydWN0IF9f
Y2FsbF9zaW5nbGVfZGF0YSkpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2ln
bmVkIGludCB0b3RhbF9jcHVzOwoxNDQ3NDogCjE0NDc0OiBpbnQgc21wX2NhbGxfZnVuY3Rpb25f
c2luZ2xlKGludCBjcHVpZCwgc21wX2NhbGxfZnVuY190IGZ1bmMsIHZvaWQgKmluZm8sCjE0NDc0
OiAgICAgICAgIGludCB3YWl0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogdm9pZCBvbl9lYWNoX2NwdShzbXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgaW50
IHdhaXQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgb25fZWFjaF9jcHVfbWFzayhjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgc21wX2NhbGxf
ZnVuY190IGZ1bmMsCjE0NDc0OiAgIHZvaWQgKmluZm8sIGJvb2wgd2FpdCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIG9uX2VhY2hf
Y3B1X2NvbmQoc21wX2NvbmRfZnVuY190IGNvbmRfZnVuYywgc21wX2NhbGxfZnVuY190IGZ1bmMs
CjE0NDc0OiAgICAgICAgIHZvaWQgKmluZm8sIGJvb2wgd2FpdCk7CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgb25fZWFjaF9jcHVfY29uZF9tYXNrKHNtcF9jb25kX2Z1bmNfdCBjb25kX2Z1bmMsIHNtcF9j
YWxsX2Z1bmNfdCBmdW5jLAoxNDQ3NDogICAgICAgdm9pZCAqaW5mbywgYm9vbCB3YWl0LCBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqbWFzayk7CjE0NDc0OiAKMTQ0NzQ6IGludCBzbXBfY2FsbF9mdW5j
dGlvbl9zaW5nbGVfYXN5bmMoaW50IGNwdSwgY2FsbF9zaW5nbGVfZGF0YV90ICpjc2QpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vc21wLmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXBzcGVjLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjX2RlZi5oIiAxCjE0NDc0OiAj
IDIyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKMTQ0NzQ6IHN0cnVjdCBt
cGZfaW50ZWwgewoxNDQ3NDogIGNoYXIgc2lnbmF0dXJlWzRdOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBwaHlzcHRyOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgbGVuZ3RoOwoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgc3BlY2lmaWNhdGlvbjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGNoZWNrc3VtOwoxNDQ3
NDogIHVuc2lnbmVkIGNoYXIgZmVhdHVyZTE7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBmZWF0dXJl
MjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGZlYXR1cmUzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIg
ZmVhdHVyZTQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBmZWF0dXJlNTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXBjX3RhYmxlIHsKMTQ0NzQ6ICBjaGFy
IHNpZ25hdHVyZVs0XTsKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBsZW5ndGg7CjE0NDc0OiAgY2hh
ciBzcGVjOwoxNDQ3NDogIGNoYXIgY2hlY2tzdW07CjE0NDc0OiAgY2hhciBvZW1bOF07CjE0NDc0
OiAgY2hhciBwcm9kdWN0aWRbMTJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBvZW1wdHI7CjE0NDc0
OiAgdW5zaWduZWQgc2hvcnQgb2Vtc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBvZW1jb3Vu
dDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbGFwaWM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlc2Vy
dmVkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVj
X2RlZi5oIgoxNDQ3NDogc3RydWN0IG1wY19jcHUgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdHlw
ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGFwaWNpZDsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGFw
aWN2ZXI7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBjcHVmbGFnOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBjcHVmZWF0dXJlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBmZWF0dXJlZmxhZzsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgcmVzZXJ2ZWRbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
bXBjX2J1cyB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciB0eXBlOwoxNDQ3NDogIHVuc2lnbmVkIGNo
YXIgYnVzaWQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBidXN0eXBlWzZdOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMTA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKMTQ0NzQ6IHN0
cnVjdCBtcGNfaW9hcGljIHsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHR5cGU7CjE0NDc0OiAgdW5z
aWduZWQgY2hhciBhcGljaWQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBhcGljdmVyOwoxNDQ3NDog
IHVuc2lnbmVkIGNoYXIgZmxhZ3M7CjE0NDc0OiAgdW5zaWduZWQgaW50IGFwaWNhZGRyOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1wY19pbnRzcmMgewoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgdHlwZTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGlycXR5cGU7CjE0NDc0OiAgdW5zaWdu
ZWQgc2hvcnQgaXJxZmxhZzsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHNyY2J1czsKMTQ0NzQ6ICB1
bnNpZ25lZCBjaGFyIHNyY2J1c2lycTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRzdGFwaWM7CjE0
NDc0OiAgdW5zaWduZWQgY2hhciBkc3RpcnE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IG1wX2lycV9zb3VyY2VfdHlwZXMgewoxNDQ3NDogIG1wX0lOVCA9IDAsCjE0NDc0OiAgbXBfTk1J
ID0gMSwKMTQ0NzQ6ICBtcF9TTUkgPSAyLAoxNDQ3NDogIG1wX0V4dElOVCA9IDMKMTQ0NzQ6IH07
CjE0NDc0OiAjIDE0NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWNfZGVmLmgiCjE0NDc0
OiBzdHJ1Y3QgbXBjX2xpbnRzcmMgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdHlwZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBjaGFyIGlycXR5cGU7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgaXJxZmxhZzsK
MTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHNyY2J1c2lkOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc3Jj
YnVzaXJxOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZGVzdGFwaWM7CjE0NDc0OiAgdW5zaWduZWQg
Y2hhciBkZXN0YXBpY2xpbnQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IG1wY19vZW10YWJsZSB7CjE0NDc0OiAgY2hhciBzaWduYXR1cmVbNF07CjE0NDc0
OiAgdW5zaWduZWQgc2hvcnQgbGVuZ3RoOwoxNDQ3NDogIGNoYXIgcmV2OwoxNDQ3NDogIGNoYXIg
Y2hlY2tzdW07CjE0NDc0OiAgY2hhciBtcGNbOF07CjE0NDc0OiB9OwoxNDQ3NDogIyAxNzcgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjX2RlZi5oIgoxNDQ3NDogZW51bSBtcF9idXN0eXBl
IHsKMTQ0NzQ6ICBNUF9CVVNfSVNBID0gMSwKMTQ0NzQ6ICBNUF9CVVNfRUlTQSwKMTQ0NzQ6ICBN
UF9CVVNfUENJLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9t
cHNwZWMuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0Lmgi
IDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBtcGNfYnVzOwoxNDQ3NDogc3RydWN0IG1wY19jcHU7CjE0NDc0OiBzdHJ1Y3QgbXBj
X3RhYmxlOwoxNDQ3NDogc3RydWN0IGNwdWluZm9feDg2OwoxNDQ3NDogIyAyMyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9pbml0X21wcGFyc2Ug
ewoxNDQ3NDogIHZvaWQgKCptcGNfcmVjb3JkKSh1bnNpZ25lZCBpbnQgbW9kZSk7CjE0NDc0OiAg
dm9pZCAoKnNldHVwX2lvYXBpY19pZHMpKHZvaWQpOwoxNDQ3NDogIGludCAoKm1wY19hcGljX2lk
KShzdHJ1Y3QgbXBjX2NwdSAqbSk7CjE0NDc0OiAgdm9pZCAoKnNtcF9yZWFkX21wY19vZW0pKHN0
cnVjdCBtcGNfdGFibGUgKm1wYyk7CjE0NDc0OiAgdm9pZCAoKm1wY19vZW1fcGNpX2J1cykoc3Ry
dWN0IG1wY19idXMgKm0pOwoxNDQ3NDogIHZvaWQgKCptcGNfb2VtX2J1c19pbmZvKShzdHJ1Y3Qg
bXBjX2J1cyAqbSwgY2hhciAqbmFtZSk7CjE0NDc0OiAgdm9pZCAoKmZpbmRfc21wX2NvbmZpZyko
dm9pZCk7CjE0NDc0OiAgdm9pZCAoKmdldF9zbXBfY29uZmlnKSh1bnNpZ25lZCBpbnQgZWFybHkp
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNDIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQu
aCIKMTQ0NzQ6IHN0cnVjdCB4ODZfaW5pdF9yZXNvdXJjZXMgewoxNDQ3NDogIHZvaWQgKCpwcm9i
ZV9yb21zKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqcmVzZXJ2ZV9yZXNvdXJjZXMpKHZvaWQpOwox
NDQ3NDogIGNoYXIgKigqbWVtb3J5X3NldHVwKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDU3
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgiCjE0NDc0OiBzdHJ1Y3QgeDg2X2lu
aXRfaXJxcyB7CjE0NDc0OiAgdm9pZCAoKnByZV92ZWN0b3JfaW5pdCkodm9pZCk7CjE0NDc0OiAg
dm9pZCAoKmludHJfaW5pdCkodm9pZCk7CjE0NDc0OiAgdm9pZCAoKnRyYXBfaW5pdCkodm9pZCk7
CjE0NDc0OiAgdm9pZCAoKmludHJfbW9kZV9zZWxlY3QpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpp
bnRyX21vZGVfaW5pdCkodm9pZCk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHg4Nl9pbml0X29lbSB7CjE0NDc0
OiAgdm9pZCAoKmFyY2hfc2V0dXApKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpiYW5uZXIpKHZvaWQp
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgODIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQu
aCIKMTQ0NzQ6IHN0cnVjdCB4ODZfaW5pdF9wYWdpbmcgewoxNDQ3NDogIHZvaWQgKCpwYWdldGFi
bGVfaW5pdCkodm9pZCk7CjE0NDc0OiB9OwoxNDQ3NDogIyA5MyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9pbml0X3RpbWVycyB7CjE0NDc0OiAg
dm9pZCAoKnNldHVwX3BlcmNwdV9jbG9ja2V2KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqdGltZXJf
aW5pdCkodm9pZCk7CjE0NDc0OiAgdm9pZCAoKndhbGxjbG9ja19pbml0KSh2b2lkKTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHg4Nl9pbml0X2lvbW11IHsKMTQ0NzQ6ICBpbnQgKCppb21tdV9pbml0KSh2b2lkKTsKMTQ0NzQ6
IH07CjE0NDc0OiAjIDExNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3
NDogc3RydWN0IHg4Nl9pbml0X3BjaSB7CjE0NDc0OiAgaW50ICgqYXJjaF9pbml0KSh2b2lkKTsK
MTQ0NzQ6ICBpbnQgKCppbml0KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqaW5pdF9pcnEpKHZvaWQp
OwoxNDQ3NDogIHZvaWQgKCpmaXh1cF9pcnFzKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDEy
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9o
eXBlcl9pbml0IHsKMTQ0NzQ6ICB2b2lkICgqaW5pdF9wbGF0Zm9ybSkodm9pZCk7CjE0NDc0OiAg
dm9pZCAoKmd1ZXN0X2xhdGVfaW5pdCkodm9pZCk7CjE0NDc0OiAgYm9vbCAoKngyYXBpY19hdmFp
bGFibGUpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCppbml0X21lbV9tYXBwaW5nKSh2b2lkKTsKMTQ0
NzQ6ICB2b2lkICgqaW5pdF9hZnRlcl9ib290bWVtKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCB4ODZfaW5pdF9hY3BpIHsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Jvb3RfcG9pbnRlcikodTY0
IGFkZHIpOwoxNDQ3NDogIHU2NCAoKmdldF9yb290X3BvaW50ZXIpKHZvaWQpOwoxNDQ3NDogIHZv
aWQgKCpyZWR1Y2VkX2h3X2Vhcmx5X2luaXQpKHZvaWQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgeDg2X2luaXRfb3BzIHsK
MTQ0NzQ6ICBzdHJ1Y3QgeDg2X2luaXRfcmVzb3VyY2VzIHJlc291cmNlczsKMTQ0NzQ6ICBzdHJ1
Y3QgeDg2X2luaXRfbXBwYXJzZSBtcHBhcnNlOwoxNDQ3NDogIHN0cnVjdCB4ODZfaW5pdF9pcnFz
IGlycXM7CjE0NDc0OiAgc3RydWN0IHg4Nl9pbml0X29lbSBvZW07CjE0NDc0OiAgc3RydWN0IHg4
Nl9pbml0X3BhZ2luZyBwYWdpbmc7CjE0NDc0OiAgc3RydWN0IHg4Nl9pbml0X3RpbWVycyB0aW1l
cnM7CjE0NDc0OiAgc3RydWN0IHg4Nl9pbml0X2lvbW11IGlvbW11OwoxNDQ3NDogIHN0cnVjdCB4
ODZfaW5pdF9wY2kgcGNpOwoxNDQ3NDogIHN0cnVjdCB4ODZfaHlwZXJfaW5pdCBoeXBlcjsKMTQ0
NzQ6ICBzdHJ1Y3QgeDg2X2luaXRfYWNwaSBhY3BpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4ODZfY3B1aW5p
dF9vcHMgewoxNDQ3NDogIHZvaWQgKCpzZXR1cF9wZXJjcHVfY2xvY2tldikodm9pZCk7CjE0NDc0
OiAgdm9pZCAoKmVhcmx5X3BlcmNwdV9jbG9ja19pbml0KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgq
Zml4dXBfY3B1X2lkKShzdHJ1Y3QgY3B1aW5mb194ODYgKmMsIGludCBub2RlKTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lc3BlYzY0OwoxNDQ3NDogIyAxOTggIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKMTQ0NzQ6IHN0cnVjdCB4ODZfbGVnYWN5X2Rldmlj
ZXMgewoxNDQ3NDogIGludCBwbnBiaW9zOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjExICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgiCjE0NDc0OiBlbnVtIHg4Nl9sZWdhY3lfaTgwNDJf
c3RhdGUgewoxNDQ3NDogIFg4Nl9MRUdBQ1lfSTgwNDJfUExBVEZPUk1fQUJTRU5ULAoxNDQ3NDog
IFg4Nl9MRUdBQ1lfSTgwNDJfRklSTVdBUkVfQUJTRU5ULAoxNDQ3NDogIFg4Nl9MRUdBQ1lfSTgw
NDJfRVhQRUNURURfUFJFU0VOVCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDIyOSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS94ODZfaW5pdC5oIgoxNDQ3NDogc3RydWN0IHg4Nl9sZWdhY3lfZmVhdHVyZXMg
ewoxNDQ3NDogIGVudW0geDg2X2xlZ2FjeV9pODA0Ml9zdGF0ZSBpODA0MjsKMTQ0NzQ6ICBpbnQg
cnRjOwoxNDQ3NDogIGludCB3YXJtX3Jlc2V0OwoxNDQ3NDogIGludCBub192Z2E7CjE0NDc0OiAg
aW50IHJlc2VydmVfYmlvc19yZWdpb25zOwoxNDQ3NDogIHN0cnVjdCB4ODZfbGVnYWN5X2Rldmlj
ZXMgZGV2aWNlczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgeDg2X2h5cGVyX3J1bnRpbWUgewoxNDQ3NDogIHZv
aWQgKCpwaW5fdmNwdSkoaW50IGNwdSk7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNjggIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKMTQ0NzQ6IHN0cnVjdCB4ODZfcGxhdGZvcm1fb3Bz
IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nICgqY2FsaWJyYXRlX2NwdSkodm9pZCk7CjE0NDc0OiAg
dW5zaWduZWQgbG9uZyAoKmNhbGlicmF0ZV90c2MpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpnZXRf
d2FsbGNsb2NrKShzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwoxNDQ3NDogIGludCAoKnNldF93YWxs
Y2xvY2spKGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CjE0NDc0OiAgdm9pZCAoKmlvbW11
X3NodXRkb3duKSh2b2lkKTsKMTQ0NzQ6ICBib29sICgqaXNfdW50cmFja2VkX3BhdF9yYW5nZSko
dTY0IHN0YXJ0LCB1NjQgZW5kKTsKMTQ0NzQ6ICB2b2lkICgqbm1pX2luaXQpKHZvaWQpOwoxNDQ3
NDogIHVuc2lnbmVkIGNoYXIgKCpnZXRfbm1pX3JlYXNvbikodm9pZCk7CjE0NDc0OiAgdm9pZCAo
KnNhdmVfc2NoZWRfY2xvY2tfc3RhdGUpKHZvaWQpOwoxNDQ3NDogIHZvaWQgKCpyZXN0b3JlX3Nj
aGVkX2Nsb2NrX3N0YXRlKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqYXBpY19wb3N0X2luaXQpKHZv
aWQpOwoxNDQ3NDogIHN0cnVjdCB4ODZfbGVnYWN5X2ZlYXR1cmVzIGxlZ2FjeTsKMTQ0NzQ6ICB2
b2lkICgqc2V0X2xlZ2FjeV9mZWF0dXJlcykodm9pZCk7CjE0NDc0OiAgc3RydWN0IHg4Nl9oeXBl
cl9ydW50aW1lIGh5cGVyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBjaV9kZXY7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4ODZfbXNpX29wcyB7CjE0NDc0OiAgaW50ICgqc2V0dXBf
bXNpX2lycXMpKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudmVjLCBpbnQgdHlwZSk7CjE0NDc0
OiAgdm9pZCAoKnRlYXJkb3duX21zaV9pcnEpKHVuc2lnbmVkIGludCBpcnEpOwoxNDQ3NDogIHZv
aWQgKCp0ZWFyZG93bl9tc2lfaXJxcykoc3RydWN0IHBjaV9kZXYgKmRldik7CjE0NDc0OiAgdm9p
ZCAoKnJlc3RvcmVfbXNpX2lycXMpKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHg4Nl9hcGljX29wcyB7CjE0NDc0OiAgdW5zaWduZWQgaW50ICgq
aW9fYXBpY19yZWFkKSAodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcpOwoxNDQ3
NDogIHZvaWQgKCpyZXN0b3JlKSh2b2lkKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgeDg2X2luaXRfb3BzIHg4Nl9pbml0OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB4ODZf
Y3B1aW5pdF9vcHMgeDg2X2NwdWluaXQ7CjE0NDc0OiBleHRlcm4gc3RydWN0IHg4Nl9wbGF0Zm9y
bV9vcHMgeDg2X3BsYXRmb3JtOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB4ODZfbXNpX29wcyB4ODZf
bXNpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB4ODZfYXBpY19vcHMgeDg2X2FwaWNfb3BzOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCB4ODZfZWFybHlfaW5pdF9wbGF0Zm9ybV9xdWlya3Modm9p
ZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB4ODZfaW5pdF9ub29wKHZvaWQpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgeDg2X2luaXRfdWludF9ub29wKHVuc2lnbmVkIGludCB1bnVzZWQpOwoxNDQ3NDogZXh0
ZXJuIGJvb2wgYm9vbF94ODZfaW5pdF9ub29wKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgeDg2
X29wX2ludF9ub29wKGludCBjcHUpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgeDg2X3BucGJpb3NfZGlz
YWJsZWQodm9pZCk7CjE0NDc0OiAjIDggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjLmgi
IDIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljZGVmLmgiIDEKMTQ0NzQ6
ICMgMTc5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWNkZWYuaCIKMTQ0NzQ6IHN0cnVjdCBs
b2NhbF9hcGljIHsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQg
X19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzAxOwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0
cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDI7CjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRfMSA6IDI0LAoxNDQ3NDogICAgcGh5c19hcGljX2lkIDogNCwKMTQ0NzQ6ICAgIF9fcmVzZXJ2
ZWRfMiA6IDQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzNdOwoxNDQ3NDogIH0g
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgdmVyc2lvbiA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzEgOiA4LAox
NDQ3NDogICAgbWF4X2x2dCA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiA4OwoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFszXTsKMTQ0NzQ6ICB9IHZlcnNpb247CjE0NDc0OiAK
MTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19y
ZXNlcnZlZF8wMzsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQg
X19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzA0OwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0
cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDU7CjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0g
X19yZXNlcnZlZF8wNjsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1
bnNpZ25lZCBpbnQgcHJpb3JpdHkgOiA4LAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMjQ7CjE0
NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107CjE0NDc0OiAgfSB0cHI7CjE0NDc0
OiAKMTQ0NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgcHJpb3JpdHkgOiA4LAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMjQ7CjE0NDc0OiAg
IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107CjE0NDc0OiAgfSBhcHI7CjE0NDc0OiAKMTQ0
NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQg
cHJpb3JpdHkgOiA4LAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMjQ7CjE0NDc0OiAgIHVuc2ln
bmVkIGludCBfX3Jlc2VydmVkXzJbM107CjE0NDc0OiAgfSBwcHI7CjE0NDc0OiAKMTQ0NzQ6ICAg
ICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IGVvaTsKMTQ0NzQ6ICAgdW5zaWdu
ZWQgaW50IF9fcmVzZXJ2ZWRbM107CjE0NDc0OiAgfSBlb2k7CjE0NDc0OiAKMTQ0NzQ6ICAgICAg
ICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wNzsK
MTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgX19y
ZXNlcnZlZF8xIDogMjQsCjE0NDc0OiAgICBsb2dpY2FsX2Rlc3QgOiA4OwoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgX19yZXNlcnZlZF8yWzNdOwoxNDQ3NDogIH0gbGRyOwoxNDQ3NDogCjE0NDc0OiAg
ICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzEgOiAyOCwK
MTQ0NzQ6ICAgIG1vZGVsIDogNDsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMlsz
XTsKMTQ0NzQ6ICB9IGRmcjsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgewoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgc3B1cmlvdXNfdmVjdG9yIDogOCwKMTQ0NzQ6ICAgIGFwaWNfZW5hYmxl
ZCA6IDEsCjE0NDc0OiAgICBmb2N1c19jcHUgOiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8yIDog
MjI7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzNbM107CjE0NDc0OiAgfSBzdnI7
CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgICAgICAgIHVuc2lnbmVk
IGludCBiaXRmaWVsZDsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbM107CjE0NDc0
OiAgfSBpc3IgWzhdOwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgICAg
ICAgICB1bnNpZ25lZCBpbnQgYml0ZmllbGQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2Vy
dmVkWzNdOwoxNDQ3NDogIH0gdG1yIFs4XTsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3Qg
ewoxNDQ3NDogICAgICAgICAgdW5zaWduZWQgaW50IGJpdGZpZWxkOwoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgX19yZXNlcnZlZFszXTsKMTQ0NzQ6ICB9IGlyciBbOF07CjE0NDc0OiAKMTQ0NzQ6ICAg
ICAgICAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgaW50IHNl
bmRfY3NfZXJyb3IgOiAxLAoxNDQ3NDogICAgIHJlY2VpdmVfY3NfZXJyb3IgOiAxLAoxNDQ3NDog
ICAgIHNlbmRfYWNjZXB0X2Vycm9yIDogMSwKMTQ0NzQ6ICAgICByZWNlaXZlX2FjY2VwdF9lcnJv
ciA6IDEsCjE0NDc0OiAgICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6ICAgICBzZW5kX2lsbGVn
YWxfdmVjdG9yIDogMSwKMTQ0NzQ6ICAgICByZWNlaXZlX2lsbGVnYWxfdmVjdG9yIDogMSwKMTQ0
NzQ6ICAgICBpbGxlZ2FsX3JlZ2lzdGVyX2FkZHJlc3MgOiAxLAoxNDQ3NDogICAgIF9fcmVzZXJ2
ZWRfMiA6IDI0OwoxNDQ3NDogICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfM1szXTsKMTQ0NzQ6
ICAgfSBlcnJvcl9iaXRzOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5zaWduZWQgaW50
IGVycm9yczsKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzNbM107CjE0NDc0OiAg
IH0gYWxsX2Vycm9yczsKMTQ0NzQ6ICB9IGVzcjsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1
Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzA4OwoxNDQ3NDog
CjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9f
cmVzZXJ2ZWRfMDk7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50
IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xMDsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBz
dHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzExOwoxNDQ3
NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9
IF9fcmVzZXJ2ZWRfMTI7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsgdW5zaWduZWQg
aW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xMzsKMTQ0NzQ6IAoxNDQ3NDogICAgICAg
ICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jlc2VydmVkXzE0Owox
NDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgIHVuc2lnbmVkIGludCB2ZWN0
b3IgOiA4LAoxNDQ3NDogICAgZGVsaXZlcnlfbW9kZSA6IDMsCjE0NDc0OiAgICBkZXN0aW5hdGlv
bl9tb2RlIDogMSwKMTQ0NzQ6ICAgIGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBfX3Jl
c2VydmVkXzEgOiAxLAoxNDQ3NDogICAgbGV2ZWwgOiAxLAoxNDQ3NDogICAgdHJpZ2dlciA6IDEs
CjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAyLAoxNDQ3NDogICAgc2hvcnRoYW5kIDogMiwKMTQ0
NzQ6ICAgIF9fcmVzZXJ2ZWRfMyA6IDEyOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgX19yZXNlcnZl
ZF80WzNdOwoxNDQ3NDogIH0gaWNyMTsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1Y3Qgewox
NDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8xIDogMjQs
CjE0NDc0OiAgICAgcGh5c19kZXN0IDogNCwKMTQ0NzQ6ICAgICBfX3Jlc2VydmVkXzIgOiA0Owox
NDQ3NDogICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMyA6IDI0LAoxNDQ3NDogICAgIGxvZ2lj
YWxfZGVzdCA6IDg7CjE0NDc0OiAgIH0gZGVzdDsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVz
ZXJ2ZWRfNFszXTsKMTQ0NzQ6ICB9IGljcjI7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0
IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVk
XzEgOiA0LAoxNDQ3NDogICAgZGVsaXZlcnlfc3RhdHVzIDogMSwKMTQ0NzQ6ICAgIF9fcmVzZXJ2
ZWRfMiA6IDMsCjE0NDc0OiAgICBtYXNrIDogMSwKMTQ0NzQ6ICAgIHRpbWVyX21vZGUgOiAxLAox
NDQ3NDogICAgX19yZXNlcnZlZF8zIDogMTQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2Vy
dmVkXzRbM107CjE0NDc0OiAgfSBsdnRfdGltZXI7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3Ry
dWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCjE0NDc0OiAgICBkZWxpdmVy
eV9tb2RlIDogMywKMTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMSA6IDEsCjE0NDc0OiAgICBkZWxpdmVy
eV9zdGF0dXMgOiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8yIDogMywKMTQ0NzQ6ICAgIG1hc2sg
OiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8zIDogMTU7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBf
X3Jlc2VydmVkXzRbM107CjE0NDc0OiAgfSBsdnRfdGhlcm1hbDsKMTQ0NzQ6IAoxNDQ3NDogICAg
ICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6ICAg
IGRlbGl2ZXJ5X21vZGUgOiAzLAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6ICAg
IGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAzLAoxNDQ3NDog
ICAgbWFzayA6IDEsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzMgOiAxNTsKMTQ0NzQ6ICAgdW5zaWdu
ZWQgaW50IF9fcmVzZXJ2ZWRfNFszXTsKMTQ0NzQ6ICB9IGx2dF9wYzsKMTQ0NzQ6IAoxNDQ3NDog
ICAgICAgICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6
ICAgIGRlbGl2ZXJ5X21vZGUgOiAzLAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6
ICAgIGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBwb2xhcml0eSA6IDEsCjE0NDc0OiAg
ICByZW1vdGVfaXJyIDogMSwKMTQ0NzQ6ICAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICAgbWFzayA6
IDEsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAxNTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfM1szXTsKMTQ0NzQ6ICB9IGx2dF9saW50MDsKMTQ0NzQ6IAoxNDQ3NDogICAgICAg
ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6ICAgIGRl
bGl2ZXJ5X21vZGUgOiAzLAoxNDQ3NDogICAgX19yZXNlcnZlZF8xIDogMSwKMTQ0NzQ6ICAgIGRl
bGl2ZXJ5X3N0YXR1cyA6IDEsCjE0NDc0OiAgICBwb2xhcml0eSA6IDEsCjE0NDc0OiAgICByZW1v
dGVfaXJyIDogMSwKMTQ0NzQ6ICAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICAgbWFzayA6IDEsCjE0
NDc0OiAgICBfX3Jlc2VydmVkXzIgOiAxNTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRfM1szXTsKMTQ0NzQ6ICB9IGx2dF9saW50MTsKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICBzdHJ1
Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKMTQ0NzQ6ICAgIF9fcmVzZXJ2
ZWRfMSA6IDQsCjE0NDc0OiAgICBkZWxpdmVyeV9zdGF0dXMgOiAxLAoxNDQ3NDogICAgX19yZXNl
cnZlZF8yIDogMywKMTQ0NzQ6ICAgIG1hc2sgOiAxLAoxNDQ3NDogICAgX19yZXNlcnZlZF8zIDog
MTU7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzRbM107CjE0NDc0OiAgfSBsdnRf
ZXJyb3I7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQg
aW50IGluaXRpYWxfY291bnQ7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107
CjE0NDc0OiAgfSB0aW1lcl9pY3I7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgY29uc3QKMTQ0NzQ6
ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgY3Vycl9jb3VudDsKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IF9fcmVzZXJ2ZWRfMlszXTsKMTQ0NzQ6ICB9IHRpbWVyX2NjcjsKMTQ0NzQ6IAox
NDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBfX3Jl
c2VydmVkXzE2OwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBf
X3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTc7CjE0NDc0OiAKMTQ0NzQ6ICAgICAgICAgc3Ry
dWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xODsKMTQ0NzQ6
IAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFs0XTsgfSBf
X3Jlc2VydmVkXzE5OwoxNDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7CjE0NDc0OiAgIHVu
c2lnbmVkIGludCBkaXZpc29yIDogNCwKMTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMSA6IDI4OwoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8yWzNdOwoxNDQ3NDogIH0gdGltZXJfZGNyOwox
NDQ3NDogCjE0NDc0OiAgICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRd
OyB9IF9fcmVzZXJ2ZWRfMjA7CjE0NDc0OiAKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tl
ZCkpOwoxNDQ3NDogIyA0MzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpY2RlZi5oIgoxNDQ3
NDogZW51bSBpb2FwaWNfaXJxX2Rlc3RpbmF0aW9uX3R5cGVzIHsKMTQ0NzQ6ICBkZXN0X0ZpeGVk
ID0gMCwKMTQ0NzQ6ICBkZXN0X0xvd2VzdFByaW8gPSAxLAoxNDQ3NDogIGRlc3RfU01JID0gMiwK
MTQ0NzQ6ICBkZXN0X19yZXNlcnZlZF8xID0gMywKMTQ0NzQ6ICBkZXN0X05NSSA9IDQsCjE0NDc0
OiAgZGVzdF9JTklUID0gNSwKMTQ0NzQ6ICBkZXN0X19yZXNlcnZlZF8yID0gNiwKMTQ0NzQ6ICBk
ZXN0X0V4dElOVCA9IDcKMTQ0NzQ6IH07CjE0NDc0OiAjIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXBzcGVjLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBwaWNfbW9kZTsKMTQ0NzQ6
ICMgNDAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjLmgiCjE0NDc0OiBleHRlcm4gdW5z
aWduZWQgbG9uZyBtcF9idXNfbm90X3BjaVsoKCgyNTYpICsgKChzaXplb2YobG9uZykgKiA4KSkg
LSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKV07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNp
Z25lZCBpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkOwoxNDQ3NDogZXh0ZXJuIHU4IGJvb3Rf
Y3B1X2FwaWNfdmVyc2lvbjsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2Fk
ZHI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzbXBfZm91bmRfY29uZmlnOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGdldF9zbXBfY29uZmln
KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgeDg2X2luaXQubXBwYXJzZS5nZXRfc21wX2NvbmZpZygw
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBlYXJseV9nZXRfc21wX2NvbmZpZyh2b2lk
KQoxNDQ3NDogewoxNDQ3NDogIHg4Nl9pbml0Lm1wcGFyc2UuZ2V0X3NtcF9jb25maWcoMSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmluZF9zbXBfY29uZmlnKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgeDg2X2luaXQubXBwYXJzZS5maW5kX3NtcF9jb25maWcoKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBlODIwX19tZW1ibG9ja19hbGxvY19yZXNl
cnZlZF9tcGNfbmV3KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBlbmFibGVfdXBkYXRlX21wdGFi
bGU7CjE0NDc0OiBleHRlcm4gaW50IGRlZmF1bHRfbXBjX2FwaWNfaWQoc3RydWN0IG1wY19jcHUg
Km0pOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVmYXVsdF9zbXBfcmVhZF9tcGNfb2VtKHN0cnVjdCBt
cGNfdGFibGUgKm1wYyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRlZmF1bHRfbXBjX29l
bV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2J1cyAqbSwgY2hhciAqc3RyKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRlZmF1bHRfZmluZF9zbXBfY29uZmlnKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVmYXVsdF9nZXRfc21wX2NvbmZpZyh1bnNpZ25lZCBpbnQg
ZWFybHkpOwoxNDQ3NDogIyA4OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWMuaCIKMTQ0
NzQ6IGludCBnZW5lcmljX3Byb2Nlc3Nvcl9pbmZvKGludCBhcGljaWQsIGludCB2ZXJzaW9uKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwaHlzaWRfbWFzayB7CjE0NDc0
OiAgdW5zaWduZWQgbG9uZyBtYXNrWygoKDMyNzY4KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0g
MSkgLyAoKHNpemVvZihsb25nKSAqIDgpKSldOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdHlw
ZWRlZiBzdHJ1Y3QgcGh5c2lkX21hc2sgcGh5c2lkX21hc2tfdDsKMTQ0NzQ6ICMgMTMyICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL21wc3BlYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBwaHlzaWRz
X2NvZXJjZShwaHlzaWRfbWFza190ICptYXApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG1hcC0+
bWFza1swXTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwaHlzaWRzX3Byb21vdGUodW5z
aWduZWQgbG9uZyBwaHlzaWRzLCBwaHlzaWRfbWFza190ICptYXApCjE0NDc0OiB7CjE0NDc0OiAg
Yml0bWFwX3plcm8oKCptYXApLm1hc2ssIDMyNzY4KTsKMTQ0NzQ6ICBtYXAtPm1hc2tbMF0gPSBw
aHlzaWRzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBoeXNpZF9zZXRfbWFza19vZl9w
aHlzaWQoaW50IHBoeXNpZCwgcGh5c2lkX21hc2tfdCAqbWFwKQoxNDQ3NDogewoxNDQ3NDogIGJp
dG1hcF96ZXJvKCgqbWFwKS5tYXNrLCAzMjc2OCk7CjE0NDc0OiAgc2V0X2JpdChwaHlzaWQsICgq
bWFwKS5tYXNrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHBoeXNpZF9tYXNrX3QgcGh5c19jcHVfcHJlc2VudF9tYXA7CjE0NDc0OiAjIDEz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXBpYy5oIiAxCjE0NDc0OiAjIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2FwaWMuaCIKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIgMQox
NDQ3NDogIyAyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hY3BpLmgiIDEKMTQ0NzQ6ICMgOSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9hY3BpLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hY3BpL3BkY19pbnRlbC5o
IiAxCjE0NDc0OiAjIDEwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIgMgoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbnVtYS5oIiAxCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIgMQoxNDQ3NDogIyA4NSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS90b3BvbG9neS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFfbm9kZV9pZCh2b2lkKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldHVwX25v
ZGVfdG9fY3B1bWFza19tYXAodm9pZCkgeyB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oIiAxCjE0NDc0OiAjIDEwNCAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90b3BvbG9neS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1X2NvcmVncm91cF9tYXNrKGludCBjcHUpOwoxNDQ3
NDogIyAxMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIKMTQ0NzQ6IGV4dGVy
biB1bnNpZ25lZCBpbnQgX19tYXhfbG9naWNhbF9wYWNrYWdlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IF9fbWF4X2RpZV9wZXJfcGFja2FnZTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHRvcG9sb2d5X21heF9kaWVfcGVyX3BhY2thZ2Uodm9pZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gX19tYXhfZGllX3Blcl9wYWNrYWdlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gaW50IF9fbWF4X3NtdF90aHJlYWRzOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdG9wb2xv
Z3lfbWF4X3NtdF90aHJlYWRzKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fbWF4X3Nt
dF90aHJlYWRzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBpbnQgdG9wb2xvZ3lfdXBkYXRlX3Bh
Y2thZ2VfbWFwKHVuc2lnbmVkIGludCBhcGljaWQsIHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDog
aW50IHRvcG9sb2d5X3VwZGF0ZV9kaWVfbWFwKHVuc2lnbmVkIGludCBkaWVpZCwgdW5zaWduZWQg
aW50IGNwdSk7CjE0NDc0OiBpbnQgdG9wb2xvZ3lfcGh5c190b19sb2dpY2FsX3BrZyh1bnNpZ25l
ZCBpbnQgcGtnKTsKMTQ0NzQ6IGludCB0b3BvbG9neV9waHlzX3RvX2xvZ2ljYWxfZGllKHVuc2ln
bmVkIGludCBkaWUsIHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogYm9vbCB0b3BvbG9neV9pc19w
cmltYXJ5X3RocmVhZCh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGJvb2wgdG9wb2xvZ3lfc210
X3N1cHBvcnRlZCh2b2lkKTsKMTQ0NzQ6ICMgMTU2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Rv
cG9sb2d5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfZml4X3BoeXNfcGFja2FnZV9pZChpbnQgbnVtLCB1
MzIgc2xvdCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBjaV9idXM7
CjE0NDc0OiBpbnQgeDg2X3BjaV9yb290X2J1c19ub2RlKGludCBidXMpOwoxNDQ3NDogdm9pZCB4
ODZfcGNpX3Jvb3RfYnVzX3Jlc291cmNlcyhpbnQgYnVzLCBzdHJ1Y3QgbGlzdF9oZWFkICpyZXNv
dXJjZXMpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCB4ODZfdG9wb2xvZ3lfdXBkYXRlOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9mX18o
aW50KSBzY2hlZF9jb3JlX3ByaW9yaXR5OwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBfX2F0
dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKSBzeXNjdGxfc2No
ZWRfaXRtdF9lbmFibGVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2NoZWRfc2V0X2l0
bXRfY29yZV9wcmlvKGludCBwcmlvLCBpbnQgY29yZV9jcHUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGludCBzY2hlZF9zZXRfaXRtdF9zdXBwb3J0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgc2NoZWRfY2xlYXJfaXRtdF9zdXBwb3J0KHZvaWQpOwoxNDQ3NDogIyA4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL251bWEuaCIgMgoxNDQ3NDogIyA0NSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9udW1hLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9hcGljaWRfdG9fbm9kZShpbnQgYXBpY2lk
LCBzMTYgbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFfY3B1
X25vZGUoaW50IGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKC0xKTsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgNjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbnVtYS5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBudW1h
X3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbnVtYV9jbGVhcl9u
b2RlKGludCBjcHUpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X2NwdV90b19ub2RlKHZvaWQpIHsgfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSkgeyB9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG51bWFfcmVt
b3ZlX2NwdShpbnQgY3B1KSB7IH0KMTQ0NzQ6ICMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YWNwaS5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgiIDEK
MTQ0NzQ6ICMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIiAyCjE0NDc0OiAjIDIz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9s
YXBpYzsKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9pb2FwaWM7CjE0NDc0OiBleHRlcm4gaW50IGFj
cGlfbm9pcnE7CjE0NDc0OiBleHRlcm4gaW50IGFjcGlfc3RyaWN0OwoxNDQ3NDogZXh0ZXJuIGlu
dCBhY3BpX2Rpc2FibGVkOwoxNDQ3NDogZXh0ZXJuIGludCBhY3BpX3BjaV9kaXNhYmxlZDsKMTQ0
NzQ6IGV4dGVybiBpbnQgYWNwaV9za2lwX3RpbWVyX292ZXJyaWRlOwoxNDQ3NDogZXh0ZXJuIGlu
dCBhY3BpX3VzZV90aW1lcl9vdmVycmlkZTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9maXhfcGlu
Ml9wb2xhcml0eTsKMTQ0NzQ6IGV4dGVybiBpbnQgYWNwaV9kaXNhYmxlX2NtY2ZmOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdTggYWNwaV9zY2lfZmxhZ3M7CjE0NDc0OiBleHRlcm4gdTMyIGFjcGlf
c2NpX292ZXJyaWRlX2dzaTsKMTQ0NzQ6IHZvaWQgYWNwaV9waWNfc2NpX3NldF90cmlnZ2VyKHVu
c2lnbmVkIGludCwgdTE2KTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldmljZTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCAoKl9fYWNwaV9yZWdpc3Rlcl9nc2kpKHN0cnVjdCBkZXZpY2UgKmRl
diwgdTMyIGdzaSwKMTQ0NzQ6ICAgICAgIGludCB0cmlnZ2VyLCBpbnQgcG9sYXJpdHkpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgKCpfX2FjcGlfdW5yZWdpc3Rlcl9nc2kpKHUzMiBnc2kpOwoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRpc2FibGVfYWNwaSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGFjcGlfZGlz
YWJsZWQgPSAxOwoxNDQ3NDogIGFjcGlfcGNpX2Rpc2FibGVkID0gMTsKMTQ0NzQ6ICBhY3BpX25v
aXJxID0gMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhY3BpX2dzaV90b19p
cnEodTMyIGdzaSwgdW5zaWduZWQgaW50ICppcnEpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFjcGlf
bm9pcnFfc2V0KHZvaWQpIHsgYWNwaV9ub2lycSA9IDE7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYWNwaV9kaXNh
YmxlX3BjaSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGFjcGlfcGNpX2Rpc2FibGVkID0gMTsKMTQ0
NzQ6ICBhY3BpX25vaXJxX3NldCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgKCphY3BpX3N1c3BlbmRfbG93bGV2ZWwpKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHVuc2lnbmVkIGxvbmcgYWNwaV9nZXRfd2FrZXVwX2FkZHJlc3Modm9pZCk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBhY3BpX3Byb2Nl
c3Nvcl9jc3RhdGVfY2hlY2sodW5zaWduZWQgaW50IG1heF9jc3RhdGUpCjE0NDc0OiB7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKGJv
b3RfY3B1X2RhdGEueDg2ID09IDB4MEYgJiYKMTQ0NzQ6ICAgICAgYm9vdF9jcHVfZGF0YS54ODZf
dmVuZG9yID09IDIgJiYKMTQ0NzQ6ICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPD0gMHgw
NSAmJgoxNDQ3NDogICAgICBib290X2NwdV9kYXRhLng4Nl9zdGVwcGluZyA8IDB4MEEpCjE0NDc0
OiAgIHJldHVybiAxOwoxNDQ3NDogIGVsc2UgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTkq
MzIgKyAoNCkpKSAmJiAoICgoKCgxOSozMiArICg0KSkpPj41KT09KDApICYmICgxVUw8PCgoKDE5
KjMyICsgKDQpKSkmMzEpICYgKCgxPDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisg
NSkgJiAzMSkpfCgxPDwoKCAwKjMyKyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8
MHwoMTw8KCggMCozMisyNCkgJiAzMSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAw
KjMyKzI1KSAmIDMxKSl8KDE8PCgoIDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKDE5KjMyICsg
KDQpKSk+PjUpPT0oMSkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDEq
MzIrMjkpICYgMzEpKXwwKSApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgyKSAmJiAoMVVM
PDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0o
MykgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDMqMzIrMjApICYgMzEp
KSkgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAo
NCkpKSYzMSkgJiAoMCkgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNSkgJiYgKDFVTDw8
KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDYp
ICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkp
KT4+NSk9PSg3KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5
KjMyICsgKDQpKSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkp
IHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDkpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkm
MzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoMTkq
MzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDExKSAmJiAo
MVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUp
PT0oMTIpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIg
KyAoNCkpKT4+NSk9PSgxMykgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8
ICgoKCgxOSozMiArICg0KSkpPj41KT09KDE0KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMx
KSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oMTUpICYmICgxVUw8PCgoKDE5KjMy
ICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxNikgJiYgKDFV
TDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09
KDE3KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsg
KDQpKSk+PjUpPT0oMTgpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAo
KGludCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQp
KHNpemVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2Jp
dCgoMTkqMzIgKyAoNCkpLCAodW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZf
Y2FwYWJpbGl0eSkpKSkKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBy
ZXR1cm4gbWF4X2NzdGF0ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhcmNoX2hhc19h
Y3BpX3BkYyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBjcHVpbmZvX3g4NiAqYyA9ICYo
Kih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfaW5mbykp
ICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7ICh7IHVu
c2lnbmVkIGxvbmcgX19wdHI7IF9fYXNtX18gKCIiIDogIj1yIihfX3B0cikgOiAiMCIoKHR5cGVv
ZigqKCgmKGNwdV9pbmZvKSkpKSAqKSgoJihjcHVfaW5mbykpKSkpOyAodHlwZW9mKCh0eXBlb2Yo
KigoJihjcHVfaW5mbykpKSkgKikoKCYoY3B1X2luZm8pKSkpKSAoX19wdHIgKyAoKChfX3Blcl9j
cHVfb2Zmc2V0WygwKV0pKSkpOyB9KTsgfSkpOwoxNDQ3NDogIHJldHVybiAoYy0+eDg2X3ZlbmRv
ciA9PSAwIHx8CjE0NDc0OiAgIGMtPng4Nl92ZW5kb3IgPT0gNSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgYXJjaF9hY3BpX3NldF9wZGNfYml0cyh1MzIgKmJ1ZikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmKCooeyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBw
X3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2luZm8pKSArIDApKSgodm9pZCAqKTApOyAodm9pZClf
X3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9f
ICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfaW5mbykpKSkgKikoKCYo
Y3B1X2luZm8pKSkpKTsgKHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2luZm8pKSkpICopKCgmKGNw
dV9pbmZvKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1X29mZnNldFsoMCldKSkpKTsgfSk7IH0p
KTsKMTQ0NzQ6IAoxNDQ3NDogIGJ1ZlsyXSB8PSAoKDB4MDAxMCkgfCAoMHgwMDA4KSB8ICgweDAw
MDIpIHwgKDB4MDEwMCkgfCAoMHgwMjAwKSk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKF9fYnVpbHRp
bl9jb25zdGFudF9wKCggNCozMisgNykpICYmICggKCgoKCA0KjMyKyA3KSk+PjUpPT0oMCkgJiYg
KDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAoKDE8PCgoIDAqMzIrIDApICYgMzEpKXwwfCgxPDwo
KCAwKjMyKyA1KSAmIDMxKSl8KDE8PCgoIDAqMzIrIDYpICYgMzEpKXwgKDE8PCgoIDAqMzIrIDgp
ICYgMzEpKXwwfCgxPDwoKCAwKjMyKzI0KSAmIDMxKSl8KDE8PCgoIDAqMzIrMTUpICYgMzEpKXwg
KDE8PCgoIDAqMzIrMjUpICYgMzEpKXwoMTw8KCggMCozMisyNikgJiAzMSkpKSApKSB8fCAoKCgo
IDQqMzIrIDcpKT4+NSk9PSgxKSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmICgoMTw8KCgg
MSozMisyOSkgJiAzMSkpfDApICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDIpICYmICgxVUw8
PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgzKSAmJiAo
MVVMPDwoKCggNCozMisgNykpJjMxKSAmICgoMTw8KCggMyozMisyMCkgJiAzMSkpKSApKSB8fCAo
KCgoIDQqMzIrIDcpKT4+NSk9PSg0KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmICgwKSAp
KSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSg1KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAm
IDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oNikgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYz
MSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDcpICYmICgxVUw8PCgoKCA0KjMyKyA3
KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSg4KSAmJiAoMVVMPDwoKCggNCoz
MisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oOSkgJiYgKDFVTDw8KCgo
IDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDEwKSAmJiAoMVVM
PDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTEpICYm
ICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgx
MikgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41
KT09KDEzKSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3
KSk+PjUpPT0oMTQpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQq
MzIrIDcpKT4+NSk9PSgxNSkgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgo
KCggNCozMisgNykpPj41KT09KDE2KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkg
fHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTcpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYg
MCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgxOCkgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYz
MSkgJiAwICkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkpKTsg
fSkpKSB8fCAoKGludCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkp
ID8gMSA6IHRlc3RfYml0KCggNCozMisgNyksICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2X2Nh
cGFiaWxpdHkpKSkpCjE0NDc0OiAgIGJ1ZlsyXSB8PSAoKDB4MDAwOCkgfCAoMHgwMDAyKSB8ICgw
eDAwMjApIHwgKDB4MDgwMCkgfCAoMHgwMDAxKSk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKF9fYnVp
bHRpbl9jb25zdGFudF9wKCggMCozMisyMikpICYmICggKCgoKCAwKjMyKzIyKSk+PjUpPT0oMCkg
JiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAoKDE8PCgoIDAqMzIrIDApICYgMzEpKXwwfCgx
PDwoKCAwKjMyKyA1KSAmIDMxKSl8KDE8PCgoIDAqMzIrIDYpICYgMzEpKXwgKDE8PCgoIDAqMzIr
IDgpICYgMzEpKXwwfCgxPDwoKCAwKjMyKzI0KSAmIDMxKSl8KDE8PCgoIDAqMzIrMTUpICYgMzEp
KXwgKDE8PCgoIDAqMzIrMjUpICYgMzEpKXwoMTw8KCggMCozMisyNikgJiAzMSkpKSApKSB8fCAo
KCgoIDAqMzIrMjIpKT4+NSk9PSgxKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgoMTw8
KCggMSozMisyOSkgJiAzMSkpfDApICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDIpICYmICgx
VUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgzKSAm
JiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgoMTw8KCggMyozMisyMCkgJiAzMSkpKSApKSB8
fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg0KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgw
KSApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg1KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMx
KSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oNikgJiYgKDFVTDw8KCgoIDAqMzIrMjIp
KSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDcpICYmICgxVUw8PCgoKCAwKjMy
KzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg4KSAmJiAoMVVMPDwoKCgg
MCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oOSkgJiYgKDFVTDw8
KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDEwKSAmJiAo
MVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oMTEp
ICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9
PSgxMikgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikp
Pj41KT09KDEzKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMy
KzIyKSk+PjUpPT0oMTQpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgo
IDAqMzIrMjIpKT4+NSk9PSgxNSkgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8
ICgoKCggMCozMisyMikpPj41KT09KDE2KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAg
KSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oMTcpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEp
ICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgxOCkgJiYgKDFVTDw8KCgoIDAqMzIrMjIp
KSYzMSkgJiAwICkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkp
KTsgfSkpKSB8fCAoKGludCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0p
KSkpID8gMSA6IHRlc3RfYml0KCggMCozMisyMiksICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2
X2NhcGFiaWxpdHkpKSkpCjE0NDc0OiAgIGJ1ZlsyXSB8PSAoMHgwMDA0KTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmICghKF9fYnVpbHRpbl9jb25zdGFudF9wKCgg
NCozMisgMykpICYmICggKCgoKCA0KjMyKyAzKSk+PjUpPT0oMCkgJiYgKDFVTDw8KCgoIDQqMzIr
IDMpKSYzMSkgJiAoKDE8PCgoIDAqMzIrIDApICYgMzEpKXwwfCgxPDwoKCAwKjMyKyA1KSAmIDMx
KSl8KDE8PCgoIDAqMzIrIDYpICYgMzEpKXwgKDE8PCgoIDAqMzIrIDgpICYgMzEpKXwwfCgxPDwo
KCAwKjMyKzI0KSAmIDMxKSl8KDE8PCgoIDAqMzIrMTUpICYgMzEpKXwgKDE8PCgoIDAqMzIrMjUp
ICYgMzEpKXwoMTw8KCggMCozMisyNikgJiAzMSkpKSApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9
PSgxKSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmICgoMTw8KCggMSozMisyOSkgJiAzMSkp
fDApICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDIpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkm
MzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgzKSAmJiAoMVVMPDwoKCggNCozMisg
MykpJjMxKSAmICgoMTw8KCggMyozMisyMCkgJiAzMSkpKSApKSB8fCAoKCgoIDQqMzIrIDMpKT4+
NSk9PSg0KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmICgwKSApKSB8fCAoKCgoIDQqMzIr
IDMpKT4+NSk9PSg1KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0
KjMyKyAzKSk+PjUpPT0oNikgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgo
KCggNCozMisgMykpPj41KT09KDcpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8
fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSg4KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAg
KSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oOSkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkg
JiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDEwKSAmJiAoMVVMPDwoKCggNCozMisgMykp
JjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oMTEpICYmICgxVUw8PCgoKCA0KjMy
KyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgxMikgJiYgKDFVTDw8KCgo
IDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDEzKSAmJiAoMVVM
PDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oMTQpICYm
ICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgx
NSkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41
KT09KDE2KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAz
KSk+PjUpPT0oMTcpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQq
MzIrIDMpKT4+NSk9PSgxOCkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgo
aW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkpKTsgfSkpKSB8fCAoKGludCko
c2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkpID8gMSA6IHRlc3RfYml0
KCggNCozMisgMyksICh1bnNpZ25lZCBsb25nICopKChjKS0+eDg2X2NhcGFiaWxpdHkpKSkpCjE0
NDc0OiAgIGJ1ZlsyXSAmPSB+KCgweDAyMDApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBhY3BpX2hhc19jcHVfaW5fbWFkdCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhIWFj
cGlfbGFwaWM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhY3BpX2FyY2hf
c2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB4ODZfaW5pdC5hY3Bp
LnNldF9yb290X3BvaW50ZXIoYWRkcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dTY0IGFjcGlfYXJjaF9nZXRfcm9vdF9wb2ludGVyKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIHg4Nl9pbml0LmFjcGkuZ2V0X3Jvb3RfcG9pbnRlcigpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiB2b2lkIGFjcGlfZ2VuZXJpY19yZWR1Y2VkX2h3X2luaXQodm9pZCk7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgeDg2X2RlZmF1bHRfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcik7CjE0NDc0OiB1
NjQgeDg2X2RlZmF1bHRfZ2V0X3Jvb3RfcG9pbnRlcih2b2lkKTsKMTQ0NzQ6ICMgMTY1ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJvdF90IGFyY2hfYXBlaV9nZXRf
bWVtX2F0dHJpYnV0ZShwaHlzX2FkZHJfdCBhZGRyKQoxNDQ3NDogewoxNDQ3NDogIyAxODAgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIgoxNDQ3NDogIHJldHVybiAoKHBncHJvdF90KSB7
ICgoKCgoKHB0ZXZhbF90KSgxKSkgPDwgMCl8KCgocHRldmFsX3QpKDEpKSA8PCAxKXwgMHwoKChw
dGV2YWxfdCkoMSkpIDw8IDUpfCgoKHB0ZXZhbF90KSgxKSkgPDwgNjMpfCgoKHB0ZXZhbF90KSgx
KSkgPDwgNil8IDB8KCgocHRldmFsX3QpKDEpKSA8PCA4KSkgfCAwKSAmIF9fZGVmYXVsdF9rZXJu
ZWxfcHRlX21hc2spIH0gKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzAgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vZml4bWFwLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3ZzeXNjYWxs
LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB2c3lzY2Fs
bF9udW0gewoxNDQ3NDogIF9fTlJfdmdldHRpbWVvZmRheSwKMTQ0NzQ6ICBfX05SX3Z0aW1lLAox
NDQ3NDogIF9fTlJfdmdldGNwdSwKMTQ0NzQ6IH07CjE0NDc0OiAjIDM3ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2ZpeG1hcC5oIiAyCjE0NDc0OiAjIDc1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2ZpeG1hcC5oIgoxNDQ3NDogZW51bSBmaXhlZF9hZGRyZXNzZXMgewoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgVlNZU0NBTExfUEFHRSA9ICgoKCgoKCgtMTBVTCA8PCAy
MCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwgPDwgMjApICsgKCgx
VUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikpIC0gKC0xMFVMIDw8
IDIwKSkgPj4gMTIsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEZJWF9EQkdQX0JBU0UsCjE0NDc0
OiAgRklYX0VBUkxZQ09OX01FTV9CQVNFLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgRklYX0FQSUNfQkFTRSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRklYX0lPX0FQ
SUNfQkFTRV8wLAoxNDQ3NDogIEZJWF9JT19BUElDX0JBU0VfRU5EID0gRklYX0lPX0FQSUNfQkFT
RV8wICsgMTI4IC0gMSwKMTQ0NzQ6ICMgMTAzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1h
cC5oIgoxNDQ3NDogIEZJWF9QQVJBVklSVF9CT09UTUFQLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRklYX0FQRUlfR0hFU19J
UlEsCjE0NDc0OiAgRklYX0FQRUlfR0hFU19OTUksCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9f
ZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMsCjE0NDc0OiAjIDEyNyAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKMTQ0NzQ6ICBGSVhfQlRNQVBfRU5EID0KMTQ0NzQ6ICAg
KF9fZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgXgoxNDQ3NDogICAgKF9fZW5kX29m
X3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgKyAoNjQgKiA4KSAtIDEpKSAmCjE0NDc0OiAgIC01
MTIKMTQ0NzQ6ICAgPyBfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICsgKDY0ICog
OCkgLQoxNDQ3NDogICAgIChfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICYgKCg2
NCAqIDgpIC0gMSkpCjE0NDc0OiAgIDogX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3Nl
cywKMTQ0NzQ6ICBGSVhfQlRNQVBfQkVHSU4gPSBGSVhfQlRNQVBfRU5EICsgKDY0ICogOCkgLSAx
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gdm9pZCByZXNlcnZlX3RvcF9hZGRyZXNzKHVuc2lnbmVkIGxvbmcgcmVzZXJ2ZSk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gaW50IGZpeG1hcHNfc2V0OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gcHRlX3QgKmttYXBf
cHRlOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gcHRlX3QgKnBrbWFwX3BhZ2VfdGFibGU7CjE0NDc0
OiAKMTQ0NzQ6IHZvaWQgX19uYXRpdmVfc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBp
ZHgsIHB0ZV90IHB0ZSk7CjE0NDc0OiB2b2lkIG5hdGl2ZV9zZXRfZml4bWFwKHVuc2lnbmVkIGlk
eCwKMTQ0NzQ6ICAgICAgICAgIHBoeXNfYWRkcl90IHBoeXMsIHBncHJvdF90IGZsYWdzKTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3Nl
cyBpZHgsCjE0NDc0OiAgICAgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgZmxhZ3MpCjE0NDc0
OiB7CjE0NDc0OiAgbmF0aXZlX3NldF9maXhtYXAoaWR4LCBwaHlzLCBmbGFncyk7CjE0NDc0OiB9
CjE0NDc0OiAjIDE4MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKMTQ0NzQ6IHZv
aWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRl
X18oKF9fY29sZF9fKSkgKmVhcmx5X21lbXJlbWFwX2VuY3J5cHRlZChyZXNvdXJjZV9zaXplX3Qg
cGh5c19hZGRyLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CjE0NDc0OiB2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpICplYXJseV9tZW1yZW1hcF9lbmNyeXB0ZWRfd3AocmVzb3VyY2Vfc2l6
ZV90IHBoeXNfYWRkciwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CjE0NDc0OiB2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpICplYXJseV9tZW1yZW1hcF9kZWNyeXB0ZWQocmVzb3VyY2Vfc2l6ZV90
IHBoeXNfYWRkciwKMTQ0NzQ6ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoxNDQ3NDog
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1
dGVfXygoX19jb2xkX18pKSAqZWFybHlfbWVtcmVtYXBfZGVjcnlwdGVkX3dwKHJlc291cmNlX3Np
emVfdCBwaHlzX2FkZHIsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9maXhtYXAuaCIgMQoxNDQ3NDogIyAz
MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2ZpeG1hcC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2ln
bmVkIGludCBpZHgpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0
aW1lX2Fzc2VydF8zMih2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJVSUxEX0JVR19P
TiBmYWlsZWQ6ICIgImlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMiKSkpOyBpZiAoISgh
KGlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMpKSkgX19jb21waWxldGltZV9hc3NlcnRf
MzIoKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgcmV0dXJuICgoKCgoKCgtMTBVTCA8PCAyMCkgKyAo
KDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwgPDwgMjApICsgKCgxVUwpIDw8
IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikpIC0gKChpZHgpIDw8IDEyKSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgdmlydF90b19maXgoY29uc3Qg
dW5zaWduZWQgbG9uZyB2YWRkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5f
ZXhwZWN0KCEhKHZhZGRyID49ICgoKCgoKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8PCAxMikpLTEp
IHwgKChfX3R5cGVvZl9fKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKSkoKDE8PDIxKS0x
KSkpKzEpIC0gKCgxVUwpIDw8IDEyKSkgfHwgdmFkZHIgPCAoKCgoKCgoLTEwVUwgPDwgMjApICsg
KCgxVUwpIDw8IDEyKSktMSkgfCAoKF9fdHlwZW9mX18oKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8
PCAxMikpKSgoMTw8MjEpLTEpKSkrMSkgLSAoKDFVTCkgPDwgMTIpKSAtIChfX2VuZF9vZl9wZXJt
YW5lbnRfZml4ZWRfYWRkcmVzc2VzIDw8IDEyKSkpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGlu
ZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBf
X2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVn
X2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0
LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5w
b3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9hc20tZ2VuZXJpYy9maXhtYXAuaCIpLCAiaSIg
KDM4KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAo
MCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDE3KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1aWx0aW5fdW5yZWFjaGFi
bGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1
cm4gKCgoKCgoKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2Zf
XygoLTEwVUwgPDwgMjApICsgKCgxVUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVM
KSA8PCAxMikpIC0gKCh2YWRkcikmKH4oKCgxVUwpIDw8IDEyKS0xKSkpKSA+PiAxMik7CjE0NDc0
OiB9CjE0NDc0OiAjIDE5MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIgMgoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIF9fZWFybHlfc2V0X2ZpeG1h
cChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsCjE0NDc0OiAgICBwaHlzX2FkZHJfdCBwaHlzLCBw
Z3Byb3RfdCBmbGFncyk7CjE0NDc0OiAjIDEyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9o
YXJkaXJxLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6ICB1MTYgX19zb2Z0aXJxX3BlbmRpbmc7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IF9fbm1pX2NvdW50
OwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IGFwaWNfdGltZXJfaXJxczsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgaXJxX3NwdXJpb3VzX2NvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpY3Jf
cmVhZF9yZXRyeV9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IGt2
bV9wb3N0ZWRfaW50cl9pcGlzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBrdm1fcG9zdGVkX2ludHJf
d2FrZXVwX2lwaXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGt2bV9wb3N0ZWRfaW50cl9uZXN0ZWRf
aXBpczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB4ODZfcGxhdGZvcm1faXBpczsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgYXBpY19wZXJmX2lycXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGFw
aWNfaXJxX3dvcmtfaXJxczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBpcnFfcmVzY2hl
ZF9jb3VudDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXJxX2NhbGxfY291bnQ7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgaXJxX3RsYl9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCBpcnFfdGhlcm1hbF9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
aW50IGlycV90aHJlc2hvbGRfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCBpcnFfZGVmZXJyZWRfZXJyb3JfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVu
c2lnbmVkIGludCBpcnFfaHZfY2FsbGJhY2tfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHVuc2lnbmVkIGludCBpcnFfaHZfcmVlbmxpZ2h0ZW5tZW50X2NvdW50OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBoeXBlcnZfc3RpbWVyMF9jb3VudDsKMTQ0NzQ6IAoxNDQ3NDogfSBfX2F0dHJpYnV0
ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpIGlycV9jcHVzdGF0X3Q7CjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBf
X3R5cGVvZl9fKGlycV9jcHVzdGF0X3QpIGlycV9zdGF0IF9fYXR0cmlidXRlX18oKF9fYWxpZ25l
ZF9fKCgxIDw8ICg2KSkpKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYWNrX2JhZF9pcnEodW5zaWduZWQgaW50IGlycSk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50IGNwdSk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpOwox
NDQ3NDogIyA4MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGt2bV9zZXRfY3B1X2wxdGZfZmx1c2hfbDFkKHZvaWQpIHsgfQoxNDQ3NDogIyAxNSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiIDIKMTQ0NzQ6ICMgNDUgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vYXBpYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBnZW5lcmljX2FwaWNfcHJvYmUodm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGludCBhcGljX3ZlcmJvc2l0eTsKMTQ0NzQ6IGV4dGVybiBpbnQgbG9jYWxfYXBpY190aW1lcl9j
Ml9vazsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBkaXNhYmxlX2FwaWM7CjE0NDc0OiBleHRl
cm4gdW5zaWduZWQgaW50IGxhcGljX3RpbWVyX3BlcmlvZDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGVudW0gYXBpY19pbnRyX21vZGVfaWQgYXBpY19pbnRyX21vZGU7CjE0NDc0OiBlbnVtIGFwaWNf
aW50cl9tb2RlX2lkIHsKMTQ0NzQ6ICBBUElDX1BJQywKMTQ0NzQ6ICBBUElDX1ZJUlRVQUxfV0lS
RSwKMTQ0NzQ6ICBBUElDX1ZJUlRVQUxfV0lSRV9OT19DT05GSUcsCjE0NDc0OiAgQVBJQ19TWU1N
RVRSSUNfSU8sCjE0NDc0OiAgQVBJQ19TWU1NRVRSSUNfSU9fTk9fUk9VVElORwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX2lucXVpcmVfcmVtb3RlX2FwaWMo
aW50IGFwaWNpZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGRlZmF1bHRfaW5xdWlyZV9yZW1vdGVfYXBpYyhpbnQgYXBpY2lkKQox
NDQ3NDogewoxNDQ3NDogIGlmIChhcGljX3ZlcmJvc2l0eSA+PSAyKQoxNDQ3NDogICBfX2lucXVp
cmVfcmVtb3RlX2FwaWMoYXBpY2lkKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODkgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXBpYy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhcGljX2Zyb21fc21wX2NvbmZpZyh2b2lk
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBzbXBfZm91bmRfY29uZmlnICYmICFkaXNhYmxlX2Fw
aWM7CjE0NDc0OiB9CjE0NDc0OiAjIDEwMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgi
CjE0NDc0OiBleHRlcm4gaW50IHNldHVwX3Byb2ZpbGluZ190aW1lcih1bnNpZ25lZCBpbnQpOwox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9hcGljX21lbV93cml0ZSh1MzIgcmVnLCB1MzIgdikK
MTQ0NzQ6IHsKMTQ0NzQ6ICB2b2xhdGlsZSB1MzIgKmFkZHIgPSAodm9sYXRpbGUgdTMyICopKChm
aXhfdG9fdmlydChGSVhfQVBJQ19CQVNFKSkgKyByZWcpOwoxNDQ3NDogCjE0NDc0OiAgYXNtIF9f
aW5saW5lIHZvbGF0aWxlICgiIyBBTFQ6IG9sZG5zdHJcbiIgIjY2MTpcblx0IiAibW92bCAlMCwg
JVAxIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIi
Zi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIi
MSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpc
biIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAt
IC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKDE5KjMyICsgKDUp
KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJm
LSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0
aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMg
QUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAieGNoZ2wgJTAsICVQ
MSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIgOiAiPXIiICh2KSwgIj1tIiAo
KmFkZHIpIDogImkiICgwKSwgIjAiICh2KSwgIm0iICgqYWRkcikpCjE0NDc0OiAKMTQ0NzQ6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHUzMiBuYXRpdmVfYXBpY19tZW1fcmVhZCh1MzIgcmVnKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAqKCh2b2xhdGlsZSB1MzIgKikoKGZpeF90b192aXJ0KEZJWF9BUElDX0JBU0Up
KSArIHJlZykpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBuYXRpdmVfYXBp
Y193YWl0X2ljcl9pZGxlKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHUzMiBuYXRpdmVfc2FmZV9hcGlj
X3dhaXRfaWNyX2lkbGUodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBuYXRpdmVfYXBpY19pY3Jf
d3JpdGUodTMyIGxvdywgdTMyIGlkKTsKMTQ0NzQ6IGV4dGVybiB1NjQgbmF0aXZlX2FwaWNfaWNy
X3JlYWQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYXBpY19pc194MmFwaWNfZW5hYmxlZCh2
b2lkKQoxNDQ3NDogewoxNDQ3NDogIHU2NCBtc3I7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAocmRtc3Js
X3NhZmUoMHgwMDAwMDAxYiwgJm1zcikpCjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICBy
ZXR1cm4gbXNyICYgKDFVTCA8PCAxMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2
b2lkIGVuYWJsZV9JUl94MmFwaWModm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2V0
X3BoeXNpY2FsX2Jyb2FkY2FzdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBsYXBp
Y19nZXRfbWF4bHZ0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY2xlYXJfbG9jYWxfQVBJQyh2
b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRpc2Nvbm5lY3RfYnNwX0FQSUMoaW50IHZpcnRfd2ly
ZV9zZXR1cCk7CjE0NDc0OiBleHRlcm4gdm9pZCBkaXNhYmxlX2xvY2FsX0FQSUModm9pZCk7CjE0
NDc0OiBleHRlcm4gdm9pZCBhcGljX3NvZnRfZGlzYWJsZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGxhcGljX3NodXRkb3duKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc3luY19BcmJfSURz
KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW5pdF9ic3BfQVBJQyh2b2lkKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGFwaWNfaW50cl9tb2RlX3NlbGVjdCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGFwaWNfaW50cl9tb2RlX2luaXQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBpbml0X2FwaWNf
bWFwcGluZ3Modm9pZCk7CjE0NDc0OiB2b2lkIHJlZ2lzdGVyX2xhcGljX2FkZHJlc3ModW5zaWdu
ZWQgbG9uZyBhZGRyZXNzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNldHVwX2Jvb3RfQVBJQ19jbG9j
ayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNldHVwX3NlY29uZGFyeV9BUElDX2Nsb2NrKHZv
aWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbGFwaWNfdXBkYXRlX3RzY19mcmVxKHZvaWQpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBhcGljX2ZvcmNlX2VuYWJsZSh1bnNpZ25lZCBsb25nIGFk
ZHIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIC0xOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBhcGljX2FwX3NldHVwKHZvaWQpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQg
YXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHNldHVwX0FQSUNf
ZWlsdnQodTggbHZ0X29mZiwgdTggdmVjdG9yLCB1OCBtc2dfdHlwZSwgdTggbWFzayk7CjE0NDc0
OiBleHRlcm4gdm9pZCBsYXBpY19hc3NpZ25fc3lzdGVtX3ZlY3RvcnModm9pZCk7CjE0NDc0OiBl
eHRlcm4gdm9pZCBsYXBpY19hc3NpZ25fbGVnYWN5X3ZlY3Rvcih1bnNpZ25lZCBpbnQgaXNhaXJx
LCBib29sIHJlcGxhY2UpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbGFwaWNfb25saW5lKHZvaWQpOwox
NDQ3NDogZXh0ZXJuIHZvaWQgbGFwaWNfb2ZmbGluZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBib29s
IGFwaWNfbmVlZHNfcGl0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBhcGljX3Nl
bmRfSVBJX2FsbGJ1dHNlbGYodW5zaWduZWQgaW50IHZlY3Rvcik7CjE0NDc0OiAjIDI3MSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoZWNrX3gyYXBpYyh2b2lk
KSB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgeDJhcGljX3NldHVwKHZvaWQpIHsgfQoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHgyYXBp
Y19lbmFibGVkKHZvaWQpIHsgcmV0dXJuIDA7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaXJxX2RhdGE7CjE0NDc0OiAjIDI5MCAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCjE0NDc0OiBzdHJ1Y3QgYXBpYyB7CjE0NDc0OiAKMTQ0
NzQ6ICB2b2lkICgqZW9pX3dyaXRlKSh1MzIgcmVnLCB1MzIgdik7CjE0NDc0OiAgdm9pZCAoKm5h
dGl2ZV9lb2lfd3JpdGUpKHUzMiByZWcsIHUzMiB2KTsKMTQ0NzQ6ICB2b2lkICgqd3JpdGUpKHUz
MiByZWcsIHUzMiB2KTsKMTQ0NzQ6ICB1MzIgKCpyZWFkKSh1MzIgcmVnKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKndhaXRfaWNyX2lkbGUpKHZvaWQpOwoxNDQ3NDogIHUzMiAoKnNh
ZmVfd2FpdF9pY3JfaWRsZSkodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2VuZF9JUEkp
KGludCBjcHUsIGludCB2ZWN0b3IpOwoxNDQ3NDogIHZvaWQgKCpzZW5kX0lQSV9tYXNrKShjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgaW50IHZlY3Rvcik7CjE0NDc0OiAgdm9pZCAoKnNlbmRf
SVBJX21hc2tfYWxsYnV0c2VsZikoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1zaywgaW50IHZlYyk7
CjE0NDc0OiAgdm9pZCAoKnNlbmRfSVBJX2FsbGJ1dHNlbGYpKGludCB2ZWN0b3IpOwoxNDQ3NDog
IHZvaWQgKCpzZW5kX0lQSV9hbGwpKGludCB2ZWN0b3IpOwoxNDQ3NDogIHZvaWQgKCpzZW5kX0lQ
SV9zZWxmKShpbnQgdmVjdG9yKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTMyIGRlc3RfbG9n
aWNhbDsKMTQ0NzQ6ICB1MzIgZGlzYWJsZV9lc3I7CjE0NDc0OiAgdTMyIGlycV9kZWxpdmVyeV9t
b2RlOwoxNDQ3NDogIHUzMiBpcnFfZGVzdF9tb2RlOwoxNDQ3NDogCjE0NDc0OiAgdTMyICgqY2Fs
Y19kZXN0X2FwaWNpZCkodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHU2NCAoKmljcl9yZWFkKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqaWNyX3dyaXRlKSh1MzIgbG93
LCB1MzIgaGlnaCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnByb2JlKSh2b2lkKTsK
MTQ0NzQ6ICBpbnQgKCphY3BpX21hZHRfb2VtX2NoZWNrKShjaGFyICpvZW1faWQsIGNoYXIgKm9l
bV90YWJsZV9pZCk7CjE0NDc0OiAgaW50ICgqYXBpY19pZF92YWxpZCkodTMyIGFwaWNpZCk7CjE0
NDc0OiAgaW50ICgqYXBpY19pZF9yZWdpc3RlcmVkKSh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogIGJv
b2wgKCpjaGVja19hcGljaWRfdXNlZCkocGh5c2lkX21hc2tfdCAqbWFwLCBpbnQgYXBpY2lkKTsK
MTQ0NzQ6ICB2b2lkICgqaW5pdF9hcGljX2xkcikodm9pZCk7CjE0NDc0OiAgdm9pZCAoKmlvYXBp
Y19waHlzX2lkX21hcCkocGh5c2lkX21hc2tfdCAqcGh5c19tYXAsIHBoeXNpZF9tYXNrX3QgKnJl
dG1hcCk7CjE0NDc0OiAgdm9pZCAoKnNldHVwX2FwaWNfcm91dGluZykodm9pZCk7CjE0NDc0OiAg
aW50ICgqY3B1X3ByZXNlbnRfdG9fYXBpY2lkKShpbnQgbXBzX2NwdSk7CjE0NDc0OiAgdm9pZCAo
KmFwaWNpZF90b19jcHVfcHJlc2VudCkoaW50IHBoeXNfYXBpY2lkLCBwaHlzaWRfbWFza190ICpy
ZXRtYXApOwoxNDQ3NDogIGludCAoKmNoZWNrX3BoeXNfYXBpY2lkX3ByZXNlbnQpKGludCBwaHlz
X2FwaWNpZCk7CjE0NDc0OiAgaW50ICgqcGh5c19wa2dfaWQpKGludCBjcHVpZF9hcGljLCBpbnQg
aW5kZXhfbXNiKTsKMTQ0NzQ6IAoxNDQ3NDogIHUzMiAoKmdldF9hcGljX2lkKSh1bnNpZ25lZCBs
b25nIHgpOwoxNDQ3NDogIHUzMiAoKnNldF9hcGljX2lkKSh1bnNpZ25lZCBpbnQgaWQpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCp3YWtldXBfc2Vjb25kYXJ5X2NwdSkoaW50IGFwaWNp
ZCwgdW5zaWduZWQgbG9uZyBzdGFydF9laXApOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmlucXVp
cmVfcmVtb3RlX2FwaWMpKGludCBhcGljaWQpOwoxNDQ3NDogIyAzNTYgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYXBpYy5oIgoxNDQ3NDogIGNoYXIgKm5hbWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBhcGljICphcGljOwoxNDQ3NDogIyAzODQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5o
IgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBhcGljICpfX2FwaWNkcml2ZXJzW10sICpfX2FwaWNkcml2
ZXJzX2VuZFtdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBpbnQgd2FrZXVwX3NlY29uZGFyeV9jcHVfdmlhX25taShpbnQgYXBpY2lkLCB1bnNp
Z25lZCBsb25nIHN0YXJ0X2VpcCk7CjE0NDc0OiBleHRlcm4gaW50IGxhcGljX2Nhbl91bnBsdWdf
Y3B1KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgYXBp
Y19yZWFkKHUzMiByZWcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFwaWMtPnJlYWQocmVnKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcGljX3dyaXRlKHUzMiByZWcsIHUzMiB2YWwp
CjE0NDc0OiB7CjE0NDc0OiAgYXBpYy0+d3JpdGUocmVnLCB2YWwpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGFwaWNfZW9pKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgYXBpYy0+ZW9pX3dy
aXRlKDB4QjAsIDB4MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBhcGljX2ljcl9yZWFk
KHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFwaWMtPmljcl9yZWFkKCk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgYXBpY19pY3Jfd3JpdGUodTMyIGxvdywgdTMyIGhpZ2gpCjE0
NDc0OiB7CjE0NDc0OiAgYXBpYy0+aWNyX3dyaXRlKGxvdywgaGlnaCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYXBpY193YWl0X2ljcl9pZGxlKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAg
YXBpYy0+d2FpdF9pY3JfaWRsZSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgc2FmZV9h
cGljX3dhaXRfaWNyX2lkbGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXBpYy0+c2Fm
ZV93YWl0X2ljcl9pZGxlKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9f
YXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChf
X2NvbGRfXykpIGFwaWNfc2V0X2VvaV93cml0ZSh2b2lkICgqZW9pX3dyaXRlKSh1MzIgcmVnLCB1
MzIgdikpOwoxNDQ3NDogIyA0NDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oIgoxNDQ3
NDogZXh0ZXJuIHZvaWQgYXBpY19hY2tfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSk7CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYWNrX0FQSUNfaXJxKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhcGljX2VvaSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgbGFwaWNfdmVjdG9yX3NldF9pbl9pcnIodW5zaWduZWQgaW50IHZl
Y3RvcikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1MzIgaXJyID0gYXBpY19yZWFkKDB4MjAwICsgKHZlY3Rv
ciAvIDMyICogMHgxMCkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICEhKGlyciAmICgxVSA8PCAo
dmVjdG9yICUgMzIpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGRlZmF1bHRf
Z2V0X2FwaWNfaWQodW5zaWduZWQgbG9uZyB4KQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGlu
dCB2ZXIgPSAoKGFwaWNfcmVhZCgweDMwKSkgJiAweEZGdSk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAo
KCh2ZXIpID49IDB4MTQpIHx8IChfX2J1aWx0aW5fY29uc3RhbnRfcCgoIDMqMzIrMjYpKSAmJiAo
ICgoKCggMyozMisyNikpPj41KT09KDApICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgKCgx
PDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisgNSkgJiAzMSkpfCgxPDwoKCAwKjMy
KyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8MHwoMTw8KCggMCozMisyNCkgJiAz
MSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAwKjMyKzI1KSAmIDMxKSl8KDE8PCgo
IDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMSkgJiYgKDFVTDw8
KCgoIDMqMzIrMjYpKSYzMSkgJiAoKDE8PCgoIDEqMzIrMjkpICYgMzEpKXwwKSApKSB8fCAoKCgo
IDMqMzIrMjYpKT4+NSk9PSgyKSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwg
KCgoKCAzKjMyKzI2KSk+PjUpPT0oMykgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoKDE8
PCgoIDMqMzIrMjApICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oNCkgJiYgKDFV
TDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoMCkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oNSkg
JiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09
KDYpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+
NSk9PSg3KSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2
KSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyoz
MisyNikpPj41KT09KDkpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgo
IDMqMzIrMjYpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8
ICgoKCggMyozMisyNikpPj41KT09KDExKSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAg
KSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTIpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEp
ICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxMykgJiYgKDFVTDw8KCgoIDMqMzIrMjYp
KSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDE0KSAmJiAoMVVMPDwoKCggMyoz
MisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTUpICYmICgxVUw8PCgo
KCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxNikgJiYgKDFV
TDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDE3KSAm
JiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0o
MTgpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKGludCkoc2l6ZW9mKHN0
cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQpKHNpemVvZihzdHJ1Y3Qg
eyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2JpdCgoIDMqMzIrMjYpLCAo
dW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZfY2FwYWJpbGl0eSkpKSkKMTQ0
NzQ6ICAgcmV0dXJuICh4ID4+IDI0KSAmIDB4RkY7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1
cm4gKHggPj4gMjQpICYgMHgwRjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZ2VuZXJpY19i
aWdzbXBfcHJvYmUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgiIDEKMTQ0NzQ6ICMgNDg2ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2FwaWMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5Iikp
KSBfX3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNpZDsgZXh0ZXJuIF9fdHlwZW9mX18o
dTE2KSAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9fKHUx
NikgeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9tYXBbXTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBhcGljIGFwaWNfbm9vcDsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IHJlYWRf
YXBpY19pZCh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHVuc2lnbmVkIGludCByZWcgPSBhcGljX3Jl
YWQoMHgyMCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYXBpYy0+Z2V0X2FwaWNfaWQocmVnKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBkZWZhdWx0X2FwaWNfaWRfdmFsaWQo
dTMyIGFwaWNpZCk7CjE0NDc0OiBleHRlcm4gaW50IGRlZmF1bHRfYWNwaV9tYWR0X29lbV9jaGVj
ayhjaGFyICosIGNoYXIgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBkZWZhdWx0X3NldHVwX2FwaWNf
cm91dGluZyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHUzMiBhcGljX2RlZmF1bHRfY2Fs
Y19hcGljaWQodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiBleHRlcm4gdTMyIGFwaWNfZmxhdF9j
YWxjX2FwaWNpZCh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wg
ZGVmYXVsdF9jaGVja19hcGljaWRfdXNlZChwaHlzaWRfbWFza190ICptYXAsIGludCBhcGljaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGVmYXVsdF9pb2FwaWNfcGh5c19pZF9tYXAocGh5c2lkX21h
c2tfdCAqcGh5c19tYXAsIHBoeXNpZF9tYXNrX3QgKnJldG1hcCk7CjE0NDc0OiBleHRlcm4gaW50
IGRlZmF1bHRfY3B1X3ByZXNlbnRfdG9fYXBpY2lkKGludCBtcHNfY3B1KTsKMTQ0NzQ6IGV4dGVy
biBpbnQgZGVmYXVsdF9jaGVja19waHlzX2FwaWNpZF9wcmVzZW50KGludCBwaHlzX2FwaWNpZCk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGJvb2wgYXBpY19pZF9pc19w
cmltYXJ5X3RocmVhZCh1bnNpZ25lZCBpbnQgaWQpOwoxNDQ3NDogdm9pZCBhcGljX3NtdF91cGRh
dGUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgaXJxX2VudGVyKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaXJxX2V4aXQo
dm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZW50ZXJpbmdfaXJxKHZvaWQpCjE0NDc0OiB7CjE0
NDc0OiAgaXJxX2VudGVyKCk7CjE0NDc0OiAga3ZtX3NldF9jcHVfbDF0Zl9mbHVzaF9sMWQoKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBlbnRlcmluZ19hY2tfaXJxKHZvaWQpCjE0NDc0
OiB7CjE0NDc0OiAgZW50ZXJpbmdfaXJxKCk7CjE0NDc0OiAgYWNrX0FQSUNfaXJxKCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaXBpX2VudGVyaW5nX2Fja19pcnEodm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpcnFfZW50ZXIoKTsKMTQ0NzQ6ICBhY2tfQVBJQ19pcnEoKTsKMTQ0NzQ6ICBr
dm1fc2V0X2NwdV9sMXRmX2ZsdXNoX2wxZCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGV4aXRpbmdfaXJxKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgaXJxX2V4aXQoKTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0aW5nX2Fja19pcnEodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBhY2tfQVBJQ19pcnEoKTsKMTQ0NzQ6ICBpcnFfZXhpdCgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gdm9pZCBpb2FwaWNfemFwX2xvY2tzKHZvaWQpOwoxNDQ3NDogIyAxNCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIgMgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9pcnFfdmVjdG9ycy5oIiAxCjE0NDc0OiAjIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
aW9fYXBpYy5oIiAyCjE0NDc0OiAjIDI4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lvX2FwaWMu
aCIKMTQ0NzQ6IHVuaW9uIElPX0FQSUNfcmVnXzAwIHsKMTQ0NzQ6ICB1MzIgcmF3OwoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHUzMiBfX3Jlc2VydmVkXzIgOiAxNCwKMTQ0NzQ6ICAgIExUUyA6
IDEsCjE0NDc0OiAgICBkZWxpdmVyeV90eXBlIDogMSwKMTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMSA6
IDgsCjE0NDc0OiAgICBJRCA6IDg7CjE0NDc0OiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkg
Yml0czsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIElPX0FQSUNfcmVnXzAxIHsKMTQ0
NzQ6ICB1MzIgcmF3OwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHUzMiB2ZXJzaW9uIDogOCwK
MTQ0NzQ6ICAgIF9fcmVzZXJ2ZWRfMiA6IDcsCjE0NDc0OiAgICBQUlEgOiAxLAoxNDQ3NDogICAg
ZW50cmllcyA6IDgsCjE0NDc0OiAgICBfX3Jlc2VydmVkXzEgOiA4OwoxNDQ3NDogIH0gX19hdHRy
aWJ1dGVfXyAoKHBhY2tlZCkpIGJpdHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBJ
T19BUElDX3JlZ18wMiB7CjE0NDc0OiAgdTMyIHJhdzsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
ICB1MzIgX19yZXNlcnZlZF8yIDogMjQsCjE0NDc0OiAgICBhcmJpdHJhdGlvbiA6IDQsCjE0NDc0
OiAgICBfX3Jlc2VydmVkXzEgOiA0OwoxNDQ3NDogIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkp
IGJpdHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBJT19BUElDX3JlZ18wMyB7CjE0
NDc0OiAgdTMyIHJhdzsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1MzIgYm9vdF9EVCA6IDEs
CjE0NDc0OiAgICBfX3Jlc2VydmVkXzEgOiAzMTsKMTQ0NzQ6ICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSBiaXRzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IElPX0FQSUNfcm91
dGVfZW50cnkgewoxNDQ3NDogIF9fdTMyIHZlY3RvciA6IDgsCjE0NDc0OiAgIGRlbGl2ZXJ5X21v
ZGUgOiAzLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBkZXN0X21vZGUgOiAxLAox
NDQ3NDogICBkZWxpdmVyeV9zdGF0dXMgOiAxLAoxNDQ3NDogICBwb2xhcml0eSA6IDEsCjE0NDc0
OiAgIGlyciA6IDEsCjE0NDc0OiAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICBtYXNrIDogMSwKMTQ0
NzQ6ICAgX19yZXNlcnZlZF8yIDogMTU7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBfX3Jlc2VydmVk
XzMgOiAyNCwKMTQ0NzQ6ICAgZGVzdCA6IDg7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18gKChwYWNr
ZWQpKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IElSX0lPX0FQSUNfcm91dGVfZW50cnkgewoxNDQ3
NDogIF9fdTY0IHZlY3RvciA6IDgsCjE0NDc0OiAgIHplcm8gOiAzLAoxNDQ3NDogICBpbmRleDIg
OiAxLAoxNDQ3NDogICBkZWxpdmVyeV9zdGF0dXMgOiAxLAoxNDQ3NDogICBwb2xhcml0eSA6IDEs
CjE0NDc0OiAgIGlyciA6IDEsCjE0NDc0OiAgIHRyaWdnZXIgOiAxLAoxNDQ3NDogICBtYXNrIDog
MSwKMTQ0NzQ6ICAgcmVzZXJ2ZWQgOiAzMSwKMTQ0NzQ6ICAgZm9ybWF0IDogMSwKMTQ0NzQ6ICAg
aW5kZXggOiAxNTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgaXJxX2FsbG9jX2luZm87CjE0NDc0OiBzdHJ1Y3QgaW9hcGljX2RvbWFpbl9j
Zmc7CjE0NDc0OiAjIDEyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgiCjE0NDc0
OiBleHRlcm4gaW50IG5yX2lvYXBpY3M7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbXBjX2lv
YXBpY19pZChpbnQgaW9hcGljKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgbXBjX2lvYXBp
Y19hZGRyKGludCBpb2FwaWMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbXBf
aXJxX2VudHJpZXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtcGNfaW50
c3JjIG1wX2lycXNbKDI1NiAqIDQpXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50
IHNraXBfaW9hcGljX3NldHVwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbm9p
b2FwaWNxdWlyazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IG5vaW9hcGljcmVy
b3V0ZTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHUzMiBnc2lfdG9wOwoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7CjE0NDc0OiAjIDE1NiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgiCjE0NDc0OiBzdHJ1Y3QgaXJxX2NmZzsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGlvYXBpY19pbnNlcnRfcmVzb3VyY2VzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBhcmNoX2Vhcmx5X2lvYXBpY19pbml0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50
IHNhdmVfaW9hcGljX2VudHJpZXModm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBtYXNrX2lvYXBp
Y19lbnRyaWVzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCByZXN0b3JlX2lvYXBpY19lbnRyaWVz
KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21f
bXBjKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0dXBfaW9hcGljX2lkc19mcm9tX21wY19u
b2NoZWNrKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IG1wX2ZpbmRfaW9hcGljKHUz
MiBnc2kpOwoxNDQ3NDogZXh0ZXJuIGludCBtcF9maW5kX2lvYXBpY19waW4oaW50IGlvYXBpYywg
dTMyIGdzaSk7CjE0NDc0OiBleHRlcm4gaW50IG1wX21hcF9nc2lfdG9faXJxKHUzMiBnc2ksIHVu
c2lnbmVkIGludCBmbGFncywKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGlycV9hbGxvY19pbmZvICpp
bmZvKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIG1wX3VubWFwX2lycShpbnQgaXJxKTsKMTQ0NzQ6IGV4
dGVybiBpbnQgbXBfcmVnaXN0ZXJfaW9hcGljKGludCBpZCwgdTMyIGFkZHJlc3MsIHUzMiBnc2lf
YmFzZSwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBpb2FwaWNfZG9tYWluX2NmZyAqY2ZnKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgbXBfdW5yZWdpc3Rlcl9pb2FwaWModTMyIGdzaV9iYXNlKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgbXBfaW9hcGljX3JlZ2lzdGVyZWQodTMyIGdzaV9iYXNlKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHZvaWQgaW9hcGljX3NldF9hbGxvY19hdHRyKHN0cnVjdCBpcnFfYWxsb2Nf
aW5mbyAqaW5mbywKMTQ0NzQ6ICAgICAgIGludCBub2RlLCBpbnQgdHJpZ2dlciwgaW50IHBvbGFy
aXR5KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgbXBfc2F2ZV9pcnEoc3RydWN0IG1wY19p
bnRzcmMgKm0pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkaXNhYmxlX2lvYXBpY19zdXBw
b3J0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBpb19hcGlj
X2luaXRfbWFwcGluZ3Modm9pZCk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IG5hdGl2ZV9p
b19hcGljX3JlYWQodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcpOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgbmF0aXZlX3Jlc3RvcmVfYm9vdF9pcnFfbW9kZSh2b2lkKTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdW5zaWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWdu
ZWQgaW50IHJlZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geDg2X2FwaWNfb3BzLmlvX2FwaWNf
cmVhZChhcGljLCByZWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXR1
cF9JT19BUElDKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZW5hYmxlX0lPX0FQSUModm9pZCk7
CjE0NDc0OiBleHRlcm4gdm9pZCBjbGVhcl9JT19BUElDKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgcmVzdG9yZV9ib290X2lycV9tb2RlKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGludCBJT19BUElD
X2dldF9QQ0lfaXJxX3ZlY3RvcihpbnQgYnVzLCBpbnQgZGV2Zm4sIGludCBwaW4pOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgcHJpbnRfSU9fQVBJQ3Modm9pZCk7CjE0NDc0OiAjIDE2ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3NtcC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzbXBfbnVtX3NpYmxpbmdzOwoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGludCBudW1fcHJvY2Vzc29yczsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9fYXR0cmli
dXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVv
Zl9fKGNwdW1hc2tfdmFyX3QpIGNwdV9zaWJsaW5nX21hcDsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJp
YnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBl
b2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfY29yZV9tYXA7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1
dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9m
X18oY3B1bWFza192YXJfdCkgY3B1X2RpZV9tYXA7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0
dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190
eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfbGxjX3NoYXJlZF9tYXA7CjE0NDc0OiBleHRlcm4g
X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkp
IF9fdHlwZW9mX18odTE2KSBjcHVfbGxjX2lkOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18o
KHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKGlu
dCkgY3B1X251bWJlcjsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGNwdW1hc2sgKmNwdV9sbGNfc2hh
cmVkX21hc2soaW50IGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCooeyBkbyB7IGNvbnN0
IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkgKyAw
KSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgKHsgdW5zaWdu
ZWQgbG9uZyBfX3B0cjsgX19hc21fXyAoIiIgOiAiPXIiKF9fcHRyKSA6ICIwIigodHlwZW9mKCoo
KCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgoJihjcHVfbGxjX3NoYXJlZF9tYXApKSkpKTsg
KHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgoJihjcHVfbGxj
X3NoYXJlZF9tYXApKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVfb2Zmc2V0WyhjcHUpXSkpKSk7
IH0pOyB9KSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChz
ZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1MTYp
IHg4Nl9jcHVfdG9fYXBpY2lkOyBleHRlcm4gX190eXBlb2ZfXyh1MTYpICp4ODZfY3B1X3RvX2Fw
aWNpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgeDg2X2NwdV90b19hcGljaWRf
ZWFybHlfbWFwW107CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEu
LnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9mX18odTMyKSB4ODZfY3B1X3RvX2Fj
cGlpZDsgZXh0ZXJuIF9fdHlwZW9mX18odTMyKSAqeDg2X2NwdV90b19hY3BpaWRfZWFybHlfcHRy
OyBleHRlcm4gX190eXBlb2ZfXyh1MzIpIHg4Nl9jcHVfdG9fYWNwaWlkX2Vhcmx5X21hcFtdOwox
NDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIuLnJl
YWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNpZDsgZXh0ZXJu
IF9fdHlwZW9mX18odTE2KSAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7IGV4dGVybiBf
X3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9tYXBbXTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qgc21wX29wcyB7CjE0NDc0OiAgdm9pZCAoKnNtcF9wcmVwYXJlX2Jvb3Rf
Y3B1KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqc21wX3ByZXBhcmVfY3B1cykodW5zaWduZWQgbWF4
X2NwdXMpOwoxNDQ3NDogIHZvaWQgKCpzbXBfY3B1c19kb25lKSh1bnNpZ25lZCBtYXhfY3B1cyk7
CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc3RvcF9vdGhlcl9jcHVzKShpbnQgd2FpdCk7CjE0NDc0
OiAgdm9pZCAoKmNyYXNoX3N0b3Bfb3RoZXJfY3B1cykodm9pZCk7CjE0NDc0OiAgdm9pZCAoKnNt
cF9zZW5kX3Jlc2NoZWR1bGUpKGludCBjcHUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqY3B1X3Vw
KSh1bnNpZ25lZCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwoxNDQ3NDogIGludCAo
KmNwdV9kaXNhYmxlKSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICgqY3B1X2RpZSkodW5zaWduZWQgaW50
IGNwdSk7CjE0NDc0OiAgdm9pZCAoKnBsYXlfZGVhZCkodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqc2VuZF9jYWxsX2Z1bmNfaXBpKShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzayk7CjE0
NDc0OiAgdm9pZCAoKnNlbmRfY2FsbF9mdW5jX3NpbmdsZV9pcGkpKGludCBjcHUpOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzZXRfY3B1X3NpYmxpbmdfbWFw
KGludCBjcHUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgc21wX29wcyBz
bXBfb3BzOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzbXBfb3BzLnN0b3Bfb3RoZXJfY3B1cygwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBzdG9wX290aGVyX2NwdXModm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzbXBfb3BzLnN0
b3Bfb3RoZXJfY3B1cygxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbXBfcHJlcGFy
ZV9ib290X2NwdSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuc21wX3ByZXBhcmVfYm9v
dF9jcHUoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbXBfcHJlcGFyZV9jcHVzKHVu
c2lnbmVkIGludCBtYXhfY3B1cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzbXBfb3BzLnNtcF9wcmVwYXJl
X2NwdXMobWF4X2NwdXMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNtcF9jcHVzX2Rv
bmUodW5zaWduZWQgaW50IG1heF9jcHVzKQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuc21wX2Nw
dXNfZG9uZShtYXhfY3B1cyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2NwdV91cCh1
bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRpZGxlKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBzbXBfb3BzLmNwdV91cChjcHUsIHRpZGxlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IF9fY3B1X2Rpc2FibGUodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gc21w
X29wcy5jcHVfZGlzYWJsZSgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fY3B1X2Rp
ZSh1bnNpZ25lZCBpbnQgY3B1KQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuY3B1X2RpZShjcHUp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBsYXlfZGVhZCh2b2lkKQoxNDQ3NDogewox
NDQ3NDogIHNtcF9vcHMucGxheV9kZWFkKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
c21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KQoxNDQ3NDogewoxNDQ3NDogIHNtcF9vcHMuc21w
X3NlbmRfcmVzY2hlZHVsZShjcHUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hf
c2VuZF9jYWxsX2Z1bmN0aW9uX3NpbmdsZV9pcGkoaW50IGNwdSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBz
bXBfb3BzLnNlbmRfY2FsbF9mdW5jX3NpbmdsZV9pcGkoY3B1KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBhcmNoX3NlbmRfY2FsbF9mdW5jdGlvbl9pcGlfbWFzayhjb25zdCBzdHJ1Y3Qg
Y3B1bWFzayAqbWFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzbXBfb3BzLnNlbmRfY2FsbF9mdW5jX2lw
aShtYXNrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBjcHVfZGlzYWJsZV9jb21tb24o
dm9pZCk7CjE0NDc0OiB2b2lkIG5hdGl2ZV9zbXBfcHJlcGFyZV9ib290X2NwdSh2b2lkKTsKMTQ0
NzQ6IHZvaWQgbmF0aXZlX3NtcF9wcmVwYXJlX2NwdXModW5zaWduZWQgaW50IG1heF9jcHVzKTsK
MTQ0NzQ6IHZvaWQgY2FsY3VsYXRlX21heF9sb2dpY2FsX3BhY2thZ2VzKHZvaWQpOwoxNDQ3NDog
dm9pZCBuYXRpdmVfc21wX2NwdXNfZG9uZSh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpOwoxNDQ3NDog
aW50IGNvbW1vbl9jcHVfdXAodW5zaWduZWQgaW50IGNwdW51bSwgc3RydWN0IHRhc2tfc3RydWN0
ICp0aWRsZSk7CjE0NDc0OiBpbnQgbmF0aXZlX2NwdV91cCh1bnNpZ25lZCBpbnQgY3B1bnVtLCBz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRpZGxlKTsKMTQ0NzQ6IGludCBuYXRpdmVfY3B1X2Rpc2FibGUo
dm9pZCk7CjE0NDc0OiBpbnQgY29tbW9uX2NwdV9kaWUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0
OiB2b2lkIG5hdGl2ZV9jcHVfZGllKHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogdm9pZCBobHRf
cGxheV9kZWFkKHZvaWQpOwoxNDQ3NDogdm9pZCBuYXRpdmVfcGxheV9kZWFkKHZvaWQpOwoxNDQ3
NDogdm9pZCBwbGF5X2RlYWRfY29tbW9uKHZvaWQpOwoxNDQ3NDogdm9pZCB3YmludmRfb25fY3B1
KGludCBjcHUpOwoxNDQ3NDogaW50IHdiaW52ZF9vbl9hbGxfY3B1cyh2b2lkKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBuYXRpdmVfc21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KTsKMTQ0NzQ6IHZv
aWQgbmF0aXZlX3NlbmRfY2FsbF9mdW5jX2lwaShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzayk7
CjE0NDc0OiB2b2lkIG5hdGl2ZV9zZW5kX2NhbGxfZnVuY19zaW5nbGVfaXBpKGludCBjcHUpOwox
NDQ3NDogdm9pZCB4ODZfaWRsZV90aHJlYWRfaW5pdCh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKmlkbGUpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHNtcF9zdG9yZV9ib290X2Nw
dV9pbmZvKHZvaWQpOwoxNDQ3NDogdm9pZCBzbXBfc3RvcmVfY3B1X2luZm8oaW50IGlkKTsKMTQ0
NzQ6IAoxNDQ3NDogIF9fYXR0cmlidXRlX18oKF9fZXh0ZXJuYWxseV92aXNpYmxlX18pKSB2b2lk
IHNtcF9yZWJvb3RfaW50ZXJydXB0KHZvaWQpOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19leHRl
cm5hbGx5X3Zpc2libGVfXykpIHZvaWQgc21wX3Jlc2NoZWR1bGVfaW50ZXJydXB0KHN0cnVjdCBw
dF9yZWdzICpyZWdzKTsKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZXh0ZXJuYWxseV92aXNpYmxl
X18pKSB2b2lkIHNtcF9jYWxsX2Z1bmN0aW9uX2ludGVycnVwdChzdHJ1Y3QgcHRfcmVncyAqcmVn
cyk7CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgdm9pZCBz
bXBfY2FsbF9mdW5jdGlvbl9zaW5nbGVfaW50ZXJydXB0KHN0cnVjdCBwdF9yZWdzICpyKTsKMTQ0
NzQ6ICMgMTg1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIgoxNDQ3NDogZXh0ZXJuIHVu
c2lnbmVkIGRpc2FibGVkX2NwdXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBo
YXJkX3NtcF9wcm9jZXNzb3JfaWQodm9pZCk7CjE0NDc0OiAjIDY4ICIuL2luY2x1ZGUvbGludXgv
c21wLmgiIDIKMTQ0NzQ6ICMgNzcgIi4vaW5jbHVkZS9saW51eC9zbXAuaCIKMTQ0NzQ6IGV4dGVy
biB2b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHNtcF9zZW5kX3Jlc2NoZWR1bGUoaW50IGNwdSk7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc21w
X3ByZXBhcmVfY3B1cyh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fY3B1X3VwKHVuc2lnbmVkIGludCBjcHVu
dW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzbXBfY3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhf
Y3B1cyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc21wX2Nh
bGxfZnVuY3Rpb24oc21wX2NhbGxfZnVuY190IGZ1bmMsIHZvaWQgKmluZm8sIGludCB3YWl0KTsK
MTQ0NzQ6IHZvaWQgc21wX2NhbGxfZnVuY3Rpb25fbWFueShjb25zdCBzdHJ1Y3QgY3B1bWFzayAq
bWFzaywKMTQ0NzQ6ICAgICAgICBzbXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgYm9v
bCB3YWl0KTsKMTQ0NzQ6IAoxNDQ3NDogaW50IHNtcF9jYWxsX2Z1bmN0aW9uX2FueShjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqbWFzaywKMTQ0NzQ6ICAgICAgc21wX2NhbGxfZnVuY190IGZ1bmMsIHZv
aWQgKmluZm8sIGludCB3YWl0KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBraWNrX2FsbF9jcHVzX3N5
bmModm9pZCk7CjE0NDc0OiB2b2lkIHdha2VfdXBfYWxsX2lkbGVfY3B1cyh2b2lkKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBjYWxsX2Z1
bmN0aW9uX2luaXQodm9pZCk7CjE0NDc0OiB2b2lkIGdlbmVyaWNfc21wX2NhbGxfZnVuY3Rpb25f
c2luZ2xlX2ludGVycnVwdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBzbXBfcHJlcGFyZV9ib290X2NwdSh2
b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBzZXR1cF9tYXhfY3B1czsK
MTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0
IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNldHVwX25yX2NwdV9pZHModm9pZCk7CjE0
NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIp
KSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbXBfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIGludCBfX2Jvb3RfY3B1X2lkOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZ2V0X2Jvb3Rf
Y3B1X2lkKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fYm9vdF9jcHVfaWQ7CjE0NDc0
OiB9CjE0NDc0OiAjIDIyOCAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIgoxNDQ3NDogZXh0ZXJuIHZv
aWQgYXJjaF9kaXNhYmxlX3NtcF9zdXBwb3J0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBhcmNoX2VuYWJsZV9ub25ib290X2NwdXNfYmVnaW4odm9pZCk7CjE0NDc0OiBleHRlcm4g
dm9pZCBhcmNoX2VuYWJsZV9ub25ib290X2NwdXNfZW5kKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIHNtcF9zZXR1cF9wcm9jZXNzb3JfaWQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGludCBzbXBf
Y2FsbF9vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgaW50ICgqZnVuYykodm9pZCAqKSwgdm9pZCAq
cGFyLAoxNDQ3NDogICAgICAgYm9vbCBwaHlzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQg
c21wY2ZkX3ByZXBhcmVfY3B1KHVuc2lnbmVkIGludCBjcHUpOwoxNDQ3NDogaW50IHNtcGNmZF9k
ZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKMTQ0NzQ6IGludCBzbXBjZmRfZHlpbmdfY3B1KHVu
c2lnbmVkIGludCBjcHUpOwoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LmgiIDIK
MTQ0NzQ6ICMgNjUgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUuaCIKMTQ0NzQ6IGV4dGVybiB2b2lk
ICpwY3B1X2Jhc2VfYWRkcjsKMTQ0NzQ6IGV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nICpwY3B1
X3VuaXRfb2Zmc2V0czsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBjcHVfZ3JvdXBfaW5mbyB7CjE0
NDc0OiAgaW50IG5yX3VuaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYmFzZV9vZmZzZXQ7CjE0
NDc0OiAgdW5zaWduZWQgaW50ICpjcHVfbWFwOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcGNwdV9hbGxvY19pbmZvIHsKMTQ0NzQ6ICBzaXplX3Qgc3RhdGljX3NpemU7
CjE0NDc0OiAgc2l6ZV90IHJlc2VydmVkX3NpemU7CjE0NDc0OiAgc2l6ZV90IGR5bl9zaXplOwox
NDQ3NDogIHNpemVfdCB1bml0X3NpemU7CjE0NDc0OiAgc2l6ZV90IGF0b21fc2l6ZTsKMTQ0NzQ6
ICBzaXplX3QgYWxsb2Nfc2l6ZTsKMTQ0NzQ6ICBzaXplX3QgX19haV9zaXplOwoxNDQ3NDogIGlu
dCBucl9ncm91cHM7CjE0NDc0OiAgc3RydWN0IHBjcHVfZ3JvdXBfaW5mbyBncm91cHNbXTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGNwdV9mYyB7CjE0NDc0OiAgUENQVV9GQ19BVVRP
LAoxNDQ3NDogIFBDUFVfRkNfRU1CRUQsCjE0NDc0OiAgUENQVV9GQ19QQUdFLAoxNDQ3NDogCjE0
NDc0OiAgUENQVV9GQ19OUiwKMTQ0NzQ6IH07CjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciAqIGNv
bnN0IHBjcHVfZmNfbmFtZXNbUENQVV9GQ19OUl07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBlbnVt
IHBjcHVfZmMgcGNwdV9jaG9zZW5fZmM7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAqICgq
cGNwdV9mY19hbGxvY19mbl90KSh1bnNpZ25lZCBpbnQgY3B1LCBzaXplX3Qgc2l6ZSwKMTQ0NzQ6
ICAgICAgICAgIHNpemVfdCBhbGlnbik7CjE0NDc0OiB0eXBlZGVmIHZvaWQgKCpwY3B1X2ZjX2Zy
ZWVfZm5fdCkodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CjE0NDc0OiB0eXBlZGVmIHZvaWQgKCpw
Y3B1X2ZjX3BvcHVsYXRlX3B0ZV9mbl90KSh1bnNpZ25lZCBsb25nIGFkZHIpOwoxNDQ3NDogdHlw
ZWRlZiBpbnQgKHBjcHVfZmNfY3B1X2Rpc3RhbmNlX2ZuX3QpKHVuc2lnbmVkIGludCBmcm9tLCB1
bnNpZ25lZCBpbnQgdG8pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHBjcHVfYWxsb2Nf
aW5mbyAqIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJp
YnV0ZV9fKChfX2NvbGRfXykpIHBjcHVfYWxsb2NfYWxsb2NfaW5mbyhpbnQgbnJfZ3JvdXBzLAox
NDQ3NDogICAgICAgICAgICAgaW50IG5yX3VuaXRzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIHBjcHVfZnJlZV9hbGxvY19pbmZvKHN0cnVjdCBwY3B1X2FsbG9jX2luZm8gKmFpKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5p
bml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgcGNwdV9zZXR1cF9maXJzdF9j
aHVuayhjb25zdCBzdHJ1Y3QgcGNwdV9hbGxvY19pbmZvICphaSwKMTQ0NzQ6ICAgICAgIHZvaWQg
KmJhc2VfYWRkcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0
ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18p
KSBwY3B1X2VtYmVkX2ZpcnN0X2NodW5rKHNpemVfdCByZXNlcnZlZF9zaXplLCBzaXplX3QgZHlu
X3NpemUsCjE0NDc0OiAgICAgc2l6ZV90IGF0b21fc2l6ZSwKMTQ0NzQ6ICAgICBwY3B1X2ZjX2Nw
dV9kaXN0YW5jZV9mbl90IGNwdV9kaXN0YW5jZV9mbiwKMTQ0NzQ6ICAgICBwY3B1X2ZjX2FsbG9j
X2ZuX3QgYWxsb2NfZm4sCjE0NDc0OiAgICAgcGNwdV9mY19mcmVlX2ZuX3QgZnJlZV9mbik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9f
c2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHBjcHVf
cGFnZV9maXJzdF9jaHVuayhzaXplX3QgcmVzZXJ2ZWRfc2l6ZSwKMTQ0NzQ6ICAgICBwY3B1X2Zj
X2FsbG9jX2ZuX3QgYWxsb2NfZm4sCjE0NDc0OiAgICAgcGNwdV9mY19mcmVlX2ZuX3QgZnJlZV9m
biwKMTQ0NzQ6ICAgICBwY3B1X2ZjX3BvcHVsYXRlX3B0ZV9mbl90IHBvcHVsYXRlX3B0ZV9mbik7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgKl9fYWxsb2NfcmVzZXJ2ZWRfcGVy
Y3B1KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ24pOwoxNDQ3NDogZXh0ZXJuIGJvb2wgX19pc19r
ZXJuZWxfcGVyY3B1X2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nICpj
YW5fYWRkcik7CjE0NDc0OiBleHRlcm4gYm9vbCBpc19rZXJuZWxfcGVyY3B1X2FkZHJlc3ModW5z
aWduZWQgbG9uZyBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCAqX19hbGxvY19wZXJjcHVfZ2ZwKHNpemVfdCBzaXplLCBzaXpl
X3QgYWxpZ24sIGdmcF90IGdmcCk7CjE0NDc0OiBleHRlcm4gdm9pZCAqX19hbGxvY19wZXJjcHUo
c2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbik7CjE0NDc0OiBleHRlcm4gdm9pZCBmcmVlX3BlcmNw
dSh2b2lkICpfX3BkYXRhKTsKMTQ0NzQ6IGV4dGVybiBwaHlzX2FkZHJfdCBwZXJfY3B1X3B0cl90
b19waHlzKHZvaWQgKmFkZHIpOwoxNDQ3NDogIyAxNDYgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUu
aCIKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIHBjcHVfbnJfcGFnZXModm9pZCk7CjE0NDc0
OiAjIDEwICIuL2luY2x1ZGUvbGludXgvYXJjaF90b3BvbG9neS5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IHZvaWQgdG9wb2xvZ3lfbm9ybWFsaXplX2NwdV9zY2FsZSh2b2lkKTsKMTQ0NzQ6IGludCB0b3Bv
bG9neV91cGRhdGVfY3B1X3RvcG9sb2d5KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2
aWNlX25vZGU7CjE0NDc0OiBib29sIHRvcG9sb2d5X3BhcnNlX2NwdV9jYXBhY2l0eShzdHJ1Y3Qg
ZGV2aWNlX25vZGUgKmNwdV9ub2RlLCBpbnQgY3B1KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9f
YXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIiKSkpIF9fdHlwZW9mX18odW5z
aWduZWQgbG9uZykgY3B1X3NjYWxlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2NoZWRfZG9tYWlu
OwoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgdG9wb2xvZ3lfZ2V0X2NwdV9zY2FsZShpbnQg
Y3B1KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBf
dmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfc2NhbGUpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClf
X3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9f
ICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgm
KGNwdV9zY2FsZSkpKSkpOyAodHlwZW9mKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgm
KGNwdV9zY2FsZSkpKSkpIChfX3B0ciArICgoKF9fcGVyX2NwdV9vZmZzZXRbKGNwdSldKSkpKTsg
fSk7IH0pKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCB0b3BvbG9neV9zZXRfY3B1X3Nj
YWxlKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGxvbmcgY2FwYWNpdHkpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkg
X190eXBlb2ZfXyh1bnNpZ25lZCBsb25nKSBmcmVxX3NjYWxlOwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQoxNDQ3
NDogdW5zaWduZWQgbG9uZyB0b3BvbG9neV9nZXRfZnJlcV9zY2FsZShpbnQgY3B1KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5
cGVvZigoJihmcmVxX3NjYWxlKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5
OyB9IHdoaWxlICgwKTsgKHsgdW5zaWduZWQgbG9uZyBfX3B0cjsgX19hc21fXyAoIiIgOiAiPXIi
KF9fcHRyKSA6ICIwIigodHlwZW9mKCooKCYoZnJlcV9zY2FsZSkpKSkgKikoKCYoZnJlcV9zY2Fs
ZSkpKSkpOyAodHlwZW9mKCh0eXBlb2YoKigoJihmcmVxX3NjYWxlKSkpKSAqKSgoJihmcmVxX3Nj
YWxlKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1X29mZnNldFsoY3B1KV0pKSkpOyB9KTsgfSkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3B1X3RvcG9sb2d5IHsKMTQ0NzQ6ICBp
bnQgdGhyZWFkX2lkOwoxNDQ3NDogIGludCBjb3JlX2lkOwoxNDQ3NDogIGludCBwYWNrYWdlX2lk
OwoxNDQ3NDogIGludCBsbGNfaWQ7CjE0NDc0OiAgY3B1bWFza190IHRocmVhZF9zaWJsaW5nOwox
NDQ3NDogIGNwdW1hc2tfdCBjb3JlX3NpYmxpbmc7CjE0NDc0OiAgY3B1bWFza190IGxsY19zaWJs
aW5nOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzEgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIiAy
CjE0NDc0OiAjIDQ2ICIuL2luY2x1ZGUvbGludXgvdG9wb2xvZ3kuaCIKMTQ0NzQ6IGludCBhcmNo
X3VwZGF0ZV9jcHVfdG9wb2xvZ3kodm9pZCk7CjE0NDc0OiAjIDc1ICIuL2luY2x1ZGUvbGludXgv
dG9wb2xvZ3kuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18o
Ii5kYXRhLi5yZWFkX21vc3RseSIpKSkgbm9kZV9yZWNsYWltX2Rpc3RhbmNlOwoxNDQ3NDogIyAx
NzcgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFfbWVtX2lkKHZv
aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG51bWFfbm9kZV9pZCgpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG5vZGVfdG9fbWVtX25vZGUoaW50IG5vZGUp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIG5vZGU7CjE0NDc0OiB9CjE0NDc0OiAjIDIxOSAiLi9p
bmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1
X3NtdF9tYXNrKGludCBjcHUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKih7IGRvIHsgY29u
c3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfc2libGluZ19tYXApKSArIDAp
KSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25l
ZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigo
JihjcHVfc2libGluZ19tYXApKSkpICopKCgmKGNwdV9zaWJsaW5nX21hcCkpKSkpOyAodHlwZW9m
KCh0eXBlb2YoKigoJihjcHVfc2libGluZ19tYXApKSkpICopKCgmKGNwdV9zaWJsaW5nX21hcCkp
KSkpIChfX3B0ciArICgoKF9fcGVyX2NwdV9vZmZzZXRbKGNwdSldKSkpKTsgfSk7IH0pKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdV9j
cHVfbWFzayhpbnQgY3B1KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHZvaWQpKCh2b2lkKShj
cHUpLDApLCAoKGNvbnN0IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IHZtX2FyZWFfc3RydWN0OwoxNDQ3NDogIyAzMDggIi4vaW5jbHVkZS9saW51eC9n
ZnAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBnZnBmbGFnc190b19taWdyYXRldHlwZShjb25zdCBnZnBfdCBnZnBf
ZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSgoZ2ZwX2ZsYWdz
ICYgKCgoIGdmcF90KTB4MTB1KXwoKCBnZnBfdCkweDA4dSkpKSA9PSAoKCggZ2ZwX3QpMHgxMHUp
fCgoIGdmcF90KTB4MDh1KSkpKSkpOwoxNDQ3NDogIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxl
dGltZV9hc3NlcnRfMzExKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVH
X09OIGZhaWxlZDogIiAiKDFVTCA8PCBHRlBfTU9WQUJMRV9TSElGVCkgIT0gX19fR0ZQX01PVkFC
TEUiKSkpOyBpZiAoISghKCgxVUwgPDwgMykgIT0gMHgwOHUpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfMzExKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxl
dGltZV9hc3NlcnRfMzEyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVH
X09OIGZhaWxlZDogIiAiKF9fX0dGUF9NT1ZBQkxFID4+IEdGUF9NT1ZBQkxFX1NISUZUKSAhPSBN
SUdSQVRFX01PVkFCTEUiKSkpOyBpZiAoISghKCgweDA4dSA+PiAzKSAhPSBNSUdSQVRFX01PVkFC
TEUpKSkgX19jb21waWxldGltZV9hc3NlcnRfMzEyKCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0
NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEocGFnZV9ncm91cF9ieV9tb2JpbGl0eV9kaXNh
YmxlZCksIDApKQoxNDQ3NDogICByZXR1cm4gTUlHUkFURV9VTk1PVkFCTEU7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHJldHVybiAoZ2ZwX2ZsYWdzICYgKCgoIGdmcF90KTB4MTB1KXwoKCBnZnBf
dCkweDA4dSkpKSA+PiAzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBnZnBmbGFnc19hbGxvd19ibG9ja2luZyhjb25zdCBnZnBfdCBnZnBfZmxhZ3MpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuICEhKGdmcF9mbGFncyAmICgoIGdmcF90KTB4NDAwdSkpOwoxNDQ3
NDogfQoxNDQ3NDogIyAzNDUgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2Zw
ZmxhZ3Nfbm9ybWFsX2NvbnRleHQoY29uc3QgZ2ZwX3QgZ2ZwX2ZsYWdzKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAoZ2ZwX2ZsYWdzICYgKCgoIGdmcF90KTB4NDAwdSkgfCAoKCBnZnBfdCkweDIw
MDAwdSkpKSA9PQoxNDQ3NDogICAoKCBnZnBfdCkweDQwMHUpOwoxNDQ3NDogfQoxNDQ3NDogIyA0
NDEgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0gem9uZV90eXBlIGdmcF96b25l
KGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIGVudW0gem9uZV90eXBlIHo7CjE0NDc0OiAg
aW50IGJpdCA9ICggaW50KSAoZmxhZ3MgJiAoKCggZ2ZwX3QpMHgwMXUpfCgoIGdmcF90KTB4MDJ1
KXwoKCBnZnBfdCkweDA0dSl8KCggZ2ZwX3QpMHgwOHUpKSk7CjE0NDc0OiAKMTQ0NzQ6ICB6ID0g
KCggKFpPTkVfTk9STUFMIDw8IDAgKiAyKSB8IChaT05FX0RNQSA8PCAweDAxdSAqIDIpIHwgKFpP
TkVfTk9STUFMIDw8IDB4MDJ1ICogMikgfCAoWk9ORV9ETUEzMiA8PCAweDA0dSAqIDIpIHwgKFpP
TkVfTk9STUFMIDw8IDB4MDh1ICogMikgfCAoWk9ORV9ETUEgPDwgKDB4MDh1IHwgMHgwMXUpICog
MikgfCAoWk9ORV9NT1ZBQkxFIDw8ICgweDA4dSB8IDB4MDJ1KSAqIDIpIHwgKFpPTkVfRE1BMzIg
PDwgKDB4MDh1IHwgMHgwNHUpICogMikpID4+IChiaXQgKiAyKSkgJgoxNDQ3NDogICAgICAgKCgx
IDw8IDIpIC0gMSk7CjE0NDc0OiAgKCh2b2lkKShzaXplb2YoKCBsb25nKSgoKCAxIDw8ICgweDAx
dSB8IDB4MDJ1KSB8IDEgPDwgKDB4MDF1IHwgMHgwNHUpIHwgMSA8PCAoMHgwNHUgfCAweDAydSkg
fCAxIDw8ICgweDAxdSB8IDB4MDR1IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDAydSB8IDB4
MDF1KSB8IDEgPDwgKDB4MDh1IHwgMHgwNHUgfCAweDAxdSkgfCAxIDw8ICgweDA4dSB8IDB4MDR1
IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDA0dSB8IDB4MDF1IHwgMHgwMnUpICkgPj4gYml0
KSAmIDEpKSkpOwoxNDQ3NDogIHJldHVybiB6OwoxNDQ3NDogfQoxNDQ3NDogIyA0NTkgIi4vaW5j
bHVkZS9saW51eC9nZnAuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZnBfem9uZWxpc3QoZ2ZwX3QgZmxhZ3MpCjE0
NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gWk9O
RUxJU1RfRkFMTEJBQ0s7CjE0NDc0OiB9CjE0NDc0OiAjIDQ3NyAiLi9pbmNsdWRlL2xpbnV4L2dm
cC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IHpvbmVsaXN0ICpub2RlX3pvbmVsaXN0KGludCBuaWQsIGdmcF90
IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoJmNvbnRpZ19wYWdlX2RhdGEpLT5ub2Rl
X3pvbmVsaXN0cyArIGdmcF96b25lbGlzdChmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBhcmNoX2ZyZWVfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IG9yZGVy
KSB7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfYWxsb2NfcGFnZShzdHJ1Y3Qg
cGFnZSAqcGFnZSwgaW50IG9yZGVyKSB7IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
cGFnZSAqCjE0NDc0OiBfX2FsbG9jX3BhZ2VzX25vZGVtYXNrKGdmcF90IGdmcF9tYXNrLCB1bnNp
Z25lZCBpbnQgb3JkZXIsIGludCBwcmVmZXJyZWRfbmlkLAoxNDQ3NDogICAgICAgIG5vZGVtYXNr
X3QgKm5vZGVtYXNrKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKgoxNDQ3NDogX19hbGxv
Y19wYWdlcyhnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyLCBpbnQgcHJlZmVycmVk
X25pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19hbGxvY19wYWdlc19ub2RlbWFzayhnZnBf
bWFzaywgb3JkZXIsIHByZWZlcnJlZF9uaWQsICgodm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGFnZSAqCjE0
NDc0OiBfX2FsbG9jX3BhZ2VzX25vZGUoaW50IG5pZCwgZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVk
IGludCBvcmRlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcpKG5pZCA8
IDAgfHwgbmlkID49ICgxIDw8IDApKSkpKTsKMTQ0NzQ6ICAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KChnZnBfbWFzayAmICgoIGdmcF90KTB4MjAwMDAwdSkpICYmICFub2RlX3N0YXRlKChuaWQpLCBO
X09OTElORSkpKSkpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIF9fYWxsb2NfcGFnZXMoZ2ZwX21h
c2ssIG9yZGVyLCBuaWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKmFsbG9jX3BhZ2VzX25vZGUoaW50
IG5pZCwgZ2ZwX3QgZ2ZwX21hc2ssCjE0NDc0OiAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKG5pZCA9PSAoLTEpKQoxNDQ3NDogICBuaWQgPSBudW1hX21lbV9p
ZCgpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIF9fYWxsb2NfcGFnZXNfbm9kZShuaWQsIGdmcF9t
YXNrLCBvcmRlcik7CjE0NDc0OiB9CjE0NDc0OiAjIDU1MyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5o
IgoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19nZXRfZnJlZV9wYWdlcyhnZnBfdCBnZnBf
bWFzaywgdW5zaWduZWQgaW50IG9yZGVyKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIGdl
dF96ZXJvZWRfcGFnZShnZnBfdCBnZnBfbWFzayk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKmFsbG9j
X3BhZ2VzX2V4YWN0KHNpemVfdCBzaXplLCBnZnBfdCBnZnBfbWFzayk7CjE0NDc0OiB2b2lkIGZy
ZWVfcGFnZXNfZXhhY3Qodm9pZCAqdmlydCwgc2l6ZV90IHNpemUpOwoxNDQ3NDogdm9pZCAqIF9f
YXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIubWVtaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9f
KChfX2NvbGRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBhbGxv
Y19wYWdlc19leGFjdF9uaWQoaW50IG5pZCwgc2l6ZV90IHNpemUsIGdmcF90IGdmcF9tYXNrKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHZvaWQgX19mcmVlX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25l
ZCBpbnQgb3JkZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZnJlZV9wYWdlcyh1bnNpZ25lZCBsb25n
IGFkZHIsIHVuc2lnbmVkIGludCBvcmRlcik7CjE0NDc0OiBleHRlcm4gdm9pZCBmcmVlX3VucmVm
X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZnJlZV91bnJlZl9w
YWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBw
YWdlX2ZyYWdfY2FjaGU7CjE0NDc0OiBleHRlcm4gdm9pZCBfX3BhZ2VfZnJhZ19jYWNoZV9kcmFp
bihzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IGNvdW50KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkICpwYWdlX2ZyYWdfYWxsb2Moc3RydWN0IHBhZ2VfZnJhZ19jYWNoZSAqbmMsCjE0NDc0OiAg
ICAgICAgIHVuc2lnbmVkIGludCBmcmFnc3osIGdmcF90IGdmcF9tYXNrKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIHBhZ2VfZnJhZ19mcmVlKHZvaWQgKmFkZHIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiB2b2lkIHBhZ2VfYWxsb2NfaW5pdCh2b2lkKTsKMTQ0NzQ6IHZvaWQg
ZHJhaW5fem9uZV9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSwgc3RydWN0IHBlcl9jcHVfcGFnZXMg
KnBjcCk7CjE0NDc0OiB2b2lkIGRyYWluX2FsbF9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSk7CjE0
NDc0OiB2b2lkIGRyYWluX2xvY2FsX3BhZ2VzKHN0cnVjdCB6b25lICp6b25lKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBwYWdlX2FsbG9jX2luaXRfbGF0ZSh2b2lkKTsKMTQ0NzQ6ICMgNTk0ICIuL2lu
Y2x1ZGUvbGludXgvZ2ZwLmgiCjE0NDc0OiBleHRlcm4gZ2ZwX3QgZ2ZwX2FsbG93ZWRfbWFzazsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBib29sIGdmcF9wZm1lbWFsbG9jX2FsbG93ZWQoZ2ZwX3Qg
Z2ZwX21hc2spOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwbV9yZXN0cmljdF9nZnBfbWFz
ayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBtX3Jlc3RvcmVfZ2ZwX21hc2sodm9pZCk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgcG1fc3VzcGVuZGVkX3N0b3JhZ2Uodm9p
ZCk7CjE0NDc0OiAjIDYxMyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgoxNDQ3NDogZXh0ZXJuIGlu
dCBhbGxvY19jb250aWdfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBl
bmQsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBtaWdyYXRldHlwZSwgZ2ZwX3QgZ2ZwX21hc2sp
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwYWdlICphbGxvY19jb250aWdfcGFnZXModW5zaWduZWQg
bG9uZyBucl9wYWdlcywgZ2ZwX3QgZ2ZwX21hc2ssCjE0NDc0OiAgICAgICAgICAgIGludCBuaWQs
IG5vZGVtYXNrX3QgKm5vZGVtYXNrKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBmcmVlX2NvbnRpZ19y
YW5nZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgaW50IG5yX3BhZ2VzKTsKMTQ0NzQ6ICMg
MTYgIi4vaW5jbHVkZS9saW51eC9zbGFiLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L292ZXJmbG93LmgiIDEKMTQ0NzQ6ICMgMjUzICIuL2luY2x1ZGUvbGludXgvb3ZlcmZsb3cuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzaXplX3QgYXJy
YXlfc2l6ZShzaXplX3QgYSwgc2l6ZV90IGIpCjE0NDc0OiB7CjE0NDc0OiAgc2l6ZV90IGJ5dGVz
OwoxNDQ3NDogCjE0NDc0OiAgaWYgKCh7IHR5cGVvZihhKSBfX2EgPSAoYSk7IHR5cGVvZihiKSBf
X2IgPSAoYik7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0g
Jl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwg
X19iLCBfX2QpOyB9KSkKMTQ0NzQ6ICAgcmV0dXJuICh+KHNpemVfdCkwKTsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBieXRlczsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjc1ICIuL2luY2x1ZGUvbGludXgv
b3ZlcmZsb3cuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBzaXplX3QgYXJyYXkzX3NpemUoc2l6ZV90IGEsIHNpemVfdCBiLCBzaXplX3QgYykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBzaXplX3QgYnl0ZXM7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKHsgdHlwZW9mKGEp
IF9fYSA9IChhKTsgdHlwZW9mKGIpIF9fYiA9IChiKTsgdHlwZW9mKCZieXRlcykgX19kID0gKCZi
eXRlcyk7ICh2b2lkKSAoJl9fYSA9PSAmX19iKTsgKHZvaWQpICgmX19hID09IF9fZCk7IF9fYnVp
bHRpbl9tdWxfb3ZlcmZsb3coX19hLCBfX2IsIF9fZCk7IH0pKQoxNDQ3NDogICByZXR1cm4gKH4o
c2l6ZV90KTApOwoxNDQ3NDogIGlmICgoeyB0eXBlb2YoYnl0ZXMpIF9fYSA9IChieXRlcyk7IHR5
cGVvZihjKSBfX2IgPSAoYyk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkg
KCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJm
bG93KF9fYSwgX19iLCBfX2QpOyB9KSkKMTQ0NzQ6ICAgcmV0dXJuICh+KHNpemVfdCkwKTsKMTQ0
NzQ6IAoxNDQ3NDogIHJldHVybiBieXRlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgc2l6ZV90IF9fYWJfY19zaXplKHNpemVfdCBhLCBzaXplX3QgYiwgc2l6ZV90IGMp
CjE0NDc0OiB7CjE0NDc0OiAgc2l6ZV90IGJ5dGVzOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCh7IHR5
cGVvZihhKSBfX2EgPSAoYSk7IHR5cGVvZihiKSBfX2IgPSAoYik7IHR5cGVvZigmYnl0ZXMpIF9f
ZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2Qp
OyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSkKMTQ0NzQ6ICAgcmV0
dXJuICh+KHNpemVfdCkwKTsKMTQ0NzQ6ICBpZiAoKHsgdHlwZW9mKGJ5dGVzKSBfX2EgPSAoYnl0
ZXMpOyB0eXBlb2YoYykgX19iID0gKGMpOyB0eXBlb2YoJmJ5dGVzKSBfX2QgPSAoJmJ5dGVzKTsg
KHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZfX2EgPT0gX19kKTsgX19idWlsdGluX2Fk
ZF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpCjE0NDc0OiAgIHJldHVybiAofihzaXplX3Qp
MCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gYnl0ZXM7CjE0NDc0OiB9CjE0NDc0OiAjIDE3ICIu
L2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvbGludXgvcGVyY3B1LXJlZmNvdW50LmgiIDEKMTQ0NzQ6ICMgNTkgIi4vaW5jbHVkZS9s
aW51eC9wZXJjcHUtcmVmY291bnQuaCIKMTQ0NzQ6IHN0cnVjdCBwZXJjcHVfcmVmOwoxNDQ3NDog
dHlwZWRlZiB2b2lkIChwZXJjcHVfcmVmX2Z1bmNfdCkoc3RydWN0IHBlcmNwdV9yZWYgKik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgX19QRVJDUFVfUkVGX0FUT01JQyA9
IDFMVSA8PCAwLAoxNDQ3NDogIF9fUEVSQ1BVX1JFRl9ERUFEID0gMUxVIDw8IDEsCjE0NDc0OiAg
X19QRVJDUFVfUkVGX0FUT01JQ19ERUFEID0gX19QRVJDUFVfUkVGX0FUT01JQyB8IF9fUEVSQ1BV
X1JFRl9ERUFELAoxNDQ3NDogCjE0NDc0OiAgX19QRVJDUFVfUkVGX0ZMQUdfQklUUyA9IDIsCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgUEVSQ1BVX1JFRl9J
TklUX0FUT01JQyA9IDEgPDwgMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBQRVJDUFVfUkVGX0lOSVRfREVBRCA9IDEgPDwgMSwKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFBFUkNQVV9SRUZfQUxMT1dfUkVJTklU
ID0gMSA8PCAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBlcmNwdV9yZWYgewox
NDQ3NDogIGF0b21pY19sb25nX3QgY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHBlcmNwdV9jb3VudF9wdHI7CjE0NDc0OiAgcGVyY3B1
X3JlZl9mdW5jX3QgKnJlbGVhc2U7CjE0NDc0OiAgcGVyY3B1X3JlZl9mdW5jX3QgKmNvbmZpcm1f
c3dpdGNoOwoxNDQ3NDogIGJvb2wgZm9yY2VfYXRvbWljOjE7CjE0NDc0OiAgYm9vbCBhbGxvd19y
ZWluaXQ6MTsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHBl
cmNwdV9yZWZfaW5pdChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmLAoxNDQ3NDogICAgICBwZXJjcHVf
cmVmX2Z1bmNfdCAqcmVsZWFzZSwgdW5zaWduZWQgaW50IGZsYWdzLAoxNDQ3NDogICAgICBnZnBf
dCBnZnApOwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX2V4aXQoc3RydWN0IHBlcmNwdV9yZWYgKnJl
Zik7CjE0NDc0OiB2b2lkIHBlcmNwdV9yZWZfc3dpdGNoX3RvX2F0b21pYyhzdHJ1Y3QgcGVyY3B1
X3JlZiAqcmVmLAoxNDQ3NDogICAgICBwZXJjcHVfcmVmX2Z1bmNfdCAqY29uZmlybV9zd2l0Y2gp
OwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX3N3aXRjaF90b19hdG9taWNfc3luYyhzdHJ1Y3QgcGVy
Y3B1X3JlZiAqcmVmKTsKMTQ0NzQ6IHZvaWQgcGVyY3B1X3JlZl9zd2l0Y2hfdG9fcGVyY3B1KHN0
cnVjdCBwZXJjcHVfcmVmICpyZWYpOwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX2tpbGxfYW5kX2Nv
bmZpcm0oc3RydWN0IHBlcmNwdV9yZWYgKnJlZiwKMTQ0NzQ6ICAgICAgcGVyY3B1X3JlZl9mdW5j
X3QgKmNvbmZpcm1fa2lsbCk7CjE0NDc0OiB2b2lkIHBlcmNwdV9yZWZfcmVzdXJyZWN0KHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYpOwoxNDQ3NDogdm9pZCBwZXJjcHVfcmVmX3JlaW5pdChzdHJ1Y3Qg
cGVyY3B1X3JlZiAqcmVmKTsKMTQ0NzQ6ICMgMTM0ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJl
ZmNvdW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9yZWZfa2lsbChzdHJ1Y3QgcGVyY3B1X3JlZiAq
cmVmKQoxNDQ3NDogewoxNDQ3NDogIHBlcmNwdV9yZWZfa2lsbF9hbmRfY29uZmlybShyZWYsICgo
dm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3JlZl9pc19wZXJjcHUoc3RydWN0IHBl
cmNwdV9yZWYgKnJlZiwKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBsb25nICoqcGVyY3B1X2NvdW50
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHBlcmNwdV9wdHI7CjE0NDc0OiAjIDE2
MSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogIHBlcmNwdV9wdHIg
PSAoeyB1bmlvbiB7IHR5cGVvZihyZWYtPnBlcmNwdV9jb3VudF9wdHIpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYocmVmLT5wZXJjcHVfY291bnRf
cHRyKSwgX191Ll9fYywgc2l6ZW9mKHJlZi0+cGVyY3B1X2NvdW50X3B0cikpOyBlbHNlIF9fcmVh
ZF9vbmNlX3NpemVfbm9jaGVjaygmKHJlZi0+cGVyY3B1X2NvdW50X3B0ciksIF9fdS5fX2MsIHNp
emVvZihyZWYtPnBlcmNwdV9jb3VudF9wdHIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFs
OyB9KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHBlcmNwdV9wdHIgJiBfX1BFUkNQ
VV9SRUZfQVRPTUlDX0RFQUQpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogCjE0
NDc0OiAgKnBlcmNwdV9jb3VudHAgPSAodW5zaWduZWQgbG9uZyAqKXBlcmNwdV9wdHI7CjE0NDc0
OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAjIDE4NSAiLi9pbmNsdWRlL2xpbnV4L3Bl
cmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX2dldF9tYW55KHN0cnVjdCBw
ZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgcmN1X3JlYWRfbG9jaygpOwox
NDQ3NDogCjE0NDc0OiAgaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYsICZwZXJjcHVfY291bnQpKQox
NDQ3NDogICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigq
cGVyY3B1X2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdo
aWxlICgwKTsgc3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlw
ZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18g
PSAoX19idWlsdGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkp
ID8gKGludCkobnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9
IChucik7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkp
KSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXyko
bnIpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJp
bmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAo
KHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZv
bGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGls
ZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSA6ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09
IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRl
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBh
c20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRl
ZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAo
X19idWlsdGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8g
KGludCkobnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChu
cik7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7
IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIp
KSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0
aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAo
ImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6
ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEp
IGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3Eg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20g
dm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0
eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGlu
dCkobnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7
ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNh
c2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7
IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19U
X18pKG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxl
ICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFk
ZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJy
aSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFz
bSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9s
YXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWls
dGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCko
bnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2Ug
MTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJy
ZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgi
aW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIg
KChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2
b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRp
bGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFy
YW1ldGVyKCk7YnJlYWs7IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBhdG9t
aWNfbG9uZ19hZGQobnIsICZyZWYtPmNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogIHJjdV9yZWFkX3Vu
bG9jaygpOwoxNDQ3NDogfQoxNDQ3NDogIyAyMDcgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVm
Y291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3JlZl9nZXQoc3RydWN0IHBlcmNwdV9yZWYgKnJl
ZikKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVfcmVmX2dldF9tYW55KHJlZiwgMSk7CjE0NDc0OiB9
CjE0NDc0OiAjIDIyMiAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBwZXJjcHVfcmVmX3RyeWdldF9tYW55KHN0cnVjdCBwZXJjcHVfcmVmICpyZWYsCjE0NDc0
OiAgICAgICAgdW5zaWduZWQgbG9uZyBucikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
ICpwZXJjcHVfY291bnQ7CjE0NDc0OiAgYm9vbCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByY3VfcmVh
ZF9sb2NrKCk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoX19yZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNw
dV9jb3VudCkpIHsKMTQ0NzQ6ICAgZG8geyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9
ICh0eXBlb2YoKCYoKnBlcmNwdV9jb3VudCkpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBw
X3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoKnBlcmNwdV9jb3VudCkpIHsgY2Fz
ZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3Qg
aW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8
IChucikgPT0gLTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9f
OyBwYW9fdG1wX18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpw
ZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUg
KCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRk
YiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFp
IiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNt
IHZvbGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xh
dGlsZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSA6ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAo
ImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBhc20gdm9sYXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
dm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSAy
OiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50
IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8IChu
cikgPT0gLTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBw
YW9fdG1wX18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJj
cHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJp
bmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAo
KHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZv
bGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGls
ZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSA6ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09
IDEpIGFzbSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRl
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBh
c20gdm9sYXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9s
YXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA0OiBk
byB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBh
b19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8IChucikg
PT0gLTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9f
dG1wX18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVf
Y291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBh
b19UX18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0
aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAo
ImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6
ICJyaSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEp
IGFzbSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20g
dm9sYXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRp
bGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgZGVmYXVs
dDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4OiBkbyB7
IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19J
RF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSAmJiAoKG5yKSA9PSAxIHx8IChucikgPT0g
LTEpKSA/IChpbnQpKG5yKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1w
X18gPSAobnIpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291
bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19U
X18pKG5yKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxl
ICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFk
ZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJy
aSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFz
bSB2b2xhdGlsZSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9s
YXRpbGUgKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUg
KCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgZGVmYXVsdDog
X19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9jYWxsX3BhcmFtZXRlcigpO2JyZWFrOyB9IH0gd2hpbGUgKDApOwoxNDQ3NDogICByZXQg
PSB0cnVlOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHJldCA9IGF0b21pY19sb25nX2FkZF91
bmxlc3MoJnJlZi0+Y291bnQsIG5yLCAwKTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICByY3Vf
cmVhZF91bmxvY2soKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0
OiAjIDI1MSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBw
ZXJjcHVfcmVmX3RyeWdldChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBwZXJjcHVfcmVmX3RyeWdldF9tYW55KHJlZiwgMSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDI3MSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwZXJj
cHVfcmVmX3RyeWdldF9saXZlKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpCjE0NDc0OiB7CjE0NDc0
OiAgdW5zaWduZWQgbG9uZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogIGJvb2wgcmV0ID0gZmFsc2U7
CjE0NDc0OiAKMTQ0NzQ6ICByY3VfcmVhZF9sb2NrKCk7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoX19y
ZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNwdV9jb3VudCkpIHsKMTQ0NzQ6ICAgZG8geyBkbyB7IGNv
bnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoKnBlcmNwdV9jb3VudCkpICsgMCkp
KCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXpl
b2YoKnBlcmNwdV9jb3VudCkpIHsgY2FzZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1
X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFu
dF9wKDEpICYmICgoMSkgPT0gMSB8fCAoMSkgPT0gLTEpKSA/IChpbnQpKDEpIDogMDsgaWYgKDAp
IHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9ICgxKTsgKHZvaWQpcGFvX3RtcF9fOyB9
IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18g
PT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgi
ZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSAyOiBpZiAo
cGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZv
bGF0aWxlICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2Fz
ZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAt
MSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBi
cmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9f
SURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9f
KSgxKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgw
KTticmVhazsgY2FzZSAyOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFv
X1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICgo
MSkgPT0gMSB8fCAoMSkgPT0gLTEpKSA/IChpbnQpKDEpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBw
YW9fdG1wX187IHBhb190bXBfXyA9ICgxKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6
ZW9mKCgqcGVyY3B1X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZv
bGF0aWxlICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGls
ZSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSA6ICJxaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0g
MSkgYXNtIHZvbGF0aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVj
dyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFz
bSB2b2xhdGlsZSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0
aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA4
OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkg
YXNtIHZvbGF0aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgxKSkpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2Fz
ZSA0OiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3Qg
aW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICgoMSkgPT0gMSB8fCAo
MSkgPT0gLTEpKSA/IChpbnQpKDEpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBh
b190bXBfXyA9ICgxKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1
X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5j
YiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChw
YW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0
aWxlICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAo
ImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6
ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkg
YXNtIHZvbGF0aWxlICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2
b2xhdGlsZSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lE
X18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxl
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgZGVmYXVsdDog
X19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4OiBkbyB7IHR5
cGVkZWYgdHlwZW9mKCgqcGVyY3B1X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9f
ID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICgoMSkgPT0gMSB8fCAoMSkgPT0gLTEpKSA/
IChpbnQpKDEpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9ICgx
KTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2NvdW50KSkpIHsg
Y2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9
PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgxKSkp
OyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jdyAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHcgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9f
VF9fKSgxKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxl
ICgiaW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFk
ZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJy
aSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNt
IHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjcSAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xh
dGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgxKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3Bh
cmFtZXRlcigpO2JyZWFrOyB9IH0gd2hpbGUgKDApOwoxNDQ3NDogICByZXQgPSB0cnVlOwoxNDQ3
NDogIH0gZWxzZSBpZiAoIShyZWYtPnBlcmNwdV9jb3VudF9wdHIgJiBfX1BFUkNQVV9SRUZfREVB
RCkpIHsKMTQ0NzQ6ICAgcmV0ID0gYXRvbWljX2xvbmdfaW5jX25vdF96ZXJvKCZyZWYtPmNvdW50
KTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICByY3VfcmVhZF91bmxvY2soKTsKMTQ0NzQ6IAox
NDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0OiAjIDMwMCAiLi9pbmNsdWRlL2xpbnV4
L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX3B1dF9tYW55KHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCjE0NDc0OiB7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgcmN1X3JlYWRfbG9jaygp
OwoxNDQ3NDogCjE0NDc0OiAgaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYsICZwZXJjcHVfY291bnQp
KQoxNDQ3NDogICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigo
JigqcGVyY3B1X2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9
IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkgeyBjYXNlIDE6IGRvIHsg
dHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lE
X18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkg
JiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5cGVvZigqcGVy
Y3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkp
KG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0odHlw
ZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXpl
b2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9s
YXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxl
ICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
IDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0o
dHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUg
KCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQp
KShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUg
KCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRk
cSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJl
IiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRv
IHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5y
KSkgJiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5cGVvZigq
cGVyY3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNwdV9jb3Vu
dCkpKG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0o
dHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChz
aXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJy
ZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRp
bGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291
bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRp
bGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgi
YWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDog
InJlIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6
IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQg
cGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkp
KG5yKSkgJiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5cGVv
ZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNwdV9j
b3VudCkpKG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0g
KC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNo
IChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZv
bGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpIDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7
IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19U
X18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9s
YXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVf
Y291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9s
YXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxl
ICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
IDogInJlIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFr
OyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNl
IDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBp
bnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnBlcmNwdV9jb3Vu
dCkpKG5yKSkgJiYgKCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAxIHx8ICgtKHR5
cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnBlcmNw
dV9jb3VudCkpKG5yKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpOyAodm9pZClwYW9fdG1wX187IH0gc3dp
dGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNt
IHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikp
KSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDQ6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
dm9sYXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJj
cHVfY291bnQpKShucikpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInJlIiAoKHBhb19UX18pKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0gfSB3aGlsZSAoMCk7
CjE0NDc0OiAgZWxzZSBpZiAoX19idWlsdGluX2V4cGVjdCghIShhdG9taWNfbG9uZ19zdWJfYW5k
X3Rlc3QobnIsICZyZWYtPmNvdW50KSksIDApKQoxNDQ3NDogICByZWYtPnJlbGVhc2UocmVmKTsK
MTQ0NzQ6IAoxNDQ3NDogIHJjdV9yZWFkX3VubG9jaygpOwoxNDQ3NDogfQoxNDQ3NDogIyAzMjMg
Ii4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3Jl
Zl9wdXQoc3RydWN0IHBlcmNwdV9yZWYgKnJlZikKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVfcmVm
X3B1dF9tYW55KHJlZiwgMSk7CjE0NDc0OiB9CjE0NDc0OiAjIDMzNyAiLi9pbmNsdWRlL2xpbnV4
L3BlcmNwdS1yZWZjb3VudC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwZXJjcHVfcmVmX2lzX2R5aW5nKHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJlZi0+cGVyY3B1X2Nv
dW50X3B0ciAmIF9fUEVSQ1BVX1JFRl9ERUFEOwoxNDQ3NDogfQoxNDQ3NDogIyAzNTAgIi4vaW5j
bHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcGVyY3B1X3JlZl9pc196
ZXJvKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyAqcGVyY3B1X2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYs
ICZwZXJjcHVfY291bnQpKQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgcmV0dXJuICFh
dG9taWNfbG9uZ19yZWFkKCZyZWYtPmNvdW50KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjAgIi4vaW5j
bHVkZS9saW51eC9zbGFiLmgiIDIKMTQ0NzQ6ICMgMTM2ICIuL2luY2x1ZGUvbGludXgvc2xhYi5o
IgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgva2FzYW4uaCIgMQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGttZW1fY2FjaGU7
CjE0NDc0OiBzdHJ1Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCB2bV9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1
Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAjIDEwMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGthc2FuX3VucG9pc29uX3NoYWRvdyhjb25zdCB2b2lkICphZGRyZXNzLCBzaXpl
X3Qgc2l6ZSkge30KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl91bnBvaXNvbl90YXNrX3N0YWNr
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25f
c3RhY2tfYWJvdmVfc3BfdG8oY29uc3Qgdm9pZCAqd2F0ZXJtYXJrKSB7fQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGthc2FuX2VuYWJsZV9jdXJyZW50KHZvaWQpIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2Rp
c2FibGVfY3VycmVudCh2b2lkKSB7fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2FsbG9jX3Bh
Z2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpIHt9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGthc2FuX2ZyZWVfcGFnZXMoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcikg
e30KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9jYWNoZV9jcmVhdGUoc3RydWN0IGttZW1fY2Fj
aGUgKmNhY2hlLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGludCAqc2l6ZSwKMTQ0NzQ6ICAg
ICAgICAgICBzbGFiX2ZsYWdzX3QgKmZsYWdzKSB7fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2Fu
X3BvaXNvbl9zbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7fQoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl91bnBv
aXNvbl9vYmplY3RfZGF0YShzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCjE0NDc0OiAgICAgIHZv
aWQgKm9iamVjdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcG9pc29uX29iamVjdF9kYXRhKHN0cnVj
dCBrbWVtX2NhY2hlICpjYWNoZSwKMTQ0NzQ6ICAgICAgdm9pZCAqb2JqZWN0KSB7fQoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqa2FzYW5faW5pdF9zbGFiX29iaihzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsCjE0NDc0
OiAgICAgY29uc3Qgdm9pZCAqb2JqZWN0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAq
KW9iamVjdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa2FzYW5fa21hbGxvY19sYXJn
ZSh2b2lkICpwdHIsIHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gcHRyOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9rZnJlZV9sYXJnZSh2b2lkICpw
dHIsIHVuc2lnbmVkIGxvbmcgaXApIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX3BvaXNvbl9rZnJlZSh2
b2lkICpwdHIsIHVuc2lnbmVkIGxvbmcgaXApIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9rbWFsbG9j
KHN0cnVjdCBrbWVtX2NhY2hlICpzLCBjb25zdCB2b2lkICpvYmplY3QsCjE0NDc0OiAgICAgc2l6
ZV90IHNpemUsIGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKW9i
amVjdDsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmthc2FuX2tyZWFsbG9jKGNvbnN0IHZvaWQgKm9i
amVjdCwgc2l6ZV90IG5ld19zaXplLAoxNDQ3NDogICAgICBnZnBfdCBmbGFncykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gKHZvaWQgKilvYmplY3Q7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgKmthc2FuX3NsYWJfYWxsb2Moc3RydWN0IGttZW1fY2FjaGUgKnMsIHZvaWQgKm9iamVjdCwK
MTQ0NzQ6ICAgICAgICBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gb2JqZWN0
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrYXNhbl9zbGFiX2ZyZWUoc3RydWN0IGttZW1fY2FjaGUg
KnMsIHZvaWQgKm9iamVjdCwKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBsb25nIGlwKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBmYWxzZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGthc2Fu
X21vZHVsZV9hbGxvYyh2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSkgeyByZXR1cm4gMDsgfQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBrYXNhbl9mcmVlX3NoYWRvdyhjb25zdCBzdHJ1Y3Qgdm1fc3RydWN0ICp2bSkge30K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IGthc2FuX2FkZF96ZXJvX3NoYWRvdyh2b2lkICpzdGFydCwgdW5z
aWduZWQgbG9uZyBzaXplKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBrYXNhbl9yZW1vdmVfemVyb19zaGFkb3codm9pZCAqc3RhcnQsCjE0NDc0OiAgICAg
IHVuc2lnbmVkIGxvbmcgc2l6ZSkKMTQ0NzQ6IHt9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5f
dW5wb2lzb25fc2xhYihjb25zdCB2b2lkICpwdHIpIHsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc2l6ZV90IGthc2FuX21l
dGFkYXRhX3NpemUoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKSB7IHJldHVybiAwOyB9CjE0NDc0
OiAjIDE4MCAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2NhY2hl
X3NocmluayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHt9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2Nh
Y2hlX3NodXRkb3duKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSkge30KMTQ0NzQ6ICMgMTk4ICIu
L2luY2x1ZGUvbGludXgva2FzYW4uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5faW5pdF90YWdzKHZvaWQp
IHsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9yZXNldF90YWcoY29uc3Qgdm9pZCAqYWRk
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHZvaWQgKilhZGRyOwoxNDQ3NDogfQoxNDQ3NDog
IyAyMTUgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGthc2FuX3BvcHVsYXRl
X3ZtYWxsb2ModW5zaWduZWQgbG9uZyBzdGFydCwKMTQ0NzQ6ICAgICAgdW5zaWduZWQgbG9uZyBz
aXplKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGthc2FuX3BvaXNvbl92bWFsbG9jKGNvbnN0IHZvaWQgKnN0YXJ0LCB1bnNpZ25lZCBsb25n
IHNpemUpCjE0NDc0OiB7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fdm1hbGxvYyhjb25z
dCB2b2lkICpzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKQoxNDQ3NDogeyB9CjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGthc2FuX3JlbGVhc2Vfdm1hbGxvYyh1bnNpZ25lZCBsb25nIHN0YXJ0LAoxNDQ3NDogICAgICAg
dW5zaWduZWQgbG9uZyBlbmQsCjE0NDc0OiAgICAgICB1bnNpZ25lZCBsb25nIGZyZWVfcmVnaW9u
X3N0YXJ0LAoxNDQ3NDogICAgICAgdW5zaWduZWQgbG9uZyBmcmVlX3JlZ2lvbl9lbmQpIHt9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9u
b25fY2Fub25pY2FsX2hvb2sodW5zaWduZWQgbG9uZyBhZGRyKSB7IH0KMTQ0NzQ6ICMgMTM3ICIu
L2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtZW1fY2dyb3Vw
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBrbWVtX2Nh
Y2hlX2luaXQodm9pZCk7CjE0NDc0OiBib29sIHNsYWJfaXNfYXZhaWxhYmxlKHZvaWQpOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gYm9vbCB1c2VyY29weV9mYWxsYmFjazsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGttZW1fY2FjaGUgKmttZW1fY2FjaGVfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHVu
c2lnbmVkIGludCBzaXplLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGFsaWduLCBzbGFiX2ZsYWdz
X3QgZmxhZ3MsCjE0NDc0OiAgICB2b2lkICgqY3Rvcikodm9pZCAqKSk7CjE0NDc0OiBzdHJ1Y3Qg
a21lbV9jYWNoZSAqa21lbV9jYWNoZV9jcmVhdGVfdXNlcmNvcHkoY29uc3QgY2hhciAqbmFtZSwK
MTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24sCjE0NDc0OiAg
ICBzbGFiX2ZsYWdzX3QgZmxhZ3MsCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgdXNlcm9mZnNldCwg
dW5zaWduZWQgaW50IHVzZXJzaXplLAoxNDQ3NDogICAgdm9pZCAoKmN0b3IpKHZvaWQgKikpOwox
NDQ3NDogdm9pZCBrbWVtX2NhY2hlX2Rlc3Ryb3koc3RydWN0IGttZW1fY2FjaGUgKik7CjE0NDc0
OiBpbnQga21lbV9jYWNoZV9zaHJpbmsoc3RydWN0IGttZW1fY2FjaGUgKik7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgbWVtY2dfY3JlYXRlX2ttZW1fY2FjaGUoc3RydWN0IG1lbV9jZ3JvdXAgKiwgc3Ry
dWN0IGttZW1fY2FjaGUgKik7CjE0NDc0OiB2b2lkIG1lbWNnX2RlYWN0aXZhdGVfa21lbV9jYWNo
ZXMoc3RydWN0IG1lbV9jZ3JvdXAgKiwgc3RydWN0IG1lbV9jZ3JvdXAgKik7CjE0NDc0OiAjIDE4
NyAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6IHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3JlYWxsb2MoY29uc3Qgdm9pZCAqLCBzaXplX3QsIGdm
cF90KTsKMTQ0NzQ6IHZvaWQga2ZyZWUoY29uc3Qgdm9pZCAqKTsKMTQ0NzQ6IHZvaWQga3pmcmVl
KGNvbnN0IHZvaWQgKik7CjE0NDc0OiBzaXplX3QgX19rc2l6ZShjb25zdCB2b2lkICopOwoxNDQ3
NDogc2l6ZV90IGtzaXplKGNvbnN0IHZvaWQgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBfX2NoZWNrX2hlYXBfb2JqZWN0KGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBuLCBz
dHJ1Y3QgcGFnZSAqcGFnZSwKMTQ0NzQ6ICAgIGJvb2wgdG9fdXNlcik7CjE0NDc0OiAjIDMwOCAi
Li9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6IGVudW0ga21hbGxvY19jYWNoZV90eXBlIHsK
MTQ0NzQ6ICBLTUFMTE9DX05PUk1BTCA9IDAsCjE0NDc0OiAgS01BTExPQ19SRUNMQUlNLAoxNDQ3
NDogCjE0NDc0OiAgS01BTExPQ19ETUEsCjE0NDc0OiAKMTQ0NzQ6ICBOUl9LTUFMTE9DX1RZUEVT
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNo
ZSAqCjE0NDc0OiBrbWFsbG9jX2NhY2hlc1tOUl9LTUFMTE9DX1RZUEVTXVsoKDExICsgMTIgLSAx
KSA8PSAyNSA/ICgxMSArIDEyIC0gMSkgOiAyNSkgKyAxXTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBlbnVtIGttYWxsb2NfY2FjaGVfdHlwZSBrbWFs
bG9jX3R5cGUoZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKChmbGFncyAmICgo
KCBnZnBfdCkweDAxdSkgfCAoKCBnZnBfdCkweDEwdSkpKSA9PSAwKSwgMSkpCjE0NDc0OiAgIHJl
dHVybiBLTUFMTE9DX05PUk1BTDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGZsYWdzICYgKCggZ2ZwX3QpMHgwMXUpID8gS01BTExPQ19ETUEg
OiBLTUFMTE9DX1JFQ0xBSU07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0
OiAjIDM0OSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgdW5zaWduZWQgaW50IGttYWxsb2NfaW5kZXgoc2l6ZV90IHNpemUp
CjE0NDc0OiB7CjE0NDc0OiAgaWYgKCFzaXplKQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6IAox
NDQ3NDogIGlmIChzaXplIDw9ICgxIDw8IDUpKQoxNDQ3NDogICByZXR1cm4gNTsKMTQ0NzQ6IAox
NDQ3NDogIGlmICgoMSA8PCA1KSA8PSAzMiAmJiBzaXplID4gNjQgJiYgc2l6ZSA8PSA5NikKMTQ0
NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgaWYgKCgxIDw8IDUpIDw9IDY0ICYmIHNpemUgPiAxMjgg
JiYgc2l6ZSA8PSAxOTIpCjE0NDc0OiAgIHJldHVybiAyOwoxNDQ3NDogIGlmIChzaXplIDw9IDgp
IHJldHVybiAzOwoxNDQ3NDogIGlmIChzaXplIDw9IDE2KSByZXR1cm4gNDsKMTQ0NzQ6ICBpZiAo
c2l6ZSA8PSAzMikgcmV0dXJuIDU7CjE0NDc0OiAgaWYgKHNpemUgPD0gNjQpIHJldHVybiA2Owox
NDQ3NDogIGlmIChzaXplIDw9IDEyOCkgcmV0dXJuIDc7CjE0NDc0OiAgaWYgKHNpemUgPD0gMjU2
KSByZXR1cm4gODsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSA1MTIpIHJldHVybiA5OwoxNDQ3NDogIGlm
IChzaXplIDw9IDEwMjQpIHJldHVybiAxMDsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAyICogMTAyNCkg
cmV0dXJuIDExOwoxNDQ3NDogIGlmIChzaXplIDw9IDQgKiAxMDI0KSByZXR1cm4gMTI7CjE0NDc0
OiAgaWYgKHNpemUgPD0gOCAqIDEwMjQpIHJldHVybiAxMzsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAx
NiAqIDEwMjQpIHJldHVybiAxNDsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAzMiAqIDEwMjQpIHJldHVy
biAxNTsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSA2NCAqIDEwMjQpIHJldHVybiAxNjsKMTQ0NzQ6ICBp
ZiAoc2l6ZSA8PSAxMjggKiAxMDI0KSByZXR1cm4gMTc7CjE0NDc0OiAgaWYgKHNpemUgPD0gMjU2
ICogMTAyNCkgcmV0dXJuIDE4OwoxNDQ3NDogIGlmIChzaXplIDw9IDUxMiAqIDEwMjQpIHJldHVy
biAxOTsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAxMDI0ICogMTAyNCkgcmV0dXJuIDIwOwoxNDQ3NDog
IGlmIChzaXplIDw9IDIgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDIxOwoxNDQ3NDogIGlmIChzaXpl
IDw9IDQgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDIyOwoxNDQ3NDogIGlmIChzaXplIDw9IDggKiAx
MDI0ICogMTAyNCkgcmV0dXJuIDIzOwoxNDQ3NDogIGlmIChzaXplIDw9IDE2ICogMTAyNCAqIDEw
MjQpIHJldHVybiAyNDsKMTQ0NzQ6ICBpZiAoc2l6ZSA8PSAzMiAqIDEwMjQgKiAxMDI0KSByZXR1
cm4gMjU7CjE0NDc0OiAgaWYgKHNpemUgPD0gNjQgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDI2Owox
NDQ3NDogIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUv
bGludXgvc2xhYi5oIiksICJpIiAoMzg1KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1
Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIg
Ii5wdXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxu
XHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE4KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIp
OyBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gLTE7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdm9pZCAqX19rbWFsbG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykgX19hdHRyaWJ1
dGVfXygoX19hc3N1bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykp
KSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwoxNDQ3NDogdm9pZCAqa21lbV9jYWNoZV9h
bGxvYyhzdHJ1Y3Qga21lbV9jYWNoZSAqLCBnZnBfdCBmbGFncykgX19hdHRyaWJ1dGVfXygoX19h
c3N1bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykpKSkgX19hdHRy
aWJ1dGVfXygoX19tYWxsb2NfXykpOwoxNDQ3NDogdm9pZCBrbWVtX2NhY2hlX2ZyZWUoc3RydWN0
IGttZW1fY2FjaGUgKiwgdm9pZCAqKTsKMTQ0NzQ6ICMgNDAzICIuL2luY2x1ZGUvbGludXgvc2xh
Yi5oIgoxNDQ3NDogdm9pZCBrbWVtX2NhY2hlX2ZyZWVfYnVsayhzdHJ1Y3Qga21lbV9jYWNoZSAq
LCBzaXplX3QsIHZvaWQgKiopOwoxNDQ3NDogaW50IGttZW1fY2FjaGVfYWxsb2NfYnVsayhzdHJ1
Y3Qga21lbV9jYWNoZSAqLCBnZnBfdCwgc2l6ZV90LCB2b2lkICoqKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQga2ZyZWVfYnVsayhzaXplX3Qgc2l6ZSwgdm9pZCAqKnApCjE0NDc0OiB7
CjE0NDc0OiAga21lbV9jYWNoZV9mcmVlX2J1bGsoKCh2b2lkICopMCksIHNpemUsIHApOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAqX19rbWFsbG9jX25vZGUoc2l6ZV90
IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19r
bWFsbG9jKHNpemUsIGZsYWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkICprbWVtX2NhY2hlX2FsbG9jX25vZGUoc3RydWN0
IGttZW1fY2FjaGUgKnMsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4ga21lbV9jYWNoZV9hbGxvYyhzLCBmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCAqa21lbV9jYWNoZV9hbGxvY190cmFjZShzdHJ1
Y3Qga21lbV9jYWNoZSAqLCBnZnBfdCwgc2l6ZV90KSBfX2F0dHJpYnV0ZV9fKChfX2Fzc3VtZV9h
bGlnbmVkX18oX19hbGlnbm9mX18odW5zaWduZWQgbG9uZyBsb25nKSkpKSBfX2F0dHJpYnV0ZV9f
KChfX21hbGxvY19fKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKgox
NDQ3NDoga21lbV9jYWNoZV9hbGxvY19ub2RlX3RyYWNlKHN0cnVjdCBrbWVtX2NhY2hlICpzLAox
NDQ3NDogICAgICAgICAgZ2ZwX3QgZ2ZwZmxhZ3MsCjE0NDc0OiAgICAgICAgICBpbnQgbm9kZSwg
c2l6ZV90IHNpemUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGttZW1fY2FjaGVfYWxsb2NfdHJh
Y2UocywgZ2ZwZmxhZ3MsIHNpemUpOwoxNDQ3NDogfQoxNDQ3NDogIyA0NjkgIi4vaW5jbHVkZS9s
aW51eC9zbGFiLmgiCjE0NDc0OiBleHRlcm4gdm9pZCAqa21hbGxvY19vcmRlcihzaXplX3Qgc2l6
ZSwgZ2ZwX3QgZmxhZ3MsIHVuc2lnbmVkIGludCBvcmRlcikgX19hdHRyaWJ1dGVfXygoX19hc3N1
bWVfYWxpZ25lZF9fKCgoMVVMKSA8PCAxMikpKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICprbWFsbG9jX29yZGVyX3RyYWNl
KHNpemVfdCBzaXplLCBnZnBfdCBmbGFncywgdW5zaWduZWQgaW50IG9yZGVyKSBfX2F0dHJpYnV0
ZV9fKChfX2Fzc3VtZV9hbGlnbmVkX18oKCgxVUwpIDw8IDEyKSkpKSBfX2F0dHJpYnV0ZV9fKChf
X21hbGxvY19fKSk7CjE0NDc0OiAjIDQ4MSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAqa21hbGxvY19sYXJnZShz
aXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IG9y
ZGVyID0gZ2V0X29yZGVyKHNpemUpOwoxNDQ3NDogIHJldHVybiBrbWFsbG9jX29yZGVyX3RyYWNl
KHNpemUsIGZsYWdzLCBvcmRlcik7CjE0NDc0OiB9CjE0NDc0OiAjIDU0MSAiLi9pbmNsdWRlL2xp
bnV4L3NsYWIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCAqa21hbGxvYyhzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKSB7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQg
aW50IGluZGV4OwoxNDQ3NDogCjE0NDc0OiAgIGlmIChzaXplID4gKDFVTCA8PCAoKDExICsgMTIg
LSAxKSA8PSAyNSA/ICgxMSArIDEyIC0gMSkgOiAyNSkpKQoxNDQ3NDogICAgcmV0dXJuIGttYWxs
b2NfbGFyZ2Uoc2l6ZSwgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAgIGluZGV4ID0ga21hbGxvY19p
bmRleChzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAoIWluZGV4KQoxNDQ3NDogICAgcmV0dXJu
ICgodm9pZCAqKTE2KTsKMTQ0NzQ6IAoxNDQ3NDogICByZXR1cm4ga21lbV9jYWNoZV9hbGxvY190
cmFjZSgKMTQ0NzQ6ICAgICBrbWFsbG9jX2NhY2hlc1trbWFsbG9jX3R5cGUoZmxhZ3MpXVtpbmRl
eF0sCjE0NDc0OiAgICAgZmxhZ3MsIHNpemUpOwoxNDQ3NDogCjE0NDc0OiAgfQoxNDQ3NDogIHJl
dHVybiBfX2ttYWxsb2Moc2l6ZSwgZmxhZ3MpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKmttYWxsb2Nfbm9kZShzaXplX3Qg
c2l6ZSwgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYg
KF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpICYmCjE0NDc0OiAgIHNpemUgPD0gKDFVTCA8PCAo
KDExICsgMTIgLSAxKSA8PSAyNSA/ICgxMSArIDEyIC0gMSkgOiAyNSkpKSB7CjE0NDc0OiAgIHVu
c2lnbmVkIGludCBpID0ga21hbGxvY19pbmRleChzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAo
IWkpCjE0NDc0OiAgICByZXR1cm4gKCh2b2lkICopMTYpOwoxNDQ3NDogCjE0NDc0OiAgIHJldHVy
biBrbWVtX2NhY2hlX2FsbG9jX25vZGVfdHJhY2UoCjE0NDc0OiAgICAga21hbGxvY19jYWNoZXNb
a21hbGxvY190eXBlKGZsYWdzKV1baV0sCjE0NDc0OiAgICAgICBmbGFncywgbm9kZSwgc2l6ZSk7
CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIF9fa21hbGxvY19ub2RlKHNpemUsIGZs
YWdzLCBub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IG1lbWNnX3VwZGF0ZV9hbGxf
Y2FjaGVzKGludCBudW1fbWVtY2dzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa21hbGxvY19hcnJheShzaXplX3Qg
biwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHNpemVfdCBieXRl
czsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh7IHR5cGVvZihuKSBf
X2EgPSAobik7IHR5cGVvZihzaXplKSBfX2IgPSAoc2l6ZSk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9
ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBf
X2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSksIDApKQoxNDQ3NDogICBy
ZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pICYm
IF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKQoxNDQ3NDogICByZXR1cm4ga21hbGxvYyhieXRl
cywgZmxhZ3MpOwoxNDQ3NDogIHJldHVybiBfX2ttYWxsb2MoYnl0ZXMsIGZsYWdzKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCAqa2NhbGxvYyhzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdz
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrbWFsbG9jX2FycmF5KG4sIHNpemUsIGZsYWdzIHwg
KCggZ2ZwX3QpMHgxMDB1KSk7CjE0NDc0OiB9CjE0NDc0OiAjIDYxOSAiLi9pbmNsdWRlL2xpbnV4
L3NsYWIuaCIKMTQ0NzQ6IGV4dGVybiB2b2lkICpfX2ttYWxsb2NfdHJhY2tfY2FsbGVyKHNpemVf
dCwgZ2ZwX3QsIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqa21hbGxvY19hcnJheV9ub2RlKHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxh
Z3MsCjE0NDc0OiAgICAgICAgICAgIGludCBub2RlKQoxNDQ3NDogewoxNDQ3NDogIHNpemVfdCBi
eXRlczsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh7IHR5cGVvZihu
KSBfX2EgPSAobik7IHR5cGVvZihzaXplKSBfX2IgPSAoc2l6ZSk7IHR5cGVvZigmYnl0ZXMpIF9f
ZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2Qp
OyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSksIDApKQoxNDQ3NDog
ICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG4p
ICYmIF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKQoxNDQ3NDogICByZXR1cm4ga21hbGxvY19u
b2RlKGJ5dGVzLCBmbGFncywgbm9kZSk7CjE0NDc0OiAgcmV0dXJuIF9fa21hbGxvY19ub2RlKGJ5
dGVzLCBmbGFncywgbm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmtjYWxsb2Nf
bm9kZShzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4ga21hbGxvY19hcnJheV9ub2RlKG4sIHNpemUsIGZsYWdzIHwgKCgg
Z2ZwX3QpMHgxMDB1KSwgbm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDY1NyAiLi9pbmNsdWRlL2xp
bnV4L3NsYWIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmttZW1fY2FjaGVfemFsbG9jKHN0cnVjdCBrbWVtX2Nh
Y2hlICprLCBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga21lbV9jYWNoZV9h
bGxvYyhrLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa3phbGxvYyhz
aXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGttYWxsb2Mo
c2l6ZSwgZmxhZ3MgfCAoKCBnZnBfdCkweDEwMHUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa3ph
bGxvY19ub2RlKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncywgaW50IG5vZGUpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGttYWxsb2Nfbm9kZShzaXplLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSks
IG5vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBpbnQga21lbV9jYWNoZV9z
aXplKHN0cnVjdCBrbWVtX2NhY2hlICpzKTsKMTQ0NzQ6IHZvaWQgX19hdHRyaWJ1dGVfXygoX19z
ZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkga21lbV9j
YWNoZV9pbml0X2xhdGUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogaW50IHNsYWJfcHJl
cGFyZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CjE0NDc0OiBpbnQgc2xhYl9kZWFkX2NwdSh1bnNp
Z25lZCBpbnQgY3B1KTsKMTQ0NzQ6ICMgMzQgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9vc190eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiIDEKMTQ0NzQ6ICMgMzEgIi4vaW5jbHVk
ZS9kcm0vZHJtX3ByaW50LmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5o
IiAxCjE0NDc0OiAjIDExICIuL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIiAxCjE0NDc0OiAj
IDEwICIuL2luY2x1ZGUvbGludXgvd2FpdF9iaXQuaCIKMTQ0NzQ6IHN0cnVjdCB3YWl0X2JpdF9r
ZXkgewoxNDQ3NDogIHZvaWQgKmZsYWdzOwoxNDQ3NDogIGludCBiaXRfbnI7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyB0aW1lb3V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHdhaXRf
Yml0X3F1ZXVlX2VudHJ5IHsKMTQ0NzQ6ICBzdHJ1Y3Qgd2FpdF9iaXRfa2V5IGtleTsKMTQ0NzQ6
ICBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSB3cV9lbnRyeTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgaW50IHdhaXRfYml0X2FjdGlvbl9m
KHN0cnVjdCB3YWl0X2JpdF9rZXkgKmtleSwgaW50IG1vZGUpOwoxNDQ3NDogCjE0NDc0OiB2b2lk
IF9fd2FrZV91cF9iaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdm9pZCAqd29y
ZCwgaW50IGJpdCk7CjE0NDc0OiBpbnQgX193YWl0X29uX2JpdChzdHJ1Y3Qgd2FpdF9xdWV1ZV9o
ZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9iaXRfcXVldWVfZW50cnkgKndicV9lbnRyeSwgd2Fp
dF9iaXRfYWN0aW9uX2YgKmFjdGlvbiwgdW5zaWduZWQgaW50IG1vZGUpOwoxNDQ3NDogaW50IF9f
d2FpdF9vbl9iaXRfbG9jayhzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qg
d2FpdF9iaXRfcXVldWVfZW50cnkgKndicV9lbnRyeSwgd2FpdF9iaXRfYWN0aW9uX2YgKmFjdGlv
biwgdW5zaWduZWQgaW50IG1vZGUpOwoxNDQ3NDogdm9pZCB3YWtlX3VwX2JpdCh2b2lkICp3b3Jk
LCBpbnQgYml0KTsKMTQ0NzQ6IGludCBvdXRfb2ZfbGluZV93YWl0X29uX2JpdCh2b2lkICp3b3Jk
LCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2RlKTsKMTQ0
NzQ6IGludCBvdXRfb2ZfbGluZV93YWl0X29uX2JpdF90aW1lb3V0KHZvaWQgKndvcmQsIGludCwg
d2FpdF9iaXRfYWN0aW9uX2YgKmFjdGlvbiwgdW5zaWduZWQgaW50IG1vZGUsIHVuc2lnbmVkIGxv
bmcgdGltZW91dCk7CjE0NDc0OiBpbnQgb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfbG9jayh2b2lk
ICp3b3JkLCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2Rl
KTsKMTQ0NzQ6IHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKmJpdF93YWl0cXVldWUodm9pZCAqd29y
ZCwgaW50IGJpdCk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSB3YWl0X2JpdF9pbml0
KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBpbnQgd2FrZV9iaXRfZnVuY3Rpb24oc3RydWN0IHdhaXRf
cXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgc3luYywgdm9pZCAqa2V5
KTsKMTQ0NzQ6ICMgNDkgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIgoxNDQ3NDogZXh0ZXJu
IGludCBiaXRfd2FpdChzdHJ1Y3Qgd2FpdF9iaXRfa2V5ICprZXksIGludCBtb2RlKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgYml0X3dhaXRfaW8oc3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9k
ZSk7CjE0NDc0OiBleHRlcm4gaW50IGJpdF93YWl0X3RpbWVvdXQoc3RydWN0IHdhaXRfYml0X2tl
eSAqa2V5LCBpbnQgbW9kZSk7CjE0NDc0OiBleHRlcm4gaW50IGJpdF93YWl0X2lvX3RpbWVvdXQo
c3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9kZSk7CjE0NDc0OiAjIDcwICIuL2luY2x1
ZGUvbGludXgvd2FpdF9iaXQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogd2FpdF9vbl9iaXQodW5zaWdu
ZWQgbG9uZyAqd29yZCwgaW50IGJpdCwgdW5zaWduZWQgbW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBk
byB7IGRvIHsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGlmICghdGVzdF9iaXQo
Yml0LCB3b3JkKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgcmV0dXJuIG91dF9vZl9saW5l
X3dhaXRfb25fYml0KHdvcmQsIGJpdCwKMTQ0NzQ6ICAgICAgICAgICAgYml0X3dhaXQsCjE0NDc0
OiAgICAgICAgICAgIG1vZGUpOwoxNDQ3NDogfQoxNDQ3NDogIyA5NSAiLi9pbmNsdWRlL2xpbnV4
L3dhaXRfYml0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IHdhaXRfb25fYml0X2lvKHVuc2lnbmVkIGxv
bmcgKndvcmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBk
byB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBpZiAoIXRlc3RfYml0KGJpdCwg
d29yZCkpCjE0NDc0OiAgIHJldHVybiAwOwoxNDQ3NDogIHJldHVybiBvdXRfb2ZfbGluZV93YWl0
X29uX2JpdCh3b3JkLCBiaXQsCjE0NDc0OiAgICAgICAgICAgIGJpdF93YWl0X2lvLAoxNDQ3NDog
ICAgICAgICAgICBtb2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTIxICIuL2luY2x1ZGUvbGludXgv
d2FpdF9iaXQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogd2FpdF9vbl9iaXRfdGltZW91dCh1bnNpZ25l
ZCBsb25nICp3b3JkLCBpbnQgYml0LCB1bnNpZ25lZCBtb2RlLAoxNDQ3NDogICAgICAgdW5zaWdu
ZWQgbG9uZyB0aW1lb3V0KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyB9IHdoaWxlICgwKTsg
fSB3aGlsZSAoMCk7CjE0NDc0OiAgaWYgKCF0ZXN0X2JpdChiaXQsIHdvcmQpKQoxNDQ3NDogICBy
ZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfdGltZW91dCh3
b3JkLCBiaXQsCjE0NDc0OiAgICAgICAgICAgICBiaXRfd2FpdF90aW1lb3V0LAoxNDQ3NDogICAg
ICAgICAgICAgbW9kZSwgdGltZW91dCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRl
L2xpbnV4L3dhaXRfYml0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKMTQ0NzQ6IHdhaXRfb25fYml0X2FjdGlvbih1
bnNpZ25lZCBsb25nICp3b3JkLCBpbnQgYml0LCB3YWl0X2JpdF9hY3Rpb25fZiAqYWN0aW9uLAox
NDQ3NDogICAgICB1bnNpZ25lZCBtb2RlKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgaWYgKCF0ZXN0X2JpdChiaXQsIHdvcmQpKQox
NDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9iaXQo
d29yZCwgYml0LCBhY3Rpb24sIG1vZGUpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNzggIi4vaW5jbHVk
ZS9saW51eC93YWl0X2JpdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CjE0NDc0OiB3YWl0X29uX2JpdF9sb2NrKHVu
c2lnbmVkIGxvbmcgKndvcmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUpCjE0NDc0OiB7CjE0NDc0
OiAgZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBpZiAoIXRlc3Rf
YW5kX3NldF9iaXQoYml0LCB3b3JkKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgcmV0dXJu
IG91dF9vZl9saW5lX3dhaXRfb25fYml0X2xvY2sod29yZCwgYml0LCBiaXRfd2FpdCwgbW9kZSk7
CjE0NDc0OiB9CjE0NDc0OiAjIDIwMiAiLi9pbmNsdWRlL2xpbnV4L3dhaXRfYml0LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQKMTQ0NzQ6IHdhaXRfb25fYml0X2xvY2tfaW8odW5zaWduZWQgbG9uZyAqd29yZCwgaW50
IGJpdCwgdW5zaWduZWQgbW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IGRvIHsgfSB3aGlsZSAo
MCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGlmICghdGVzdF9hbmRfc2V0X2JpdChiaXQsIHdvcmQp
KQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6ICByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9i
aXRfbG9jayh3b3JkLCBiaXQsIGJpdF93YWl0X2lvLCBtb2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjI4ICIuL2luY2x1ZGUvbGludXgvd2FpdF9iaXQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAoxNDQ3NDogd2FpdF9v
bl9iaXRfbG9ja19hY3Rpb24odW5zaWduZWQgbG9uZyAqd29yZCwgaW50IGJpdCwgd2FpdF9iaXRf
YWN0aW9uX2YgKmFjdGlvbiwKMTQ0NzQ6ICAgIHVuc2lnbmVkIG1vZGUpCjE0NDc0OiB7CjE0NDc0
OiAgZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBpZiAoIXRlc3Rf
YW5kX3NldF9iaXQoYml0LCB3b3JkKSkKMTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgcmV0dXJu
IG91dF9vZl9saW5lX3dhaXRfb25fYml0X2xvY2sod29yZCwgYml0LCBhY3Rpb24sIG1vZGUpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBpbml0X3dhaXRfdmFyX2VudHJ5KHN0
cnVjdCB3YWl0X2JpdF9xdWV1ZV9lbnRyeSAqd2JxX2VudHJ5LCB2b2lkICp2YXIsIGludCBmbGFn
cyk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtlX3VwX3Zhcih2b2lkICp2YXIpOwoxNDQ3NDogZXh0
ZXJuIHdhaXRfcXVldWVfaGVhZF90ICpfX3Zhcl93YWl0cXVldWUodm9pZCAqcCk7CjE0NDc0OiAj
IDMzMCAiLi9pbmNsdWRlL2xpbnV4L3dhaXRfYml0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX2FuZF93
YWtlX3VwX2JpdChpbnQgYml0LCB2b2lkICp3b3JkKQoxNDQ3NDogewoxNDQ3NDogIGNsZWFyX2Jp
dF91bmxvY2soYml0LCB3b3JkKTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAgd2FrZV91cF9iaXQod29yZCwgYml0KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNyAiLi9pbmNs
dWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIiAx
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgva2Rldl90LmgiIDEKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L2tkZXZfdC5o
IiAyCjE0NDc0OiAjIDI0ICIuL2luY2x1ZGUvbGludXgva2Rldl90LmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG9s
ZF92YWxpZF9kZXYoZGV2X3QgZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVk
IGludCkgKChkZXYpID4+IDIwKSkgPCAyNTYgJiYgKCh1bnNpZ25lZCBpbnQpICgoZGV2KSAmICgo
MVUgPDwgMjApIC0gMSkpKSA8IDI1NjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTE2IG9sZF9l
bmNvZGVfZGV2KGRldl90IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCgodW5zaWduZWQg
aW50KSAoKGRldikgPj4gMjApKSA8PCA4KSB8ICgodW5zaWduZWQgaW50KSAoKGRldikgJiAoKDFV
IDw8IDIwKSAtIDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGRldl90IG9sZF9kZWNvZGVf
ZGV2KHUxNiB2YWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKCh2YWwgPj4gOCkgJiAyNTUp
IDw8IDIwKSB8ICh2YWwgJiAyNTUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIG5ld19l
bmNvZGVfZGV2KGRldl90IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBtYWpvciA9ICgo
dW5zaWduZWQgaW50KSAoKGRldikgPj4gMjApKTsKMTQ0NzQ6ICB1bnNpZ25lZCBtaW5vciA9ICgo
dW5zaWduZWQgaW50KSAoKGRldikgJiAoKDFVIDw8IDIwKSAtIDEpKSk7CjE0NDc0OiAgcmV0dXJu
IChtaW5vciAmIDB4ZmYpIHwgKG1ham9yIDw8IDgpIHwgKChtaW5vciAmIH4weGZmKSA8PCAxMik7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGRldl90IG5ld19kZWNvZGVfZGV2KHUzMiBkZXYpCjE0
NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbWFqb3IgPSAoZGV2ICYgMHhmZmYwMCkgPj4gODsKMTQ0
NzQ6ICB1bnNpZ25lZCBtaW5vciA9IChkZXYgJiAweGZmKSB8ICgoZGV2ID4+IDEyKSAmIDB4ZmZm
MDApOwoxNDQ3NDogIHJldHVybiAoKChtYWpvcikgPDwgMjApIHwgKG1pbm9yKSk7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHU2NCBodWdlX2VuY29kZV9kZXYoZGV2X3QgZGV2KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBuZXdfZW5jb2RlX2RldihkZXYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBkZXZfdCBodWdlX2RlY29kZV9kZXYodTY0IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
bmV3X2RlY29kZV9kZXYoZGV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN5c3ZfdmFs
aWRfZGV2KGRldl90IGRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBpbnQp
ICgoZGV2KSA+PiAyMCkpIDwgKDE8PDE0KSAmJiAoKHVuc2lnbmVkIGludCkgKChkZXYpICYgKCgx
VSA8PCAyMCkgLSAxKSkpIDwgKDE8PDE4KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIHN5
c3ZfZW5jb2RlX2RldihkZXZfdCBkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgodW5zaWdu
ZWQgaW50KSAoKGRldikgJiAoKDFVIDw8IDIwKSAtIDEpKSkgfCAoKCh1bnNpZ25lZCBpbnQpICgo
ZGV2KSA+PiAyMCkpIDw8IDE4KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgc3lz
dl9tYWpvcih1MzIgZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoZGV2ID4+IDE4KSAmIDB4
M2ZmZjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgc3lzdl9taW5vcih1MzIgZGV2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZXYgJiAweDNmZmZmOwoxNDQ3NDogfQoxNDQ3NDog
IyA4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
ZGNhY2hlLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIgMQoxNDQ3NDogIyAzMSAi
Li9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgSU5JVF9MSVNUX0hFQURfUkNV
KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCjE0NDc0OiB7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBl
b2YobGlzdC0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0
eXBlb2YobGlzdC0+bmV4dCkpIChsaXN0KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKGxpc3QtPm5l
eHQpLCBfX3UuX19jLCBzaXplb2YobGlzdC0+bmV4dCkpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDog
ICh7IHVuaW9uIHsgdHlwZW9mKGxpc3QtPnByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3Ug
PSB7IC5fX3ZhbCA9ICggdHlwZW9mKGxpc3QtPnByZXYpKSAobGlzdCkgfTsgX193cml0ZV9vbmNl
X3NpemUoJihsaXN0LT5wcmV2KSwgX191Ll9fYywgc2l6ZW9mKGxpc3QtPnByZXYpKTsgX191Ll9f
dmFsOyB9KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzcgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0Lmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fbGlzdF9hZGRfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKm5ldywKMTQ0NzQ6
ICAgc3RydWN0IGxpc3RfaGVhZCAqcHJldiwgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpZiAoIV9fbGlzdF9hZGRfdmFsaWQobmV3LCBwcmV2LCBuZXh0KSkKMTQ0NzQ6
ICAgcmV0dXJuOwoxNDQ3NDogCjE0NDc0OiAgbmV3LT5uZXh0ID0gbmV4dDsKMTQ0NzQ6ICBuZXct
PnByZXYgPSBwcmV2OwoxNDQ3NDogIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRy
X3QpKG5ldyk7IDsgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5ldykgJiYgKF9yX2FfcF9fdikg
PT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5pb24geyB0eXBlb2YoKCgqKChzdHJ1Y3Qg
bGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYp
LT5uZXh0KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5u
ZXh0KSkpKSkoX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKCooKHN0cnVjdCBs
aXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3Ry
dWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpKTsgX191Ll9fdmFsOyB9KTsgZWxz
ZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfODUodm9pZCkgX19h
dHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2Fk
cyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVh
ZCAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJigqKChz
dHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2Yoc2hvcnQpIHx8
IHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSA9PSBz
aXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+
bmV4dCkpKSkgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0Xzg1KCk7IH0g
d2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlv
biB7IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJigqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgq
KChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgo
dHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3Bf
X3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYo
cHJldiktPm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihwcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGls
ZSAoMCk7CjE0NDc0OiAgbmV4dC0+cHJldiA9IG5ldzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTA1ICIu
L2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X2FkZF9yY3Uoc3RydWN0
IGxpc3RfaGVhZCAqbmV3LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDog
IF9fbGlzdF9hZGRfcmN1KG5ldywgaGVhZCwgaGVhZC0+bmV4dCk7CjE0NDc0OiB9CjE0NDc0OiAj
IDEyNiAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9hZGRfdGFp
bF9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqbmV3LAoxNDQ3NDogICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIF9fbGlzdF9hZGRfcmN1KG5ldywgaGVhZC0+cHJldiwg
aGVhZCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE1NiAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgbGlzdF9kZWxfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQoxNDQ3NDog
ewoxNDQ3NDogIF9fbGlzdF9kZWxfZW50cnkoZW50cnkpOwoxNDQ3NDogIGVudHJ5LT5wcmV2ID0g
KCh2b2lkICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CjE0NDc0OiB9CjE0NDc0
OiAjIDE4MiAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfZGVs
X2luaXRfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGlmICghaGxp
c3RfdW5oYXNoZWQobikpIHsKMTQ0NzQ6ICAgX19obGlzdF9kZWwobik7CjE0NDc0OiAgICh7IHVu
aW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192
YWwgPSAoIHR5cGVvZihuLT5wcHJldikpICgoKHZvaWQgKikwKSkgfTsgX193cml0ZV9vbmNlX3Np
emUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0p
OwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTk4ICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3JlcGxhY2VfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKm9sZCwK
MTQ0NzQ6ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXcpCjE0NDc0OiB7CjE0NDc0OiAgbmV3LT5u
ZXh0ID0gb2xkLT5uZXh0OwoxNDQ3NDogIG5ldy0+cHJldiA9IG9sZC0+cHJldjsKMTQ0NzQ6ICBk
byB7IHVpbnRwdHJfdCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7IGlmIChfX2J1aWx0
aW5fY29uc3RhbnRfcChuZXcpICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICop
MCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnBy
ZXYpLT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0
eXBlb2YoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKSkg
KCh0eXBlb2YoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2KS0+bmV4dCkpKSkp
KF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1Y3QgbGlzdF9oZWFk
ICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3RydWN0
IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSkpOyBfX3UuX192YWw7IH0pOyBl
bHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMDModm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9s
b2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYoKigoc3RydWN0IGxpc3Rf
aGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9m
KComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2KS0+bmV4dCkpKSkgPT0gc2l6
ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnBy
ZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3Rf
aGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21w
aWxldGltZV9hc3NlcnRfMjAzKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFk
ICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2
KS0+bmV4dCkpKSkpICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihuZXctPnByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgodHlwZW9mKCgqKChzdHJ1Y3Qg
bGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKV9yX2FfcF9fdikpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5u
ZXh0KSkpKSwgX191Ll9fYywgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3
LT5wcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgbmV3LT5uZXh0LT5wcmV2ID0gbmV3OwoxNDQ3NDogIG9sZC0+cHJldiA9ICgo
dm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwoxNDQ3NDogfQoxNDQ3NDog
IyAyMjcgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9zcGxp
Y2VfaW5pdF9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpwcmV2LAoxNDQ3NDogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQsCjE0
NDc0OiAgICAgICAgdm9pZCAoKnN5bmMpKHZvaWQpKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBs
aXN0X2hlYWQgKmZpcnN0ID0gbGlzdC0+bmV4dDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkICps
YXN0ID0gbGlzdC0+cHJldjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIElOSVRfTElTVF9IRUFEX1JDVShsaXN0KTsKMTQ0NzQ6
ICMgMjUwICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3NDogIHN5bmMoKTsKMTQ0NzQ6
ICMgMjYwICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3NDogIGxhc3QtPm5leHQgPSBu
ZXh0OwoxNDQ3NDogIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKGZpcnN0
KTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoZmlyc3QpICYmIChfcl9hX3BfX3YpID09ICh1
aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3Rf
aGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4
dCkpKSkpKSAoKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkp
KSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1Y3QgbGlzdF9o
ZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSksIF9fdS5fX2MsIHNpemVvZigoKCooKHN0cnVjdCBs
aXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8g
eyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI2MSh2b2lkKSBfX2F0dHJp
YnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZv
ciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoq
KSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKCooKHN0cnVj
dCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihzaG9ydCkgfHwgc2l6
ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVv
ZihpbnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0
KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfMjYxKCk7IH0gd2hp
bGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7
IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJigqKChzdHJ1Y3Qg
bGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChz
dHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgodHlw
ZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3Yp
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJl
diktPm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihwcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgZmlyc3QtPnByZXYgPSBwcmV2OwoxNDQ3NDogIG5leHQtPnByZXYgPSBsYXN0
OwoxNDQ3NDogfQoxNDQ3NDogIyAyNzMgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGxpc3Rfc3BsaWNlX2luaXRfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCjE0NDc0
OiAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCjE0NDc0OiAgICAgIHZvaWQgKCpzeW5jKSh2
b2lkKSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWxpc3RfZW1wdHkobGlzdCkpCjE0NDc0OiAgIF9f
bGlzdF9zcGxpY2VfaW5pdF9yY3UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCwgc3luYyk7CjE0NDc0
OiB9CjE0NDc0OiAjIDI4OCAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bGlzdF9zcGxpY2VfdGFpbF9pbml0X3JjdShzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAoxNDQ3NDog
ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCjE0NDc0OiAgICAgICAgICAgdm9pZCAo
KnN5bmMpKHZvaWQpKQoxNDQ3NDogewoxNDQ3NDogIGlmICghbGlzdF9lbXB0eShsaXN0KSkKMTQ0
NzQ6ICAgX19saXN0X3NwbGljZV9pbml0X3JjdShsaXN0LCBoZWFkLT5wcmV2LCBoZWFkLCBzeW5j
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDgzICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBobGlzdF9kZWxfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3
NDogIF9faGxpc3RfZGVsKG4pOwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikp
ICgoKHZvaWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKSkgfTsgX193cml0ZV9v
bmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192
YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA0OTYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0Lmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGhsaXN0X3JlcGxhY2VfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpvbGQsCjE0
NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpuZXcpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0
IGhsaXN0X25vZGUgKm5leHQgPSBvbGQtPm5leHQ7CjE0NDc0OiAKMTQ0NzQ6ICBuZXctPm5leHQg
PSBuZXh0OwoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKG5ldy0+cHByZXYpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5ldy0+cHByZXYpKSAob2xkLT5w
cHJldikgfTsgX193cml0ZV9vbmNlX3NpemUoJihuZXctPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KG5ldy0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICBkbyB7IHVpbnRwdHJfdCBfcl9h
X3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuZXcp
ICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlw
ZW9mKCgqKHN0cnVjdCBobGlzdF9ub2RlICoqKW5ldy0+cHByZXYpKSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigoKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKilu
ZXctPnBwcmV2KSkpICgodHlwZW9mKCooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikp
KF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCooc3RydWN0IGhsaXN0X25vZGUg
KiopbmV3LT5wcHJldikpLCBfX3UuX19jLCBzaXplb2YoKCooc3RydWN0IGhsaXN0X25vZGUgKiop
bmV3LT5wcHJldikpKTsgX191Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQg
X19jb21waWxldGltZV9hc3NlcnRfNTAzKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygi
TmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBp
ZiAoISgoc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSA9PSBzaXpl
b2YoY2hhcikgfHwgc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSA9
PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJiooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5w
cHJldikgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKilu
ZXctPnBwcmV2KSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNTAzKCk7
IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1
bmlvbiB7IHR5cGVvZigqJiooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikgX192YWw7
IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYqKHN0cnVjdCBobGlz
dF9ub2RlICoqKW5ldy0+cHByZXYpKSAoKHR5cGVvZigqKCh0eXBlb2YoKihzdHJ1Y3QgaGxpc3Rf
bm9kZSAqKiluZXctPnBwcmV2KSlfcl9hX3BfX3YpKSAqKSgodHlwZW9mKCooc3RydWN0IGhsaXN0
X25vZGUgKiopbmV3LT5wcHJldikpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigq
Jiooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldiksIF9fdS5fX2MsIHNpemVvZigqJioo
c3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgaWYgKG5leHQpCjE0NDc0OiAgICh7IHVuaW9uIHsg
dHlwZW9mKG5ldy0+bmV4dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5f
X3ZhbCA9ICggdHlwZW9mKG5ldy0+bmV4dC0+cHByZXYpKSAoJm5ldy0+bmV4dCkgfTsgX193cml0
ZV9vbmNlX3NpemUoJihuZXctPm5leHQtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG5ldy0+bmV4
dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZihvbGQt
PnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihv
bGQtPnBwcmV2KSkgKCgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG9sZC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yob2xkLT5w
cHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyA1MzUgIi4vaW5jbHVkZS9s
aW51eC9yY3VsaXN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2FkZF9oZWFkX3JjdShzdHJ1Y3QgaGxp
c3Rfbm9kZSAqbiwKMTQ0NzQ6ICAgICAgc3RydWN0IGhsaXN0X2hlYWQgKmgpCjE0NDc0OiB7CjE0
NDc0OiAgc3RydWN0IGhsaXN0X25vZGUgKmZpcnN0ID0gaC0+Zmlyc3Q7CjE0NDc0OiAKMTQ0NzQ6
ICBuLT5uZXh0ID0gZmlyc3Q7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2Yobi0+cHByZXYpIF9f
dmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPnBwcmV2KSkg
KCZoLT5maXJzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNp
emVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogIGRvIHsgdWludHB0cl90IF9y
X2FfcF9fdiA9ICh1aW50cHRyX3QpKG4pOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuKSAm
JiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTApKSAoeyB1bmlvbiB7IHR5cGVv
ZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0X25v
ZGUgKiopKCYoaCktPmZpcnN0KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoJihoKS0+Zmlyc3QpKSkpKShfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCgo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSksIF9fdS5fX2MsIHNpemVv
ZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpKTsgX191Ll9fdmFs
OyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNTQy
KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBz
dG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKCooKHN0cnVj
dCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVv
ZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpID09IHNpemVvZihz
aG9ydCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkp
KSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgm
KGgpLT5maXJzdCkpKSkgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzU0
MigpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsg
KHsgdW5pb24geyB0eXBlb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0
KSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJigq
KChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpKSAoKHR5cGVvZigqKCh0eXBl
b2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpX3JfYV9wX192KSkg
KikoKHR5cGVvZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSlfcl9h
X3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoq
KSgmKGgpLT5maXJzdCkpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKikoJihoKS0+Zmlyc3QpKSkpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hp
bGUgKDApOwoxNDQ3NDogIGlmIChmaXJzdCkKMTQ0NzQ6ICAgKHsgdW5pb24geyB0eXBlb2YoZmly
c3QtPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZihmaXJzdC0+cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoZmlyc3Qt
PnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKGZpcnN0LT5wcHJldikpOyBfX3UuX192YWw7IH0pOwox
NDQ3NDogfQoxNDQ3NDogIyA1NjYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGhsaXN0X2FkZF90YWlsX3JjdShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwKMTQ0NzQ6ICAgICAg
ICAgICBzdHJ1Y3QgaGxpc3RfaGVhZCAqaCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqaSwgKmxhc3QgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZm9y
IChpID0gaC0+Zmlyc3Q7IGk7IGkgPSBpLT5uZXh0KQoxNDQ3NDogICBsYXN0ID0gaTsKMTQ0NzQ6
IAoxNDQ3NDogIGlmIChsYXN0KSB7CjE0NDc0OiAgIG4tPm5leHQgPSBsYXN0LT5uZXh0OwoxNDQ3
NDogICAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJmxhc3QtPm5leHQpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+cHByZXYpKTsgX191
Ll9fdmFsOyB9KTsKMTQ0NzQ6ICAgZG8geyB1aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJf
dCkobik7IDsgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pICYmIChfcl9hX3BfX3YpID09ICh1
aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0
X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0g
eyAuX192YWwgPSAoIHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5u
ZXh0KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4
dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1Y3QgaGxp
c3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpLCBfX3UuX19jLCBzaXplb2YoKCgqKChzdHJ1
Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpKTsgX191Ll9fdmFsOyB9KTsgZWxz
ZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNTc4KHZvaWQpIF9f
YXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9h
ZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKCoo
KHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSA9PSBzaXplb2Yoc2hvcnQp
IHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkg
PT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxh
c3QpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNTc4
KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAo
eyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4
dCkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpKSAoKHR5cGVvZigqKCh0
eXBlb2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSlfcl9hX3Bf
X3YpKSAqKSgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkp
KSkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChzdHJ1Y3QgaGxpc3Rf
bm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgaGxpc3RfYWRkX2hl
YWRfcmN1KG4sIGgpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjAyICIuL2luY2x1ZGUv
bGludXgvcmN1bGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9hZGRfYmVmb3JlX3JjdShzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqbiwKMTQ0NzQ6ICAgICAgc3RydWN0IGhsaXN0X25vZGUgKm5leHQpCjE0NDc0
OiB7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2Yobi0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPnBwcmV2KSkgKG5leHQtPnBwcmV2KSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBwcmV2
KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiAgbi0+bmV4dCA9IG5leHQ7CjE0NDc0OiAgZG8geyB1
aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJfdCkobik7IDsgaWYgKF9fYnVpbHRpbl9jb25z
dGFudF9wKG4pICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVu
aW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkpKSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigoKCooKHN0cnVj
dCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3QgaGxp
c3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpLCBfX3UuX19j
LCBzaXplb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKTsgX191
Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3Nl
cnRfNjA3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBz
aXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKCoo
KHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YoY2hhcikgfHwg
c2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXpl
b2Yoc2hvcnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJl
dikpKSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoq
KSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRf
NjA3KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJl
dikpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkpKSAoKHR5cGVvZigqKCh0eXBl
b2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSlfcl9hX3BfX3YpKSAq
KSgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpX3JfYV9w
X192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
KG4pLT5wcHJldikpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoKG4pLT5wcHJldikpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2YobmV4dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5leHQtPnBwcmV2KSkgKCZuLT5uZXh0
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG5leHQtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG5l
eHQtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDYyOSAiLi9pbmNs
dWRlL2xpbnV4L3JjdWxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYWRkX2JlaGluZF9yY3Uoc3Ry
dWN0IGhsaXN0X25vZGUgKm4sCjE0NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ub2RlICpwcmV2KQox
NDQ3NDogewoxNDQ3NDogIG4tPm5leHQgPSBwcmV2LT5uZXh0OwoxNDQ3NDogICh7IHVuaW9uIHsg
dHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAo
IHR5cGVvZihuLT5wcHJldikpICgmcHJldi0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihu
LT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwoxNDQ3
NDogIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKG4pOyA7IGlmIChfX2J1
aWx0aW5fY29uc3RhbnRfcChuKSAmJiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAq
KTApKSAoeyB1bmlvbiB7IHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKHByZXYp
LT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBl
b2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVv
ZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKShfcl9hX3BfX3Yp
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJl
diktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiop
KCYocHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVy
biB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vy
cm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHku
IikpKTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+
bmV4dCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigo
c3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihpbnQpIHx8
IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0g
c2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCgpOyB9IHdoaWxlICgwKTsg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2Yo
KiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpX3JfYV9wX192KSkgKikoKHR5cGVvZigo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKV9yX2FfcF9fdikpIH07
IF9fd3JpdGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldikt
Pm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYo
cHJldiktPm5leHQpKSkpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDAp
OwoxNDQ3NDogIGlmIChuLT5uZXh0KQoxNDQ3NDogICAoeyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0
LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
bi0+bmV4dC0+cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+bmV4
dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+bmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIiAyCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvbGlzdF9ibC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvYml0X3NwaW5sb2NrLmgiIDEKMTQ0NzQ6
ICMgMTYgIi4vaW5jbHVkZS9saW51eC9iaXRfc3BpbmxvY2suaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0X3Nw
aW5fbG9jayhpbnQgYml0bnVtLCB1bnNpZ25lZCBsb25nICphZGRyKQoxNDQ3NDogewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IAoxNDQ3NDogIHdo
aWxlIChfX2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfYW5kX3NldF9iaXRfbG9jayhiaXRudW0sIGFk
ZHIpKSwgMCkpIHsKMTQ0NzQ6ICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsKMTQ0NzQ6ICAgZG8gewoxNDQ3NDogICAgY3B1X3JlbGF4KCk7CjE0NDc0OiAgIH0gd2hpbGUg
KHRlc3RfYml0KGJpdG51bSwgYWRkcikpOwoxNDQ3NDogICBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogICh2b2lkKTA7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRfc3Bpbl90
cnlsb2NrKGludCBiaXRudW0sIHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IAoxNDQ3NDogIGlm
IChfX2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfYW5kX3NldF9iaXRfbG9jayhiaXRudW0sIGFkZHIp
KSwgMCkpIHsKMTQ0NzQ6ICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
MTQ0NzQ6ICAgcmV0dXJuIDA7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgKHZvaWQpMDsKMTQ0
NzQ6ICByZXR1cm4gMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBiaXRfc3Bpbl91bmxvY2soaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRk
cikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGNsZWFy
X2JpdF91bmxvY2soYml0bnVtLCBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogIF9fYXNtX18gX192b2xh
dGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgKHZvaWQpMDsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19i
aXRfc3Bpbl91bmxvY2soaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRkcikKMTQ0NzQ6IHsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fY2xlYXJfYml0X3VubG9j
ayhiaXRudW0sIGFkZHIpOwoxNDQ3NDogCjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICAodm9pZCkwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYml0X3NwaW5faXNfbG9ja2VkKGludCBiaXRudW0s
IHVuc2lnbmVkIGxvbmcgKmFkZHIpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gdGVz
dF9iaXQoYml0bnVtLCBhZGRyKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB9CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiIDIKMTQ0
NzQ6ICMgMzQgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiCjE0NDc0OiBzdHJ1Y3QgaGxpc3Rf
YmxfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGhsaXN0X2JsX25vZGUgKmZpcnN0OwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGhsaXN0X2JsX25vZGUgewoxNDQ3NDogIHN0cnVjdCBobGlz
dF9ibF9ub2RlICpuZXh0LCAqKnBwcmV2OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgSU5JVF9ITElTVF9CTF9OT0RFKHN0cnVjdCBobGlzdF9ibF9ub2RlICpo
KQoxNDQ3NDogewoxNDQ3NDogIGgtPm5leHQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6ICBoLT5wcHJl
diA9ICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBobGlzdF9ibF91bmhhc2hlZChjb25zdCBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIWgtPnBwcmV2OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
dHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaGxpc3RfYmxfZmlyc3Qoc3RydWN0IGhsaXN0X2JsX2hlYWQg
KmgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqKQoxNDQ3
NDogICAoKHVuc2lnbmVkIGxvbmcpaC0+Zmlyc3QgJiB+MVVMKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBobGlzdF9ibF9zZXRfZmlyc3Qoc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgsCjE0
NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpbiAmIDFVTCksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2xpc3Rf
YmwuaCIpLCAiaSIgKDY2KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkp
KTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9w
c2VjdGlvblxuXHQiIDogOiAiaSIgKDE5KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1aWx0
aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
MTQ0NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCgodW5zaWduZWQgbG9uZyloLT5m
aXJzdCAmIDFVTCkgIT0gMVVMKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUo
IjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUs
XCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1
Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6Zmls
ZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIg
Ilx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIg
OiA6ICJpIiAoImluY2x1ZGUvbGludXgvbGlzdF9ibC5oIiksICJpIiAoNjcpLCAiaSIgKDApLCAi
aSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20g
dm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5c
dCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjApKTsg
fSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICA7CjE0NDc0OiAgaC0+Zmlyc3QgPSAoc3RydWN0IGhsaXN0X2JsX25vZGUgKikoKHVuc2lnbmVk
IGxvbmcpbiB8IDFVTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaGxpc3RfYmxfZW1w
dHkoY29uc3Qgc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
ICEoKHVuc2lnbmVkIGxvbmcpKHsgdW5pb24geyB0eXBlb2YoaC0+Zmlyc3QpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoaC0+Zmlyc3QpLCBfX3Uu
X19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJiho
LT5maXJzdCksIF9fdS5fX2MsIHNpemVvZihoLT5maXJzdCkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pICYgfjFVTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3Rf
YmxfYWRkX2hlYWQoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4sCjE0NDc0OiAgICAgIHN0cnVjdCBo
bGlzdF9ibF9oZWFkICpoKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ibF9ub2RlICpm
aXJzdCA9IGhsaXN0X2JsX2ZpcnN0KGgpOwoxNDQ3NDogCjE0NDc0OiAgbi0+bmV4dCA9IGZpcnN0
OwoxNDQ3NDogIGlmIChmaXJzdCkKMTQ0NzQ6ICAgZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CjE0
NDc0OiAgbi0+cHByZXYgPSAmaC0+Zmlyc3Q7CjE0NDc0OiAgaGxpc3RfYmxfc2V0X2ZpcnN0KGgs
IG4pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2FkZF9iZWZvcmUoc3Ry
dWN0IGhsaXN0X2JsX25vZGUgKm4sCjE0NDc0OiAgICAgICAgICAgIHN0cnVjdCBobGlzdF9ibF9u
b2RlICpuZXh0KQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBobGlzdF9ibF9ub2RlICoqcHByZXYg
PSBuZXh0LT5wcHJldjsKMTQ0NzQ6IAoxNDQ3NDogIG4tPnBwcmV2ID0gcHByZXY7CjE0NDc0OiAg
bi0+bmV4dCA9IG5leHQ7CjE0NDc0OiAgbmV4dC0+cHByZXYgPSAmbi0+bmV4dDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgKHsgdW5pb24geyB0eXBlb2YoKnBwcmV2KSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqcHByZXYpKSAoKHN0cnVjdCBobGlzdF9i
bF9ub2RlICopICgodWludHB0cl90KW4gfCAoKHVpbnRwdHJfdCkqcHByZXYgJiAxVUwpKSkgfTsg
X193cml0ZV9vbmNlX3NpemUoJigqcHByZXYpLCBfX3UuX19jLCBzaXplb2YoKnBwcmV2KSk7IF9f
dS5fX3ZhbDsgfSkKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaGxpc3RfYmxfYWRkX2JlaGluZChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbiwKMTQ0NzQ6ICAg
ICAgICAgICAgc3RydWN0IGhsaXN0X2JsX25vZGUgKnByZXYpCjE0NDc0OiB7CjE0NDc0OiAgbi0+
bmV4dCA9IHByZXYtPm5leHQ7CjE0NDc0OiAgbi0+cHByZXYgPSAmcHJldi0+bmV4dDsKMTQ0NzQ6
ICBwcmV2LT5uZXh0ID0gbjsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChuLT5uZXh0KQoxNDQ3NDogICBu
LT5uZXh0LT5wcHJldiA9ICZuLT5uZXh0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9f
aGxpc3RfYmxfZGVsKHN0cnVjdCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIHN0
cnVjdCBobGlzdF9ibF9ub2RlICpuZXh0ID0gbi0+bmV4dDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rf
Ymxfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7CjE0NDc0OiAKMTQ0NzQ6ICBkbyB7IGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKW4gJiAxVUwpLCAwKSkgZG8geyBkbyB7IGFz
bSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNo
c2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6Omxp
bmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYisl
YzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9saXN0X2JsLmgiKSwg
ImkiICgxMjApLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdo
aWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9u
XG5cdCIgOiA6ICJpIiAoMjEpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJl
YWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICAoeyB1bmlvbiB7IHR5cGVvZigqcHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCpwcHJldikpICgoc3RydWN0IGhsaXN0
X2JsX25vZGUgKikgKCh1bnNpZ25lZCBsb25nKW5leHQgfCAoKHVuc2lnbmVkIGxvbmcpKnBwcmV2
ICYgMVVMKSkpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KCpwcHJldikpOyBfX3UuX192YWw7IH0pCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogIGlmIChuZXh0
KQoxNDQ3NDogICBuZXh0LT5wcHJldiA9IHBwcmV2OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGhsaXN0X2JsX2RlbChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX2hsaXN0X2JsX2RlbChuKTsKMTQ0NzQ6ICBuLT5uZXh0ID0gKCh2b2lkICopIDB4MTAwICsg
KDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CjE0NDc0OiAgbi0+cHByZXYgPSAoKHZvaWQgKikgMHgx
MjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBobGlzdF9ibF9kZWxfaW5pdChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKMTQ0NzQ6IHsKMTQ0
NzQ6ICBpZiAoIWhsaXN0X2JsX3VuaGFzaGVkKG4pKSB7CjE0NDc0OiAgIF9faGxpc3RfYmxfZGVs
KG4pOwoxNDQ3NDogICBJTklUX0hMSVNUX0JMX05PREUobik7CjE0NDc0OiAgfQoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2xvY2soc3RydWN0IGhsaXN0X2JsX2hlYWQgKmIp
CjE0NDc0OiB7CjE0NDc0OiAgYml0X3NwaW5fbG9jaygwLCAodW5zaWduZWQgbG9uZyAqKWIpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX3VubG9jayhzdHJ1Y3QgaGxpc3Rf
YmxfaGVhZCAqYikKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2JpdF9zcGluX3VubG9jaygwLCAodW5zaWdu
ZWQgbG9uZyAqKWIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGhsaXN0X2JsX2lzX2xv
Y2tlZChzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAqYikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYml0
X3NwaW5faXNfbG9ja2VkKDAsICh1bnNpZ25lZCBsb25nICopYik7CjE0NDc0OiB9CjE0NDc0OiAj
IDkgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGhsaXN0X2JsX3NldF9maXJzdF9yY3Uoc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgsCjE0
NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpbiAmIDFVTCksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3JjdWxp
c3RfYmwuaCIpLCAiaSIgKDE0KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNo
c2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDIyKSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1
aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgw
KTsKMTQ0NzQ6ICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCgodW5zaWduZWQgbG9uZylo
LT5maXJzdCAmIDFVTCkgIT0gMVVMKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRp
bGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFi
bGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6
OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVj
MiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlv
biIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIiksICJpIiAoMTUpLCAiaSIg
KDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAo
eyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hh
YmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAo
MjMpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICA7CjE0NDc0OiAgZG8geyB1aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJfdCko
KHN0cnVjdCBobGlzdF9ibF9ub2RlICopKCh1bnNpZ25lZCBsb25nKW4gfCAxVUwpKTsgOyBpZiAo
X19idWlsdGluX2NvbnN0YW50X3AoKHN0cnVjdCBobGlzdF9ibF9ub2RlICopKCh1bnNpZ25lZCBs
b25nKW4gfCAxVUwpKSAmJiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTApKSAo
eyB1bmlvbiB7IHR5cGVvZigoaC0+Zmlyc3QpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0g
eyAuX192YWwgPSAoIHR5cGVvZigoaC0+Zmlyc3QpKSkgKCh0eXBlb2YoaC0+Zmlyc3QpKShfcl9h
X3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKChoLT5maXJzdCkpLCBfX3UuX19jLCBzaXpl
b2YoKGgtPmZpcnN0KSkpOyBfX3UuX192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9p
ZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNyh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18o
Ik5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsg
aWYgKCEoKHNpemVvZigqJmgtPmZpcnN0KSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComaC0+
Zmlyc3QpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComaC0+Zmlyc3QpID09IHNpemVvZihp
bnQpIHx8IHNpemVvZigqJmgtPmZpcnN0KSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGlt
ZV9hc3NlcnRfMTcoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoi
bWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComaC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComaC0+Zmlyc3QpKSAoKHR5cGVvZigqKCh0
eXBlb2YoaC0+Zmlyc3QpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoaC0+Zmlyc3QpKV9yX2FfcF9f
dikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKiZoLT5maXJzdCksIF9fdS5fX2MsIHNpemVvZigq
JmgtPmZpcnN0KSk7IF9fdS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKQoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGhsaXN0X2JsX25vZGUg
KmhsaXN0X2JsX2ZpcnN0X3JjdShzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAqaCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKHN0cnVjdCBobGlzdF9ibF9ub2RlICopCjE0NDc0OiAgICgodW5zaWduZWQg
bG9uZykoeyB0eXBlb2YoKihoLT5maXJzdCkpICpfX19fX19fX3AxID0gKHR5cGVvZigqKGgtPmZp
cnN0KSkgKikoeyB1bmlvbiB7IHR5cGVvZigoaC0+Zmlyc3QpKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKChoLT5maXJzdCkpLCBfX3UuX19jLCBz
aXplb2YoKGgtPmZpcnN0KSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChoLT5m
aXJzdCkpLCBfX3UuX19jLCBzaXplb2YoKGgtPmZpcnN0KSkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pOyBkbyB7IH0gd2hpbGUgKDApOyA7ICgodHlwZW9mKCooaC0+Zmlyc3QpKSAq
KShfX19fX19fX3AxKSk7IH0pICYgfjFVTCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQ2ICIuL2luY2x1
ZGUvbGludXgvcmN1bGlzdF9ibC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9kZWxfcmN1KHN0cnVj
dCBobGlzdF9ibF9ub2RlICpuKQoxNDQ3NDogewoxNDQ3NDogIF9faGxpc3RfYmxfZGVsKG4pOwox
NDQ3NDogIG4tPnBwcmV2ID0gKCh2b2lkICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVM
KSk7CjE0NDc0OiB9CjE0NDc0OiAjIDcxICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBobGlzdF9ibF9hZGRfaGVhZF9yY3Uoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4s
CjE0NDc0OiAgICAgIHN0cnVjdCBobGlzdF9ibF9oZWFkICpoKQoxNDQ3NDogewoxNDQ3NDogIHN0
cnVjdCBobGlzdF9ibF9ub2RlICpmaXJzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZmlyc3Qg
PSBobGlzdF9ibF9maXJzdChoKTsKMTQ0NzQ6IAoxNDQ3NDogIG4tPm5leHQgPSBmaXJzdDsKMTQ0
NzQ6ICBpZiAoZmlyc3QpCjE0NDc0OiAgIGZpcnN0LT5wcHJldiA9ICZuLT5uZXh0OwoxNDQ3NDog
IG4tPnBwcmV2ID0gJmgtPmZpcnN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBobGlzdF9ibF9z
ZXRfZmlyc3RfcmN1KGgsIG4pOwoxNDQ3NDogfQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgv
ZGNhY2hlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvbG9ja3JlZi5oIiAxCjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvbGludXgv
bG9ja3JlZi5oIgoxNDQ3NDogc3RydWN0IGxvY2tyZWYgewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6
IAoxNDQ3NDogICBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgbG9ja19jb3VudDsK
MTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgc3BpbmxvY2tfdCBsb2NrOwoxNDQ3
NDogICAgaW50IGNvdW50OwoxNDQ3NDogICB9OwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBsb2NrcmVmX2dldChzdHJ1Y3QgbG9ja3JlZiAqKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgbG9ja3JlZl9wdXRfcmV0dXJuKHN0cnVjdCBsb2NrcmVmICopOwoxNDQ3NDog
ZXh0ZXJuIGludCBsb2NrcmVmX2dldF9ub3RfemVybyhzdHJ1Y3QgbG9ja3JlZiAqKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgbG9ja3JlZl9wdXRfbm90X3plcm8oc3RydWN0IGxvY2tyZWYgKik7CjE0NDc0
OiBleHRlcm4gaW50IGxvY2tyZWZfZ2V0X29yX2xvY2soc3RydWN0IGxvY2tyZWYgKik7CjE0NDc0
OiBleHRlcm4gaW50IGxvY2tyZWZfcHV0X29yX2xvY2soc3RydWN0IGxvY2tyZWYgKik7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGxvY2tyZWZfbWFya19kZWFkKHN0cnVjdCBsb2NrcmVmICop
OwoxNDQ3NDogZXh0ZXJuIGludCBsb2NrcmVmX2dldF9ub3RfZGVhZChzdHJ1Y3QgbG9ja3JlZiAq
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIF9fbG9ja3JlZl9pc19kZWFkKGNvbnN0IHN0
cnVjdCBsb2NrcmVmICpsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKGludClsLT5jb3VudCA8
IDApOwoxNDQ3NDogfQoxNDQ3NDogIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIiAyCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zdHJpbmdoYXNoLmgiIDEKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xp
bnV4L2hhc2guaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAx
CjE0NDc0OiAjIDcgIi4vaW5jbHVkZS9saW51eC9oYXNoLmgiIDIKMTQ0NzQ6ICMgNjAgIi4vaW5j
bHVkZS9saW51eC9oYXNoLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgX19oYXNoXzMyX2dlbmVyaWModTMyIHZhbCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdmFsICogMHg2MUM4ODY0NzsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGhhc2hfMzJfZ2VuZXJpYyh1MzIg
dmFsLCB1bnNpZ25lZCBpbnQgYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBf
X2hhc2hfMzJfZ2VuZXJpYyh2YWwpID4+ICgzMiAtIGJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHUzMiBoYXNoXzY0X2dlbmVyaWModTY0IHZhbCwgdW5zaWduZWQgaW50IGJpdHMpCjE0
NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiB2YWwgKiAweDYxQzg4NjQ2ODBC
NTgzRUJ1bGwgPj4gKDY0IC0gYml0cyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGhhc2hfcHRyKGNvbnN0IHZvaWQgKnB0ciwgdW5z
aWduZWQgaW50IGJpdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGhhc2hfNjRfZ2VuZXJpYygo
dW5zaWduZWQgbG9uZylwdHIsIGJpdHMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHUzMiBoYXNoMzJfcHRyKGNvbnN0IHZvaWQgKnB0cikKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHZhbCA9ICh1bnNpZ25lZCBsb25nKXB0cjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dmFsIF49ICh2YWwgPj4gMzIpOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuICh1MzIpdmFsOwoxNDQ3
NDogfQoxNDQ3NDogIyA4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIiAyCjE0NDc0OiAj
IDQyICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZwox
NDQ3NDogcGFydGlhbF9uYW1lX2hhc2godW5zaWduZWQgbG9uZyBjLCB1bnNpZ25lZCBsb25nIHBy
ZXZoYXNoKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAocHJldmhhc2ggKyAoYyA8PCA0KSArIChj
ID4+IDQpKSAqIDExOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGVuZF9uYW1lX2hhc2godW5zaWduZWQg
bG9uZyBoYXNoKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBoYXNoXzY0X2dlbmVyaWMoaGFzaCwg
MzIpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NiAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZ2hhc2guaCIK
MTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19wdXJlX18pKSBmdWxs
X25hbWVfaGFzaChjb25zdCB2b2lkICpzYWx0LCBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCk7
CjE0NDc0OiAjIDc3ICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIgoxNDQ3NDogZXh0ZXJu
IHU2NCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIGhhc2hsZW5fc3RyaW5nKGNvbnN0IHZvaWQg
KnNhbHQsIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogIyAxNSAiLi9pbmNsdWRlL2xpbnV4L2Rj
YWNoZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBhdGg7CjE0NDc0OiBzdHJ1
Y3QgdmZzbW91bnQ7CjE0NDc0OiAjIDQ3ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCjE0NDc0
OiBzdHJ1Y3QgcXN0ciB7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDog
ICAgdTMyIGhhc2g7IHUzMiBsZW47CjE0NDc0OiAgIH07CjE0NDc0OiAgIHU2NCBoYXNoX2xlbjsK
MTQ0NzQ6ICB9OwoxNDQ3NDogIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWU7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVjdCBxc3RyIGVt
cHR5X25hbWU7CjE0NDc0OiBleHRlcm4gY29uc3Qgc3RydWN0IHFzdHIgc2xhc2hfbmFtZTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeV9zdGF0X3QgewoxNDQ3NDogIGxvbmcgbnJfZGVudHJ5
OwoxNDQ3NDogIGxvbmcgbnJfdW51c2VkOwoxNDQ3NDogIGxvbmcgYWdlX2xpbWl0OwoxNDQ3NDog
IGxvbmcgd2FudF9wYWdlczsKMTQ0NzQ6ICBsb25nIG5yX25lZ2F0aXZlOwoxNDQ3NDogIGxvbmcg
ZHVtbXk7CjE0NDc0OiB9OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRy
eV9zdGF0OwoxNDQ3NDogIyA4OSAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgoxNDQ3NDogc3Ry
dWN0IGRlbnRyeSB7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZF9mbGFnczsKMTQ0NzQ6
ICBzZXFjb3VudF90IGRfc2VxOwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ibF9ub2RlIGRfaGFzaDsK
MTQ0NzQ6ICBzdHJ1Y3QgZGVudHJ5ICpkX3BhcmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgcXN0ciBkX25h
bWU7CjE0NDc0OiAgc3RydWN0IGlub2RlICpkX2lub2RlOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWdu
ZWQgY2hhciBkX2luYW1lWzMyXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxvY2ty
ZWYgZF9sb2NrcmVmOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyAqZF9v
cDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmRfc2I7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBkX3RpbWU7CjE0NDc0OiAgdm9pZCAqZF9mc2RhdGE7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7
CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CjE0NDc0OiAgIHdhaXRfcXVldWVfaGVh
ZF90ICpkX3dhaXQ7CjE0NDc0OiAgfTsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGRfY2hpbGQ7
CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBkX3N1YmRpcnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgaGxpc3Rfbm9kZSBkX2FsaWFzOwox
NDQ3NDogICBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSBkX2luX2xvb2t1cF9oYXNoOwoxNDQ3NDogICAg
c3RydWN0IGNhbGxiYWNrX2hlYWQgZF9yY3U7CjE0NDc0OiAgfSBkX3U7CjE0NDc0OiB9IF9fYXR0
cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkZW50cnlfZF9sb2Nr
X2NsYXNzCjE0NDc0OiB7CjE0NDc0OiAgREVOVFJZX0RfTE9DS19OT1JNQUwsCjE0NDc0OiAgREVO
VFJZX0RfTE9DS19ORVNURUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZW50cnlf
b3BlcmF0aW9ucyB7CjE0NDc0OiAgaW50ICgqZF9yZXZhbGlkYXRlKShzdHJ1Y3QgZGVudHJ5ICos
IHVuc2lnbmVkIGludCk7CjE0NDc0OiAgaW50ICgqZF93ZWFrX3JldmFsaWRhdGUpKHN0cnVjdCBk
ZW50cnkgKiwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6ICBpbnQgKCpkX2hhc2gpKGNvbnN0IHN0cnVj
dCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CjE0NDc0OiAgaW50ICgqZF9jb21wYXJlKShjb25z
dCBzdHJ1Y3QgZGVudHJ5ICosCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQsIGNvbnN0IGNoYXIgKiwg
Y29uc3Qgc3RydWN0IHFzdHIgKik7CjE0NDc0OiAgaW50ICgqZF9kZWxldGUpKGNvbnN0IHN0cnVj
dCBkZW50cnkgKik7CjE0NDc0OiAgaW50ICgqZF9pbml0KShzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3
NDogIHZvaWQgKCpkX3JlbGVhc2UpKHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgdm9pZCAoKmRf
cHJ1bmUpKHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgdm9pZCAoKmRfaXB1dCkoc3RydWN0IGRl
bnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgY2hhciAqKCpkX2RuYW1lKShzdHJ1Y3Qg
ZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6ICBzdHJ1Y3QgdmZzbW91bnQgKigqZF9hdXRv
bW91bnQpKHN0cnVjdCBwYXRoICopOwoxNDQ3NDogIGludCAoKmRfbWFuYWdlKShjb25zdCBzdHJ1
Y3QgcGF0aCAqLCBib29sKTsKMTQ0NzQ6ICBzdHJ1Y3QgZGVudHJ5ICooKmRfcmVhbCkoc3RydWN0
IGRlbnRyeSAqLCBjb25zdCBzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18o
KF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CjE0NDc0OiAjIDIyMSAiLi9pbmNsdWRlL2xpbnV4
L2RjYWNoZS5oIgoxNDQ3NDogZXh0ZXJuIHNlcWxvY2tfdCByZW5hbWVfbG9jazsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9pbnN0YW50aWF0ZShz
dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRfaW5z
dGFudGlhdGVfbmV3KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2luc3RhbnRpYXRlX3VuaXF1ZShzdHJ1Y3QgZGVudHJ5ICos
IHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9pbnN0YW50
aWF0ZV9hbm9uKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19kX2Ryb3Aoc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGRfZHJvcChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9kZWxl
dGUoc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRfc2V0X2Rfb3Aoc3RydWN0
IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgKm9wKTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGRlbnRyeSAqIGRfYWxsb2Moc3RydWN0
IGRlbnRyeSAqLCBjb25zdCBzdHJ1Y3QgcXN0ciAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVu
dHJ5ICogZF9hbGxvY19hbm9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3QgZGVudHJ5ICogZF9hbGxvY19wYXJhbGxlbChzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IHN0
cnVjdCBxc3RyICosCjE0NDc0OiAgICAgIHdhaXRfcXVldWVfaGVhZF90ICopOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBkZW50cnkgKiBkX3NwbGljZV9hbGlhcyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9hZGRfY2koc3RydWN0
IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHFzdHIgKik7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGRlbnRyeSAqIGRfZXhhY3RfYWxpYXMoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5v
ZGUgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9maW5kX2FueV9hbGlhcyhzdHJ1
Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9vYnRhaW5f
YWxpYXMoc3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX29i
dGFpbl9yb290KHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNocmlua19kY2Fj
aGVfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2hyaW5rX2Rj
YWNoZV9wYXJlbnQoc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNocmlua19k
Y2FjaGVfZm9yX3Vtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CjE0NDc0OiBleHRlcm4gdm9p
ZCBkX2ludmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gc3RydWN0IGRlbnRyeSAqIGRfbWFrZV9yb290KHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRfdG1wZmlsZShzdHJ1Y3QgZGVudHJ5ICosIHN0
cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmRfZmlu
ZF9hbGlhcyhzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBkX3BydW5lX2FsaWFz
ZXMoc3RydWN0IGlub2RlICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcGF0
aF9oYXNfc3VibW91bnRzKGNvbnN0IHN0cnVjdCBwYXRoICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX3JlaGFzaChzdHJ1Y3QgZGVudHJ5ICop
OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX2FkZChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj
dCBpbm9kZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBkX21vdmUoc3Ry
dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9leGNo
YW5nZShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBleHRlcm4gc3Ry
dWN0IGRlbnRyeSAqZF9hbmNlc3RvcihzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmRfbG9va3VwKGNv
bnN0IHN0cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGRlbnRyeSAqZF9oYXNoX2FuZF9sb29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
cXN0ciAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpfX2RfbG9va3VwKGNvbnN0IHN0
cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0
IGRlbnRyeSAqX19kX2xvb2t1cF9yY3UoY29uc3Qgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3
NDogICAgIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLCB1bnNpZ25lZCAqc2VxKTsKMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdW5zaWduZWQgZF9jb3VudChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9sb2NrcmVmLmNvdW50OwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDQsIDUpKSkKMTQ0NzQ6IGNoYXIgKmR5bmFtaWNfZG5hbWUoc3Ry
dWN0IGRlbnRyeSAqLCBjaGFyICosIGludCwgY29uc3QgY2hhciAqLCAuLi4pOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gY2hhciAqX19kX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKiwgY29uc3Qgc3Ry
dWN0IHBhdGggKiwgY2hhciAqLCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIgKmRfYWJzb2x1dGVf
cGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjaGFyICosIGludCk7CjE0NDc0OiBleHRlcm4gY2hh
ciAqZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6IGV4dGVy
biBjaGFyICpkZW50cnlfcGF0aF9yYXcoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7CjE0
NDc0OiBleHRlcm4gY2hhciAqZGVudHJ5X3BhdGgoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGlu
dCk7CjE0NDc0OiAjIDMxMSAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGRlbnRyeSAqZGdldF9kbG9jayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKGRlbnRyeSkKMTQ0NzQ6ICAgZGVudHJ5LT5kX2xvY2tyZWYuY291bnQrKzsKMTQ0NzQ6
ICByZXR1cm4gZGVudHJ5OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGVudHJ5ICpk
Z2V0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoZGVudHJ5KQox
NDQ3NDogICBsb2NrcmVmX2dldCgmZGVudHJ5LT5kX2xvY2tyZWYpOwoxNDQ3NDogIHJldHVybiBk
ZW50cnk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpkZ2V0
X3BhcmVudChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwoxNDQ3NDogIyAzMzQgIi4vaW5jbHVkZS9s
aW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkX3VuaGFzaGVkKGNvbnN0IHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gaGxpc3RfYmxfdW5oYXNoZWQoJmRlbnRy
eS0+ZF9oYXNoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGRfdW5saW5rZWQoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkX3VuaGFzaGVk
KGRlbnRyeSkgJiYgISgoZGVudHJ5KSA9PSAoZGVudHJ5KS0+ZF9wYXJlbnQpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgY2FudF9tb3VudChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChkZW50cnktPmRfZmxhZ3MgJiAweDAwMDAwMTAwKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkb250X21vdW50KHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrcmVmLmxvY2sp
OwoxNDQ3NDogIGRlbnRyeS0+ZF9mbGFncyB8PSAweDAwMDAwMTAwOwoxNDQ3NDogIHNwaW5fdW5s
b2NrKCZkZW50cnktPmRfbG9ja3JlZi5sb2NrKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHZvaWQgX19kX2xvb2t1cF9kb25lKHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBkX2luX2xvb2t1cChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MTAwMDAwMDA7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZF9sb29rdXBfZG9uZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZF9pbl9sb29rdXAoZGVudHJ5KSks
IDApKSB7CjE0NDc0OiAgIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CjE0NDc0
OiAgIF9fZF9sb29rdXBfZG9uZShkZW50cnkpOwoxNDQ3NDogICBzcGluX3VubG9jaygmZGVudHJ5
LT5kX2xvY2tyZWYubG9jayk7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBkcHV0KHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9tYW5h
Z2VkKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZGVudHJ5LT5kX2ZsYWdzICYgKDB4MDAwMTAwMDB8MHgwMDAyMDAwMHwweDAwMDQwMDAwKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX21vdW50cG9pbnQoY29uc3Qgc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZW50cnktPmRfZmxhZ3MgJiAweDAw
MDEwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
bnNpZ25lZCBfX2RfZW50cnlfdHlwZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MDA3MDAwMDA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgZF9pc19taXNzKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRy
eSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19kX2VudHJ5X3R5cGUoZGVudHJ5KSA9PSAweDAw
MDAwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRfaXNfd2hpdGVvdXQoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2RfZW50cnlf
dHlwZShkZW50cnkpID09IDB4MDAxMDAwMDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZF9jYW5fbG9va3VwKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gX19kX2VudHJ5X3R5cGUoZGVudHJ5KSA9PSAweDAwMjAwMDAwOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGRfaXNfYXV0b2Rpcihjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgw
MDMwMDAwMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX2Rpcihjb25zdCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRfY2FuX2xvb2t1cChk
ZW50cnkpIHx8IGRfaXNfYXV0b2RpcihkZW50cnkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIGRfaXNfc3ltbGluayhjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgwMDYwMDAwMDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3JlZyhjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgw
MDQwMDAwMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3NwZWNpYWwoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2RfZW50cnlf
dHlwZShkZW50cnkpID09IDB4MDA1MDAwMDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZF9pc19maWxlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gZF9pc19yZWcoZGVudHJ5KSB8fCBkX2lzX3NwZWNpYWwoZGVudHJ5KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX25lZ2F0aXZlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRl
bnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBkX2lzX21pc3MoZGVudHJ5KTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2ZsYWdzX25lZ2F0aXZlKHVuc2lnbmVkIGZs
YWdzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoZmxhZ3MgJiAweDAwNzAwMDAwKSA9PSAweDAw
MDAwMDAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRfaXNfcG9zaXRpdmUoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhZF9pc19uZWdh
dGl2ZShkZW50cnkpOwoxNDQ3NDogfQoxNDQ3NDogIyA0NjggIi4vaW5jbHVkZS9saW51eC9kY2Fj
aGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZF9yZWFsbHlfaXNfbmVnYXRpdmUoY29uc3Qgc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZW50cnktPmRfaW5vZGUgPT0gKCh2
b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQ4NiAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkX3JlYWxseV9pc19wb3NpdGl2ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeS0+ZF9pbm9kZSAhPSAoKHZvaWQg
KikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHNpbXBsZV9wb3NpdGl2ZShjb25zdCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRfcmVhbGx5X2lz
X3Bvc2l0aXZlKGRlbnRyeSkgJiYgIWRfdW5oYXNoZWQoZGVudHJ5KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZF9zZXRfZmFsbHRocnUoc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX2ZhbGx0aHJ1KGNvbnN0IHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGVudHJ5LT5kX2ZsYWdzICYgMHgwMTAw
MDAwMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHN5c2N0bF92
ZnNfY2FjaGVfcHJlc3N1cmU7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgdmZzX3ByZXNz
dXJlX3JhdGlvKHVuc2lnbmVkIGxvbmcgdmFsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoIHsg
dHlwZW9mKHZhbCkgcXVvdCA9ICh2YWwpIC8gKDEwMCk7IHR5cGVvZih2YWwpIHJlbSA9ICh2YWwp
ICUgKDEwMCk7IChxdW90ICogKHN5c2N0bF92ZnNfY2FjaGVfcHJlc3N1cmUpKSArICgocmVtICog
KHN5c2N0bF92ZnNfY2FjaGVfcHJlc3N1cmUpKSAvICgxMDApKTsgfSApOwoxNDQ3NDogfQoxNDQ3
NDogIyA1MTggIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpbm9kZSAq
ZF9pbm9kZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGRlbnRyeS0+ZF9pbm9kZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNTMwICIuL2luY2x1ZGUvbGlu
dXgvZGNhY2hlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgaW5vZGUgKmRfaW5vZGVfcmN1KGNvbnN0IHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBl
b2YoZGVudHJ5LT5kX2lub2RlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19y
ZWFkX29uY2Vfc2l6ZSgmKGRlbnRyeS0+ZF9pbm9kZSksIF9fdS5fX2MsIHNpemVvZihkZW50cnkt
PmRfaW5vZGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihkZW50cnktPmRfaW5v
ZGUpLCBfX3UuX19jLCBzaXplb2YoZGVudHJ5LT5kX2lub2RlKSk7IGRvIHsgfSB3aGlsZSAoMCk7
IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU0NSAiLi9pbmNsdWRlL2xpbnV4L2Rj
YWNoZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGlub2RlICpkX2JhY2tpbmdfaW5vZGUoY29uc3Qgc3RydWN0
IGRlbnRyeSAqdXBwZXIpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGlub2RlICppbm9kZSA9IHVw
cGVyLT5kX2lub2RlOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGlub2RlOwoxNDQ3NDogfQoxNDQ3
NDogIyA1NjIgIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkg
KmRfYmFja2luZ19kZW50cnkoc3RydWN0IGRlbnRyeSAqdXBwZXIpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHVwcGVyOwoxNDQ3NDogfQoxNDQ3NDogIyA1NzcgIi4vaW5jbHVkZS9saW51eC9kY2Fj
aGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkgKmRfcmVhbChzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
CjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZGVudHJ5LT5kX2ZsYWdzICYgMHgwNDAwMDAwMCks
IDApKQoxNDQ3NDogICByZXR1cm4gZGVudHJ5LT5kX29wLT5kX3JlYWwoZGVudHJ5LCBpbm9kZSk7
CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gZGVudHJ5OwoxNDQ3NDogfQoxNDQ3NDogIyA1
OTMgIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpbm9kZSAqZF9yZWFs
X2lub2RlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBkX2JhY2tpbmdfaW5vZGUoZF9yZWFsKChzdHJ1Y3QgZGVudHJ5ICopIGRlbnRy
eSwgKCh2b2lkICopMCkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG5hbWVfc25h
cHNob3QgewoxNDQ3NDogIHN0cnVjdCBxc3RyIG5hbWU7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBp
bmxpbmVfbmFtZVszMl07CjE0NDc0OiB9OwoxNDQ3NDogdm9pZCB0YWtlX2RlbnRyeV9uYW1lX3Nu
YXBzaG90KHN0cnVjdCBuYW1lX3NuYXBzaG90ICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiB2
b2lkIHJlbGVhc2VfZGVudHJ5X25hbWVfc25hcHNob3Qoc3RydWN0IG5hbWVfc25hcHNob3QgKik7
CjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9wYXRoLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGRlbnRyeTsKMTQ0NzQ6IHN0cnVjdCB2ZnNtb3VudDsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IHBhdGggewoxNDQ3NDogIHN0cnVjdCB2ZnNtb3VudCAqbW50OwoxNDQ3NDogIHN0cnVjdCBk
ZW50cnkgKmRlbnRyeTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRf
XykpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwYXRoX2dldChjb25zdCBzdHJ1Y3QgcGF0
aCAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBhdGhfcHV0KGNvbnN0IHN0cnVjdCBwYXRoICopOwox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgcGF0aF9lcXVhbChjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aDEsIGNv
bnN0IHN0cnVjdCBwYXRoICpwYXRoMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcGF0aDEtPm1u
dCA9PSBwYXRoMi0+bW50ICYmIHBhdGgxLT5kZW50cnkgPT0gcGF0aDItPmRlbnRyeTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwYXRoX3B1dF9pbml0KHN0cnVjdCBwYXRoICpwYXRoKQox
NDQ3NDogewoxNDQ3NDogIHBhdGhfcHV0KHBhdGgpOwoxNDQ3NDogICpwYXRoID0gKHN0cnVjdCBw
YXRoKSB7IH07CjE0NDc0OiB9CjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h
c20vc3RhdC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wb3NpeF90eXBlcy5oIiAxCjE0NDc0OiAjIDYgIi4vYXJj
aC94ODYvaW5jbHVkZS91YXBpL2FzbS9zdGF0LmgiIDIKMTQ0NzQ6ICMgODMgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9zdGF0LmgiCjE0NDc0OiBzdHJ1Y3Qgc3RhdCB7CjE0NDc0OiAgX19r
ZXJuZWxfdWxvbmdfdCBzdF9kZXY7CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9pbm87CjE0
NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9ubGluazsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCBzdF9tb2RlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzdF91aWQ7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHN0X2dpZDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgX19wYWQwOwoxNDQ3NDogIF9fa2Vy
bmVsX3Vsb25nX3Qgc3RfcmRldjsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3Qgc3Rfc2l6ZTsKMTQ0
NzQ6ICBfX2tlcm5lbF9sb25nX3Qgc3RfYmxrc2l6ZTsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3Qg
c3RfYmxvY2tzOwoxNDQ3NDogCjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9hdGltZTsKMTQ0
NzQ6ICBfX2tlcm5lbF91bG9uZ190IHN0X2F0aW1lX25zZWM7CjE0NDc0OiAgX19rZXJuZWxfdWxv
bmdfdCBzdF9tdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHN0X210aW1lX25zZWM7CjE0
NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBzdF9jdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190
IHN0X2N0aW1lX25zZWM7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IF9fdW51c2VkWzNdOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMTE3ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc3RhdC5oIgox
NDQ3NDogc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBz
dF9kZXY7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgc3RfaW5vOwoxNDQ3NDogIHVuc2lnbmVkIHNo
b3J0IHN0X21vZGU7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgc3Rfbmxpbms7CjE0NDc0OiAgdW5z
aWduZWQgc2hvcnQgc3RfdWlkOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHN0X2dpZDsKMTQ0NzQ6
ICB1bnNpZ25lZCBzaG9ydCBzdF9yZGV2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBzdF9zaXplOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBzdF9hdGltZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RfbXRpbWU7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHN0X2N0aW1lOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyA3ICIu
L2luY2x1ZGUvbGludXgvc3RhdC5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L3N0YXQuaCIgMQoxNDQ3NDogIyA1NiAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3RhdC5oIgoxNDQ3
NDogc3RydWN0IHN0YXR4X3RpbWVzdGFtcCB7CjE0NDc0OiAgX19zNjQgdHZfc2VjOwoxNDQ3NDog
IF9fdTMyIHR2X25zZWM7CjE0NDc0OiAgX19zMzIgX19yZXNlcnZlZDsKMTQ0NzQ6IH07CjE0NDc0
OiAjIDk5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zdGF0LmgiCjE0NDc0OiBzdHJ1Y3Qgc3RhdHgg
ewoxNDQ3NDogCjE0NDc0OiAgX191MzIgc3R4X21hc2s7CjE0NDc0OiAgX191MzIgc3R4X2Jsa3Np
emU7CjE0NDc0OiAgX191NjQgc3R4X2F0dHJpYnV0ZXM7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBz
dHhfbmxpbms7CjE0NDc0OiAgX191MzIgc3R4X3VpZDsKMTQ0NzQ6ICBfX3UzMiBzdHhfZ2lkOwox
NDQ3NDogIF9fdTE2IHN0eF9tb2RlOwoxNDQ3NDogIF9fdTE2IF9fc3BhcmUwWzFdOwoxNDQ3NDog
CjE0NDc0OiAgX191NjQgc3R4X2lubzsKMTQ0NzQ6ICBfX3U2NCBzdHhfc2l6ZTsKMTQ0NzQ6ICBf
X3U2NCBzdHhfYmxvY2tzOwoxNDQ3NDogIF9fdTY0IHN0eF9hdHRyaWJ1dGVzX21hc2s7CjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3RhdHhfdGltZXN0YW1wIHN0eF9hdGltZTsKMTQ0NzQ6ICBzdHJ1
Y3Qgc3RhdHhfdGltZXN0YW1wIHN0eF9idGltZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RhdHhfdGltZXN0
YW1wIHN0eF9jdGltZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RhdHhfdGltZXN0YW1wIHN0eF9tdGltZTsK
MTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHN0eF9yZGV2X21ham9yOwoxNDQ3NDogIF9fdTMyIHN0eF9y
ZGV2X21pbm9yOwoxNDQ3NDogIF9fdTMyIHN0eF9kZXZfbWFqb3I7CjE0NDc0OiAgX191MzIgc3R4
X2Rldl9taW5vcjsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IF9fc3BhcmUyWzE0XTsKMTQ0NzQ6IAox
NDQ3NDogfTsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L3N0YXQuaCIgMgoxNDQ3NDogIyAy
MCAiLi9pbmNsdWRlL2xpbnV4L3N0YXQuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Vp
ZGdpZC5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvdWlkZ2lkLmgiCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS9saW51eC9oaWdodWlkLmgiIDEKMTQ0NzQ6ICMgMzUgIi4vaW5jbHVkZS9s
aW51eC9oaWdodWlkLmgiCjE0NDc0OiBleHRlcm4gaW50IG92ZXJmbG93dWlkOwoxNDQ3NDogZXh0
ZXJuIGludCBvdmVyZmxvd2dpZDsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iYWRfdWlk
KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19iYWRfZ2lkKHZvaWQpOwoxNDQ3NDogIyA4MiAi
Li9pbmNsdWRlL2xpbnV4L2hpZ2h1aWQuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgZnNfb3ZlcmZsb3d1
aWQ7CjE0NDc0OiBleHRlcm4gaW50IGZzX292ZXJmbG93Z2lkOwoxNDQ3NDogIyAxNyAiLi9pbmNs
dWRlL2xpbnV4L3VpZGdpZC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB1c2VyX25hbWVzcGFj
ZTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgaW5pdF91c2VyX25zOwoxNDQ3
NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0OiAgdWlkX3QgdmFsOwoxNDQ3NDogfSBr
dWlkX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIGdp
ZF90IHZhbDsKMTQ0NzQ6IH0ga2dpZF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVpZF90IF9fa3VpZF92YWwoa3VpZF90IHVpZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gdWlkLnZhbDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZ2lkX3QgX19rZ2lk
X3ZhbChrZ2lkX3QgZ2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBnaWQudmFsOwoxNDQ3NDog
fQoxNDQ3NDogIyA2MSAiLi9pbmNsdWRlL2xpbnV4L3VpZGdpZC5oIgoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRf
ZXEoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19r
dWlkX3ZhbChsZWZ0KSA9PSBfX2t1aWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBnaWRfZXEoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gX19rZ2lkX3ZhbChsZWZ0KSA9PSBfX2tnaWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRfZ3Qoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19rdWlkX3ZhbChsZWZ0KSA+IF9fa3VpZF92YWwocmlnaHQp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9ndChrZ2lkX3QgbGVmdCwga2dpZF90
IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2tnaWRfdmFsKGxlZnQpID4gX19rZ2lk
X3ZhbChyaWdodCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdWlkX2d0ZShrdWlkX3Qg
bGVmdCwga3VpZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2t1aWRfdmFsKGxl
ZnQpID49IF9fa3VpZF92YWwocmlnaHQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdp
ZF9ndGUoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X19rZ2lkX3ZhbChsZWZ0KSA+PSBfX2tnaWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCB1aWRfbHQoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gX19rdWlkX3ZhbChsZWZ0KSA8IF9fa3VpZF92YWwocmlnaHQpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9sdChrZ2lkX3QgbGVmdCwga2dpZF90IHJpZ2h0KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2tnaWRfdmFsKGxlZnQpIDwgX19rZ2lkX3ZhbChyaWdo
dCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdWlkX2x0ZShrdWlkX3QgbGVmdCwga3Vp
ZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2t1aWRfdmFsKGxlZnQpIDw9IF9f
a3VpZF92YWwocmlnaHQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9sdGUoa2dp
ZF90IGxlZnQsIGtnaWRfdCByaWdodCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19rZ2lkX3Zh
bChsZWZ0KSA8PSBfX2tnaWRfdmFsKHJpZ2h0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCB1aWRfdmFsaWQoa3VpZF90IHVpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19rdWlkX3Zh
bCh1aWQpICE9ICh1aWRfdCkgLTE7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2lkX3Zh
bGlkKGtnaWRfdCBnaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fa2dpZF92YWwoZ2lkKSAh
PSAoZ2lkX3QpIC0xOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIGt1aWRfdCBtYWtlX2t1aWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpmcm9tLCB1aWRfdCB1
aWQpOwoxNDQ3NDogZXh0ZXJuIGtnaWRfdCBtYWtlX2tnaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNl
ICpmcm9tLCBnaWRfdCBnaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdWlkX3QgZnJvbV9rdWlk
KHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdG8sIGt1aWRfdCB1aWQpOwoxNDQ3NDogZXh0ZXJuIGdp
ZF90IGZyb21fa2dpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrZ2lkX3QgZ2lkKTsKMTQ0
NzQ6IGV4dGVybiB1aWRfdCBmcm9tX2t1aWRfbXVuZ2VkKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
dG8sIGt1aWRfdCB1aWQpOwoxNDQ3NDogZXh0ZXJuIGdpZF90IGZyb21fa2dpZF9tdW5nZWQoc3Ry
dWN0IHVzZXJfbmFtZXNwYWNlICp0bywga2dpZF90IGdpZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
a3VpZF9oYXNfbWFwcGluZyhzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCBrdWlkX3QgdWlkKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBmcm9tX2t1aWQobnMsIHVpZCkgIT0gKHVpZF90KSAtMTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrZ2lkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2Vy
X25hbWVzcGFjZSAqbnMsIGtnaWRfdCBnaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZyb21f
a2dpZChucywgZ2lkKSAhPSAoZ2lkX3QpIC0xOwoxNDQ3NDogfQoxNDQ3NDogIyAyMSAiLi9pbmNs
dWRlL2xpbnV4L3N0YXQuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGtzdGF0IHsKMTQ0NzQ6ICB1MzIgcmVzdWx0X21hc2s7CjE0NDc0OiAgdW1vZGVfdCBtb2RlOwox
NDQ3NDogIHVuc2lnbmVkIGludCBubGluazsKMTQ0NzQ6ICB1aW50MzJfdCBibGtzaXplOwoxNDQ3
NDogIHU2NCBhdHRyaWJ1dGVzOwoxNDQ3NDogIHU2NCBhdHRyaWJ1dGVzX21hc2s7CjE0NDc0OiAj
IDM5ICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIgoxNDQ3NDogIHU2NCBpbm87CjE0NDc0OiAgZGV2
X3QgZGV2OwoxNDQ3NDogIGRldl90IHJkZXY7CjE0NDc0OiAga3VpZF90IHVpZDsKMTQ0NzQ6ICBr
Z2lkX3QgZ2lkOwoxNDQ3NDogIGxvZmZfdCBzaXplOwoxNDQ3NDogIHN0cnVjdCB0aW1lc3BlYzY0
IGF0aW1lOwoxNDQ3NDogIHN0cnVjdCB0aW1lc3BlYzY0IG10aW1lOwoxNDQ3NDogIHN0cnVjdCB0
aW1lc3BlYzY0IGN0aW1lOwoxNDQ3NDogIHN0cnVjdCB0aW1lc3BlYzY0IGJ0aW1lOwoxNDQ3NDog
IHU2NCBibG9ja3M7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9saXN0X2xydS5o
IiAxCjE0NDc0OiAjIDEzICIuL2luY2x1ZGUvbGludXgvbGlzdF9scnUuaCIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3Nocmlua2VyLmgiIDEKMTQ0NzQ6ICMgMTIgIi4vaW5jbHVkZS9saW51
eC9zaHJpbmtlci5oIgoxNDQ3NDogc3RydWN0IHNocmlua19jb250cm9sIHsKMTQ0NzQ6ICBnZnBf
dCBnZnBfbWFzazsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IG5pZDsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IG5yX3RvX3NjYW47CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBucl9zY2FubmVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2c7CjE0NDc0OiB9OwoxNDQ3NDogIyA2MCAiLi9p
bmNsdWRlL2xpbnV4L3Nocmlua2VyLmgiCjE0NDc0OiBzdHJ1Y3Qgc2hyaW5rZXIgewoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgKCpjb3VudF9vYmplY3RzKShzdHJ1Y3Qgc2hyaW5rZXIgKiwKMTQ0NzQ6
ICAgICAgICAgICAgc3RydWN0IHNocmlua19jb250cm9sICpzYyk7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyAoKnNjYW5fb2JqZWN0cykoc3RydWN0IHNocmlua2VyICosCjE0NDc0OiAgICAgICAgICAg
c3RydWN0IHNocmlua19jb250cm9sICpzYyk7CjE0NDc0OiAKMTQ0NzQ6ICBsb25nIGJhdGNoOwox
NDQ3NDogIGludCBzZWVrczsKMTQ0NzQ6ICB1bnNpZ25lZCBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBp
bnQgaWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGF0b21pY19sb25nX3QgKm5yX2RlZmVycmVk
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS9saW51eC9zaHJpbmtlci5oIgoxNDQ3
NDogZXh0ZXJuIGludCBwcmVhbGxvY19zaHJpbmtlcihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2Vy
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHJlZ2lzdGVyX3Nocmlua2VyX3ByZXBhcmVkKHN0cnVjdCBz
aHJpbmtlciAqc2hyaW5rZXIpOwoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl9zaHJpbmtlcihz
dHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHVucmVnaXN0ZXJf
c2hyaW5rZXIoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CjE0NDc0OiBleHRlcm4gdm9pZCBm
cmVlX3ByZWFsbG9jZWRfc2hyaW5rZXIoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CjE0NDc0
OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvbGlzdF9scnUuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgbWVtX2Nncm91cDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGxydV9zdGF0dXMgewox
NDQ3NDogIExSVV9SRU1PVkVELAoxNDQ3NDogIExSVV9SRU1PVkVEX1JFVFJZLAoxNDQ3NDogCjE0
NDc0OiAgTFJVX1JPVEFURSwKMTQ0NzQ6ICBMUlVfU0tJUCwKMTQ0NzQ6ICBMUlVfUkVUUlksCjE0
NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaXN0X2xydV9vbmUgewoxNDQ3
NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogIGxvbmcgbnJfaXRlbXM7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbGlzdF9scnVfbWVtY2cgewoxNDQ3NDog
IHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2xy
dV9vbmUgKmxydVswXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaXN0X2xydV9u
b2RlIHsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBsaXN0X2xydV9vbmUgbHJ1OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlz
dF9scnVfbWVtY2cgKm1lbWNnX2xydXM7CjE0NDc0OiAKMTQ0NzQ6ICBsb25nIG5yX2l0ZW1zOwox
NDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpOwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgbGlzdF9scnUgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2xydV9ub2RlICpu
b2RlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoxNDQ3NDogIGludCBz
aHJpbmtlcl9pZDsKMTQ0NzQ6ICBib29sIG1lbWNnX2F3YXJlOwoxNDQ3NDogCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiB2b2lkIGxpc3RfbHJ1X2Rlc3Ryb3koc3RydWN0IGxpc3RfbHJ1ICpscnUp
OwoxNDQ3NDogaW50IF9fbGlzdF9scnVfaW5pdChzdHJ1Y3QgbGlzdF9scnUgKmxydSwgYm9vbCBt
ZW1jZ19hd2FyZSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5LCBzdHJ1
Y3Qgc2hyaW5rZXIgKnNocmlua2VyKTsKMTQ0NzQ6ICMgNzIgIi4vaW5jbHVkZS9saW51eC9saXN0
X2xydS5oIgoxNDQ3NDogaW50IG1lbWNnX3VwZGF0ZV9hbGxfbGlzdF9scnVzKGludCBudW1fbWVt
Y2dzKTsKMTQ0NzQ6IHZvaWQgbWVtY2dfZHJhaW5fYWxsX2xpc3RfbHJ1cyhpbnQgc3JjX2lkeCwg
c3RydWN0IG1lbV9jZ3JvdXAgKmRzdF9tZW1jZyk7CjE0NDc0OiAjIDkxICIuL2luY2x1ZGUvbGlu
dXgvbGlzdF9scnUuaCIKMTQ0NzQ6IGJvb2wgbGlzdF9scnVfYWRkKHN0cnVjdCBsaXN0X2xydSAq
bHJ1LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsKMTQ0NzQ6ICMgMTA0ICIuL2luY2x1ZGUvbGlu
dXgvbGlzdF9scnUuaCIKMTQ0NzQ6IGJvb2wgbGlzdF9scnVfZGVsKHN0cnVjdCBsaXN0X2xydSAq
bHJ1LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsKMTQ0NzQ6ICMgMTE2ICIuL2luY2x1ZGUvbGlu
dXgvbGlzdF9scnUuaCIKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgbGlzdF9scnVfY291bnRfb25lKHN0
cnVjdCBsaXN0X2xydSAqbHJ1LAoxNDQ3NDogICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVtX2Nncm91
cCAqbWVtY2cpOwoxNDQ3NDogdW5zaWduZWQgbG9uZyBsaXN0X2xydV9jb3VudF9ub2RlKHN0cnVj
dCBsaXN0X2xydSAqbHJ1LCBpbnQgbmlkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBs
aXN0X2xydV9zaHJpbmtfY291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUsCjE0NDc0OiAgICAgICAg
IHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2MpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3Rf
bHJ1X2NvdW50X29uZShscnUsIHNjLT5uaWQsIHNjLT5tZW1jZyk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgbGlzdF9scnVfY291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUp
CjE0NDc0OiB7CjE0NDc0OiAgbG9uZyBjb3VudCA9IDA7CjE0NDc0OiAgaW50IG5pZDsKMTQ0NzQ6
IAoxNDQ3NDogIGZvciAoIChuaWQpID0gMDsgKG5pZCkgPT0gMDsgKG5pZCkgPSAxKQoxNDQ3NDog
ICBjb3VudCArPSBsaXN0X2xydV9jb3VudF9ub2RlKGxydSwgbmlkKTsKMTQ0NzQ6IAoxNDQ3NDog
IHJldHVybiBjb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBsaXN0X2xydV9pc29s
YXRlKHN0cnVjdCBsaXN0X2xydV9vbmUgKmxpc3QsIHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0pOwox
NDQ3NDogdm9pZCBsaXN0X2xydV9pc29sYXRlX21vdmUoc3RydWN0IGxpc3RfbHJ1X29uZSAqbGlz
dCwgc3RydWN0IGxpc3RfaGVhZCAqaXRlbSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQg
KmhlYWQpOwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGVudW0gbHJ1X3N0YXR1cyAoKmxpc3RfbHJ1
X3dhbGtfY2IpKHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0sCjE0NDc0OiAgIHN0cnVjdCBsaXN0X2xy
dV9vbmUgKmxpc3QsIHNwaW5sb2NrX3QgKmxvY2ssIHZvaWQgKmNiX2FyZyk7CjE0NDc0OiAjIDE2
NiAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1LmgiCjE0NDc0OiB1bnNpZ25lZCBsb25nIGxpc3Rf
bHJ1X3dhbGtfb25lKHN0cnVjdCBsaXN0X2xydSAqbHJ1LAoxNDQ3NDogICAgIGludCBuaWQsIHN0
cnVjdCBtZW1fY2dyb3VwICptZW1jZywKMTQ0NzQ6ICAgICBsaXN0X2xydV93YWxrX2NiIGlzb2xh
dGUsIHZvaWQgKmNiX2FyZywKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nICpucl90b193YWxrKTsK
MTQ0NzQ6ICMgMTgzICIuL2luY2x1ZGUvbGludXgvbGlzdF9scnUuaCIKMTQ0NzQ6IHVuc2lnbmVk
IGxvbmcgbGlzdF9scnVfd2Fsa19vbmVfaXJxKHN0cnVjdCBsaXN0X2xydSAqbHJ1LAoxNDQ3NDog
ICAgICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2csCjE0NDc0OiAgICAgICAg
IGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAqY2JfYXJnLAoxNDQ3NDogICAgICAgICB1
bnNpZ25lZCBsb25nICpucl90b193YWxrKTsKMTQ0NzQ6IHVuc2lnbmVkIGxvbmcgbGlzdF9scnVf
d2Fsa19ub2RlKHN0cnVjdCBsaXN0X2xydSAqbHJ1LCBpbnQgbmlkLAoxNDQ3NDogICAgICBsaXN0
X2xydV93YWxrX2NiIGlzb2xhdGUsIHZvaWQgKmNiX2FyZywKMTQ0NzQ6ICAgICAgdW5zaWduZWQg
bG9uZyAqbnJfdG9fd2Fsayk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcKMTQ0NzQ6IGxp
c3RfbHJ1X3Nocmlua193YWxrKHN0cnVjdCBsaXN0X2xydSAqbHJ1LCBzdHJ1Y3Qgc2hyaW5rX2Nv
bnRyb2wgKnNjLAoxNDQ3NDogICAgICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAq
Y2JfYXJnKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBsaXN0X2xydV93YWxrX29uZShscnUsIHNj
LT5uaWQsIHNjLT5tZW1jZywgaXNvbGF0ZSwgY2JfYXJnLAoxNDQ3NDogICAgICAmc2MtPm5yX3Rv
X3NjYW4pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nCjE0NDc0OiBsaXN0
X2xydV9zaHJpbmtfd2Fsa19pcnEoc3RydWN0IGxpc3RfbHJ1ICpscnUsIHN0cnVjdCBzaHJpbmtf
Y29udHJvbCAqc2MsCjE0NDc0OiAgICAgbGlzdF9scnVfd2Fsa19jYiBpc29sYXRlLCB2b2lkICpj
Yl9hcmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGxpc3RfbHJ1X3dhbGtfb25lX2lycShscnUs
IHNjLT5uaWQsIHNjLT5tZW1jZywgaXNvbGF0ZSwgY2JfYXJnLAoxNDQ3NDogICAgICAgICAgJnNj
LT5ucl90b19zY2FuKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZwoxNDQ3
NDogbGlzdF9scnVfd2FsayhzdHJ1Y3QgbGlzdF9scnUgKmxydSwgbGlzdF9scnVfd2Fsa19jYiBp
c29sYXRlLAoxNDQ3NDogICAgICAgIHZvaWQgKmNiX2FyZywgdW5zaWduZWQgbG9uZyBucl90b193
YWxrKQoxNDQ3NDogewoxNDQ3NDogIGxvbmcgaXNvbGF0ZWQgPSAwOwoxNDQ3NDogIGludCBuaWQ7
CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKCAobmlkKSA9IDA7IChuaWQpID09IDA7IChuaWQpID0gMSkg
ewoxNDQ3NDogICBpc29sYXRlZCArPSBsaXN0X2xydV93YWxrX25vZGUobHJ1LCBuaWQsIGlzb2xh
dGUsCjE0NDc0OiAgICAgICAgICAgICBjYl9hcmcsICZucl90b193YWxrKTsKMTQ0NzQ6ICAgaWYg
KG5yX3RvX3dhbGsgPD0gMCkKMTQ0NzQ6ICAgIGJyZWFrOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1
cm4gaXNvbGF0ZWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDE0ICIuL2luY2x1ZGUvbGludXgvZnMuaCIg
MgoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiIDEKMTQ0
NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC94YXJyYXkuaCIgMQoxNDQ3NDogIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIiAxCjE0NDc0OiAjIDE2
ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiIDIKMTQ0NzQ6ICMgNTIgIi4vaW5jbHVkZS9saW51
eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX21rX3ZhbHVlKHVuc2lnbmVkIGxvbmcgdikKMTQ0
NzQ6IHsKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKChsb25nKXYgPCAwKTsgaWYg
KF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9f
aW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0
aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJc
dCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxu
IiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xu
IiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3hhcnJheS5oIiksICJpIiAo
NTQpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdf
ZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hz
ZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9w
c2VjdGlvblxuXHQiIDogOiAiaSIgKDI0KSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4
cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgo
diA8PCAxKSB8IDEpOwoxNDQ3NDogfQoxNDQ3NDogIyA2NSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB4YV90b192YWx1ZShjb25zdCB2b2lkICplbnRyeSkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpZW50cnkgPj4gMTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgNzcgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFf
aXNfdmFsdWUoY29uc3Qgdm9pZCAqZW50cnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh1bnNp
Z25lZCBsb25nKWVudHJ5ICYgMTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgOTUgIi4vaW5jbHVkZS9saW51
eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX3RhZ19wb2ludGVyKHZvaWQgKnAsIHVuc2lnbmVk
IGxvbmcgdGFnKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgodW5zaWduZWQgbG9u
ZylwIHwgdGFnKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTEwICIuL2luY2x1ZGUvbGludXgveGFycmF5
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkICp4YV91bnRhZ19wb2ludGVyKHZvaWQgKmVudHJ5KQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAodm9pZCAqKSgodW5zaWduZWQgbG9uZyllbnRyeSAmIH4zVUwpOwoxNDQ3
NDogfQoxNDQ3NDogIyAxMjUgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGludCB4YV9wb2ludGVyX3RhZyh2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHVuc2lnbmVkIGxvbmcpZW50cnkgJiAzVUw7CjE0NDc0OiB9CjE0NDc0OiAjIDE0MyAiLi9p
bmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfbWtfaW50ZXJuYWwodW5zaWdu
ZWQgbG9uZyB2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodm9pZCAqKSgodiA8PCAyKSB8IDIp
OwoxNDQ3NDogfQoxNDQ3NDogIyAxNTUgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHVuc2lnbmVkIGxvbmcgeGFfdG9faW50ZXJuYWwoY29uc3Qgdm9pZCAqZW50cnkpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuICh1bnNpZ25lZCBsb25nKWVudHJ5ID4+IDI7CjE0NDc0OiB9CjE0NDc0
OiAjIDE2NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc19pbnRl
cm5hbChjb25zdCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25l
ZCBsb25nKWVudHJ5ICYgMykgPT0gMjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTgzICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX3plcm8oY29uc3Qgdm9pZCAqZW50cnkp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEoZW50cnkgPT0geGFf
bWtfaW50ZXJuYWwoMjU3KSksIDApOwoxNDQ3NDogfQoxNDQ3NDogIyAxOTkgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFfaXNfZXJyKGNvbnN0IHZvaWQgKmVudHJ5KQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKHhhX2lzX2ludGVybmFs
KGVudHJ5KSAmJiBlbnRyeSA+PSB4YV9ta19pbnRlcm5hbCgtNDA5NSkpLCAwKQoxNDQ3NDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogIyAy
MTcgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB4YV9lcnIodm9pZCAqZW50
cnkpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoeGFfaXNfZXJyKGVudHJ5KSkKMTQ0NzQ6
ICAgcmV0dXJuIChsb25nKWVudHJ5ID4+IDI7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0
NDc0OiAjIDIzNiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RydWN0IHhhX2xp
bWl0IHsKMTQ0NzQ6ICB1MzIgbWF4OwoxNDQ3NDogIHUzMiBtaW47CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1
bnNpZ25lZCB4YV9tYXJrX3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0geGFfbG9ja190eXBlIHsKMTQ0NzQ6ICBYQV9M
T0NLX0lSUSA9IDEsCjE0NDc0OiAgWEFfTE9DS19CSCA9IDIsCjE0NDc0OiB9OwoxNDQ3NDogIyAy
OTIgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0cnVjdCB4YXJyYXkgewoxNDQ3
NDogIHNwaW5sb2NrX3QgeGFfbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIGdmcF90IHhhX2ZsYWdzOwox
NDQ3NDogIHZvaWQgKiB4YV9oZWFkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzQ3ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiB2b2lkICp4YV9sb2FkKHN0cnVjdCB4YXJyYXkgKiwgdW5z
aWduZWQgbG9uZyBpbmRleCk7CjE0NDc0OiB2b2lkICp4YV9zdG9yZShzdHJ1Y3QgeGFycmF5ICos
IHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCk7CjE0NDc0OiB2b2lkICp4
YV9lcmFzZShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwoxNDQ3NDogdm9p
ZCAqeGFfc3RvcmVfcmFuZ2Uoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGZpcnN0LCB1
bnNpZ25lZCBsb25nIGxhc3QsCjE0NDc0OiAgICB2b2lkICplbnRyeSwgZ2ZwX3QpOwoxNDQ3NDog
Ym9vbCB4YV9nZXRfbWFyayhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHhh
X21hcmtfdCk7CjE0NDc0OiB2b2lkIHhhX3NldF9tYXJrKHN0cnVjdCB4YXJyYXkgKiwgdW5zaWdu
ZWQgbG9uZyBpbmRleCwgeGFfbWFya190KTsKMTQ0NzQ6IHZvaWQgeGFfY2xlYXJfbWFyayhzdHJ1
Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHhhX21hcmtfdCk7CjE0NDc0OiB2b2lk
ICp4YV9maW5kKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nICppbmRleCwKMTQ0NzQ6
ICAgdW5zaWduZWQgbG9uZyBtYXgsIHhhX21hcmtfdCkgX19hdHRyaWJ1dGVfXygobm9ubnVsbCgy
KSkpOwoxNDQ3NDogdm9pZCAqeGFfZmluZF9hZnRlcihzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWdu
ZWQgbG9uZyAqaW5kZXgsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgbWF4LCB4YV9tYXJrX3QpIF9f
YXR0cmlidXRlX18oKG5vbm51bGwoMikpKTsKMTQ0NzQ6IHVuc2lnbmVkIGludCB4YV9leHRyYWN0
KHN0cnVjdCB4YXJyYXkgKiwgdm9pZCAqKmRzdCwgdW5zaWduZWQgbG9uZyBzdGFydCwKMTQ0NzQ6
ICAgdW5zaWduZWQgbG9uZyBtYXgsIHVuc2lnbmVkIGludCBuLCB4YV9tYXJrX3QpOwoxNDQ3NDog
dm9pZCB4YV9kZXN0cm95KHN0cnVjdCB4YXJyYXkgKik7CjE0NDc0OiAjIDM3NCAiLi9pbmNsdWRl
L2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB4YV9pbml0X2ZsYWdzKHN0cnVjdCB4YXJyYXkg
KnhhLCBnZnBfdCBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkbyB7IHNwaW5sb2NrX2NoZWNrKCZ4
YS0+eGFfbG9jayk7IGRvIHsgKigmKCZ4YS0+eGFfbG9jayktPnJsb2NrKSA9IChyYXdfc3Bpbmxv
Y2tfdCkgeyAucmF3X2xvY2sgPSB7IHsgLnZhbCA9IHsgKDApIH0gfSB9LCB9OyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgeGEtPnhhX2ZsYWdzID0gZmxhZ3M7CjE0NDc0OiAgeGEt
PnhhX2hlYWQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg5ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHhhX2luaXQoc3RydWN0IHhhcnJheSAqeGEpCjE0
NDc0OiB7CjE0NDc0OiAgeGFfaW5pdF9mbGFncyh4YSwgMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQw
MSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9lbXB0eShjb25zdCBz
dHJ1Y3QgeGFycmF5ICp4YSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geGEtPnhhX2hlYWQgPT0g
KCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAjIDQxNCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCB4YV9tYXJrZWQoY29uc3Qgc3RydWN0IHhhcnJheSAqeGEsIHhhX21h
cmtfdCBtYXJrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB4YS0+eGFfZmxhZ3MgJiAoKCBnZnBf
dCkoKDFVIDw8ICgyMyArIDApKSA8PCAoIHVuc2lnbmVkKShtYXJrKSkpOwoxNDQ3NDogfQoxNDQ3
NDogIyA1NTQgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHZvaWQgKl9feGFfZXJh
c2Uoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKMTQ0NzQ6IHZvaWQgKl9f
eGFfc3RvcmUoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICplbnRy
eSwgZ2ZwX3QpOwoxNDQ3NDogdm9pZCAqX194YV9jbXB4Y2hnKHN0cnVjdCB4YXJyYXkgKiwgdW5z
aWduZWQgbG9uZyBpbmRleCwgdm9pZCAqb2xkLAoxNDQ3NDogICB2b2lkICplbnRyeSwgZ2ZwX3Qp
OwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBfX3hh
X2luc2VydChzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsCjE0NDc0OiAgIHZv
aWQgKmVudHJ5LCBnZnBfdCk7CjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIF9feGFfYWxsb2Moc3RydWN0IHhhcnJheSAqLCB1MzIgKmlkLCB2b2lkICpl
bnRyeSwKMTQ0NzQ6ICAgc3RydWN0IHhhX2xpbWl0LCBnZnBfdCk7CjE0NDc0OiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9feGFfYWxsb2NfY3ljbGljKHN0cnVj
dCB4YXJyYXkgKiwgdTMyICppZCwgdm9pZCAqZW50cnksCjE0NDc0OiAgIHN0cnVjdCB4YV9saW1p
dCwgdTMyICpuZXh0LCBnZnBfdCk7CjE0NDc0OiB2b2lkIF9feGFfc2V0X21hcmsoc3RydWN0IHhh
cnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB4YV9tYXJrX3QpOwoxNDQ3NDogdm9pZCBfX3hh
X2NsZWFyX21hcmsoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB4YV9tYXJr
X3QpOwoxNDQ3NDogIyA1ODEgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
KnhhX3N0b3JlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3
NDogICB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHZvaWQgKmN1cnI7
CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGN1
cnIgPSBfX3hhX3N0b3JlKHhhLCBpbmRleCwgZW50cnksIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxv
Y2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGN1cnI7CjE0NDc0
OiB9CjE0NDc0OiAjIDYwNyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAq
eGFfc3RvcmVfaXJxKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3
NDogICB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHZvaWQgKmN1cnI7
CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfaXJxKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6ICBj
dXJyID0gX194YV9zdG9yZSh4YSwgaW5kZXgsIGVudHJ5LCBnZnApOwoxNDQ3NDogIHNwaW5fdW5s
b2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gY3VycjsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgNjMyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
ICp4YV9lcmFzZV9iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICB2b2lkICplbnRyeTsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19iaCgm
KHhhKS0+eGFfbG9jayk7CjE0NDc0OiAgZW50cnkgPSBfX3hhX2VyYXNlKHhhLCBpbmRleCk7CjE0
NDc0OiAgc3Bpbl91bmxvY2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0
dXJuIGVudHJ5OwoxNDQ3NDogfQoxNDQ3NDogIyA2NTYgIi4vaW5jbHVkZS9saW51eC94YXJyYXku
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKnhhX2VyYXNlX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQg
bG9uZyBpbmRleCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB2b2lkICplbnRyeTsKMTQ0NzQ6IAoxNDQ3NDog
IHNwaW5fbG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVudHJ5ID0gX194YV9lcmFz
ZSh4YSwgaW5kZXgpOwoxNDQ3NDogIHNwaW5fdW5sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CjE0
NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZW50cnk7CjE0NDc0OiB9CjE0NDc0OiAjIDY4MiAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfY21weGNoZyhzdHJ1Y3QgeGFycmF5
ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwKMTQ0NzQ6ICAgIHZvaWQgKm9sZCwgdm9pZCAqZW50
cnksIGdmcF90IGdmcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB2b2lkICpjdXJyOwoxNDQ3NDogCjE0NDc0
OiAgc3Bpbl9sb2NrKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6ICBjdXJyID0gX194YV9jbXB4Y2hn
KHhhLCBpbmRleCwgb2xkLCBlbnRyeSwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9jaygmKHhhKS0+
eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gY3VycjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
NzA5ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9jbXB4Y2hnX2Jo
KHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LAoxNDQ3NDogICAgdm9pZCAq
b2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHZvaWQgKmN1cnI7
CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGN1
cnIgPSBfX3hhX2NtcHhjaGcoeGEsIGluZGV4LCBvbGQsIGVudHJ5LCBnZnApOwoxNDQ3NDogIHNw
aW5fdW5sb2NrX2JoKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBjdXJy
OwoxNDQ3NDogfQoxNDQ3NDogIyA3MzYgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKnhhX2NtcHhjaGdfaXJxKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGlu
ZGV4LAoxNDQ3NDogICAgdm9pZCAqb2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQoxNDQ3NDog
ewoxNDQ3NDogIHZvaWQgKmN1cnI7CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2tfaXJxKCYoeGEp
LT54YV9sb2NrKTsKMTQ0NzQ6ICBjdXJyID0gX194YV9jbXB4Y2hnKHhhLCBpbmRleCwgb2xkLCBl
bnRyeSwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGN1cnI7CjE0NDc0OiB9CjE0NDc0OiAjIDc2NSAiLi9pbmNsdWRl
L2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSB4YV9pbnNlcnQoc3RydWN0IHhhcnJheSAqeGEsCjE0NDc0OiAgIHVuc2lnbmVk
IGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50
IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9jaygmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAg
ZXJyID0gX194YV9pbnNlcnQoeGEsIGluZGV4LCBlbnRyeSwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3Vu
bG9jaygmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDog
fQoxNDQ3NDogIyA3OTQgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgeGFfaW5zZXJ0X2JoKHN0cnVjdCB4
YXJyYXkgKnhhLAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICplbnRyeSwgZ2Zw
X3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7CjE0NDc0OiAKMTQ0NzQ6ICBzcGluX2xv
Y2tfYmgoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVyciA9IF9feGFfaW5zZXJ0KHhhLCBpbmRl
eCwgZW50cnksIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxvY2tfYmgoJih4YSktPnhhX2xvY2spOwox
NDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVycjsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODIzICIuL2luY2x1
ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIHhhX2luc2VydF9pcnEoc3RydWN0IHhhcnJheSAqeGEsCjE0NDc0OiAgIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0
OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19pcnEoJih4YSktPnhhX2xvY2sp
OwoxNDQ3NDogIGVyciA9IF9feGFfaW5zZXJ0KHhhLCBpbmRleCwgZW50cnksIGdmcCk7CjE0NDc0
OiAgc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biBlcnI7CjE0NDc0OiB9CjE0NDc0OiAjIDg1MiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGludCB4YV9hbGxv
YyhzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwKMTQ0NzQ6ICAgdm9pZCAqZW50cnksIHN0cnVj
dCB4YV9saW1pdCBsaW1pdCwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIGludCBlcnI7CjE0
NDc0OiAKMTQ0NzQ6ICBzcGluX2xvY2soJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVyciA9IF9f
eGFfYWxsb2MoeGEsIGlkLCBlbnRyeSwgbGltaXQsIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxvY2so
Jih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVycjsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgODgxICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHhhX2FsbG9jX2JoKHN0cnVjdCB4YXJyYXkg
KnhhLCB1MzIgKmlkLAoxNDQ3NDogICB2b2lkICplbnRyeSwgc3RydWN0IHhhX2xpbWl0IGxpbWl0
LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNw
aW5fbG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAgZXJyID0gX194YV9hbGxvYyh4YSwg
aWQsIGVudHJ5LCBsaW1pdCwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9ja19iaCgmKHhhKS0+eGFf
bG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDogfQoxNDQ3NDogIyA5MTAg
Ii4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgeGFfYWxsb2NfaXJxKHN0cnVjdCB4YXJyYXkgKnhhLCB1MzIg
KmlkLAoxNDQ3NDogICB2b2lkICplbnRyeSwgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCBnZnBfdCBn
ZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19p
cnEoJih4YSktPnhhX2xvY2spOwoxNDQ3NDogIGVyciA9IF9feGFfYWxsb2MoeGEsIGlkLCBlbnRy
eSwgbGltaXQsIGdmcCk7CjE0NDc0OiAgc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9sb2NrKTsK
MTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBlcnI7CjE0NDc0OiB9CjE0NDc0OiAjIDk0MyAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHhhX2FsbG9jX2N5Y2xpYyhzdHJ1Y3QgeGFy
cmF5ICp4YSwgdTMyICppZCwgdm9pZCAqZW50cnksCjE0NDc0OiAgIHN0cnVjdCB4YV9saW1pdCBs
aW1pdCwgdTMyICpuZXh0LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgaW50IGVycjsKMTQ0
NzQ6IAoxNDQ3NDogIHNwaW5fbG9jaygmKHhhKS0+eGFfbG9jayk7CjE0NDc0OiAgZXJyID0gX194
YV9hbGxvY19jeWNsaWMoeGEsIGlkLCBlbnRyeSwgbGltaXQsIG5leHQsIGdmcCk7CjE0NDc0OiAg
c3Bpbl91bmxvY2soJih4YSktPnhhX2xvY2spOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGVycjsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgOTc2ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgeGFfYWxsb2NfY3ljbGljX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1MzIgKmlkLCB2b2lkICpl
bnRyeSwKMTQ0NzQ6ICAgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCB1MzIgKm5leHQsIGdmcF90IGdm
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgZXJyOwoxNDQ3NDogCjE0NDc0OiAgc3Bpbl9sb2NrX2Jo
KCYoeGEpLT54YV9sb2NrKTsKMTQ0NzQ6ICBlcnIgPSBfX3hhX2FsbG9jX2N5Y2xpYyh4YSwgaWQs
IGVudHJ5LCBsaW1pdCwgbmV4dCwgZ2ZwKTsKMTQ0NzQ6ICBzcGluX3VubG9ja19iaCgmKHhhKS0+
eGFfbG9jayk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDogfQoxNDQ3NDogIyAx
MDA5ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgeGFfYWxsb2NfY3ljbGlj
X2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwgdm9pZCAqZW50cnksCjE0NDc0OiAgIHN0
cnVjdCB4YV9saW1pdCBsaW1pdCwgdTMyICpuZXh0LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0
OiAgaW50IGVycjsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5fbG9ja19pcnEoJih4YSktPnhhX2xvY2sp
OwoxNDQ3NDogIGVyciA9IF9feGFfYWxsb2NfY3ljbGljKHhhLCBpZCwgZW50cnksIGxpbWl0LCBu
ZXh0LCBnZnApOwoxNDQ3NDogIHNwaW5fdW5sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gZXJyOwoxNDQ3NDogfQoxNDQ3NDogIyAxMDM5ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkKMTQ0NzQ6IGludCB4YV9yZXNlcnZlKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBs
b25nIGluZGV4LCBnZnBfdCBnZnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhX2Vycih4YV9j
bXB4Y2hnKHhhLCBpbmRleCwgKCh2b2lkICopMCksIHhhX21rX2ludGVybmFsKDI1NyksIGdmcCkp
OwoxNDQ3NDogfQoxNDQ3NDogIyAxMDU3ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkKMTQ0NzQ6IGludCB4YV9y
ZXNlcnZlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4LCBnZnBfdCBn
ZnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhX2Vycih4YV9jbXB4Y2hnX2JoKHhhLCBpbmRl
eCwgKCh2b2lkICopMCksIHhhX21rX2ludGVybmFsKDI1NyksIGdmcCkpOwoxNDQ3NDogfQoxNDQ3
NDogIyAxMDc1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkKMTQ0NzQ6IGludCB4YV9yZXNlcnZlX2lycShzdHJ1
Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwgZ2ZwX3QgZ2ZwKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiB4YV9lcnIoeGFfY21weGNoZ19pcnEoeGEsIGluZGV4LCAoKHZvaWQgKikw
KSwgeGFfbWtfaW50ZXJuYWwoMjU3KSwgZ2ZwKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDEwOTAgIi4v
aW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFfcmVsZWFzZShzdHJ1Y3QgeGFy
cmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB4YV9jbXB4Y2hn
KHhhLCBpbmRleCwgeGFfbWtfaW50ZXJuYWwoMjU3KSwgKCh2b2lkICopMCksIDApOwoxNDQ3NDog
fQoxNDQ3NDogIyAxMTIyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdHJ1Y3Qg
eGFfbm9kZSB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBzaGlmdDsKMTQ0NzQ6ICB1bnNpZ25lZCBj
aGFyIG9mZnNldDsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGNvdW50OwoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgbnJfdmFsdWVzOwoxNDQ3NDogIHN0cnVjdCB4YV9ub2RlICpwYXJlbnQ7CjE0NDc0OiAg
c3RydWN0IHhhcnJheSAqYXJyYXk7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgbGlz
dF9oZWFkIHByaXZhdGVfbGlzdDsKMTQ0NzQ6ICAgc3RydWN0IGNhbGxiYWNrX2hlYWQgY2FsbGJh
Y2tfaGVhZDsKMTQ0NzQ6ICB9OwoxNDQ3NDogIHZvaWQgKnNsb3RzWygxVUwgPDwgKDAgPyA0IDog
NikpXTsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgdGFnc1szXVsoKCgo
MVVMIDw8ICgwID8gNCA6IDYpKSkgKyAoNjQpIC0gMSkgLyAoNjQpKV07CjE0NDc0OiAgIHVuc2ln
bmVkIGxvbmcgbWFya3NbM11bKCgoKDFVTCA8PCAoMCA/IDQgOiA2KSkpICsgKDY0KSAtIDEpIC8g
KDY0KSldOwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHhhX2R1bXAo
Y29uc3Qgc3RydWN0IHhhcnJheSAqKTsKMTQ0NzQ6IHZvaWQgeGFfZHVtcF9ub2RlKGNvbnN0IHN0
cnVjdCB4YV9ub2RlICopOwoxNDQ3NDogIyAxMTYyICIuL2luY2x1ZGUvbGludXgveGFycmF5Lmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkICp4YV9oZWFkKGNvbnN0IHN0cnVjdCB4YXJyYXkgKnhhKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiAoeyB0eXBlb2YoKih4YS0+eGFfaGVhZCkpICpfX19fX19fX3AxID0gKHR5
cGVvZigqKHhhLT54YV9oZWFkKSkgKikoeyB1bmlvbiB7IHR5cGVvZigoeGEtPnhhX2hlYWQpKSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCh4YS0+
eGFfaGVhZCkpLCBfX3UuX19jLCBzaXplb2YoKHhhLT54YV9oZWFkKSkpOyBlbHNlIF9fcmVhZF9v
bmNlX3NpemVfbm9jaGVjaygmKCh4YS0+eGFfaGVhZCkpLCBfX3UuX19jLCBzaXplb2YoKHhhLT54
YV9oZWFkKSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBkbyB7IH0gd2hpbGUg
KDApOyA7ICgodHlwZW9mKCooeGEtPnhhX2hlYWQpKSAqKShfX19fX19fX3AxKSk7IH0pCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfaGVhZF9sb2NrZWQoY29uc3Qgc3RydWN0IHhhcnJheSAq
eGEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBl
b2YoKih4YS0+eGFfaGVhZCkpICopKCh4YS0+eGFfaGVhZCkpKTsgfSkKMTQ0NzQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkICp4YV9lbnRyeShjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKMTQ0NzQ6ICAgICBj
b25zdCBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IG9mZnNldCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoKihub2Rl
LT5zbG90c1tvZmZzZXRdKSkgKl9fX19fX19fcDEgPSAodHlwZW9mKCoobm9kZS0+c2xvdHNbb2Zm
c2V0XSkpICopKHsgdW5pb24geyB0eXBlb2YoKG5vZGUtPnNsb3RzW29mZnNldF0pKSBfX3ZhbDsg
Y2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKChub2RlLT5zbG90
c1tvZmZzZXRdKSksIF9fdS5fX2MsIHNpemVvZigobm9kZS0+c2xvdHNbb2Zmc2V0XSkpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigobm9kZS0+c2xvdHNbb2Zmc2V0XSkpLCBfX3Uu
X19jLCBzaXplb2YoKG5vZGUtPnNsb3RzW29mZnNldF0pKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9f
dS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihub2RlLT5zbG90c1tv
ZmZzZXRdKSkgKikoX19fX19fX19wMSkpOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhh
X2VudHJ5X2xvY2tlZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKMTQ0NzQ6ICAgICBjb25zdCBz
dHJ1Y3QgeGFfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IG9mZnNldCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogIHJldHVybiAoeyBkbyB7IH0gd2hpbGUgKDApOyA7
ICgodHlwZW9mKCoobm9kZS0+c2xvdHNbb2Zmc2V0XSkpICopKChub2RlLT5zbG90c1tvZmZzZXRd
KSkpOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB4YV9ub2RlICp4YV9wYXJlbnQoY29u
c3Qgc3RydWN0IHhhcnJheSAqeGEsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCB4YV9ub2RlICpu
b2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoeyB0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAq
X19fX19fX19wMSA9ICh0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAqKSh7IHVuaW9uIHsgdHlwZW9m
KChub2RlLT5wYXJlbnQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFk
X29uY2Vfc2l6ZSgmKChub2RlLT5wYXJlbnQpKSwgX191Ll9fYywgc2l6ZW9mKChub2RlLT5wYXJl
bnQpKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKG5vZGUtPnBhcmVudCkpLCBf
X3UuX19jLCBzaXplb2YoKG5vZGUtPnBhcmVudCkpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9f
dmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKG5vZGUtPnBhcmVudCkpICop
KF9fX19fX19fcDEpKTsgfSkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgeGFfbm9kZSAqeGFf
cGFyZW50X2xvY2tlZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKMTQ0NzQ6ICAgICAgY29uc3Qg
c3RydWN0IHhhX25vZGUgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGRvIHsgfSB3
aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAqKSgobm9kZS0+cGFyZW50KSkp
OyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX21rX25vZGUoY29uc3Qgc3RydWN0IHhh
X25vZGUgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBs
b25nKW5vZGUgfCAyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgeGFf
bm9kZSAqeGFfdG9fbm9kZShjb25zdCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gKHN0cnVjdCB4YV9ub2RlICopKCh1bnNpZ25lZCBsb25nKWVudHJ5IC0gMik7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc19ub2RlKGNvbnN0IHZvaWQgKmVudHJ5
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYgKHVuc2ln
bmVkIGxvbmcpZW50cnkgPiA0MDk2OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgKnhhX21rX3NpYmxpbmcodW5zaWduZWQgaW50IG9mZnNldCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4geGFfbWtfaW50ZXJuYWwob2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIHhhX3RvX3NpYmxpbmcoY29uc3Qgdm9pZCAqZW50cnkpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIHhhX3RvX2ludGVybmFsKGVudHJ5KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCB4YV9pc19zaWJsaW5nKGNvbnN0IHZvaWQgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAxICYmIHhhX2lzX2ludGVybmFsKGVudHJ5KSAmJgoxNDQ3NDogICAoZW50cnkgPCB4YV9t
a19zaWJsaW5nKCgxVUwgPDwgKDAgPyA0IDogNikpIC0gMSkpOwoxNDQ3NDogfQoxNDQ3NDogIyAx
MjU5ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX3JldHJ5KGNv
bnN0IHZvaWQgKmVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0
KCEhKGVudHJ5ID09IHhhX21rX2ludGVybmFsKDI1NikpLCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCB4YV9pc19hZHZhbmNlZChjb25zdCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4geGFfaXNfaW50ZXJuYWwoZW50cnkpICYmIChlbnRyeSA8PSB4YV9ta19pbnRlcm5hbCgyNTYp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTI4NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3
NDogdHlwZWRlZiB2b2lkICgqeGFfdXBkYXRlX25vZGVfdCkoc3RydWN0IHhhX25vZGUgKm5vZGUp
OwoxNDQ3NDogIyAxMzA2ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdHJ1Y3Qg
eGFfc3RhdGUgewoxNDQ3NDogIHN0cnVjdCB4YXJyYXkgKnhhOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgeGFfaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgY2hhciB4YV9zaGlmdDsKMTQ0NzQ6ICB1bnNp
Z25lZCBjaGFyIHhhX3NpYnM7CjE0NDc0OiAgdW5zaWduZWQgY2hhciB4YV9vZmZzZXQ7CjE0NDc0
OiAgdW5zaWduZWQgY2hhciB4YV9wYWQ7CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKnhhX25vZGU7
CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKnhhX2FsbG9jOwoxNDQ3NDogIHhhX3VwZGF0ZV9ub2Rl
X3QgeGFfdXBkYXRlOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTM4NSAiLi9pbmNsdWRlL2xpbnV4L3hh
cnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHhhc19lcnJvcihjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKnhhcykK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geGFfZXJyKHhhcy0+eGFfbm9kZSk7CjE0NDc0OiB9CjE0
NDc0OiAjIDEzOTkgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFzX3Nl
dF9lcnIoc3RydWN0IHhhX3N0YXRlICp4YXMsIGxvbmcgZXJyKQoxNDQ3NDogewoxNDQ3NDogIHhh
cy0+eGFfbm9kZSA9ICgoc3RydWN0IHhhX25vZGUgKikoKCh1bnNpZ25lZCBsb25nKWVyciA8PCAy
KSB8IDJVTCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc19pbnZhbGlkKGNvbnN0IHN0cnVjdCB4
YV9zdGF0ZSAqeGFzKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAodW5zaWduZWQgbG9uZyl4YXMt
PnhhX25vZGUgJiAzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc192YWxpZChjb25zdCBzdHJ1Y3Qg
eGFfc3RhdGUgKnhhcykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIXhhc19pbnZhbGlkKHhhcyk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgeGFzX2lzX25vZGUoY29uc3Qgc3RydWN0IHhhX3N0YXRlICp4
YXMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhc192YWxpZCh4YXMpICYmIHhhcy0+eGFfbm9k
ZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc19ub3Rfbm9kZShzdHJ1
Y3QgeGFfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBsb25n
KW5vZGUgJiAzKSB8fCAhbm9kZTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHhhc19mcm96ZW4oc3RydWN0IHhhX25vZGUgKm5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
ICh1bnNpZ25lZCBsb25nKW5vZGUgJiAyOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgeGFzX3RvcChzdHJ1Y3QgeGFfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gbm9kZSA8PSAoKHN0cnVjdCB4YV9ub2RlICopM1VMKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ2
NSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB4YXNfcmVzZXQoc3RydWN0
IHhhX3N0YXRlICp4YXMpCjE0NDc0OiB7CjE0NDc0OiAgeGFzLT54YV9ub2RlID0gKChzdHJ1Y3Qg
eGFfbm9kZSAqKTNVTCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE0ODIgIi4vaW5jbHVkZS9saW51eC94
YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgeGFzX3JldHJ5KHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCBjb25z
dCB2b2lkICplbnRyeSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoeGFfaXNfemVybyhlbnRyeSkpCjE0
NDc0OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIGlmICgheGFfaXNfcmV0cnkoZW50cnkpKQoxNDQ3
NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgeGFzX3Jlc2V0KHhhcyk7CjE0NDc0OiAgcmV0dXJu
IHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKnhhc19sb2FkKHN0cnVjdCB4YV9z
dGF0ZSAqKTsKMTQ0NzQ6IHZvaWQgKnhhc19zdG9yZShzdHJ1Y3QgeGFfc3RhdGUgKiwgdm9pZCAq
ZW50cnkpOwoxNDQ3NDogdm9pZCAqeGFzX2ZpbmQoc3RydWN0IHhhX3N0YXRlICosIHVuc2lnbmVk
IGxvbmcgbWF4KTsKMTQ0NzQ6IHZvaWQgKnhhc19maW5kX2NvbmZsaWN0KHN0cnVjdCB4YV9zdGF0
ZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCB4YXNfZ2V0X21hcmsoY29uc3Qgc3RydWN0IHhhX3N0
YXRlICosIHhhX21hcmtfdCk7CjE0NDc0OiB2b2lkIHhhc19zZXRfbWFyayhjb25zdCBzdHJ1Y3Qg
eGFfc3RhdGUgKiwgeGFfbWFya190KTsKMTQ0NzQ6IHZvaWQgeGFzX2NsZWFyX21hcmsoY29uc3Qg
c3RydWN0IHhhX3N0YXRlICosIHhhX21hcmtfdCk7CjE0NDc0OiB2b2lkICp4YXNfZmluZF9tYXJr
ZWQoc3RydWN0IHhhX3N0YXRlICosIHVuc2lnbmVkIGxvbmcgbWF4LCB4YV9tYXJrX3QpOwoxNDQ3
NDogdm9pZCB4YXNfaW5pdF9tYXJrcyhjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKik7CjE0NDc0OiAK
MTQ0NzQ6IGJvb2wgeGFzX25vbWVtKHN0cnVjdCB4YV9zdGF0ZSAqLCBnZnBfdCk7CjE0NDc0OiB2
b2lkIHhhc19wYXVzZShzdHJ1Y3QgeGFfc3RhdGUgKik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgeGFz
X2NyZWF0ZV9yYW5nZShzdHJ1Y3QgeGFfc3RhdGUgKik7CjE0NDc0OiAjIDE1MjIgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhc19yZWxvYWQoc3RydWN0IHhhX3N0YXRl
ICp4YXMpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKm5vZGUgPSB4YXMtPnhhX25v
ZGU7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAobm9kZSkKMTQ0NzQ6ICAgcmV0dXJuIHhhX2VudHJ5KHhh
cy0+eGEsIG5vZGUsIHhhcy0+eGFfb2Zmc2V0KTsKMTQ0NzQ6ICByZXR1cm4geGFfaGVhZCh4YXMt
PnhhKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTU0MCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB4YXNfc2V0KHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBsb25nIGlu
ZGV4KQoxNDQ3NDogewoxNDQ3NDogIHhhcy0+eGFfaW5kZXggPSBpbmRleDsKMTQ0NzQ6ICB4YXMt
PnhhX25vZGUgPSAoKHN0cnVjdCB4YV9ub2RlICopM1VMKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB4
YXNfc2V0X29yZGVyKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBsb25nIGluZGV4LAox
NDQ3NDogICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICB4
YXMtPnhhX2luZGV4ID0gb3JkZXIgPCA2NCA/IChpbmRleCA+PiBvcmRlcikgPDwgb3JkZXIgOiAw
OwoxNDQ3NDogIHhhcy0+eGFfc2hpZnQgPSBvcmRlciAtIChvcmRlciAlICgwID8gNCA6IDYpKTsK
MTQ0NzQ6ICB4YXMtPnhhX3NpYnMgPSAoMSA8PCAob3JkZXIgJSAoMCA/IDQgOiA2KSkpIC0gMTsK
MTQ0NzQ6ICB4YXMtPnhhX25vZGUgPSAoKHN0cnVjdCB4YV9ub2RlICopM1VMKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogIyAxNTc0ICIuL2luY2x1ZGUv
bGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHhhc19zZXRfdXBkYXRlKHN0cnVjdCB4YV9zdGF0
ZSAqeGFzLCB4YV91cGRhdGVfbm9kZV90IHVwZGF0ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB4YXMtPnhh
X3VwZGF0ZSA9IHVwZGF0ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTU5MCAiLi9pbmNsdWRlL2xpbnV4
L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFzX25leHRfZW50cnkoc3RydWN0IHhhX3N0YXRlICp4
YXMsIHVuc2lnbmVkIGxvbmcgbWF4KQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCB4YV9ub2RlICpu
b2RlID0geGFzLT54YV9ub2RlOwoxNDQ3NDogIHZvaWQgKmVudHJ5OwoxNDQ3NDogCjE0NDc0OiAg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFzX25vdF9ub2RlKG5vZGUpIHx8IG5vZGUtPnNoaWZ0
IHx8IHhhcy0+eGFfb2Zmc2V0ICE9ICh4YXMtPnhhX2luZGV4ICYgKCgxVUwgPDwgKDAgPyA0IDog
NikpIC0gMSkpKSwgMCkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQoxNDQ3NDogICByZXR1cm4geGFzX2ZpbmQoeGFzLCBtYXgpOwox
NDQ3NDogCjE0NDc0OiAgZG8gewoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVjdCghISh4YXMt
PnhhX2luZGV4ID49IG1heCksIDApKQoxNDQ3NDogICAgcmV0dXJuIHhhc19maW5kKHhhcywgbWF4
KTsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFzLT54YV9vZmZzZXQgPT0gKCgx
VUwgPDwgKDAgPyA0IDogNikpIC0gMSkpLCAwKSkKMTQ0NzQ6ICAgIHJldHVybiB4YXNfZmluZCh4
YXMsIG1heCk7CjE0NDc0OiAgIGVudHJ5ID0geGFfZW50cnkoeGFzLT54YSwgbm9kZSwgeGFzLT54
YV9vZmZzZXQgKyAxKTsKMTQ0NzQ6ICAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFfaXNfaW50
ZXJuYWwoZW50cnkpKSwgMCkpCjE0NDc0OiAgICByZXR1cm4geGFzX2ZpbmQoeGFzLCBtYXgpOwox
NDQ3NDogICB4YXMtPnhhX29mZnNldCsrOwoxNDQ3NDogICB4YXMtPnhhX2luZGV4Kys7CjE0NDc0
OiAgfSB3aGlsZSAoIWVudHJ5KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBlbnRyeTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgeGFzX2ZpbmRfY2h1bmsoc3Ry
dWN0IHhhX3N0YXRlICp4YXMsIGJvb2wgYWR2YW5jZSwKMTQ0NzQ6ICAgeGFfbWFya190IG1hcmsp
CjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyAqYWRkciA9IHhhcy0+eGFfbm9kZS0+bWFy
a3NbKCB1bnNpZ25lZCltYXJrXTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgb2Zmc2V0ID0geGFzLT54
YV9vZmZzZXQ7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoYWR2YW5jZSkKMTQ0NzQ6ICAgb2Zmc2V0Kys7
CjE0NDc0OiAgaWYgKCgxVUwgPDwgKDAgPyA0IDogNikpID09IDY0KSB7CjE0NDc0OiAgIGlmIChv
ZmZzZXQgPCAoMVVMIDw8ICgwID8gNCA6IDYpKSkgewoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBk
YXRhID0gKmFkZHIgJiAofjBVTCA8PCBvZmZzZXQpOwoxNDQ3NDogICAgaWYgKGRhdGEpCjE0NDc0
OiAgICAgcmV0dXJuIF9fZmZzKGRhdGEpOwoxNDQ3NDogICB9CjE0NDc0OiAgIHJldHVybiAoMVVM
IDw8ICgwID8gNCA6IDYpKTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZmluZF9u
ZXh0X2JpdChhZGRyLCAoMVVMIDw8ICgwID8gNCA6IDYpKSwgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0
NzQ6ICMgMTY0NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFzX25l
eHRfbWFya2VkKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBsb25nIG1heCwKMTQ0NzQ6
ICAgICAgICAgeGFfbWFya190IG1hcmspCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHhhX25vZGUg
Km5vZGUgPSB4YXMtPnhhX25vZGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG9mZnNldDsKMTQ0NzQ6
IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhc19ub3Rfbm9kZShub2RlKSB8fCBu
b2RlLT5zaGlmdCksIDApKQoxNDQ3NDogICByZXR1cm4geGFzX2ZpbmRfbWFya2VkKHhhcywgbWF4
LCBtYXJrKTsKMTQ0NzQ6ICBvZmZzZXQgPSB4YXNfZmluZF9jaHVuayh4YXMsIHRydWUsIG1hcmsp
OwoxNDQ3NDogIHhhcy0+eGFfb2Zmc2V0ID0gb2Zmc2V0OwoxNDQ3NDogIHhhcy0+eGFfaW5kZXgg
PSAoeGFzLT54YV9pbmRleCAmIH4oKDFVTCA8PCAoMCA/IDQgOiA2KSkgLSAxKSkgKyBvZmZzZXQ7
CjE0NDc0OiAgaWYgKHhhcy0+eGFfaW5kZXggPiBtYXgpCjE0NDc0OiAgIHJldHVybiAoKHZvaWQg
KikwKTsKMTQ0NzQ6ICBpZiAob2Zmc2V0ID09ICgxVUwgPDwgKDAgPyA0IDogNikpKQoxNDQ3NDog
ICByZXR1cm4geGFzX2ZpbmRfbWFya2VkKHhhcywgbWF4LCBtYXJrKTsKMTQ0NzQ6ICByZXR1cm4g
eGFfZW50cnkoeGFzLT54YSwgbm9kZSwgb2Zmc2V0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBYQV9DSEVDS19T
Q0hFRCA9IDQwOTYsCjE0NDc0OiB9OwoxNDQ3NDogIyAxNzI0ICIuL2luY2x1ZGUvbGludXgveGFy
cmF5LmgiCjE0NDc0OiB2b2lkICpfX3hhc19uZXh0KHN0cnVjdCB4YV9zdGF0ZSAqKTsKMTQ0NzQ6
IHZvaWQgKl9feGFzX3ByZXYoc3RydWN0IHhhX3N0YXRlICopOwoxNDQ3NDogIyAxNzQzICIuL2lu
Y2x1ZGUvbGludXgveGFycmF5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YXNfcHJldihzdHJ1Y3QgeGFfc3Rh
dGUgKnhhcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFf
bm9kZTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhc19ub3Rfbm9k
ZShub2RlKSB8fCBub2RlLT5zaGlmdCB8fCB4YXMtPnhhX29mZnNldCA9PSAwKSwgMCkKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICkKMTQ0NzQ6ICAgcmV0dXJuIF9feGFzX3ByZXYoeGFz
KTsKMTQ0NzQ6IAoxNDQ3NDogIHhhcy0+eGFfaW5kZXgtLTsKMTQ0NzQ6ICB4YXMtPnhhX29mZnNl
dC0tOwoxNDQ3NDogIHJldHVybiB4YV9lbnRyeSh4YXMtPnhhLCBub2RlLCB4YXMtPnhhX29mZnNl
dCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE3NzIgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgKnhhc19uZXh0KHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQoxNDQ3NDogewoxNDQ3NDog
IHN0cnVjdCB4YV9ub2RlICpub2RlID0geGFzLT54YV9ub2RlOwoxNDQ3NDogCjE0NDc0OiAgaWYg
KF9fYnVpbHRpbl9leHBlY3QoISEoeGFzX25vdF9ub2RlKG5vZGUpIHx8IG5vZGUtPnNoaWZ0IHx8
IHhhcy0+eGFfb2Zmc2V0ID09ICgoMVVMIDw8ICgwID8gNCA6IDYpKSAtIDEpKSwgMCkKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKMTQ0NzQ6ICAgcmV0dXJuIF9f
eGFzX25leHQoeGFzKTsKMTQ0NzQ6IAoxNDQ3NDogIHhhcy0+eGFfaW5kZXgrKzsKMTQ0NzQ6ICB4
YXMtPnhhX29mZnNldCsrOwoxNDQ3NDogIHJldHVybiB4YV9lbnRyeSh4YXMtPnhhLCBub2RlLCB4
YXMtPnhhX29mZnNldCk7CjE0NDc0OiB9CjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgvcmFk
aXgtdHJlZS5oIiAyCjE0NDc0OiAjIDQzICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCByYWRpeF90cmVlX2lzX2ludGVybmFsX25vZGUodm9pZCAqcHRyKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVkIGxvbmcpcHRyICYgM1VMKSA9PQoxNDQ3NDogICAg
IDJVTDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNzQgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgi
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHJhZGl4X3RyZWVfZW1wdHkoY29uc3Qgc3RydWN0IHhhcnJheSAqcm9vdCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcm9vdC0+eGFfaGVhZCA9PSAoKHZvaWQgKikwKTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgOTQgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiBz
dHJ1Y3QgcmFkaXhfdHJlZV9pdGVyIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGluZGV4OwoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgbmV4dF9pbmRleDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHRhZ3M7
CjE0NDc0OiAgc3RydWN0IHhhX25vZGUgKm5vZGU7CjE0NDc0OiB9OwoxNDQ3NDogIyAxNjUgIi4v
aW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpyYWRpeF90cmVlX2RlcmVm
X3Nsb3Qodm9pZCAqKnNsb3QpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IHR5cGVvZigqKCpz
bG90KSkgKl9fX19fX19fcDEgPSAodHlwZW9mKCooKnNsb3QpKSAqKSh7IHVuaW9uIHsgdHlwZW9m
KCgqc2xvdCkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9z
aXplKCYoKCpzbG90KSksIF9fdS5fX2MsIHNpemVvZigoKnNsb3QpKSk7IGVsc2UgX19yZWFkX29u
Y2Vfc2l6ZV9ub2NoZWNrKCYoKCpzbG90KSksIF9fdS5fX2MsIHNpemVvZigoKnNsb3QpKSk7IGRv
IHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBl
b2YoKigqc2xvdCkpICopKF9fX19fX19fcDEpKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE3OSAi
Li9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnJhZGl4X3RyZWVfZGVy
ZWZfc2xvdF9wcm90ZWN0ZWQodm9pZCAqKnNsb3QsCjE0NDc0OiAgICAgICAgc3BpbmxvY2tfdCAq
dHJlZWxvY2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICh7IGRvIHsgfSB3aGlsZSAoMCk7IDsg
KCh0eXBlb2YoKigqc2xvdCkpICopKCgqc2xvdCkpKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE5
MiAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByYWRpeF90cmVlX2Rl
cmVmX3JldHJ5KHZvaWQgKmFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19idWlsdGluX2V4
cGVjdCghIShyYWRpeF90cmVlX2lzX2ludGVybmFsX25vZGUoYXJnKSksIDApOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IHJhZGl4X3RyZWVfZXhjZXB0aW9uKHZvaWQgKmFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X19idWlsdGluX2V4cGVjdCghISgodW5zaWduZWQgbG9uZylhcmcgJiAzVUwpLCAwKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogaW50IHJhZGl4X3RyZWVfaW5zZXJ0KHN0cnVjdCB4YXJyYXkgKiwg
dW5zaWduZWQgbG9uZyBpbmRleCwKMTQ0NzQ6ICAgIHZvaWQgKik7CjE0NDc0OiB2b2lkICpfX3Jh
ZGl4X3RyZWVfbG9va3VwKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwgdW5zaWduZWQgbG9uZyBpbmRl
eCwKMTQ0NzQ6ICAgICAgc3RydWN0IHhhX25vZGUgKipub2RlcCwgdm9pZCAqKipzbG90cCk7CjE0
NDc0OiB2b2lkICpyYWRpeF90cmVlX2xvb2t1cChjb25zdCBzdHJ1Y3QgeGFycmF5ICosIHVuc2ln
bmVkIGxvbmcpOwoxNDQ3NDogdm9pZCAqKnJhZGl4X3RyZWVfbG9va3VwX3Nsb3QoY29uc3Qgc3Ry
dWN0IHhhcnJheSAqLAoxNDQ3NDogICAgICB1bnNpZ25lZCBsb25nIGluZGV4KTsKMTQ0NzQ6IHZv
aWQgX19yYWRpeF90cmVlX3JlcGxhY2Uoc3RydWN0IHhhcnJheSAqLCBzdHJ1Y3QgeGFfbm9kZSAq
LAoxNDQ3NDogICAgICB2b2lkICoqc2xvdCwgdm9pZCAqZW50cnkpOwoxNDQ3NDogdm9pZCByYWRp
eF90cmVlX2l0ZXJfcmVwbGFjZShzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgIGNvbnN0IHN0cnVj
dCByYWRpeF90cmVlX2l0ZXIgKiwgdm9pZCAqKnNsb3QsIHZvaWQgKmVudHJ5KTsKMTQ0NzQ6IHZv
aWQgcmFkaXhfdHJlZV9yZXBsYWNlX3Nsb3Qoc3RydWN0IHhhcnJheSAqLAoxNDQ3NDogICAgICAg
ICB2b2lkICoqc2xvdCwgdm9pZCAqZW50cnkpOwoxNDQ3NDogdm9pZCByYWRpeF90cmVlX2l0ZXJf
ZGVsZXRlKHN0cnVjdCB4YXJyYXkgKiwKMTQ0NzQ6ICAgIHN0cnVjdCByYWRpeF90cmVlX2l0ZXIg
Kml0ZXIsIHZvaWQgKipzbG90KTsKMTQ0NzQ6IHZvaWQgKnJhZGl4X3RyZWVfZGVsZXRlX2l0ZW0o
c3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwoxNDQ3NDogdm9pZCAqcmFk
aXhfdHJlZV9kZWxldGUoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6IHVu
c2lnbmVkIGludCByYWRpeF90cmVlX2dhbmdfbG9va3VwKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwK
MTQ0NzQ6ICAgIHZvaWQgKipyZXN1bHRzLCB1bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAoxNDQ3
NDogICAgdW5zaWduZWQgaW50IG1heF9pdGVtcyk7CjE0NDc0OiBpbnQgcmFkaXhfdHJlZV9wcmVs
b2FkKGdmcF90IGdmcF9tYXNrKTsKMTQ0NzQ6IGludCByYWRpeF90cmVlX21heWJlX3ByZWxvYWQo
Z2ZwX3QgZ2ZwX21hc2spOwoxNDQ3NDogdm9pZCByYWRpeF90cmVlX2luaXQodm9pZCk7CjE0NDc0
OiB2b2lkICpyYWRpeF90cmVlX3RhZ19zZXQoc3RydWN0IHhhcnJheSAqLAoxNDQ3NDogICAgdW5z
aWduZWQgbG9uZyBpbmRleCwgdW5zaWduZWQgaW50IHRhZyk7CjE0NDc0OiB2b2lkICpyYWRpeF90
cmVlX3RhZ19jbGVhcihzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIGlu
ZGV4LCB1bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IGludCByYWRpeF90cmVlX3RhZ19nZXQoY29u
c3Qgc3RydWN0IHhhcnJheSAqLAoxNDQ3NDogICAgdW5zaWduZWQgbG9uZyBpbmRleCwgdW5zaWdu
ZWQgaW50IHRhZyk7CjE0NDc0OiB2b2lkIHJhZGl4X3RyZWVfaXRlcl90YWdfY2xlYXIoc3RydWN0
IHhhcnJheSAqLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyICppdGVyLCB1
bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IHVuc2lnbmVkIGludCByYWRpeF90cmVlX2dhbmdfbG9v
a3VwX3RhZyhjb25zdCBzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgIHZvaWQgKipyZXN1bHRzLCB1
bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbWF4X2l0ZW1z
LCB1bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IHVuc2lnbmVkIGludCByYWRpeF90cmVlX2dhbmdf
bG9va3VwX3RhZ19zbG90KGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwKMTQ0NzQ6ICAgdm9pZCAqKipy
ZXN1bHRzLCB1bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQg
bWF4X2l0ZW1zLCB1bnNpZ25lZCBpbnQgdGFnKTsKMTQ0NzQ6IGludCByYWRpeF90cmVlX3RhZ2dl
ZChjb25zdCBzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGludCB0YWcpOwoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHJhZGl4X3RyZWVfcHJlbG9hZF9lbmQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiB2b2lkICoqaWRyX2dldF9mcmVlKHN0cnVjdCB4YXJyYXkgKnJvb3QsCjE0NDc0OiAgICAgICAg
ICBzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyICppdGVyLCBnZnBfdCBnZnAsCjE0NDc0OiAgICAgICAg
ICB1bnNpZ25lZCBsb25nIG1heCk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFJBRElY
X1RSRUVfSVRFUl9UQUdfTUFTSyA9IDB4MGYsCjE0NDc0OiAgUkFESVhfVFJFRV9JVEVSX1RBR0dF
RCA9IDB4MTAsCjE0NDc0OiAgUkFESVhfVFJFRV9JVEVSX0NPTlRJRyA9IDB4MjAsCjE0NDc0OiB9
OwoxNDQ3NDogIyAyNjggIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKioKMTQ0NzQ6IHJhZGl4X3RyZWVf
aXRlcl9pbml0KHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGxvbmcgc3Rh
cnQpCjE0NDc0OiB7CjE0NDc0OiAjIDI3OSAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIK
MTQ0NzQ6ICBpdGVyLT5pbmRleCA9IDA7CjE0NDc0OiAgaXRlci0+bmV4dF9pbmRleCA9IHN0YXJ0
OwoxNDQ3NDogIHJldHVybiAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjk3ICIuL2lu
Y2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogdm9pZCAqKnJhZGl4X3RyZWVfbmV4dF9j
aHVuayhjb25zdCBzdHJ1Y3QgeGFycmF5ICosCjE0NDc0OiAgICAgICAgIHN0cnVjdCByYWRpeF90
cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGZsYWdzKTsKMTQ0NzQ6ICMgMzEwICIuL2luY2x1ZGUv
bGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqKgoxNDQ3NDogcmFkaXhfdHJlZV9pdGVy
X2xvb2t1cChjb25zdCBzdHJ1Y3QgeGFycmF5ICpyb290LAoxNDQ3NDogICAgc3RydWN0IHJhZGl4
X3RyZWVfaXRlciAqaXRlciwgdW5zaWduZWQgbG9uZyBpbmRleCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
YWRpeF90cmVlX2l0ZXJfaW5pdChpdGVyLCBpbmRleCk7CjE0NDc0OiAgcmV0dXJuIHJhZGl4X3Ry
ZWVfbmV4dF9jaHVuayhyb290LCBpdGVyLCBSQURJWF9UUkVFX0lURVJfQ09OVElHKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMzI3ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpCjE0NDc0OiB2b2lkICoqcmFkaXhf
dHJlZV9pdGVyX3JldHJ5KHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIpCjE0NDc0OiB7CjE0
NDc0OiAgaXRlci0+bmV4dF9pbmRleCA9IGl0ZXItPmluZGV4OwoxNDQ3NDogIGl0ZXItPnRhZ3Mg
PSAwOwoxNDQ3NDogIHJldHVybiAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZwoxNDQ3NDogX19yYWRpeF90cmVlX2l0ZXJfYWRkKHN0cnVjdCByYWRpeF90
cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGxvbmcgc2xvdHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGl0ZXItPmluZGV4ICsgc2xvdHM7CjE0NDc0OiB9CjE0NDc0OiAjIDM1MSAiLi9pbmNsdWRl
L2xpbnV4L3JhZGl4LXRyZWUuaCIKMTQ0NzQ6IHZvaWQgKipfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgcmFkaXhfdHJlZV9pdGVyX3Jlc3VtZSh2b2lkICoqc2xvdCwKMTQ0
NzQ6ICAgICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcik7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgbG9uZwoxNDQ3NDogcmFkaXhfdHJlZV9jaHVua19zaXpl
KHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGl0
ZXItPm5leHRfaW5kZXggLSBpdGVyLT5pbmRleDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzg1ICIuL2lu
Y2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkICoqcmFkaXhfdHJlZV9uZXh0X3Nsb3Qodm9pZCAqKnNsb3QsCjE0NDc0
OiAgICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlciwgdW5zaWduZWQgZmxhZ3MpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKGZsYWdzICYgUkFESVhfVFJFRV9JVEVSX1RBR0dFRCkgewoxNDQ3NDog
ICBpdGVyLT50YWdzID4+PSAxOwoxNDQ3NDogICBpZiAoX19idWlsdGluX2V4cGVjdCghISghaXRl
ci0+dGFncyksIDApKQoxNDQ3NDogICAgcmV0dXJuICgodm9pZCAqKTApOwoxNDQ3NDogICBpZiAo
X19idWlsdGluX2V4cGVjdCghIShpdGVyLT50YWdzICYgMXVsKSwgMSkpIHsKMTQ0NzQ6ICAgIGl0
ZXItPmluZGV4ID0gX19yYWRpeF90cmVlX2l0ZXJfYWRkKGl0ZXIsIDEpOwoxNDQ3NDogICAgc2xv
dCsrOwoxNDQ3NDogICAgZ290byBmb3VuZDsKMTQ0NzQ6ICAgfQoxNDQ3NDogICBpZiAoIShmbGFn
cyAmIFJBRElYX1RSRUVfSVRFUl9DT05USUcpKSB7CjE0NDc0OiAgICB1bnNpZ25lZCBvZmZzZXQg
PSBfX2ZmcyhpdGVyLT50YWdzKTsKMTQ0NzQ6IAoxNDQ3NDogICAgaXRlci0+dGFncyA+Pj0gb2Zm
c2V0Kys7CjE0NDc0OiAgICBpdGVyLT5pbmRleCA9IF9fcmFkaXhfdHJlZV9pdGVyX2FkZChpdGVy
LCBvZmZzZXQpOwoxNDQ3NDogICAgc2xvdCArPSBvZmZzZXQ7CjE0NDc0OiAgICBnb3RvIGZvdW5k
OwoxNDQ3NDogICB9CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgbG9uZyBjb3VudCA9IHJhZGl4
X3RyZWVfY2h1bmtfc2l6ZShpdGVyKTsKMTQ0NzQ6IAoxNDQ3NDogICB3aGlsZSAoLS1jb3VudCA+
IDApIHsKMTQ0NzQ6ICAgIHNsb3QrKzsKMTQ0NzQ6ICAgIGl0ZXItPmluZGV4ID0gX19yYWRpeF90
cmVlX2l0ZXJfYWRkKGl0ZXIsIDEpOwoxNDQ3NDogCjE0NDc0OiAgICBpZiAoX19idWlsdGluX2V4
cGVjdCghISgqc2xvdCksIDEpKQoxNDQ3NDogICAgIGdvdG8gZm91bmQ7CjE0NDc0OiAgICBpZiAo
ZmxhZ3MgJiBSQURJWF9UUkVFX0lURVJfQ09OVElHKSB7CjE0NDc0OiAKMTQ0NzQ6ICAgICBpdGVy
LT5uZXh0X2luZGV4ID0gMDsKMTQ0NzQ6ICAgICBicmVhazsKMTQ0NzQ6ICAgIH0KMTQ0NzQ6ICAg
fQoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAKMTQ0NzQ6ICBm
b3VuZDoKMTQ0NzQ6ICByZXR1cm4gc2xvdDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTYgIi4vaW5jbHVk
ZS9saW51eC9mcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9waWQuaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCjE0
NDc0OiBlbnVtIHBpZF90eXBlCjE0NDc0OiB7CjE0NDc0OiAgUElEVFlQRV9QSUQsCjE0NDc0OiAg
UElEVFlQRV9UR0lELAoxNDQ3NDogIFBJRFRZUEVfUEdJRCwKMTQ0NzQ6ICBQSURUWVBFX1NJRCwK
MTQ0NzQ6ICBQSURUWVBFX01BWCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDU0ICIuL2luY2x1ZGUvbGlu
dXgvcGlkLmgiCjE0NDc0OiBzdHJ1Y3QgdXBpZCB7CjE0NDc0OiAgaW50IG5yOwoxNDQ3NDogIHN0
cnVjdCBwaWRfbmFtZXNwYWNlICpuczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBw
aWQKMTQ0NzQ6IHsKMTQ0NzQ6ICByZWZjb3VudF90IGNvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBsZXZlbDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBobGlzdF9oZWFkIHRhc2tzW1BJRFRZUEVf
TUFYXTsKMTQ0NzQ6IAoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHdhaXRfcGlkZmQ7CjE0NDc0
OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1OwoxNDQ3NDogIHN0cnVjdCB1cGlkIG51bWJlcnNb
MV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHBpZCBpbml0X3N0cnVj
dF9waWQ7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z
IHBpZGZkX2ZvcHM7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaWxlOwoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gc3RydWN0IHBpZCAqcGlkZmRfcGlkKGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlKTsKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IHBpZCAqZ2V0X3BpZChzdHJ1Y3QgcGlkICpwaWQpCjE0NDc0OiB7
CjE0NDc0OiAgaWYgKHBpZCkKMTQ0NzQ6ICAgcmVmY291bnRfaW5jKCZwaWQtPmNvdW50KTsKMTQ0
NzQ6ICByZXR1cm4gcGlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwdXRf
cGlkKHN0cnVjdCBwaWQgKnBpZCk7CjE0NDc0OiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpw
aWRfdGFzayhzdHJ1Y3QgcGlkICpwaWQsIGVudW0gcGlkX3R5cGUpOwoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwaWRf
aGFzX3Rhc2soc3RydWN0IHBpZCAqcGlkLCBlbnVtIHBpZF90eXBlIHR5cGUpCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICFobGlzdF9lbXB0eSgmcGlkLT50YXNrc1t0eXBlXSk7CjE0NDc0OiB9CjE0
NDc0OiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfcGlkX3Rhc2soc3RydWN0IHBpZCAq
cGlkLCBlbnVtIHBpZF90eXBlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwaWQgKmdl
dF90YXNrX3BpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGVudW0gcGlkX3R5cGUgdHlwZSk7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGF0dGFj
aF9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGRldGFjaF9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90
eXBlKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNoYW5nZV9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0
YXNrLCBlbnVtIHBpZF90eXBlLAoxNDQ3NDogICAgc3RydWN0IHBpZCAqcGlkKTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIHRyYW5zZmVyX3BpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9sZCwgc3RydWN0IHRh
c2tfc3RydWN0ICpuZXcsCjE0NDc0OiAgICAgZW51bSBwaWRfdHlwZSk7CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwaWRfbmFtZXNwYWNlOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBwaWRfbmFtZXNwYWNl
IGluaXRfcGlkX25zOwoxNDQ3NDogIyAxMTggIi4vaW5jbHVkZS9saW51eC9waWQuaCIKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3QgcGlkICpmaW5kX3BpZF9ucyhpbnQgbnIsIHN0cnVjdCBwaWRfbmFtZXNw
YWNlICpucyk7CjE0NDc0OiBleHRlcm4gc3RydWN0IHBpZCAqZmluZF92cGlkKGludCBucik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcGlkICpm
aW5kX2dldF9waWQoaW50IG5yKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcGlkICpmaW5kX2dlX3Bp
ZChpbnQgbnIsIHN0cnVjdCBwaWRfbmFtZXNwYWNlICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
c3RydWN0IHBpZCAqYWxsb2NfcGlkKHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucywgcGlkX3QgKnNl
dF90aWQsCjE0NDc0OiAgICAgICAgIHNpemVfdCBzZXRfdGlkX3NpemUpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgZnJlZV9waWQoc3RydWN0IHBpZCAqcGlkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRpc2Fi
bGVfcGlkX2FsbG9jYXRpb24oc3RydWN0IHBpZF9uYW1lc3BhY2UgKm5zKTsKMTQ0NzQ6ICMgMTQy
ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnNf
b2ZfcGlkKHN0cnVjdCBwaWQgKnBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgcGlkX25hbWVz
cGFjZSAqbnMgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6ICBpZiAocGlkKQoxNDQ3NDogICBucyA9IHBp
ZC0+bnVtYmVyc1twaWQtPmxldmVsXS5uczsKMTQ0NzQ6ICByZXR1cm4gbnM7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgaXNfY2hpbGRfcmVhcGVyKHN0cnVjdCBwaWQgKnBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gcGlkLT5udW1iZXJzW3BpZC0+bGV2ZWxdLm5yID09IDE7CjE0NDc0OiB9CjE0NDc0
OiAjIDE3MiAiLi9pbmNsdWRlL2xpbnV4L3BpZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgcGlkX25yKHN0cnVj
dCBwaWQgKnBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwaWRfdCBuciA9IDA7CjE0NDc0OiAgaWYgKHBp
ZCkKMTQ0NzQ6ICAgbnIgPSBwaWQtPm51bWJlcnNbMF0ubnI7CjE0NDc0OiAgcmV0dXJuIG5yOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBwaWRfdCBwaWRfbnJfbnMoc3RydWN0IHBpZCAqcGlkLCBz
dHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpOwoxNDQ3NDogcGlkX3QgcGlkX3ZucihzdHJ1Y3QgcGlk
ICpwaWQpOwoxNDQ3NDogIyAyMCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0
eS5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgoxNDQ3NDog
IyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9jYXBhYmlsaXR5LmgiIDEKMTQ0NzQ6ICMgMzkgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L2NhcGFiaWxpdHkuaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF9f
dXNlcl9jYXBfaGVhZGVyX3N0cnVjdCB7CjE0NDc0OiAgX191MzIgdmVyc2lvbjsKMTQ0NzQ6ICBp
bnQgcGlkOwoxNDQ3NDogfSAqY2FwX3VzZXJfaGVhZGVyX3Q7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVk
ZWYgc3RydWN0IF9fdXNlcl9jYXBfZGF0YV9zdHJ1Y3QgewoxNDQ3NDogICAgICAgICBfX3UzMiBl
ZmZlY3RpdmU7CjE0NDc0OiAgICAgICAgIF9fdTMyIHBlcm1pdHRlZDsKMTQ0NzQ6ICAgICAgICAg
X191MzIgaW5oZXJpdGFibGU7CjE0NDc0OiB9ICpjYXBfdXNlcl9kYXRhX3Q7CjE0NDc0OiAjIDcy
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9jYXBhYmlsaXR5LmgiCjE0NDc0OiBzdHJ1Y3QgdmZzX2Nh
cF9kYXRhIHsKMTQ0NzQ6ICBfX2xlMzIgbWFnaWNfZXRjOwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0
OiAgIF9fbGUzMiBwZXJtaXR0ZWQ7CjE0NDc0OiAgIF9fbGUzMiBpbmhlcml0YWJsZTsKMTQ0NzQ6
ICB9IGRhdGFbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgdmZzX25zX2NhcF9kYXRhIHsKMTQ0NzQ6ICBfX2xlMzIgbWFnaWNfZXRjOwox
NDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIF9fbGUzMiBwZXJtaXR0ZWQ7CjE0NDc0OiAgIF9fbGUz
MiBpbmhlcml0YWJsZTsKMTQ0NzQ6ICB9IGRhdGFbMl07CjE0NDc0OiAgX19sZTMyIHJvb3RpZDsK
MTQ0NzQ6IH07CjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIiAyCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBm
aWxlX2NhcHNfZW5hYmxlZDsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3Qga2VybmVsX2Nh
cF9zdHJ1Y3QgewoxNDQ3NDogIF9fdTMyIGNhcFsyXTsKMTQ0NzQ6IH0ga2VybmVsX2NhcF90Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjcHVfdmZzX2NhcF9kYXRhIHsKMTQ0NzQ6ICBf
X3UzMiBtYWdpY19ldGM7CjE0NDc0OiAga2VybmVsX2NhcF90IHBlcm1pdHRlZDsKMTQ0NzQ6ICBr
ZXJuZWxfY2FwX3QgaW5oZXJpdGFibGU7CjE0NDc0OiAga3VpZF90IHJvb3RpZDsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZp
bGU7CjE0NDc0OiBzdHJ1Y3QgaW5vZGU7CjE0NDc0OiBzdHJ1Y3QgZGVudHJ5OwoxNDQ3NDogc3Ry
dWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogc3RydWN0IHVzZXJfbmFtZXNwYWNlOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2VtcHR5X3NldDsKMTQ0NzQ6IGV4
dGVybiBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBfaW5pdF9lZmZfc2V0OwoxNDQ3NDogIyAxMTgg
Ii4vaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX2Nv
bWJpbmUoY29uc3Qga2VybmVsX2NhcF90IGEsCjE0NDc0OiAgICAgICAgICAgIGNvbnN0IGtlcm5l
bF9jYXBfdCBiKQoxNDQ3NDogewoxNDQ3NDogIGtlcm5lbF9jYXBfdCBkZXN0OwoxNDQ3NDogIGRv
IHsgdW5zaWduZWQgX19jYXBpOyBmb3IgKF9fY2FwaSA9IDA7IF9fY2FwaSA8IDI7ICsrX19jYXBp
KSB7IGRlc3QuY2FwW19fY2FwaV0gPSBhLmNhcFtfX2NhcGldIHwgYi5jYXBbX19jYXBpXTsgfSB9
IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1cm4gZGVzdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
a2VybmVsX2NhcF90IGNhcF9pbnRlcnNlY3QoY29uc3Qga2VybmVsX2NhcF90IGEsCjE0NDc0OiAg
ICAgICBjb25zdCBrZXJuZWxfY2FwX3QgYikKMTQ0NzQ6IHsKMTQ0NzQ6ICBrZXJuZWxfY2FwX3Qg
ZGVzdDsKMTQ0NzQ6ICBkbyB7IHVuc2lnbmVkIF9fY2FwaTsgZm9yIChfX2NhcGkgPSAwOyBfX2Nh
cGkgPCAyOyArK19fY2FwaSkgeyBkZXN0LmNhcFtfX2NhcGldID0gYS5jYXBbX19jYXBpXSAmIGIu
Y2FwW19fY2FwaV07IH0gfSB3aGlsZSAoMCk7CjE0NDc0OiAgcmV0dXJuIGRlc3Q7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfZHJvcChjb25zdCBrZXJuZWxfY2FwX3Qg
YSwKMTQ0NzQ6ICAgICAgICAgY29uc3Qga2VybmVsX2NhcF90IGRyb3ApCjE0NDc0OiB7CjE0NDc0
OiAga2VybmVsX2NhcF90IGRlc3Q7CjE0NDc0OiAgZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAo
X19jYXBpID0gMDsgX19jYXBpIDwgMjsgKytfX2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IGEu
Y2FwW19fY2FwaV0gJn4gZHJvcC5jYXBbX19jYXBpXTsgfSB9IHdoaWxlICgwKTsKMTQ0NzQ6ICBy
ZXR1cm4gZGVzdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga2VybmVsX2NhcF90IGNhcF9pbnZl
cnQoY29uc3Qga2VybmVsX2NhcF90IGMpCjE0NDc0OiB7CjE0NDc0OiAga2VybmVsX2NhcF90IGRl
c3Q7CjE0NDc0OiAgZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAoX19jYXBpID0gMDsgX19jYXBp
IDwgMjsgKytfX2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IH4gYy5jYXBbX19jYXBpXTsgfSB9
IHdoaWxlICgwKTsKMTQ0NzQ6ICByZXR1cm4gZGVzdDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBjYXBfaXNjbGVhcihjb25zdCBrZXJuZWxfY2FwX3QgYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBfX2NhcGk7CjE0NDc0OiAgZm9yIChfX2NhcGkgPSAwOyBfX2NhcGkgPCAyOyArK19f
Y2FwaSkgewoxNDQ3NDogICBpZiAoYS5jYXBbX19jYXBpXSAhPSAwKQoxNDQ3NDogICAgcmV0dXJu
IGZhbHNlOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MTY2ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjYXBfaXNzdWJz
ZXQoY29uc3Qga2VybmVsX2NhcF90IGEsIGNvbnN0IGtlcm5lbF9jYXBfdCBzZXQpCjE0NDc0OiB7
CjE0NDc0OiAga2VybmVsX2NhcF90IGRlc3Q7CjE0NDc0OiAgZGVzdCA9IGNhcF9kcm9wKGEsIHNl
dCk7CjE0NDc0OiAgcmV0dXJuIGNhcF9pc2NsZWFyKGRlc3QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkga2VybmVsX2NhcF90IGNhcF9kcm9wX2ZzX3NldChjb25zdCBr
ZXJuZWxfY2FwX3QgYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBf
ZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwgKCgy
NykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgxIDw8
ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCg5KSAmIDMxKSksICgo
MSA8PCAoKDMyKSAmIDMxKSkpIH0gfSk7CjE0NDc0OiAgcmV0dXJuIGNhcF9kcm9wKGEsIF9fY2Fw
X2ZzX3NldCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfcmFpc2Vf
ZnNfc2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLAoxNDQ3NDogICAgICAgICAgY29uc3Qga2VybmVs
X2NhcF90IHBlcm1pdHRlZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBrZXJuZWxfY2FwX3QgX19j
YXBfZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwg
KCgyNykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgx
IDw8ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCg5KSAmIDMxKSks
ICgoMSA8PCAoKDMyKSAmIDMxKSkpIH0gfSk7CjE0NDc0OiAgcmV0dXJuIGNhcF9jb21iaW5lKGEs
CjE0NDc0OiAgICAgICBjYXBfaW50ZXJzZWN0KHBlcm1pdHRlZCwgX19jYXBfZnNfc2V0KSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfZHJvcF9uZnNkX3NldChjb25z
dCBrZXJuZWxfY2FwX3QgYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBrZXJuZWxfY2FwX3QgX19j
YXBfZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwg
KCgyNykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgx
IDw8ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCgyNCkgJiAzMSkp
LCAoKDEgPDwgKCgzMikgJiAzMSkpKSB9IH0pOwoxNDQ3NDogIHJldHVybiBjYXBfZHJvcChhLCBf
X2NhcF9mc19zZXQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX3Jh
aXNlX25mc2Rfc2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLAoxNDQ3NDogICAgICAgICAgICBjb25z
dCBrZXJuZWxfY2FwX3QgcGVybWl0dGVkKQoxNDQ3NDogewoxNDQ3NDogIGNvbnN0IGtlcm5lbF9j
YXBfdCBfX2NhcF9uZnNkX3NldCA9ICgoa2VybmVsX2NhcF90KXt7ICgoMSA8PCAoKDApICYgMzEp
KSB8ICgxIDw8ICgoMjcpICYgMzEpKSB8ICgxIDw8ICgoMSkgJiAzMSkpIHwgKDEgPDwgKCgyKSAm
IDMxKSkgfCAoMSA8PCAoKDMpICYgMzEpKSB8ICgxIDw8ICgoNCkgJiAzMSkpKSB8ICgxIDw8ICgo
MjQpICYgMzEpKSwgKCgxIDw8ICgoMzIpICYgMzEpKSkgfSB9KTsKMTQ0NzQ6ICByZXR1cm4gY2Fw
X2NvbWJpbmUoYSwKMTQ0NzQ6ICAgICAgIGNhcF9pbnRlcnNlY3QocGVybWl0dGVkLCBfX2NhcF9u
ZnNkX3NldCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBib29sIGhh
c19jYXBhYmlsaXR5KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50IGNhcCk7CjE0NDc0OiBleHRl
cm4gYm9vbCBoYXNfbnNfY2FwYWJpbGl0eShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsCjE0NDc0OiAg
ICAgICAgICBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCBpbnQgY2FwKTsKMTQ0NzQ6IGV4dGVy
biBib29sIGhhc19jYXBhYmlsaXR5X25vYXVkaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0LCBpbnQg
Y2FwKTsKMTQ0NzQ6IGV4dGVybiBib29sIGhhc19uc19jYXBhYmlsaXR5X25vYXVkaXQoc3RydWN0
IHRhc2tfc3RydWN0ICp0LAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
bnMsIGludCBjYXApOwoxNDQ3NDogZXh0ZXJuIGJvb2wgY2FwYWJsZShpbnQgY2FwKTsKMTQ0NzQ6
IGV4dGVybiBib29sIG5zX2NhcGFibGUoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywgaW50IGNh
cCk7CjE0NDc0OiBleHRlcm4gYm9vbCBuc19jYXBhYmxlX25vYXVkaXQoc3RydWN0IHVzZXJfbmFt
ZXNwYWNlICpucywgaW50IGNhcCk7CjE0NDc0OiBleHRlcm4gYm9vbCBuc19jYXBhYmxlX3NldGlk
KHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIGludCBjYXApOwoxNDQ3NDogIyAyNTAgIi4vaW5j
bHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCjE0NDc0OiBleHRlcm4gYm9vbCBwcml2aWxlZ2VkX3dy
dF9pbm9kZV91aWRnaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywgY29uc3Qgc3RydWN0IGlu
b2RlICppbm9kZSk7CjE0NDc0OiBleHRlcm4gYm9vbCBjYXBhYmxlX3dydF9pbm9kZV91aWRnaWQo
Y29uc3Qgc3RydWN0IGlub2RlICppbm9kZSwgaW50IGNhcCk7CjE0NDc0OiBleHRlcm4gYm9vbCBm
aWxlX25zX2NhcGFibGUoY29uc3Qgc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB1c2VyX25hbWVz
cGFjZSAqbnMsIGludCBjYXApOwoxNDQ3NDogZXh0ZXJuIGJvb2wgcHRyYWNlcl9jYXBhYmxlKHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGdldF92ZnNfY2Fwc19mcm9tX2Rpc2soY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgY3B1X3Zmc19jYXBfZGF0YSAqY3B1X2NhcHMp
OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGNhcF9jb252ZXJ0X25zY2FwKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgdm9pZCAqKml2YWx1ZSwgc2l6ZV90IHNpemUpOwoxNDQ3NDogIyAyNSAiLi9p
bmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3NlbWFwaG9y
ZS5oIiAxCjE0NDc0OiAjIDE1ICIuL2luY2x1ZGUvbGludXgvc2VtYXBob3JlLmgiCjE0NDc0OiBz
dHJ1Y3Qgc2VtYXBob3JlIHsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBjb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHdhaXRfbGlzdDsKMTQ0
NzQ6IH07CjE0NDc0OiAjIDMxICIuL2luY2x1ZGUvbGludXgvc2VtYXBob3JlLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHNlbWFfaW5pdChzdHJ1Y3Qgc2VtYXBob3JlICpzZW0sIGludCB2YWwpCjE0NDc0OiB7CjE0
NDc0OiAgc3RhdGljIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBfX2tleTsKMTQ0NzQ6ICAqc2VtID0g
KHN0cnVjdCBzZW1hcGhvcmUpIHsgLmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJhd19sb2Nr
ID0geyB7IC52YWwgPSB7ICgwKSB9IH0gfSwgfSwgLmNvdW50ID0gdmFsLCAud2FpdF9saXN0ID0g
eyAmKCgqc2VtKS53YWl0X2xpc3QpLCAmKCgqc2VtKS53YWl0X2xpc3QpIH0sIH07CjE0NDc0OiAg
ZG8geyAodm9pZCkoInNlbWFwaG9yZS0+bG9jayIpOyAodm9pZCkoJl9fa2V5KTsgfSB3aGlsZSAo
MCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGRvd24oc3RydWN0IHNlbWFw
aG9yZSAqc2VtKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGRvd25faW50ZXJydXB0aWJsZShzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwox
NDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
ZG93bl9raWxsYWJsZShzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwoxNDQ3NDogZXh0ZXJuIGludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZG93bl90cnlsb2NrKHN0cnVj
dCBzZW1hcGhvcmUgKnNlbSk7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBkb3duX3RpbWVvdXQoc3RydWN0IHNlbWFwaG9yZSAqc2VtLCBs
b25nIGppZmZpZXMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgdXAoc3RydWN0IHNlbWFwaG9yZSAqc2Vt
KTsKMTQ0NzQ6ICMgMjYgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5j
bHVkZS9saW51eC9mY250bC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9mY250bC5oIiAxCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dl
bmVyYXRlZC91YXBpL2FzbS9mY250bC5oIiAxCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL2ZjbnRsLmgiIDEKMTQ0NzQ6ICMgMTU2ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2Vu
ZXJpYy9mY250bC5oIgoxNDQ3NDogc3RydWN0IGZfb3duZXJfZXggewoxNDQ3NDogIGludCB0eXBl
OwoxNDQ3NDogIF9fa2VybmVsX3BpZF90IHBpZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE5NiAiLi9p
bmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvZmNudGwuaCIKMTQ0NzQ6IHN0cnVjdCBmbG9jayB7CjE0
NDc0OiAgc2hvcnQgbF90eXBlOwoxNDQ3NDogIHNob3J0IGxfd2hlbmNlOwoxNDQ3NDogIF9fa2Vy
bmVsX29mZl90IGxfc3RhcnQ7CjE0NDc0OiAgX19rZXJuZWxfb2ZmX3QgbF9sZW47CjE0NDc0OiAg
X19rZXJuZWxfcGlkX3QgbF9waWQ7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmbG9j
azY0IHsKMTQ0NzQ6ICBzaG9ydCBsX3R5cGU7CjE0NDc0OiAgc2hvcnQgbF93aGVuY2U7CjE0NDc0
OiAgX19rZXJuZWxfbG9mZl90IGxfc3RhcnQ7CjE0NDc0OiAgX19rZXJuZWxfbG9mZl90IGxfbGVu
OwoxNDQ3NDogIF9fa2VybmVsX3BpZF90IGxfcGlkOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDog
IyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2ZjbnRsLmgiIDIKMTQ0
NzQ6ICMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIgMgoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9vcGVuYXQyLmgiIDEKMTQ0NzQ6ICMgMTkgIi4vaW5jbHVkZS91YXBp
L2xpbnV4L29wZW5hdDIuaCIKMTQ0NzQ6IHN0cnVjdCBvcGVuX2hvdyB7CjE0NDc0OiAgX191NjQg
ZmxhZ3M7CjE0NDc0OiAgX191NjQgbW9kZTsKMTQ0NzQ6ICBfX3U2NCByZXNvbHZlOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgNyAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIgMgoxNDQ3NDogIyA3
ICIuL2luY2x1ZGUvbGludXgvZmNudGwuaCIgMgoxNDQ3NDogIyAyNyAiLi9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmllbWFwLmgiIDEKMTQ0
NzQ6ICMgMTcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIgoxNDQ3NDogc3RydWN0IGZp
ZW1hcF9leHRlbnQgewoxNDQ3NDogIF9fdTY0IGZlX2xvZ2ljYWw7CjE0NDc0OiAKMTQ0NzQ6ICBf
X3U2NCBmZV9waHlzaWNhbDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IGZlX2xlbmd0aDsKMTQ0NzQ6
ICBfX3U2NCBmZV9yZXNlcnZlZDY0WzJdOwoxNDQ3NDogIF9fdTMyIGZlX2ZsYWdzOwoxNDQ3NDog
IF9fdTMyIGZlX3Jlc2VydmVkWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZp
ZW1hcCB7CjE0NDc0OiAgX191NjQgZm1fc3RhcnQ7CjE0NDc0OiAKMTQ0NzQ6ICBfX3U2NCBmbV9s
ZW5ndGg7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBmbV9mbGFnczsKMTQ0NzQ6ICBfX3UzMiBmbV9t
YXBwZWRfZXh0ZW50czsKMTQ0NzQ6ICBfX3UzMiBmbV9leHRlbnRfY291bnQ7CjE0NDc0OiAgX191
MzIgZm1fcmVzZXJ2ZWQ7CjE0NDc0OiAgc3RydWN0IGZpZW1hcF9leHRlbnQgZm1fZXh0ZW50c1sw
XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvbWlncmF0ZV9tb2Rl
LmgiIDEKMTQ0NzQ6ICMgMTUgIi4vaW5jbHVkZS9saW51eC9taWdyYXRlX21vZGUuaCIKMTQ0NzQ6
IGVudW0gbWlncmF0ZV9tb2RlIHsKMTQ0NzQ6ICBNSUdSQVRFX0FTWU5DLAoxNDQ3NDogIE1JR1JB
VEVfU1lOQ19MSUdIVCwKMTQ0NzQ6ICBNSUdSQVRFX1NZTkMsCjE0NDc0OiAgTUlHUkFURV9TWU5D
X05PX0NPUFksCjE0NDc0OiB9OwoxNDQ3NDogIyAzMiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcndzZW0u
aCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9yY3V3YWl0LmgiIDEKMTQ0NzQ6ICMgMTUg
Ii4vaW5jbHVkZS9saW51eC9yY3V3YWl0LmgiCjE0NDc0OiBzdHJ1Y3QgcmN1d2FpdCB7CjE0NDc0
OiAgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3V3YWl0X2luaXQoc3RydWN0IHJjdXdhaXQgKncp
CjE0NDc0OiB7CjE0NDc0OiAgdy0+dGFzayA9ICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCByY3V3YWl0X3dha2VfdXAoc3RydWN0IHJjdXdhaXQgKncpOwox
NDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJ3c2VtLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3JjdV9zeW5jLmgiIDEKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51
eC9yY3Vfc3luYy5oIgoxNDQ3NDogc3RydWN0IHJjdV9zeW5jIHsKMTQ0NzQ6ICBpbnQgZ3Bfc3Rh
dGU7CjE0NDc0OiAgaW50IGdwX2NvdW50OwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IGdwX3dh
aXQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCBjYl9oZWFkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMzIgIi4vaW5jbHVkZS9saW51eC9yY3Vfc3luYy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBy
Y3Vfc3luY19pc19pZGxlKHN0cnVjdCByY3Vfc3luYyAqcnNwKQoxNDQ3NDogewoxNDQ3NDogIGRv
IHsgfSB3aGlsZSAoMCkKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKMTQ0NzQ6ICByZXR1cm4gISh7IHVuaW9uIHsgdHlwZW9mKHJzcC0+Z3Bfc3RhdGUp
IF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYocnNw
LT5ncF9zdGF0ZSksIF9fdS5fX2MsIHNpemVvZihyc3AtPmdwX3N0YXRlKSk7IGVsc2UgX19yZWFk
X29uY2Vfc2l6ZV9ub2NoZWNrKCYocnNwLT5ncF9zdGF0ZSksIF9fdS5fX2MsIHNpemVvZihyc3At
PmdwX3N0YXRlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHJjdV9zeW5jX2luaXQoc3RydWN0IHJjdV9zeW5jICop
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZW50ZXJfc3RhcnQoc3RydWN0IHJjdV9zeW5j
ICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZW50ZXIoc3RydWN0IHJjdV9zeW5jICop
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZXhpdChzdHJ1Y3QgcmN1X3N5bmMgKik7CjE0
NDc0OiBleHRlcm4gdm9pZCByY3Vfc3luY19kdG9yKHN0cnVjdCByY3Vfc3luYyAqKTsKMTQ0NzQ6
ICMgMTAgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcndzZW0uaCIgMgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmN1X3N5
bmMgcnNzOwoxNDQ3NDogIHVuc2lnbmVkIGludCAqcmVhZF9jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3Qg
cndfc2VtYXBob3JlIHJ3X3NlbTsKMTQ0NzQ6ICBzdHJ1Y3QgcmN1d2FpdCB3cml0ZXI7CjE0NDc0
OiAgaW50IHJlYWRlcnNfYmxvY2s7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL2xp
bnV4L3BlcmNwdS1yd3NlbS5oIgoxNDQ3NDogZXh0ZXJuIGludCBfX3BlcmNwdV9kb3duX3JlYWQo
c3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKiwgaW50KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9f
cGVyY3B1X3VwX3JlYWQoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgcGVyY3B1X2Rvd25fcmVhZChzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFwaG9yZSAqc2Vt
KQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgZG8geyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0
NDc0OiAKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICMgNTEgIi4vaW5jbHVkZS9saW51
eC9wZXJjcHUtcndzZW0uaCIKMTQ0NzQ6ICAoeyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2soImFk
ZCIpOyBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqc2Vt
LT5yZWFkX2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdo
aWxlICgwKTsgc3dpdGNoKHNpemVvZigqc2VtLT5yZWFkX2NvdW50KSkgeyBjYXNlIDE6IGRvIHsg
dHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAt
MSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291
bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBj
YXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBh
c20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
YXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRk
cSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDog
InJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0t
PnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2Nv
bnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBp
ZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1w
X187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNiICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNt
ICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
KCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19U
X18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7
IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFr
OyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9f
OyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9
PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190
bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2Yo
KCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJp
bmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18p
KDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJy
ZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNl
IDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
KCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRl
ZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18g
PSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8g
KGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEp
OyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkg
eyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJk
ZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgi
YWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
IDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAo
KHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0g
d2hpbGUgKDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJl
YWs7IH0gfSB3aGlsZSAoMCk7IH0pOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFy
Y3Vfc3luY19pc19pZGxlKCZzZW0tPnJzcykpLCAwKSkKMTQ0NzQ6ICAgX19wZXJjcHVfZG93bl9y
ZWFkKHNlbSwgZmFsc2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHBlcmNwdV9kb3duX3JlYWRfdHJ5bG9jayhzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFw
aG9yZSAqc2VtKQoxNDQ3NDogewoxNDQ3NDogIGludCByZXQgPSAxOwoxNDQ3NDogCjE0NDc0OiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICAoeyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2soImFkZCIpOyBkbyB7IGRv
IHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqc2VtLT5yZWFkX2NvdW50
KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dp
dGNoKHNpemVvZigqc2VtLT5yZWFkX2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCko
MSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9p
ZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNl
IDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
KCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNt
ICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
KCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19U
X18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUg
KDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQp
KSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkg
JiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9f
VF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNo
IChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAo
KHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJp
bmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJy
ZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRv
IHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQg
cGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9
PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3Rt
cF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRf
Y291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9f
SURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgi
YWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
IDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6
ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpz
ZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGlu
X2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAw
OyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9f
dG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpzZW0tPnJlYWRfY291bnQpKSkgeyBjYXNlIDE6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
YXNtICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRk
dyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDog
InJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNx
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEp
KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2Jy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0gfSB3aGls
ZSAoMCk7IH0pOwoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFyY3Vfc3luY19pc19p
ZGxlKCZzZW0tPnJzcykpLCAwKSkKMTQ0NzQ6ICAgcmV0ID0gX19wZXJjcHVfZG93bl9yZWFkKHNl
bSwgdHJ1ZSk7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaWYgKHJldCkK
MTQ0NzQ6ICAgZG8geyB9IHdoaWxlICgwKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXQ7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3VwX3JlYWQoc3RydWN0IHBlcmNwdV9y
d19zZW1hcGhvcmUgKnNlbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygi
IjogOiA6Im1lbW9yeSIpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKHJjdV9zeW5jX2lzX2lkbGUoJnNlbS0+cnNzKSksIDEpKQoxNDQ3NDog
ICAoeyBfX3RoaXNfY3B1X3ByZWVtcHRfY2hlY2soImFkZCIpOyBkbyB7IGRvIHsgY29uc3Qgdm9p
ZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqc2VtLT5yZWFkX2NvdW50KSkgKyAwKSkoKHZv
aWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZigq
c2VtLT5yZWFkX2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJl
YWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0
YW50X3AoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSAmJiAoKC0odHlwZW9mKCpzZW0t
PnJlYWRfY291bnQpKSgxKSkgPT0gMSB8fCAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEp
KSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA6IDA7IGlm
ICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnNlbS0+cmVh
ZF9jb3VudCkpKDEpKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqc2VtLT5y
ZWFkX2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jYiAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
c2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgtKHR5cGVv
Zigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJp
IiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNh
c2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3Vu
dCkpKDEpKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jcSAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgtKHR5
cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSAmJiAoKC0o
dHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gMSB8fCAoLSh0eXBlb2YoKnNlbS0+cmVh
ZF9jb3VudCkpKDEpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkp
KDEpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBl
b2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6
ZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNt
ICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGIgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJxaSIgKChwYW9f
VF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDI6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2Ug
YXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkp
KTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNl
bS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18gPT0gMSkg
YXNtICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHEgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyZSIgKChw
YW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsg
dHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkp
KDEpKSAmJiAoKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gMSB8fCAoLSh0eXBl
b2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA9PSAtMSkpID8gKGludCkoLSh0eXBlb2YoKnNlbS0+
cmVhZF9jb3VudCkpKDEpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1w
X18gPSAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKTsgKHZvaWQpcGFvX3RtcF9fOyB9
IHN3aXRjaCAoc2l6ZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lE
X18gPT0gMSkgYXNtICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5y
ZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFk
ZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6
ICJxaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291
bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXyko
LSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjcSAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAo
ImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSA6ICJyZSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBj
YXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpzZW0tPnJlYWRfY291bnQpKSBwYW9fVF9fOyBj
b25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoLSh0eXBlb2YoKnNlbS0+
cmVhZF9jb3VudCkpKDEpKSAmJiAoKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0g
MSB8fCAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA9PSAtMSkpID8gKGludCkoLSh0
eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3Rt
cF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKTsgKHZvaWQp
cGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkpIHsgY2FzZSAx
OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgi
ZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBl
bHNlIGFzbSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJl
YWRfY291bnQpKSA6ICJxaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSko
MSkpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpz
ZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9m
KCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09
IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmki
ICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2Fz
ZSA4OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNt
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkp
OyBlbHNlIGFzbSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50
KSkoMSkpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUg
KDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0g
fSB3aGlsZSAoMCk7IH0pOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAgX19wZXJjcHVfdXBfcmVhZChz
ZW0pOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0
OiAKMTQ0NzQ6ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBwZXJjcHVfZG93bl93cml0ZShzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFwaG9yZSAqKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkIHBlcmNwdV91cF93cml0ZShzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFw
aG9yZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX3BlcmNwdV9pbml0X3J3c2VtKHN0
cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICosCjE0NDc0OiAgICAgY29uc3QgY2hhciAqLCBzdHJ1
Y3QgbG9ja19jbGFzc19rZXkgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHBlcmNwdV9m
cmVlX3J3c2VtKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICopOwoxNDQ3NDogIyAxMTggIi4v
aW5jbHVkZS9saW51eC9wZXJjcHUtcndzZW0uaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3J3c2VtX3Jl
bGVhc2Uoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSwKMTQ0NzQ6ICAgICAgYm9vbCBy
ZWFkLCB1bnNpZ25lZCBsb25nIGlwKQoxNDQ3NDogewoxNDQ3NDogIGRvIHsgfSB3aGlsZSAoMCk7
CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoIXJlYWQpCjE0NDc0OiAgIGF0b21pY19sb25nX3NldCgmc2Vt
LT5yd19zZW0ub3duZXIsICgtMkwpKTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHBlcmNwdV9yd3NlbV9hY3F1aXJlKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICpzZW0s
CjE0NDc0OiAgICAgIGJvb2wgcmVhZCwgdW5zaWduZWQgbG9uZyBpcCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBkbyB7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCFyZWFkKQoxNDQ3NDogICBh
dG9taWNfbG9uZ19zZXQoJnNlbS0+cndfc2VtLm93bmVyLCAobG9uZylnZXRfY3VycmVudCgpKTsK
MTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0
NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvZGVsYXllZF9jYWxsLmgiIDEKMTQ0NzQ6
ICMgMTAgIi4vaW5jbHVkZS9saW51eC9kZWxheWVkX2NhbGwuaCIKMTQ0NzQ6IHN0cnVjdCBkZWxh
eWVkX2NhbGwgewoxNDQ3NDogIHZvaWQgKCpmbikodm9pZCAqKTsKMTQ0NzQ6ICB2b2lkICphcmc7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNl
dF9kZWxheWVkX2NhbGwoc3RydWN0IGRlbGF5ZWRfY2FsbCAqY2FsbCwKMTQ0NzQ6ICAgdm9pZCAo
KmZuKSh2b2lkICopLCB2b2lkICphcmcpCjE0NDc0OiB7CjE0NDc0OiAgY2FsbC0+Zm4gPSBmbjsK
MTQ0NzQ6ICBjYWxsLT5hcmcgPSBhcmc7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZG9f
ZGVsYXllZF9jYWxsKHN0cnVjdCBkZWxheWVkX2NhbGwgKmNhbGwpCjE0NDc0OiB7CjE0NDc0OiAg
aWYgKGNhbGwtPmZuKQoxNDQ3NDogICBjYWxsLT5mbihjYWxsLT5hcmcpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGNsZWFyX2RlbGF5ZWRfY2FsbChzdHJ1Y3QgZGVsYXllZF9jYWxsICpj
YWxsKQoxNDQ3NDogewoxNDQ3NDogIGNhbGwtPmZuID0gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0
NDc0OiAjIDM3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgvdXVpZC5oIiAxCjE0NDc0OiAjIDExICIuL2luY2x1ZGUvbGludXgvdXVpZC5oIgoxNDQ3
NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC91dWlkLmgiIDEKMTQ0NzQ6ICMgMjMgIi4vaW5j
bHVkZS91YXBpL2xpbnV4L3V1aWQuaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6ICBf
X3U4IGJbMTZdOwoxNDQ3NDogfSBndWlkX3Q7CjE0NDc0OiAjIDM1ICIuL2luY2x1ZGUvdWFwaS9s
aW51eC91dWlkLmgiCjE0NDc0OiB0eXBlZGVmIGd1aWRfdCB1dWlkX2xlOwoxNDQ3NDogIyAxMiAi
Li9pbmNsdWRlL2xpbnV4L3V1aWQuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCB7CjE0NDc0OiAgX191OCBiWzE2XTsKMTQ0NzQ6IH0gdXVp
ZF90OwoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL2xpbnV4L3V1aWQuaCIKMTQ0NzQ6IGV4dGVybiBj
b25zdCBndWlkX3QgZ3VpZF9udWxsOwoxNDQ3NDogZXh0ZXJuIGNvbnN0IHV1aWRfdCB1dWlkX251
bGw7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ3VpZF9lcXVhbChjb25zdCBndWlkX3QgKnUxLCBjb25z
dCBndWlkX3QgKnUyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtZW1jbXAodTEsIHUyLCBzaXpl
b2YoZ3VpZF90KSkgPT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBndWlkX2NvcHko
Z3VpZF90ICpkc3QsIGNvbnN0IGd1aWRfdCAqc3JjKQoxNDQ3NDogewoxNDQ3NDogIG1lbWNweShk
c3QsIHNyYywgc2l6ZW9mKGd1aWRfdCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGd1
aWRfaXNfbnVsbChjb25zdCBndWlkX3QgKmd1aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGd1
aWRfZXF1YWwoZ3VpZCwgJmd1aWRfbnVsbCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
dXVpZF9lcXVhbChjb25zdCB1dWlkX3QgKnUxLCBjb25zdCB1dWlkX3QgKnUyKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBtZW1jbXAodTEsIHUyLCBzaXplb2YodXVpZF90KSkgPT0gMDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB1dWlkX2NvcHkodXVpZF90ICpkc3QsIGNvbnN0IHV1aWRf
dCAqc3JjKQoxNDQ3NDogewoxNDQ3NDogIG1lbWNweShkc3QsIHNyYywgc2l6ZW9mKHV1aWRfdCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHV1aWRfaXNfbnVsbChjb25zdCB1dWlkX3Qg
KnV1aWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHV1aWRfZXF1YWwodXVpZCwgJnV1aWRfbnVs
bCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2VuZXJhdGVfcmFuZG9tX3V1aWQodW5z
aWduZWQgY2hhciB1dWlkWzE2XSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGd1aWRfZ2Vu
KGd1aWRfdCAqdSk7CjE0NDc0OiBleHRlcm4gdm9pZCB1dWlkX2dlbih1dWlkX3QgKnUpOwoxNDQ3
NDogCjE0NDc0OiBib29sIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB1
dWlkX2lzX3ZhbGlkKGNvbnN0IGNoYXIgKnV1aWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY29u
c3QgdTggZ3VpZF9pbmRleFsxNl07CjE0NDc0OiBleHRlcm4gY29uc3QgdTggdXVpZF9pbmRleFsx
Nl07CjE0NDc0OiAKMTQ0NzQ6IGludCBndWlkX3BhcnNlKGNvbnN0IGNoYXIgKnV1aWQsIGd1aWRf
dCAqdSk7CjE0NDc0OiBpbnQgdXVpZF9wYXJzZShjb25zdCBjaGFyICp1dWlkLCB1dWlkX3QgKnUp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1dWlk
X2xlX2NtcChjb25zdCBndWlkX3QgdTEsIGNvbnN0IGd1aWRfdCB1MikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gbWVtY21wKCZ1MSwgJnUyLCBzaXplb2YoZ3VpZF90KSk7CjE0NDc0OiB9CjE0NDc0
OiAjIDM4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGlu
dXgvZXJyc2VxLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1MzIgZXJyc2VxX3Q7CjE0NDc0OiAKMTQ0NzQ6
IGVycnNlcV90IGVycnNlcV9zZXQoZXJyc2VxX3QgKmVzZXEsIGludCBlcnIpOwoxNDQ3NDogZXJy
c2VxX3QgZXJyc2VxX3NhbXBsZShlcnJzZXFfdCAqZXNlcSk7CjE0NDc0OiBpbnQgZXJyc2VxX2No
ZWNrKGVycnNlcV90ICplc2VxLCBlcnJzZXFfdCBzaW5jZSk7CjE0NDc0OiBpbnQgZXJyc2VxX2No
ZWNrX2FuZF9hZHZhbmNlKGVycnNlcV90ICplc2VxLCBlcnJzZXFfdCAqc2luY2UpOwoxNDQ3NDog
IyAzOSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4
L2lvcHJpby5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDEKMTQ0NzQ6ICMgMTAgIi4vaW5jbHVkZS9saW51eC9z
Y2hlZC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zY2hlZC5oIiAxCjE0NDc0
OiAjIDg5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zY2hlZC5oIgoxNDQ3NDogc3RydWN0IGNsb25l
X2FyZ3MgewoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBmbGFnczsK
MTQ0NzQ6ICBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgcGlkZmQ7CjE0NDc0OiAg
X191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIGNoaWxkX3RpZDsKMTQ0NzQ6ICBfX3U2
NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgcGFyZW50X3RpZDsKMTQ0NzQ6ICBfX3U2NCBf
X2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkgZXhpdF9zaWduYWw7CjE0NDc0OiAgX191NjQgX19h
dHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIHN0YWNrOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRl
X18oKGFsaWduZWQoOCkpKSBzdGFja19zaXplOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18o
KGFsaWduZWQoOCkpKSB0bHM7CjE0NDc0OiAgX191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4
KSkpIHNldF90aWQ7CjE0NDc0OiAgX191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIHNl
dF90aWRfc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDExICIuL2luY2x1ZGUvbGludXgvc2NoZWQu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9zZW0uaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAj
IDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2lwYy5oIiAxCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9yaGFzaHRhYmxlLXR5cGVzLmgiIDEKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51
eC9yaGFzaHRhYmxlLXR5cGVzLmgiCjE0NDc0OiBzdHJ1Y3Qgcmhhc2hfaGVhZCB7CjE0NDc0OiAg
c3RydWN0IHJoYXNoX2hlYWQgKm5leHQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
cmhsaXN0X2hlYWQgewoxNDQ3NDogIHN0cnVjdCByaGFzaF9oZWFkIHJoZWFkOwoxNDQ3NDogIHN0
cnVjdCByaGxpc3RfaGVhZCAqbmV4dDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBi
dWNrZXRfdGFibGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qgcmhhc2h0YWJsZV9jb21wYXJlX2FyZyB7CjE0NDc0OiAgc3RydWN0
IHJoYXNodGFibGUgKmh0OwoxNDQ3NDogIGNvbnN0IHZvaWQgKmtleTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgdTMyICgqcmh0X2hhc2hmbl90KShjb25zdCB2b2lkICpkYXRhLCB1
MzIgbGVuLCB1MzIgc2VlZCk7CjE0NDc0OiB0eXBlZGVmIHUzMiAoKnJodF9vYmpfaGFzaGZuX3Qp
KGNvbnN0IHZvaWQgKmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVkKTsKMTQ0NzQ6IHR5cGVkZWYgaW50
ICgqcmh0X29ial9jbXBmbl90KShzdHJ1Y3Qgcmhhc2h0YWJsZV9jb21wYXJlX2FyZyAqYXJnLAox
NDQ3NDogICAgICAgICAgIGNvbnN0IHZvaWQgKm9iaik7CjE0NDc0OiAjIDU2ICIuL2luY2x1ZGUv
bGludXgvcmhhc2h0YWJsZS10eXBlcy5oIgoxNDQ3NDogc3RydWN0IHJoYXNodGFibGVfcGFyYW1z
IHsKMTQ0NzQ6ICB1MTYgbmVsZW1faGludDsKMTQ0NzQ6ICB1MTYga2V5X2xlbjsKMTQ0NzQ6ICB1
MTYga2V5X29mZnNldDsKMTQ0NzQ6ICB1MTYgaGVhZF9vZmZzZXQ7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1heF9zaXplOwoxNDQ3NDogIHUxNiBtaW5fc2l6ZTsKMTQ0NzQ6ICBib29sIGF1dG9tYXRp
Y19zaHJpbmtpbmc7CjE0NDc0OiAgcmh0X2hhc2hmbl90IGhhc2hmbjsKMTQ0NzQ6ICByaHRfb2Jq
X2hhc2hmbl90IG9ial9oYXNoZm47CjE0NDc0OiAgcmh0X29ial9jbXBmbl90IG9ial9jbXBmbjsK
MTQ0NzQ6IH07CjE0NDc0OiAjIDgxICIuL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS10eXBlcy5o
IgoxNDQ3NDogc3RydWN0IHJoYXNodGFibGUgewoxNDQ3NDogIHN0cnVjdCBidWNrZXRfdGFibGUg
KnRibDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQga2V5X2xlbjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
bWF4X2VsZW1zOwoxNDQ3NDogIHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBwOwoxNDQ3NDogIGJv
b2wgcmhsaXN0OwoxNDQ3NDogIHN0cnVjdCB3b3JrX3N0cnVjdCBydW5fd29yazsKMTQ0NzQ6ICBz
dHJ1Y3QgbXV0ZXggbXV0ZXg7CjE0NDc0OiAgc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIGF0b21p
Y190IG5lbGVtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHJobHRhYmxlIHsKMTQ0NzQ6ICBzdHJ1Y3Qgcmhhc2h0YWJsZSBo
dDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qgcmhhc2h0YWJsZV93YWxrZXIgewoxNDQ3NDogIHN0cnVjdCBsaXN0
X2hlYWQgbGlzdDsKMTQ0NzQ6ICBzdHJ1Y3QgYnVja2V0X3RhYmxlICp0Ymw7CjE0NDc0OiB9Owox
NDQ3NDogIyAxMjAgIi4vaW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLXR5cGVzLmgiCjE0NDc0OiBz
dHJ1Y3Qgcmhhc2h0YWJsZV9pdGVyIHsKMTQ0NzQ6ICBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CjE0
NDc0OiAgc3RydWN0IHJoYXNoX2hlYWQgKnA7CjE0NDc0OiAgc3RydWN0IHJobGlzdF9oZWFkICps
aXN0OwoxNDQ3NDogIHN0cnVjdCByaGFzaHRhYmxlX3dhbGtlciB3YWxrZXI7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHNsb3Q7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNraXA7CjE0NDc0OiAgYm9vbCBl
bmRfb2ZfdGFibGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBpbnQgcmhhc2h0YWJsZV9pbml0
KHN0cnVjdCByaGFzaHRhYmxlICpodCwKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0cnVjdCByaGFzaHRh
YmxlX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IGludCByaGx0YWJsZV9pbml0KHN0cnVjdCByaGx0
YWJsZSAqaGx0LAoxNDQ3NDogICAgIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyAqcGFy
YW1zKTsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L2lwYy5oIiAyCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L2lwYy5oIiAxCjE0NDc0OiAjIDEwICIuL2luY2x1ZGUvdWFwaS9s
aW51eC9pcGMuaCIKMTQ0NzQ6IHN0cnVjdCBpcGNfcGVybQoxNDQ3NDogewoxNDQ3NDogIF9fa2Vy
bmVsX2tleV90IGtleTsKMTQ0NzQ6ICBfX2tlcm5lbF91aWRfdCB1aWQ7CjE0NDc0OiAgX19rZXJu
ZWxfZ2lkX3QgZ2lkOwoxNDQ3NDogIF9fa2VybmVsX3VpZF90IGN1aWQ7CjE0NDc0OiAgX19rZXJu
ZWxfZ2lkX3QgY2dpZDsKMTQ0NzQ6ICBfX2tlcm5lbF9tb2RlX3QgbW9kZTsKMTQ0NzQ6ICB1bnNp
Z25lZCBzaG9ydCBzZXE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9pcGNidWYuaCIgMQoxNDQ3NDogIyAx
ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9pcGNidWYuaCIgMQoxNDQ3NDogIyAyMiAiLi9p
bmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaXBjYnVmLmgiCjE0NDc0OiBzdHJ1Y3QgaXBjNjRfcGVy
bSB7CjE0NDc0OiAgX19rZXJuZWxfa2V5X3Qga2V5OwoxNDQ3NDogIF9fa2VybmVsX3VpZDMyX3Qg
dWlkOwoxNDQ3NDogIF9fa2VybmVsX2dpZDMyX3QgZ2lkOwoxNDQ3NDogIF9fa2VybmVsX3VpZDMy
X3QgY3VpZDsKMTQ0NzQ6ICBfX2tlcm5lbF9naWQzMl90IGNnaWQ7CjE0NDc0OiAgX19rZXJuZWxf
bW9kZV90IG1vZGU7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIF9fcGFkMVs0IC0gc2l6
ZW9mKF9fa2VybmVsX21vZGVfdCldOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHNlcTsKMTQ0NzQ6
ICB1bnNpZ25lZCBzaG9ydCBfX3BhZDI7CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBfX3VudXNl
ZDE7CjE0NDc0OiAgX19rZXJuZWxfdWxvbmdfdCBfX3VudXNlZDI7CjE0NDc0OiB9OwoxNDQ3NDog
IyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lwY2J1Zi5oIiAyCjE0
NDc0OiAjIDIzICIuL2luY2x1ZGUvdWFwaS9saW51eC9pcGMuaCIgMgoxNDQ3NDogIyA1OCAiLi9p
bmNsdWRlL3VhcGkvbGludXgvaXBjLmgiCjE0NDc0OiBzdHJ1Y3QgaXBjX2tsdWRnZSB7CjE0NDc0
OiAgc3RydWN0IG1zZ2J1ZiAqbXNncDsKMTQ0NzQ6ICBsb25nIG1zZ3R5cDsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9pcGMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGtlcm5faXBjX3Blcm0gewoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsK
MTQ0NzQ6ICBib29sIGRlbGV0ZWQ7CjE0NDc0OiAgaW50IGlkOwoxNDQ3NDogIGtleV90IGtleTsK
MTQ0NzQ6ICBrdWlkX3QgdWlkOwoxNDQ3NDogIGtnaWRfdCBnaWQ7CjE0NDc0OiAga3VpZF90IGN1
aWQ7CjE0NDc0OiAga2dpZF90IGNnaWQ7CjE0NDc0OiAgdW1vZGVfdCBtb2RlOwoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgc2VxOwoxNDQ3NDogIHZvaWQgKnNlY3VyaXR5OwoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IHJoYXNoX2hlYWQga2h0bm9kZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjYWxsYmFj
a19oZWFkIHJjdTsKMTQ0NzQ6ICByZWZjb3VudF90IHJlZmNvdW50OwoxNDQ3NDogfSBfX2F0dHJp
YnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpIF9fYXR0cmlidXRlX18oKF9fZGVzaWdu
YXRlZF9pbml0X18pKTsKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2VtLmgiIDIK
MTQ0NzQ6ICMgMjUgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIgoxNDQ3NDogc3RydWN0IHNl
bWlkX2RzIHsKMTQ0NzQ6ICBzdHJ1Y3QgaXBjX3Blcm0gc2VtX3Blcm07CjE0NDc0OiAgX19rZXJu
ZWxfb2xkX3RpbWVfdCBzZW1fb3RpbWU7CjE0NDc0OiAgX19rZXJuZWxfb2xkX3RpbWVfdCBzZW1f
Y3RpbWU7CjE0NDc0OiAgc3RydWN0IHNlbSAqc2VtX2Jhc2U7CjE0NDc0OiAgc3RydWN0IHNlbV9x
dWV1ZSAqc2VtX3BlbmRpbmc7CjE0NDc0OiAgc3RydWN0IHNlbV9xdWV1ZSAqKnNlbV9wZW5kaW5n
X2xhc3Q7CjE0NDc0OiAgc3RydWN0IHNlbV91bmRvICp1bmRvOwoxNDQ3NDogIHVuc2lnbmVkIHNo
b3J0IHNlbV9uc2VtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2VtYnVmLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkv
YXNtL2lwY2J1Zi5oIiAxCjE0NDc0OiAjIDYgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9z
ZW1idWYuaCIgMgoxNDQ3NDogIyAxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NlbWJ1
Zi5oIgoxNDQ3NDogc3RydWN0IHNlbWlkNjRfZHMgewoxNDQ3NDogIHN0cnVjdCBpcGM2NF9wZXJt
IHNlbV9wZXJtOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBzZW1fb3RpbWU7CjE0NDc0OiAgX19rZXJuZWxfdWxv
bmdfdCBfX3VudXNlZDE7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHNlbV9jdGltZTsKMTQ0NzQ6
ICBfX2tlcm5lbF91bG9uZ190IF9fdW51c2VkMjsKMTQ0NzQ6IAoxNDQ3NDogIF9fa2VybmVsX3Vs
b25nX3Qgc2VtX25zZW1zOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3QgX191bnVzZWQzOwoxNDQ3
NDogIF9fa2VybmVsX3Vsb25nX3QgX191bnVzZWQ0OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzggIi4v
aW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHNlbWJ1ZiB7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgc2VtX251bTsKMTQ0NzQ6ICBzaG9ydCBz
ZW1fb3A7CjE0NDc0OiAgc2hvcnQgc2VtX2ZsZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdW5pb24gc2VtdW4gewoxNDQ3NDogIGludCB2YWw7CjE0NDc0OiAgc3RydWN0IHNlbWlk
X2RzICpidWY7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgKmFycmF5OwoxNDQ3NDogIHN0cnVjdCBz
ZW1pbmZvICpfX2J1ZjsKMTQ0NzQ6ICB2b2lkICpfX3BhZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBzZW1pbmZvIHsKMTQ0NzQ6ICBpbnQgc2VtbWFwOwoxNDQ3NDogIGludCBzZW1t
bmk7CjE0NDc0OiAgaW50IHNlbW1uczsKMTQ0NzQ6ICBpbnQgc2VtbW51OwoxNDQ3NDogIGludCBz
ZW1tc2w7CjE0NDc0OiAgaW50IHNlbW9wbTsKMTQ0NzQ6ICBpbnQgc2VtdW1lOwoxNDQ3NDogIGlu
dCBzZW11c3o7CjE0NDc0OiAgaW50IHNlbXZteDsKMTQ0NzQ6ICBpbnQgc2VtYWVtOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L3NlbS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCB0YXNrX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBzZW1fdW5kb19saXN0OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN5c3Zfc2VtIHsKMTQ0NzQ6ICBzdHJ1Y3Qgc2Vt
X3VuZG9fbGlzdCAqdW5kb19saXN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGlu
dCBjb3B5X3NlbXVuZG8odW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncywgc3RydWN0IHRhc2tfc3Ry
dWN0ICp0c2spOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZXhpdF9zZW0oc3RydWN0IHRhc2tfc3RydWN0
ICp0c2spOwoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMg
MSAiLi9pbmNsdWRlL2xpbnV4L3NobS5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NobS5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2h1Z2V0bGJfZW5jb2RlLmgiIDEKMTQ0
NzQ6ICMgOCAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2htLmgiIDIKMTQ0NzQ6ICMgMjggIi4vaW5j
bHVkZS91YXBpL2xpbnV4L3NobS5oIgoxNDQ3NDogc3RydWN0IHNobWlkX2RzIHsKMTQ0NzQ6ICBz
dHJ1Y3QgaXBjX3Blcm0gc2htX3Blcm07CjE0NDc0OiAgaW50IHNobV9zZWdzejsKMTQ0NzQ6ICBf
X2tlcm5lbF9vbGRfdGltZV90IHNobV9hdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF9vbGRfdGltZV90
IHNobV9kdGltZTsKMTQ0NzQ6ICBfX2tlcm5lbF9vbGRfdGltZV90IHNobV9jdGltZTsKMTQ0NzQ6
ICBfX2tlcm5lbF9pcGNfcGlkX3Qgc2htX2NwaWQ7CjE0NDc0OiAgX19rZXJuZWxfaXBjX3BpZF90
IHNobV9scGlkOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IHNobV9uYXR0Y2g7CjE0NDc0OiAgdW5z
aWduZWQgc2hvcnQgc2htX3VudXNlZDsKMTQ0NzQ6ICB2b2lkICpzaG1fdW51c2VkMjsKMTQ0NzQ6
ICB2b2lkICpzaG1fdW51c2VkMzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAx
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2htYnVmLmgiIDEKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1n
ZW5lcmljL3NobWJ1Zi5oIiAxCjE0NDc0OiAjIDI1ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9zaG1idWYuaCIKMTQ0NzQ6IHN0cnVjdCBzaG1pZDY0X2RzIHsKMTQ0NzQ6ICBzdHJ1Y3QgaXBj
NjRfcGVybSBzaG1fcGVybTsKMTQ0NzQ6ICBzaXplX3Qgc2htX3NlZ3N6OwoxNDQ3NDogCjE0NDc0
OiAgbG9uZyBzaG1fYXRpbWU7CjE0NDc0OiAgbG9uZyBzaG1fZHRpbWU7CjE0NDc0OiAgbG9uZyBz
aG1fY3RpbWU7CjE0NDc0OiAjIDQwICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaG1idWYu
aCIKMTQ0NzQ6ICBfX2tlcm5lbF9waWRfdCBzaG1fY3BpZDsKMTQ0NzQ6ICBfX2tlcm5lbF9waWRf
dCBzaG1fbHBpZDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNobV9uYXR0Y2g7CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBfX3VudXNlZDQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDU7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2htaW5mbzY0IHsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIHNobW1heDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNobW1pbjsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNobW1uaTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNobXNlZzsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIHNobWFsbDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51c2VkMTsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51c2VkMjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51
c2VkMzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIF9fdW51c2VkNDsKMTQ0NzQ6IH07CjE0NDc0OiAj
IDcgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaG1idWYuaCIgMgoxNDQ3NDogIyA0NCAi
Li9pbmNsdWRlL3VhcGkvbGludXgvc2htLmgiIDIKMTQ0NzQ6ICMgOTMgIi4vaW5jbHVkZS91YXBp
L2xpbnV4L3NobS5oIgoxNDQ3NDogc3RydWN0IHNobWluZm8gewoxNDQ3NDogIGludCBzaG1tYXg7
CjE0NDc0OiAgaW50IHNobW1pbjsKMTQ0NzQ6ICBpbnQgc2htbW5pOwoxNDQ3NDogIGludCBzaG1z
ZWc7CjE0NDc0OiAgaW50IHNobWFsbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBz
aG1faW5mbyB7CjE0NDc0OiAgaW50IHVzZWRfaWRzOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3Qg
c2htX3RvdDsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHNobV9yc3M7CjE0NDc0OiAgX19rZXJu
ZWxfdWxvbmdfdCBzaG1fc3dwOwoxNDQ3NDogIF9fa2VybmVsX3Vsb25nX3Qgc3dhcF9hdHRlbXB0
czsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHN3YXBfc3VjY2Vzc2VzOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgOCAiLi9pbmNsdWRlL2xpbnV4L3NobS5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vc2htcGFyYW0uaCIgMQoxNDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvc2ht
LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHN5c3Zfc2htIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHNobV9jbGlzdDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGxvbmcgZG9fc2htYXQoaW50IHNobWlkLCBjaGFyICpzaG1h
ZGRyLCBpbnQgc2htZmxnLCB1bnNpZ25lZCBsb25nICphZGRyLAoxNDQ3NDogICAgICAgIHVuc2ln
bmVkIGxvbmcgc2htbGJhKTsKMTQ0NzQ6IGJvb2wgaXNfZmlsZV9zaG1faHVnZXBhZ2VzKHN0cnVj
dCBmaWxlICpmaWxlKTsKMTQ0NzQ6IHZvaWQgZXhpdF9zaG0oc3RydWN0IHRhc2tfc3RydWN0ICp0
YXNrKTsKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9saW51eC9rY292LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgiIDEKMTQ0NzQ6ICMgMTEg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2tjb3YuaCIKMTQ0NzQ6IHN0cnVjdCBrY292X3JlbW90ZV9h
cmcgewoxNDQ3NDogIF9fdTMyIHRyYWNlX21vZGU7CjE0NDc0OiAgX191MzIgYXJlYV9zaXplOwox
NDQ3NDogIF9fdTMyIG51bV9oYW5kbGVzOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFs
aWduZWQoOCkpKSBjb21tb25faGFuZGxlOwoxNDQ3NDogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFs
aWduZWQoOCkpKSBoYW5kbGVzWzBdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2tjb3YuaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgva2Nvdi5oIgoxNDQ3NDogIEtDT1ZfVFJBQ0VfUEMgPSAwLAoxNDQ3NDogCjE0NDc0
OiAgS0NPVl9UUkFDRV9DTVAgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2tjb3YuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fdTY0IGtjb3ZfcmVtb3RlX2hhbmRsZShfX3U2NCBz
dWJzeXMsIF9fdTY0IGluc3QpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHN1YnN5cyAmIH4oMHhmZnVs
bCA8PCA1NikgfHwgaW5zdCAmIH4oMHhmZmZmZmZmZnVsbCkpCjE0NDc0OiAgIHJldHVybiAwOwox
NDQ3NDogIHJldHVybiBzdWJzeXMgfCBpbnN0OwoxNDQ3NDogfQoxNDQ3NDogIyA2ICIuL2luY2x1
ZGUvbGludXgva2Nvdi5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0YXNrX3N0cnVjdDsKMTQ0
NzQ6ICMgNTcgIi4vaW5jbHVkZS9saW51eC9rY292LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtjb3ZfdGFza19p
bml0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl90YXNrX2V4aXQo
c3RydWN0IHRhc2tfc3RydWN0ICp0KSB7fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrY292X3ByZXBhcmVfc3dpdGNo
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9maW5pc2hfc3dpdGNo
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9yZW1vdGVfc3RhcnQo
dTY0IGhhbmRsZSkge30KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9yZW1vdGVfc3RvcCh2b2lkKSB7fQoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdTY0IGtjb3ZfY29tbW9uX2hhbmRsZSh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAw
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdGFydF9jb21tb24odTY0IGlkKSB7
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdGFydF91c2IodTY0IGlkKSB7fQoxNDQ3NDogIyAx
OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvcGxpc3QuaCIgMQoxNDQ3NDogIyA3OSAiLi9pbmNsdWRlL2xpbnV4L3BsaXN0Lmgi
CjE0NDc0OiBzdHJ1Y3QgcGxpc3RfaGVhZCB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBub2Rl
X2xpc3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGxpc3Rfbm9kZSB7CjE0NDc0
OiAgaW50IHByaW87CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBwcmlvX2xpc3Q7CjE0NDc0OiAg
c3RydWN0IGxpc3RfaGVhZCBub2RlX2xpc3Q7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjEgIi4vaW5j
bHVkZS9saW51eC9wbGlzdC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAoxNDQ3NDogcGxpc3RfaGVhZF9pbml0KHN0
cnVjdCBwbGlzdF9oZWFkICpoZWFkKQoxNDQ3NDogewoxNDQ3NDogIElOSVRfTElTVF9IRUFEKCZo
ZWFkLT5ub2RlX2xpc3QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbGlzdF9ub2RlX2luaXQoc3RydWN0IHBsaXN0
X25vZGUgKm5vZGUsIGludCBwcmlvKQoxNDQ3NDogewoxNDQ3NDogIG5vZGUtPnByaW8gPSBwcmlv
OwoxNDQ3NDogIElOSVRfTElTVF9IRUFEKCZub2RlLT5wcmlvX2xpc3QpOwoxNDQ3NDogIElOSVRf
TElTVF9IRUFEKCZub2RlLT5ub2RlX2xpc3QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBwbGlzdF9hZGQoc3RydWN0IHBsaXN0X25vZGUgKm5vZGUsIHN0cnVjdCBwbGlzdF9o
ZWFkICpoZWFkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBsaXN0X2RlbChzdHJ1Y3QgcGxpc3Rfbm9k
ZSAqbm9kZSwgc3RydWN0IHBsaXN0X2hlYWQgKmhlYWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBwbGlzdF9yZXF1ZXVlKHN0cnVjdCBwbGlzdF9ub2RlICpub2RlLCBzdHJ1Y3QgcGxpc3Rf
aGVhZCAqaGVhZCk7CjE0NDc0OiAjIDIxMCAiLi9pbmNsdWRlL2xpbnV4L3BsaXN0LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgcGxpc3RfaGVhZF9lbXB0eShjb25zdCBzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbGlzdF9lbXB0eSgmaGVhZC0+bm9kZV9saXN0KTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGxp
c3Rfbm9kZV9lbXB0eShjb25zdCBzdHJ1Y3QgcGxpc3Rfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gbGlzdF9lbXB0eSgmbm9kZS0+bm9kZV9saXN0KTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjgwICIuL2luY2x1ZGUvbGludXgvcGxpc3QuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwbGlzdF9ub2Rl
ICpwbGlzdF9maXJzdChjb25zdCBzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoaGVhZC0+bm9kZV9saXN0Lm5l
eHQpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI4Mih2b2lkKSBfX2F0
dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJf
b2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCoo
aGVhZC0+bm9kZV9saXN0Lm5leHQpKSwgdHlwZW9mKCgoc3RydWN0IHBsaXN0X25vZGUgKikwKS0+
bm9kZV9saXN0KSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooaGVh
ZC0+bm9kZV9saXN0Lm5leHQpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8yODIoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IHBsaXN0X25vZGUgKikoX19tcHRyIC0gX19i
dWlsdGluX29mZnNldG9mKHN0cnVjdCBwbGlzdF9ub2RlLCBub2RlX2xpc3QpKSk7IH0pCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgcGxpc3Rfbm9kZSAqcGxpc3RfbGFzdChjb25zdCBzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoaGVhZC0+
bm9kZV9saXN0LnByZXYpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI5
NCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBp
biBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxl
X3AodHlwZW9mKCooaGVhZC0+bm9kZV9saXN0LnByZXYpKSwgdHlwZW9mKCgoc3RydWN0IHBsaXN0
X25vZGUgKikwKS0+bm9kZV9saXN0KSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ao
dHlwZW9mKCooaGVhZC0+bm9kZV9saXN0LnByZXYpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBp
bGV0aW1lX2Fzc2VydF8yOTQoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IHBsaXN0X25vZGUgKiko
X19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwbGlzdF9ub2RlLCBub2RlX2xpc3Qp
KSk7IH0pCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDog
fQoxNDQ3NDogIyAyMCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2xpbnV4L2hydGltZXIuaCIgMQoxNDQ3NDogIyAxNSAiLi9pbmNsdWRlL2xpbnV4L2hy
dGltZXIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2hydGltZXJfZGVmcy5oIiAxCjE0
NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXJx
dWV1ZS5oIiAxCjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC90aW1lcnF1ZXVlLmgiCjE0NDc0
OiBzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlIHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSBub2RlOwox
NDQ3NDogIGt0aW1lX3QgZXhwaXJlczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0
aW1lcnF1ZXVlX2hlYWQgewoxNDQ3NDogIHN0cnVjdCByYl9yb290X2NhY2hlZCByYl9yb290Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCB0aW1lcnF1ZXVlX2Fk
ZChzdHJ1Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgc3RydWN0IHRpbWVy
cXVldWVfbm9kZSAqbm9kZSk7CjE0NDc0OiBleHRlcm4gYm9vbCB0aW1lcnF1ZXVlX2RlbChzdHJ1
Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgc3RydWN0IHRpbWVycXVldWVf
bm9kZSAqbm9kZSk7CjE0NDc0OiBleHRlcm4gc3RydWN0IHRpbWVycXVldWVfbm9kZSAqdGltZXJx
dWV1ZV9pdGVyYXRlX25leHQoCjE0NDc0OiAgICAgICBzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpu
b2RlKTsKMTQ0NzQ6ICMgMzMgIi4vaW5jbHVkZS9saW51eC90aW1lcnF1ZXVlLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQox
NDQ3NDogc3RydWN0IHRpbWVycXVldWVfbm9kZSAqdGltZXJxdWV1ZV9nZXRuZXh0KHN0cnVjdCB0
aW1lcnF1ZXVlX2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHJiX25vZGUgKmxl
ZnRtb3N0ID0gKCZoZWFkLT5yYl9yb290KS0+cmJfbGVmdG1vc3Q7CjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikobGVmdG1vc3QpOyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzM4KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3Jf
XygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISgh
X19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihsZWZ0bW9zdCkpLCB0eXBlb2Yo
KChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICopMCktPm5vZGUpKSAmJiAhX19idWlsdGluX3R5cGVz
X2NvbXBhdGlibGVfcCh0eXBlb2YoKihsZWZ0bW9zdCkpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29t
cGlsZXRpbWVfYXNzZXJ0XzM4KCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCB0aW1lcnF1ZXVlX25v
ZGUgKikoX19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCB0aW1lcnF1ZXVlX25vZGUs
IG5vZGUpKSk7IH0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRpbWVycXVldWVfaW5p
dChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpub2RlKQoxNDQ3NDogewoxNDQ3NDogICgoJm5vZGUt
Pm5vZGUpLT5fX3JiX3BhcmVudF9jb2xvciA9ICh1bnNpZ25lZCBsb25nKSgmbm9kZS0+bm9kZSkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRpbWVycXVldWVfbm9kZV9xdWV1ZWQoc3Ry
dWN0IHRpbWVycXVldWVfbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gISgoJm5v
ZGUtPm5vZGUpLT5fX3JiX3BhcmVudF9jb2xvciA9PSAodW5zaWduZWQgbG9uZykoJm5vZGUtPm5v
ZGUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lcnF1ZXVlX25vZGVfZXhwaXJl
cyhzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBu
b2RlLT5leHBpcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRpbWVycXVldWVfaW5p
dF9oZWFkKHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhlYWQpCjE0NDc0OiB7CjE0NDc0OiAgaGVh
ZC0+cmJfcm9vdCA9IChzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQpIHsgeygodm9pZCAqKTApLCB9LCAo
KHZvaWQgKikwKSB9OwoxNDQ3NDogfQoxNDQ3NDogIyAyMiAiLi9pbmNsdWRlL2xpbnV4L2hydGlt
ZXIuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaHJ0aW1lcl9jbG9ja19iYXNlOwoxNDQ3NDog
c3RydWN0IGhydGltZXJfY3B1X2Jhc2U7CjE0NDc0OiAjIDM4ICIuL2luY2x1ZGUvbGludXgvaHJ0
aW1lci5oIgoxNDQ3NDogZW51bSBocnRpbWVyX21vZGUgewoxNDQ3NDogIEhSVElNRVJfTU9ERV9B
QlMgPSAweDAwLAoxNDQ3NDogIEhSVElNRVJfTU9ERV9SRUwgPSAweDAxLAoxNDQ3NDogIEhSVElN
RVJfTU9ERV9QSU5ORUQgPSAweDAyLAoxNDQ3NDogIEhSVElNRVJfTU9ERV9TT0ZUID0gMHgwNCwK
MTQ0NzQ6ICBIUlRJTUVSX01PREVfSEFSRCA9IDB4MDgsCjE0NDc0OiAKMTQ0NzQ6ICBIUlRJTUVS
X01PREVfQUJTX1BJTk5FRCA9IEhSVElNRVJfTU9ERV9BQlMgfCBIUlRJTUVSX01PREVfUElOTkVE
LAoxNDQ3NDogIEhSVElNRVJfTU9ERV9SRUxfUElOTkVEID0gSFJUSU1FUl9NT0RFX1JFTCB8IEhS
VElNRVJfTU9ERV9QSU5ORUQsCjE0NDc0OiAKMTQ0NzQ6ICBIUlRJTUVSX01PREVfQUJTX1NPRlQg
PSBIUlRJTUVSX01PREVfQUJTIHwgSFJUSU1FUl9NT0RFX1NPRlQsCjE0NDc0OiAgSFJUSU1FUl9N
T0RFX1JFTF9TT0ZUID0gSFJUSU1FUl9NT0RFX1JFTCB8IEhSVElNRVJfTU9ERV9TT0ZULAoxNDQ3
NDogCjE0NDc0OiAgSFJUSU1FUl9NT0RFX0FCU19QSU5ORURfU09GVCA9IEhSVElNRVJfTU9ERV9B
QlNfUElOTkVEIHwgSFJUSU1FUl9NT0RFX1NPRlQsCjE0NDc0OiAgSFJUSU1FUl9NT0RFX1JFTF9Q
SU5ORURfU09GVCA9IEhSVElNRVJfTU9ERV9SRUxfUElOTkVEIHwgSFJUSU1FUl9NT0RFX1NPRlQs
CjE0NDc0OiAKMTQ0NzQ6ICBIUlRJTUVSX01PREVfQUJTX0hBUkQgPSBIUlRJTUVSX01PREVfQUJT
IHwgSFJUSU1FUl9NT0RFX0hBUkQsCjE0NDc0OiAgSFJUSU1FUl9NT0RFX1JFTF9IQVJEID0gSFJU
SU1FUl9NT0RFX1JFTCB8IEhSVElNRVJfTU9ERV9IQVJELAoxNDQ3NDogCjE0NDc0OiAgSFJUSU1F
Ul9NT0RFX0FCU19QSU5ORURfSEFSRCA9IEhSVElNRVJfTU9ERV9BQlNfUElOTkVEIHwgSFJUSU1F
Ul9NT0RFX0hBUkQsCjE0NDc0OiAgSFJUSU1FUl9NT0RFX1JFTF9QSU5ORURfSEFSRCA9IEhSVElN
RVJfTU9ERV9SRUxfUElOTkVEIHwgSFJUSU1FUl9NT0RFX0hBUkQsCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGhydGltZXJfcmVzdGFydCB7CjE0
NDc0OiAgSFJUSU1FUl9OT1JFU1RBUlQsCjE0NDc0OiAgSFJUSU1FUl9SRVNUQVJULAoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMTE3ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIgoxNDQ3NDogc3RydWN0
IGhydGltZXIgewoxNDQ3NDogIHN0cnVjdCB0aW1lcnF1ZXVlX25vZGUgbm9kZTsKMTQ0NzQ6ICBr
dGltZV90IF9zb2Z0ZXhwaXJlczsKMTQ0NzQ6ICBlbnVtIGhydGltZXJfcmVzdGFydCAoKmZ1bmN0
aW9uKShzdHJ1Y3QgaHJ0aW1lciAqKTsKMTQ0NzQ6ICBzdHJ1Y3QgaHJ0aW1lcl9jbG9ja19iYXNl
ICpiYXNlOwoxNDQ3NDogIHU4IHN0YXRlOwoxNDQ3NDogIHU4IGlzX3JlbDsKMTQ0NzQ6ICB1OCBp
c19zb2Z0OwoxNDQ3NDogIHU4IGlzX2hhcmQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMzUgIi4vaW5j
bHVkZS9saW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdHJ1Y3QgaHJ0aW1lcl9zbGVlcGVyIHsKMTQ0
NzQ6ICBzdHJ1Y3QgaHJ0aW1lciB0aW1lcjsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh
c2s7CjE0NDc0OiB9OwoxNDQ3NDogIyAxNTggIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCjE0
NDc0OiBzdHJ1Y3QgaHJ0aW1lcl9jbG9ja19iYXNlIHsKMTQ0NzQ6ICBzdHJ1Y3QgaHJ0aW1lcl9j
cHVfYmFzZSAqY3B1X2Jhc2U7CjE0NDc0OiAgdW5zaWduZWQgaW50IGluZGV4OwoxNDQ3NDogIGNs
b2NraWRfdCBjbG9ja2lkOwoxNDQ3NDogIHNlcWNvdW50X3Qgc2VxOwoxNDQ3NDogIHN0cnVjdCBo
cnRpbWVyICpydW5uaW5nOwoxNDQ3NDogIHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgYWN0aXZlOwox
NDQ3NDogIGt0aW1lX3QgKCpnZXRfdGltZSkodm9pZCk7CjE0NDc0OiAga3RpbWVfdCBvZmZzZXQ7
CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CjE0NDc0
OiAKMTQ0NzQ6IGVudW0gaHJ0aW1lcl9iYXNlX3R5cGUgewoxNDQ3NDogIEhSVElNRVJfQkFTRV9N
T05PVE9OSUMsCjE0NDc0OiAgSFJUSU1FUl9CQVNFX1JFQUxUSU1FLAoxNDQ3NDogIEhSVElNRVJf
QkFTRV9CT09UVElNRSwKMTQ0NzQ6ICBIUlRJTUVSX0JBU0VfVEFJLAoxNDQ3NDogIEhSVElNRVJf
QkFTRV9NT05PVE9OSUNfU09GVCwKMTQ0NzQ6ICBIUlRJTUVSX0JBU0VfUkVBTFRJTUVfU09GVCwK
MTQ0NzQ6ICBIUlRJTUVSX0JBU0VfQk9PVFRJTUVfU09GVCwKMTQ0NzQ6ICBIUlRJTUVSX0JBU0Vf
VEFJX1NPRlQsCjE0NDc0OiAgSFJUSU1FUl9NQVhfQ0xPQ0tfQkFTRVMsCjE0NDc0OiB9OwoxNDQ3
NDogIyAyMTMgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdHJ1Y3QgaHJ0aW1l
cl9jcHVfYmFzZSB7CjE0NDc0OiAgcmF3X3NwaW5sb2NrX3QgbG9jazsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY3B1OwoxNDQ3NDogIHVuc2lnbmVkIGludCBhY3RpdmVfYmFzZXM7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGNsb2NrX3dhc19zZXRfc2VxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBocmVzX2Fj
dGl2ZSA6IDEsCjE0NDc0OiAgICAgIGluX2hydGlycSA6IDEsCjE0NDc0OiAgICAgIGhhbmdfZGV0
ZWN0ZWQgOiAxLAoxNDQ3NDogICAgICBzb2Z0aXJxX2FjdGl2YXRlZCA6IDE7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgbnJfZXZlbnRzOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IG5yX3Jl
dHJpZXM7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgbnJfaGFuZ3M7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1heF9oYW5nX3RpbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIGt0aW1lX3QgZXhwaXJlc19uZXh0OwoxNDQ3NDogIHN0cnVjdCBocnRpbWVyICpu
ZXh0X3RpbWVyOwoxNDQ3NDogIGt0aW1lX3Qgc29mdGlycV9leHBpcmVzX25leHQ7CjE0NDc0OiAg
c3RydWN0IGhydGltZXIgKnNvZnRpcnFfbmV4dF90aW1lcjsKMTQ0NzQ6ICBzdHJ1Y3QgaHJ0aW1l
cl9jbG9ja19iYXNlIGNsb2NrX2Jhc2VbSFJUSU1FUl9NQVhfQ0xPQ0tfQkFTRVNdOwoxNDQ3NDog
fSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpOwoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGhydGltZXJfc2V0X2V4cGlyZXMoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90
IHRpbWUpCjE0NDc0OiB7CjE0NDc0OiAgdGltZXItPm5vZGUuZXhwaXJlcyA9IHRpbWU7CjE0NDc0
OiAgdGltZXItPl9zb2Z0ZXhwaXJlcyA9IHRpbWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaHJ0aW1lcl9zZXRfZXhwaXJlc19yYW5nZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIGt0aW1l
X3QgdGltZSwga3RpbWVfdCBkZWx0YSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBp
cmVzID0gdGltZTsKMTQ0NzQ6ICB0aW1lci0+bm9kZS5leHBpcmVzID0ga3RpbWVfYWRkX3NhZmUo
dGltZSwgZGVsdGEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfc2V0X2V4
cGlyZXNfcmFuZ2VfbnMoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbWUsIHU2NCBk
ZWx0YSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBpcmVzID0gdGltZTsKMTQ0NzQ6
ICB0aW1lci0+bm9kZS5leHBpcmVzID0ga3RpbWVfYWRkX3NhZmUodGltZSwgbnNfdG9fa3RpbWUo
ZGVsdGEpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX3NldF9leHBpcmVz
X3R2NjQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBzNjQgdHY2NCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0
aW1lci0+bm9kZS5leHBpcmVzID0gdHY2NDsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBpcmVzID0g
dHY2NDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX2FkZF9leHBpcmVzKHN0
cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCB0aW1lKQoxNDQ3NDogewoxNDQ3NDogIHRpbWVy
LT5ub2RlLmV4cGlyZXMgPSBrdGltZV9hZGRfc2FmZSh0aW1lci0+bm9kZS5leHBpcmVzLCB0aW1l
KTsKMTQ0NzQ6ICB0aW1lci0+X3NvZnRleHBpcmVzID0ga3RpbWVfYWRkX3NhZmUodGltZXItPl9z
b2Z0ZXhwaXJlcywgdGltZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9h
ZGRfZXhwaXJlc19ucyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIHU2NCBucykKMTQ0NzQ6IHsKMTQ0
NzQ6ICB0aW1lci0+bm9kZS5leHBpcmVzID0gKCh0aW1lci0+bm9kZS5leHBpcmVzKSArIChucykp
OwoxNDQ3NDogIHRpbWVyLT5fc29mdGV4cGlyZXMgPSAoKHRpbWVyLT5fc29mdGV4cGlyZXMpICsg
KG5zKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgaHJ0aW1lcl9nZXRfZXhwaXJl
cyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHRp
bWVyLT5ub2RlLmV4cGlyZXM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgaHJ0aW1l
cl9nZXRfc29mdGV4cGlyZXMoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiB0aW1lci0+X3NvZnRleHBpcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzNjQgaHJ0aW1lcl9nZXRfZXhwaXJlc190djY0KGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1l
cikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGltZXItPm5vZGUuZXhwaXJlczsKMTQ0NzQ6IH0K
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHM2NCBocnRpbWVyX2dldF9zb2Z0ZXhwaXJlc190djY0KGNvbnN0IHN0cnVjdCBocnRp
bWVyICp0aW1lcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGltZXItPl9zb2Z0ZXhwaXJlczsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGhydGltZXJfZ2V0X2V4cGlyZXNfbnMoY29uc3Qg
c3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrdGltZV90b19u
cyh0aW1lci0+bm9kZS5leHBpcmVzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBo
cnRpbWVyX2V4cGlyZXNfcmVtYWluaW5nKGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1lcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh0aW1lci0+bm9kZS5leHBpcmVzKSAtICh0aW1lci0+YmFz
ZS0+Z2V0X3RpbWUoKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGhydGltZXJf
Y2JfZ2V0X3RpbWUoc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biB0aW1lci0+YmFzZS0+Z2V0X3RpbWUoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGhy
dGltZXJfaXNfaHJlc19hY3RpdmUoc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiAxID8KMTQ0NzQ6ICAgdGltZXItPmJhc2UtPmNwdV9iYXNlLT5ocmVzX2FjdGl2
ZSA6IDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsb2NrX2V2ZW50
X2RldmljZTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbnRlcnJ1cHQoc3Ry
dWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQg
Y2xvY2tfd2FzX3NldF9kZWxheWVkKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdW5zaWdu
ZWQgaW50IGhydGltZXJfcmVzb2x1dGlvbjsKMTQ0NzQ6ICMgMzMyICIuL2luY2x1ZGUvbGludXgv
aHJ0aW1lci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdAoxNDQ3NDogX19ocnRpbWVyX2V4cGlyZXNfcmVtYWlu
aW5nX2FkanVzdGVkKGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCBub3cpCjE0
NDc0OiB7CjE0NDc0OiAga3RpbWVfdCByZW0gPSAoKHRpbWVyLT5ub2RlLmV4cGlyZXMpIC0gKG5v
dykpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpZiAo
MCAmJiB0aW1lci0+aXNfcmVsKQoxNDQ3NDogICByZW0gLT0gaHJ0aW1lcl9yZXNvbHV0aW9uOwox
NDQ3NDogIHJldHVybiByZW07CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QKMTQ0NzQ6
IGhydGltZXJfZXhwaXJlc19yZW1haW5pbmdfYWRqdXN0ZWQoY29uc3Qgc3RydWN0IGhydGltZXIg
KnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2hydGltZXJfZXhwaXJlc19yZW1haW5p
bmdfYWRqdXN0ZWQodGltZXIsCjE0NDc0OiAgICAgICAgICAgdGltZXItPmJhc2UtPmdldF90aW1l
KCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBjbG9ja193YXNfc2V0KHZv
aWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCB0aW1lcmZkX2Nsb2NrX3dhc19zZXQodm9p
ZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBocnRpbWVyc19y
ZXN1bWUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9u
KCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5cGVvZl9fKHN0cnVjdCB0aWNrX2RldmljZSkgdGlj
a19jcHVfZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGhydGltZXJfY2FuY2VsX3dhaXRfcnVubmluZyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCjE0NDc0
OiB7CjE0NDc0OiAgY3B1X3JlbGF4KCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbml0KHN0cnVjdCBo
cnRpbWVyICp0aW1lciwgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLAoxNDQ3NDogICAgIGVudW0gaHJ0
aW1lcl9tb2RlIG1vZGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbml0X3NsZWVwZXIo
c3RydWN0IGhydGltZXJfc2xlZXBlciAqc2wsIGNsb2NraWRfdCBjbG9ja19pZCwKMTQ0NzQ6ICAg
ICAgZW51bSBocnRpbWVyX21vZGUgbW9kZSk7CjE0NDc0OiAjIDM4OSAiLi9pbmNsdWRlL2xpbnV4
L2hydGltZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9pbml0X29uX3N0YWNrKHN0cnVjdCBocnRp
bWVyICp0aW1lciwKMTQ0NzQ6ICAgICAgIGNsb2NraWRfdCB3aGljaF9jbG9jaywKMTQ0NzQ6ICAg
ICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpCjE0NDc0OiB7CjE0NDc0OiAgaHJ0aW1lcl9pbml0
KHRpbWVyLCB3aGljaF9jbG9jaywgbW9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aHJ0aW1lcl9pbml0X3NsZWVwZXJfb25fc3RhY2soc3RydWN0IGhydGltZXJfc2xlZXBlciAqc2ws
CjE0NDc0OiAgICAgICAgY2xvY2tpZF90IGNsb2NrX2lkLAoxNDQ3NDogICAgICAgIGVudW0gaHJ0
aW1lcl9tb2RlIG1vZGUpCjE0NDc0OiB7CjE0NDc0OiAgaHJ0aW1lcl9pbml0X3NsZWVwZXIoc2ws
IGNsb2NrX2lkLCBtb2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0cm95X2hy
dGltZXJfb25fc3RhY2soc3RydWN0IGhydGltZXIgKnRpbWVyKSB7IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGhydGltZXJfc3RhcnRfcmFuZ2VfbnMoc3RydWN0
IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbSwKMTQ0NzQ6ICAgICAgICB1NjQgcmFuZ2VfbnMs
IGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoxNDQ3NDogIyA0MTggIi4vaW5jbHVkZS9s
aW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfc3RhcnQoc3RydWN0IGhydGltZXIg
KnRpbWVyLCBrdGltZV90IHRpbSwKMTQ0NzQ6ICAgICAgY29uc3QgZW51bSBocnRpbWVyX21vZGUg
bW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBocnRpbWVyX3N0YXJ0X3JhbmdlX25zKHRpbWVyLCB0aW0s
IDAsIG1vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGhydGltZXJfY2Fu
Y2VsKHN0cnVjdCBocnRpbWVyICp0aW1lcik7CjE0NDc0OiBleHRlcm4gaW50IGhydGltZXJfdHJ5
X3RvX2NhbmNlbChzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhy
dGltZXJfc3RhcnRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCjE0NDc0OiAgICAgICBl
bnVtIGhydGltZXJfbW9kZSBtb2RlKQoxNDQ3NDogewoxNDQ3NDogIHU2NCBkZWx0YTsKMTQ0NzQ6
ICBrdGltZV90IHNvZnQsIGhhcmQ7CjE0NDc0OiAgc29mdCA9IGhydGltZXJfZ2V0X3NvZnRleHBp
cmVzKHRpbWVyKTsKMTQ0NzQ6ICBoYXJkID0gaHJ0aW1lcl9nZXRfZXhwaXJlcyh0aW1lcik7CjE0
NDc0OiAgZGVsdGEgPSBrdGltZV90b19ucygoKGhhcmQpIC0gKHNvZnQpKSk7CjE0NDc0OiAgaHJ0
aW1lcl9zdGFydF9yYW5nZV9ucyh0aW1lciwgc29mdCwgZGVsdGEsIG1vZGUpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiB2b2lkIGhydGltZXJfc2xlZXBlcl9zdGFydF9leHBpcmVzKHN0cnVjdCBo
cnRpbWVyX3NsZWVwZXIgKnNsLAoxNDQ3NDogICAgICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUp
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfcmVzdGFydChzdHJ1Y3QgaHJ0aW1lciAqdGlt
ZXIpCjE0NDc0OiB7CjE0NDc0OiAgaHJ0aW1lcl9zdGFydF9leHBpcmVzKHRpbWVyLCBIUlRJTUVS
X01PREVfQUJTKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4ga3RpbWVf
dCBfX2hydGltZXJfZ2V0X3JlbWFpbmluZyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIGJv
b2wgYWRqdXN0KTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBocnRpbWVyX2dldF9yZW1haW5pbmco
Y29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2hy
dGltZXJfZ2V0X3JlbWFpbmluZyh0aW1lciwgZmFsc2UpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gdTY0IGhydGltZXJfZ2V0X25leHRfZXZlbnQodm9pZCk7CjE0NDc0OiBleHRlcm4g
dTY0IGhydGltZXJfbmV4dF9ldmVudF93aXRob3V0KGNvbnN0IHN0cnVjdCBocnRpbWVyICpleGNs
dWRlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgaHJ0aW1lcl9hY3RpdmUoY29uc3Qgc3Ry
dWN0IGhydGltZXIgKnRpbWVyKTsKMTQ0NzQ6ICMgNDY3ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1l
ci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBocnRpbWVyX2lzX3F1ZXVlZChzdHJ1Y3QgaHJ0aW1lciAqdGltZXIp
CjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gISEoKHsgdW5pb24geyB0eXBlb2YodGlt
ZXItPnN0YXRlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vf
c2l6ZSgmKHRpbWVyLT5zdGF0ZSksIF9fdS5fX2MsIHNpemVvZih0aW1lci0+c3RhdGUpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJih0aW1lci0+c3RhdGUpLCBfX3UuX19jLCBzaXpl
b2YodGltZXItPnN0YXRlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSkgJiAweDAx
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgaHJ0aW1lcl9jYWxsYmFja19ydW5uaW5nKHN0cnVjdCBocnRpbWVyICp0aW1lcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGltZXItPmJhc2UtPnJ1bm5pbmcgPT0gdGltZXI7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHU2NAoxNDQ3NDogaHJ0aW1lcl9mb3J3
YXJkKHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCBub3csIGt0aW1lX3QgaW50ZXJ2YWwp
OwoxNDQ3NDogIyA1MDIgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgaHJ0
aW1lcl9mb3J3YXJkX25vdyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCjE0NDc0OiAgICAgICAgICAg
a3RpbWVfdCBpbnRlcnZhbCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gaHJ0aW1lcl9mb3J3YXJk
KHRpbWVyLCB0aW1lci0+YmFzZS0+Z2V0X3RpbWUoKSwgaW50ZXJ2YWwpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBuYW5vc2xlZXBfY29weW91dChz
dHJ1Y3QgcmVzdGFydF9ibG9jayAqLCBzdHJ1Y3QgdGltZXNwZWM2NCAqKTsKMTQ0NzQ6IGV4dGVy
biBsb25nIGhydGltZXJfbmFub3NsZWVwKGt0aW1lX3QgcnF0cCwgY29uc3QgZW51bSBocnRpbWVy
X21vZGUgbW9kZSwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IGNsb2NraWRfdCBjbG9ja2lkKTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZHVsZV9ocnRpbWVvdXRfcmFuZ2Uoa3RpbWVfdCAq
ZXhwaXJlcywgdTY0IGRlbHRhLAoxNDQ3NDogICAgICAgICBjb25zdCBlbnVtIGhydGltZXJfbW9k
ZSBtb2RlKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2NoZWR1bGVfaHJ0aW1lb3V0X3JhbmdlX2Nsb2Nr
KGt0aW1lX3QgKmV4cGlyZXMsCjE0NDc0OiAgICAgICAgdTY0IGRlbHRhLAoxNDQ3NDogICAgICAg
IGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUsCjE0NDc0OiAgICAgICAgY2xvY2tpZF90IGNs
b2NrX2lkKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2NoZWR1bGVfaHJ0aW1lb3V0KGt0aW1lX3QgKmV4
cGlyZXMsIGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiB2b2lkIGhydGltZXJfcnVuX3F1ZXVlcyh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4
dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBocnRpbWVyc19pbml0KHZvaWQpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIHN5c3JxX3RpbWVyX2xpc3Rfc2hvdyh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGhydGltZXJzX3ByZXBhcmVfY3B1KHVuc2lnbmVkIGludCBj
cHUpOwoxNDQ3NDogCjE0NDc0OiBpbnQgaHJ0aW1lcnNfZGVhZF9jcHUodW5zaWduZWQgaW50IGNw
dSk7CjE0NDc0OiAjIDIxICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvc2VjY29tcC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2VjY29tcC5oIiAxCjE0NDc0OiAj
IDU5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zZWNjb21wLmgiCjE0NDc0OiBzdHJ1Y3Qgc2VjY29t
cF9kYXRhIHsKMTQ0NzQ6ICBpbnQgbnI7CjE0NDc0OiAgX191MzIgYXJjaDsKMTQ0NzQ6ICBfX3U2
NCBpbnN0cnVjdGlvbl9wb2ludGVyOwoxNDQ3NDogIF9fdTY0IGFyZ3NbNl07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2VjY29tcF9ub3RpZl9zaXplcyB7CjE0NDc0OiAgX191MTYg
c2VjY29tcF9ub3RpZjsKMTQ0NzQ6ICBfX3UxNiBzZWNjb21wX25vdGlmX3Jlc3A7CjE0NDc0OiAg
X191MTYgc2VjY29tcF9kYXRhOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNlY2Nv
bXBfbm90aWYgewoxNDQ3NDogIF9fdTY0IGlkOwoxNDQ3NDogIF9fdTMyIHBpZDsKMTQ0NzQ6ICBf
X3UzMiBmbGFnczsKMTQ0NzQ6ICBzdHJ1Y3Qgc2VjY29tcF9kYXRhIGRhdGE7CjE0NDc0OiB9Owox
NDQ3NDogIyAxMDggIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlY2NvbXAuaCIKMTQ0NzQ6IHN0cnVj
dCBzZWNjb21wX25vdGlmX3Jlc3AgewoxNDQ3NDogIF9fdTY0IGlkOwoxNDQ3NDogIF9fczY0IHZh
bDsKMTQ0NzQ6ICBfX3MzMiBlcnJvcjsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiIDIKMTQ0NzQ6ICMgMTUgIi4vaW5j
bHVkZS9saW51eC9zZWNjb21wLmgiCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c2VjY29tcC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91bmlzdGQuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS91bmlzdGQu
aCIgMQoxNDQ3NDogIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAyCjE0NDc0
OiAjIDE4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIgoxNDQ3NDogIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3VuaXN0ZF82NC5oIiAxCjE0NDc0OiAj
IDE5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAyCjE0NDc0OiAjIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvYXNtL3VuaXN0ZF82NF94MzIuaCIgMQoxNDQ3NDogIyAy
MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91bmlzdGQuaCIgMgoxNDQ3NDogIyA2ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NlY2NvbXAuaCIgMgoxNDQ3NDogIyAxOSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zZWNjb21wLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9zZWNj
b21wLmgiIDEKMTQ0NzQ6ICMgMTEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9zZWNjb21wLmgiCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3VuaXN0ZC5oIiAxCjE0NDc0OiAjIDEyICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvc2VjY29tcC5oIiAyCjE0NDc0OiAjIDIwICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3NlY2NvbXAuaCIgMgoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3Nl
Y2NvbXAuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2VjY29tcF9maWx0ZXI7CjE0NDc0OiAj
IDI5ICIuL2luY2x1ZGUvbGludXgvc2VjY29tcC5oIgoxNDQ3NDogc3RydWN0IHNlY2NvbXAgewox
NDQ3NDogIGludCBtb2RlOwoxNDQ3NDogIHN0cnVjdCBzZWNjb21wX2ZpbHRlciAqZmlsdGVyOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fc2VjdXJlX2NvbXB1
dGluZyhjb25zdCBzdHJ1Y3Qgc2VjY29tcF9kYXRhICpzZCk7CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc2VjdXJlX2Nv
bXB1dGluZyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHRl
c3RfdGlfdGhyZWFkX2ZsYWcoKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilnZXRfY3VycmVudCgpKSwg
OCkpLCAwKSkKMTQ0NzQ6ICAgcmV0dXJuIF9fc2VjdXJlX2NvbXB1dGluZygoKHZvaWQgKikwKSk7
CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBsb25nIHByY3RsX2dldF9zZWNjb21wKHZvaWQpOwoxNDQ3NDogZXh0
ZXJuIGxvbmcgcHJjdGxfc2V0X3NlY2NvbXAodW5zaWduZWQgbG9uZywgdm9pZCAqKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IHNlY2NvbXBfbW9kZShzdHJ1Y3Qgc2VjY29tcCAqcykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gcy0+bW9kZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODQgIi4vaW5jbHVkZS9saW51
eC9zZWNjb21wLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBwdXRfc2VjY29tcF9maWx0ZXIoc3RydWN0
IHRhc2tfc3RydWN0ICp0c2spOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZ2V0X3NlY2NvbXBfZmlsdGVy
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKMTQ0NzQ6ICMgOTggIi4vaW5jbHVkZS9saW51eC9z
ZWNjb21wLmgiCjE0NDc0OiBleHRlcm4gbG9uZyBzZWNjb21wX2dldF9maWx0ZXIoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrLAoxNDQ3NDogICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmlsdGVyX29m
Ziwgdm9pZCAqZGF0YSk7CjE0NDc0OiBleHRlcm4gbG9uZyBzZWNjb21wX2dldF9tZXRhZGF0YShz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssCjE0NDc0OiAgICAgIHVuc2lnbmVkIGxvbmcgZmlsdGVy
X29mZiwgdm9pZCAqZGF0YSk7CjE0NDc0OiAjIDIyICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvcmVz
b3VyY2UuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L3Jlc291cmNlLmgiIDEKMTQ0NzQ6ICMgMjQgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L3Jlc291cmNlLmgiCjE0NDc0OiBzdHJ1Y3QgcnVzYWdlIHsKMTQ0NzQ6ICBzdHJ1
Y3QgX19rZXJuZWxfb2xkX3RpbWV2YWwgcnVfdXRpbWU7CjE0NDc0OiAgc3RydWN0IF9fa2VybmVs
X29sZF90aW1ldmFsIHJ1X3N0aW1lOwoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBydV9tYXhyc3M7
CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHJ1X2l4cnNzOwoxNDQ3NDogIF9fa2VybmVsX2xvbmdf
dCBydV9pZHJzczsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfaXNyc3M7CjE0NDc0OiAgX19r
ZXJuZWxfbG9uZ190IHJ1X21pbmZsdDsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfbWFqZmx0
OwoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBydV9uc3dhcDsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25n
X3QgcnVfaW5ibG9jazsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfb3VibG9jazsKMTQ0NzQ6
ICBfX2tlcm5lbF9sb25nX3QgcnVfbXNnc25kOwoxNDQ3NDogIF9fa2VybmVsX2xvbmdfdCBydV9t
c2dyY3Y7CjE0NDc0OiAgX19rZXJuZWxfbG9uZ190IHJ1X25zaWduYWxzOwoxNDQ3NDogIF9fa2Vy
bmVsX2xvbmdfdCBydV9udmNzdzsKMTQ0NzQ6ICBfX2tlcm5lbF9sb25nX3QgcnVfbml2Y3N3Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJsaW1pdCB7CjE0NDc0OiAgX19rZXJuZWxf
dWxvbmdfdCBybGltX2N1cjsKMTQ0NzQ6ICBfX2tlcm5lbF91bG9uZ190IHJsaW1fbWF4OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBybGltaXQ2NCB7CjE0
NDc0OiAgX191NjQgcmxpbV9jdXI7CjE0NDc0OiAgX191NjQgcmxpbV9tYXg7CjE0NDc0OiB9Owox
NDQ3NDogIyA3OCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcmVzb3VyY2UuaCIKMTQ0NzQ6ICMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9yZXNvdXJjZS5oIiAxCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9yZXNvdXJjZS5oIiAxCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMv
cmVzb3VyY2UuaCIgMQoxNDQ3NDogIyA2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcmVzb3VyY2Uu
aCIgMgoxNDQ3NDogIyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3Jl
c291cmNlLmgiIDIKMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Jlc291cmNlLmgi
IDIKMTQ0NzQ6ICMgNiAiLi9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZ2V0cnVz
YWdlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHdobywgc3RydWN0IHJ1c2FnZSAqcnUpOwox
NDQ3NDogaW50IGRvX3BybGltaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVuc2lnbmVkIGlu
dCByZXNvdXJjZSwKMTQ0NzQ6ICAgc3RydWN0IHJsaW1pdCAqbmV3X3JsaW0sIHN0cnVjdCBybGlt
aXQgKm9sZF9ybGltKTsKMTQ0NzQ6ICMgMjYgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9sYXRlbmN5dG9wLmgiIDEKMTQ0NzQ6ICMgMTQgIi4v
aW5jbHVkZS9saW51eC9sYXRlbmN5dG9wLmgiCjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgbGF0ZW5jeV9yZWNvcmQgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYmFja3RyYWNlWzEyXTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY291bnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0aW1lOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbWF4OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgbGF0ZW5jeXRvcF9lbmFibGVkOwoxNDQ3NDogdm9pZCBfX2Fj
Y291bnRfc2NoZWR1bGVyX2xhdGVuY3koc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBpbnQgdXNl
Y3MsIGludCBpbnRlcik7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBhY2NvdW50X3NjaGVkdWxlcl9sYXRl
bmN5KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IHVzZWNzLCBpbnQgaW50ZXIpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEobGF0ZW5jeXRvcF9lbmFibGVkKSwg
MCkpCjE0NDc0OiAgIF9fYWNjb3VudF9zY2hlZHVsZXJfbGF0ZW5jeSh0YXNrLCB1c2VjcywgaW50
ZXIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIGNsZWFyX3Rza19sYXRlbmN5X3RyYWNp
bmcoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzeXNj
dGxfbGF0ZW5jeXRvcChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoxNDQ3NDog
ICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CjE0NDc0OiAjIDI3
ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgv
c2NoZWQvcHJpby5oIiAxCjE0NDc0OiAjIDQ4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvcHJpby5o
IgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgbG9uZyBuaWNlX3RvX3JsaW1pdChsb25nIG5pY2UpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuICgxOSAtIG5pY2UgKyAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgbG9uZyBybGltaXRfdG9fbmljZShsb25nIHByaW8pCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICgxOSAtIHByaW8gKyAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjggIi4vaW5j
bHVkZS9saW51eC9zY2hlZC5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC90
eXBlcy5oIiAxCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvdHlwZXMuaCIKMTQ0
NzQ6IHN0cnVjdCB0YXNrX2NwdXRpbWUgewoxNDQ3NDogIHU2NCBzdGltZTsKMTQ0NzQ6ICB1NjQg
dXRpbWU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIHN1bV9leGVjX3J1bnRpbWU7CjE0NDc0
OiB9OwoxNDQ3NDogIyAyOSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L3NpZ25hbF90eXBlcy5oIiAxCjE0NDc0OiAjIDEwICIuL2luY2x1ZGUv
bGludXgvc2lnbmFsX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Np
Z25hbC5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMQoxNDQ3NDogIyAyMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zaWduYWwuaCIKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2ln
c2V0X3Q7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIHNpZ1soNjQgLyA2NCldOwoxNDQ3NDogfSBzaWdzZXRfdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc2lnc2V0X3QgY29t
cGF0X3NpZ3NldF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiIDEKMTQ0NzQ6ICMgMTEgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9zaWduYWwuaCIKMTQ0NzQ6IHN0cnVjdCBzaWdpbmZvOwoxNDQ3NDog
IyA5NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ25hbC5oIgoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaWduYWwtZGVmcy5oIiAxCjE0NDc0OiAjIDE4ICIu
L2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaWduYWwtZGVmcy5oIgoxNDQ3NDogdHlwZWRlZiB2
b2lkIF9fc2lnbmFsZm5fdChpbnQpOwoxNDQ3NDogdHlwZWRlZiBfX3NpZ25hbGZuX3QgKl9fc2ln
aGFuZGxlcl90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHZvaWQgX19yZXN0b3JlZm5fdCh2b2lk
KTsKMTQ0NzQ6IHR5cGVkZWYgX19yZXN0b3JlZm5fdCAqX19zaWdyZXN0b3JlX3Q7CjE0NDc0OiAj
IDk1ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiIDIKMTQ0NzQ6ICMgMTI4
ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiCjE0NDc0OiB0eXBlZGVmIHN0
cnVjdCBzaWdhbHRzdGFjayB7CjE0NDc0OiAgdm9pZCAqc3Nfc3A7CjE0NDc0OiAgaW50IHNzX2Zs
YWdzOwoxNDQ3NDogIHNpemVfdCBzc19zaXplOwoxNDQ3NDogfSBzdGFja190OwoxNDQ3NDogIyAz
NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMgoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBkb19zaWduYWwoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwoxNDQ3NDogIyA2ICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9zaWduYWwuaCIgMgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvdWFwaS9hc20vc2lnaW5mby5oIiAxCjE0NDc0OiAjIDEzICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vc2lnaW5mby5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJp
Yy9zaWdpbmZvLmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB1bmlvbiBzaWd2YWwgewoxNDQ3NDogIGludCBz
aXZhbF9pbnQ7CjE0NDc0OiAgdm9pZCAqc2l2YWxfcHRyOwoxNDQ3NDogfSBzaWd2YWxfdDsKMTQ0
NzQ6ICMgMzIgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3NpZ2luZm8uaCIKMTQ0NzQ6IHVu
aW9uIF9fc2lmaWVsZHMgewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgX19rZXJu
ZWxfcGlkX3QgX3BpZDsKMTQ0NzQ6ICAgX19rZXJuZWxfdWlkMzJfdCBfdWlkOwoxNDQ3NDogIH0g
X2tpbGw7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIF9fa2VybmVs
X3RpbWVyX3QgX3RpZDsKMTQ0NzQ6ICAgaW50IF9vdmVycnVuOwoxNDQ3NDogICBzaWd2YWxfdCBf
c2lndmFsOwoxNDQ3NDogICBpbnQgX3N5c19wcml2YXRlOwoxNDQ3NDogIH0gX3RpbWVyOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICBfX2tlcm5lbF9waWRfdCBfcGlk
OwoxNDQ3NDogICBfX2tlcm5lbF91aWQzMl90IF91aWQ7CjE0NDc0OiAgIHNpZ3ZhbF90IF9zaWd2
YWw7CjE0NDc0OiAgfSBfcnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0
OiAgIF9fa2VybmVsX3BpZF90IF9waWQ7CjE0NDc0OiAgIF9fa2VybmVsX3VpZDMyX3QgX3VpZDsK
MTQ0NzQ6ICAgaW50IF9zdGF0dXM7CjE0NDc0OiAgIF9fa2VybmVsX2Nsb2NrX3QgX3V0aW1lOwox
NDQ3NDogICBfX2tlcm5lbF9jbG9ja190IF9zdGltZTsKMTQ0NzQ6ICB9IF9zaWdjaGxkOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB2b2lkICpfYWRkcjsKMTQ0NzQ6
ICMgNzcgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3NpZ2luZm8uaCIKMTQ0NzQ6ICAgdW5p
b24gewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgICBzaG9ydCBfYWRk
cl9sc2I7CjE0NDc0OiAKMTQ0NzQ6ICAgIHN0cnVjdCB7CjE0NDc0OiAgICAgY2hhciBfZHVtbXlf
Ym5kWyhfX2FsaWdub2ZfXyh2b2lkICopIDwgc2l6ZW9mKHNob3J0KSA/IHNpemVvZihzaG9ydCkg
OiBfX2FsaWdub2ZfXyh2b2lkICopKV07CjE0NDc0OiAgICAgdm9pZCAqX2xvd2VyOwoxNDQ3NDog
ICAgIHZvaWQgKl91cHBlcjsKMTQ0NzQ6ICAgIH0gX2FkZHJfYm5kOwoxNDQ3NDogCjE0NDc0OiAg
ICBzdHJ1Y3QgewoxNDQ3NDogICAgIGNoYXIgX2R1bW15X3BrZXlbKF9fYWxpZ25vZl9fKHZvaWQg
KikgPCBzaXplb2Yoc2hvcnQpID8gc2l6ZW9mKHNob3J0KSA6IF9fYWxpZ25vZl9fKHZvaWQgKikp
XTsKMTQ0NzQ6ICAgICBfX3UzMiBfcGtleTsKMTQ0NzQ6ICAgIH0gX2FkZHJfcGtleTsKMTQ0NzQ6
ICAgfTsKMTQ0NzQ6ICB9IF9zaWdmYXVsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IHsKMTQ0NzQ6ICAgbG9uZyBfYmFuZDsKMTQ0NzQ6ICAgaW50IF9mZDsKMTQ0NzQ6ICB9IF9zaWdw
b2xsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB2b2lkICpfY2Fs
bF9hZGRyOwoxNDQ3NDogICBpbnQgX3N5c2NhbGw7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBfYXJj
aDsKMTQ0NzQ6ICB9IF9zaWdzeXM7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjkgIi4vaW5jbHVkZS91
YXBpL2FzbS1nZW5lcmljL3NpZ2luZm8uaCIKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IHNpZ2luZm8g
ewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsgaW50IHNpX3NpZ25vOyBpbnQgc2lf
ZXJybm87IGludCBzaV9jb2RlOyB1bmlvbiBfX3NpZmllbGRzIF9zaWZpZWxkczsgfTsKMTQ0NzQ6
ICAgaW50IF9zaV9wYWRbMTI4L3NpemVvZihpbnQpXTsKMTQ0NzQ6ICB9OwoxNDQ3NDogfSBzaWdp
bmZvX3Q7CjE0NDc0OiAjIDMyMCAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvc2lnaW5mby5o
IgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3Qgc2lnZXZlbnQgewoxNDQ3NDogIHNpZ3ZhbF90IHNpZ2V2
X3ZhbHVlOwoxNDQ3NDogIGludCBzaWdldl9zaWdubzsKMTQ0NzQ6ICBpbnQgc2lnZXZfbm90aWZ5
OwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgaW50IF9wYWRbKCg2NCAtIChzaXplb2YoaW50KSAq
IDIgKyBzaXplb2Yoc2lndmFsX3QpKSkgLyBzaXplb2YoaW50KSldOwoxNDQ3NDogICAgaW50IF90
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHZvaWQgKCpfZnVuY3Rpb24p
KHNpZ3ZhbF90KTsKMTQ0NzQ6ICAgIHZvaWQgKl9hdHRyaWJ1dGU7CjE0NDc0OiAgIH0gX3NpZ2V2
X3RocmVhZDsKMTQ0NzQ6ICB9IF9zaWdldl91bjsKMTQ0NzQ6IH0gc2lnZXZlbnRfdDsKMTQ0NzQ6
ICMgMTQgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdpbmZvLmgiIDIKMTQ0NzQ6ICMg
NyAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2lnbmFsLmgiIDIKMTQ0NzQ6ICMgMTEgIi4vaW5jbHVk
ZS9saW51eC9zaWduYWxfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBr
ZXJuZWxfc2lnaW5mbyB7CjE0NDc0OiAgc3RydWN0IHsgaW50IHNpX3NpZ25vOyBpbnQgc2lfZXJy
bm87IGludCBzaV9jb2RlOyB1bmlvbiBfX3NpZmllbGRzIF9zaWZpZWxkczsgfTsKMTQ0NzQ6IH0g
a2VybmVsX3NpZ2luZm9fdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qgc2lncXVldWUgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsK
MTQ0NzQ6ICBpbnQgZmxhZ3M7CjE0NDc0OiAga2VybmVsX3NpZ2luZm9fdCBpbmZvOwoxNDQ3NDog
IHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzaWdwZW5kaW5nIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlz
dF9oZWFkIGxpc3Q7CjE0NDc0OiAgc2lnc2V0X3Qgc2lnbmFsOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNpZ2FjdGlvbiB7CjE0NDc0OiAKMTQ0NzQ6ICBfX3NpZ2hhbmRsZXJfdCBz
YV9oYW5kbGVyOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc2FfZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fc2lncmVzdG9yZV90IHNhX3Jlc3Rv
cmVyOwoxNDQ3NDogCjE0NDc0OiAgc2lnc2V0X3Qgc2FfbWFzazsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBrX3NpZ2FjdGlvbiB7CjE0NDc0OiAgc3RydWN0IHNpZ2FjdGlvbiBzYTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDY1ICIuL2luY2x1ZGUv
bGludXgvc2lnbmFsX3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3Qga3NpZ25hbCB7CjE0NDc0OiAgc3Ry
dWN0IGtfc2lnYWN0aW9uIGthOwoxNDQ3NDogIGtlcm5lbF9zaWdpbmZvX3QgaW5mbzsKMTQ0NzQ6
ICBpbnQgc2lnOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3Rhc2tfaW9fYWNjb3VudGlu
Zy5oIiAxCjE0NDc0OiAjIDEyICIuL2luY2x1ZGUvbGludXgvdGFza19pb19hY2NvdW50aW5nLmgi
CjE0NDc0OiBzdHJ1Y3QgdGFza19pb19hY2NvdW50aW5nIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgdTY0IHJjaGFyOwoxNDQ3NDogCjE0NDc0OiAgdTY0IHdjaGFyOwoxNDQ3NDogCjE0NDc0OiAg
dTY0IHN5c2NyOwoxNDQ3NDogCjE0NDc0OiAgdTY0IHN5c2N3OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IHJlYWRfYnl0
ZXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2NCB3
cml0ZV9ieXRlczsKMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS9saW51eC90YXNrX2lvX2FjY291bnRp
bmcuaCIKMTQ0NzQ6ICB1NjQgY2FuY2VsbGVkX3dyaXRlX2J5dGVzOwoxNDQ3NDogCjE0NDc0OiB9
OwoxNDQ3NDogIyAzMiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAiLi9p
bmNsdWRlL2xpbnV4L3Bvc2l4LXRpbWVycy5oIiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9hbGFybXRp
bWVyLmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2FsYXJtdGltZXIuaCIKMTQ0NzQ6
IHN0cnVjdCBydGNfZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGFsYXJtdGltZXJfdHlwZSB7
CjE0NDc0OiAgQUxBUk1fUkVBTFRJTUUsCjE0NDc0OiAgQUxBUk1fQk9PVFRJTUUsCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIEFMQVJNX05VTVRZUEUsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEFM
QVJNX1JFQUxUSU1FX0ZSRUVaRVIsCjE0NDc0OiAgQUxBUk1fQk9PVFRJTUVfRlJFRVpFUiwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYWxhcm10aW1lcl9yZXN0YXJ0IHsKMTQ0NzQ6ICBB
TEFSTVRJTUVSX05PUkVTVEFSVCwKMTQ0NzQ6ICBBTEFSTVRJTUVSX1JFU1RBUlQsCjE0NDc0OiB9
OwoxNDQ3NDogIyA0MiAiLi9pbmNsdWRlL2xpbnV4L2FsYXJtdGltZXIuaCIKMTQ0NzQ6IHN0cnVj
dCBhbGFybSB7CjE0NDc0OiAgc3RydWN0IHRpbWVycXVldWVfbm9kZSBub2RlOwoxNDQ3NDogIHN0
cnVjdCBocnRpbWVyIHRpbWVyOwoxNDQ3NDogIGVudW0gYWxhcm10aW1lcl9yZXN0YXJ0ICgqZnVu
Y3Rpb24pKHN0cnVjdCBhbGFybSAqLCBrdGltZV90IG5vdyk7CjE0NDc0OiAgZW51bSBhbGFybXRp
bWVyX3R5cGUgdHlwZTsKMTQ0NzQ6ICBpbnQgc3RhdGU7CjE0NDc0OiAgdm9pZCAqZGF0YTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgYWxhcm1faW5pdChzdHJ1Y3QgYWxhcm0gKmFsYXJt
LCBlbnVtIGFsYXJtdGltZXJfdHlwZSB0eXBlLAoxNDQ3NDogICBlbnVtIGFsYXJtdGltZXJfcmVz
dGFydCAoKmZ1bmN0aW9uKShzdHJ1Y3QgYWxhcm0gKiwga3RpbWVfdCkpOwoxNDQ3NDogdm9pZCBh
bGFybV9zdGFydChzdHJ1Y3QgYWxhcm0gKmFsYXJtLCBrdGltZV90IHN0YXJ0KTsKMTQ0NzQ6IHZv
aWQgYWxhcm1fc3RhcnRfcmVsYXRpdmUoc3RydWN0IGFsYXJtICphbGFybSwga3RpbWVfdCBzdGFy
dCk7CjE0NDc0OiB2b2lkIGFsYXJtX3Jlc3RhcnQoc3RydWN0IGFsYXJtICphbGFybSk7CjE0NDc0
OiBpbnQgYWxhcm1fdHJ5X3RvX2NhbmNlbChzdHJ1Y3QgYWxhcm0gKmFsYXJtKTsKMTQ0NzQ6IGlu
dCBhbGFybV9jYW5jZWwoc3RydWN0IGFsYXJtICphbGFybSk7CjE0NDc0OiAKMTQ0NzQ6IHU2NCBh
bGFybV9mb3J3YXJkKHN0cnVjdCBhbGFybSAqYWxhcm0sIGt0aW1lX3Qgbm93LCBrdGltZV90IGlu
dGVydmFsKTsKMTQ0NzQ6IHU2NCBhbGFybV9mb3J3YXJkX25vdyhzdHJ1Y3QgYWxhcm0gKmFsYXJt
LCBrdGltZV90IGludGVydmFsKTsKMTQ0NzQ6IGt0aW1lX3QgYWxhcm1fZXhwaXJlc19yZW1haW5p
bmcoY29uc3Qgc3RydWN0IGFsYXJtICphbGFybSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcnRjX2RldmljZSAqYWxhcm10aW1lcl9nZXRfcnRjZGV2KHZvaWQpOwoxNDQ3
NDogIyA4ICIuL2luY2x1ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qga2VybmVsX3NpZ2luZm87CjE0NDc0OiBzdHJ1Y3QgdGFza19zdHJ1Y3Q7
CjE0NDc0OiAjIDM4ICIuL2luY2x1ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjbG9j
a2lkX3QgbWFrZV9wcm9jZXNzX2NwdWNsb2NrKGNvbnN0IHVuc2lnbmVkIGludCBwaWQsCjE0NDc0
OiAgIGNvbnN0IGNsb2NraWRfdCBjbG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh+cGlk
KSA8PCAzKSB8IGNsb2NrOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2xvY2tpZF90IG1ha2VfdGhyZWFkX2Nw
dWNsb2NrKGNvbnN0IHVuc2lnbmVkIGludCB0aWQsCjE0NDc0OiAgIGNvbnN0IGNsb2NraWRfdCBj
bG9jaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbWFrZV9wcm9jZXNzX2NwdWNsb2NrKHRpZCwg
Y2xvY2sgfCA0KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2xvY2tpZF90IGZkX3RvX2Nsb2Nr
aWQoY29uc3QgaW50IGZkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBtYWtlX3Byb2Nlc3NfY3B1
Y2xvY2soKHVuc2lnbmVkIGludCkgZmQsIDMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
Y2xvY2tpZF90b19mZChjb25zdCBjbG9ja2lkX3QgY2xrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biB+KGNsayA+PiAzKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjkgIi4vaW5jbHVkZS9saW51eC9wb3Np
eC10aW1lcnMuaCIKMTQ0NzQ6IHN0cnVjdCBjcHVfdGltZXIgewoxNDQ3NDogIHN0cnVjdCB0aW1l
cnF1ZXVlX25vZGUgbm9kZTsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkOwox
NDQ3NDogIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IGVsaXN0OwoxNDQ3NDogIGludCBmaXJpbmc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IGNwdV90aW1lcl9lbnF1ZXVlKHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhlYWQsCjE0NDc0OiAg
ICAgICAgICBzdHJ1Y3QgY3B1X3RpbWVyICpjdG1yKQoxNDQ3NDogewoxNDQ3NDogIGN0bXItPmhl
YWQgPSBoZWFkOwoxNDQ3NDogIHJldHVybiB0aW1lcnF1ZXVlX2FkZChoZWFkLCAmY3Rtci0+bm9k
ZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1X3RpbWVyX2RlcXVldWUoc3RydWN0
IGNwdV90aW1lciAqY3RtcikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoY3Rtci0+aGVhZCkgewoxNDQ3
NDogICB0aW1lcnF1ZXVlX2RlbChjdG1yLT5oZWFkLCAmY3Rtci0+bm9kZSk7CjE0NDc0OiAgIGN0
bXItPmhlYWQgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHU2NCBjcHVfdGltZXJfZ2V0ZXhwaXJlcyhzdHJ1Y3QgY3B1X3RpbWVyICpjdG1yKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBjdG1yLT5ub2RlLmV4cGlyZXM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgY3B1X3RpbWVyX3NldGV4cGlyZXMoc3RydWN0IGNwdV90aW1lciAqY3RtciwgdTY0
IGV4cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBjdG1yLT5ub2RlLmV4cGlyZXMgPSBleHA7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgcG9zaXhfY3B1dGltZXJfYmFzZSB7CjE0NDc0OiAgdTY0IG5leHRldnQ7CjE0NDc0OiAg
c3RydWN0IHRpbWVycXVldWVfaGVhZCB0cWhlYWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjIgIi4v
aW5jbHVkZS9saW51eC9wb3NpeC10aW1lcnMuaCIKMTQ0NzQ6IHN0cnVjdCBwb3NpeF9jcHV0aW1l
cnMgewoxNDQ3NDogIHN0cnVjdCBwb3NpeF9jcHV0aW1lcl9iYXNlIGJhc2VzWzNdOwoxNDQ3NDog
IHVuc2lnbmVkIGludCB0aW1lcnNfYWN0aXZlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBleHBpcnlf
YWN0aXZlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwb3NpeF9jcHV0aW1lcnNfaW5p
dChzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzICpwY3QpCjE0NDc0OiB7CjE0NDc0OiAgbWVtc2V0KHBj
dCwgMCwgc2l6ZW9mKCpwY3QpKTsKMTQ0NzQ6ICBwY3QtPmJhc2VzWzBdLm5leHRldnQgPSAoKHU2
NCl+MFVMTCk7CjE0NDc0OiAgcGN0LT5iYXNlc1sxXS5uZXh0ZXZ0ID0gKCh1NjQpfjBVTEwpOwox
NDQ3NDogIHBjdC0+YmFzZXNbMl0ubmV4dGV2dCA9ICgodTY0KX4wVUxMKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogdm9pZCBwb3NpeF9jcHV0aW1lcnNfZ3JvdXBfaW5pdChzdHJ1Y3QgcG9zaXhf
Y3B1dGltZXJzICpwY3QsIHU2NCBjcHVfbGltaXQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBvc2l4
X2NwdXRpbWVyc19ydF93YXRjaGRvZyhzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzICpwY3QsCjE0NDc0
OiAgICAgICAgICAgICB1NjQgcnVudGltZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwY3QtPmJhc2VzWzJd
Lm5leHRldnQgPSBydW50aW1lOwoxNDQ3NDogfQoxNDQ3NDogIyAxOTMgIi4vaW5jbHVkZS9saW51
eC9wb3NpeC10aW1lcnMuaCIKMTQ0NzQ6IHN0cnVjdCBrX2l0aW1lciB7CjE0NDc0OiAgc3RydWN0
IGxpc3RfaGVhZCBsaXN0OwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIHRfaGFzaDsKMTQ0NzQ6
ICBzcGlubG9ja190IGl0X2xvY2s7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGtfY2xvY2sgKmtjbG9j
azsKMTQ0NzQ6ICBjbG9ja2lkX3QgaXRfY2xvY2s7CjE0NDc0OiAgdGltZXJfdCBpdF9pZDsKMTQ0
NzQ6ICBpbnQgaXRfYWN0aXZlOwoxNDQ3NDogIHM2NCBpdF9vdmVycnVuOwoxNDQ3NDogIHM2NCBp
dF9vdmVycnVuX2xhc3Q7CjE0NDc0OiAgaW50IGl0X3JlcXVldWVfcGVuZGluZzsKMTQ0NzQ6ICBp
bnQgaXRfc2lnZXZfbm90aWZ5OwoxNDQ3NDogIGt0aW1lX3QgaXRfaW50ZXJ2YWw7CjE0NDc0OiAg
c3RydWN0IHNpZ25hbF9zdHJ1Y3QgKml0X3NpZ25hbDsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAg
IHN0cnVjdCBwaWQgKml0X3BpZDsKMTQ0NzQ6ICAgc3RydWN0IHRhc2tfc3RydWN0ICppdF9wcm9j
ZXNzOwoxNDQ3NDogIH07CjE0NDc0OiAgc3RydWN0IHNpZ3F1ZXVlICpzaWdxOwoxNDQ3NDogIHVu
aW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHN0cnVjdCBocnRpbWVyIHRpbWVyOwox
NDQ3NDogICB9IHJlYWw7CjE0NDc0OiAgIHN0cnVjdCBjcHVfdGltZXIgY3B1OwoxNDQ3NDogICBz
dHJ1Y3QgewoxNDQ3NDogICAgc3RydWN0IGFsYXJtIGFsYXJtdGltZXI7CjE0NDc0OiAgIH0gYWxh
cm07CjE0NDc0OiAgfSBpdDsKMTQ0NzQ6ICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHJ1bl9wb3NpeF9jcHVfdGltZXJzKHZvaWQpOwoxNDQ3
NDogdm9pZCBwb3NpeF9jcHVfdGltZXJzX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsK
MTQ0NzQ6IHZvaWQgcG9zaXhfY3B1X3RpbWVyc19leGl0X2dyb3VwKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdGFzayk7CjE0NDc0OiB2b2lkIHNldF9wcm9jZXNzX2NwdV90aW1lcihzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBjbG9ja19pZHgsCjE0NDc0OiAgICAgICB1NjQgKm5l
d3ZhbCwgdTY0ICpvbGR2YWwpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHVwZGF0ZV9ybGltaXRfY3B1
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWduZWQgbG9uZyBybGltX25ldyk7CjE0NDc0
OiAKMTQ0NzQ6IHZvaWQgcG9zaXh0aW1lcl9yZWFybShzdHJ1Y3Qga2VybmVsX3NpZ2luZm8gKmlu
Zm8pOwoxNDQ3NDogIyAzMyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIiAxCjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvdWFw
aS9saW51eC9yc2VxLmgiCjE0NDc0OiBlbnVtIHJzZXFfY3B1X2lkX3N0YXRlIHsKMTQ0NzQ6ICBS
U0VRX0NQVV9JRF9VTklOSVRJQUxJWkVEID0gLTEsCjE0NDc0OiAgUlNFUV9DUFVfSURfUkVHSVNU
UkFUSU9OX0ZBSUxFRCA9IC0yLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSByc2VxX2Zs
YWdzIHsKMTQ0NzQ6ICBSU0VRX0ZMQUdfVU5SRUdJU1RFUiA9ICgxIDw8IDApLAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSByc2VxX2NzX2ZsYWdzX2JpdCB7CjE0NDc0OiAgUlNFUV9DU19G
TEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVF9CSVQgPSAwLAoxNDQ3NDogIFJTRVFfQ1NfRkxBR19O
T19SRVNUQVJUX09OX1NJR05BTF9CSVQgPSAxLAoxNDQ3NDogIFJTRVFfQ1NfRkxBR19OT19SRVNU
QVJUX09OX01JR1JBVEVfQklUID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcnNl
cV9jc19mbGFncyB7CjE0NDc0OiAgUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVCA9
CjE0NDc0OiAgICgxVSA8PCBSU0VRX0NTX0ZMQUdfTk9fUkVTVEFSVF9PTl9QUkVFTVBUX0JJVCks
CjE0NDc0OiAgUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fU0lHTkFMID0KMTQ0NzQ6ICAgKDFV
IDw8IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX1NJR05BTF9CSVQpLAoxNDQ3NDogIFJTRVFf
Q1NfRkxBR19OT19SRVNUQVJUX09OX01JR1JBVEUgPQoxNDQ3NDogICAoMVUgPDwgUlNFUV9DU19G
TEFHX05PX1JFU1RBUlRfT05fTUlHUkFURV9CSVQpLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCByc2VxX2NzIHsK
MTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHZlcnNpb247CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBmbGFn
czsKMTQ0NzQ6ICBfX3U2NCBzdGFydF9pcDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IHBvc3RfY29t
bWl0X29mZnNldDsKMTQ0NzQ6ICBfX3U2NCBhYm9ydF9pcDsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVf
XygoYWxpZ25lZCg0ICogc2l6ZW9mKF9fdTY0KSkpKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJzZXEgewoxNDQ3
NDogIyA3NSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIgoxNDQ3NDogIF9fdTMyIGNwdV9p
ZF9zdGFydDsKMTQ0NzQ6ICMgOTAgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKMTQ0NzQ6
ICBfX3UzMiBjcHVfaWQ7CjE0NDc0OiAjIDEwOSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5o
IgoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgX191NjQgcHRyNjQ7CjE0NDc0OiAKMTQ0NzQ6ICAg
X191NjQgcHRyOwoxNDQ3NDogIyAxMjQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKMTQ0
NzQ6ICB9IHJzZXFfY3M7CjE0NDc0OiAjIDE0NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5o
IgoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQg
KiBzaXplb2YoX191NjQpKSkpOwoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXVkaXRfY29udGV4dDsKMTQ0NzQ6IHN0
cnVjdCBiYWNraW5nX2Rldl9pbmZvOwoxNDQ3NDogc3RydWN0IGJpb19saXN0OwoxNDQ3NDogc3Ry
dWN0IGJsa19wbHVnOwoxNDQ3NDogc3RydWN0IGNhcHR1cmVfY29udHJvbDsKMTQ0NzQ6IHN0cnVj
dCBjZnNfcnE7CjE0NDc0OiBzdHJ1Y3QgZnNfc3RydWN0OwoxNDQ3NDogc3RydWN0IGZ1dGV4X3Bp
X3N0YXRlOwoxNDQ3NDogc3RydWN0IGlvX2NvbnRleHQ7CjE0NDc0OiBzdHJ1Y3QgbWVtcG9saWN5
OwoxNDQ3NDogc3RydWN0IG5hbWVpZGF0YTsKMTQ0NzQ6IHN0cnVjdCBuc3Byb3h5OwoxNDQ3NDog
c3RydWN0IHBlcmZfZXZlbnRfY29udGV4dDsKMTQ0NzQ6IHN0cnVjdCBwaWRfbmFtZXNwYWNlOwox
NDQ3NDogc3RydWN0IHBpcGVfaW5vZGVfaW5mbzsKMTQ0NzQ6IHN0cnVjdCByY3Vfbm9kZTsKMTQ0
NzQ6IHN0cnVjdCByZWNsYWltX3N0YXRlOwoxNDQ3NDogc3RydWN0IHJvYnVzdF9saXN0X2hlYWQ7
CjE0NDc0OiBzdHJ1Y3Qgcm9vdF9kb21haW47CjE0NDc0OiBzdHJ1Y3QgcnE7CjE0NDc0OiBzdHJ1
Y3Qgc2NoZWRfYXR0cjsKMTQ0NzQ6IHN0cnVjdCBzY2hlZF9wYXJhbTsKMTQ0NzQ6IHN0cnVjdCBz
ZXFfZmlsZTsKMTQ0NzQ6IHN0cnVjdCBzaWdoYW5kX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCBzaWdu
YWxfc3RydWN0OwoxNDQ3NDogc3RydWN0IHRhc2tfZGVsYXlfaW5mbzsKMTQ0NzQ6IHN0cnVjdCB0
YXNrX2dyb3VwOwoxNDQ3NDogIyAyMTUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDog
ZXh0ZXJuIHZvaWQgc2NoZWR1bGVyX3RpY2sodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0KGxvbmcgdGltZW91dCk7CjE0NDc0
OiBleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUobG9uZyB0aW1lb3V0
KTsKMTQ0NzQ6IGV4dGVybiBsb25nIHNjaGVkdWxlX3RpbWVvdXRfa2lsbGFibGUobG9uZyB0aW1l
b3V0KTsKMTQ0NzQ6IGV4dGVybiBsb25nIHNjaGVkdWxlX3RpbWVvdXRfdW5pbnRlcnJ1cHRpYmxl
KGxvbmcgdGltZW91dCk7CjE0NDc0OiBleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2lkbGUo
bG9uZyB0aW1lb3V0KTsKMTQ0NzQ6ICB2b2lkIHNjaGVkdWxlKHZvaWQpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgc2NoZWR1bGVfcHJlZW1wdF9kaXNhYmxlZCh2b2lkKTsKMTQ0NzQ6ICB2b2lkIHByZWVt
cHRfc2NoZWR1bGVfaXJxKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBpb19zY2hlZHVsZV9wcmVwYXJlKHZvaWQp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW9fc2NoZWR1bGVfZmluaXNoKGludCB0b2tlbik7CjE0NDc0
OiBleHRlcm4gbG9uZyBpb19zY2hlZHVsZV90aW1lb3V0KGxvbmcgdGltZW91dCk7CjE0NDc0OiBl
eHRlcm4gdm9pZCBpb19zY2hlZHVsZSh2b2lkKTsKMTQ0NzQ6ICMgMjQyICIuL2luY2x1ZGUvbGlu
dXgvc2NoZWQuaCIKMTQ0NzQ6IHN0cnVjdCBwcmV2X2NwdXRpbWUgewoxNDQ3NDogCjE0NDc0OiAg
dTY0IHV0aW1lOwoxNDQ3NDogIHU2NCBzdGltZTsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2Nr
OwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHZ0aW1lX3N0YXRlIHsKMTQ0
NzQ6IAoxNDQ3NDogIFZUSU1FX0lOQUNUSVZFID0gMCwKMTQ0NzQ6IAoxNDQ3NDogIFZUSU1FX0lE
TEUsCjE0NDc0OiAKMTQ0NzQ6ICBWVElNRV9TWVMsCjE0NDc0OiAKMTQ0NzQ6ICBWVElNRV9VU0VS
LAoxNDQ3NDogCjE0NDc0OiAgVlRJTUVfR1VFU1QsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgdnRpbWUgewoxNDQ3NDogIHNlcWNvdW50X3Qgc2VxY291bnQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBsb25nIHN0YXJ0dGltZTsKMTQ0NzQ6ICBlbnVtIHZ0aW1lX3N0YXRlIHN0YXRlOwox
NDQ3NDogIHVuc2lnbmVkIGludCBjcHU7CjE0NDc0OiAgdTY0IHV0aW1lOwoxNDQ3NDogIHU2NCBz
dGltZTsKMTQ0NzQ6ICB1NjQgZ3RpbWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHVjbGFtcF9pZCB7
CjE0NDc0OiAgVUNMQU1QX01JTiA9IDAsCjE0NDc0OiAgVUNMQU1QX01BWCwKMTQ0NzQ6ICBVQ0xB
TVBfQ05UCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgcm9v
dF9kb21haW4gZGVmX3Jvb3RfZG9tYWluOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBtdXRleCBzY2hl
ZF9kb21haW5zX211dGV4OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzY2hlZF9pbmZv
IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
cGNvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgcnVuX2Rl
bGF5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBsb25nIGxhc3RfYXJyaXZhbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBsb25nIGxhc3RfcXVldWVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAjIDMy
NSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBzdHJ1Y3QgbG9hZF93ZWlnaHQgewox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgd2VpZ2h0OwoxNDQ3NDogIHUzMiBpbnZfd2VpZ2h0OwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMzUyICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IHN0cnVj
dCB1dGlsX2VzdCB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGVucXVldWVkOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBld21hOwoxNDQ3NDogCjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9f
KHNpemVvZih1NjQpKSkpOwoxNDQ3NDogIyA0MDEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgox
NDQ3NDogc3RydWN0IHNjaGVkX2F2ZyB7CjE0NDc0OiAgdTY0IGxhc3RfdXBkYXRlX3RpbWU7CjE0
NDc0OiAgdTY0IGxvYWRfc3VtOwoxNDQ3NDogIHU2NCBydW5uYWJsZV9sb2FkX3N1bTsKMTQ0NzQ6
ICB1MzIgdXRpbF9zdW07CjE0NDc0OiAgdTMyIHBlcmlvZF9jb250cmliOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgbG9hZF9hdmc7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBydW5uYWJsZV9sb2FkX2F2
ZzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHV0aWxfYXZnOwoxNDQ3NDogIHN0cnVjdCB1dGlsX2Vz
dCB1dGlsX2VzdDsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYp
KSkpKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNjaGVkX3N0YXRpc3RpY3MgewoxNDQ3NDogCjE0
NDc0OiAgdTY0IHdhaXRfc3RhcnQ7CjE0NDc0OiAgdTY0IHdhaXRfbWF4OwoxNDQ3NDogIHU2NCB3
YWl0X2NvdW50OwoxNDQ3NDogIHU2NCB3YWl0X3N1bTsKMTQ0NzQ6ICB1NjQgaW93YWl0X2NvdW50
OwoxNDQ3NDogIHU2NCBpb3dhaXRfc3VtOwoxNDQ3NDogCjE0NDc0OiAgdTY0IHNsZWVwX3N0YXJ0
OwoxNDQ3NDogIHU2NCBzbGVlcF9tYXg7CjE0NDc0OiAgczY0IHN1bV9zbGVlcF9ydW50aW1lOwox
NDQ3NDogCjE0NDc0OiAgdTY0IGJsb2NrX3N0YXJ0OwoxNDQ3NDogIHU2NCBibG9ja19tYXg7CjE0
NDc0OiAgdTY0IGV4ZWNfbWF4OwoxNDQ3NDogIHU2NCBzbGljZV9tYXg7CjE0NDc0OiAKMTQ0NzQ6
ICB1NjQgbnJfbWlncmF0aW9uc19jb2xkOwoxNDQ3NDogIHU2NCBucl9mYWlsZWRfbWlncmF0aW9u
c19hZmZpbmU7CjE0NDc0OiAgdTY0IG5yX2ZhaWxlZF9taWdyYXRpb25zX3J1bm5pbmc7CjE0NDc0
OiAgdTY0IG5yX2ZhaWxlZF9taWdyYXRpb25zX2hvdDsKMTQ0NzQ6ICB1NjQgbnJfZm9yY2VkX21p
Z3JhdGlvbnM7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgbnJfd2FrZXVwczsKMTQ0NzQ6ICB1NjQgbnJf
d2FrZXVwc19zeW5jOwoxNDQ3NDogIHU2NCBucl93YWtldXBzX21pZ3JhdGU7CjE0NDc0OiAgdTY0
IG5yX3dha2V1cHNfbG9jYWw7CjE0NDc0OiAgdTY0IG5yX3dha2V1cHNfcmVtb3RlOwoxNDQ3NDog
IHU2NCBucl93YWtldXBzX2FmZmluZTsKMTQ0NzQ6ICB1NjQgbnJfd2FrZXVwc19hZmZpbmVfYXR0
ZW1wdHM7CjE0NDc0OiAgdTY0IG5yX3dha2V1cHNfcGFzc2l2ZTsKMTQ0NzQ6ICB1NjQgbnJfd2Fr
ZXVwc19pZGxlOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2NoZWRf
ZW50aXR5IHsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsb2FkX3dlaWdodCBsb2FkOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgcnVubmFibGVfd2VpZ2h0OwoxNDQ3NDogIHN0cnVjdCByYl9ub2RlIHJ1
bl9ub2RlOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgZ3JvdXBfbm9kZTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgb25fcnE7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgZXhlY19zdGFydDsKMTQ0NzQ6ICB1
NjQgc3VtX2V4ZWNfcnVudGltZTsKMTQ0NzQ6ICB1NjQgdnJ1bnRpbWU7CjE0NDc0OiAgdTY0IHBy
ZXZfc3VtX2V4ZWNfcnVudGltZTsKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBucl9taWdyYXRpb25zOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHNjaGVkX3N0YXRpc3RpY3Mgc3RhdGlzdGljczsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgaW50IGRlcHRoOwoxNDQ3NDogIHN0cnVjdCBzY2hlZF9lbnRpdHkg
KnBhcmVudDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjZnNfcnEgKmNmc19ycTsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBjZnNfcnEgKm15X3E7CjE0NDc0OiAjIDQ4MiAiLi9pbmNsdWRlL2xpbnV4
L3NjaGVkLmgiCjE0NDc0OiAgc3RydWN0IHNjaGVkX2F2ZyBhdmc7CjE0NDc0OiAKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgewoxNDQ3NDogIHN0cnVjdCBs
aXN0X2hlYWQgcnVuX2xpc3Q7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgd2F0Y2hkb2dfc3RhbXA7CjE0NDc0OiAgdW5zaWduZWQgaW50IHRpbWVf
c2xpY2U7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgb25fcnE7CjE0NDc0OiAgdW5zaWduZWQgc2hv
cnQgb25fbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKmJhY2s7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3Qgc2NoZWRfZGxfZW50aXR5IHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSByYl9u
b2RlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHU2NCBkbF9ydW50aW1lOwoxNDQ3NDogIHU2NCBkbF9kZWFkbGluZTsKMTQ0NzQ6ICB1NjQg
ZGxfcGVyaW9kOwoxNDQ3NDogIHU2NCBkbF9idzsKMTQ0NzQ6ICB1NjQgZGxfZGVuc2l0eTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzNjQg
cnVudGltZTsKMTQ0NzQ6ICB1NjQgZGVhZGxpbmU7CjE0NDc0OiAgdW5zaWduZWQgaW50IGZsYWdz
OwoxNDQ3NDogIyA1NTEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIHVuc2lnbmVk
IGludCBkbF90aHJvdHRsZWQgOiAxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkbF9ib29zdGVkIDog
MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGxfeWllbGRlZCA6IDE7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGRsX25vbl9jb250ZW5kaW5nIDogMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGxfb3ZlcnJ1
biA6IDE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBocnRpbWVyIGRsX3RpbWVyOwoxNDQ3NDogIyA1NzAgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIgoxNDQ3NDogIHN0cnVjdCBocnRpbWVyIGluYWN0aXZlX3RpbWVyOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgNjA4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IHVuaW9uIHJjdV9zcGVj
aWFsIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1OCBibG9ja2VkOwoxNDQ3NDogICB1OCBu
ZWVkX3FzOwoxNDQ3NDogICB1OCBleHBfaGludDsKMTQ0NzQ6ICAgdTggZGVmZXJyZWRfcXM7CjE0
NDc0OiAgfSBiOwoxNDQ3NDogIHUzMiBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBw
ZXJmX2V2ZW50X3Rhc2tfY29udGV4dCB7CjE0NDc0OiAgcGVyZl9pbnZhbGlkX2NvbnRleHQgPSAt
MSwKMTQ0NzQ6ICBwZXJmX2h3X2NvbnRleHQgPSAwLAoxNDQ3NDogIHBlcmZfc3dfY29udGV4dCwK
MTQ0NzQ6ICBwZXJmX25yX3Rhc2tfY29udGV4dHMsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3Qgd2FrZV9xX25vZGUgewoxNDQ3NDogIHN0cnVjdCB3YWtlX3Ffbm9kZSAqbmV4dDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0YXNrX3N0cnVjdCB7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB0aHJlYWRfaW5mbyB0aHJl
YWRfaW5mbzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9sYXRpbGUgbG9uZyBzdGF0ZTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHZvaWQgKnN0YWNrOwoxNDQ3NDogIHJlZmNvdW50X3QgdXNhZ2U7CjE0NDc0OiAKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHB0cmFjZTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxsaXN0X25vZGUgd2FrZV9lbnRyeTsKMTQ0NzQ6ICBp
bnQgb25fY3B1OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY3B1OwoxNDQ3
NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHdha2VlX2ZsaXBzOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgd2FrZWVfZmxpcF9kZWNheV90czsKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmxhc3Rf
d2FrZWU7CjE0NDc0OiAjIDY3MCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiAgaW50
IHJlY2VudF91c2VkX2NwdTsKMTQ0NzQ6ICBpbnQgd2FrZV9jcHU7CjE0NDc0OiAKMTQ0NzQ6ICBp
bnQgb25fcnE7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgcHJpbzsKMTQ0NzQ6ICBpbnQgc3RhdGljX3By
aW87CjE0NDc0OiAgaW50IG5vcm1hbF9wcmlvOwoxNDQ3NDogIHVuc2lnbmVkIGludCBydF9wcmlv
cml0eTsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyAqc2NoZWRfY2xh
c3M7CjE0NDc0OiAgc3RydWN0IHNjaGVkX2VudGl0eSBzZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc2NoZWRf
cnRfZW50aXR5IHJ0OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfZ3JvdXAgKnNjaGVkX3Rh
c2tfZ3JvdXA7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc2NoZWRfZGxfZW50aXR5IGRsOwoxNDQ3
NDogIyA2OTcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIHN0cnVjdCBobGlzdF9o
ZWFkIHByZWVtcHRfbm90aWZpZXJzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVu
c2lnbmVkIGludCBidHJhY2Vfc2VxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgcG9saWN5OwoxNDQ3NDogIGludCBucl9jcHVzX2FsbG93ZWQ7CjE0NDc0OiAgY29uc3QgY3B1
bWFza190ICpjcHVzX3B0cjsKMTQ0NzQ6ICBjcHVtYXNrX3QgY3B1c19tYXNrOwoxNDQ3NDogIyA3
MjQgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIHN0cnVjdCBzY2hlZF9pbmZvIHNj
aGVkX2luZm87CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHRhc2tzOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IHBsaXN0X25vZGUgcHVzaGFibGVfdGFza3M7CjE0NDc0OiAgc3RydWN0
IHJiX25vZGUgcHVzaGFibGVfZGxfdGFza3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBtbV9zdHJ1Y3QgKm1tOwoxNDQ3NDogIHN0cnVjdCBtbV9zdHJ1Y3QgKmFjdGl2ZV9tbTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHZtYWNhY2hlIHZtYWNhY2hlOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19yc3Nfc3RhdCByc3Nfc3RhdDsKMTQ0NzQ6IAoxNDQ3
NDogIGludCBleGl0X3N0YXRlOwoxNDQ3NDogIGludCBleGl0X2NvZGU7CjE0NDc0OiAgaW50IGV4
aXRfc2lnbmFsOwoxNDQ3NDogCjE0NDc0OiAgaW50IHBkZWF0aF9zaWduYWw7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIGpvYmN0bDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHBlcnNvbmFsaXR5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBzY2hl
ZF9yZXNldF9vbl9mb3JrOjE7CjE0NDc0OiAgdW5zaWduZWQgc2NoZWRfY29udHJpYnV0ZXNfdG9f
bG9hZDoxOwoxNDQ3NDogIHVuc2lnbmVkIHNjaGVkX21pZ3JhdGVkOjE7CjE0NDc0OiAgdW5zaWdu
ZWQgc2NoZWRfcmVtb3RlX3dha2V1cDoxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCA6MDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGluX2V4ZWN2ZToxOwoxNDQ3NDogIHVuc2lnbmVkIGluX2lv
d2FpdDoxOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgcmVzdG9yZV9zaWdtYXNrOjE7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGluX3VzZXJfZmF1bHQ6MTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBub19j
Z3JvdXBfbWlncmF0aW9uOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBmcm96ZW46MTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCB1c2VfbWVtZGVsYXk6MTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBhdG9taWNfZmxhZ3M7CjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgcmVzdGFydF9ibG9jayByZXN0YXJ0X2Jsb2NrOwoxNDQ3NDogCjE0NDc0
OiAgcGlkX3QgcGlkOwoxNDQ3NDogIHBpZF90IHRnaWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzdGFja19jYW5hcnk7CjE0NDc0OiAjIDgwNyAiLi9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiAgc3RydWN0IHRhc2tfc3RydWN0ICpyZWFsX3BhcmVu
dDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGNo
aWxkcmVuOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc2libGluZzsKMTQ0NzQ6ICBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKmdyb3VwX2xlYWRlcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgcHRyYWNl
ZDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIHB0cmFjZV9lbnRyeTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IHBpZCAqdGhyZWFkX3BpZDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rfbm9k
ZSBwaWRfbGlua3NbUElEVFlQRV9NQVhdOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgdGhyZWFk
X2dyb3VwOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgdGhyZWFkX25vZGU7CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgY29tcGxldGlvbiAqdmZvcmtfZG9uZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgaW50ICpzZXRfY2hpbGRfdGlkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKmNsZWFy
X2NoaWxkX3RpZDsKMTQ0NzQ6IAoxNDQ3NDogIHU2NCB1dGltZTsKMTQ0NzQ6ICB1NjQgc3RpbWU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1NjQgZ3RpbWU7CjE0NDc0
OiAgc3RydWN0IHByZXZfY3B1dGltZSBwcmV2X2NwdXRpbWU7CjE0NDc0OiAjIDg1OCAiLi9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBudmNzdzsKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIG5pdmNzdzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IHN0YXJ0X3Rp
bWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBzdGFydF9ib290dGltZTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtaW5fZmx0OwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgbWFqX2ZsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHBvc2l4X2NwdXRpbWVy
cyBwb3NpeF9jcHV0aW1lcnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgY3JlZCAqcHRyYWNlcl9jcmVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgY3JlZCAqcmVhbF9jcmVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBj
b25zdCBzdHJ1Y3QgY3JlZCAqY3JlZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBz
dHJ1Y3Qga2V5ICpjYWNoZWRfcmVxdWVzdGVkX2tleTsKMTQ0NzQ6ICMgODk3ICIuL2luY2x1ZGUv
bGludXgvc2NoZWQuaCIKMTQ0NzQ6ICBjaGFyIGNvbW1bMTZdOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IG5hbWVpZGF0YSAqbmFtZWlkYXRhOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
c3lzdl9zZW0gc3lzdnNlbTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3lzdl9zaG0gc3lzdnNobTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsYXN0X3N3aXRjaF9jb3VudDsKMTQ0NzQ6
ICB1bnNpZ25lZCBsb25nIGxhc3Rfc3dpdGNoX3RpbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBmc19zdHJ1Y3QgKmZzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZmls
ZXNfc3RydWN0ICpmaWxlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG5zcHJveHkg
Km5zcHJveHk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzaWduYWxfc3RydWN0ICpz
aWduYWw7CjE0NDc0OiAgc3RydWN0IHNpZ2hhbmRfc3RydWN0ICpzaWdoYW5kOwoxNDQ3NDogIHNp
Z3NldF90IGJsb2NrZWQ7CjE0NDc0OiAgc2lnc2V0X3QgcmVhbF9ibG9ja2VkOwoxNDQ3NDogCjE0
NDc0OiAgc2lnc2V0X3Qgc2F2ZWRfc2lnbWFzazsKMTQ0NzQ6ICBzdHJ1Y3Qgc2lncGVuZGluZyBw
ZW5kaW5nOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc2FzX3NzX3NwOwoxNDQ3NDogIHNpemVfdCBz
YXNfc3Nfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc2FzX3NzX2ZsYWdzOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgKnRhc2tfd29ya3M7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmF1ZGl0X2NvbnRleHQ7CjE0NDc0
OiAKMTQ0NzQ6ICBrdWlkX3QgbG9naW51aWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNlc3Npb25p
ZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzZWNjb21wIHNlY2NvbXA7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHUzMiBwYXJlbnRfZXhlY19pZDsKMTQ0NzQ6ICB1MzIgc2VsZl9leGVjX2lkOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzcGlubG9ja190IGFsbG9jX2xvY2s7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHJhd19zcGlubG9ja190IHBpX2xvY2s7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3Qgd2FrZV9xX25vZGUgd2FrZV9xOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCByYl9yb290X2NhY2hlZCBwaV93YWl0ZXJzOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRh
c2tfc3RydWN0ICpwaV90b3BfdGFzazsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBydF9tdXRleF93
YWl0ZXIgKnBpX2Jsb2NrZWRfb247CjE0NDc0OiAjIDEwMDAgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIgoxNDQ3NDogIHZvaWQgKmpvdXJuYWxfaW5mbzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IGJpb19saXN0ICpiaW9fbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBzdHJ1Y3QgYmxrX3BsdWcgKnBsdWc7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
c3RydWN0IHJlY2xhaW1fc3RhdGUgKnJlY2xhaW1fc3RhdGU7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgYmFja2luZ19kZXZfaW5mbyAqYmFja2luZ19kZXZfaW5mbzsKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBpb19jb250ZXh0ICppb19jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgY2FwdHVyZV9jb250cm9sICpjYXB0dXJlX2NvbnRyb2w7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgcHRyYWNlX21lc3NhZ2U7CjE0NDc0OiAga2VybmVsX3NpZ2luZm9f
dCAqbGFzdF9zaWdpbmZvOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfaW9fYWNjb3VudGlu
ZyBpb2FjOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIHU2NCBhY2N0X3Jzc19tZW0xOwoxNDQ3NDogCjE0NDc0OiAgdTY0IGFjY3Rfdm1fbWVt
MTsKMTQ0NzQ6IAoxNDQ3NDogIHU2NCBhY2N0X3RpbWV4cGQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgbm9kZW1hc2tfdCBtZW1zX2FsbG93ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICBzZXFj
b3VudF90IG1lbXNfYWxsb3dlZF9zZXE7CjE0NDc0OiAgaW50IGNwdXNldF9tZW1fc3ByZWFkX3Jv
dG9yOwoxNDQ3NDogIGludCBjcHVzZXRfc2xhYl9zcHJlYWRfcm90b3I7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGNzc19zZXQgKmNncm91cHM7CjE0NDc0OiAKMTQ0NzQ6
ICBzdHJ1Y3QgbGlzdF9oZWFkIGNnX2xpc3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJvYnVzdF9saXN0X2hlYWQgKnJvYnVz
dF9saXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQg
cGlfc3RhdGVfbGlzdDsKMTQ0NzQ6ICBzdHJ1Y3QgZnV0ZXhfcGlfc3RhdGUgKnBpX3N0YXRlX2Nh
Y2hlOwoxNDQ3NDogIHN0cnVjdCBtdXRleCBmdXRleF9leGl0X211dGV4OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBmdXRleF9zdGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHBlcmZf
ZXZlbnRfY29udGV4dCAqcGVyZl9ldmVudF9jdHhwW3BlcmZfbnJfdGFza19jb250ZXh0c107CjE0
NDc0OiAgc3RydWN0IG11dGV4IHBlcmZfZXZlbnRfbXV0ZXg7CjE0NDc0OiAgc3RydWN0IGxpc3Rf
aGVhZCBwZXJmX2V2ZW50X2xpc3Q7CjE0NDc0OiAjIDExMzAgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIgoxNDQ3NDogIHN0cnVjdCByc2VxICpyc2VxOwoxNDQ3NDogIHUzMiByc2VxX3NpZzsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcnNlcV9l
dmVudF9tYXNrOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGxiZmx1c2hfdW5tYXBf
YmF0Y2ggdGxiX3ViYzsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgcmVmY291bnRf
dCByY3VfdXNlcnM7CjE0NDc0OiAgIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6ICB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpzcGxpY2Vf
cGlwZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwYWdlX2ZyYWcgdGFza19mcmFnOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19kZWxheV9pbmZvICpkZWxheXM7CjE0NDc0OiAj
IDExNjMgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogIGludCBucl9kaXJ0aWVkOwox
NDQ3NDogIGludCBucl9kaXJ0aWVkX3BhdXNlOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBkaXJ0eV9wYXVzZWRfd2hlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IGxhdGVuY3lf
cmVjb3JkX2NvdW50OwoxNDQ3NDogIHN0cnVjdCBsYXRlbmN5X3JlY29yZCBsYXRlbmN5X3JlY29y
ZFszMl07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHU2
NCB0aW1lcl9zbGFja19uczsKMTQ0NzQ6ICB1NjQgZGVmYXVsdF90aW1lcl9zbGFja19uczsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGludCBjdXJyX3JldF9zdGFjazsKMTQ0NzQ6ICBpbnQgY3Vycl9yZXRfZGVwdGg7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBmdHJhY2VfcmV0X3N0YWNrICpyZXRfc3RhY2s7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBmdHJhY2VfdGltZXN0YW1w
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNf
dCB0cmFjZV9vdmVycnVuOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCB0cmFjaW5n
X2dyYXBoX3BhdXNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5z
aWduZWQgbG9uZyB0cmFjZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0
cmFjZV9yZWN1cnNpb247CjE0NDc0OiAjIDEyMzUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgox
NDQ3NDogIHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZ19pbl9vb207CjE0NDc0OiAgZ2ZwX3QgbWVt
Y2dfb29tX2dmcF9tYXNrOwoxNDQ3NDogIGludCBtZW1jZ19vb21fb3JkZXI7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBtZW1jZ19ucl9wYWdlc19vdmVyX2hpZ2g7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtZW1fY2dyb3VwICphY3RpdmVfbWVtY2c7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJlcXVlc3RfcXVldWUgKnRocm90dGxl
X3F1ZXVlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIHVuc2lnbmVkIGludCBzZXF1ZW50aWFsX2lvOwoxNDQ3NDogIHVuc2lnbmVkIGludCBz
ZXF1ZW50aWFsX2lvX2F2ZzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGludCBwYWdlZmF1bHRfZGlzYWJsZWQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgdGFza19zdHJ1
Y3QgKm9vbV9yZWFwZXJfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHZtX3N0
cnVjdCAqc3RhY2tfdm1fYXJlYTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByZWZj
b3VudF90IHN0YWNrX3JlZmNvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKnNlY3VyaXR5OwoxNDQ3NDogIyAxMjg4ICIuL2lu
Y2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1
Y3QgdGhyZWFkX3N0cnVjdCB0aHJlYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBw
aWQgKnRhc2tfcGlkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gdGFzay0+dGhyZWFkX3BpZDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTMxNyAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBwaWRfdCBfX3Rhc2tfcGlkX25yX25zKHN0cnVjdCB0YXNr
X3N0cnVjdCAqdGFzaywgZW51bSBwaWRfdHlwZSB0eXBlLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAq
bnMpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BpZF9ucihzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHNrLT5waWQ7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHBpZF90IHRhc2tfcGlkX25yX25zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1
Y3QgcGlkX25hbWVzcGFjZSAqbnMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fdGFza19waWRf
bnJfbnModHNrLCBQSURUWVBFX1BJRCwgbnMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRf
dCB0YXNrX3BpZF92bnIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURUWVBFX1BJRCwgKCh2b2lkICopMCkpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBpZF90IHRhc2tfdGdpZF9ucihzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHNrLT50Z2lkOwoxNDQ3
NDogfQoxNDQ3NDogIyAxMzUwICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBw
aWRfYWxpdmUoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICpwKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBwLT50aHJlYWRfcGlkICE9ICgodm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBwaWRfdCB0YXNrX3BncnBfbnJfbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBw
aWRfbmFtZXNwYWNlICpucykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX190YXNrX3BpZF9ucl9u
cyh0c2ssIFBJRFRZUEVfUEdJRCwgbnMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0
YXNrX3BncnBfdm5yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBfX3Rhc2tfcGlkX25yX25zKHRzaywgUElEVFlQRV9QR0lELCAoKHZvaWQgKikwKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19zZXNzaW9uX25yX25zKHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURUWVBFX1NJRCwgbnMpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3Nlc3Npb25fdm5yKHN0cnVjdCB0YXNr
X3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX3Rhc2tfcGlkX25yX25zKHRz
aywgUElEVFlQRV9TSUQsICgodm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlk
X3QgdGFza190Z2lkX25yX25zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcGlkX25h
bWVzcGFjZSAqbnMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNr
LCBQSURUWVBFX1RHSUQsIG5zKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza190
Z2lkX3ZucihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
X190YXNrX3BpZF9ucl9ucyh0c2ssIFBJRFRZUEVfVEdJRCwgKCh2b2lkICopMCkpOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BwaWRfbnJfbnMoY29uc3Qgc3RydWN0IHRhc2tf
c3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucykKMTQ0NzQ6IHsKMTQ0NzQ6ICBw
aWRfdCBwaWQgPSAwOwoxNDQ3NDogCjE0NDc0OiAgcmN1X3JlYWRfbG9jaygpOwoxNDQ3NDogIGlm
IChwaWRfYWxpdmUodHNrKSkKMTQ0NzQ6ICAgcGlkID0gdGFza190Z2lkX25yX25zKCh7IHR5cGVv
ZigqKHRzay0+cmVhbF9wYXJlbnQpKSAqX19fX19fX19wMSA9ICh0eXBlb2YoKih0c2stPnJlYWxf
cGFyZW50KSkgKikoeyB1bmlvbiB7IHR5cGVvZigodHNrLT5yZWFsX3BhcmVudCkpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKHRzay0+cmVhbF9w
YXJlbnQpKSwgX191Ll9fYywgc2l6ZW9mKCh0c2stPnJlYWxfcGFyZW50KSkpOyBlbHNlIF9fcmVh
ZF9vbmNlX3NpemVfbm9jaGVjaygmKCh0c2stPnJlYWxfcGFyZW50KSksIF9fdS5fX2MsIHNpemVv
ZigodHNrLT5yZWFsX3BhcmVudCkpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsg
ZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKHRzay0+cmVhbF9wYXJlbnQpKSAqKShfX19f
X19fX3AxKSk7IH0pLCBucyk7CjE0NDc0OiAgcmN1X3JlYWRfdW5sb2NrKCk7CjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gcGlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BwaWRf
bnIoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IHRhc2tfcHBpZF9ucl9ucyh0c2ssICZpbml0X3BpZF9ucyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19wZ3JwX25yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiB0YXNrX3BncnBfbnJfbnModHNrLCAmaW5pdF9waWRfbnMp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBpbnQgdGFza19zdGF0ZV9pbmRleChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdHNrX3N0YXRlID0gKHsgdW5pb24geyB0eXBlb2YodHNrLT5z
dGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUo
Jih0c2stPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3RhdGUpKTsgZWxzZSBfX3JlYWRf
b25jZV9zaXplX25vY2hlY2soJih0c2stPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3Rh
dGUpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgc3RhdGUgPSAodHNrX3N0YXRlIHwgdHNrLT5leGl0X3N0YXRlKSAmICgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
OwoxNDQ3NDogCjE0NDc0OiAgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8x
NDE3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDog
IiAiKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgPT0gMCB8fCAoKCgoKCgweDAwMDAgfCAw
eDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAw
NDApICsgMSkgPDwgMSkpICYgKCgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQg
fCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpIC0gMSkpICE9
IDApIikpKTsgaWYgKCEoISgoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwg
MHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA9PSAwIHx8ICgo
KCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8
IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4
MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8
PCAxKSkgLSAxKSkgIT0gMCkpKSkgX19jb21waWxldGltZV9hc3NlcnRfMTQxNygpOyB9IHdoaWxl
ICgwKTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICh0c2tfc3RhdGUgPT0gKDB4MDAwMiB8IDB4MDQwMCkp
CjE0NDc0OiAgIHN0YXRlID0gKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAw
eDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSk7CjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gZmxzKHN0YXRlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2hhciB0YXNrX2luZGV4
X3RvX2NoYXIodW5zaWduZWQgaW50IHN0YXRlKQoxNDQ3NDogewoxNDQ3NDogIHN0YXRpYyBjb25z
dCBjaGFyIHN0YXRlX2NoYXJbXSA9ICJSU0RUdFhaUEkiOwoxNDQ3NDogCjE0NDc0OiAgZG8geyBl
eHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDI5KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiMSArIGlsb2cyKFRBU0tfUkVQT1JU
X01BWCkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSIpKSk7IGlmICghKCEoMSArICggX19idWls
dGluX2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggX19idWlsdGlu
X2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgPCAyID8gMCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIg
fCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkp
ICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgw
MDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgx
VUxMIDw8IDYyKSA/IDYyIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8
IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8
PCA2MSkgPyA2MSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAw
MDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNjAp
ID8gNjAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU5KSA/IDU5
IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgo
KCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAw
eDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTcpID8gNTcgOiAoKCgoMHgw
MDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIw
IHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTQpID8gNTQgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwg
MHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEp
IDw8IDEpKSAmICgxVUxMIDw8IDUzKSA/IDUzIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAw
MiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAx
KSkgJiAoMVVMTCA8PCA1MikgPyA1MiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAw
eDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYg
KDFVTEwgPDwgNTEpID8gNTEgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0
IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxM
IDw8IDUwKSA/IDUwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0
OSkgPyA0OSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDgg
fCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDgpID8g
NDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDog
KCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8
IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgoKCgw
eDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAw
MjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKCgoMHgwMDAw
IHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwg
MHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ0KSA/IDQ0IDogKCgoKDB4MDAwMCB8IDB4
MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0
MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0MykgPyA0MyA6ICgoKCgweDAwMDAgfCAweDAwMDEg
fCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsg
MSkgPDwgMSkpICYgKDFVTEwgPDwgNDIpID8gNDIgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgw
MDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8
IDEpKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8
IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkg
JiAoMVVMTCA8PCA0MCkgPyA0MCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgMzkpID8gMzkgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwg
MHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8
IDM4KSA/IDM4IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAw
OCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNykg
PyAzNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAw
eDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzYpID8gMzYg
OiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEw
IHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgoKCgweDAw
MDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAg
fCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzMpID8gMzMgOiAoKCgoMHgwMDAwIHwg
MHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgw
MDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKCgoKDB4MDAwMCB8IDB4MDAw
MSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkg
KyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzMSkgPyAzMSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAw
eDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkg
PDwgMSkpICYgKDFVTEwgPDwgMzApID8gMzAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4
MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAo
MVVMTCA8PCAyOCkgPyAyOCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQg
fCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwg
PDwgMjcpID8gMjcgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDI2
KSA/IDI2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8
IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyNSkgPyAy
NSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAw
MTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAo
KCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwg
MHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIzKSA/IDIzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyMikgPyAyMiA6ICgoKCgweDAwMDAg
fCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAw
eDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjEpID8gMjEgOiAoKCgoMHgwMDAwIHwgMHgw
MDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQw
KSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAw
MDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwg
MSkpICYgKDFVTEwgPDwgMTgpID8gMTggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwg
MHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAm
ICgxVUxMIDw8IDE3KSA/IDE3IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAw
NCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVM
TCA8PCAxNikgPyAxNiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAw
eDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwg
MTUpID8gMTUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDE0KSA/
IDE0IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4
MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMykgPyAxMyA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMTIpID8gMTIgOiAoKCgo
MHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgw
MDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDExKSA/IDExIDogKCgoKDB4MDAw
MCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8
IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgoKCgweDAwMDAgfCAw
eDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAw
NDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgOSkgPyA5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCA4KSA/IDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDcpID8gNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgNikgPyA2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1
KSA/IDUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQpID8gNCA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMykgPyAzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChz
aXplb2YoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA8PSA0KSA/IF9faWxvZzJfdTMyKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgOiBfX2lsb2cyX3U2NCgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSkpKSBfX2NvbXBpbGV0aW1l
X2Fzc2VydF8xNDI5KCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHN0YXRl
X2NoYXJbc3RhdGVdOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjaGFyIHRhc2tfc3RhdGVfdG9f
Y2hhcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdGFz
a19pbmRleF90b19jaGFyKHRhc2tfc3RhdGVfaW5kZXgodHNrKSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDE0NDggIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlzX2dsb2JhbF9pbml0
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB0YXNrX3Rn
aWRfbnIodHNrKSA9PSAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHBp
ZCAqY2FkX3BpZDsKMTQ0NzQ6ICMgMTUxNyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGlzX3BlcmNwdV90aHJlYWQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJl
dHVybiAoZ2V0X2N1cnJlbnQoKS0+ZmxhZ3MgJiAweDA0MDAwMDAwKSAmJgoxNDQ3NDogICAoZ2V0
X2N1cnJlbnQoKS0+bnJfY3B1c19hbGxvd2VkID09IDEpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogfQoxNDQ3NDogIyAxNTQ5ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgdGFza19ub19uZXdfcHJpdnMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0
ZXN0X2JpdCgwLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0YXNrX3NldF9ub19u
ZXdfcHJpdnMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHNldF9iaXQoMCwgJnAtPmF0b21pY19m
bGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwcmVhZF9wYWdlKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCkgeyByZXR1cm4gdGVzdF9iaXQoMSwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgdGFza19zZXRfc3ByZWFkX3BhZ2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHNl
dF9iaXQoMSwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19jbGVhcl9zcHJl
YWRfcGFnZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgY2xlYXJfYml0KDEsICZwLT5hdG9taWNf
ZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19zcHJlYWRfc2xhYihzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDIsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHRhc2tfc2V0X3NwcmVhZF9zbGFiKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBz
ZXRfYml0KDIsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfY2xlYXJfc3By
ZWFkX3NsYWIoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNsZWFyX2JpdCgyLCAmcC0+YXRvbWlj
X2ZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRhc2tfc3BlY19zc2JfZGlzYWJsZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDMsICZwLT5hdG9taWNfZmxhZ3Mp
OyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX2Rpc2FibGUoc3RydWN0IHRhc2tfc3Ry
dWN0ICpwKSB7IHNldF9iaXQoMywgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFz
a19jbGVhcl9zcGVjX3NzYl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBjbGVhcl9i
aXQoMywgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwZWNf
c3NiX25vZXhlYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDcsICZw
LT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX25vZXhlYyhz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2JpdCg3LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB0YXNrX2NsZWFyX3NwZWNfc3NiX25vZXhlYyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnApIHsgY2xlYXJfYml0KDcsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgdGFza19zcGVjX3NzYl9mb3JjZV9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBy
ZXR1cm4gdGVzdF9iaXQoNCwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19z
ZXRfc3BlY19zc2JfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2Jp
dCg0LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRhc2tfc3BlY19p
Yl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyByZXR1cm4gdGVzdF9iaXQoNSwgJnAt
PmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19zZXRfc3BlY19pYl9kaXNhYmxlKHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBzZXRfYml0KDUsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHRhc2tfY2xlYXJfc3BlY19pYl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAq
cCkgeyBjbGVhcl9iaXQoNSwgJnAtPmF0b21pY19mbGFncyk7IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCB0YXNrX3NwZWNfaWJfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0
dXJuIHRlc3RfYml0KDYsICZwLT5hdG9taWNfZmxhZ3MpOyB9CjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0
X3NwZWNfaWJfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2JpdCg2
LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiBjdXJyZW50
X3Jlc3RvcmVfZmxhZ3ModW5zaWduZWQgbG9uZyBvcmlnX2ZsYWdzLCB1bnNpZ25lZCBsb25nIGZs
YWdzKQoxNDQ3NDogewoxNDQ3NDogIGdldF9jdXJyZW50KCktPmZsYWdzICY9IH5mbGFnczsKMTQ0
NzQ6ICBnZXRfY3VycmVudCgpLT5mbGFncyB8PSBvcmlnX2ZsYWdzICYgZmxhZ3M7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgY3B1c2V0X2NwdW1hc2tfY2FuX3Nocmluayhjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqY3VyLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqdHJpYWwpOwoxNDQ3
NDogZXh0ZXJuIGludCB0YXNrX2Nhbl9hdHRhY2goc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqY3NfY3B1c19hbGxvd2VkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHZvaWQgZG9fc2V0X2NwdXNfYWxsb3dlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNvbnN0IHN0
cnVjdCBjcHVtYXNrICpuZXdfbWFzayk7CjE0NDc0OiBleHRlcm4gaW50IHNldF9jcHVzX2FsbG93
ZWRfcHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKm5ld19t
YXNrKTsKMTQ0NzQ6ICMgMTYwMiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBleHRl
cm4gaW50IHlpZWxkX3RvKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgYm9vbCBwcmVlbXB0KTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIHNldF91c2VyX25pY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBsb25n
IG5pY2UpOwoxNDQ3NDogZXh0ZXJuIGludCB0YXNrX3ByaW8oY29uc3Qgc3RydWN0IHRhc2tfc3Ry
dWN0ICpwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHRhc2tfbmljZShjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKHApLT5zdGF0aWNfcHJpbykgLSAoMTAwICsgKDE5
IC0gLTIwICsgMSkgLyAyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgY2Fu
X25pY2UoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjb25zdCBpbnQgbmljZSk7CjE0NDc0
OiBleHRlcm4gaW50IHRhc2tfY3Vycihjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwoxNDQ3
NDogZXh0ZXJuIGludCBpZGxlX2NwdShpbnQgY3B1KTsKMTQ0NzQ6IGV4dGVybiBpbnQgYXZhaWxh
YmxlX2lkbGVfY3B1KGludCBjcHUpOwoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZF9zZXRzY2hlZHVs
ZXIoc3RydWN0IHRhc2tfc3RydWN0ICosIGludCwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICop
OwoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKiwgaW50LCBjb25zdCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKik7CjE0NDc0OiBleHRl
cm4gaW50IHNjaGVkX3NldGF0dHIoc3RydWN0IHRhc2tfc3RydWN0ICosIGNvbnN0IHN0cnVjdCBz
Y2hlZF9hdHRyICopOwoxNDQ3NDogZXh0ZXJuIGludCBzY2hlZF9zZXRhdHRyX25vY2hlY2soc3Ry
dWN0IHRhc2tfc3RydWN0ICosIGNvbnN0IHN0cnVjdCBzY2hlZF9hdHRyICopOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZV90YXNrKGludCBjcHUpOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlz
X2lkbGVfdGFzayhjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuICEhKHAtPmZsYWdzICYgMHgwMDAwMDAwMik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnJfdGFzayhpbnQgY3B1KTsKMTQ0NzQ6IGV4
dGVybiB2b2lkIGlhNjRfc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnApOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHlpZWxkKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiB1bmlv
biB0aHJlYWRfdW5pb24gewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRhc2tfc3RydWN0IHRhc2s7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHN0
YWNrWygoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpL3NpemVvZihsb25nKV07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB1bnNp
Z25lZCBsb25nIGluaXRfc3RhY2tbKCgoMVVMKSA8PCAxMikgPDwgKDIgKyAwKSkgLyBzaXplb2Yo
dW5zaWduZWQgbG9uZyldOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0aHJlYWRfaW5m
byAqdGFza190aHJlYWRfaW5mbyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICZ0YXNrLT50aHJlYWRfaW5mbzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTY3OSAi
Li9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0
ICpmaW5kX3Rhc2tfYnlfdnBpZChwaWRfdCBucik7CjE0NDc0OiBleHRlcm4gc3RydWN0IHRhc2tf
c3RydWN0ICpmaW5kX3Rhc2tfYnlfcGlkX25zKHBpZF90IG5yLCBzdHJ1Y3QgcGlkX25hbWVzcGFj
ZSAqbnMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3Ry
dWN0IHRhc2tfc3RydWN0ICpmaW5kX2dldF90YXNrX2J5X3ZwaWQocGlkX3QgbnIpOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IHdha2VfdXBfc3RhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ss
IHVuc2lnbmVkIGludCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gaW50IHdha2VfdXBfcHJvY2Vzcyhz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtlX3VwX25ld190
YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBraWNrX3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX3NldF90YXNrX2NvbW0o
c3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGNvbnN0IGNoYXIgKmZyb20sIGJvb2wgZXhlYyk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgc2V0X3Rhc2tfY29tbShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywg
Y29uc3QgY2hhciAqZnJvbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NldF90YXNrX2NvbW0odHNrLCBm
cm9tLCBmYWxzZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICpfX2dldF90
YXNrX2NvbW0oY2hhciAqdG8sIHNpemVfdCBsZW4sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgc2NoZWR1bGVyX2lwaSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBsb25nIHdhaXRf
dGFza19pbmFjdGl2ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgbG9uZyBtYXRjaF9zdGF0ZSk7CjE0
NDc0OiAjIDE3MjUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXRfdHNr
X3RocmVhZF9mbGFnKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgZmxhZykKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzZXRfdGlfdGhyZWFkX2ZsYWcodGFza190aHJlYWRfaW5mbyh0c2spLCBmbGFnKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl90c2tfdGhyZWFkX2ZsYWcoc3RydWN0
IHRhc2tfc3RydWN0ICp0c2ssIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIGNsZWFyX3RpX3Ro
cmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgdXBkYXRlX3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRz
aywgaW50IGZsYWcsCjE0NDc0OiAgICAgICAgYm9vbCB2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICB1
cGRhdGVfdGlfdGhyZWFkX2ZsYWcodGFza190aHJlYWRfaW5mbyh0c2spLCBmbGFnLCB2YWx1ZSk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9zZXRfdHNrX3RocmVhZF9mbGFn
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgZmxhZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gdGVzdF9hbmRfc2V0X3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxh
Zyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9jbGVhcl90c2tfdGhyZWFk
X2ZsYWcoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiB0ZXN0X2FuZF9jbGVhcl90aV90aHJlYWRfZmxhZyh0YXNrX3RocmVhZF9pbmZvKHRz
ayksIGZsYWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF90c2tfdGhyZWFkX2Zs
YWcoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBmbGFnKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiB0ZXN0X3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X3Rza19uZWVkX3Jlc2NoZWQoc3RydWN0IHRh
c2tfc3RydWN0ICp0c2spCjE0NDc0OiB7CjE0NDc0OiAgc2V0X3Rza190aHJlYWRfZmxhZyh0c2ss
Myk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY2xlYXJfdHNrX25lZWRfcmVzY2hlZChz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBjbGVhcl90c2tfdGhyZWFk
X2ZsYWcodHNrLDMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF90c2tfbmVlZF9y
ZXNjaGVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBf
X2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRzaywzKSksIDApOwoxNDQ3
NDogfQoxNDQ3NDogIyAxNzc4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKMTQ0NzQ6IGV4dGVy
biBpbnQgX2NvbmRfcmVzY2hlZCh2b2lkKTsKMTQ0NzQ6ICMgMTc4OCAiLi9pbmNsdWRlL2xpbnV4
L3NjaGVkLmgiCjE0NDc0OiBleHRlcm4gaW50IF9fY29uZF9yZXNjaGVkX2xvY2soc3BpbmxvY2tf
dCAqbG9jayk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGNvbmRfcmVzY2hlZF9yY3Uodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3
NDogIHJjdV9yZWFkX3VubG9jaygpOwoxNDQ3NDogICh7IF9fX21pZ2h0X3NsZWVwKCJpbmNsdWRl
L2xpbnV4L3NjaGVkLmgiLCAxNzk5LCAwKTsgX2NvbmRfcmVzY2hlZCgpOyB9KTsKMTQ0NzQ6ICBy
Y3VfcmVhZF9sb2NrKCk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzcGluX25lZWRicmVhayhzcGlubG9j
a190ICpsb2NrKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVy
biAwOwoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgYm9vbCBuZWVkX3Jlc2NoZWQodm9pZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gX19idWlsdGluX2V4cGVjdCghISh0ZXN0X3RpX3RocmVhZF9mbGFnKCgoc3RydWN0IHRo
cmVhZF9pbmZvICopZ2V0X2N1cnJlbnQoKSksIDMpKSwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQg
dGFza19jcHUoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICpwKQoxNDQ3NDogewoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKHAtPmNwdSkgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihwLT5jcHUpLCBfX3UuX19jLCBzaXpl
b2YocC0+Y3B1KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocC0+Y3B1KSwgX191
Ll9fYywgc2l6ZW9mKHAtPmNwdSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCBzZXRfdGFza19jcHUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KTsK
MTQ0NzQ6ICMgMTg2NyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCjE0NDc0OiBleHRlcm4gbG9u
ZyBzY2hlZF9zZXRhZmZpbml0eShwaWRfdCBwaWQsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpuZXdf
bWFzayk7CjE0NDc0OiBleHRlcm4gbG9uZyBzY2hlZF9nZXRhZmZpbml0eShwaWRfdCBwaWQsIHN0
cnVjdCBjcHVtYXNrICptYXNrKTsKMTQ0NzQ6ICMgMTg4MCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiCjE0NDc0OiBlbnVtIHJzZXFfZXZlbnRfbWFza19iaXRzIHsKMTQ0NzQ6ICBSU0VRX0VWRU5U
X1BSRUVNUFRfQklUID0gUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVF9CSVQsCjE0
NDc0OiAgUlNFUV9FVkVOVF9TSUdOQUxfQklUID0gUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05f
U0lHTkFMX0JJVCwKMTQ0NzQ6ICBSU0VRX0VWRU5UX01JR1JBVEVfQklUID0gUlNFUV9DU19GTEFH
X05PX1JFU1RBUlRfT05fTUlHUkFURV9CSVQsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IHJzZXFfZXZlbnRfbWFzayB7CjE0NDc0OiAgUlNFUV9FVkVOVF9QUkVFTVBUID0gKDFVIDw8IFJT
RVFfRVZFTlRfUFJFRU1QVF9CSVQpLAoxNDQ3NDogIFJTRVFfRVZFTlRfU0lHTkFMID0gKDFVIDw8
IFJTRVFfRVZFTlRfU0lHTkFMX0JJVCksCjE0NDc0OiAgUlNFUV9FVkVOVF9NSUdSQVRFID0gKDFV
IDw8IFJTRVFfRVZFTlRfTUlHUkFURV9CSVQpLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCByc2VxX3NldF9ub3RpZnlfcmVzdW1lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAodC0+cnNlcSkKMTQ0NzQ6ICAgc2V0X3Rza190aHJlYWRfZmxhZyh0LCAxKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX3JzZXFfaGFuZGxlX25vdGlmeV9yZXN1bWUo
c3RydWN0IGtzaWduYWwgKnNpZywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHJzZXFfaGFuZGxlX25vdGlmeV9yZXN1bWUoc3RydWN0IGtzaWduYWwgKmtzaWcsCjE0
NDc0OiAgICAgICAgICAgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KGdldF9jdXJyZW50KCktPnJzZXEpCjE0NDc0OiAgIF9fcnNlcV9oYW5kbGVfbm90aWZ5X3Jlc3Vt
ZShrc2lnLCByZWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByc2VxX3NpZ25hbF9k
ZWxpdmVyKHN0cnVjdCBrc2lnbmFsICprc2lnLAoxNDQ3NDogICAgICAgICAgICBzdHJ1Y3QgcHRf
cmVncyAqcmVncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6
Im1lbW9yeSIpOwoxNDQ3NDogIF9fc2V0X2JpdChSU0VRX0VWRU5UX1NJR05BTF9CSVQsICZnZXRf
Y3VycmVudCgpLT5yc2VxX2V2ZW50X21hc2spOwoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9f
KCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiAgcnNlcV9oYW5kbGVfbm90aWZ5X3Jlc3VtZShrc2ln
LCByZWdzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfcHJlZW1w
dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpCjE0NDc0OiB7CjE0NDc0OiAgX19zZXRfYml0KFJTRVFf
RVZFTlRfUFJFRU1QVF9CSVQsICZ0LT5yc2VxX2V2ZW50X21hc2spOwoxNDQ3NDogIHJzZXFfc2V0
X25vdGlmeV9yZXN1bWUodCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBy
c2VxX21pZ3JhdGUoc3RydWN0IHRhc2tfc3RydWN0ICp0KQoxNDQ3NDogewoxNDQ3NDogIF9fc2V0
X2JpdChSU0VRX0VWRU5UX01JR1JBVEVfQklULCAmdC0+cnNlcV9ldmVudF9tYXNrKTsKMTQ0NzQ6
ICByc2VxX3NldF9ub3RpZnlfcmVzdW1lKHQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9mb3JrKHN0cnVjdCB0YXNrX3N0
cnVjdCAqdCwgdW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
Y2xvbmVfZmxhZ3MgJiAweDAwMDAwMTAwKSB7CjE0NDc0OiAgIHQtPnJzZXEgPSAoKHZvaWQgKikw
KTsKMTQ0NzQ6ICAgdC0+cnNlcV9zaWcgPSAwOwoxNDQ3NDogICB0LT5yc2VxX2V2ZW50X21hc2sg
PSAwOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHQtPnJzZXEgPSBnZXRfY3VycmVudCgpLT5y
c2VxOwoxNDQ3NDogICB0LT5yc2VxX3NpZyA9IGdldF9jdXJyZW50KCktPnJzZXFfc2lnOwoxNDQ3
NDogICB0LT5yc2VxX2V2ZW50X21hc2sgPSBnZXRfY3VycmVudCgpLT5yc2VxX2V2ZW50X21hc2s7
CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfZXhlY3ZlKHN0cnVj
dCB0YXNrX3N0cnVjdCAqdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICB0LT5yc2VxID0gKCh2b2lkICopMCk7
CjE0NDc0OiAgdC0+cnNlcV9zaWcgPSAwOwoxNDQ3NDogIHQtPnJzZXFfZXZlbnRfbWFzayA9IDA7
CjE0NDc0OiB9CjE0NDc0OiAjIDE5ODIgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgoxNDQ3NDog
dm9pZCBfX2V4aXRfdW1oKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBleGl0X3VtaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBp
ZiAoX19idWlsdGluX2V4cGVjdCghISh0c2stPmZsYWdzICYgMHgwMjAwMDAwMCksIDApKQoxNDQ3
NDogICBfX2V4aXRfdW1oKHRzayk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9zeXNjYWxsKHN0
cnVjdCBwdF9yZWdzICpyZWdzKQoxNDQ3NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2VfY2ZzX3JxX2F2
ZyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpOwoxNDQ3NDogY2hhciAqc2NoZWRfdHJhY2VfY2ZzX3Jx
X3BhdGgoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBjaGFyICpzdHIsIGludCBsZW4pOwoxNDQ3NDog
aW50IHNjaGVkX3RyYWNlX2Nmc19ycV9jcHUoc3RydWN0IGNmc19ycSAqY2ZzX3JxKTsKMTQ0NzQ6
IAoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2VfcnFfYXZnX3J0KHN0
cnVjdCBycSAqcnEpOwoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2Vf
cnFfYXZnX2RsKHN0cnVjdCBycSAqcnEpOwoxNDQ3NDogY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAq
c2NoZWRfdHJhY2VfcnFfYXZnX2lycShzdHJ1Y3QgcnEgKnJxKTsKMTQ0NzQ6IAoxNDQ3NDogaW50
IHNjaGVkX3RyYWNlX3JxX2NwdShzdHJ1Y3QgcnEgKnJxKTsKMTQ0NzQ6IAoxNDQ3NDogY29uc3Qg
c3RydWN0IGNwdW1hc2sgKnNjaGVkX3RyYWNlX3JkX3NwYW4oc3RydWN0IHJvb3RfZG9tYWluICpy
ZCk7CjE0NDc0OiAjIDYgIi4vaW5jbHVkZS9saW51eC9pb3ByaW8uaCIgMgoxNDQ3NDogIyAxICIu
L2luY2x1ZGUvbGludXgvc2NoZWQvcnQuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgcnRfcHJpbyhpbnQgcHJpbykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoX19idWlsdGlu
X2V4cGVjdCghIShwcmlvIDwgMTAwKSwgMCkpCjE0NDc0OiAgIHJldHVybiAxOwoxNDQ3NDogIHJl
dHVybiAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcnRfdGFzayhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJ0X3ByaW8ocC0+cHJpbyk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19pc19yZWFsdGltZShzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnRzaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgcG9saWN5ID0gdHNrLT5wb2xpY3k7CjE0NDc0
OiAKMTQ0NzQ6ICBpZiAocG9saWN5ID09IDEgfHwgcG9saWN5ID09IDIpCjE0NDc0OiAgIHJldHVy
biB0cnVlOwoxNDQ3NDogIGlmIChwb2xpY3kgPT0gNikKMTQ0NzQ6ICAgcmV0dXJuIHRydWU7CjE0
NDc0OiAgcmV0dXJuIGZhbHNlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0YXNrX3N0cnVjdCAqcnRfbXV0ZXhfZ2V0X3RvcF90
YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcC0+cGlf
dG9wX3Rhc2s7CjE0NDc0OiB9CjE0NDc0OiBleHRlcm4gdm9pZCBydF9tdXRleF9zZXRwcmlvKHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHRhc2tfc3RydWN0ICpwaV90YXNrKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIHJ0X211dGV4X2FkanVzdF9waShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCB0c2tfaXNfcGlfYmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdHNrLT5waV9ibG9ja2VkX29uICE9ICgodm9pZCAqKTApOwox
NDQ3NDogfQoxNDQ3NDogIyA1OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkL3J0LmgiCjE0NDc0OiBl
eHRlcm4gdm9pZCBub3JtYWxpemVfcnRfdGFza3Modm9pZCk7CjE0NDc0OiAjIDcgIi4vaW5jbHVk
ZS9saW51eC9pb3ByaW8uaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvaW9jb250ZXh0
LmgiIDEKMTQ0NzQ6ICMgOSAiLi9pbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgSUNRX0VYSVRFRCA9IDEgPDwgMiwKMTQ0NzQ6IH07CjE0NDc0OiAjIDcyICIu
L2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgiCjE0NDc0OiBzdHJ1Y3QgaW9fY3EgewoxNDQ3NDog
IHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxOwoxNDQ3NDogIHN0cnVjdCBpb19jb250ZXh0ICppb2M7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgcV9ub2RlOwoxNDQ3NDog
ICBzdHJ1Y3Qga21lbV9jYWNoZSAqX19yY3VfaWNxX2NhY2hlOwoxNDQ3NDogIH07CjE0NDc0OiAg
dW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgaGxpc3Rfbm9kZSBpb2Nfbm9kZTsKMTQ0NzQ6ICAgc3Ry
dWN0IGNhbGxiYWNrX2hlYWQgX19yY3VfaGVhZDsKMTQ0NzQ6ICB9OwoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgaW50IGZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaW9fY29udGV4dCB7CjE0NDc0OiAgYXRvbWljX2xv
bmdfdCByZWZjb3VudDsKMTQ0NzQ6ICBhdG9taWNfdCBhY3RpdmVfcmVmOwoxNDQ3NDogIGF0b21p
Y190IG5yX3Rhc2tzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzcGlubG9ja190IGxvY2s7CjE0
NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBpb3ByaW87CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgbnJfYmF0Y2hfcmVxdWVzdHM7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBsYXN0X3dhaXRlZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB4YXJyYXkgaWNxX3Ry
ZWU7CjE0NDc0OiAgc3RydWN0IGlvX2NxICppY3FfaGludDsKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3Rf
aGVhZCBpY3FfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB3b3JrX3N0cnVjdCByZWxlYXNl
X3dvcms7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjkgIi4vaW5jbHVkZS9saW51eC9pb2NvbnRleHQu
aCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZ2V0X2lvX2NvbnRleHRfYWN0aXZlKHN0cnVjdCBpb19jb250ZXh0ICpp
b2MpCjE0NDc0OiB7CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhIShhdG9taWNfbG9u
Z19yZWFkKCZpb2MtPnJlZmNvdW50KSA8PSAwKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAi
LmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxu
IiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxu
IiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0
LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVn
X2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIg
KCJpbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oIiksICJpIiAoMTMxKSwgImkiICgoMSA8PCAwKXwo
KDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7
IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxu
XHQiIDogOiAiaSIgKDI1KSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShf
X3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEo
YXRvbWljX3JlYWQoJmlvYy0+YWN0aXZlX3JlZikgPD0gMCk7IGlmIChfX2J1aWx0aW5fZXhwZWN0
KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgi
MTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxc
ImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVn
X2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxl
XG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAi
XHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6
IDogImkiICgiaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCIpLCAiaSIgKDEzMiksICJpIiAoKDEg
PDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2Vu
dHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiA6IDogImkiICgyNikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBl
Y3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICBhdG9taWNfbG9uZ19pbmMoJmlv
Yy0+cmVmY291bnQpOwoxNDQ3NDogIGF0b21pY19pbmMoJmlvYy0+YWN0aXZlX3JlZik7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW9jX3Rhc2tfbGluayhzdHJ1Y3QgaW9fY29udGV4dCAq
aW9jKQoxNDQ3NDogewoxNDQ3NDogIGdldF9pb19jb250ZXh0X2FjdGl2ZShpb2MpOwoxNDQ3NDog
CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhIShhdG9taWNfcmVhZCgmaW9jLT5ucl90
YXNrcykgPD0gMCk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9p
b2NvbnRleHQuaCIpLCAiaSIgKDE0MSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8
PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsg
YXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVc
blx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgyNykp
OyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDAp
OyB9KTsKMTQ0NzQ6ICBhdG9taWNfaW5jKCZpb2MtPm5yX3Rhc2tzKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHRhc2tfc3RydWN0OwoxNDQ3NDogCjE0NDc0OiB2b2lkIHB1dF9pb19j
b250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICppb2MpOwoxNDQ3NDogdm9pZCBwdXRfaW9fY29udGV4
dF9hY3RpdmUoc3RydWN0IGlvX2NvbnRleHQgKmlvYyk7CjE0NDc0OiB2b2lkIGV4aXRfaW9fY29u
dGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoxNDQ3NDogc3RydWN0IGlvX2NvbnRleHQg
KmdldF90YXNrX2lvX2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAoxNDQ3NDogICAg
ICAgICAgICBnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKMTQ0NzQ6ICMgOCAiLi9pbmNsdWRl
L2xpbnV4L2lvcHJpby5oIiAyCjE0NDc0OiAjIDI3ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgi
CjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBJT1BSSU9fQ0xBU1NfTk9ORSwKMTQ0NzQ6ICBJT1BSSU9f
Q0xBU1NfUlQsCjE0NDc0OiAgSU9QUklPX0NMQVNTX0JFLAoxNDQ3NDogIElPUFJJT19DTEFTU19J
RExFLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIElPUFJJT19XSE9fUFJPQ0VTUyA9IDEsCjE0NDc0
OiAgSU9QUklPX1dIT19QR1JQLAoxNDQ3NDogIElPUFJJT19XSE9fVVNFUiwKMTQ0NzQ6IH07CjE0
NDc0OiAjIDU0ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGFza19uaWNl
X2lvcHJpbyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
ICh0YXNrX25pY2UodGFzaykgKyAyMCkgLyA1OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0YXNrX25pY2VfaW9jbGFzcyhzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRhc2spCjE0NDc0OiB7CjE0NDc0OiAgaWYgKHRhc2stPnBvbGljeSA9PSA1
KQoxNDQ3NDogICByZXR1cm4gSU9QUklPX0NMQVNTX0lETEU7CjE0NDc0OiAgZWxzZSBpZiAodGFz
a19pc19yZWFsdGltZSh0YXNrKSkKMTQ0NzQ6ICAgcmV0dXJuIElPUFJJT19DTEFTU19SVDsKMTQ0
NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiBJT1BSSU9fQ0xBU1NfQkU7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGdldF9jdXJyZW50
X2lvcHJpbyh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBpb19jb250ZXh0ICppb2MgPSBn
ZXRfY3VycmVudCgpLT5pb19jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiAgaWYgKGlvYykKMTQ0NzQ6
ICAgcmV0dXJuIGlvYy0+aW9wcmlvOwoxNDQ3NDogIHJldHVybiAoKChJT1BSSU9fQ0xBU1NfTk9O
RSkgPDwgKDEzKSkgfCAwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGludCBpb3ByaW9fYmVzdCh1bnNpZ25lZCBzaG9ydCBhcHJpbywgdW5z
aWduZWQgc2hvcnQgYnByaW8pOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHNldF90YXNrX2lv
cHJpbyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGludCBpb3ByaW8pOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgaW9wcmlvX2NoZWNrX2NhcChpbnQgaW9wcmlvKTsKMTQ0NzQ6
ICMgNDAgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51
eC9mc190eXBlcy5oIiAxCjE0NDc0OiAjIDcxICIuL2luY2x1ZGUvbGludXgvZnNfdHlwZXMuaCIK
MTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBjaGFyIGZzX2Z0eXBlX3RvX2R0eXBlKHVuc2lnbmVkIGlu
dCBmaWxldHlwZSk7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgY2hhciBmc191bW9kZV90b19mdHlw
ZSh1bW9kZV90IG1vZGUpOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGNoYXIgZnNfdW1vZGVfdG9f
ZHR5cGUodW1vZGVfdCBtb2RlKTsKMTQ0NzQ6ICMgNDEgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvZnMuaCIgMQoxNDQ3NDogIyA1NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCIK
MTQ0NzQ6IHN0cnVjdCBmaWxlX2Nsb25lX3JhbmdlIHsKMTQ0NzQ6ICBfX3M2NCBzcmNfZmQ7CjE0
NDc0OiAgX191NjQgc3JjX29mZnNldDsKMTQ0NzQ6ICBfX3U2NCBzcmNfbGVuZ3RoOwoxNDQ3NDog
IF9fdTY0IGRlc3Rfb2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZzdHJp
bV9yYW5nZSB7CjE0NDc0OiAgX191NjQgc3RhcnQ7CjE0NDc0OiAgX191NjQgbGVuOwoxNDQ3NDog
IF9fdTY0IG1pbmxlbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyB7CjE0
NDc0OiAgX19zNjQgZGVzdF9mZDsKMTQ0NzQ6ICBfX3U2NCBkZXN0X29mZnNldDsKMTQ0NzQ6ICBf
X3U2NCBieXRlc19kZWR1cGVkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fczMyIHN0YXR1czsKMTQ0NzQ6ICBfX3UzMiByZXNlcnZlZDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVfZGVkdXBlX3Jhbmdl
IHsKMTQ0NzQ6ICBfX3U2NCBzcmNfb2Zmc2V0OwoxNDQ3NDogIF9fdTY0IHNyY19sZW5ndGg7CjE0
NDc0OiAgX191MTYgZGVzdF9jb3VudDsKMTQ0NzQ6ICBfX3UxNiByZXNlcnZlZDE7CjE0NDc0OiAg
X191MzIgcmVzZXJ2ZWQyOwoxNDQ3NDogIHN0cnVjdCBmaWxlX2RlZHVwZV9yYW5nZV9pbmZvIGlu
Zm9bMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaWxlc19zdGF0
X3N0cnVjdCB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBucl9maWxlczsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIG5yX2ZyZWVfZmlsZXM7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtYXhfZmlsZXM7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaW5vZGVzX3N0YXRfdCB7CjE0NDc0OiAgbG9u
ZyBucl9pbm9kZXM7CjE0NDc0OiAgbG9uZyBucl91bnVzZWQ7CjE0NDc0OiAgbG9uZyBkdW1teVs1
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmc3hhdHRyIHsKMTQ0NzQ6ICBfX3UzMiBmc3hfeGZs
YWdzOwoxNDQ3NDogIF9fdTMyIGZzeF9leHRzaXplOwoxNDQ3NDogIF9fdTMyIGZzeF9uZXh0ZW50
czsKMTQ0NzQ6ICBfX3UzMiBmc3hfcHJvamlkOwoxNDQ3NDogIF9fdTMyIGZzeF9jb3dleHRzaXpl
OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZnN4X3BhZFs4XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI4
NSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZnMuaCIKMTQ0NzQ6IHR5cGVkZWYgaW50IF9fa2VybmVs
X3J3Zl90OwoxNDQ3NDogIyA0NiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGJhY2tpbmdfZGV2X2luZm87CjE0NDc0OiBzdHJ1Y3QgYmRpX3dyaXRlYmFjazsK
MTQ0NzQ6IHN0cnVjdCBiaW87CjE0NDc0OiBzdHJ1Y3QgZXhwb3J0X29wZXJhdGlvbnM7CjE0NDc0
OiBzdHJ1Y3QgaGRfZ2VvbWV0cnk7CjE0NDc0OiBzdHJ1Y3QgaW92ZWM7CjE0NDc0OiBzdHJ1Y3Qg
a2lvY2I7CjE0NDc0OiBzdHJ1Y3Qga29iamVjdDsKMTQ0NzQ6IHN0cnVjdCBwaXBlX2lub2RlX2lu
Zm87CjE0NDc0OiBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3Qga3N0YXRm
czsKMTQ0NzQ6IHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKMTQ0NzQ6IHN0cnVjdCB2ZnNtb3VudDsK
MTQ0NzQ6IHN0cnVjdCBjcmVkOwoxNDQ3NDogc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Q7CjE0NDc0
OiBzdHJ1Y3Qgc2VxX2ZpbGU7CjE0NDc0OiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdDsKMTQ0NzQ6
IHN0cnVjdCBpb3ZfaXRlcjsKMTQ0NzQ6IHN0cnVjdCBmc2NyeXB0X2luZm87CjE0NDc0OiBzdHJ1
Y3QgZnNjcnlwdF9vcGVyYXRpb25zOwoxNDQ3NDogc3RydWN0IGZzdmVyaXR5X2luZm87CjE0NDc0
OiBzdHJ1Y3QgZnN2ZXJpdHlfb3BlcmF0aW9uczsKMTQ0NzQ6IHN0cnVjdCBmc19jb250ZXh0Owox
NDQ3NDogc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVjOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9p
ZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVf
XygoX19jb2xkX18pKSBpbm9kZV9pbml0KHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19hdHRy
aWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29s
ZF9fKSkgaW5vZGVfaW5pdF9lYXJseSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpIGZpbGVzX2luaXQodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChf
X3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBmaWxl
c19tYXhmaWxlc19pbml0KHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGZpbGVz
X3N0YXRfc3RydWN0IGZpbGVzX3N0YXQ7CjE0NDc0OiBleHRlcm4gdW5zaWduZWQgbG9uZyBnZXRf
bWF4X2ZpbGVzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfbnJfb3Bl
bjsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGVzX3N0YXRfdCBpbm9kZXNfc3RhdDsKMTQ0NzQ6
IGV4dGVybiBpbnQgbGVhc2VzX2VuYWJsZSwgbGVhc2VfYnJlYWtfdGltZTsKMTQ0NzQ6IGV4dGVy
biBpbnQgc3lzY3RsX3Byb3RlY3RlZF9zeW1saW5rczsKMTQ0NzQ6IGV4dGVybiBpbnQgc3lzY3Rs
X3Byb3RlY3RlZF9oYXJkbGlua3M7CjE0NDc0OiBleHRlcm4gaW50IHN5c2N0bF9wcm90ZWN0ZWRf
Zmlmb3M7CjE0NDc0OiBleHRlcm4gaW50IHN5c2N0bF9wcm90ZWN0ZWRfcmVndWxhcjsKMTQ0NzQ6
IAoxNDQ3NDogdHlwZWRlZiBfX2tlcm5lbF9yd2ZfdCByd2ZfdDsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGJ1ZmZlcl9oZWFkOwoxNDQ3NDogdHlwZWRlZiBpbnQgKGdldF9ibG9ja190KShzdHJ1Y3Qg
aW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCjE0NDc0OiAgICBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJoX3Jlc3VsdCwgaW50IGNyZWF0ZSk7CjE0NDc0OiB0eXBlZGVmIGludCAoZGlvX2lvZG9u
ZV90KShzdHJ1Y3Qga2lvY2IgKmlvY2IsIGxvZmZfdCBvZmZzZXQsCjE0NDc0OiAgICBzc2l6ZV90
IGJ5dGVzLCB2b2lkICpwcml2YXRlKTsKMTQ0NzQ6ICMgMjI0ICIuL2luY2x1ZGUvbGludXgvZnMu
aCIKMTQ0NzQ6IHN0cnVjdCBpYXR0ciB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGlhX3ZhbGlkOwox
NDQ3NDogIHVtb2RlX3QgaWFfbW9kZTsKMTQ0NzQ6ICBrdWlkX3QgaWFfdWlkOwoxNDQ3NDogIGtn
aWRfdCBpYV9naWQ7CjE0NDc0OiAgbG9mZl90IGlhX3NpemU7CjE0NDc0OiAgc3RydWN0IHRpbWVz
cGVjNjQgaWFfYXRpbWU7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaWFfbXRpbWU7CjE0NDc0
OiAgc3RydWN0IHRpbWVzcGVjNjQgaWFfY3RpbWU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZpbGUgKmlhX2ZpbGU7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVk
ZS9saW51eC9xdW90YS5oIiAxCjE0NDc0OiAjIDQwICIuL2luY2x1ZGUvbGludXgvcXVvdGEuaCIK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgiIDEKMTQ0NzQ6ICMg
MjAgIi4vaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oIgoxNDQ3NDogc3RydWN0IHBlcmNw
dV9jb3VudGVyIHsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogIHM2NCBjb3Vu
dDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKMTQ0NzQ6IAoxNDQ3NDog
IHMzMiAqY291bnRlcnM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHBlcmNw
dV9jb3VudGVyX2JhdGNoOwoxNDQ3NDogCjE0NDc0OiBpbnQgX19wZXJjcHVfY291bnRlcl9pbml0
KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50LCBnZnBfdCBnZnAsCjE0NDc0
OiAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKMTQ0NzQ6ICMgNDEgIi4vaW5jbHVk
ZS9saW51eC9wZXJjcHVfY291bnRlci5oIgoxNDQ3NDogdm9pZCBwZXJjcHVfY291bnRlcl9kZXN0
cm95KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKTsKMTQ0NzQ6IHZvaWQgcGVyY3B1X2NvdW50
ZXJfc2V0KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KTsKMTQ0NzQ6IHZv
aWQgcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBz
NjQgYW1vdW50LAoxNDQ3NDogICAgICAgICAgczMyIGJhdGNoKTsKMTQ0NzQ6IHM2NCBfX3BlcmNw
dV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYyk7CjE0NDc0OiBpbnQgX19w
ZXJjcHVfY291bnRlcl9jb21wYXJlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgcmhz
LCBzMzIgYmF0Y2gpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGVyY3B1X2NvdW50ZXJfY29tcGFyZShz
dHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IHJocykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gX19wZXJjcHVfY291bnRlcl9jb21wYXJlKGZiYywgcmhzLCBwZXJjcHVfY291bnRlcl9iYXRj
aCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X2NvdW50ZXJfYWRkKHN0cnVj
dCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KQoxNDQ3NDogewoxNDQ3NDogIHBlcmNw
dV9jb3VudGVyX2FkZF9iYXRjaChmYmMsIGFtb3VudCwgcGVyY3B1X2NvdW50ZXJfYmF0Y2gpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgcGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKHN0
cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQoxNDQ3NDogewoxNDQ3NDogIHM2NCByZXQgPSBfX3Bl
cmNwdV9jb3VudGVyX3N1bShmYmMpOwoxNDQ3NDogIHJldHVybiByZXQgPCAwID8gMCA6IHJldDsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IHBlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVy
Y3B1X2NvdW50ZXIgKmZiYykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19wZXJjcHVfY291bnRl
cl9zdW0oZmJjKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IHBlcmNwdV9jb3VudGVyX3Jl
YWQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZi
Yy0+Y291bnQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzNjQgcGVyY3B1X2NvdW50ZXJfcmVhZF9wb3NpdGl2ZShzdHJ1Y3Qg
cGVyY3B1X2NvdW50ZXIgKmZiYykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzNjQgcmV0ID0gZmJjLT5jb3Vu
dDsKMTQ0NzQ6IAoxNDQ3NDogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7
CjE0NDc0OiAgaWYgKHJldCA+PSAwKQoxNDQ3NDogICByZXR1cm4gcmV0OwoxNDQ3NDogIHJldHVy
biAwOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHBlcmNwdV9jb3VudGVyX2luaXRpYWxp
emVkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAo
ZmJjLT5jb3VudGVycyAhPSAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDE3NyAiLi9p
bmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9jb3VudGVy
X2luYyhzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVf
Y291bnRlcl9hZGQoZmJjLCAxKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVf
Y291bnRlcl9kZWMoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpCjE0NDc0OiB7CjE0NDc0OiAg
cGVyY3B1X2NvdW50ZXJfYWRkKGZiYywgLTEpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHBlcmNwdV9jb3VudGVyX3N1YihzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IGFtb3Vu
dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBwZXJjcHVfY291bnRlcl9hZGQoZmJjLCAtYW1vdW50KTsKMTQ0
NzQ6IH0KMTQ0NzQ6ICMgNDEgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCjE0NDc0OiAKMTQ0
NzQ6ICMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZHFibGtfeGZzLmgiIDEKMTQ0NzQ6ICMgNTMg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2RxYmxrX3hmcy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3Qg
ZnNfZGlza19xdW90YSB7CjE0NDc0OiAgX19zOCBkX3ZlcnNpb247CjE0NDc0OiAgX19zOCBkX2Zs
YWdzOwoxNDQ3NDogIF9fdTE2IGRfZmllbGRtYXNrOwoxNDQ3NDogIF9fdTMyIGRfaWQ7CjE0NDc0
OiAgX191NjQgZF9ibGtfaGFyZGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRfYmxrX3NvZnRsaW1pdDsK
MTQ0NzQ6ICBfX3U2NCBkX2lub19oYXJkbGltaXQ7CjE0NDc0OiAgX191NjQgZF9pbm9fc29mdGxp
bWl0OwoxNDQ3NDogIF9fdTY0IGRfYmNvdW50OwoxNDQ3NDogIF9fdTY0IGRfaWNvdW50OwoxNDQ3
NDogIF9fczMyIGRfaXRpbWVyOwoxNDQ3NDogCjE0NDc0OiAgX19zMzIgZF9idGltZXI7CjE0NDc0
OiAgX191MTYgZF9pd2FybnM7CjE0NDc0OiAgX191MTYgZF9id2FybnM7CjE0NDc0OiAgX19zMzIg
ZF9wYWRkaW5nMjsKMTQ0NzQ6ICBfX3U2NCBkX3J0Yl9oYXJkbGltaXQ7CjE0NDc0OiAgX191NjQg
ZF9ydGJfc29mdGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRfcnRiY291bnQ7CjE0NDc0OiAgX19zMzIg
ZF9ydGJ0aW1lcjsKMTQ0NzQ6ICBfX3UxNiBkX3J0Yndhcm5zOwoxNDQ3NDogIF9fczE2IGRfcGFk
ZGluZzM7CjE0NDc0OiAgY2hhciBkX3BhZGRpbmc0WzhdOwoxNDQ3NDogfSBmc19kaXNrX3F1b3Rh
X3Q7CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZHFibGtfeGZzLmgiCjE0NDc0
OiB0eXBlZGVmIHN0cnVjdCBmc19xZmlsZXN0YXQgewoxNDQ3NDogIF9fdTY0IHFmc19pbm87CjE0
NDc0OiAgX191NjQgcWZzX25ibGtzOwoxNDQ3NDogIF9fdTMyIHFmc19uZXh0ZW50czsKMTQ0NzQ6
IH0gZnNfcWZpbGVzdGF0X3Q7CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IGZzX3F1b3Rh
X3N0YXQgewoxNDQ3NDogIF9fczggcXNfdmVyc2lvbjsKMTQ0NzQ6ICBfX3UxNiBxc19mbGFnczsK
MTQ0NzQ6ICBfX3M4IHFzX3BhZDsKMTQ0NzQ6ICBmc19xZmlsZXN0YXRfdCBxc191cXVvdGE7CjE0
NDc0OiAgZnNfcWZpbGVzdGF0X3QgcXNfZ3F1b3RhOwoxNDQ3NDogIF9fdTMyIHFzX2luY29yZWRx
czsKMTQ0NzQ6ICBfX3MzMiBxc19idGltZWxpbWl0OwoxNDQ3NDogIF9fczMyIHFzX2l0aW1lbGlt
aXQ7CjE0NDc0OiAgX19zMzIgcXNfcnRidGltZWxpbWl0OwoxNDQ3NDogIF9fdTE2IHFzX2J3YXJu
bGltaXQ7CjE0NDc0OiAgX191MTYgcXNfaXdhcm5saW1pdDsKMTQ0NzQ6IH0gZnNfcXVvdGFfc3Rh
dF90OwoxNDQ3NDogIyAxOTIgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2RxYmxrX3hmcy5oIgoxNDQ3
NDogc3RydWN0IGZzX3FmaWxlc3RhdHYgewoxNDQ3NDogIF9fdTY0IHFmc19pbm87CjE0NDc0OiAg
X191NjQgcWZzX25ibGtzOwoxNDQ3NDogIF9fdTMyIHFmc19uZXh0ZW50czsKMTQ0NzQ6ICBfX3Uz
MiBxZnNfcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZzX3F1b3RhX3N0YXR2
IHsKMTQ0NzQ6ICBfX3M4IHFzX3ZlcnNpb247CjE0NDc0OiAgX191OCBxc19wYWQxOwoxNDQ3NDog
IF9fdTE2IHFzX2ZsYWdzOwoxNDQ3NDogIF9fdTMyIHFzX2luY29yZWRxczsKMTQ0NzQ6ICBzdHJ1
Y3QgZnNfcWZpbGVzdGF0diBxc191cXVvdGE7CjE0NDc0OiAgc3RydWN0IGZzX3FmaWxlc3RhdHYg
cXNfZ3F1b3RhOwoxNDQ3NDogIHN0cnVjdCBmc19xZmlsZXN0YXR2IHFzX3BxdW90YTsKMTQ0NzQ6
ICBfX3MzMiBxc19idGltZWxpbWl0OwoxNDQ3NDogIF9fczMyIHFzX2l0aW1lbGltaXQ7CjE0NDc0
OiAgX19zMzIgcXNfcnRidGltZWxpbWl0OwoxNDQ3NDogIF9fdTE2IHFzX2J3YXJubGltaXQ7CjE0
NDc0OiAgX191MTYgcXNfaXdhcm5saW1pdDsKMTQ0NzQ6ICBfX3U2NCBxc19wYWQyWzhdOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCjE0NDc0OiAjIDEg
Ii4vaW5jbHVkZS9saW51eC9kcWJsa192MS5oIiAxCjE0NDc0OiAjIDQ0ICIuL2luY2x1ZGUvbGlu
dXgvcXVvdGEuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIgMQox
NDQ3NDogIyA5ICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNs
dWRlL2xpbnV4L2RxYmxrX3F0cmVlLmgiIDEKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9k
cWJsa19xdHJlZS5oIgoxNDQ3NDogc3RydWN0IGRxdW90OwoxNDQ3NDogc3RydWN0IGtxaWQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHF0cmVlX2ZtdF9vcGVyYXRpb25zIHsKMTQ0NzQ6
ICB2b2lkICgqbWVtMmRpc2tfZHFibGspKHZvaWQgKmRpc2ssIHN0cnVjdCBkcXVvdCAqZHF1b3Qp
OwoxNDQ3NDogIHZvaWQgKCpkaXNrMm1lbV9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCwgdm9p
ZCAqZGlzayk7CjE0NDc0OiAgaW50ICgqaXNfaWQpKHZvaWQgKmRpc2ssIHN0cnVjdCBkcXVvdCAq
ZHF1b3QpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcXRyZWVfbWVt
X2RxaW5mbyB7CjE0NDc0OiAgc3RydWN0IHN1cGVyX2Jsb2NrICpkcWlfc2I7CjE0NDc0OiAgaW50
IGRxaV90eXBlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfYmxvY2tzOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkcWlfZnJlZV9ibGs7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRxaV9mcmVlX2VudHJ5
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfYmxvY2tzaXplX2JpdHM7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGRxaV9lbnRyeV9zaXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfdXNhYmxlX2Jz
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcWlfcXRyZWVfZGVwdGg7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IHF0cmVlX2ZtdF9vcGVyYXRpb25zICpkcWlfb3BzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogaW50IHF0cmVlX3dyaXRlX2RxdW90KHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICppbmZvLCBz
dHJ1Y3QgZHF1b3QgKmRxdW90KTsKMTQ0NzQ6IGludCBxdHJlZV9yZWFkX2RxdW90KHN0cnVjdCBx
dHJlZV9tZW1fZHFpbmZvICppbmZvLCBzdHJ1Y3QgZHF1b3QgKmRxdW90KTsKMTQ0NzQ6IGludCBx
dHJlZV9kZWxldGVfZHF1b3Qoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8sIHN0cnVjdCBk
cXVvdCAqZHF1b3QpOwoxNDQ3NDogaW50IHF0cmVlX3JlbGVhc2VfZHF1b3Qoc3RydWN0IHF0cmVl
X21lbV9kcWluZm8gKmluZm8sIHN0cnVjdCBkcXVvdCAqZHF1b3QpOwoxNDQ3NDogaW50IHF0cmVl
X2VudHJ5X3VudXNlZChzdHJ1Y3QgcXRyZWVfbWVtX2RxaW5mbyAqaW5mbywgY2hhciAqZGlzayk7
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgcXRyZWVfZGVwdGgoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8pCjE0
NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGVwYiA9IGluZm8tPmRxaV91c2FibGVfYnMgPj4g
MjsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgZW50cmllcyA9IGVwYjsKMTQ0NzQ6ICBpbnQg
aTsKMTQ0NzQ6IAoxNDQ3NDogIGZvciAoaSA9IDE7IGVudHJpZXMgPCAoMVVMTCA8PCAzMik7IGkr
KykKMTQ0NzQ6ICAgZW50cmllcyAqPSBlcGI7CjE0NDc0OiAgcmV0dXJuIGk7CjE0NDc0OiB9CjE0
NDc0OiBpbnQgcXRyZWVfZ2V0X25leHRfaWQoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8s
IHN0cnVjdCBrcWlkICpxaWQpOwoxNDQ3NDogIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2RxYmxrX3Yy
LmgiIDIKMTQ0NzQ6ICMgNDUgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9wcm9qaWQuaCIgMQoxNDQ3
NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L3Byb2ppZC5oIgoxNDQ3NDogc3RydWN0IHVzZXJfbmFt
ZXNwYWNlOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB1c2VyX25hbWVzcGFjZSBpbml0X3VzZXJfbnM7
CjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgX19rZXJuZWxfdWlkMzJfdCBwcm9qaWRfdDsKMTQ0NzQ6
IAoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIHByb2ppZF90IHZhbDsKMTQ0NzQ6IH0g
a3Byb2ppZF90OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwcm9qaWRfdCBfX2twcm9qaWRfdmFsKGtwcm9qaWRf
dCBwcm9qaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHByb2ppZC52YWw7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHByb2ppZF9lcShrcHJvamlkX3QgbGVmdCwga3Byb2ppZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBfX2twcm9qaWRfdmFsKGxlZnQpID09IF9fa3Byb2ppZF92YWwocmlnaHQpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHByb2ppZF9sdChrcHJvamlkX3QgbGVmdCwga3By
b2ppZF90IHJpZ2h0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBfX2twcm9qaWRfdmFsKGxlZnQp
IDwgX19rcHJvamlkX3ZhbChyaWdodCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcHJv
amlkX3ZhbGlkKGtwcm9qaWRfdCBwcm9qaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICFwcm9q
aWRfZXEocHJvamlkLCAoa3Byb2ppZF90KXsgLTEgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4ga3Byb2ppZF90IG1ha2Vfa3Byb2ppZChzdHJ1Y3QgdXNl
cl9uYW1lc3BhY2UgKmZyb20sIHByb2ppZF90IHByb2ppZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBwcm9qaWRfdCBmcm9tX2twcm9qaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bywga3Byb2pp
ZF90IHByb2ppZCk7CjE0NDc0OiBleHRlcm4gcHJvamlkX3QgZnJvbV9rcHJvamlkX211bmdlZChz
dHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrcHJvamlkX3QgcHJvamlkKTsKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBrcHJvamlkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIGtw
cm9qaWRfdCBwcm9qaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZyb21fa3Byb2ppZChucywg
cHJvamlkKSAhPSAocHJvamlkX3QpLTE7CjE0NDc0OiB9CjE0NDc0OiAjIDQ5ICIuL2luY2x1ZGUv
bGludXgvcXVvdGEuaCIgMgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5o
IiAxCjE0NDc0OiAjIDkwICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgUUlGX0JMSU1JVFNfQiA9IDAsCjE0NDc0OiAgUUlGX1NQQUNFX0IsCjE0NDc0
OiAgUUlGX0lMSU1JVFNfQiwKMTQ0NzQ6ICBRSUZfSU5PREVTX0IsCjE0NDc0OiAgUUlGX0JUSU1F
X0IsCjE0NDc0OiAgUUlGX0lUSU1FX0IsCjE0NDc0OiB9OwoxNDQ3NDogIyAxMTAgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3F1b3RhLmgiCjE0NDc0OiBzdHJ1Y3QgaWZfZHFibGsgewoxNDQ3NDogIF9f
dTY0IGRxYl9iaGFyZGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRxYl9ic29mdGxpbWl0OwoxNDQ3NDog
IF9fdTY0IGRxYl9jdXJzcGFjZTsKMTQ0NzQ6ICBfX3U2NCBkcWJfaWhhcmRsaW1pdDsKMTQ0NzQ6
ICBfX3U2NCBkcWJfaXNvZnRsaW1pdDsKMTQ0NzQ6ICBfX3U2NCBkcWJfY3VyaW5vZGVzOwoxNDQ3
NDogIF9fdTY0IGRxYl9idGltZTsKMTQ0NzQ6ICBfX3U2NCBkcWJfaXRpbWU7CjE0NDc0OiAgX191
MzIgZHFiX3ZhbGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGlmX25leHRkcWJs
ayB7CjE0NDc0OiAgX191NjQgZHFiX2JoYXJkbGltaXQ7CjE0NDc0OiAgX191NjQgZHFiX2Jzb2Z0
bGltaXQ7CjE0NDc0OiAgX191NjQgZHFiX2N1cnNwYWNlOwoxNDQ3NDogIF9fdTY0IGRxYl9paGFy
ZGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRxYl9pc29mdGxpbWl0OwoxNDQ3NDogIF9fdTY0IGRxYl9j
dXJpbm9kZXM7CjE0NDc0OiAgX191NjQgZHFiX2J0aW1lOwoxNDQ3NDogIF9fdTY0IGRxYl9pdGlt
ZTsKMTQ0NzQ6ICBfX3UzMiBkcWJfdmFsaWQ7CjE0NDc0OiAgX191MzIgZHFiX2lkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMTQ0ICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgRFFGX1JPT1RfU1FVQVNIX0IgPSAwLAoxNDQ3NDogIERRRl9TWVNfRklMRV9C
ID0gMTYsCjE0NDc0OiAKMTQ0NzQ6ICBEUUZfUFJJVkFURQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBpZl9kcWlu
Zm8gewoxNDQ3NDogIF9fdTY0IGRxaV9iZ3JhY2U7CjE0NDc0OiAgX191NjQgZHFpX2lncmFjZTsK
MTQ0NzQ6ICBfX3UzMiBkcWlfZmxhZ3M7CjE0NDc0OiAgX191MzIgZHFpX3ZhbGlkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMTc4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgUVVPVEFfTkxfQ19VTlNQRUMsCjE0NDc0OiAgUVVPVEFfTkxfQ19XQVJOSU5H
LAoxNDQ3NDogIF9fUVVPVEFfTkxfQ19NQVgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gewoxNDQ3NDogIFFVT1RBX05MX0FfVU5TUEVDLAoxNDQ3NDogIFFVT1RBX05MX0Ff
UVRZUEUsCjE0NDc0OiAgUVVPVEFfTkxfQV9FWENFU1NfSUQsCjE0NDc0OiAgUVVPVEFfTkxfQV9X
QVJOSU5HLAoxNDQ3NDogIFFVT1RBX05MX0FfREVWX01BSk9SLAoxNDQ3NDogIFFVT1RBX05MX0Ff
REVWX01JTk9SLAoxNDQ3NDogIFFVT1RBX05MX0FfQ0FVU0VEX0lELAoxNDQ3NDogIFFVT1RBX05M
X0FfUEFELAoxNDQ3NDogIF9fUVVPVEFfTkxfQV9NQVgsCjE0NDc0OiB9OwoxNDQ3NDogIyA1MCAi
Li9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBxdW90YV90eXBlIHsKMTQ0NzQ6ICBVU1JRVU9UQSA9IDAsCjE0NDc0OiAg
R1JQUVVPVEEgPSAxLAoxNDQ3NDogIFBSSlFVT1RBID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIF9fa2Vy
bmVsX3VpZDMyX3QgcWlkX3Q7CjE0NDc0OiB0eXBlZGVmIGxvbmcgbG9uZyBxc2l6ZV90OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qga3FpZCB7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBrdWlkX3Qg
dWlkOwoxNDQ3NDogICBrZ2lkX3QgZ2lkOwoxNDQ3NDogICBrcHJvamlkX3QgcHJvamlkOwoxNDQ3
NDogIH07CjE0NDc0OiAgZW51bSBxdW90YV90eXBlIHR5cGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gYm9vbCBxaWRfZXEoc3RydWN0IGtxaWQgbGVmdCwgc3RydWN0IGtxaWQgcmln
aHQpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgcWlkX2x0KHN0cnVjdCBrcWlkIGxlZnQsIHN0cnVjdCBr
cWlkIHJpZ2h0KTsKMTQ0NzQ6IGV4dGVybiBxaWRfdCBmcm9tX2txaWQoc3RydWN0IHVzZXJfbmFt
ZXNwYWNlICp0bywgc3RydWN0IGtxaWQgcWlkKTsKMTQ0NzQ6IGV4dGVybiBxaWRfdCBmcm9tX2tx
aWRfbXVuZ2VkKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqdG8sIHN0cnVjdCBrcWlkIHFpZCk7CjE0
NDc0OiBleHRlcm4gYm9vbCBxaWRfdmFsaWQoc3RydWN0IGtxaWQgcWlkKTsKMTQ0NzQ6ICMgOTcg
Ii4vaW5jbHVkZS9saW51eC9xdW90YS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlkKHN0
cnVjdCB1c2VyX25hbWVzcGFjZSAqZnJvbSwKMTQ0NzQ6ICAgICAgICAgZW51bSBxdW90YV90eXBl
IHR5cGUsIHFpZF90IHFpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3
NDogCjE0NDc0OiAga3FpZC50eXBlID0gdHlwZTsKMTQ0NzQ6ICBzd2l0Y2ggKHR5cGUpIHsKMTQ0
NzQ6ICBjYXNlIFVTUlFVT1RBOgoxNDQ3NDogICBrcWlkLnVpZCA9IG1ha2Vfa3VpZChmcm9tLCBx
aWQpOwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNlIEdSUFFVT1RBOgoxNDQ3NDogICBrcWlk
LmdpZCA9IG1ha2Vfa2dpZChmcm9tLCBxaWQpOwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNl
IFBSSlFVT1RBOgoxNDQ3NDogICBrcWlkLnByb2ppZCA9IG1ha2Vfa3Byb2ppZChmcm9tLCBxaWQp
OwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBkZWZhdWx0OgoxNDQ3NDogICBkbyB7IGRvIHsgYXNt
IF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hz
ZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIg
Ilx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGlu
ZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVj
M1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3F1b3RhLmgiKSwgImki
ICgxMTQpLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxl
ICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5c
dCIgOiA6ICJpIiAoMjgpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNo
YWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVy
biBrcWlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga3FpZCBtYWtlX2txaWRfaW52YWxpZChlbnVt
IHF1b3RhX3R5cGUgdHlwZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3
NDogCjE0NDc0OiAga3FpZC50eXBlID0gdHlwZTsKMTQ0NzQ6ICBzd2l0Y2ggKHR5cGUpIHsKMTQ0
NzQ6ICBjYXNlIFVTUlFVT1RBOgoxNDQ3NDogICBrcWlkLnVpZCA9IChrdWlkX3QpeyAtMSB9Owox
NDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNlIEdSUFFVT1RBOgoxNDQ3NDogICBrcWlkLmdpZCA9
IChrZ2lkX3QpeyAtMSB9OwoxNDQ3NDogICBicmVhazsKMTQ0NzQ6ICBjYXNlIFBSSlFVT1RBOgox
NDQ3NDogICBrcWlkLnByb2ppZCA9IChrcHJvamlkX3QpeyAtMSB9OwoxNDQ3NDogICBicmVhazsK
MTQ0NzQ6ICBkZWZhdWx0OgoxNDQ3NDogICBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxl
KCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxl
LFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpi
dWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZp
bGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIi
ICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24i
IDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3F1b3RhLmgiKSwgImkiICgxNDEpLCAiaSIgKDApLCAi
aSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20g
dm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5c
dCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjkpKTsg
fSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiBrcWlkOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrcWlk
IG1ha2Vfa3FpZF91aWQoa3VpZF90IHVpZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBr
cWlkOwoxNDQ3NDogIGtxaWQudHlwZSA9IFVTUlFVT1RBOwoxNDQ3NDogIGtxaWQudWlkID0gdWlk
OwoxNDQ3NDogIHJldHVybiBrcWlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrcWlkIG1ha2Vfa3FpZF9naWQoa2dpZF90IGdp
ZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3NDogIGtxaWQudHlwZSA9
IEdSUFFVT1RBOwoxNDQ3NDogIGtxaWQuZ2lkID0gZ2lkOwoxNDQ3NDogIHJldHVybiBrcWlkOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBrcWlkIG1ha2Vfa3FpZF9wcm9qaWQoa3Byb2ppZF90IHByb2ppZCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICBzdHJ1Y3Qga3FpZCBrcWlkOwoxNDQ3NDogIGtxaWQudHlwZSA9IFBSSlFVT1RBOwoxNDQ3
NDogIGtxaWQucHJvamlkID0gcHJvamlkOwoxNDQ3NDogIHJldHVybiBrcWlkOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBxaWRfaGFzX21hcHBpbmcoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywgc3RydWN0IGtxaWQg
cWlkKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBmcm9tX2txaWQobnMsIHFpZCkgIT0gKHFpZF90
KSAtMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3BpbmxvY2tfdCBk
cV9kYXRhX2xvY2s7CjE0NDc0OiAjIDIwNSAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCjE0NDc0
OiBzdHJ1Y3QgbWVtX2RxYmxrIHsKMTQ0NzQ6ICBxc2l6ZV90IGRxYl9iaGFyZGxpbWl0OwoxNDQ3
NDogIHFzaXplX3QgZHFiX2Jzb2Z0bGltaXQ7CjE0NDc0OiAgcXNpemVfdCBkcWJfY3Vyc3BhY2U7
CjE0NDc0OiAgcXNpemVfdCBkcWJfcnN2c3BhY2U7CjE0NDc0OiAgcXNpemVfdCBkcWJfaWhhcmRs
aW1pdDsKMTQ0NzQ6ICBxc2l6ZV90IGRxYl9pc29mdGxpbWl0OwoxNDQ3NDogIHFzaXplX3QgZHFi
X2N1cmlub2RlczsKMTQ0NzQ6ICB0aW1lNjRfdCBkcWJfYnRpbWU7CjE0NDc0OiAgdGltZTY0X3Qg
ZHFiX2l0aW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IHF1b3RhX2Zvcm1hdF90eXBlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbWVtX2Rx
aW5mbyB7CjE0NDc0OiAgc3RydWN0IHF1b3RhX2Zvcm1hdF90eXBlICpkcWlfZm9ybWF0OwoxNDQ3
NDogIGludCBkcWlfZm10X2lkOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBkcWlf
ZGlydHlfbGlzdDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGRxaV9mbGFnczsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZHFpX2JncmFjZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHFpX2lncmFjZTsKMTQ0
NzQ6ICBxc2l6ZV90IGRxaV9tYXhfc3BjX2xpbWl0OwoxNDQ3NDogIHFzaXplX3QgZHFpX21heF9p
bm9fbGltaXQ7CjE0NDc0OiAgdm9pZCAqZHFpX3ByaXY7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3Qgc3VwZXJfYmxvY2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBEUUZfSU5GT19ESVJUWV9CID0gRFFG
X1BSSVZBVEUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIG1h
cmtfaW5mb19kaXJ0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSk7CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgaW5mb19kaXJ0eShzdHJ1Y3QgbWVtX2RxaW5mbyAqaW5mbykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gdGVzdF9iaXQoRFFGX0lORk9fRElSVFlfQiwgJmluZm8tPmRxaV9mbGFncyk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERRU1RfTE9PS1VQUywKMTQ0NzQ6ICBE
UVNUX0RST1BTLAoxNDQ3NDogIERRU1RfUkVBRFMsCjE0NDc0OiAgRFFTVF9XUklURVMsCjE0NDc0
OiAgRFFTVF9DQUNIRV9ISVRTLAoxNDQ3NDogIERRU1RfQUxMT0NfRFFVT1RTLAoxNDQ3NDogIERR
U1RfRlJFRV9EUVVPVFMsCjE0NDc0OiAgRFFTVF9TWU5DUywKMTQ0NzQ6ICBfRFFTVF9EUVNUQVRf
TEFTVAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRxc3RhdHMgewoxNDQ3NDogIHVu
c2lnbmVkIGxvbmcgc3RhdFtfRFFTVF9EUVNUQVRfTEFTVF07CjE0NDc0OiAgc3RydWN0IHBlcmNw
dV9jb3VudGVyIGNvdW50ZXJbX0RRU1RfRFFTVEFUX0xBU1RdOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHN0cnVjdCBkcXN0YXRzIGRxc3RhdHM7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
ZHFzdGF0c19pbmModW5zaWduZWQgaW50IHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgcGVyY3B1X2Nv
dW50ZXJfaW5jKCZkcXN0YXRzLmNvdW50ZXJbdHlwZV0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGRxc3RhdHNfZGVjKHVuc2lnbmVkIGludCB0eXBlKQoxNDQ3NDogewoxNDQ3NDogIHBl
cmNwdV9jb3VudGVyX2RlYygmZHFzdGF0cy5jb3VudGVyW3R5cGVdKTsKMTQ0NzQ6IH0KMTQ0NzQ6
ICMgMjk0ICIuL2luY2x1ZGUvbGludXgvcXVvdGEuaCIKMTQ0NzQ6IHN0cnVjdCBkcXVvdCB7CjE0
NDc0OiAgc3RydWN0IGhsaXN0X25vZGUgZHFfaGFzaDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IGRxX2ludXNlOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgZHFfZnJlZTsKMTQ0NzQ6ICBzdHJ1
Y3QgbGlzdF9oZWFkIGRxX2RpcnR5OwoxNDQ3NDogIHN0cnVjdCBtdXRleCBkcV9sb2NrOwoxNDQ3
NDogIHNwaW5sb2NrX3QgZHFfZHFiX2xvY2s7CjE0NDc0OiAgYXRvbWljX3QgZHFfY291bnQ7CjE0
NDc0OiAgc3RydWN0IHN1cGVyX2Jsb2NrICpkcV9zYjsKMTQ0NzQ6ICBzdHJ1Y3Qga3FpZCBkcV9p
ZDsKMTQ0NzQ6ICBsb2ZmX3QgZHFfb2ZmOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZHFfZmxhZ3M7
CjE0NDc0OiAgc3RydWN0IG1lbV9kcWJsayBkcV9kcWI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBxdW90YV9mb3JtYXRfb3BzIHsKMTQ0NzQ6ICBpbnQgKCpjaGVja19x
dW90YV9maWxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlwZSk7CjE0NDc0OiAgaW50
ICgqcmVhZF9maWxlX2luZm8pKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlKTsKMTQ0
NzQ6ICBpbnQgKCp3cml0ZV9maWxlX2luZm8pKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0
eXBlKTsKMTQ0NzQ6ICBpbnQgKCpmcmVlX2ZpbGVfaW5mbykoc3RydWN0IHN1cGVyX2Jsb2NrICpz
YiwgaW50IHR5cGUpOwoxNDQ3NDogIGludCAoKnJlYWRfZHFibGspKHN0cnVjdCBkcXVvdCAqZHF1
b3QpOwoxNDQ3NDogIGludCAoKmNvbW1pdF9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCk7CjE0
NDc0OiAgaW50ICgqcmVsZWFzZV9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCk7CjE0NDc0OiAg
aW50ICgqZ2V0X25leHRfaWQpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrcWlkICpx
aWQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHF1b3Rfb3BlcmF0
aW9ucyB7CjE0NDc0OiAgaW50ICgqd3JpdGVfZHF1b3QpIChzdHJ1Y3QgZHF1b3QgKik7CjE0NDc0
OiAgc3RydWN0IGRxdW90ICooKmFsbG9jX2RxdW90KShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50
KTsKMTQ0NzQ6ICB2b2lkICgqZGVzdHJveV9kcXVvdCkoc3RydWN0IGRxdW90ICopOwoxNDQ3NDog
IGludCAoKmFjcXVpcmVfZHF1b3QpIChzdHJ1Y3QgZHF1b3QgKik7CjE0NDc0OiAgaW50ICgqcmVs
ZWFzZV9kcXVvdCkgKHN0cnVjdCBkcXVvdCAqKTsKMTQ0NzQ6ICBpbnQgKCptYXJrX2RpcnR5KSAo
c3RydWN0IGRxdW90ICopOwoxNDQ3NDogIGludCAoKndyaXRlX2luZm8pIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcXNpemVfdCAqKCpnZXRfcmVz
ZXJ2ZWRfc3BhY2UpIChzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgaW50ICgqZ2V0X3Byb2ppZCkg
KHN0cnVjdCBpbm9kZSAqLCBrcHJvamlkX3QgKik7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpnZXRf
aW5vZGVfdXNhZ2UpIChzdHJ1Y3QgaW5vZGUgKiwgcXNpemVfdCAqKTsKMTQ0NzQ6IAoxNDQ3NDog
IGludCAoKmdldF9uZXh0X2lkKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtxaWQg
KnFpZCk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGF0aDsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgcWNfZHFibGsgewoxNDQ3NDogIGludCBkX2ZpZWxkbWFzazsKMTQ0
NzQ6ICB1NjQgZF9zcGNfaGFyZGxpbWl0OwoxNDQ3NDogIHU2NCBkX3NwY19zb2Z0bGltaXQ7CjE0
NDc0OiAgdTY0IGRfaW5vX2hhcmRsaW1pdDsKMTQ0NzQ6ICB1NjQgZF9pbm9fc29mdGxpbWl0Owox
NDQ3NDogIHU2NCBkX3NwYWNlOwoxNDQ3NDogIHU2NCBkX2lub19jb3VudDsKMTQ0NzQ6ICBzNjQg
ZF9pbm9fdGltZXI7CjE0NDc0OiAKMTQ0NzQ6ICBzNjQgZF9zcGNfdGltZXI7CjE0NDc0OiAgaW50
IGRfaW5vX3dhcm5zOwoxNDQ3NDogIGludCBkX3NwY193YXJuczsKMTQ0NzQ6ICB1NjQgZF9ydF9z
cGNfaGFyZGxpbWl0OwoxNDQ3NDogIHU2NCBkX3J0X3NwY19zb2Z0bGltaXQ7CjE0NDc0OiAgdTY0
IGRfcnRfc3BhY2U7CjE0NDc0OiAgczY0IGRfcnRfc3BjX3RpbWVyOwoxNDQ3NDogIGludCBkX3J0
X3NwY193YXJuczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM5NSAiLi9pbmNsdWRlL2xpbnV4L3F1b3Rh
LmgiCjE0NDc0OiBzdHJ1Y3QgcWNfdHlwZV9zdGF0ZSB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGZs
YWdzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzcGNfdGltZWxpbWl0OwoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgaW50IGlub190aW1lbGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJ0X3NwY190
aW1lbGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNwY193YXJubGltaXQ7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGlub193YXJubGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJ0X3NwY193YXJu
bGltaXQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIGlubzsKMTQ0NzQ6ICBibGtjbnRfdCBi
bG9ja3M7CjE0NDc0OiAgYmxrY250X3QgbmV4dGVudHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgcWNfc3RhdGUgewoxNDQ3NDogIHVuc2lnbmVkIGludCBzX2luY29yZWRxczsKMTQ0
NzQ6ICBzdHJ1Y3QgcWNfdHlwZV9zdGF0ZSBzX3N0YXRlWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcWNfaW5mbyB7CjE0NDc0OiAgaW50IGlfZmllbGRtYXNrOwox
NDQ3NDogIHVuc2lnbmVkIGludCBpX2ZsYWdzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBpX3NwY190
aW1lbGltaXQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaV9pbm9fdGltZWxpbWl0Owox
NDQ3NDogIHVuc2lnbmVkIGludCBpX3J0X3NwY190aW1lbGltaXQ7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGlfc3BjX3dhcm5saW1pdDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaV9pbm9fd2FybmxpbWl0
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpX3J0X3NwY193YXJubGltaXQ7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBxdW90YWN0bF9vcHMgewoxNDQ3NDogIGludCAoKnF1
b3RhX29uKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50LCBpbnQsIGNvbnN0IHN0cnVjdCBwYXRo
ICopOwoxNDQ3NDogIGludCAoKnF1b3RhX29mZikoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7
CjE0NDc0OiAgaW50ICgqcXVvdGFfZW5hYmxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdW5zaWdu
ZWQgaW50KTsKMTQ0NzQ6ICBpbnQgKCpxdW90YV9kaXNhYmxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KiwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6ICBpbnQgKCpxdW90YV9zeW5jKShzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiwgaW50KTsKMTQ0NzQ6ICBpbnQgKCpzZXRfaW5mbykoc3RydWN0IHN1cGVyX2Jsb2Nr
ICosIGludCwgc3RydWN0IHFjX2luZm8gKik7CjE0NDc0OiAgaW50ICgqZ2V0X2RxYmxrKShzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGtxaWQsIHN0cnVjdCBxY19kcWJsayAqKTsKMTQ0NzQ6
ICBpbnQgKCpnZXRfbmV4dGRxYmxrKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGtxaWQg
KiwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHFjX2RxYmxrICopOwoxNDQ3NDogIGludCAoKnNldF9k
cWJsaykoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBrcWlkLCBzdHJ1Y3QgcWNfZHFibGsg
Kik7CjE0NDc0OiAgaW50ICgqZ2V0X3N0YXRlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0
IHFjX3N0YXRlICopOwoxNDQ3NDogIGludCAoKnJtX3hxdW90YSkoc3RydWN0IHN1cGVyX2Jsb2Nr
ICosIHVuc2lnbmVkIGludCk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcXVvdGFf
Zm9ybWF0X3R5cGUgewoxNDQ3NDogIGludCBxZl9mbXRfaWQ7CjE0NDc0OiAgY29uc3Qgc3RydWN0
IHF1b3RhX2Zvcm1hdF9vcHMgKnFmX29wczsKMTQ0NzQ6ICBzdHJ1Y3QgbW9kdWxlICpxZl9vd25l
cjsKMTQ0NzQ6ICBzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgKnFmX25leHQ7CjE0NDc0OiB9Owox
NDQ3NDogIyA0NjMgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIgoxNDQ3NDogZW51bSB7CjE0NDc0
OiAgX0RRVU9UX1VTQUdFX0VOQUJMRUQgPSAwLAoxNDQ3NDogIF9EUVVPVF9MSU1JVFNfRU5BQkxF
RCwKMTQ0NzQ6ICBfRFFVT1RfU1VTUEVOREVELAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfRFFV
T1RfU1RBVEVfRkxBR1MKMTQ0NzQ6IH07CjE0NDc0OiAjIDQ5MCAiLi9pbmNsdWRlL2xpbnV4L3F1
b3RhLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgZHF1b3Rfc3RhdGVfZmxhZyh1bnNpZ25lZCBpbnQg
ZmxhZ3MsIGludCB0eXBlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBmbGFncyA8PCB0eXBlOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgZHF1b3RfZ2VuZXJpY19mbGFnKHVu
c2lnbmVkIGludCBmbGFncywgaW50IHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChmbGFn
cyA+PiB0eXBlKSAmICgoMSA8PCBfRFFVT1RfVVNBR0VfRU5BQkxFRCAqIDMpIHwgKDEgPDwgX0RR
VU9UX0xJTUlUU19FTkFCTEVEICogMykgfCAoMSA8PCBfRFFVT1RfU1VTUEVOREVEICogMykpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgdW5zaWduZWQgZHF1b3Rfc3RhdGVfdHlwZXModW5zaWduZWQgZmxhZ3MsIHVuc2ln
bmVkIGZsYWcpCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1l
X2Fzc2VydF81MDModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCVUlMRF9CVUdfT04g
ZmFpbGVkOiAiICIoZmxhZykgPT0gMCB8fCAoKChmbGFnKSAmICgoZmxhZykgLSAxKSkgIT0gMCki
KSkpOyBpZiAoISghKChmbGFnKSA9PSAwIHx8ICgoKGZsYWcpICYgKChmbGFnKSAtIDEpKSAhPSAw
KSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF81MDMoKTsgfSB3aGlsZSAoMCk7CjE0NDc0OiAgcmV0
dXJuIChmbGFncyAvIGZsYWcpICYgKCgxIDw8IDMpIC0gMSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgcXVvdGFfc2VuZF93YXJuaW5nKHN0cnVjdCBrcWlkIHFp
ZCwgZGV2X3QgZGV2LAoxNDQ3NDogICAgICAgICAgIGNvbnN0IGNoYXIgd2FybnR5cGUpOwoxNDQ3
NDogIyA1MTggIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIgoxNDQ3NDogc3RydWN0IHF1b3RhX2lu
Zm8gewoxNDQ3NDogIHVuc2lnbmVkIGludCBmbGFnczsKMTQ0NzQ6ICBzdHJ1Y3Qgcndfc2VtYXBo
b3JlIGRxaW9fc2VtOwoxNDQ3NDogIHN0cnVjdCBpbm9kZSAqZmlsZXNbM107CjE0NDc0OiAgc3Ry
dWN0IG1lbV9kcWluZm8gaW5mb1szXTsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgcXVvdGFfZm9ybWF0
X29wcyAqb3BzWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogaW50IHJlZ2lzdGVyX3F1b3Rh
X2Zvcm1hdChzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgKmZtdCk7CjE0NDc0OiB2b2lkIHVucmVn
aXN0ZXJfcXVvdGFfZm9ybWF0KHN0cnVjdCBxdW90YV9mb3JtYXRfdHlwZSAqZm10KTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHF1b3RhX21vZHVsZV9uYW1lIHsKMTQ0NzQ6ICBpbnQgcW1fZm10X2lk
OwoxNDQ3NDogIGNoYXIgKnFtX21vZF9uYW1lOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjQ2ICIuL2lu
Y2x1ZGUvbGludXgvZnMuaCIgMgoxNDQ3NDogIyAyNzkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgox
NDQ3NDogZW51bSBwb3NpdGl2ZV9hb3BfcmV0dXJucyB7CjE0NDc0OiAgQU9QX1dSSVRFUEFHRV9B
Q1RJVkFURSA9IDB4ODAwMDAsCjE0NDc0OiAgQU9QX1RSVU5DQVRFRF9QQUdFID0gMHg4MDAwMSwK
MTQ0NzQ6IH07CjE0NDc0OiAjIDI5MiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdHJ1
Y3QgcGFnZTsKMTQ0NzQ6IHN0cnVjdCBhZGRyZXNzX3NwYWNlOwoxNDQ3NDogc3RydWN0IHdyaXRl
YmFja19jb250cm9sOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gcndfaGludCB7CjE0NDc0OiAgV1JJVEVfTElGRV9OT1RfU0VUID0gMCwKMTQ0NzQ6
ICBXUklURV9MSUZFX05PTkUgPSAxLAoxNDQ3NDogIFdSSVRFX0xJRkVfU0hPUlQgPSAyLAoxNDQ3
NDogIFdSSVRFX0xJRkVfTUVESVVNID0gMywKMTQ0NzQ6ICBXUklURV9MSUZFX0xPTkcgPSA0LAox
NDQ3NDogIFdSSVRFX0xJRkVfRVhUUkVNRSA9IDUsCjE0NDc0OiB9OwoxNDQ3NDogIyAzMTggIi4v
aW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RydWN0IGtpb2NiIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZmlsZSAqa2lfZmlscDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGxv
ZmZfdCBraV9wb3M7CjE0NDc0OiAgdm9pZCAoKmtpX2NvbXBsZXRlKShzdHJ1Y3Qga2lvY2IgKmlv
Y2IsIGxvbmcgcmV0LCBsb25nIHJldDIpOwoxNDQ3NDogIHZvaWQgKnByaXZhdGU7CjE0NDc0OiAg
aW50IGtpX2ZsYWdzOwoxNDQ3NDogIHUxNiBraV9oaW50OwoxNDQ3NDogIHUxNiBraV9pb3ByaW87
CjE0NDc0OiAgdW5zaWduZWQgaW50IGtpX2Nvb2tpZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGlzX3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYikK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2lvY2ItPmtpX2NvbXBsZXRlID09ICgodm9pZCAqKTAp
OwoxNDQ3NDogfQoxNDQ3NDogIyAzNDkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogdHlw
ZWRlZiBzdHJ1Y3QgewoxNDQ3NDogIHNpemVfdCB3cml0dGVuOwoxNDQ3NDogIHNpemVfdCBjb3Vu
dDsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIGNoYXIgKmJ1ZjsKMTQ0NzQ6ICAgdm9pZCAqZGF0
YTsKMTQ0NzQ6ICB9IGFyZzsKMTQ0NzQ6ICBpbnQgZXJyb3I7CjE0NDc0OiB9IHJlYWRfZGVzY3Jp
cHRvcl90OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludCAoKnJlYWRfYWN0b3JfdCkocmVhZF9k
ZXNjcmlwdG9yX3QgKiwgc3RydWN0IHBhZ2UgKiwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZywgdW5z
aWduZWQgbG9uZyk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlv
bnMgewoxNDQ3NDogIGludCAoKndyaXRlcGFnZSkoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3
cml0ZWJhY2tfY29udHJvbCAqd2JjKTsKMTQ0NzQ6ICBpbnQgKCpyZWFkcGFnZSkoc3RydWN0IGZp
bGUgKiwgc3RydWN0IHBhZ2UgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKndyaXRl
cGFnZXMpKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAq
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc2V0X3BhZ2VfZGlydHkpKHN0cnVjdCBw
YWdlICpwYWdlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgaW50ICgqcmVhZHBhZ2VzKShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcsCjE0NDc0OiAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlcywgdW5zaWduZWQg
bnJfcGFnZXMpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqd3JpdGVfYmVnaW4pKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgIGxvZmZfdCBwb3Ms
IHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsCjE0NDc0OiAgICAgc3RydWN0IHBhZ2UgKipw
YWdlcCwgdm9pZCAqKmZzZGF0YSk7CjE0NDc0OiAgaW50ICgqd3JpdGVfZW5kKShzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0NzQ6ICAgICBsb2ZmX3QgcG9z
LCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwKMTQ0NzQ6ICAgICBzdHJ1Y3QgcGFnZSAq
cGFnZSwgdm9pZCAqZnNkYXRhKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc2VjdG9yX3QgKCpi
bWFwKShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBzZWN0b3JfdCk7CjE0NDc0OiAgdm9pZCAoKmlu
dmFsaWRhdGVwYWdlKSAoc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQp
OwoxNDQ3NDogIGludCAoKnJlbGVhc2VwYWdlKSAoc3RydWN0IHBhZ2UgKiwgZ2ZwX3QpOwoxNDQ3
NDogIHZvaWQgKCpmcmVlcGFnZSkoc3RydWN0IHBhZ2UgKik7CjE0NDc0OiAgc3NpemVfdCAoKmRp
cmVjdF9JTykoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCptaWdyYXRlcGFnZSkgKHN0cnVj
dCBhZGRyZXNzX3NwYWNlICosCjE0NDc0OiAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAq
LCBlbnVtIG1pZ3JhdGVfbW9kZSk7CjE0NDc0OiAgYm9vbCAoKmlzb2xhdGVfcGFnZSkoc3RydWN0
IHBhZ2UgKiwgaXNvbGF0ZV9tb2RlX3QpOwoxNDQ3NDogIHZvaWQgKCpwdXRiYWNrX3BhZ2UpKHN0
cnVjdCBwYWdlICopOwoxNDQ3NDogIGludCAoKmxhdW5kZXJfcGFnZSkgKHN0cnVjdCBwYWdlICop
OwoxNDQ3NDogIGludCAoKmlzX3BhcnRpYWxseV91cHRvZGF0ZSkgKHN0cnVjdCBwYWdlICosIHVu
c2lnbmVkIGxvbmcsCjE0NDc0OiAgICAgIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogIHZvaWQgKCpp
c19kaXJ0eV93cml0ZWJhY2spIChzdHJ1Y3QgcGFnZSAqLCBib29sICosIGJvb2wgKik7CjE0NDc0
OiAgaW50ICgqZXJyb3JfcmVtb3ZlX3BhZ2UpKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVj
dCBwYWdlICopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpzd2FwX2FjdGl2YXRlKShz
dHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2lzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKMTQ0NzQ6ICAg
ICBzZWN0b3JfdCAqc3Bhbik7CjE0NDc0OiAgdm9pZCAoKnN3YXBfZGVhY3RpdmF0ZSkoc3RydWN0
IGZpbGUgKmZpbGUpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVj
dCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgZW1wdHlfYW9wczsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgcGFnZWNhY2hlX3dyaXRlX2JlZ2luKHN0
cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgIGxv
ZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsCjE0NDc0OiAgICAgc3RydWN0
IHBhZ2UgKipwYWdlcCwgdm9pZCAqKmZzZGF0YSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBwYWdlY2Fj
aGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
LAoxNDQ3NDogICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAox
NDQ3NDogICAgIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpOwoxNDQ3NDogIyA0NDUg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RydWN0IGFkZHJlc3Nfc3BhY2UgewoxNDQ3
NDogIHN0cnVjdCBpbm9kZSAqaG9zdDsKMTQ0NzQ6ICBzdHJ1Y3QgeGFycmF5IGlfcGFnZXM7CjE0
NDc0OiAgZ2ZwX3QgZ2ZwX21hc2s7CjE0NDc0OiAgYXRvbWljX3QgaV9tbWFwX3dyaXRhYmxlOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJiX3Jvb3RfY2Fj
aGVkIGlfbW1hcDsKMTQ0NzQ6ICBzdHJ1Y3Qgcndfc2VtYXBob3JlIGlfbW1hcF9yd3NlbTsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIG5ycGFnZXM7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBucmV4Y2Vw
dGlvbmFsOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgd3JpdGViYWNrX2luZGV4OwoxNDQ3NDogIGNv
bnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgKmFfb3BzOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgZmxhZ3M7CjE0NDc0OiAgZXJyc2VxX3Qgd2JfZXJyOwoxNDQ3NDogIHNwaW5sb2Nr
X3QgcHJpdmF0ZV9sb2NrOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgcHJpdmF0ZV9saXN0Owox
NDQ3NDogIHZvaWQgKnByaXZhdGVfZGF0YTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoYWxpZ25l
ZChzaXplb2YobG9uZykpKSkgX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCByZXF1
ZXN0X3F1ZXVlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYmxvY2tfZGV2aWNlIHsKMTQ0NzQ6ICBk
ZXZfdCBiZF9kZXY7CjE0NDc0OiAgaW50IGJkX29wZW5lcnM7CjE0NDc0OiAgc3RydWN0IGlub2Rl
ICogYmRfaW5vZGU7CjE0NDc0OiAgc3RydWN0IHN1cGVyX2Jsb2NrICogYmRfc3VwZXI7CjE0NDc0
OiAgc3RydWN0IG11dGV4IGJkX211dGV4OwoxNDQ3NDogIHZvaWQgKiBiZF9jbGFpbWluZzsKMTQ0
NzQ6ICB2b2lkICogYmRfaG9sZGVyOwoxNDQ3NDogIGludCBiZF9ob2xkZXJzOwoxNDQ3NDogIGJv
b2wgYmRfd3JpdGVfaG9sZGVyOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBiZF9o
b2xkZXJfZGlza3M7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgYmxvY2tfZGV2aWNlICogYmRfY29u
dGFpbnM7CjE0NDc0OiAgdW5zaWduZWQgYmRfYmxvY2tfc2l6ZTsKMTQ0NzQ6ICB1OCBiZF9wYXJ0
bm87CjE0NDc0OiAgc3RydWN0IGhkX3N0cnVjdCAqIGJkX3BhcnQ7CjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBiZF9wYXJ0X2NvdW50OwoxNDQ3NDogIGludCBiZF9pbnZhbGlkYXRlZDsKMTQ0NzQ6
ICBzdHJ1Y3QgZ2VuZGlzayAqIGJkX2Rpc2s7CjE0NDc0OiAgc3RydWN0IHJlcXVlc3RfcXVldWUg
KiBiZF9xdWV1ZTsKMTQ0NzQ6ICBzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRfYmRpOwoxNDQ3
NDogIHN0cnVjdCBsaXN0X2hlYWQgYmRfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGJkX3ByaXZhdGU7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBiZF9mc2ZyZWV6ZV9jb3VudDsKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBtdXRleCBiZF9mc2ZyZWV6ZV9tdXRleDsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVf
XygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoxNDQ3NDogIyA1MTkgIi4vaW5jbHVkZS9saW51eC9m
cy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBtYXBwaW5nX3RhZ2dlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZywgeGFfbWFya190IHRhZykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4geGFfbWFya2VkKCZt
YXBwaW5nLT5pX3BhZ2VzLCB0YWcpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfbW1h
cF9sb2NrX3dyaXRlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3
NDogIGRvd25fd3JpdGUoJm1hcHBpbmctPmlfbW1hcF9yd3NlbSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgaV9tbWFwX3VubG9ja193cml0ZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1cF93cml0ZSgmbWFwcGluZy0+aV9tbWFwX3J3c2VtKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpX21tYXBfbG9ja19yZWFkKHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIGRvd25fcmVhZCgmbWFwcGluZy0+
aV9tbWFwX3J3c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpX21tYXBfdW5sb2Nr
X3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgdXBf
cmVhZCgmbWFwcGluZy0+aV9tbWFwX3J3c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG1hcHBpbmdfbWFwcGVkKHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhKCh7IHVuaW9uIHsgdHlwZW9m
KCgmbWFwcGluZy0+aV9tbWFwLnJiX3Jvb3QpLT5yYl9ub2RlKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCgmbWFwcGluZy0+aV9tbWFwLnJiX3Jv
b3QpLT5yYl9ub2RlKSwgX191Ll9fYywgc2l6ZW9mKCgmbWFwcGluZy0+aV9tbWFwLnJiX3Jvb3Qp
LT5yYl9ub2RlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKCZtYXBwaW5nLT5p
X21tYXAucmJfcm9vdCktPnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZtYXBwaW5nLT5pX21t
YXAucmJfcm9vdCktPnJiX25vZGUpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KSA9
PSAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU2MSAiLi9pbmNsdWRlL2xpbnV4L2Zz
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgbWFwcGluZ193cml0YWJseV9tYXBwZWQoc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19yZWFkKCZtYXBwaW5n
LT5pX21tYXBfd3JpdGFibGUpID4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG1hcHBp
bmdfbWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBhdG9taWNfaW5jX3VubGVzc19uZWdhdGl2ZSgmbWFwcGluZy0+aV9tbWFw
X3dyaXRhYmxlKSA/CjE0NDc0OiAgIDAgOiAtMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBtYXBwaW5nX3VubWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQox
NDQ3NDogewoxNDQ3NDogIGF0b21pY19kZWMoJm1hcHBpbmctPmlfbW1hcF93cml0YWJsZSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtYXBwaW5nX2Rlbnlfd3JpdGFibGUoc3RydWN0IGFk
ZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19kZWNf
dW5sZXNzX3Bvc2l0aXZlKCZtYXBwaW5nLT5pX21tYXBfd3JpdGFibGUpID8KMTQ0NzQ6ICAgMCA6
IC0xNjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtYXBwaW5nX2FsbG93X3dyaXRhYmxl
KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19p
bmMoJm1hcHBpbmctPmlfbW1hcF93cml0YWJsZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDU5OSAiLi9p
bmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdHJ1Y3QgcG9zaXhfYWNsOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBvc2l4X2FjbCAqCjE0NDc0OiB1bmNhY2hlZF9hY2xf
c2VudGluZWwoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biAodm9pZCAqKXRhc2sgKyAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCjE0NDc0OiBp
c191bmNhY2hlZF9hY2woc3RydWN0IHBvc2l4X2FjbCAqYWNsKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAobG9uZylhY2wgJiAxOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZnNub3RpZnlfbWFya19j
b25uZWN0b3I7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgaW5vZGUgewoxNDQ3NDogIHVtb2RlX3QgaV9tb2RlOwoxNDQ3NDogIHVu
c2lnbmVkIHNob3J0IGlfb3BmbGFnczsKMTQ0NzQ6ICBrdWlkX3QgaV91aWQ7CjE0NDc0OiAga2dp
ZF90IGlfZ2lkOwoxNDQ3NDogIHVuc2lnbmVkIGludCBpX2ZsYWdzOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgcG9zaXhfYWNsICppX2FjbDsKMTQ0NzQ6ICBzdHJ1Y3QgcG9zaXhfYWNs
ICppX2RlZmF1bHRfYWNsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgaW5v
ZGVfb3BlcmF0aW9ucyAqaV9vcDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmlfc2I7CjE0
NDc0OiAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmlfbWFwcGluZzsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAqaV9zZWN1cml0eTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGlfaW5vOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBjb25zdCB1bnNpZ25l
ZCBpbnQgaV9ubGluazsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IF9faV9ubGluazsKMTQ0NzQ6ICB9
OwoxNDQ3NDogIGRldl90IGlfcmRldjsKMTQ0NzQ6ICBsb2ZmX3QgaV9zaXplOwoxNDQ3NDogIHN0
cnVjdCB0aW1lc3BlYzY0IGlfYXRpbWU7CjE0NDc0OiAgc3RydWN0IHRpbWVzcGVjNjQgaV9tdGlt
ZTsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZXNwZWM2NCBpX2N0aW1lOwoxNDQ3NDogIHNwaW5sb2NrX3Qg
aV9sb2NrOwoxNDQ3NDogIHVuc2lnbmVkIHNob3J0IGlfYnl0ZXM7CjE0NDc0OiAgdTggaV9ibGti
aXRzOwoxNDQ3NDogIHU4IGlfd3JpdGVfaGludDsKMTQ0NzQ6ICBibGtjbnRfdCBpX2Jsb2NrczsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGlfc3RhdGU7CjE0NDc0OiAgc3RydWN0IHJ3X3NlbWFwaG9yZSBpX3J3c2Vt
OwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBkaXJ0aWVkX3doZW47CjE0NDc0OiAgdW5z
aWduZWQgbG9uZyBkaXJ0aWVkX3RpbWVfd2hlbjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBobGlz
dF9ub2RlIGlfaGFzaDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGlfaW9fbGlzdDsKMTQ0NzQ6
IAoxNDQ3NDogIHN0cnVjdCBiZGlfd3JpdGViYWNrICppX3diOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBpbnQgaV93Yl9mcm5fd2lubmVyOwoxNDQ3NDogIHUxNiBpX3diX2Zybl9hdmdfdGltZTsK
MTQ0NzQ6ICB1MTYgaV93Yl9mcm5faGlzdG9yeTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0
X2hlYWQgaV9scnU7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBpX3NiX2xpc3Q7CjE0NDc0OiAg
c3RydWN0IGxpc3RfaGVhZCBpX3diX2xpc3Q7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1
Y3QgaGxpc3RfaGVhZCBpX2RlbnRyeTsKMTQ0NzQ6ICAgc3RydWN0IGNhbGxiYWNrX2hlYWQgaV9y
Y3U7CjE0NDc0OiAgfTsKMTQ0NzQ6ICBhdG9taWM2NF90IGlfdmVyc2lvbjsKMTQ0NzQ6ICBhdG9t
aWM2NF90IGlfc2VxdWVuY2U7CjE0NDc0OiAgYXRvbWljX3QgaV9jb3VudDsKMTQ0NzQ6ICBhdG9t
aWNfdCBpX2Rpb19jb3VudDsKMTQ0NzQ6ICBhdG9taWNfdCBpX3dyaXRlY291bnQ7CjE0NDc0OiAK
MTQ0NzQ6ICBhdG9taWNfdCBpX3JlYWRjb3VudDsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0
NzQ6ICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CjE0NDc0OiAgIHZvaWQg
KCpmcmVlX2lub2RlKShzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgfTsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZmlsZV9sb2NrX2NvbnRleHQgKmlfZmxjdHg7CjE0NDc0OiAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
aV9kYXRhOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgaV9kZXZpY2VzOwoxNDQ3NDogIHVuaW9u
IHsKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqaV9waXBlOwoxNDQ3NDogICBzdHJ1
Y3QgYmxvY2tfZGV2aWNlICppX2JkZXY7CjE0NDc0OiAgIHN0cnVjdCBjZGV2ICppX2NkZXY7CjE0
NDc0OiAgIGNoYXIgKmlfbGluazsKMTQ0NzQ6ICAgdW5zaWduZWQgaV9kaXJfc2VxOwoxNDQ3NDog
IH07CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBpX2dlbmVyYXRpb247CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIF9fdTMyIGlfZnNub3RpZnlfbWFzazsKMTQ0NzQ6ICBzdHJ1Y3QgZnNub3RpZnlfbWFy
a19jb25uZWN0b3IgKmlfZnNub3RpZnlfbWFya3M7CjE0NDc0OiAjIDczOCAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiCjE0NDc0OiAgdm9pZCAqaV9wcml2YXRlOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9f
KChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0aW1lc3BlYzY0
IHRpbWVzdGFtcF90cnVuY2F0ZShzdHJ1Y3QgdGltZXNwZWM2NCB0LCBzdHJ1Y3QgaW5vZGUgKmlu
b2RlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGlfYmxvY2tzaXplKGNvbnN0IHN0cnVj
dCBpbm9kZSAqbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKDEgPDwgbm9kZS0+aV9ibGti
aXRzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3VuaGFzaGVkKHN0cnVjdCBp
bm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGhsaXN0X3VuaGFzaGVkKCZpbm9k
ZS0+aV9oYXNoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9mYWtlX2hhc2goc3RydWN0IGlu
b2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBobGlzdF9hZGRfZmFrZSgmaW5vZGUtPmlfaGFz
aCk7CjE0NDc0OiB9CjE0NDc0OiAjIDc4MCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBl
bnVtIGlub2RlX2lfbXV0ZXhfbG9ja19jbGFzcwoxNDQ3NDogewoxNDQ3NDogIElfTVVURVhfTk9S
TUFMLAoxNDQ3NDogIElfTVVURVhfUEFSRU5ULAoxNDQ3NDogIElfTVVURVhfQ0hJTEQsCjE0NDc0
OiAgSV9NVVRFWF9YQVRUUiwKMTQ0NzQ6ICBJX01VVEVYX05PTkRJUjIsCjE0NDc0OiAgSV9NVVRF
WF9QQVJFTlQyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9sb2NrKHN0cnVj
dCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgZG93bl93cml0ZSgmaW5vZGUtPmlfcndz
ZW0pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX3VubG9jayhzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIHVwX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfbG9ja19zaGFyZWQoc3RydWN0IGlub2Rl
ICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBkb3duX3JlYWQoJmlub2RlLT5pX3J3c2VtKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV91bmxvY2tfc2hhcmVkKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgdXBfcmVhZCgmaW5vZGUtPmlfcndzZW0pOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaW5vZGVfdHJ5bG9jayhzdHJ1Y3QgaW5vZGUgKmlub2Rl
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkb3duX3dyaXRlX3RyeWxvY2soJmlub2RlLT5pX3J3
c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3RyeWxvY2tfc2hhcmVkKHN0
cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRvd25fcmVhZF90cnls
b2NrKCZpbm9kZS0+aV9yd3NlbSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpbm9kZV9p
c19sb2NrZWQoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gcndz
ZW1faXNfbG9ja2VkKCZpbm9kZS0+aV9yd3NlbSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaW5vZGVfbG9ja19uZXN0ZWQoc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgc3ViY2xh
c3MpCjE0NDc0OiB7CjE0NDc0OiAgZG93bl93cml0ZSgmaW5vZGUtPmlfcndzZW0pOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2xvY2tfc2hhcmVkX25lc3RlZChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCB1bnNpZ25lZCBzdWJjbGFzcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkb3duX3JlYWQo
Jmlub2RlLT5pX3J3c2VtKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBsb2NrX3R3b19u
b25kaXJlY3RvcmllcyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlub2RlKik7CjE0NDc0OiB2b2lk
IHVubG9ja190d29fbm9uZGlyZWN0b3JpZXMoc3RydWN0IGlub2RlICosIHN0cnVjdCBpbm9kZSop
OwoxNDQ3NDogIyA4NDggIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9mZl90IGlfc2l6
ZV9yZWFkKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAjIDg2NyAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiAgcmV0dXJuIGlub2RlLT5pX3NpemU7CjE0NDc0
OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgaV9zaXplX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBp
X3NpemUpCjE0NDc0OiB7CjE0NDc0OiAjIDg4OSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0
OiAgaW5vZGUtPmlfc2l6ZSA9IGlfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBpbWlub3IoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpICgoaW5vZGUtPmlfcmRldikgJiAoKDFVIDw8IDIw
KSAtIDEpKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGltYWpvcihjb25zdCBz
dHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoKHVuc2lnbmVkIGlu
dCkgKChpbm9kZS0+aV9yZGV2KSA+PiAyMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gc3RydWN0IGJsb2NrX2RldmljZSAqSV9CREVWKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZm93bl9zdHJ1Y3QgewoxNDQ3NDogIHJ3bG9ja190IGxvY2s7CjE0
NDc0OiAgc3RydWN0IHBpZCAqcGlkOwoxNDQ3NDogIGVudW0gcGlkX3R5cGUgcGlkX3R5cGU7CjE0
NDc0OiAga3VpZF90IHVpZCwgZXVpZDsKMTQ0NzQ6ICBpbnQgc2lnbnVtOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVfcmFfc3RhdGUg
ewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgc3RhcnQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNpemU7
CjE0NDc0OiAgdW5zaWduZWQgaW50IGFzeW5jX3NpemU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHVuc2lnbmVkIGludCByYV9wYWdlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbW1hcF9taXNzOwox
NDQ3NDogIGxvZmZfdCBwcmV2X3BvczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCByYV9oYXNfaW5kZXgoc3RydWN0IGZpbGVfcmFfc3RhdGUgKnJh
LCB1bnNpZ25lZCBsb25nIGluZGV4KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoaW5kZXggPj0g
cmEtPnN0YXJ0ICYmCjE0NDc0OiAgIGluZGV4IDwgcmEtPnN0YXJ0ICsgcmEtPnNpemUpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZSB7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDog
ICBzdHJ1Y3QgbGxpc3Rfbm9kZSBmdV9sbGlzdDsKMTQ0NzQ6ICAgc3RydWN0IGNhbGxiYWNrX2hl
YWQgZnVfcmN1aGVhZDsKMTQ0NzQ6ICB9IGZfdTsKMTQ0NzQ6ICBzdHJ1Y3QgcGF0aCBmX3BhdGg7
CjE0NDc0OiAgc3RydWN0IGlub2RlICpmX2lub2RlOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgKmZfb3A7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHNwaW5sb2NrX3QgZl9sb2NrOwoxNDQ3NDogIGVudW0gcndfaGludCBmX3dyaXRl
X2hpbnQ7CjE0NDc0OiAgYXRvbWljX2xvbmdfdCBmX2NvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBmX2ZsYWdzOwoxNDQ3NDogIGZtb2RlX3QgZl9tb2RlOwoxNDQ3NDogIHN0cnVjdCBtdXRleCBm
X3Bvc19sb2NrOwoxNDQ3NDogIGxvZmZfdCBmX3BvczsKMTQ0NzQ6ICBzdHJ1Y3QgZm93bl9zdHJ1
Y3QgZl9vd25lcjsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgY3JlZCAqZl9jcmVkOwoxNDQ3NDogIHN0
cnVjdCBmaWxlX3JhX3N0YXRlIGZfcmE7CjE0NDc0OiAKMTQ0NzQ6ICB1NjQgZl92ZXJzaW9uOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAqZl9zZWN1cml0eTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dm9pZCAqcHJpdmF0ZV9kYXRhOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBsaXN0X2hlYWQgZl9lcF9saW5rczsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZfdGZpbGVf
bGxpbms7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqZl9tYXBwaW5nOwox
NDQ3NDogIGVycnNlcV90IGZfd2JfZXJyOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2ln
bmF0ZWRfaW5pdF9fKSkKMTQ0NzQ6ICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZV9oYW5kbGUgewoxNDQ3NDogIF9fdTMyIGhhbmRsZV9ieXRl
czsKMTQ0NzQ6ICBpbnQgaGFuZGxlX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFy
IGZfaGFuZGxlWzBdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpbGUgKmdldF9m
aWxlKHN0cnVjdCBmaWxlICpmKQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19sb25nX2luYygmZi0+
Zl9jb3VudCk7CjE0NDc0OiAgcmV0dXJuIGY7CjE0NDc0OiB9CjE0NDc0OiAjIDEwMjYgIi4vaW5j
bHVkZS9saW51eC9mcy5oIgoxNDQ3NDogdHlwZWRlZiB2b2lkICpmbF9vd25lcl90OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZmlsZV9sb2NrOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmlsZV9sb2Nr
X29wZXJhdGlvbnMgewoxNDQ3NDogIHZvaWQgKCpmbF9jb3B5X2xvY2spKHN0cnVjdCBmaWxlX2xv
Y2sgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKMTQ0NzQ6ICB2b2lkICgqZmxfcmVsZWFzZV9wcml2
YXRlKShzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGxvY2tfbWFuYWdlcl9vcGVyYXRpb25zIHsKMTQ0NzQ6ICBmbF9vd25lcl90ICgqbG1fZ2V0X293
bmVyKShmbF9vd25lcl90KTsKMTQ0NzQ6ICB2b2lkICgqbG1fcHV0X293bmVyKShmbF9vd25lcl90
KTsKMTQ0NzQ6ICB2b2lkICgqbG1fbm90aWZ5KShzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDog
IGludCAoKmxtX2dyYW50KShzdHJ1Y3QgZmlsZV9sb2NrICosIGludCk7CjE0NDc0OiAgYm9vbCAo
KmxtX2JyZWFrKShzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogIGludCAoKmxtX2NoYW5nZSko
c3RydWN0IGZpbGVfbG9jayAqLCBpbnQsIHN0cnVjdCBsaXN0X2hlYWQgKik7CjE0NDc0OiAgdm9p
ZCAoKmxtX3NldHVwKShzdHJ1Y3QgZmlsZV9sb2NrICosIHZvaWQgKiopOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGxvY2tfbWFuYWdlciB7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVh
ZCBsaXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBibG9j
a19vcGVuczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBuZXQ7CjE0NDc0OiB2b2lk
IGxvY2tzX3N0YXJ0X2dyYWNlKHN0cnVjdCBuZXQgKiwgc3RydWN0IGxvY2tfbWFuYWdlciAqKTsK
MTQ0NzQ6IHZvaWQgbG9ja3NfZW5kX2dyYWNlKHN0cnVjdCBsb2NrX21hbmFnZXIgKik7CjE0NDc0
OiBib29sIGxvY2tzX2luX2dyYWNlKHN0cnVjdCBuZXQgKik7CjE0NDc0OiBib29sIG9wZW5zX2lu
X2dyYWNlKHN0cnVjdCBuZXQgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvbmZzX2ZzX2kuaCIgMQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgbmxtX2xvY2tvd25lcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IG5mc19sb2NrX2luZm8gewoxNDQ3NDogIHUzMiBzdGF0ZTsKMTQ0NzQ6
ICBzdHJ1Y3QgbmxtX2xvY2tvd25lciAqb3duZXI7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBs
aXN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG5mczRfbG9ja19zdGF0ZTsKMTQ0
NzQ6IHN0cnVjdCBuZnM0X2xvY2tfaW5mbyB7CjE0NDc0OiAgc3RydWN0IG5mczRfbG9ja19zdGF0
ZSAqb3duZXI7CjE0NDc0OiB9OwoxNDQ3NDogIyAxMDYyICIuL2luY2x1ZGUvbGludXgvZnMuaCIg
MgoxNDQ3NDogIyAxMDgwICIuL2luY2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0cnVjdCBmaWxl
X2xvY2sgewoxNDQ3NDogIHN0cnVjdCBmaWxlX2xvY2sgKmZsX2Jsb2NrZXI7CjE0NDc0OiAgc3Ry
dWN0IGxpc3RfaGVhZCBmbF9saXN0OwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIGZsX2xpbms7
CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBmbF9ibG9ja2VkX3JlcXVlc3RzOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZsX2Jsb2NrZWRfbWVtYmVyOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBmbF9vd25lcl90IGZsX293bmVyOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBmbF9mbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGZsX3R5cGU7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGZsX3BpZDsKMTQ0NzQ6ICBpbnQgZmxfbGlua19jcHU7CjE0NDc0OiAgd2FpdF9xdWV1
ZV9oZWFkX3QgZmxfd2FpdDsKMTQ0NzQ6ICBzdHJ1Y3QgZmlsZSAqZmxfZmlsZTsKMTQ0NzQ6ICBs
b2ZmX3QgZmxfc3RhcnQ7CjE0NDc0OiAgbG9mZl90IGZsX2VuZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBmbF9icmVha190aW1lOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZmxfZG93bmdyYWRlX3Rp
bWU7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZmlsZV9sb2NrX29wZXJhdGlvbnMgKmZs
X29wczsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgbG9ja19tYW5hZ2VyX29wZXJhdGlvbnMgKmZsX2xt
b3BzOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IG5mc19sb2NrX2luZm8gbmZzX2Zs
OwoxNDQ3NDogICBzdHJ1Y3QgbmZzNF9sb2NrX2luZm8gbmZzNF9mbDsKMTQ0NzQ6ICAgc3RydWN0
IHsKMTQ0NzQ6ICAgIHN0cnVjdCBsaXN0X2hlYWQgbGluazsKMTQ0NzQ6ICAgIGludCBzdGF0ZTsK
MTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBkZWJ1Z19pZDsKMTQ0NzQ6ICAgfSBhZnM7CjE0NDc0OiAg
fSBmbF91OwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaWxlX2xvY2tfY29udGV4dCB7CjE0NDc0OiAgc3BpbmxvY2tf
dCBmbGNfbG9jazsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZsY19mbG9jazsKMTQ0NzQ6ICBz
dHJ1Y3QgbGlzdF9oZWFkIGZsY19wb3NpeDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGZsY19s
ZWFzZTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDExMzIgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3
NDogZXh0ZXJuIHZvaWQgc2VuZF9zaWdpbyhzdHJ1Y3QgZm93bl9zdHJ1Y3QgKmZvd24sIGludCBm
ZCwgaW50IGJhbmQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gaW50IGZjbnRsX2dldGxrKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgc3RydWN0IGZs
b2NrICopOwoxNDQ3NDogZXh0ZXJuIGludCBmY250bF9zZXRsayh1bnNpZ25lZCBpbnQsIHN0cnVj
dCBmaWxlICosIHVuc2lnbmVkIGludCwKMTQ0NzQ6ICAgIHN0cnVjdCBmbG9jayAqKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGludCBmY250bF9zZXRsZWFzZSh1bnNpZ25lZCBpbnQgZmQsIHN0cnVjdCBmaWxlICpm
aWxwLCBsb25nIGFyZyk7CjE0NDc0OiBleHRlcm4gaW50IGZjbnRsX2dldGxlYXNlKHN0cnVjdCBm
aWxlICpmaWxwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGxvY2tzX2ZyZWVfbG9ja19j
b250ZXh0KHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDogdm9pZCBsb2Nrc19mcmVlX2xvY2so
c3RydWN0IGZpbGVfbG9jayAqZmwpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbG9ja3NfaW5pdF9sb2Nr
KHN0cnVjdCBmaWxlX2xvY2sgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGZpbGVfbG9jayAqIGxv
Y2tzX2FsbG9jX2xvY2sodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBsb2Nrc19jb3B5X2xvY2so
c3RydWN0IGZpbGVfbG9jayAqLCBzdHJ1Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgbG9ja3NfY29weV9jb25mbG9jayhzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xv
Y2sgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBsb2Nrc19yZW1vdmVfcG9zaXgoc3RydWN0IGZpbGUg
KiwgZmxfb3duZXJfdCk7CjE0NDc0OiBleHRlcm4gdm9pZCBsb2Nrc19yZW1vdmVfZmlsZShzdHJ1
Y3QgZmlsZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGxvY2tzX3JlbGVhc2VfcHJpdmF0ZShzdHJ1
Y3QgZmlsZV9sb2NrICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcG9zaXhfdGVzdF9sb2NrKHN0cnVj
dCBmaWxlICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CjE0NDc0OiBleHRlcm4gaW50IHBvc2l4X2xv
Y2tfZmlsZShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xv
Y2sgKik7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tzX2RlbGV0ZV9ibG9jayhzdHJ1Y3QgZmlsZV9s
b2NrICopOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfdGVzdF9sb2NrKHN0cnVjdCBmaWxlICosIHN0
cnVjdCBmaWxlX2xvY2sgKik7CjE0NDc0OiBleHRlcm4gaW50IHZmc19sb2NrX2ZpbGUoc3RydWN0
IGZpbGUgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xv
Y2sgKik7CjE0NDc0OiBleHRlcm4gaW50IHZmc19jYW5jZWxfbG9jayhzdHJ1Y3QgZmlsZSAqZmls
cCwgc3RydWN0IGZpbGVfbG9jayAqZmwpOwoxNDQ3NDogZXh0ZXJuIGludCBsb2Nrc19sb2NrX2lu
b2RlX3dhaXQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGVfbG9jayAqZmwpOwoxNDQ3
NDogZXh0ZXJuIGludCBfX2JyZWFrX2xlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVk
IGludCBmbGFncywgdW5zaWduZWQgaW50IHR5cGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgbGVhc2Vf
Z2V0X210aW1lKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgdGltZXNwZWM2NCAqdGltZSk7CjE0NDc0
OiBleHRlcm4gaW50IGdlbmVyaWNfc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0
IGZpbGVfbG9jayAqKiwgdm9pZCAqKnByaXYpOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfc2V0bGVh
c2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CjE0
NDc0OiBleHRlcm4gaW50IGxlYXNlX21vZGlmeShzdHJ1Y3QgZmlsZV9sb2NrICosIGludCwgc3Ry
dWN0IGxpc3RfaGVhZCAqKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwox
NDQ3NDogZXh0ZXJuIGludCBsZWFzZV9yZWdpc3Rlcl9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2sgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBsZWFzZV91bnJlZ2lzdGVyX25vdGlmaWVyKHN0
cnVjdCBub3RpZmllcl9ibG9jayAqKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVzX3N0cnVj
dDsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNob3dfZmRfbG9ja3Moc3RydWN0IHNlcV9maWxlICpmLAox
NDQ3NDogICAgIHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmaWxlcyk7
CjE0NDc0OiAjIDEzMTcgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGlub2Rl
ICpmaWxlX2lub2RlKGNvbnN0IHN0cnVjdCBmaWxlICpmKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biBmLT5mX2lub2RlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGVudHJ5ICpmaWxl
X2RlbnRyeShjb25zdCBzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZF9yZWFsKGZpbGUtPmZfcGF0aC5kZW50cnksIGZpbGVfaW5vZGUoZmlsZSkpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgbG9ja3NfbG9ja19maWxlX3dhaXQoc3RydWN0IGZpbGUgKmZpbHAs
IHN0cnVjdCBmaWxlX2xvY2sgKmZsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBsb2Nrc19sb2Nr
X2lub2RlX3dhaXQoZmlsZV9pbm9kZShmaWxwKSwgZmwpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCB7CjE0NDc0OiAgcndsb2NrX3QgZmFfbG9jazsKMTQ0NzQ6
ICBpbnQgbWFnaWM7CjE0NDc0OiAgaW50IGZhX2ZkOwoxNDQ3NDogIHN0cnVjdCBmYXN5bmNfc3Ry
dWN0ICpmYV9uZXh0OwoxNDQ3NDogIHN0cnVjdCBmaWxlICpmYV9maWxlOwoxNDQ3NDogIHN0cnVj
dCBjYWxsYmFja19oZWFkIGZhX3JjdTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZmFzeW5jX2hlbHBlcihpbnQsIHN0cnVjdCBmaWxl
ICosIGludCwgc3RydWN0IGZhc3luY19zdHJ1Y3QgKiopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBm
YXN5bmNfc3RydWN0ICpmYXN5bmNfaW5zZXJ0X2VudHJ5KGludCwgc3RydWN0IGZpbGUgKiwgc3Ry
dWN0IGZhc3luY19zdHJ1Y3QgKiosIHN0cnVjdCBmYXN5bmNfc3RydWN0ICopOwoxNDQ3NDogZXh0
ZXJuIGludCBmYXN5bmNfcmVtb3ZlX2VudHJ5KHN0cnVjdCBmaWxlICosIHN0cnVjdCBmYXN5bmNf
c3RydWN0ICoqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jX2Fs
bG9jKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZmFzeW5jX2ZyZWUoc3RydWN0IGZhc3luY19z
dHJ1Y3QgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga2lsbF9mYXN5bmMo
c3RydWN0IGZhc3luY19zdHJ1Y3QgKiosIGludCwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19mX3NldG93bihzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBpZCAqLCBlbnVtIHBp
ZF90eXBlLCBpbnQgZm9yY2UpOwoxNDQ3NDogZXh0ZXJuIGludCBmX3NldG93bihzdHJ1Y3QgZmls
ZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcsIGludCBmb3JjZSk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBmX2RlbG93bihzdHJ1Y3QgZmlsZSAqZmlscCk7CjE0NDc0OiBleHRlcm4gcGlkX3QgZl9nZXRv
d24oc3RydWN0IGZpbGUgKmZpbHApOwoxNDQ3NDogZXh0ZXJuIGludCBzZW5kX3NpZ3VyZyhzdHJ1
Y3QgZm93bl9zdHJ1Y3QgKmZvd24pOwoxNDQ3NDogIyAxNDA4ICIuL2luY2x1ZGUvbGludXgvZnMu
aCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIFNCX1VORlJPWkVOID0gMCwKMTQ0NzQ6ICBTQl9GUkVF
WkVfV1JJVEUgPSAxLAoxNDQ3NDogIFNCX0ZSRUVaRV9QQUdFRkFVTFQgPSAyLAoxNDQ3NDogIFNC
X0ZSRUVaRV9GUyA9IDMsCjE0NDc0OiAKMTQ0NzQ6ICBTQl9GUkVFWkVfQ09NUExFVEUgPSA0LAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzYl93cml0ZXJz
IHsKMTQ0NzQ6ICBpbnQgZnJvemVuOwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHdhaXRfdW5m
cm96ZW47CjE0NDc0OiAgc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgcndfc2VtWyhTQl9GUkVF
WkVfQ09NUExFVEUgLSAxKV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgewoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc19saXN0OwoxNDQ3NDogIGRldl90IHNf
ZGV2OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc19ibG9ja3NpemVfYml0czsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNfYmxvY2tzaXplOwoxNDQ3NDogIGxvZmZfdCBzX21heGJ5dGVzOwoxNDQ3NDog
IHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpzX3R5cGU7CjE0NDc0OiAgY29uc3Qgc3RydWN0IHN1
cGVyX29wZXJhdGlvbnMgKnNfb3A7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRxdW90X29wZXJhdGlv
bnMgKmRxX29wOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBxdW90YWN0bF9vcHMgKnNfcWNvcDsKMTQ0
NzQ6ICBjb25zdCBzdHJ1Y3QgZXhwb3J0X29wZXJhdGlvbnMgKnNfZXhwb3J0X29wOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgc19mbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNfaWZsYWdzOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgc19tYWdpYzsKMTQ0NzQ6ICBzdHJ1Y3QgZGVudHJ5ICpzX3Jv
b3Q7CjE0NDc0OiAgc3RydWN0IHJ3X3NlbWFwaG9yZSBzX3Vtb3VudDsKMTQ0NzQ6ICBpbnQgc19j
b3VudDsKMTQ0NzQ6ICBhdG9taWNfdCBzX2FjdGl2ZTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKnNf
c2VjdXJpdHk7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgeGF0dHJfaGFuZGxlciAqKnNf
eGF0dHI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgaGxpc3RfYmxfaGVhZCBzX3Jvb3RzOwoxNDQ3NDogIHN0cnVj
dCBsaXN0X2hlYWQgc19tb3VudHM7CjE0NDc0OiAgc3RydWN0IGJsb2NrX2RldmljZSAqc19iZGV2
OwoxNDQ3NDogIHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvICpzX2JkaTsKMTQ0NzQ6ICBzdHJ1Y3Qg
bXRkX2luZm8gKnNfbXRkOwoxNDQ3NDogIHN0cnVjdCBobGlzdF9ub2RlIHNfaW5zdGFuY2VzOwox
NDQ3NDogIHVuc2lnbmVkIGludCBzX3F1b3RhX3R5cGVzOwoxNDQ3NDogIHN0cnVjdCBxdW90YV9p
bmZvIHNfZHF1b3Q7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc2Jfd3JpdGVycyBzX3dyaXRlcnM7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dm9pZCAqc19mc19pbmZvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1MzIgc190aW1lX2dyYW47
CjE0NDc0OiAKMTQ0NzQ6ICB0aW1lNjRfdCBzX3RpbWVfbWluOwoxNDQ3NDogIHRpbWU2NF90IHNf
dGltZV9tYXg7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBzX2Zzbm90aWZ5X21hc2s7CjE0NDc0OiAg
c3RydWN0IGZzbm90aWZ5X21hcmtfY29ubmVjdG9yICpzX2Zzbm90aWZ5X21hcmtzOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBjaGFyIHNfaWRbMzJdOwoxNDQ3NDogIHV1aWRfdCBzX3V1aWQ7CjE0
NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc19tYXhfbGlua3M7CjE0NDc0OiAgZm1vZGVfdCBz
X21vZGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0
cnVjdCBtdXRleCBzX3Zmc19yZW5hbWVfbXV0ZXg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IGNoYXIgKnNfc3VidHlwZTsKMTQ0NzQ6IAoxNDQ3
NDogIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyAqc19kX29wOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IGNsZWFuY2FjaGVfcG9vbGlkOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IHNocmlua2VyIHNfc2hyaW5rOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBhdG9taWNfbG9uZ190IHNfcmVtb3ZlX2NvdW50OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBh
dG9taWNfbG9uZ190IHNfZnNub3RpZnlfaW5vZGVfcmVmczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgaW50IHNfcmVhZG9ubHlfcmVtb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IHdvcmtxdWV1ZV9zdHJ1Y3QgKnNfZGlvX2RvbmVfd3E7CjE0NDc0OiAgc3RydWN0IGhsaXN0X2hl
YWQgc19waW5zOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqc191c2VyX25zOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2xy
dSBzX2RlbnRyeV9scnU7CjE0NDc0OiAgc3RydWN0IGxpc3RfbHJ1IHNfaW5vZGVfbHJ1OwoxNDQ3
NDogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6ICBzdHJ1Y3Qgd29ya19zdHJ1Y3Qg
ZGVzdHJveV93b3JrOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IG11dGV4IHNfc3luY19sb2NrOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IHNfc3RhY2tfZGVwdGg7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5sb2NrX3Qgc19pbm9kZV9saXN0X2xvY2sgX19h
dHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkpKTsKMTQ0NzQ6ICBzdHJ1Y3QgbGlz
dF9oZWFkIHNfaW5vZGVzOwoxNDQ3NDogCjE0NDc0OiAgc3BpbmxvY2tfdCBzX2lub2RlX3dibGlz
dF9sb2NrOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgc19pbm9kZXNfd2I7CjE0NDc0OiB9IF9f
YXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVpZF90IGlfdWlkX3JlYWQoY29uc3Qg
c3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZnJvbV9rdWlkKGlu
b2RlLT5pX3NiLT5zX3VzZXJfbnMsIGlub2RlLT5pX3VpZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGdpZF90IGlfZ2lkX3JlYWQoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gZnJvbV9rZ2lkKGlub2RlLT5pX3NiLT5zX3VzZXJfbnMsIGlub2RlLT5p
X2dpZCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaV91aWRfd3JpdGUoc3RydWN0IGlu
b2RlICppbm9kZSwgdWlkX3QgdWlkKQoxNDQ3NDogewoxNDQ3NDogIGlub2RlLT5pX3VpZCA9IG1h
a2Vfa3VpZChpbm9kZS0+aV9zYi0+c191c2VyX25zLCB1aWQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGlfZ2lkX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGdpZF90IGdpZCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpbm9kZS0+aV9naWQgPSBtYWtlX2tnaWQoaW5vZGUtPmlfc2ItPnNfdXNl
cl9ucywgZ2lkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0aW1lc3Bl
YzY0IGN1cnJlbnRfdGltZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIF9fc2JfZW5kX3dyaXRlKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IsIGludCBsZXZlbCk7CjE0NDc0OiBpbnQgX19zYl9zdGFydF93cml0ZShz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbGV2ZWwsIGJvb2wgd2FpdCk7CjE0NDc0OiAjIDE2
MDAgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9lbmRfd3JpdGUoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NiX2VuZF93cml0ZShzYiwgU0Jf
RlJFRVpFX1dSSVRFKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTYxMiAiLi9pbmNsdWRlL2xpbnV4L2Zz
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHNiX2VuZF9wYWdlZmF1bHQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBfX3NiX2VuZF93cml0ZShzYiwgU0JfRlJFRVpFX1BBR0VGQVVMVCk7
CjE0NDc0OiB9CjE0NDc0OiAjIDE2MjQgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBzYl9lbmRfaW50d3JpdGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX3NiX2VuZF93cml0ZShzYiwgU0JfRlJFRVpFX0ZTKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTY0
OCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNiX3N0YXJ0X3dyaXRlKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IpCjE0NDc0OiB7CjE0NDc0OiAgX19zYl9zdGFydF93cml0ZShzYiwg
U0JfRlJFRVpFX1dSSVRFLCB0cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHNiX3N0
YXJ0X3dyaXRlX3RyeWxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gX19zYl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpFX1dSSVRFLCBmYWxzZSk7CjE0
NDc0OiB9CjE0NDc0OiAjIDE2NzcgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBz
Yl9zdGFydF9wYWdlZmF1bHQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX3NiX3N0YXJ0X3dyaXRlKHNiLCBTQl9GUkVFWkVfUEFHRUZBVUxULCB0cnVlKTsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTY5NSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNiX3N0
YXJ0X2ludHdyaXRlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCjE0NDc0OiB7CjE0NDc0OiAgX19z
Yl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpFX0ZTLCB0cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHNiX3N0YXJ0X2ludHdyaXRlX3RyeWxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpz
YikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19zYl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpF
X0ZTLCBmYWxzZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wg
aW5vZGVfb3duZXJfb3JfY2FwYWJsZShjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfY3JlYXRlKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVtb2RlX3QsIGJvb2wpOwoxNDQ3NDogZXh0
ZXJuIGludCB2ZnNfbWtkaXIoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgdW1vZGVf
dCk7CjE0NDc0OiBleHRlcm4gaW50IHZmc19ta25vZChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRl
bnRyeSAqLCB1bW9kZV90LCBkZXZfdCk7CjE0NDc0OiBleHRlcm4gaW50IHZmc19zeW1saW5rKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGNoYXIgKik7CjE0NDc0OiBleHRl
cm4gaW50IHZmc19saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBk
ZW50cnkgKiwgc3RydWN0IGlub2RlICoqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdmZzX3JtZGlyKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfdW5s
aW5rKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKik7CjE0
NDc0OiBleHRlcm4gaW50IHZmc19yZW5hbWUoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkg
Kiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICoqLCB1bnNp
Z25lZCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfd2hpdGVvdXQoc3RydWN0IGlub2RlICos
IHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICp2
ZnNfdG1wZmlsZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAg
ICAgIGludCBvcGVuX2ZsYWcpOwoxNDQ3NDogCjE0NDc0OiBpbnQgdmZzX21rb2JqKHN0cnVjdCBk
ZW50cnkgKiwgdW1vZGVfdCwKMTQ0NzQ6ICAgaW50ICgqZikoc3RydWN0IGRlbnRyeSAqLCB1bW9k
ZV90LCB2b2lkICopLAoxNDQ3NDogICB2b2lkICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gbG9u
ZyB2ZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVk
IGxvbmcgYXJnKTsKMTQ0NzQ6ICMgMTc0MCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBl
eHRlcm4gdm9pZCBpbm9kZV9pbml0X293bmVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0
cnVjdCBpbm9kZSAqZGlyLAoxNDQ3NDogICAgdW1vZGVfdCBtb2RlKTsKMTQ0NzQ6IGV4dGVybiBi
b29sIG1heV9vcGVuX2Rldihjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvIHsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZmlfZmxhZ3M7CjE0NDc0OiAgdW5zaWduZWQgaW50IGZpX2V4dGVudHNfbWFwcGVk
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBmaV9leHRlbnRzX21heDsKMTQ0NzQ6ICBzdHJ1Y3QgZmll
bWFwX2V4dGVudCAqZmlfZXh0ZW50c19zdGFydDsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IGlu
dCBmaWVtYXBfZmlsbF9uZXh0X2V4dGVudChzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICppbmZv
LCB1NjQgbG9naWNhbCwKMTQ0NzQ6ICAgICAgICB1NjQgcGh5cywgdTY0IGxlbiwgdTMyIGZsYWdz
KTsKMTQ0NzQ6IGludCBmaWVtYXBfY2hlY2tfZmxhZ3Moc3RydWN0IGZpZW1hcF9leHRlbnRfaW5m
byAqZmllaW5mbywgdTMyIGZzX2ZsYWdzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRpcl9jb250ZXh0OwoxNDQ3
NDogdHlwZWRlZiBpbnQgKCpmaWxsZGlyX3QpKHN0cnVjdCBkaXJfY29udGV4dCAqLCBjb25zdCBj
aGFyICosIGludCwgbG9mZl90LCB1NjQsCjE0NDc0OiAgICAgdW5zaWduZWQpOwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGlyX2NvbnRleHQgewoxNDQ3NDogIGZpbGxkaXJfdCBhY3RvcjsKMTQ0NzQ6
ICBsb2ZmX3QgcG9zOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJsb2NrX2Rldmlj
ZV9vcGVyYXRpb25zOwoxNDQ3NDogIyAxODE5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6
IHN0cnVjdCBpb3ZfaXRlcjsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB7
CjE0NDc0OiAgc3RydWN0IG1vZHVsZSAqb3duZXI7CjE0NDc0OiAgbG9mZl90ICgqbGxzZWVrKSAo
c3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwoxNDQ3NDogIHNzaXplX3QgKCpyZWFkKSAoc3Ry
dWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKMTQ0NzQ6ICBzc2l6ZV90ICgq
d3JpdGUpIChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwox
NDQ3NDogIHNzaXplX3QgKCpyZWFkX2l0ZXIpIChzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9p
dGVyICopOwoxNDQ3NDogIHNzaXplX3QgKCp3cml0ZV9pdGVyKSAoc3RydWN0IGtpb2NiICosIHN0
cnVjdCBpb3ZfaXRlciAqKTsKMTQ0NzQ6ICBpbnQgKCppb3BvbGwpKHN0cnVjdCBraW9jYiAqa2lv
Y2IsIGJvb2wgc3Bpbik7CjE0NDc0OiAgaW50ICgqaXRlcmF0ZSkgKHN0cnVjdCBmaWxlICosIHN0
cnVjdCBkaXJfY29udGV4dCAqKTsKMTQ0NzQ6ICBpbnQgKCppdGVyYXRlX3NoYXJlZCkgKHN0cnVj
dCBmaWxlICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKMTQ0NzQ6ICBfX3BvbGxfdCAoKnBvbGwp
IChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKik7CjE0NDc0OiAgbG9u
ZyAoKnVubG9ja2VkX2lvY3RsKSAoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25l
ZCBsb25nKTsKMTQ0NzQ6ICBsb25nICgqY29tcGF0X2lvY3RsKSAoc3RydWN0IGZpbGUgKiwgdW5z
aWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6ICBpbnQgKCptbWFwKSAoc3RydWN0IGZp
bGUgKiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICopOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbW1h
cF9zdXBwb3J0ZWRfZmxhZ3M7CjE0NDc0OiAgaW50ICgqb3BlbikgKHN0cnVjdCBpbm9kZSAqLCBz
dHJ1Y3QgZmlsZSAqKTsKMTQ0NzQ6ICBpbnQgKCpmbHVzaCkgKHN0cnVjdCBmaWxlICosIGZsX293
bmVyX3QgaWQpOwoxNDQ3NDogIGludCAoKnJlbGVhc2UpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IGZpbGUgKik7CjE0NDc0OiAgaW50ICgqZnN5bmMpIChzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxv
ZmZfdCwgaW50IGRhdGFzeW5jKTsKMTQ0NzQ6ICBpbnQgKCpmYXN5bmMpIChpbnQsIHN0cnVjdCBm
aWxlICosIGludCk7CjE0NDc0OiAgaW50ICgqbG9jaykgKHN0cnVjdCBmaWxlICosIGludCwgc3Ry
dWN0IGZpbGVfbG9jayAqKTsKMTQ0NzQ6ICBzc2l6ZV90ICgqc2VuZHBhZ2UpIChzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgcGFnZSAqLCBpbnQsIHNpemVfdCwgbG9mZl90ICosIGludCk7CjE0NDc0OiAg
dW5zaWduZWQgbG9uZyAoKmdldF91bm1hcHBlZF9hcmVhKShzdHJ1Y3QgZmlsZSAqLCB1bnNpZ25l
ZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKMTQ0
NzQ6ICBpbnQgKCpjaGVja19mbGFncykoaW50KTsKMTQ0NzQ6ICBpbnQgKCpmbG9jaykgKHN0cnVj
dCBmaWxlICosIGludCwgc3RydWN0IGZpbGVfbG9jayAqKTsKMTQ0NzQ6ICBzc2l6ZV90ICgqc3Bs
aWNlX3dyaXRlKShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICosIHN0cnVjdCBmaWxlICosIGxvZmZf
dCAqLCBzaXplX3QsIHVuc2lnbmVkIGludCk7CjE0NDc0OiAgc3NpemVfdCAoKnNwbGljZV9yZWFk
KShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBzaXpl
X3QsIHVuc2lnbmVkIGludCk7CjE0NDc0OiAgaW50ICgqc2V0bGVhc2UpKHN0cnVjdCBmaWxlICos
IGxvbmcsIHN0cnVjdCBmaWxlX2xvY2sgKiosIHZvaWQgKiopOwoxNDQ3NDogIGxvbmcgKCpmYWxs
b2NhdGUpKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCwKMTQ0NzQ6
ICAgICAgbG9mZl90IGxlbik7CjE0NDc0OiAgdm9pZCAoKnNob3dfZmRpbmZvKShzdHJ1Y3Qgc2Vx
X2ZpbGUgKm0sIHN0cnVjdCBmaWxlICpmKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBzc2l6ZV90ICgqY29weV9maWxlX3JhbmdlKShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIHN0cnVj
dCBmaWxlICosCjE0NDc0OiAgICBsb2ZmX3QsIHNpemVfdCwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6
ICBsb2ZmX3QgKCpyZW1hcF9maWxlX3JhbmdlKShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90
IHBvc19pbiwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nf
b3V0LAoxNDQ3NDogICAgICAgIGxvZmZfdCBsZW4sIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7
CjE0NDc0OiAgaW50ICgqZmFkdmlzZSkoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBsb2ZmX3QsIGlu
dCk7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGlub2RlX29wZXJhdGlvbnMgewoxNDQ3NDogIHN0cnVjdCBkZW50cnkg
KiAoKmxvb2t1cCkgKHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKiwgdW5zaWduZWQgaW50
KTsKMTQ0NzQ6ICBjb25zdCBjaGFyICogKCpnZXRfbGluaykgKHN0cnVjdCBkZW50cnkgKiwgc3Ry
dWN0IGlub2RlICosIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CjE0NDc0OiAgaW50ICgqcGVybWlz
c2lvbikgKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoxNDQ3NDogIHN0cnVjdCBwb3NpeF9hY2wgKiAo
KmdldF9hY2wpKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqcmVh
ZGxpbmspIChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKixpbnQpOwoxNDQ3NDogCjE0NDc0OiAgaW50
ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90LCBib29s
KTsKMTQ0NzQ6ICBpbnQgKCpsaW5rKSAoc3RydWN0IGRlbnRyeSAqLHN0cnVjdCBpbm9kZSAqLHN0
cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgaW50ICgqdW5saW5rKSAoc3RydWN0IGlub2RlICosc3Ry
dWN0IGRlbnRyeSAqKTsKMTQ0NzQ6ICBpbnQgKCpzeW1saW5rKSAoc3RydWN0IGlub2RlICosc3Ry
dWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CjE0NDc0OiAgaW50ICgqbWtkaXIpIChzdHJ1Y3Qg
aW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosdW1vZGVfdCk7CjE0NDc0OiAgaW50ICgqcm1kaXIpIChz
dHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogIGludCAoKm1rbm9kKSAoc3Ry
dWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLHVtb2RlX3QsZGV2X3QpOwoxNDQ3NDogIGludCAo
KnJlbmFtZSkgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosCjE0NDc0OiAgICBzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCB1bnNpZ25lZCBpbnQpOwoxNDQ3NDogIGludCAo
KnNldGF0dHIpIChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0ciAqKTsKMTQ0NzQ6ICBpbnQg
KCpnZXRhdHRyKSAoY29uc3Qgc3RydWN0IHBhdGggKiwgc3RydWN0IGtzdGF0ICosIHUzMiwgdW5z
aWduZWQgaW50KTsKMTQ0NzQ6ICBzc2l6ZV90ICgqbGlzdHhhdHRyKSAoc3RydWN0IGRlbnRyeSAq
LCBjaGFyICosIHNpemVfdCk7CjE0NDc0OiAgaW50ICgqZmllbWFwKShzdHJ1Y3QgaW5vZGUgKiwg
c3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqLCB1NjQgc3RhcnQsCjE0NDc0OiAgICAgICAgIHU2
NCBsZW4pOwoxNDQ3NDogIGludCAoKnVwZGF0ZV90aW1lKShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IHRpbWVzcGVjNjQgKiwgaW50KTsKMTQ0NzQ6ICBpbnQgKCphdG9taWNfb3Blbikoc3RydWN0IGlu
b2RlICosIHN0cnVjdCBkZW50cnkgKiwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBmaWxlICosIHVuc2ln
bmVkIG9wZW5fZmxhZywKMTQ0NzQ6ICAgICAgIHVtb2RlX3QgY3JlYXRlX21vZGUpOwoxNDQ3NDog
IGludCAoKnRtcGZpbGUpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90
KTsKMTQ0NzQ6ICBpbnQgKCpzZXRfYWNsKShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHBvc2l4X2Fj
bCAqLCBpbnQpOwoxNDQ3NDogfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikp
KSkpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzc2l6ZV90IGNhbGxfcmVhZF9pdGVyKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Y3Qga2lvY2IgKmtpbywKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBpb3ZfaXRlciAq
aXRlcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmlsZS0+Zl9vcC0+cmVhZF9pdGVyKGtpbywg
aXRlcik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHNzaXplX3QgY2FsbF93cml0ZV9pdGVyKHN0
cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga2lvY2IgKmtpbywKMTQ0NzQ6ICAgICAgICAgICBzdHJ1
Y3QgaW92X2l0ZXIgKml0ZXIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGZpbGUtPmZfb3AtPndy
aXRlX2l0ZXIoa2lvLCBpdGVyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNhbGxfbW1h
cChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGZpbGUtPmZfb3AtPm1tYXAoZmlsZSwgdm1hKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogc3NpemVfdCByd19jb3B5X2NoZWNrX3V2ZWN0b3IoaW50IHR5cGUsIGNvbnN0
IHN0cnVjdCBpb3ZlYyAqIHV2ZWN0b3IsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBsb25nIG5y
X3NlZ3MsIHVuc2lnbmVkIGxvbmcgZmFzdF9zZWdzLAoxNDQ3NDogICAgICAgICAgc3RydWN0IGlv
dmVjICpmYXN0X3BvaW50ZXIsCjE0NDc0OiAgICAgICAgICBzdHJ1Y3QgaW92ZWMgKipyZXRfcG9p
bnRlcik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IF9fdmZzX3JlYWQoc3RydWN0IGZp
bGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHZm
c19yZWFkKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CjE0NDc0OiBl
eHRlcm4gc3NpemVfdCB2ZnNfd3JpdGUoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBzaXpl
X3QsIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHZmc19yZWFkdihzdHJ1Y3QgZmls
ZSAqLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZywgbG9mZl90
ICosIHJ3Zl90KTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHZmc19jb3B5X2ZpbGVfcmFuZ2Uoc3Ry
dWN0IGZpbGUgKiwgbG9mZl90ICwgc3RydWN0IGZpbGUgKiwKMTQ0NzQ6ICAgICAgICBsb2ZmX3Qs
IHNpemVfdCwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNfY29w
eV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2luLAoxNDQ3NDog
ICAgICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAoxNDQ3NDog
ICAgICAgICAgICBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwoxNDQ3NDogZXh0ZXJu
IGludCBnZW5lcmljX3JlbWFwX2ZpbGVfcmFuZ2VfcHJlcChzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwg
bG9mZl90IHBvc19pbiwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBmaWxlICpmaWxlX291dCwgbG9mZl90
IHBvc19vdXQsCjE0NDc0OiAgICAgICBsb2ZmX3QgKmNvdW50LAoxNDQ3NDogICAgICAgdW5zaWdu
ZWQgaW50IHJlbWFwX2ZsYWdzKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3QgZG9fY2xvbmVfZmlsZV9y
YW5nZShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwKMTQ0NzQ6ICAgICAgIHN0
cnVjdCBmaWxlICpmaWxlX291dCwgbG9mZl90IHBvc19vdXQsCjE0NDc0OiAgICAgICBsb2ZmX3Qg
bGVuLCB1bnNpZ25lZCBpbnQgcmVtYXBfZmxhZ3MpOwoxNDQ3NDogZXh0ZXJuIGxvZmZfdCB2ZnNf
Y2xvbmVfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwKMTQ0
NzQ6ICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAoxNDQ3NDog
ICAgICAgIGxvZmZfdCBsZW4sIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CjE0NDc0OiBleHRl
cm4gaW50IHZmc19kZWR1cGVfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqZmlsZSwKMTQ0NzQ6ICAg
ICAgc3RydWN0IGZpbGVfZGVkdXBlX3JhbmdlICpzYW1lKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3Qg
dmZzX2RlZHVwZV9maWxlX3JhbmdlX29uZShzdHJ1Y3QgZmlsZSAqc3JjX2ZpbGUsIGxvZmZfdCBz
cmNfcG9zLAoxNDQ3NDogICAgICBzdHJ1Y3QgZmlsZSAqZHN0X2ZpbGUsIGxvZmZfdCBkc3RfcG9z
LAoxNDQ3NDogICAgICBsb2ZmX3QgbGVuLCB1bnNpZ25lZCBpbnQgcmVtYXBfZmxhZ3MpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHsKMTQ0NzQ6ICAgICBz
dHJ1Y3QgaW5vZGUgKigqYWxsb2NfaW5vZGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3
NDogIHZvaWQgKCpkZXN0cm95X2lub2RlKShzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAgdm9pZCAo
KmZyZWVfaW5vZGUpKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogICAgIHZvaWQgKCpk
aXJ0eV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqLCBpbnQgZmxhZ3MpOwoxNDQ3NDogIGludCAoKndy
aXRlX2lub2RlKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2Jj
KTsKMTQ0NzQ6ICBpbnQgKCpkcm9wX2lub2RlKSAoc3RydWN0IGlub2RlICopOwoxNDQ3NDogIHZv
aWQgKCpldmljdF9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6ICB2b2lkICgqcHV0X3N1
cGVyKSAoc3RydWN0IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogIGludCAoKnN5bmNfZnMpKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0KTsKMTQ0NzQ6ICBpbnQgKCpmcmVlemVfc3VwZXIp
IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CjE0NDc0OiAgaW50ICgqZnJlZXplX2ZzKSAoc3RydWN0
IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogIGludCAoKnRoYXdfc3VwZXIpIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKik7CjE0NDc0OiAgaW50ICgqdW5mcmVlemVfZnMpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sg
Kik7CjE0NDc0OiAgaW50ICgqc3RhdGZzKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qga3N0YXRm
cyAqKTsKMTQ0NzQ6ICBpbnQgKCpyZW1vdW50X2ZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIGlu
dCAqLCBjaGFyICopOwoxNDQ3NDogIHZvaWQgKCp1bW91bnRfYmVnaW4pIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKik7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpzaG93X29wdGlvbnMpKHN0cnVjdCBzZXFf
ZmlsZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogIGludCAoKnNob3dfZGV2bmFtZSkoc3Ry
dWN0IHNlcV9maWxlICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiAgaW50ICgqc2hvd19wYXRo
KShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6ICBpbnQgKCpzaG93
X3N0YXRzKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IAoxNDQ3
NDogIHNzaXplX3QgKCpxdW90YV9yZWFkKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50LCBjaGFy
ICosIHNpemVfdCwgbG9mZl90KTsKMTQ0NzQ6ICBzc2l6ZV90ICgqcXVvdGFfd3JpdGUpKHN0cnVj
dCBzdXBlcl9ibG9jayAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QpOwoxNDQ3
NDogIHN0cnVjdCBkcXVvdCAqKigqZ2V0X2RxdW90cykoc3RydWN0IGlub2RlICopOwoxNDQ3NDog
CjE0NDc0OiAgaW50ICgqYmRldl90cnlfdG9fZnJlZV9wYWdlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sq
LCBzdHJ1Y3QgcGFnZSosIGdmcF90KTsKMTQ0NzQ6ICBsb25nICgqbnJfY2FjaGVkX29iamVjdHMp
KHN0cnVjdCBzdXBlcl9ibG9jayAqLAoxNDQ3NDogICAgICAgc3RydWN0IHNocmlua19jb250cm9s
ICopOwoxNDQ3NDogIGxvbmcgKCpmcmVlX2NhY2hlZF9vYmplY3RzKShzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKiwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IHNocmlua19jb250cm9sICopOwoxNDQ3NDogfTsK
MTQ0NzQ6ICMgMjAxNyAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHNiX3Jkb25s
eShjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKSB7IHJldHVybiBzYi0+c19mbGFncyAmIDE7
IH0KMTQ0NzQ6ICMgMjA0NyAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIEhBU19V
Tk1BUFBFRF9JRChzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAh
dWlkX3ZhbGlkKGlub2RlLT5pX3VpZCkgfHwgIWdpZF92YWxpZChpbm9kZS0+aV9naWQpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIHJ3X2hpbnQgZmlsZV93cml0ZV9oaW50KHN0cnVjdCBm
aWxlICpmaWxlKQoxNDQ3NDogewoxNDQ3NDogIGlmIChmaWxlLT5mX3dyaXRlX2hpbnQgIT0gV1JJ
VEVfTElGRV9OT1RfU0VUKQoxNDQ3NDogICByZXR1cm4gZmlsZS0+Zl93cml0ZV9oaW50OwoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGZpbGVfaW5vZGUoZmlsZSktPmlfd3JpdGVfaGludDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlvY2JfZmxhZ3Moc3RydWN0IGZpbGUgKmZpbGUpOwoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1MTYga2lfaGludF92YWxpZGF0ZShlbnVtIHJ3X2hpbnQgaGludCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICB0eXBlb2YoKChzdHJ1Y3Qga2lvY2IgKikwKS0+a2lfaGludCkgbWF4X2hpbnQg
PSAtMTsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChoaW50IDw9IG1heF9oaW50KQoxNDQ3NDogICByZXR1
cm4gaGludDsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBp
bml0X3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYiwgc3RydWN0IGZpbGUgKmZpbHApCjE0
NDc0OiB7CjE0NDc0OiAgKmtpb2NiID0gKHN0cnVjdCBraW9jYikgewoxNDQ3NDogICAua2lfZmls
cCA9IGZpbHAsCjE0NDc0OiAgIC5raV9mbGFncyA9IGlvY2JfZmxhZ3MoZmlscCksCjE0NDc0OiAg
IC5raV9oaW50ID0ga2lfaGludF92YWxpZGF0ZShmaWxlX3dyaXRlX2hpbnQoZmlscCkpLAoxNDQ3
NDogICAua2lfaW9wcmlvID0gZ2V0X2N1cnJlbnRfaW9wcmlvKCksCjE0NDc0OiAgfTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBraW9jYl9jbG9uZShzdHJ1Y3Qga2lvY2IgKmtpb2NiLCBz
dHJ1Y3Qga2lvY2IgKmtpb2NiX3NyYywKMTQ0NzQ6ICAgICAgICAgICBzdHJ1Y3QgZmlsZSAqZmls
cCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAqa2lvY2IgPSAoc3RydWN0IGtpb2NiKSB7CjE0NDc0OiAgIC5r
aV9maWxwID0gZmlscCwKMTQ0NzQ6ICAgLmtpX2ZsYWdzID0ga2lvY2Jfc3JjLT5raV9mbGFncywK
MTQ0NzQ6ICAgLmtpX2hpbnQgPSBraW9jYl9zcmMtPmtpX2hpbnQsCjE0NDc0OiAgIC5raV9pb3By
aW8gPSBraW9jYl9zcmMtPmtpX2lvcHJpbywKMTQ0NzQ6ICAgLmtpX3BvcyA9IGtpb2NiX3NyYy0+
a2lfcG9zLAoxNDQ3NDogIH07CjE0NDc0OiB9CjE0NDc0OiAjIDIxODEgIi4vaW5jbHVkZS9saW51
eC9mcy5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgX19tYXJrX2lub2RlX2RpcnR5KHN0cnVjdCBpbm9k
ZSAqLCBpbnQpOwoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtYXJrX2lub2RlX2RpcnR5KHN0cnVjdCBpbm9kZSAqaW5v
ZGUpCjE0NDc0OiB7CjE0NDc0OiAgX19tYXJrX2lub2RlX2RpcnR5KGlub2RlLCAoKCgxIDw8IDAp
IHwgKDEgPDwgMSkpIHwgKDEgPDwgMikpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBt
YXJrX2lub2RlX2RpcnR5X3N5bmMoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBfX21hcmtfaW5vZGVfZGlydHkoaW5vZGUsICgxIDw8IDApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIHZvaWQgaW5jX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgZHJvcF9ubGluayhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGNsZWFyX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgc2V0X25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBubGluayk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfaW5jX2xpbmtfY291bnQoc3RydWN0IGlub2RlICppbm9k
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbmNfbmxpbmsoaW5vZGUpOwoxNDQ3NDogIG1hcmtfaW5vZGVf
ZGlydHkoaW5vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2RlY19saW5r
X2NvdW50KHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgZHJvcF9ubGluayhp
bm9kZSk7CjE0NDc0OiAgbWFya19pbm9kZV9kaXJ0eShpbm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gZmlsZV90aW1lX2ZsYWdzIHsKMTQ0NzQ6ICBTX0FUSU1FID0gMSwKMTQ0NzQ6
ICBTX01USU1FID0gMiwKMTQ0NzQ6ICBTX0NUSU1FID0gNCwKMTQ0NzQ6ICBTX1ZFUlNJT04gPSA4
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wgYXRpbWVfbmVlZHNfdXBkYXRl
KGNvbnN0IHN0cnVjdCBwYXRoICosIHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IHRvdWNoX2F0aW1lKGNvbnN0IHN0cnVjdCBwYXRoICopOwoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmaWxlX2FjY2Vz
c2VkKHN0cnVjdCBmaWxlICpmaWxlKQoxNDQ3NDogewoxNDQ3NDogIGlmICghKGZpbGUtPmZfZmxh
Z3MgJiAwMTAwMDAwMCkpCjE0NDc0OiAgIHRvdWNoX2F0aW1lKCZmaWxlLT5mX3BhdGgpOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGZpbGVfbW9kaWZpZWQoc3RydWN0IGZpbGUg
KmZpbGUpOwoxNDQ3NDogCjE0NDc0OiBpbnQgc3luY19pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYyk7CjE0NDc0OiBpbnQgc3luY19pbm9kZV9t
ZXRhZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgd2FpdCk7CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDog
IGludCBmc19mbGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBpbnQgKCppbml0X2ZzX2NvbnRleHQpKHN0cnVjdCBmc19jb250ZXh0ICop
OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBmc19wYXJhbWV0ZXJfc3BlYyAqcGFyYW1ldGVyczsKMTQ0
NzQ6ICBzdHJ1Y3QgZGVudHJ5ICooKm1vdW50KSAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKiwg
aW50LAoxNDQ3NDogICAgICAgICAgY29uc3QgY2hhciAqLCB2b2lkICopOwoxNDQ3NDogIHZvaWQg
KCpraWxsX3NiKSAoc3RydWN0IHN1cGVyX2Jsb2NrICopOwoxNDQ3NDogIHN0cnVjdCBtb2R1bGUg
Km93bmVyOwoxNDQ3NDogIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICogbmV4dDsKMTQ0NzQ6ICBz
dHJ1Y3QgaGxpc3RfaGVhZCBmc19zdXBlcnM7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19j
bGFzc19rZXkgc19sb2NrX2tleTsKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgc191bW91
bnRfa2V5OwoxNDQ3NDogIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX3Zmc19yZW5hbWVfa2V5Owox
NDQ3NDogIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX3dyaXRlcnNfa2V5WyhTQl9GUkVFWkVfQ09N
UExFVEUgLSAxKV07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgaV9sb2Nr
X2tleTsKMTQ0NzQ6ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgaV9tdXRleF9rZXk7CjE0NDc0OiAg
c3RydWN0IGxvY2tfY2xhc3Nfa2V5IGlfbXV0ZXhfZGlyX2tleTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGVudHJ5ICptb3Vu
dF9iZGV2KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLAoxNDQ3NDogIGludCBmbGFn
cywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEsCjE0NDc0OiAgaW50ICgqZmlsbF9z
dXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKiwgaW50KSk7CjE0NDc0OiAjIDIyNzEg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm1vdW50
X3NpbmdsZShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKMTQ0NzQ6ICBpbnQgZmxh
Z3MsIHZvaWQgKmRhdGEsCjE0NDc0OiAgaW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Js
b2NrICosIHZvaWQgKiwgaW50KSk7CjE0NDc0OiBleHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRf
bm9kZXYoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCjE0NDc0OiAgaW50IGZsYWdz
LCB2b2lkICpkYXRhLAoxNDQ3NDogIGludCAoKmZpbGxfc3VwZXIpKHN0cnVjdCBzdXBlcl9ibG9j
ayAqLCB2b2lkICosIGludCkpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm1vdW50X3N1
YnRyZWUoc3RydWN0IHZmc21vdW50ICptbnQsIGNvbnN0IGNoYXIgKnBhdGgpOwoxNDQ3NDogdm9p
ZCBnZW5lcmljX3NodXRkb3duX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDog
CjE0NDc0OiB2b2lkIGtpbGxfYmxvY2tfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lk
IGtpbGxfYW5vbl9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IHZvaWQga2ls
bF9saXR0ZXJfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiB2b2lkIGRlYWN0
aXZhdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiB2b2lkIGRlYWN0aXZh
dGVfbG9ja2VkX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogaW50IHNldF9h
bm9uX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgdm9pZCAqZGF0YSk7CjE0NDc0OiBpbnQg
c2V0X2Fub25fc3VwZXJfZmMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzdHJ1Y3QgZnNfY29udGV4
dCAqZmMpOwoxNDQ3NDogaW50IGdldF9hbm9uX2JkZXYoZGV2X3QgKik7CjE0NDc0OiB2b2lkIGZy
ZWVfYW5vbl9iZGV2KGRldl90KTsKMTQ0NzQ6IHN0cnVjdCBzdXBlcl9ibG9jayAqc2dldF9mYyhz
dHJ1Y3QgZnNfY29udGV4dCAqZmMsCjE0NDc0OiAgICAgICAgaW50ICgqdGVzdCkoc3RydWN0IHN1
cGVyX2Jsb2NrICosIHN0cnVjdCBmc19jb250ZXh0ICopLAoxNDQ3NDogICAgICAgIGludCAoKnNl
dCkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBmc19jb250ZXh0ICopKTsKMTQ0NzQ6IHN0
cnVjdCBzdXBlcl9ibG9jayAqc2dldChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwKMTQ0
NzQ6ICAgIGludCAoKnRlc3QpKHN0cnVjdCBzdXBlcl9ibG9jayAqLHZvaWQgKiksCjE0NDc0OiAg
ICBpbnQgKCpzZXQpKHN0cnVjdCBzdXBlcl9ibG9jayAqLHZvaWQgKiksCjE0NDc0OiAgICBpbnQg
ZmxhZ3MsIHZvaWQgKmRhdGEpOwoxNDQ3NDogIyAyMzIwICIuL2luY2x1ZGUvbGludXgvZnMuaCIK
MTQ0NzQ6IGV4dGVybiBpbnQgcmVnaXN0ZXJfZmlsZXN5c3RlbShzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdW5yZWdpc3Rlcl9maWxlc3lzdGVtKHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9t
b3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGtlcm5f
dW5tb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CjE0NDc0OiBleHRlcm4gaW50IG1heV91bW91
bnRfdHJlZShzdHJ1Y3QgdmZzbW91bnQgKik7CjE0NDc0OiBleHRlcm4gaW50IG1heV91bW91bnQo
c3RydWN0IHZmc21vdW50ICopOwoxNDQ3NDogZXh0ZXJuIGxvbmcgZG9fbW91bnQoY29uc3QgY2hh
ciAqLCBjb25zdCBjaGFyICosCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBs
b25nLCB2b2lkICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqY29sbGVjdF9tb3Vu
dHMoY29uc3Qgc3RydWN0IHBhdGggKik7CjE0NDc0OiBleHRlcm4gdm9pZCBkcm9wX2NvbGxlY3Rl
ZF9tb3VudHMoc3RydWN0IHZmc21vdW50ICopOwoxNDQ3NDogZXh0ZXJuIGludCBpdGVyYXRlX21v
dW50cyhpbnQgKCopKHN0cnVjdCB2ZnNtb3VudCAqLCB2b2lkICopLCB2b2lkICosCjE0NDc0OiAg
ICAgIHN0cnVjdCB2ZnNtb3VudCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdmZzX3N0YXRmcyhjb25z
dCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXRmcyAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdXNl
cl9zdGF0ZnMoY29uc3QgY2hhciAqLCBzdHJ1Y3Qga3N0YXRmcyAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgZmRfc3RhdGZzKGludCwgc3RydWN0IGtzdGF0ZnMgKik7CjE0NDc0OiBleHRlcm4gaW50IGZy
ZWV6ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnN1cGVyKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
dGhhd19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnN1cGVyKTsKMTQ0NzQ6IGV4dGVybiBib29s
IG91cl9tbnQoc3RydWN0IHZmc21vdW50ICptbnQpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRl
X18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCjE0NDc0OiBpbnQgc3VwZXJfc2V0dXBfYmRp
X25hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogZXh0
ZXJuIGludCBzdXBlcl9zZXR1cF9iZGkoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBpbnQgY3VycmVudF91bWFzayh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHZvaWQgaWhvbGQoc3RydWN0IGlub2RlICogaW5vZGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
aXB1dChzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gaW50IGdlbmVyaWNfdXBkYXRlX3Rp
bWUoc3RydWN0IGlub2RlICosIHN0cnVjdCB0aW1lc3BlYzY0ICosIGludCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpmc19rb2JqOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGxvY2tzX21hbmRhdG9yeV9sb2Nr
ZWQoc3RydWN0IGZpbGUgKik7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tzX21hbmRhdG9yeV9hcmVh
KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgdW5zaWduZWQg
Y2hhcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgX19tYW5kYXRvcnlfbG9jayhzdHJ1Y3QgaW5vZGUgKmlubykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKGluby0+aV9tb2RlICYgKDAwMDIwMDAgfCAwMDAxMCkpID09IDAwMDIwMDA7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgbWFuZGF0b3J5X2xvY2soc3RydWN0IGlub2RlICppbm8pCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuICgoaW5vKS0+aV9zYi0+c19mbGFncyAmICg2NCkpICYmIF9fbWFuZGF0b3J5
X2xvY2soaW5vKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxvY2tzX3ZlcmlmeV9sb2Nr
ZWQoc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKG1hbmRhdG9yeV9sb2Nr
KGZpbGVfaW5vZGUoZmlsZSkpKQoxNDQ3NDogICByZXR1cm4gbG9ja3NfbWFuZGF0b3J5X2xvY2tl
ZChmaWxlKTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxv
Y2tzX3ZlcmlmeV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLAoxNDQ3NDogICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiwKMTQ0NzQ6ICAgICAgICAgbG9mZl90IHNpemUpCjE0NDc0OiB7CjE0NDc0
OiAgaWYgKCFpbm9kZS0+aV9mbGN0eCB8fCAhbWFuZGF0b3J5X2xvY2soaW5vZGUpKQoxNDQ3NDog
ICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChzaXplIDwgaW5vZGUtPmlfc2l6ZSkgewox
NDQ3NDogICByZXR1cm4gbG9ja3NfbWFuZGF0b3J5X2FyZWEoaW5vZGUsIGYsIHNpemUsIGlub2Rl
LT5pX3NpemUgLSAxLAoxNDQ3NDogICAgIDEpOwoxNDQ3NDogIH0gZWxzZSB7CjE0NDc0OiAgIHJl
dHVybiBsb2Nrc19tYW5kYXRvcnlfYXJlYShpbm9kZSwgZiwgaW5vZGUtPmlfc2l6ZSwgc2l6ZSAt
IDEsCjE0NDc0OiAgICAgMSk7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAyNDM4ICIuL2lu
Y2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBicmVha19sZWFzZShzdHJ1Y3QgaW5vZGUgKmlu
b2RlLCB1bnNpZ25lZCBpbnQgbW9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwg
JDAsLTQoJSVyc3ApIiA6OjogIm1lbW9yeSIsICJjYyIpOwoxNDQ3NDogIGlmIChpbm9kZS0+aV9m
bGN0eCAmJiAhbGlzdF9lbXB0eV9jYXJlZnVsKCZpbm9kZS0+aV9mbGN0eC0+ZmxjX2xlYXNlKSkK
MTQ0NzQ6ICAgcmV0dXJuIF9fYnJlYWtfbGVhc2UoaW5vZGUsIG1vZGUsIDMyKTsKMTQ0NzQ6ICBy
ZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2RlbGVnKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBtb2RlKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGFzbSB2b2xhdGlsZSgibG9j
azsgYWRkbCAkMCwtNCglJXJzcCkiIDo6OiAibWVtb3J5IiwgImNjIik7CjE0NDc0OiAgaWYgKGlu
b2RlLT5pX2ZsY3R4ICYmICFsaXN0X2VtcHR5X2NhcmVmdWwoJmlub2RlLT5pX2ZsY3R4LT5mbGNf
bGVhc2UpKQoxNDQ3NDogICByZXR1cm4gX19icmVha19sZWFzZShpbm9kZSwgbW9kZSwgNCk7CjE0
NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0cnlfYnJlYWtfZGVs
ZWcoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlub2RlICoqZGVsZWdhdGVkX2lub2RlKQox
NDQ3NDogewoxNDQ3NDogIGludCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByZXQgPSBicmVha19kZWxl
Zyhpbm9kZSwgMDAwMDAwMDF8MDAwMDQwMDApOwoxNDQ3NDogIGlmIChyZXQgPT0gLTExICYmIGRl
bGVnYXRlZF9pbm9kZSkgewoxNDQ3NDogICAqZGVsZWdhdGVkX2lub2RlID0gaW5vZGU7CjE0NDc0
OiAgIGlob2xkKGlub2RlKTsKMTQ0NzQ6ICB9CjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2RlbGVnX3dhaXQoc3RydWN0IGlub2RlICoqZGVsZWdh
dGVkX2lub2RlKQoxNDQ3NDogewoxNDQ3NDogIGludCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByZXQg
PSBicmVha19kZWxlZygqZGVsZWdhdGVkX2lub2RlLCAwMDAwMDAwMSk7CjE0NDc0OiAgaXB1dCgq
ZGVsZWdhdGVkX2lub2RlKTsKMTQ0NzQ6ICAqZGVsZWdhdGVkX2lub2RlID0gKCh2b2lkICopMCk7
CjE0NDc0OiAgcmV0dXJuIHJldDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2xh
eW91dChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBib29sIHdhaXQpCjE0NDc0OiB7CjE0NDc0OiAgYXNt
IHZvbGF0aWxlKCJsb2NrOyBhZGRsICQwLC00KCUlcnNwKSIgOjo6ICJtZW1vcnkiLCAiY2MiKTsK
MTQ0NzQ6ICBpZiAoaW5vZGUtPmlfZmxjdHggJiYgIWxpc3RfZW1wdHlfY2FyZWZ1bCgmaW5vZGUt
PmlfZmxjdHgtPmZsY19sZWFzZSkpCjE0NDc0OiAgIHJldHVybiBfX2JyZWFrX2xlYXNlKGlub2Rl
LAoxNDQ3NDogICAgIHdhaXQgPyAwMDAwMDAwMSA6IDAwMDAwMDAxIHwgMDAwMDQwMDAsCjE0NDc0
OiAgICAgMjA0OCk7CjE0NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAjIDI1MjggIi4v
aW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RydWN0IGF1ZGl0X25hbWVzOwoxNDQ3NDogc3Ry
dWN0IGZpbGVuYW1lIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIGNvbnN0IGNo
YXIgKnVwdHI7CjE0NDc0OiAgaW50IHJlZmNudDsKMTQ0NzQ6ICBzdHJ1Y3QgYXVkaXRfbmFtZXMg
KmFuYW1lOwoxNDQ3NDogIGNvbnN0IGNoYXIgaW5hbWVbXTsKMTQ0NzQ6IH07CjE0NDc0OiBfU3Rh
dGljX2Fzc2VydChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGZpbGVuYW1lLCBpbmFtZSkgJSBz
aXplb2YobG9uZykgPT0gMCwgIm9mZnNldG9mKHN0cnVjdCBmaWxlbmFtZSwgaW5hbWUpICUgc2l6
ZW9mKGxvbmcpID09IDAiKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvbmcgdmZzX3RydW5jYXRl
KGNvbnN0IHN0cnVjdCBwYXRoICosIGxvZmZfdCk7CjE0NDc0OiBleHRlcm4gaW50IGRvX3RydW5j
YXRlKHN0cnVjdCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBpbnQgdGltZV9hdHRy
cywKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBmaWxlICpmaWxwKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
dmZzX2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQs
CjE0NDc0OiAgICBsb2ZmX3QgbGVuKTsKMTQ0NzQ6IGV4dGVybiBsb25nIGRvX3N5c19vcGVuKGlu
dCBkZmQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MsCjE0NDc0OiAgICB1bW9kZV90
IG1vZGUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBmaWxlICpmaWxlX29wZW5fbmFtZShzdHJ1Y3Qg
ZmlsZW5hbWUgKiwgaW50LCB1bW9kZV90KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZSAqZmls
cF9vcGVuKGNvbnN0IGNoYXIgKiwgaW50LCB1bW9kZV90KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
ZmlsZSAqZmlsZV9vcGVuX3Jvb3Qoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwK
MTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICosIGludCwgdW1vZGVfdCk7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGZpbGUgKiBkZW50cnlfb3Blbihjb25zdCBzdHJ1Y3QgcGF0aCAqLCBpbnQsIGNvbnN0
IHN0cnVjdCBjcmVkICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBmaWxlICogb3Blbl93aXRoX2Zh
a2VfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBpbnQsCjE0NDc0OiAgICAgICBzdHJ1Y3QgaW5v
ZGUqLCBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaWxlICpmaWxlX2Nsb25l
X29wZW4oc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRlbnRyeV9v
cGVuKCZmaWxlLT5mX3BhdGgsIGZpbGUtPmZfZmxhZ3MsIGZpbGUtPmZfY3JlZCk7CjE0NDc0OiB9
CjE0NDc0OiBleHRlcm4gaW50IGZpbHBfY2xvc2Uoc3RydWN0IGZpbGUgKiwgZmxfb3duZXJfdCBp
ZCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZW5hbWUgKmdldG5hbWVfZmxhZ3Mo
Y29uc3QgY2hhciAqLCBpbnQsIGludCAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZW5hbWUg
KmdldG5hbWUoY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZmlsZW5hbWUgKmdl
dG5hbWVfa2VybmVsKGNvbnN0IGNoYXIgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBwdXRuYW1lKHN0
cnVjdCBmaWxlbmFtZSAqbmFtZSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZmluaXNoX29w
ZW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKMTQ0NzQ6ICAgIGlu
dCAoKm9wZW4pKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKSk7CjE0NDc0OiBleHRlcm4g
aW50IGZpbmlzaF9ub19vcGVuKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9f
c2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHZmc19j
YWNoZXNfaW5pdF9lYXJseSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHZm
c19jYWNoZXNfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrbWVtX2Nh
Y2hlICpuYW1lc19jYWNoZXA7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl9ibGtkZXYodW5zaWduZWQgaW50LCBjb25zdCBj
aGFyICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9ibGtkZXYodW5zaWduZWQgaW50
LCBjb25zdCBjaGFyICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmRldl91bmhhc2hfaW5vZGUoZGV2
X3QgZGV2KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGdldChkZXZfdCk7
CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmRncmFiKHN0cnVjdCBibG9ja19k
ZXZpY2UgKmJkZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmRfc2V0X3NpemUoc3RydWN0IGJsb2Nr
X2RldmljZSAqLCBsb2ZmX3Qgc2l6ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBiZF9mb3JnZXQoc3Ry
dWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBiZHB1dChzdHJ1Y3QgYmxvY2tf
ZGV2aWNlICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9iZGV2KHN0cnVjdCBibG9j
a19kZXZpY2UgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBpdGVyYXRlX2JkZXZzKHZvaWQgKCopKHN0
cnVjdCBibG9ja19kZXZpY2UgKiwgdm9pZCAqKSwgdm9pZCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
c3luY19ibG9ja2RldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGtpbGxfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBzdXBlcl9ibG9jayAqZnJlZXplX2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIGVtZXJnZW5jeV90aGF3X2FsbCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGVtZXJnZW5jeV90aGF3X2JkZXYoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiBleHRl
cm4gaW50IHRoYXdfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZnN5bmNfYmRldihzdHJ1Y3QgYmxvY2tfZGV2
aWNlICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHN1cGVyX2Jsb2NrICpibG9ja2Rl
dl9zdXBlcmJsb2NrOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHNiX2lzX2Jsa2Rldl9zYihzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKnNiKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBzYiA9PSBibG9ja2Rldl9z
dXBlcmJsb2NrOwoxNDQ3NDogfQoxNDQ3NDogIyAyNjMxICIuL2luY2x1ZGUvbGludXgvZnMuaCIK
MTQ0NzQ6IGV4dGVybiBpbnQgc3luY19maWxlc3lzdGVtKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRlZl9ibGtfZm9wczsK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRlZl9jaHJfZm9wczsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBpb2N0bF9ieV9iZGV2KHN0cnVjdCBibG9ja19kZXZp
Y2UgKiwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogZXh0ZXJuIGludCBibGtkZXZf
aW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqLCBmbW9kZV90LCB1bnNpZ25lZCwgdW5zaWduZWQg
bG9uZyk7CjE0NDc0OiBleHRlcm4gbG9uZyBjb21wYXRfYmxrZGV2X2lvY3RsKHN0cnVjdCBmaWxl
ICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYmxrZGV2X2dl
dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUsIHZvaWQgKmhvbGRlcik7
CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmxrZGV2X2dldF9ieV9wYXRoKGNv
bnN0IGNoYXIgKnBhdGgsIGZtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgICAgIHZvaWQgKmhv
bGRlcik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmxrZGV2X2dldF9ieV9k
ZXYoZGV2X3QgZGV2LCBmbW9kZV90IG1vZGUsCjE0NDc0OiAgICAgICAgICAgIHZvaWQgKmhvbGRl
cik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmRfc3RhcnRfY2xhaW1pbmco
c3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKMTQ0NzQ6ICAgICAgICAgICAgdm9pZCAqaG9sZGVy
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGJkX2ZpbmlzaF9jbGFpbWluZyhzdHJ1Y3QgYmxvY2tfZGV2
aWNlICpiZGV2LAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKndob2xlLCB2
b2lkICpob2xkZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmRfYWJvcnRfY2xhaW1pbmcoc3RydWN0
IGJsb2NrX2RldmljZSAqYmRldiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2Ug
Kndob2xlLCB2b2lkICpob2xkZXIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYmxrZGV2X3B1dChzdHJ1
Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBpbnQgYmRfbGlua19kaXNrX2hvbGRlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi
ZGV2LCBzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CjE0NDc0OiBleHRlcm4gdm9pZCBiZF91bmxpbmtf
ZGlza19ob2xkZXIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKMTQ0NzQ6ICAgICAgIHN0cnVj
dCBnZW5kaXNrICpkaXNrKTsKMTQ0NzQ6ICMgMjY3NiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0
NDc0OiBleHRlcm4gaW50IGFsbG9jX2NocmRldl9yZWdpb24oZGV2X3QgKiwgdW5zaWduZWQsIHVu
c2lnbmVkLCBjb25zdCBjaGFyICopOwoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl9jaHJkZXZf
cmVnaW9uKGRldl90LCB1bnNpZ25lZCwgY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
X19yZWdpc3Rlcl9jaHJkZXYodW5zaWduZWQgaW50IG1ham9yLCB1bnNpZ25lZCBpbnQgYmFzZW1p
bm9yLAoxNDQ3NDogICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUs
CjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgX191bnJlZ2lzdGVyX2NocmRldih1bnNpZ25lZCBpbnQgbWFqb3IsIHVu
c2lnbmVkIGludCBiYXNlbWlub3IsCjE0NDc0OiAgICAgdW5zaWduZWQgaW50IGNvdW50LCBjb25z
dCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHVucmVnaXN0ZXJfY2hyZGV2X3JlZ2lv
bihkZXZfdCwgdW5zaWduZWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY2hyZGV2X3Nob3coc3RydWN0
IHNlcV9maWxlICosb2ZmX3QpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVnaXN0ZXJfY2hyZGV2KHVu
c2lnbmVkIGludCBtYWpvciwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fcmVn
aXN0ZXJfY2hyZGV2KG1ham9yLCAwLCAyNTYsIG5hbWUsIGZvcHMpOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHVucmVnaXN0ZXJfY2hyZGV2KHVuc2lnbmVkIGludCBtYWpvciwgY29uc3Qg
Y2hhciAqbmFtZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX3VucmVnaXN0ZXJfY2hyZGV2KG1ham9yLCAw
LCAyNTYsIG5hbWUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciAqX19iZGV2bmFt
ZShkZXZfdCwgY2hhciAqYnVmZmVyKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICpiZGV2bmFt
ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBjaGFyICpidWZmZXIpOwoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBibG9ja19kZXZpY2UgKmxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKik7CjE0NDc0OiBl
eHRlcm4gdm9pZCBibGtkZXZfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKixvZmZfdCk7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgaW5pdF9z
cGVjaWFsX2lub2RlKHN0cnVjdCBpbm9kZSAqLCB1bW9kZV90LCBkZXZfdCk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgbWFrZV9iYWRfaW5vZGUoc3RydWN0IGlub2RlICopOwox
NDQ3NDogZXh0ZXJuIGJvb2wgaXNfYmFkX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHJldmFsaWRhdGVfZGlzayhzdHJ1Y3QgZ2VuZGlzayAq
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgY2hlY2tfZGlza19jaGFuZ2Uoc3RydWN0IGJsb2NrX2Rldmlj
ZSAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19pbnZhbGlkYXRlX2RldmljZShzdHJ1Y3QgYmxvY2tf
ZGV2aWNlICosIGJvb2wpOwoxNDQ3NDogZXh0ZXJuIGludCBpbnZhbGlkYXRlX3BhcnRpdGlvbihz
dHJ1Y3QgZ2VuZGlzayAqLCBpbnQpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBsb25nIGludmFs
aWRhdGVfbWFwcGluZ19wYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0NzQ6
ICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGludmFsaWRhdGVfcmVtb3RlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKCgoKGlub2RlLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAw
MDApIHx8ICgoKGlub2RlLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAwNDAwMDApIHx8CjE0NDc0
OiAgICAgICgoKGlub2RlLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMjAwMDApKQoxNDQ3NDog
ICBpbnZhbGlkYXRlX21hcHBpbmdfcGFnZXMoaW5vZGUtPmlfbWFwcGluZywgMCwgLTEpOwoxNDQ3
NDogfQoxNDQ3NDogZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMihzdHJ1Y3QgYWRk
cmVzc19zcGFjZSAqbWFwcGluZyk7CjE0NDc0OiBleHRlcm4gaW50IGludmFsaWRhdGVfaW5vZGVf
cGFnZXMyX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgICAg
dW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwoxNDQ3NDogZXh0ZXJuIGlu
dCB3cml0ZV9pbm9kZV9ub3coc3RydWN0IGlub2RlICosIGludCk7CjE0NDc0OiBleHRlcm4gaW50
IGZpbGVtYXBfZmRhdGF3cml0ZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgZmlsZW1hcF9mbHVzaChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgZmlsZW1hcF9mZGF0YXdhaXRfa2VlcF9lcnJvcnMoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
Km1hcHBpbmcpOwoxNDQ3NDogZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9yYW5nZShzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqLCBsb2ZmX3QgbHN0YXJ0LAoxNDQ3NDogICAgICAgIGxvZmZfdCBs
ZW5kKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZmlsZW1hcF9mZGF0YXdhaXRfcmFuZ2Vfa2VlcF9lcnJv
cnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCjE0NDc0OiAgIGxvZmZfdCBzdGFydF9i
eXRlLCBsb2ZmX3QgZW5kX2J5dGUpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZW1hcF9mZGF0YXdh
aXQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGZpbGVtYXBfZmRhdGF3YWl0X3JhbmdlKG1hcHBpbmcsIDAsICgobG9uZyBsb25nKSh+MFVMTCA+
PiAxKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBmaWxlbWFwX3Jhbmdl
X2hhc19wYWdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIGxvZmZfdCBsc3RhcnQsCjE0NDc0OiAg
ICAgICBsb2ZmX3QgbGVuZCk7CjE0NDc0OiBleHRlcm4gaW50IGZpbGVtYXBfd3JpdGVfYW5kX3dh
aXRfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCjE0NDc0OiAgICAgICAgICAg
ICBsb2ZmX3QgbHN0YXJ0LCBsb2ZmX3QgbGVuZCk7CjE0NDc0OiBleHRlcm4gaW50IF9fZmlsZW1h
cF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDog
ICAgIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IHN5bmNfbW9kZSk7CjE0NDc0OiBleHRl
cm4gaW50IGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZywKMTQ0NzQ6ICAgICBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQpOwoxNDQ3NDogZXh0ZXJu
IGludCBmaWxlbWFwX2NoZWNrX2Vycm9ycyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7
CjE0NDc0OiBleHRlcm4gdm9pZCBfX2ZpbGVtYXBfc2V0X3diX2VycihzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqbWFwcGluZywgaW50IGVycik7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBmaWxlbWFwX3dyaXRl
X2FuZF93YWl0KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBmaWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKG1hcHBpbmcsIDAsICgobG9uZyBs
b25nKSh+MFVMTCA+PiAxKSkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBmaWxlX2ZkYXRhd2FpdF9yYW5n
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IGxzdGFydCwKMTQ0NzQ6ICAgICAgIGxvZmZfdCBs
ZW5kKTsKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpIGZpbGVfY2hlY2tfYW5kX2FkdmFuY2Vfd2JfZXJyKHN0cnVjdCBmaWxlICpmaWxlKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGZpbGVfd3JpdGVfYW5kX3dhaXRfcmFuZ2Uoc3RydWN0IGZpbGUgKmZpbGUsCjE0NDc0OiAgICAg
ICBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZV93cml0
ZV9hbmRfd2FpdChzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZmls
ZV93cml0ZV9hbmRfd2FpdF9yYW5nZShmaWxlLCAwLCAoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjc5MSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGZpbGVtYXBfc2V0X3diX2VycihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgaW50
IGVycikKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGVy
ciksIDApKQoxNDQ3NDogICBfX2ZpbGVtYXBfc2V0X3diX2VycihtYXBwaW5nLCBlcnIpOwoxNDQ3
NDogfQoxNDQ3NDogIyAyODA4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBmaWxl
bWFwX2NoZWNrX3diX2VycihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0NzQ6ICAg
ICAgZXJyc2VxX3Qgc2luY2UpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGVycnNlcV9jaGVjaygm
bWFwcGluZy0+d2JfZXJyLCBzaW5jZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDI4MjEgIi4vaW5jbHVk
ZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgZXJyc2VxX3QgZmlsZW1hcF9zYW1wbGVfd2JfZXJyKHN0cnVj
dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBlcnJzZXFf
c2FtcGxlKCZtYXBwaW5nLT53Yl9lcnIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZmls
ZW1hcF9ucl90aHBzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiAwOwoxNDQ3NDogCjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgZmlsZW1hcF9ucl90aHBzX2luYyhzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqbWFwcGluZykKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAoeyBp
bnQgX19yZXRfd2Fybl9vbiA9ICEhKDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93
YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0
ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIy
Olx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJc
dCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29y
ZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50
cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImlu
Y2x1ZGUvbGludXgvZnMuaCIpLCAiaSIgKDI4NDApLCAiaSIgKCgxIDw8IDApfCgoMSA8PCAxKSB8
ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAo
MCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVh
Y2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJp
IiAoMzApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKTsgfSk7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmaWxlbWFw
X25yX3RocHNfZGVjKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEoMSk7
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFz
bSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNo
c2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6Omxp
bmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYisl
YzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9mcy5oIiksICJpIiAo
Mjg0OSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVv
ZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6
XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAt
IC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzMSkpOyB9KTsgfSB3aGlsZSAoMCk7
IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6IAoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHZmc19mc3luY19yYW5nZShzdHJ1Y3QgZmls
ZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLAoxNDQ3NDogICAgICAgaW50IGRhdGFz
eW5jKTsKMTQ0NzQ6IGV4dGVybiBpbnQgdmZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQg
ZGF0YXN5bmMpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHN5bmNfZmlsZV9yYW5nZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IG5ieXRlcywKMTQ0NzQ6ICAgICB1
bnNpZ25lZCBpbnQgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3NpemVfdCBnZW5lcmljX3dyaXRlX3N5bmMoc3RydWN0IGtpb2Ni
ICppb2NiLCBzc2l6ZV90IGNvdW50KQoxNDQ3NDogewoxNDQ3NDogIGlmIChpb2NiLT5raV9mbGFn
cyAmICgxIDw8IDQpKSB7CjE0NDc0OiAgIGludCByZXQgPSB2ZnNfZnN5bmNfcmFuZ2UoaW9jYi0+
a2lfZmlscCwKMTQ0NzQ6ICAgICBpb2NiLT5raV9wb3MgLSBjb3VudCwgaW9jYi0+a2lfcG9zIC0g
MSwKMTQ0NzQ6ICAgICAoaW9jYi0+a2lfZmxhZ3MgJiAoMSA8PCA1KSkgPyAwIDogMSk7CjE0NDc0
OiAgIGlmIChyZXQpCjE0NDc0OiAgICByZXR1cm4gcmV0OwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBjb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZW1l
cmdlbmN5X3N5bmModm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBlbWVyZ2VuY3lfcmVtb3VudCh2
b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGJtYXAoc3RydWN0IGlub2Rl
ICppbm9kZSwgc2VjdG9yX3QgKmJsb2NrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBub3RpZnlfY2hhbmdl
KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICosIHN0cnVjdCBpbm9kZSAqKik7CjE0NDc0
OiBleHRlcm4gaW50IGlub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICosIGludCk7CjE0NDc0
OiBleHRlcm4gaW50IGdlbmVyaWNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKMTQ0
NzQ6IGV4dGVybiBpbnQgX19jaGVja19zdGlja3koc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBp
bm9kZSAqaW5vZGUpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGV4ZWN1dGVfb2soc3RydWN0IGlub2Rl
ICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKGlub2RlLT5pX21vZGUgJiAoMDAxMDB8
MDAwMTB8MDAwMDEpKSB8fCAoKChpbm9kZS0+aV9tb2RlKSAmIDAwMTcwMDAwKSA9PSAwMDQwMDAw
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmaWxlX3N0YXJ0X3dyaXRlKHN0cnVjdCBm
aWxlICpmaWxlKQoxNDQ3NDogewoxNDQ3NDogIGlmICghKCgoZmlsZV9pbm9kZShmaWxlKS0+aV9t
b2RlKSAmIDAwMTcwMDAwKSA9PSAwMTAwMDAwKSkKMTQ0NzQ6ICAgcmV0dXJuOwoxNDQ3NDogIF9f
c2Jfc3RhcnRfd3JpdGUoZmlsZV9pbm9kZShmaWxlKS0+aV9zYiwgU0JfRlJFRVpFX1dSSVRFLCB0
cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBmaWxlX3N0YXJ0X3dyaXRlX3RyeWxv
Y2soc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKCEoKChmaWxlX2lub2Rl
KGZpbGUpLT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAwMDApKQoxNDQ3NDogICByZXR1cm4g
dHJ1ZTsKMTQ0NzQ6ICByZXR1cm4gX19zYl9zdGFydF93cml0ZShmaWxlX2lub2RlKGZpbGUpLT5p
X3NiLCBTQl9GUkVFWkVfV1JJVEUsIGZhbHNlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBmaWxlX2VuZF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
ISgoKGZpbGVfaW5vZGUoZmlsZSktPmlfbW9kZSkgJiAwMDE3MDAwMCkgPT0gMDEwMDAwMCkpCjE0
NDc0OiAgIHJldHVybjsKMTQ0NzQ6ICBfX3NiX2VuZF93cml0ZShmaWxlX2lub2RlKGZpbGUpLT5p
X3NiLCBTQl9GUkVFWkVfV1JJVEUpOwoxNDQ3NDogfQoxNDQ3NDogIyAyOTM3ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfd3JpdGVfYWNjZXNzKHN0cnVjdCBpbm9kZSAqaW5v
ZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19pbmNfdW5sZXNzX25lZ2F0aXZlKCZp
bm9kZS0+aV93cml0ZWNvdW50KSA/IDAgOiAtMjY7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGVueV93
cml0ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7CjE0NDc0OiAgcmV0dXJuIGF0b21pY19kZWNf
dW5sZXNzX3Bvc2l0aXZlKCZpbm9kZS0+aV93cml0ZWNvdW50KSA/IDAgOiAtMjY7CjE0NDc0OiB9
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHB1dF93cml0ZV9hY2Nlc3Moc3RydWN0IGlub2RlICogaW5vZGUpCjE0NDc0
OiB7CjE0NDc0OiAgYXRvbWljX2RlYygmaW5vZGUtPmlfd3JpdGVjb3VudCk7CjE0NDc0OiB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFsbG93X3dyaXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBpZiAoZmlsZSkKMTQ0NzQ6ICAgYXRvbWljX2luYygmZmlsZV9pbm9kZShmaWxlKS0+
aV93cml0ZWNvdW50KTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaW5vZGVfaXNfb3Blbl9mb3Jfd3Jp
dGUoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXRv
bWljX3JlYWQoJmlub2RlLT5pX3dyaXRlY291bnQpID4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGlfcmVhZGNvdW50X2RlYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3
NDogewoxNDQ3NDogIGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIWF0b21pY19yZWFkKCZp
bm9kZS0+aV9yZWFkY291bnQpKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUo
IjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUs
XCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1
Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6Zmls
ZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIg
Ilx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIg
OiA6ICJpIiAoImluY2x1ZGUvbGludXgvZnMuaCIpLCAiaSIgKDI5NjMpLCAiaSIgKDApLCAiaSIg
KHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9s
YXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIg
Ii5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMzIpKTsgfSk7
IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsg
fSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGF0b21pY19kZWMoJmlub2RlLT5pX3Jl
YWRjb3VudCk7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfcmVhZGNvdW50X2luYyhzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDogIGF0b21pY19pbmMoJmlub2RlLT5pX3JlYWRjb3Vu
dCk7CjE0NDc0OiB9CjE0NDc0OiAjIDI5ODAgIi4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDog
ZXh0ZXJuIGludCBkb19waXBlX2ZsYWdzKGludCAqLCBpbnQpOwoxNDQ3NDogIyAyOTk2ICIuL2lu
Y2x1ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCB7CjE0NDc0
OiAgUkVBRElOR19VTktOT1dOLCBSRUFESU5HX0ZJUk1XQVJFLCBSRUFESU5HX0ZJUk1XQVJFX1BS
RUFMTE9DX0JVRkZFUiwgUkVBRElOR19NT0RVTEUsIFJFQURJTkdfS0VYRUNfSU1BR0UsIFJFQURJ
TkdfS0VYRUNfSU5JVFJBTUZTLCBSRUFESU5HX1BPTElDWSwgUkVBRElOR19YNTA5X0NFUlRJRklD
QVRFLCBSRUFESU5HX01BWF9JRCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25z
dCBjaGFyICogY29uc3Qga2VybmVsX3JlYWRfZmlsZV9zdHJbXSA9IHsKMTQ0NzQ6ICAidW5rbm93
biIsICJmaXJtd2FyZSIsICJmaXJtd2FyZSIsICJrZXJuZWwtbW9kdWxlIiwgImtleGVjLWltYWdl
IiwgImtleGVjLWluaXRyYW1mcyIsICJzZWN1cml0eS1wb2xpY3kiLCAieDUwOS1jZXJ0aWZpY2F0
ZSIsICIiLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgY2hhciAqa2VybmVsX3JlYWRf
ZmlsZV9pZF9zdHIoZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKQoxNDQ3NDogewoxNDQ3NDog
IGlmICgodW5zaWduZWQpaWQgPj0gUkVBRElOR19NQVhfSUQpCjE0NDc0OiAgIHJldHVybiBrZXJu
ZWxfcmVhZF9maWxlX3N0cltSRUFESU5HX1VOS05PV05dOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJu
IGtlcm5lbF9yZWFkX2ZpbGVfc3RyW2lkXTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGludCBrZXJuZWxfcmVhZF9maWxlKHN0cnVjdCBmaWxlICosIHZvaWQgKiosIGxvZmZfdCAqLCBs
b2ZmX3QsCjE0NDc0OiAgICAgICAgZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkKTsKMTQ0NzQ6IGV4
dGVybiBpbnQga2VybmVsX3JlYWRfZmlsZV9mcm9tX3BhdGgoY29uc3QgY2hhciAqLCB2b2lkICoq
LCBsb2ZmX3QgKiwgbG9mZl90LAoxNDQ3NDogICAgICAgICAgIGVudW0ga2VybmVsX3JlYWRfZmls
ZV9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGtlcm5lbF9yZWFkX2ZpbGVfZnJvbV9mZChpbnQsIHZv
aWQgKiosIGxvZmZfdCAqLCBsb2ZmX3QsCjE0NDc0OiAgICAgICAgIGVudW0ga2VybmVsX3JlYWRf
ZmlsZV9pZCk7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBrZXJuZWxfcmVhZChzdHJ1Y3QgZmlsZSAq
LCB2b2lkICosIHNpemVfdCwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIHNzaXplX3Qga2VybmVs
X3dyaXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CjE0
NDc0OiBleHRlcm4gc3NpemVfdCBfX2tlcm5lbF93cml0ZShzdHJ1Y3QgZmlsZSAqLCBjb25zdCB2
b2lkICosIHNpemVfdCwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBmaWxlICogb3Bl
bl9leGVjKGNvbnN0IGNoYXIgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGJvb2wg
aXNfc3ViZGlyKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKMTQ0NzQ6IGV4dGVy
biBib29sIHBhdGhfaXNfdW5kZXIoY29uc3Qgc3RydWN0IHBhdGggKiwgY29uc3Qgc3RydWN0IHBh
dGggKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjaGFyICpmaWxlX3BhdGgoc3RydWN0IGZpbGUg
KiwgY2hhciAqLCBpbnQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gbG9mZl90IGRlZmF1bHRfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zm
c2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGxvZmZfdCB2ZnNfbGxzZWVr
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCBpbm9kZV9pbml0X2Fsd2F5cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwg
c3RydWN0IGlub2RlICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaW5vZGVfaW5pdF9vbmNlKHN0cnVj
dCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGFkZHJlc3Nfc3BhY2VfaW5pdF9vbmNlKHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGUg
KiBpZ3JhYihzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gaW5vX3QgaXVuaXF1ZShzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKiwgaW5vX3QpOwoxNDQ3NDogZXh0ZXJuIGludCBpbm9kZV9uZWVkc19z
eW5jKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5lcmljX2RlbGV0
ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZW5lcmljX2Ryb3BfaW5v
ZGUoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gIWlub2RlLT5p
X25saW5rIHx8IGlub2RlX3VuaGFzaGVkKGlub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBpbm9kZSAqaWxvb2t1cDVfbm93YWl0KHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IsCjE0NDc0OiAgIHVuc2lnbmVkIGxvbmcgaGFzaHZhbCwgaW50ICgqdGVzdCkoc3RydWN0IGlu
b2RlICosIHZvaWQgKiksCjE0NDc0OiAgIHZvaWQgKmRhdGEpOwoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBpbm9kZSAqaWxvb2t1cDUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgbG9uZyBo
YXNodmFsLAoxNDQ3NDogICBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgdm9p
ZCAqZGF0YSk7CjE0NDc0OiBleHRlcm4gc3RydWN0IGlub2RlICppbG9va3VwKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIHVuc2lnbmVkIGxvbmcgaW5vKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0
cnVjdCBpbm9kZSAqaW5vZGVfaW5zZXJ0NShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBs
b25nIGhhc2h2YWwsCjE0NDc0OiAgIGludCAoKnRlc3QpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICop
LAoxNDQ3NDogICBpbnQgKCpzZXQpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICopLAoxNDQ3NDogICB2
b2lkICpkYXRhKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGUgKiBpZ2V0NV9sb2NrZWQoc3Ry
dWN0IHN1cGVyX2Jsb2NrICosIHVuc2lnbmVkIGxvbmcsIGludCAoKnRlc3QpKHN0cnVjdCBpbm9k
ZSAqLCB2b2lkICopLCBpbnQgKCpzZXQpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICopLCB2b2lkICop
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGlnZXRfbG9ja2VkKHN0cnVjdCBzdXBlcl9i
bG9jayAqLCB1bnNpZ25lZCBsb25nKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaW5vZGUgKmZpbmRf
aW5vZGVfbm93YWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqLAoxNDQ3NDogICAgICAgICAgICB1bnNp
Z25lZCBsb25nLAoxNDQ3NDogICAgICAgICAgICBpbnQgKCptYXRjaCkoc3RydWN0IGlub2RlICos
CjE0NDc0OiAgICAgICAgICAgdW5zaWduZWQgbG9uZywgdm9pZCAqKSwKMTQ0NzQ6ICAgICAgICAg
ICAgdm9pZCAqZGF0YSk7CjE0NDc0OiBleHRlcm4gaW50IGluc2VydF9pbm9kZV9sb2NrZWQ0KHN0
cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCBsb25nLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwg
dm9pZCAqKSwgdm9pZCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgaW5zZXJ0X2lub2RlX2xvY2tlZChz
dHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxvY2tk
ZXBfYW5ub3RhdGVfaW5vZGVfbXV0ZXhfa2V5KHN0cnVjdCBpbm9kZSAqaW5vZGUpIHsgfTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgdW5sb2NrX25ld19pbm9kZShzdHJ1Y3QgaW5vZGUgKik7
CjE0NDc0OiBleHRlcm4gdm9pZCBkaXNjYXJkX25ld19pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CjE0
NDc0OiBleHRlcm4gdW5zaWduZWQgaW50IGdldF9uZXh0X2lubyh2b2lkKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGV2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgX19pZ2V0KHN0cnVjdCBpbm9kZSAqIGlub2RlKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIGlnZXRfZmFpbGVkKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNs
ZWFyX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIF9fZGVzdHJveV9p
bm9kZShzdHJ1Y3QgaW5vZGUgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGlub2RlICpuZXdfaW5v
ZGVfcHNldWRvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBp
bm9kZSAqbmV3X2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgZnJlZV9pbm9kZV9ub25yY3Uoc3RydWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiBleHRlcm4g
aW50IHNob3VsZF9yZW1vdmVfc3VpZChzdHJ1Y3QgZGVudHJ5ICopOwoxNDQ3NDogZXh0ZXJuIGlu
dCBmaWxlX3JlbW92ZV9wcml2cyhzdHJ1Y3QgZmlsZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHZvaWQgX19pbnNlcnRfaW5vZGVfaGFzaChzdHJ1Y3QgaW5vZGUgKiwgdW5zaWduZWQgbG9uZyBo
YXNodmFsKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgaW5zZXJ0X2lub2RlX2hhc2goc3RydWN0IGlub2RlICppbm9k
ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBfX2luc2VydF9pbm9kZV9oYXNoKGlub2RlLCBpbm9kZS0+aV9p
bm8pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBfX3JlbW92ZV9pbm9kZV9o
YXNoKHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVtb3ZlX2lub2RlX2hhc2goc3RydWN0
IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWlub2RlX3VuaGFzaGVkKGlub2Rl
KSAmJiAhaGxpc3RfZmFrZSgmaW5vZGUtPmlfaGFzaCkpCjE0NDc0OiAgIF9fcmVtb3ZlX2lub2Rl
X2hhc2goaW5vZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBpbm9kZV9z
Yl9saXN0X2FkZChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gaW50IGJkZXZfcmVhZF9vbmx5KHN0cnVjdCBibG9ja19kZXZpY2UgKik7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBpbnQgc2V0X2Jsb2Nrc2l6ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIGlu
dCk7CjE0NDc0OiBleHRlcm4gaW50IHNiX3NldF9ibG9ja3NpemUoc3RydWN0IHN1cGVyX2Jsb2Nr
ICosIGludCk7CjE0NDc0OiBleHRlcm4gaW50IHNiX21pbl9ibG9ja3NpemUoc3RydWN0IHN1cGVy
X2Jsb2NrICosIGludCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2VuZXJpY19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICopOwoxNDQ3NDogZXh0ZXJu
IGludCBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1hcChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qgdm1f
YXJlYV9zdHJ1Y3QgKik7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBnZW5lcmljX3dyaXRlX2NoZWNr
cyhzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9pdGVyICopOwoxNDQ3NDogZXh0ZXJuIGludCBn
ZW5lcmljX3JlbWFwX2NoZWNrcyhzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwK
MTQ0NzQ6ICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAoxNDQ3NDog
ICAgIGxvZmZfdCAqY291bnQsIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CjE0NDc0OiBleHRl
cm4gaW50IGdlbmVyaWNfZmlsZV9yd19jaGVja3Moc3RydWN0IGZpbGUgKmZpbGVfaW4sIHN0cnVj
dCBmaWxlICpmaWxlX291dCk7CjE0NDc0OiBleHRlcm4gaW50IGdlbmVyaWNfY29weV9maWxlX2No
ZWNrcyhzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwKMTQ0NzQ6ICAgICAgICAg
c3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9zX291dCwKMTQ0NzQ6ICAgICAgICAgc2l6
ZV90ICpjb3VudCwgdW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdl
bmVyaWNfZmlsZV9yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRlciAqKTsK
MTQ0NzQ6IGV4dGVybiBzc2l6ZV90IF9fZ2VuZXJpY19maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtp
b2NiICosIHN0cnVjdCBpb3ZfaXRlciAqKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNf
ZmlsZV93cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0ZXIgKik7CjE0NDc0
OiBleHRlcm4gc3NpemVfdCBnZW5lcmljX2ZpbGVfZGlyZWN0X3dyaXRlKHN0cnVjdCBraW9jYiAq
LCBzdHJ1Y3QgaW92X2l0ZXIgKik7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBnZW5lcmljX3BlcmZv
cm1fd3JpdGUoc3RydWN0IGZpbGUgKiwgc3RydWN0IGlvdl9pdGVyICosIGxvZmZfdCk7CjE0NDc0
OiAKMTQ0NzQ6IHNzaXplX3QgdmZzX2l0ZXJfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IGlvdl9pdGVyICppdGVyLCBsb2ZmX3QgKnBwb3MsCjE0NDc0OiAgIHJ3Zl90IGZsYWdzKTsKMTQ0
NzQ6IHNzaXplX3QgdmZzX2l0ZXJfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBpb3Zf
aXRlciAqaXRlciwgbG9mZl90ICpwcG9zLAoxNDQ3NDogICByd2ZfdCBmbGFncyk7CjE0NDc0OiBz
c2l6ZV90IHZmc19pb2NiX2l0ZXJfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtpb2Ni
ICppb2NiLAoxNDQ3NDogICAgICAgc3RydWN0IGlvdl9pdGVyICppdGVyKTsKMTQ0NzQ6IHNzaXpl
X3QgdmZzX2lvY2JfaXRlcl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtpb2NiICpp
b2NiLAoxNDQ3NDogICAgICAgIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIHNzaXplX3QgYmxrZGV2X3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlv
Y2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pOwoxNDQ3NDogZXh0ZXJuIHNzaXplX3QgYmxrZGV2X3dy
aXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pOwoxNDQ3
NDogZXh0ZXJuIGludCBibGtkZXZfZnN5bmMoc3RydWN0IGZpbGUgKmZpbHAsIGxvZmZfdCBzdGFy
dCwgbG9mZl90IGVuZCwKMTQ0NzQ6ICAgIGludCBkYXRhc3luYyk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBibG9ja19zeW5jX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAq
LCBsb2ZmX3QgKiwKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBzaXplX3QsIHVu
c2lnbmVkIGludCk7CjE0NDc0OiBleHRlcm4gc3NpemVfdCBpdGVyX2ZpbGVfc3BsaWNlX3dyaXRl
KHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKiwKMTQ0NzQ6ICAgc3RydWN0IGZpbGUgKiwgbG9mZl90
ICosIHNpemVfdCwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdlbmVyaWNf
c3BsaWNlX3NlbmRwYWdlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCjE0NDc0OiAgIHN0
cnVjdCBmaWxlICpvdXQsIGxvZmZfdCAqLCBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp
OwoxNDQ3NDogZXh0ZXJuIGxvbmcgZG9fc3BsaWNlX2RpcmVjdChzdHJ1Y3QgZmlsZSAqaW4sIGxv
ZmZfdCAqcHBvcywgc3RydWN0IGZpbGUgKm91dCwKMTQ0NzQ6ICAgbG9mZl90ICpvcG9zLCBzaXpl
X3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biB2b2lkCjE0NDc0OiBmaWxlX3JhX3N0YXRlX2luaXQoc3RydWN0IGZpbGVfcmFfc3RhdGUgKnJh
LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7CjE0NDc0OiBleHRlcm4gbG9mZl90IG5v
b3BfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsK
MTQ0NzQ6IGV4dGVybiBsb2ZmX3Qgbm9fbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qg
b2Zmc2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3QgdmZzX3NldHBvcyhzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IG1heHNpemUpOwoxNDQ3NDogZXh0
ZXJuIGxvZmZfdCBnZW5lcmljX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qg
b2Zmc2V0LCBpbnQgd2hlbmNlKTsKMTQ0NzQ6IGV4dGVybiBsb2ZmX3QgZ2VuZXJpY19maWxlX2xs
c2Vla19zaXplKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAoxNDQ3NDogICBpbnQg
d2hlbmNlLCBsb2ZmX3QgbWF4c2l6ZSwgbG9mZl90IGVvZik7CjE0NDc0OiBleHRlcm4gbG9mZl90
IGZpeGVkX3NpemVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LAoxNDQ3
NDogICBpbnQgd2hlbmNlLCBsb2ZmX3Qgc2l6ZSk7CjE0NDc0OiBleHRlcm4gbG9mZl90IG5vX3Nl
ZWtfZW5kX2xsc2Vla19zaXplKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgaW50LCBsb2ZmX3QpOwox
NDQ3NDogZXh0ZXJuIGxvZmZfdCBub19zZWVrX2VuZF9sbHNlZWsoc3RydWN0IGZpbGUgKiwgbG9m
Zl90LCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfb3BlbihzdHJ1Y3QgaW5v
ZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKTsKMTQ0NzQ6IGV4dGVybiBpbnQgbm9uc2Vl
a2FibGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgc3RyZWFtX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBm
aWxlICogZmlscCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB2b2lkIChkaW9fc3Vi
bWl0X3QpKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGlub2RlICppbm9kZSwKMTQ0NzQ6ICAgICAg
ICBsb2ZmX3QgZmlsZV9vZmZzZXQpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6IAoxNDQ3
NDogIERJT19MT0NLSU5HID0gMHgwMSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRElPX1NLSVBf
SE9MRVMgPSAweDAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkaW9fZW5kX2lvKHN0
cnVjdCBiaW8gKmJpbyk7CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgX19ibG9ja2Rldl9kaXJlY3Rf
SU8oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAoxNDQ3NDogICAgICAg
ICBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCjE0NDc0
OiAgICAgICAgIGdldF9ibG9ja190IGdldF9ibG9jaywKMTQ0NzQ6ICAgICAgICAgZGlvX2lvZG9u
ZV90IGVuZF9pbywgZGlvX3N1Ym1pdF90IHN1Ym1pdF9pbywKMTQ0NzQ6ICAgICAgICAgaW50IGZs
YWdzKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3NpemVfdCBibG9ja2Rldl9kaXJlY3RfSU8oc3RydWN0IGtp
b2NiICppb2NiLAoxNDQ3NDogICAgICAgc3RydWN0IGlub2RlICppbm9kZSwKMTQ0NzQ6ICAgICAg
IHN0cnVjdCBpb3ZfaXRlciAqaXRlciwKMTQ0NzQ6ICAgICAgIGdldF9ibG9ja190IGdldF9ibG9j
aykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gX19ibG9ja2Rldl9kaXJlY3RfSU8oaW9jYiwgaW5v
ZGUsIGlub2RlLT5pX3NiLT5zX2JkZXYsIGl0ZXIsCjE0NDc0OiAgICBnZXRfYmxvY2ssICgodm9p
ZCAqKTApLCAoKHZvaWQgKikwKSwgRElPX0xPQ0tJTkcgfCBESU9fU0tJUF9IT0xFUyk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBpbm9kZV9kaW9fd2FpdChzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsKMTQ0NzQ6ICMgMzIwOCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGlub2RlX2Rpb19iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3NDog
IGF0b21pY19pbmMoJmlub2RlLT5pX2Rpb19jb3VudCk7CjE0NDc0OiB9CjE0NDc0OiAjIDMyMjAg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9kaW9fZW5kKHN0cnVjdCBp
bm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmlu
b2RlLT5pX2Rpb19jb3VudCkpCjE0NDc0OiAgIHdha2VfdXBfYml0KCZpbm9kZS0+aV9zdGF0ZSwg
OSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQg
ZGlvX3dhcm5fc3RhbGVfcGFnZWNhY2hlKHN0cnVjdCBmaWxlICpmaWxwKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgaW5vZGVfc2V0X2ZsYWdzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2ln
bmVkIGludCBmbGFncywKMTQ0NzQ6ICAgICAgICB1bnNpZ25lZCBpbnQgbWFzayk7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGdlbmVyaWNfcm9fZm9w
czsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmVhZGxpbmtfY29w
eShjaGFyICosIGludCwgY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFnZV9yZWFk
bGluayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBj
aGFyICpwYWdlX2dldF9saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICosCjE0NDc0
OiAgICAgIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBwYWdlX3B1
dF9saW5rKHZvaWQgKik7CjE0NDc0OiBleHRlcm4gaW50IF9fcGFnZV9zeW1saW5rKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKnN5bW5hbWUsIGludCBsZW4sCjE0NDc0OiAgIGludCBu
b2ZzKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcGFnZV9zeW1saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUs
IGNvbnN0IGNoYXIgKnN5bW5hbWUsIGludCBsZW4pOwoxNDQ3NDogZXh0ZXJuIGNvbnN0IHN0cnVj
dCBpbm9kZV9vcGVyYXRpb25zIHBhZ2Vfc3ltbGlua19pbm9kZV9vcGVyYXRpb25zOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQga2ZyZWVfbGluayh2b2lkICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZ2VuZXJp
Y19maWxsYXR0cihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGtzdGF0ICopOwoxNDQ3NDogZXh0ZXJu
IGludCB2ZnNfZ2V0YXR0cl9ub3NlYyhjb25zdCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQg
KiwgdTMyLCB1bnNpZ25lZCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCB2ZnNfZ2V0YXR0cihjb25z
dCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQgKiwgdTMyLCB1bnNpZ25lZCBpbnQpOwoxNDQ3
NDogdm9pZCBfX2lub2RlX2FkZF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0
ZXMpOwoxNDQ3NDogdm9pZCBpbm9kZV9hZGRfYnl0ZXMoc3RydWN0IGlub2RlICppbm9kZSwgbG9m
Zl90IGJ5dGVzKTsKMTQ0NzQ6IHZvaWQgX19pbm9kZV9zdWJfYnl0ZXMoc3RydWN0IGlub2RlICpp
bm9kZSwgbG9mZl90IGJ5dGVzKTsKMTQ0NzQ6IHZvaWQgaW5vZGVfc3ViX2J5dGVzKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIGxvZmZfdCBieXRlcyk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb2ZmX3QgX19pbm9kZV9nZXRfYnl0
ZXMoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCgobG9mZl90
KWlub2RlLT5pX2Jsb2NrcykgPDwgOSkgKyBpbm9kZS0+aV9ieXRlczsKMTQ0NzQ6IH0KMTQ0NzQ6
IGxvZmZfdCBpbm9kZV9nZXRfYnl0ZXMoc3RydWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiB2b2lk
IGlub2RlX3NldF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwoxNDQ3
NDogY29uc3QgY2hhciAqc2ltcGxlX2dldF9saW5rKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlu
b2RlICosCjE0NDc0OiAgICAgICAgc3RydWN0IGRlbGF5ZWRfY2FsbCAqKTsKMTQ0NzQ6IGV4dGVy
biBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaW1wbGVfc3ltbGlua19pbm9kZV9vcGVy
YXRpb25zOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGl0ZXJhdGVfZGlyKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCB2ZnNf
c3RhdHgoaW50LCBjb25zdCBjaGFyICosIGludCwgc3RydWN0IGtzdGF0ICosIHUzMik7CjE0NDc0
OiBleHRlcm4gaW50IHZmc19zdGF0eF9mZCh1bnNpZ25lZCBpbnQsIHN0cnVjdCBrc3RhdCAqLCB1
MzIsIHVuc2lnbmVkIGludCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2ZnNfc3RhdChjb25zdCBjaGFy
ICpmaWxlbmFtZSwgc3RydWN0IGtzdGF0ICpzdGF0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB2
ZnNfc3RhdHgoLTEwMCwgZmlsZW5hbWUsIDB4ODAwLAoxNDQ3NDogICAgIHN0YXQsIDB4MDAwMDA3
ZmZVKTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB2ZnNfbHN0YXQoY29uc3QgY2hhciAqbmFtZSwgc3Ry
dWN0IGtzdGF0ICpzdGF0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiB2ZnNfc3RhdHgoLTEwMCwg
bmFtZSwgMHgxMDAgfCAweDgwMCwKMTQ0NzQ6ICAgICBzdGF0LCAweDAwMDAwN2ZmVSk7CjE0NDc0
OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgdmZzX2ZzdGF0YXQoaW50IGRmZCwgY29uc3QgY2hhciAqZmlsZW5hbWUs
CjE0NDc0OiAgICAgICAgICBzdHJ1Y3Qga3N0YXQgKnN0YXQsIGludCBmbGFncykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gdmZzX3N0YXR4KGRmZCwgZmlsZW5hbWUsIGZsYWdzIHwgMHg4MDAsCjE0
NDc0OiAgICAgc3RhdCwgMHgwMDAwMDdmZlUpOwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHZmc19mc3Rh
dChpbnQgZmQsIHN0cnVjdCBrc3RhdCAqc3RhdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gdmZz
X3N0YXR4X2ZkKGZkLCBzdGF0LCAweDAwMDAwN2ZmVSwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGNvbnN0IGNoYXIgKnZmc19nZXRfbGluayhzdHJ1Y3QgZGVudHJ5
ICosIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CjE0NDc0OiBleHRlcm4gaW50IHZmc19yZWFkbGlu
ayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGlu
dCBfX2dlbmVyaWNfYmxvY2tfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsCjE0NDc0OiAgICAg
ICBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLAoxNDQ3NDogICAgICAgbG9mZl90
IHN0YXJ0LCBsb2ZmX3QgbGVuLAoxNDQ3NDogICAgICAgZ2V0X2Jsb2NrX3QgKmdldF9ibG9jayk7
CjE0NDc0OiBleHRlcm4gaW50IGdlbmVyaWNfYmxvY2tfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsCjE0NDc0OiAgICAgc3RydWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqZmllaW5mbywgdTY0IHN0
YXJ0LAoxNDQ3NDogICAgIHU2NCBsZW4sIGdldF9ibG9ja190ICpnZXRfYmxvY2spOwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmdldF9maWxlc3lzdGVtKHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcyk7CjE0NDc0OiBleHRlcm4gdm9pZCBwdXRfZmlsZXN5
c3RlbShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICpnZXRfZnNfdHlwZShjb25zdCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4
dGVybiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmdldF9zdXBlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICop
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0X3N1cGVyX3RoYXdlZChzdHJ1
Y3QgYmxvY2tfZGV2aWNlICopOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0
X3N1cGVyX2V4Y2x1c2l2ZV90aGF3ZWQoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7CjE0NDc0
OiBleHRlcm4gc3RydWN0IHN1cGVyX2Jsb2NrICpnZXRfYWN0aXZlX3N1cGVyKHN0cnVjdCBibG9j
a19kZXZpY2UgKmJkZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZHJvcF9zdXBlcihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRyb3Bfc3VwZXJfZXhjbHVzaXZlKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgaXRlcmF0ZV9zdXBlcnMo
dm9pZCAoKikoc3RydWN0IHN1cGVyX2Jsb2NrICosIHZvaWQgKiksIHZvaWQgKik7CjE0NDc0OiBl
eHRlcm4gdm9pZCBpdGVyYXRlX3N1cGVyc190eXBlKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICos
CjE0NDc0OiAgICAgICAgICAgIHZvaWQgKCopKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB2b2lkICop
LCB2b2lkICopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGRjYWNoZV9kaXJfb3BlbihzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKik7CjE0NDc0OiBleHRlcm4gaW50IGRjYWNoZV9kaXJf
Y2xvc2Uoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwoxNDQ3NDogZXh0ZXJuIGxvZmZf
dCBkY2FjaGVfZGlyX2xzZWVrKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgaW50KTsKMTQ0NzQ6IGV4
dGVybiBpbnQgZGNhY2hlX3JlYWRkaXIoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRpcl9jb250ZXh0
ICopOwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICosIHN0
cnVjdCBpYXR0ciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX2dldGF0dHIoY29uc3Qgc3Ry
dWN0IHBhdGggKiwgc3RydWN0IGtzdGF0ICosIHUzMiwgdW5zaWduZWQgaW50KTsKMTQ0NzQ6IGV4
dGVybiBpbnQgc2ltcGxlX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBrc3RhdGZzICop
OwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1
Y3QgZmlsZSAqZmlsZSk7CjE0NDc0OiBleHRlcm4gaW50IHNpbXBsZV9saW5rKHN0cnVjdCBkZW50
cnkgKiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBleHRlcm4gaW50
IHNpbXBsZV91bmxpbmsoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBl
eHRlcm4gaW50IHNpbXBsZV9ybWRpcihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX3JlbmFtZShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRl
bnRyeSAqLAoxNDQ3NDogICAgIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVuc2ln
bmVkIGludCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzaW1wbGVfcmVjdXJzaXZlX3JlbW92YWwoc3Ry
dWN0IGRlbnRyeSAqLAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAo
KmNhbGxiYWNrKShzdHJ1Y3QgZGVudHJ5ICopKTsKMTQ0NzQ6IGV4dGVybiBpbnQgbm9vcF9mc3lu
YyhzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgaW50KTsKMTQ0NzQ6IGV4dGVybiBpbnQg
bm9vcF9zZXRfcGFnZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBub29wX2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb2Zm
c2V0LAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbGVuZ3RoKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90
IG5vb3BfZGlyZWN0X0lPKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVy
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX2VtcHR5KHN0cnVjdCBkZW50cnkgKik7CjE0NDc0
OiBleHRlcm4gaW50IHNpbXBsZV9yZWFkcGFnZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBh
Z2UgKnBhZ2UpOwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfYmVnaW4oc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAoxNDQ3NDogICAgbG9mZl90
IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywKMTQ0NzQ6ICAgIHN0cnVjdCBwYWdl
ICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpOwoxNDQ3NDogZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVf
ZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKMTQ0
NzQ6ICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAoxNDQ3NDog
ICAgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSk7CjE0NDc0OiBleHRlcm4gaW50IGFs
d2F5c19kZWxldGVfZGVudHJ5KGNvbnN0IHN0cnVjdCBkZW50cnkgKik7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGlub2RlICphbGxvY19hbm9uX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKMTQ0
NzQ6IGV4dGVybiBpbnQgc2ltcGxlX25vc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywgc3Ry
dWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CjE0NDc0OiBleHRlcm4gY29uc3Qgc3RydWN0IGRl
bnRyeV9vcGVyYXRpb25zIHNpbXBsZV9kZW50cnlfb3BlcmF0aW9uczsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCBkZW50cnkgKnNpbXBsZV9sb29rdXAoc3RydWN0IGlub2RlICosIHN0cnVj
dCBkZW50cnkgKiwgdW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IGdl
bmVyaWNfcmVhZF9kaXIoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsK
MTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNpbXBsZV9kaXJfb3Bl
cmF0aW9uczsKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaW1w
bGVfZGlyX2lub2RlX29wZXJhdGlvbnM7CjE0NDc0OiBleHRlcm4gdm9pZCBtYWtlX2VtcHR5X2Rp
cl9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IGV4dGVybiBib29sIGlzX2VtcHR5
X2Rpcl9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKMTQ0NzQ6IHN0cnVjdCB0cmVlX2Rlc2Ny
IHsgY29uc3QgY2hhciAqbmFtZTsgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqb3BzOyBp
bnQgbW9kZTsgfTsKMTQ0NzQ6IHN0cnVjdCBkZW50cnkgKmRfYWxsb2NfbmFtZShzdHJ1Y3QgZGVu
dHJ5ICosIGNvbnN0IGNoYXIgKik7CjE0NDc0OiBleHRlcm4gaW50IHNpbXBsZV9maWxsX3N1cGVy
KHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBsb25nLAoxNDQ3NDogICAgICAgICBjb25z
dCBzdHJ1Y3QgdHJlZV9kZXNjciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2ltcGxlX3Bpbl9mcyhz
dHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiptb3VudCwgaW50ICpj
b3VudCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzaW1wbGVfcmVsZWFzZV9mcyhzdHJ1Y3QgdmZzbW91
bnQgKiptb3VudCwgaW50ICpjb3VudCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzc2l6ZV90IHNp
bXBsZV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRvLCBzaXplX3QgY291bnQsCjE0NDc0OiAgICBs
b2ZmX3QgKnBwb3MsIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBhdmFpbGFibGUpOwoxNDQ3NDog
ZXh0ZXJuIHNzaXplX3Qgc2ltcGxlX3dyaXRlX3RvX2J1ZmZlcih2b2lkICp0bywgc2l6ZV90IGF2
YWlsYWJsZSwgbG9mZl90ICpwcG9zLAoxNDQ3NDogICBjb25zdCB2b2lkICpmcm9tLCBzaXplX3Qg
Y291bnQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fZ2VuZXJpY19maWxlX2ZzeW5jKHN0
cnVjdCBmaWxlICosIGxvZmZfdCwgbG9mZl90LCBpbnQpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5l
cmljX2ZpbGVfZnN5bmMoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBsb2ZmX3QsIGludCk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZ2VuZXJpY19jaGVja19hZGRyZXNzYWJsZSh1bnNpZ25lZCwg
dTY0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGJ1ZmZlcl9taWdyYXRlX3Bh
Z2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKMTQ0NzQ6ICAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1
Y3QgcGFnZSAqLAoxNDQ3NDogICAgIGVudW0gbWlncmF0ZV9tb2RlKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgYnVmZmVyX21pZ3JhdGVfcGFnZV9ub3JlZnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKMTQ0
NzQ6ICAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAqLAoxNDQ3NDogICAgIGVudW0gbWln
cmF0ZV9tb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gaW50IHNldGF0dHJfcHJlcGFyZShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0
ciAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgaW5vZGVfbmV3c2l6ZV9vayhjb25zdCBzdHJ1Y3QgaW5v
ZGUgKiwgbG9mZl90IG9mZnNldCk7CjE0NDc0OiBleHRlcm4gdm9pZCBzZXRhdHRyX2NvcHkoc3Ry
dWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlhdHRyICphdHRyKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIGludCBmaWxlX3VwZGF0ZV90aW1lKHN0cnVjdCBmaWxlICpmaWxlKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBpb19pc19kaXJlY3Qoc3RydWN0IGZpbGUgKmZpbHApCjE0NDc0OiB7CjE0
NDc0OiAgcmV0dXJuIChmaWxwLT5mX2ZsYWdzICYgMDAwNDAwMDApIHx8ICgoZmlscC0+Zl9tYXBw
aW5nLT5ob3N0KS0+aV9mbGFncyAmIDgxOTIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHZtYV9pc19kYXgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHZtYS0+dm1fZmlsZSAmJiAoKHZtYS0+dm1fZmlsZS0+Zl9tYXBwaW5nLT5ob3N0KS0+
aV9mbGFncyAmIDgxOTIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHZtYV9pc19mc2Rh
eChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlOwoxNDQ3NDogCjE0NDc0OiAgaWYgKCF2bWEtPnZtX2ZpbGUpCjE0NDc0OiAgIHJl
dHVybiBmYWxzZTsKMTQ0NzQ6ICBpZiAoIXZtYV9pc19kYXgodm1hKSkKMTQ0NzQ6ICAgcmV0dXJu
IGZhbHNlOwoxNDQ3NDogIGlub2RlID0gZmlsZV9pbm9kZSh2bWEtPnZtX2ZpbGUpOwoxNDQ3NDog
IGlmICgoKChpbm9kZS0+aV9tb2RlKSAmIDAwMTcwMDAwKSA9PSAwMDIwMDAwKSkKMTQ0NzQ6ICAg
cmV0dXJuIGZhbHNlOwoxNDQ3NDogIHJldHVybiB0cnVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgaW9jYl9mbGFncyhzdHJ1Y3QgZmlsZSAqZmlsZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQg
cmVzID0gMDsKMTQ0NzQ6ICBpZiAoZmlsZS0+Zl9mbGFncyAmIDAwMDAyMDAwKQoxNDQ3NDogICBy
ZXMgfD0gKDEgPDwgMSk7CjE0NDc0OiAgaWYgKGlvX2lzX2RpcmVjdChmaWxlKSkKMTQ0NzQ6ICAg
cmVzIHw9ICgxIDw8IDIpOwoxNDQ3NDogIGlmICgoZmlsZS0+Zl9mbGFncyAmIDAwMDEwMDAwKSB8
fCAoKChmaWxlLT5mX21hcHBpbmctPmhvc3QpLT5pX3NiLT5zX2ZsYWdzICYgKDE2KSkgfHwgKChm
aWxlLT5mX21hcHBpbmctPmhvc3QpLT5pX2ZsYWdzICYgMSkpKQoxNDQ3NDogICByZXMgfD0gKDEg
PDwgNCk7CjE0NDc0OiAgaWYgKGZpbGUtPmZfZmxhZ3MgJiAwNDAwMDAwMCkKMTQ0NzQ6ICAgcmVz
IHw9ICgxIDw8IDUpOwoxNDQ3NDogIHJldHVybiByZXM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBraW9jYl9zZXRfcndfZmxhZ3Moc3RydWN0IGtpb2NiICpraSwgcndmX3QgZmxhZ3MpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZmxhZ3MgJiB+KCgoIF9fa2Vy
bmVsX3J3Zl90KTB4MDAwMDAwMDEpIHwgKCggX19rZXJuZWxfcndmX3QpMHgwMDAwMDAwMikgfCAo
KCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDA0KSB8ICgoIF9fa2VybmVsX3J3Zl90KTB4MDAwMDAw
MDgpIHwgKCggX19rZXJuZWxfcndmX3QpMHgwMDAwMDAxMCkpKSwgMCkpCjE0NDc0OiAgIHJldHVy
biAtOTU7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAw
MDAwMDA4KSkgewoxNDQ3NDogICBpZiAoIShraS0+a2lfZmlscC0+Zl9tb2RlICYgKCggZm1vZGVf
dCkweDgwMDAwMDApKSkKMTQ0NzQ6ICAgIHJldHVybiAtOTU7CjE0NDc0OiAgIGtpLT5raV9mbGFn
cyB8PSAoMSA8PCA3KTsKMTQ0NzQ6ICB9CjE0NDc0OiAgaWYgKGZsYWdzICYgKCggX19rZXJuZWxf
cndmX3QpMHgwMDAwMDAwMSkpCjE0NDc0OiAgIGtpLT5raV9mbGFncyB8PSAoMSA8PCAzKTsKMTQ0
NzQ6ICBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDAyKSkKMTQ0NzQ6ICAg
a2ktPmtpX2ZsYWdzIHw9ICgxIDw8IDQpOwoxNDQ3NDogIGlmIChmbGFncyAmICgoIF9fa2VybmVs
X3J3Zl90KTB4MDAwMDAwMDQpKQoxNDQ3NDogICBraS0+a2lfZmxhZ3MgfD0gKCgxIDw8IDQpIHwg
KDEgPDwgNSkpOwoxNDQ3NDogIGlmIChmbGFncyAmICgoIF9fa2VybmVsX3J3Zl90KTB4MDAwMDAw
MTApKQoxNDQ3NDogICBraS0+a2lfZmxhZ3MgfD0gKDEgPDwgMSk7CjE0NDc0OiAgcmV0dXJuIDA7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IHBhcmVudF9pbm8oc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQoxNDQ3NDogewoxNDQ3NDogIGlub190IHJlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9ja3JlZi5s
b2NrKTsKMTQ0NzQ6ICByZXMgPSBkZW50cnktPmRfcGFyZW50LT5kX2lub2RlLT5pX2lubzsKMTQ0
NzQ6ICBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CjE0NDc0OiAgcmV0dXJu
IHJlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNpbXBsZV90cmFuc2FjdGlvbl9hcmdyZXNwIHsK
MTQ0NzQ6ICBzc2l6ZV90IHNpemU7CjE0NDc0OiAgY2hhciBkYXRhWzBdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGNoYXIgKnNpbXBsZV90cmFuc2FjdGlvbl9nZXQo
c3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKmJ1ZiwKMTQ0NzQ6ICAgICBzaXplX3Qgc2l6
ZSk7CjE0NDc0OiBzc2l6ZV90IHNpbXBsZV90cmFuc2FjdGlvbl9yZWFkKHN0cnVjdCBmaWxlICpm
aWxlLCBjaGFyICpidWYsCjE0NDc0OiAgICAgc2l6ZV90IHNpemUsIGxvZmZfdCAqcG9zKTsKMTQ0
NzQ6IGludCBzaW1wbGVfdHJhbnNhY3Rpb25fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz
dHJ1Y3QgZmlsZSAqZmlsZSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2ltcGxlX3RyYW5zYWN0aW9u
X3NldChzdHJ1Y3QgZmlsZSAqZmlsZSwgc2l6ZV90IG4pOwoxNDQ3NDogIyAzNTE1ICIuL2luY2x1
ZGUvbGludXgvZnMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAx
LCAyKSkpCjE0NDc0OiB2b2lkIF9fc2ltcGxlX2F0dHJfY2hlY2tfZm9ybWF0KGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGludCBz
aW1wbGVfYXR0cl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLAox
NDQ3NDogICAgICAgIGludCAoKmdldCkodm9pZCAqLCB1NjQgKiksIGludCAoKnNldCkodm9pZCAq
LCB1NjQpLAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKmZtdCk7CjE0NDc0OiBpbnQgc2ltcGxl
X2F0dHJfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7CjE0
NDc0OiBzc2l6ZV90IHNpbXBsZV9hdHRyX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgKmJ1
ZiwKMTQ0NzQ6ICAgICBzaXplX3QgbGVuLCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogc3NpemVfdCBz
aW1wbGVfYXR0cl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciAqYnVmLAoxNDQ3
NDogICAgICBzaXplX3QgbGVuLCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
Y3RsX3RhYmxlOwoxNDQ3NDogaW50IHByb2NfbnJfZmlsZXMoc3RydWN0IGN0bF90YWJsZSAqdGFi
bGUsIGludCB3cml0ZSwKMTQ0NzQ6ICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9m
Zl90ICpwcG9zKTsKMTQ0NzQ6IGludCBwcm9jX25yX2RlbnRyeShzdHJ1Y3QgY3RsX3RhYmxlICp0
YWJsZSwgaW50IHdyaXRlLAoxNDQ3NDogICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs
b2ZmX3QgKnBwb3MpOwoxNDQ3NDogaW50IHByb2NfbnJfaW5vZGVzKHN0cnVjdCBjdGxfdGFibGUg
KnRhYmxlLCBpbnQgd3JpdGUsCjE0NDc0OiAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5w
LCBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIu
aW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGdldF9maWxlc3lzdGVtX2xp
c3QoY2hhciAqYnVmKTsKMTQ0NzQ6ICMgMzU0NiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGlzX3N4aWQodW1vZGVfdCBtb2RlKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAobW9k
ZSAmIDAwMDQwMDApIHx8ICgobW9kZSAmIDAwMDIwMDApICYmIChtb2RlICYgMDAwMTApKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNoZWNrX3N0aWNreShzdHJ1Y3QgaW5vZGUgKmRpciwg
c3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIShkaXItPmlfbW9kZSAm
IDAwMDEwMDApKQoxNDQ3NDogICByZXR1cm4gMDsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBfX2No
ZWNrX3N0aWNreShkaXIsIGlub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9k
ZV9oYXNfbm9feGF0dHIoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
IWlzX3N4aWQoaW5vZGUtPmlfbW9kZSkgJiYgKGlub2RlLT5pX3NiLT5zX2ZsYWdzICYgKDE8PDI4
KSkpCjE0NDc0OiAgIGlub2RlLT5pX2ZsYWdzIHw9IDQwOTY7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgaXNfcm9vdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBpbm9kZSA9PSBpbm9kZS0+aV9zYi0+c19yb290LT5kX2lub2RlOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRpcl9lbWl0KHN0cnVjdCBkaXJfY29udGV4dCAqY3R4LAox
NDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAoxNDQ3NDogICAgICAg
IHU2NCBpbm8sIHVuc2lnbmVkIHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGN0eC0+YWN0
b3IoY3R4LCBuYW1lLCBuYW1lbGVuLCBjdHgtPnBvcywgaW5vLCB0eXBlKSA9PSAwOwoxNDQ3NDog
fQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkaXJfZW1pdF9kb3Qoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkaXJf
Y29udGV4dCAqY3R4KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjdHgtPmFjdG9yKGN0eCwgIi4i
LCAxLCBjdHgtPnBvcywKMTQ0NzQ6ICAgICAgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9pbm8sIDQpID09IDA7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRpcl9lbWl0X2RvdGRvdChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIGN0eC0+YWN0b3IoY3R4LCAiLi4iLCAyLCBjdHgtPnBvcywKMTQ0NzQ6ICAgICAgcGFy
ZW50X2lubyhmaWxlLT5mX3BhdGguZGVudHJ5KSwgNCkgPT0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgZGlyX2VtaXRfZG90cyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpj
dHgpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGN0eC0+cG9zID09IDApIHsKMTQ0NzQ6ICAgaWYgKCFk
aXJfZW1pdF9kb3QoZmlsZSwgY3R4KSkKMTQ0NzQ6ICAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICAg
Y3R4LT5wb3MgPSAxOwoxNDQ3NDogIH0KMTQ0NzQ6ICBpZiAoY3R4LT5wb3MgPT0gMSkgewoxNDQ3
NDogICBpZiAoIWRpcl9lbWl0X2RvdGRvdChmaWxlLCBjdHgpKQoxNDQ3NDogICAgcmV0dXJuIGZh
bHNlOwoxNDQ3NDogICBjdHgtPnBvcyA9IDI7CjE0NDc0OiAgfQoxNDQ3NDogIHJldHVybiB0cnVl
OwoxNDQ3NDogfQoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkaXJfcmVsYXgoc3RydWN0IGlub2RlICppbm9kZSkKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpbm9kZV91bmxvY2soaW5vZGUpOwoxNDQ3NDogIGlub2RlX2xvY2soaW5v
ZGUpOwoxNDQ3NDogIHJldHVybiAhKChpbm9kZSktPmlfZmxhZ3MgJiAxNik7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZGlyX3JlbGF4X3NoYXJlZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQox
NDQ3NDogewoxNDQ3NDogIGlub2RlX3VubG9ja19zaGFyZWQoaW5vZGUpOwoxNDQ3NDogIGlub2Rl
X2xvY2tfc2hhcmVkKGlub2RlKTsKMTQ0NzQ6ICByZXR1cm4gISgoaW5vZGUpLT5pX2ZsYWdzICYg
MTYpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gYm9vbCBwYXRoX25vZXhlYyhjb25z
dCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CjE0NDc0OiBleHRlcm4gdm9pZCBpbm9kZV9ub2hpZ2htZW0o
c3RydWN0IGlub2RlICppbm9kZSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCB2
ZnNfZmFkdmlzZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbiwK
MTQ0NzQ6ICAgICAgICAgIGludCBhZHZpY2UpOwoxNDQ3NDogZXh0ZXJuIGludCBnZW5lcmljX2Zh
ZHZpc2Uoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4sCjE0NDc0
OiAgICAgICBpbnQgYWR2aWNlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0
IHNvY2sgKmlvX3VyaW5nX2dldF9zb2NrZXQoc3RydWN0IGZpbGUgKmZpbGUpOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQg
dmZzX2lvY19zZXRmbGFnc19wcmVwYXJlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGlu
dCBvbGRmbGFncywKMTQ0NzQ6ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IHZmc19pb2NfZnNzZXR4YXR0cl9jaGVjayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBj
b25zdCBzdHJ1Y3QgZnN4YXR0ciAqb2xkX2ZhLAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgZnN4YXR0
ciAqZmEpOwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNpbXBsZV9maWxsX2ZzeGF0dHIoc3RydWN0IGZz
eGF0dHIgKmZhLCBfX3UzMiB4ZmxhZ3MpCjE0NDc0OiB7CjE0NDc0OiAgbWVtc2V0KGZhLCAwLCBz
aXplb2YoKmZhKSk7CjE0NDc0OiAgZmEtPmZzeF94ZmxhZ3MgPSB4ZmxhZ3M7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
aW5vZGVfZHJhaW5fd3JpdGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUpCjE0NDc0OiB7CjE0NDc0OiAg
aW5vZGVfZGlvX3dhaXQoaW5vZGUpOwoxNDQ3NDogIHJldHVybiBmaWxlbWFwX3dyaXRlX2FuZF93
YWl0KGlub2RlLT5pX21hcHBpbmcpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMiAiLi9pbmNsdWRlL2xp
bnV4L3NlcV9maWxlLmgiIDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMQox
NDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRl
L2xpbnV4L2tleS5oIiAxCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0
OiAjIDEgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIgMQoxNDQ3NDogIyAzMCAiLi9pbmNsdWRl
L2xpbnV4L3N5c2N0bC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNjdGwu
aCIgMQoxNDQ3NDogIyAzNSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3lzY3RsLmgiCjE0NDc0OiBz
dHJ1Y3QgX19zeXNjdGxfYXJncyB7CjE0NDc0OiAgaW50ICpuYW1lOwoxNDQ3NDogIGludCBubGVu
OwoxNDQ3NDogIHZvaWQgKm9sZHZhbDsKMTQ0NzQ6ICBzaXplX3QgKm9sZGxlbnA7CjE0NDc0OiAg
dm9pZCAqbmV3dmFsOwoxNDQ3NDogIHNpemVfdCBuZXdsZW47CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBfX3VudXNlZFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIENUTF9LRVJOPTEsCjE0NDc0OiAg
Q1RMX1ZNPTIsCjE0NDc0OiAgQ1RMX05FVD0zLAoxNDQ3NDogIENUTF9QUk9DPTQsCjE0NDc0OiAg
Q1RMX0ZTPTUsCjE0NDc0OiAgQ1RMX0RFQlVHPTYsCjE0NDc0OiAgQ1RMX0RFVj03LAoxNDQ3NDog
IENUTF9CVVM9OCwKMTQ0NzQ6ICBDVExfQUJJPTksCjE0NDc0OiAgQ1RMX0NQVT0xMCwKMTQ0NzQ6
ICBDVExfQVJMQU49MjU0LAoxNDQ3NDogIENUTF9TMzkwREJGPTU2NzcsCjE0NDc0OiAgQ1RMX1NV
TlJQQz03MjQ5LAoxNDQ3NDogIENUTF9QTT05ODk5LAoxNDQ3NDogIENUTF9GUlY9OTg5OCwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIENUTF9C
VVNfSVNBPTEKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewox
NDQ3NDogIElOT1RJRllfTUFYX1VTRVJfSU5TVEFOQ0VTPTEsCjE0NDc0OiAgSU5PVElGWV9NQVhf
VVNFUl9XQVRDSEVTPTIsCjE0NDc0OiAgSU5PVElGWV9NQVhfUVVFVUVEX0VWRU5UUz0zCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBLRVJOX09T
VFlQRT0xLAoxNDQ3NDogIEtFUk5fT1NSRUxFQVNFPTIsCjE0NDc0OiAgS0VSTl9PU1JFVj0zLAox
NDQ3NDogIEtFUk5fVkVSU0lPTj00LAoxNDQ3NDogIEtFUk5fU0VDVVJFTUFTSz01LAoxNDQ3NDog
IEtFUk5fUFJPRj02LAoxNDQ3NDogIEtFUk5fTk9ERU5BTUU9NywKMTQ0NzQ6ICBLRVJOX0RPTUFJ
Tk5BTUU9OCwKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5fUEFOSUM9MTUsCjE0NDc0OiAgS0VSTl9SRUFM
Uk9PVERFVj0xNiwKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5fU1BBUkNfUkVCT09UPTIxLAoxNDQ3NDog
IEtFUk5fQ1RMQUxUREVMPTIyLAoxNDQ3NDogIEtFUk5fUFJJTlRLPTIzLAoxNDQ3NDogIEtFUk5f
TkFNRVRSQU5TPTI0LAoxNDQ3NDogIEtFUk5fUFBDX0hUQUJSRUNMQUlNPTI1LAoxNDQ3NDogIEtF
Uk5fUFBDX1pFUk9QQUdFRD0yNiwKMTQ0NzQ6ICBLRVJOX1BQQ19QT1dFUlNBVkVfTkFQPTI3LAox
NDQ3NDogIEtFUk5fTU9EUFJPQkU9MjgsCjE0NDc0OiAgS0VSTl9TR19CSUdfQlVGRj0yOSwKMTQ0
NzQ6ICBLRVJOX0FDQ1Q9MzAsCjE0NDc0OiAgS0VSTl9QUENfTDJDUj0zMSwKMTQ0NzQ6IAoxNDQ3
NDogIEtFUk5fUlRTSUdOUj0zMiwKMTQ0NzQ6ICBLRVJOX1JUU0lHTUFYPTMzLAoxNDQ3NDogCjE0
NDc0OiAgS0VSTl9TSE1NQVg9MzQsCjE0NDc0OiAgS0VSTl9NU0dNQVg9MzUsCjE0NDc0OiAgS0VS
Tl9NU0dNTkI9MzYsCjE0NDc0OiAgS0VSTl9NU0dQT09MPTM3LAoxNDQ3NDogIEtFUk5fU1lTUlE9
MzgsCjE0NDc0OiAgS0VSTl9NQVhfVEhSRUFEUz0zOSwKMTQ0NzQ6ICAgS0VSTl9SQU5ET009NDAs
CjE0NDc0OiAgIEtFUk5fU0hNQUxMPTQxLAoxNDQ3NDogICBLRVJOX01TR01OST00MiwKMTQ0NzQ6
ICAgS0VSTl9TRU09NDMsCjE0NDc0OiAgIEtFUk5fU1BBUkNfU1RPUF9BPTQ0LAoxNDQ3NDogICBL
RVJOX1NITU1OST00NSwKMTQ0NzQ6ICBLRVJOX09WRVJGTE9XVUlEPTQ2LAoxNDQ3NDogIEtFUk5f
T1ZFUkZMT1dHSUQ9NDcsCjE0NDc0OiAgS0VSTl9TSE1QQVRIPTQ4LAoxNDQ3NDogIEtFUk5fSE9U
UExVRz00OSwKMTQ0NzQ6ICBLRVJOX0lFRUVfRU1VTEFUSU9OX1dBUk5JTkdTPTUwLAoxNDQ3NDog
IEtFUk5fUzM5MF9VU0VSX0RFQlVHX0xPR0dJTkc9NTEsCjE0NDc0OiAgS0VSTl9DT1JFX1VTRVNf
UElEPTUyLAoxNDQ3NDogIEtFUk5fVEFJTlRFRD01MywKMTQ0NzQ6ICBLRVJOX0NBRFBJRD01NCwK
MTQ0NzQ6ICBLRVJOX1BJRE1BWD01NSwKMTQ0NzQ6ICAgIEtFUk5fQ09SRV9QQVRURVJOPTU2LAox
NDQ3NDogIEtFUk5fUEFOSUNfT05fT09QUz01NywKMTQ0NzQ6ICBLRVJOX0hQUEFfUFdSU1c9NTgs
CjE0NDc0OiAgS0VSTl9IUFBBX1VOQUxJR05FRD01OSwKMTQ0NzQ6ICBLRVJOX1BSSU5US19SQVRF
TElNSVQ9NjAsCjE0NDc0OiAgS0VSTl9QUklOVEtfUkFURUxJTUlUX0JVUlNUPTYxLAoxNDQ3NDog
IEtFUk5fUFRZPTYyLAoxNDQ3NDogIEtFUk5fTkdST1VQU19NQVg9NjMsCjE0NDc0OiAgS0VSTl9T
UEFSQ19TQ09OU19QV1JPRkY9NjQsCjE0NDc0OiAgS0VSTl9IWl9USU1FUj02NSwKMTQ0NzQ6ICBL
RVJOX1VOS05PV05fTk1JX1BBTklDPTY2LAoxNDQ3NDogIEtFUk5fQk9PVExPQURFUl9UWVBFPTY3
LAoxNDQ3NDogIEtFUk5fUkFORE9NSVpFPTY4LAoxNDQ3NDogIEtFUk5fU0VUVUlEX0RVTVBBQkxF
PTY5LAoxNDQ3NDogIEtFUk5fU1BJTl9SRVRSWT03MCwKMTQ0NzQ6ICBLRVJOX0FDUElfVklERU9f
RkxBR1M9NzEsCjE0NDc0OiAgS0VSTl9JQTY0X1VOQUxJR05FRD03MiwKMTQ0NzQ6ICBLRVJOX0NP
TVBBVF9MT0c9NzMsCjE0NDc0OiAgS0VSTl9NQVhfTE9DS19ERVBUSD03NCwKMTQ0NzQ6ICBLRVJO
X05NSV9XQVRDSERPRz03NSwKMTQ0NzQ6ICBLRVJOX1BBTklDX09OX05NST03NiwKMTQ0NzQ6ICBL
RVJOX1BBTklDX09OX1dBUk49NzcsCjE0NDc0OiAgS0VSTl9QQU5JQ19QUklOVD03OCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsK
MTQ0NzQ6ICBWTV9VTlVTRUQxPTEsCjE0NDc0OiAgVk1fVU5VU0VEMj0yLAoxNDQ3NDogIFZNX1VO
VVNFRDM9MywKMTQ0NzQ6ICBWTV9VTlVTRUQ0PTQsCjE0NDc0OiAgVk1fT1ZFUkNPTU1JVF9NRU1P
Ulk9NSwKMTQ0NzQ6ICBWTV9VTlVTRUQ1PTYsCjE0NDc0OiAgVk1fVU5VU0VENz03LAoxNDQ3NDog
IFZNX1VOVVNFRDg9OCwKMTQ0NzQ6ICBWTV9VTlVTRUQ5PTksCjE0NDc0OiAgVk1fUEFHRV9DTFVT
VEVSPTEwLAoxNDQ3NDogIFZNX0RJUlRZX0JBQ0tHUk9VTkQ9MTEsCjE0NDc0OiAgVk1fRElSVFlf
UkFUSU89MTIsCjE0NDc0OiAgVk1fRElSVFlfV0JfQ1M9MTMsCjE0NDc0OiAgVk1fRElSVFlfRVhQ
SVJFX0NTPTE0LAoxNDQ3NDogIFZNX05SX1BERkxVU0hfVEhSRUFEUz0xNSwKMTQ0NzQ6ICBWTV9P
VkVSQ09NTUlUX1JBVElPPTE2LAoxNDQ3NDogIFZNX1BBR0VCVUY9MTcsCjE0NDc0OiAgVk1fSFVH
RVRMQl9QQUdFUz0xOCwKMTQ0NzQ6ICBWTV9TV0FQUElORVNTPTE5LAoxNDQ3NDogIFZNX0xPV01F
TV9SRVNFUlZFX1JBVElPPTIwLAoxNDQ3NDogIFZNX01JTl9GUkVFX0tCWVRFUz0yMSwKMTQ0NzQ6
ICBWTV9NQVhfTUFQX0NPVU5UPTIyLAoxNDQ3NDogIFZNX0xBUFRPUF9NT0RFPTIzLAoxNDQ3NDog
IFZNX0JMT0NLX0RVTVA9MjQsCjE0NDc0OiAgVk1fSFVHRVRMQl9HUk9VUD0yNSwKMTQ0NzQ6ICBW
TV9WRlNfQ0FDSEVfUFJFU1NVUkU9MjYsCjE0NDc0OiAgVk1fTEVHQUNZX1ZBX0xBWU9VVD0yNywK
MTQ0NzQ6ICBWTV9TV0FQX1RPS0VOX1RJTUVPVVQ9MjgsCjE0NDc0OiAgVk1fRFJPUF9QQUdFQ0FD
SEU9MjksCjE0NDc0OiAgVk1fUEVSQ1BVX1BBR0VMSVNUX0ZSQUNUSU9OPTMwLAoxNDQ3NDogIFZN
X1pPTkVfUkVDTEFJTV9NT0RFPTMxLAoxNDQ3NDogIFZNX01JTl9VTk1BUFBFRD0zMiwKMTQ0NzQ6
ICBWTV9QQU5JQ19PTl9PT009MzMsCjE0NDc0OiAgVk1fVkRTT19FTkFCTEVEPTM0LAoxNDQ3NDog
IFZNX01JTl9TTEFCPTM1LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBORVRfQ09SRT0xLAoxNDQ3NDogIE5FVF9FVEhFUj0yLAox
NDQ3NDogIE5FVF84MDI9MywKMTQ0NzQ6ICBORVRfVU5JWD00LAoxNDQ3NDogIE5FVF9JUFY0PTUs
CjE0NDc0OiAgTkVUX0lQWD02LAoxNDQ3NDogIE5FVF9BVEFMSz03LAoxNDQ3NDogIE5FVF9ORVRS
T009OCwKMTQ0NzQ6ICBORVRfQVgyNT05LAoxNDQ3NDogIE5FVF9CUklER0U9MTAsCjE0NDc0OiAg
TkVUX1JPU0U9MTEsCjE0NDc0OiAgTkVUX0lQVjY9MTIsCjE0NDc0OiAgTkVUX1gyNT0xMywKMTQ0
NzQ6ICBORVRfVFI9MTQsCjE0NDc0OiAgTkVUX0RFQ05FVD0xNSwKMTQ0NzQ6ICBORVRfRUNPTkVU
PTE2LAoxNDQ3NDogIE5FVF9TQ1RQPTE3LAoxNDQ3NDogIE5FVF9MTEM9MTgsCjE0NDc0OiAgTkVU
X05FVEZJTFRFUj0xOSwKMTQ0NzQ6ICBORVRfRENDUD0yMCwKMTQ0NzQ6ICBORVRfSVJEQT00MTIs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBS
QU5ET01fUE9PTFNJWkU9MSwKMTQ0NzQ6ICBSQU5ET01fRU5UUk9QWV9DT1VOVD0yLAoxNDQ3NDog
IFJBTkRPTV9SRUFEX1RIUkVTSD0zLAoxNDQ3NDogIFJBTkRPTV9XUklURV9USFJFU0g9NCwKMTQ0
NzQ6ICBSQU5ET01fQk9PVF9JRD01LAoxNDQ3NDogIFJBTkRPTV9VVUlEPTYKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIFBUWV9NQVg9MSwKMTQ0
NzQ6ICBQVFlfTlI9MgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtCjE0NDc0
OiB7CjE0NDc0OiAgQlVTX0lTQV9NRU1fQkFTRT0xLAoxNDQ3NDogIEJVU19JU0FfUE9SVF9CQVNF
PTIsCjE0NDc0OiAgQlVTX0lTQV9QT1JUX1NISUZUPTMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9DT1JFX1dNRU1fTUFYPTEsCjE0NDc0
OiAgTkVUX0NPUkVfUk1FTV9NQVg9MiwKMTQ0NzQ6ICBORVRfQ09SRV9XTUVNX0RFRkFVTFQ9MywK
MTQ0NzQ6ICBORVRfQ09SRV9STUVNX0RFRkFVTFQ9NCwKMTQ0NzQ6IAoxNDQ3NDogIE5FVF9DT1JF
X01BWF9CQUNLTE9HPTYsCjE0NDc0OiAgTkVUX0NPUkVfRkFTVFJPVVRFPTcsCjE0NDc0OiAgTkVU
X0NPUkVfTVNHX0NPU1Q9OCwKMTQ0NzQ6ICBORVRfQ09SRV9NU0dfQlVSU1Q9OSwKMTQ0NzQ6ICBO
RVRfQ09SRV9PUFRNRU1fTUFYPTEwLAoxNDQ3NDogIE5FVF9DT1JFX0hPVF9MSVNUX0xFTkdUSD0x
MSwKMTQ0NzQ6ICBORVRfQ09SRV9ESVZFUlRfVkVSU0lPTj0xMiwKMTQ0NzQ6ICBORVRfQ09SRV9O
T19DT05HX1RIUkVTSD0xMywKMTQ0NzQ6ICBORVRfQ09SRV9OT19DT05HPTE0LAoxNDQ3NDogIE5F
VF9DT1JFX0xPX0NPTkc9MTUsCjE0NDc0OiAgTkVUX0NPUkVfTU9EX0NPTkc9MTYsCjE0NDc0OiAg
TkVUX0NPUkVfREVWX1dFSUdIVD0xNywKMTQ0NzQ6ICBORVRfQ09SRV9TT01BWENPTk49MTgsCjE0
NDc0OiAgTkVUX0NPUkVfQlVER0VUPTE5LAoxNDQ3NDogIE5FVF9DT1JFX0FFVkVOVF9FVElNRT0y
MCwKMTQ0NzQ6ICBORVRfQ09SRV9BRVZFTlRfUlNFUVRIPTIxLAoxNDQ3NDogIE5FVF9DT1JFX1dB
Uk5JTkdTPTIyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9VTklY
X0RFU1RST1lfREVMQVk9MSwKMTQ0NzQ6ICBORVRfVU5JWF9ERUxFVEVfREVMQVk9MiwKMTQ0NzQ6
ICBORVRfVU5JWF9NQVhfREdSQU1fUUxFTj0zLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBlbnVtCjE0NDc0OiB7CjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19NQVg9MSwKMTQ0NzQ6
ICBORVRfTkZfQ09OTlRSQUNLX1RDUF9USU1FT1VUX1NZTl9TRU5UPTIsCjE0NDc0OiAgTkVUX05G
X0NPTk5UUkFDS19UQ1BfVElNRU9VVF9TWU5fUkVDVj0zLAoxNDQ3NDogIE5FVF9ORl9DT05OVFJB
Q0tfVENQX1RJTUVPVVRfRVNUQUJMSVNIRUQ9NCwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1RD
UF9USU1FT1VUX0ZJTl9XQUlUPTUsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9V
VF9DTE9TRV9XQUlUPTYsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9MQVNU
X0FDSz03LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfVElNRV9XQUlUPTgs
CjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9DTE9TRT05LAoxNDQ3NDogIE5F
VF9ORl9DT05OVFJBQ0tfVURQX1RJTUVPVVQ9MTAsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19V
RFBfVElNRU9VVF9TVFJFQU09MTEsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19JQ01QX1RJTUVP
VVQ9MTIsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19HRU5FUklDX1RJTUVPVVQ9MTMsCjE0NDc0
OiAgTkVUX05GX0NPTk5UUkFDS19CVUNLRVRTPTE0LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tf
TE9HX0lOVkFMSUQ9MTUsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9NQVhf
UkVUUkFOUz0xNiwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1RDUF9MT09TRT0xNywKMTQ0NzQ6
ICBORVRfTkZfQ09OTlRSQUNLX1RDUF9CRV9MSUJFUkFMPTE4LAoxNDQ3NDogIE5FVF9ORl9DT05O
VFJBQ0tfVENQX01BWF9SRVRSQU5TPTE5LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfU0NUUF9U
SU1FT1VUX0NMT1NFRD0yMCwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9D
T09LSUVfV0FJVD0yMSwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9DT09L
SUVfRUNIT0VEPTIyLAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX0VTVEFC
TElTSEVEPTIzLAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX1NIVVRET1dO
X1NFTlQ9MjQsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfU0hVVERPV05f
UkVDRD0yNSwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9TSFVURE9XTl9B
Q0tfU0VOVD0yNiwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX0NPVU5UPTI3LAoxNDQ3NDogIE5F
VF9ORl9DT05OVFJBQ0tfSUNNUFY2X1RJTUVPVVQ9MjgsCjE0NDc0OiAgTkVUX05GX0NPTk5UUkFD
S19GUkFHNl9USU1FT1VUPTI5LAoxNDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfRlJBRzZfTE9XX1RI
UkVTSD0zMCwKMTQ0NzQ6ICBORVRfTkZfQ09OTlRSQUNLX0ZSQUc2X0hJR0hfVEhSRVNIPTMxLAox
NDQ3NDogIE5FVF9ORl9DT05OVFJBQ0tfQ0hFQ0tTVU09MzIsCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIE5FVF9JUFY0X0ZPUldB
UkQ9OCwKMTQ0NzQ6ICBORVRfSVBWNF9EWU5BRERSPTksCjE0NDc0OiAKMTQ0NzQ6ICBORVRfSVBW
NF9DT05GPTE2LAoxNDQ3NDogIE5FVF9JUFY0X05FSUdIPTE3LAoxNDQ3NDogIE5FVF9JUFY0X1JP
VVRFPTE4LAoxNDQ3NDogIE5FVF9JUFY0X0ZJQl9IQVNIPTE5LAoxNDQ3NDogIE5FVF9JUFY0X05F
VEZJTFRFUj0yMCwKMTQ0NzQ6IAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9USU1FU1RBTVBTPTMzLAox
NDQ3NDogIE5FVF9JUFY0X1RDUF9XSU5ET1dfU0NBTElORz0zNCwKMTQ0NzQ6ICBORVRfSVBWNF9U
Q1BfU0FDSz0zNSwKMTQ0NzQ6ICBORVRfSVBWNF9UQ1BfUkVUUkFOU19DT0xMQVBTRT0zNiwKMTQ0
NzQ6ICBORVRfSVBWNF9ERUZBVUxUX1RUTD0zNywKMTQ0NzQ6ICBORVRfSVBWNF9BVVRPQ09ORklH
PTM4LAoxNDQ3NDogIE5FVF9JUFY0X05PX1BNVFVfRElTQz0zOSwKMTQ0NzQ6ICBORVRfSVBWNF9U
Q1BfU1lOX1JFVFJJRVM9NDAsCjE0NDc0OiAgTkVUX0lQVjRfSVBGUkFHX0hJR0hfVEhSRVNIPTQx
LAoxNDQ3NDogIE5FVF9JUFY0X0lQRlJBR19MT1dfVEhSRVNIPTQyLAoxNDQ3NDogIE5FVF9JUFY0
X0lQRlJBR19USU1FPTQzLAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9NQVhfS0FfUFJPQkVTPTQ0LAox
NDQ3NDogIE5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfVElNRT00NSwKMTQ0NzQ6ICBORVRfSVBWNF9U
Q1BfS0VFUEFMSVZFX1BST0JFUz00NiwKMTQ0NzQ6ICBORVRfSVBWNF9UQ1BfUkVUUklFUzE9NDcs
CjE0NDc0OiAgTkVUX0lQVjRfVENQX1JFVFJJRVMyPTQ4LAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9G
SU5fVElNRU9VVD00OSwKMTQ0NzQ6ICBORVRfSVBWNF9JUF9NQVNRX0RFQlVHPTUwLAoxNDQ3NDog
IE5FVF9UQ1BfU1lOQ09PS0lFUz01MSwKMTQ0NzQ6ICBORVRfVENQX1NURFVSRz01MiwKMTQ0NzQ6
ICBORVRfVENQX1JGQzEzMzc9NTMsCjE0NDc0OiAgTkVUX1RDUF9TWU5fVEFJTERST1A9NTQsCjE0
NDc0OiAgTkVUX1RDUF9NQVhfU1lOX0JBQ0tMT0c9NTUsCjE0NDc0OiAgTkVUX0lQVjRfTE9DQUxf
UE9SVF9SQU5HRT01NiwKMTQ0NzQ6ICBORVRfSVBWNF9JQ01QX0VDSE9fSUdOT1JFX0FMTD01NywK
MTQ0NzQ6ICBORVRfSVBWNF9JQ01QX0VDSE9fSUdOT1JFX0JST0FEQ0FTVFM9NTgsCjE0NDc0OiAg
TkVUX0lQVjRfSUNNUF9TT1VSQ0VRVUVOQ0hfUkFURT01OSwKMTQ0NzQ6ICBORVRfSVBWNF9JQ01Q
X0RFU1RVTlJFQUNIX1JBVEU9NjAsCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9USU1FRVhDRUVEX1JB
VEU9NjEsCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9QQVJBTVBST0JfUkFURT02MiwKMTQ0NzQ6ICBO
RVRfSVBWNF9JQ01QX0VDSE9SRVBMWV9SQVRFPTYzLAoxNDQ3NDogIE5FVF9JUFY0X0lDTVBfSUdO
T1JFX0JPR1VTX0VSUk9SX1JFU1BPTlNFUz02NCwKMTQ0NzQ6ICBORVRfSVBWNF9JR01QX01BWF9N
RU1CRVJTSElQUz02NSwKMTQ0NzQ6ICBORVRfVENQX1RXX1JFQ1lDTEU9NjYsCjE0NDc0OiAgTkVU
X0lQVjRfQUxXQVlTX0RFRlJBRz02NywKMTQ0NzQ6ICBORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX0lO
VFZMPTY4LAoxNDQ3NDogIE5FVF9JUFY0X0lORVRfUEVFUl9USFJFU0hPTEQ9NjksCjE0NDc0OiAg
TkVUX0lQVjRfSU5FVF9QRUVSX01JTlRUTD03MCwKMTQ0NzQ6ICBORVRfSVBWNF9JTkVUX1BFRVJf
TUFYVFRMPTcxLAoxNDQ3NDogIE5FVF9JUFY0X0lORVRfUEVFUl9HQ19NSU5USU1FPTcyLAoxNDQ3
NDogIE5FVF9JUFY0X0lORVRfUEVFUl9HQ19NQVhUSU1FPTczLAoxNDQ3NDogIE5FVF9UQ1BfT1JQ
SEFOX1JFVFJJRVM9NzQsCjE0NDc0OiAgTkVUX1RDUF9BQk9SVF9PTl9PVkVSRkxPVz03NSwKMTQ0
NzQ6ICBORVRfVENQX1NZTkFDS19SRVRSSUVTPTc2LAoxNDQ3NDogIE5FVF9UQ1BfTUFYX09SUEhB
TlM9NzcsCjE0NDc0OiAgTkVUX1RDUF9NQVhfVFdfQlVDS0VUUz03OCwKMTQ0NzQ6ICBORVRfVENQ
X0ZBQ0s9NzksCjE0NDc0OiAgTkVUX1RDUF9SRU9SREVSSU5HPTgwLAoxNDQ3NDogIE5FVF9UQ1Bf
RUNOPTgxLAoxNDQ3NDogIE5FVF9UQ1BfRFNBQ0s9ODIsCjE0NDc0OiAgTkVUX1RDUF9NRU09ODMs
CjE0NDc0OiAgTkVUX1RDUF9XTUVNPTg0LAoxNDQ3NDogIE5FVF9UQ1BfUk1FTT04NSwKMTQ0NzQ6
ICBORVRfVENQX0FQUF9XSU49ODYsCjE0NDc0OiAgTkVUX1RDUF9BRFZfV0lOX1NDQUxFPTg3LAox
NDQ3NDogIE5FVF9JUFY0X05PTkxPQ0FMX0JJTkQ9ODgsCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9S
QVRFTElNSVQ9ODksCjE0NDc0OiAgTkVUX0lQVjRfSUNNUF9SQVRFTUFTSz05MCwKMTQ0NzQ6ICBO
RVRfVENQX1RXX1JFVVNFPTkxLAoxNDQ3NDogIE5FVF9UQ1BfRlJUTz05MiwKMTQ0NzQ6ICBORVRf
VENQX0xPV19MQVRFTkNZPTkzLAoxNDQ3NDogIE5FVF9JUFY0X0lQRlJBR19TRUNSRVRfSU5URVJW
QUw9OTQsCjE0NDc0OiAgTkVUX0lQVjRfSUdNUF9NQVhfTVNGPTk2LAoxNDQ3NDogIE5FVF9UQ1Bf
Tk9fTUVUUklDU19TQVZFPTk3LAoxNDQ3NDogIE5FVF9UQ1BfREVGQVVMVF9XSU5fU0NBTEU9MTA1
LAoxNDQ3NDogIE5FVF9UQ1BfTU9ERVJBVEVfUkNWQlVGPTEwNiwKMTQ0NzQ6ICBORVRfVENQX1RT
T19XSU5fRElWSVNPUj0xMDcsCjE0NDc0OiAgTkVUX1RDUF9CSUNfQkVUQT0xMDgsCjE0NDc0OiAg
TkVUX0lQVjRfSUNNUF9FUlJPUlNfVVNFX0lOQk9VTkRfSUZBRERSPTEwOSwKMTQ0NzQ6ICBORVRf
VENQX0NPTkdfQ09OVFJPTD0xMTAsCjE0NDc0OiAgTkVUX1RDUF9BQkM9MTExLAoxNDQ3NDogIE5F
VF9JUFY0X0lQRlJBR19NQVhfRElTVD0xMTIsCjE0NDc0OiAgIE5FVF9UQ1BfTVRVX1BST0JJTkc9
MTEzLAoxNDQ3NDogIE5FVF9UQ1BfQkFTRV9NU1M9MTE0LAoxNDQ3NDogIE5FVF9JUFY0X1RDUF9X
T1JLQVJPVU5EX1NJR05FRF9XSU5ET1dTPTExNSwKMTQ0NzQ6ICBORVRfVENQX0RNQV9DT1BZQlJF
QUs9MTE2LAoxNDQ3NDogIE5FVF9UQ1BfU0xPV19TVEFSVF9BRlRFUl9JRExFPTExNywKMTQ0NzQ6
ICBORVRfQ0lQU09WNF9DQUNIRV9FTkFCTEU9MTE4LAoxNDQ3NDogIE5FVF9DSVBTT1Y0X0NBQ0hF
X0JVQ0tFVF9TSVpFPTExOSwKMTQ0NzQ6ICBORVRfQ0lQU09WNF9SQk1fT1BURk1UPTEyMCwKMTQ0
NzQ6ICBORVRfQ0lQU09WNF9SQk1fU1RSSUNUVkFMSUQ9MTIxLAoxNDQ3NDogIE5FVF9UQ1BfQVZB
SUxfQ09OR19DT05UUk9MPTEyMiwKMTQ0NzQ6ICBORVRfVENQX0FMTE9XRURfQ09OR19DT05UUk9M
PTEyMywKMTQ0NzQ6ICBORVRfVENQX01BWF9TU1RIUkVTSD0xMjQsCjE0NDc0OiAgTkVUX1RDUF9G
UlRPX1JFU1BPTlNFPTEyNSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDog
IE5FVF9JUFY0X1JPVVRFX0ZMVVNIPTEsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfTUlOX0RFTEFZ
PTIsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfTUFYX0RFTEFZPTMsCjE0NDc0OiAgTkVUX0lQVjRf
Uk9VVEVfR0NfVEhSRVNIPTQsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfTUFYX1NJWkU9NSwKMTQ0
NzQ6ICBORVRfSVBWNF9ST1VURV9HQ19NSU5fSU5URVJWQUw9NiwKMTQ0NzQ6ICBORVRfSVBWNF9S
T1VURV9HQ19USU1FT1VUPTcsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfR0NfSU5URVJWQUw9OCwK
MTQ0NzQ6ICBORVRfSVBWNF9ST1VURV9SRURJUkVDVF9MT0FEPTksCjE0NDc0OiAgTkVUX0lQVjRf
Uk9VVEVfUkVESVJFQ1RfTlVNQkVSPTEwLAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRFX1JFRElSRUNU
X1NJTEVOQ0U9MTEsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfRVJST1JfQ09TVD0xMiwKMTQ0NzQ6
ICBORVRfSVBWNF9ST1VURV9FUlJPUl9CVVJTVD0xMywKMTQ0NzQ6ICBORVRfSVBWNF9ST1VURV9H
Q19FTEFTVElDSVRZPTE0LAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRFX01UVV9FWFBJUkVTPTE1LAox
NDQ3NDogIE5FVF9JUFY0X1JPVVRFX01JTl9QTVRVPTE2LAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRF
X01JTl9BRFZNU1M9MTcsCjE0NDc0OiAgTkVUX0lQVjRfUk9VVEVfU0VDUkVUX0lOVEVSVkFMPTE4
LAoxNDQ3NDogIE5FVF9JUFY0X1JPVVRFX0dDX01JTl9JTlRFUlZBTF9NUz0xOSwKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBORVRfUFJPVE9fQ09ORl9BTEw9
LTIsCjE0NDc0OiAgTkVUX1BST1RPX0NPTkZfREVGQVVMVD0tMwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6ICBORVRfSVBWNF9DT05G
X0ZPUldBUkRJTkc9MSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX01DX0ZPUldBUkRJTkc9MiwKMTQ0
NzQ6ICBORVRfSVBWNF9DT05GX1BST1hZX0FSUD0zLAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfQUND
RVBUX1JFRElSRUNUUz00LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfU0VDVVJFX1JFRElSRUNUUz01
LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfU0VORF9SRURJUkVDVFM9NiwKMTQ0NzQ6ICBORVRfSVBW
NF9DT05GX1NIQVJFRF9NRURJQT03LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfUlBfRklMVEVSPTgs
CjE0NDc0OiAgTkVUX0lQVjRfQ09ORl9BQ0NFUFRfU09VUkNFX1JPVVRFPTksCjE0NDc0OiAgTkVU
X0lQVjRfQ09ORl9CT09UUF9SRUxBWT0xMCwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX0xPR19NQVJU
SUFOUz0xMSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX1RBRz0xMiwKMTQ0NzQ6ICBORVRfSVBWNF9D
T05GX0FSUEZJTFRFUj0xMywKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX01FRElVTV9JRD0xNCwKMTQ0
NzQ6ICBORVRfSVBWNF9DT05GX05PWEZSTT0xNSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX05PUE9M
SUNZPTE2LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZfRk9SQ0VfSUdNUF9WRVJTSU9OPTE3LAoxNDQ3
NDogIE5FVF9JUFY0X0NPTkZfQVJQX0FOTk9VTkNFPTE4LAoxNDQ3NDogIE5FVF9JUFY0X0NPTkZf
QVJQX0lHTk9SRT0xOSwKMTQ0NzQ6ICBORVRfSVBWNF9DT05GX1BST01PVEVfU0VDT05EQVJJRVM9
MjAsCjE0NDc0OiAgTkVUX0lQVjRfQ09ORl9BUlBfQUNDRVBUPTIxLAoxNDQ3NDogIE5FVF9JUFY0
X0NPTkZfQVJQX05PVElGWT0yMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19NQVg9MSwKMTQ0NzQ6ICBO
RVRfSVBWNF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfU1lOX1NFTlQ9MiwKMTQ0NzQ6ICBORVRf
SVBWNF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfU1lOX1JFQ1Y9MywKMTQ0NzQ6ICBORVRfSVBW
NF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfRVNUQUJMSVNIRUQ9NCwKMTQ0NzQ6ICBORVRfSVBW
NF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfRklOX1dBSVQ9NSwKMTQ0NzQ6ICBORVRfSVBWNF9O
Rl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0VfV0FJVD02LAoxNDQ3NDogIE5FVF9JUFY0X05G
X0NPTk5UUkFDS19UQ1BfVElNRU9VVF9MQVNUX0FDSz03LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NP
Tk5UUkFDS19UQ1BfVElNRU9VVF9USU1FX1dBSVQ9OCwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05O
VFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0U9OSwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
VURQX1RJTUVPVVQ9MTAsCjE0NDc0OiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1VEUF9USU1FT1VU
X1NUUkVBTT0xMSwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfSUNNUF9USU1FT1VUPTEy
LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19HRU5FUklDX1RJTUVPVVQ9MTMsCjE0NDc0
OiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX0JVQ0tFVFM9MTQsCjE0NDc0OiAgTkVUX0lQVjRfTkZf
Q09OTlRSQUNLX0xPR19JTlZBTElEPTE1LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19U
Q1BfVElNRU9VVF9NQVhfUkVUUkFOUz0xNiwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
VENQX0xPT1NFPTE3LAoxNDQ3NDogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfQkVfTElCRVJB
TD0xOCwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfVENQX01BWF9SRVRSQU5TPTE5LAox
NDQ3NDogICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX0NMT1NFRD0yMCwKMTQ0
NzQ6ICAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9DT09LSUVfV0FJVD0yMSwK
MTQ0NzQ6ICAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9DT09LSUVfRUNIT0VE
PTIyLAoxNDQ3NDogICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX0VTVEFCTElT
SEVEPTIzLAoxNDQ3NDogICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VUX1NIVVRE
T1dOX1NFTlQ9MjQsCjE0NDc0OiAgIE5FVF9JUFY0X05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRf
U0hVVERPV05fUkVDRD0yNSwKMTQ0NzQ6ICAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElN
RU9VVF9TSFVURE9XTl9BQ0tfU0VOVD0yNiwKMTQ0NzQ6ICBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
Q09VTlQ9MjcsCjE0NDc0OiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX0NIRUNLU1VNPTI4LAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfSVBWNl9DT05G
PTE2LAoxNDQ3NDogIE5FVF9JUFY2X05FSUdIPTE3LAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFPTE4
LAoxNDQ3NDogIE5FVF9JUFY2X0lDTVA9MTksCjE0NDc0OiAgTkVUX0lQVjZfQklORFY2T05MWT0y
MCwKMTQ0NzQ6ICBORVRfSVBWNl9JUDZGUkFHX0hJR0hfVEhSRVNIPTIxLAoxNDQ3NDogIE5FVF9J
UFY2X0lQNkZSQUdfTE9XX1RIUkVTSD0yMiwKMTQ0NzQ6ICBORVRfSVBWNl9JUDZGUkFHX1RJTUU9
MjMsCjE0NDc0OiAgTkVUX0lQVjZfSVA2RlJBR19TRUNSRVRfSU5URVJWQUw9MjQsCjE0NDc0OiAg
TkVUX0lQVjZfTUxEX01BWF9NU0Y9MjUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsK
MTQ0NzQ6ICBORVRfSVBWNl9ST1VURV9GTFVTSD0xLAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX0dD
X1RIUkVTSD0yLAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX01BWF9TSVpFPTMsCjE0NDc0OiAgTkVU
X0lQVjZfUk9VVEVfR0NfTUlOX0lOVEVSVkFMPTQsCjE0NDc0OiAgTkVUX0lQVjZfUk9VVEVfR0Nf
VElNRU9VVD01LAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX0dDX0lOVEVSVkFMPTYsCjE0NDc0OiAg
TkVUX0lQVjZfUk9VVEVfR0NfRUxBU1RJQ0lUWT03LAoxNDQ3NDogIE5FVF9JUFY2X1JPVVRFX01U
VV9FWFBJUkVTPTgsCjE0NDc0OiAgTkVUX0lQVjZfUk9VVEVfTUlOX0FEVk1TUz05LAoxNDQ3NDog
IE5FVF9JUFY2X1JPVVRFX0dDX01JTl9JTlRFUlZBTF9NUz0xMAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogZW51bSB7CjE0NDc0OiAgTkVUX0lQVjZfRk9SV0FSRElORz0xLAoxNDQ3NDogIE5FVF9J
UFY2X0hPUF9MSU1JVD0yLAoxNDQ3NDogIE5FVF9JUFY2X01UVT0zLAoxNDQ3NDogIE5FVF9JUFY2
X0FDQ0VQVF9SQT00LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SRURJUkVDVFM9NSwKMTQ0NzQ6
ICBORVRfSVBWNl9BVVRPQ09ORj02LAoxNDQ3NDogIE5FVF9JUFY2X0RBRF9UUkFOU01JVFM9NywK
MTQ0NzQ6ICBORVRfSVBWNl9SVFJfU09MSUNJVFM9OCwKMTQ0NzQ6ICBORVRfSVBWNl9SVFJfU09M
SUNJVF9JTlRFUlZBTD05LAoxNDQ3NDogIE5FVF9JUFY2X1JUUl9TT0xJQ0lUX0RFTEFZPTEwLAox
NDQ3NDogIE5FVF9JUFY2X1VTRV9URU1QQUREUj0xMSwKMTQ0NzQ6ICBORVRfSVBWNl9URU1QX1ZB
TElEX0xGVD0xMiwKMTQ0NzQ6ICBORVRfSVBWNl9URU1QX1BSRUZFUkVEX0xGVD0xMywKMTQ0NzQ6
ICBORVRfSVBWNl9SRUdFTl9NQVhfUkVUUlk9MTQsCjE0NDc0OiAgTkVUX0lQVjZfTUFYX0RFU1lO
Q19GQUNUT1I9MTUsCjE0NDc0OiAgTkVUX0lQVjZfTUFYX0FERFJFU1NFUz0xNiwKMTQ0NzQ6ICBO
RVRfSVBWNl9GT1JDRV9NTERfVkVSU0lPTj0xNywKMTQ0NzQ6ICBORVRfSVBWNl9BQ0NFUFRfUkFf
REVGUlRSPTE4LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9QSU5GTz0xOSwKMTQ0NzQ6ICBO
RVRfSVBWNl9BQ0NFUFRfUkFfUlRSX1BSRUY9MjAsCjE0NDc0OiAgTkVUX0lQVjZfUlRSX1BST0JF
X0lOVEVSVkFMPTIxLAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9SVF9JTkZPX01BWF9QTEVO
PTIyLAoxNDQ3NDogIE5FVF9JUFY2X1BST1hZX05EUD0yMywKMTQ0NzQ6ICBORVRfSVBWNl9BQ0NF
UFRfU09VUkNFX1JPVVRFPTI1LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9GUk9NX0xPQ0FM
PTI2LAoxNDQ3NDogIE5FVF9JUFY2X0FDQ0VQVF9SQV9SVF9JTkZPX01JTl9QTEVOPTI3LAoxNDQ3
NDogIF9fTkVUX0lQVjZfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
ewoxNDQ3NDogIE5FVF9JUFY2X0lDTVBfUkFURUxJTUlUID0gMSwKMTQ0NzQ6ICBORVRfSVBWNl9J
Q01QX0VDSE9fSUdOT1JFX0FMTCA9IDIKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSB7CjE0NDc0OiAgTkVUX05FSUdIX01DQVNUX1NPTElDSVQ9MSwKMTQ0NzQ6ICBORVRfTkVJ
R0hfVUNBU1RfU09MSUNJVD0yLAoxNDQ3NDogIE5FVF9ORUlHSF9BUFBfU09MSUNJVD0zLAoxNDQ3
NDogIE5FVF9ORUlHSF9SRVRSQU5TX1RJTUU9NCwKMTQ0NzQ6ICBORVRfTkVJR0hfUkVBQ0hBQkxF
X1RJTUU9NSwKMTQ0NzQ6ICBORVRfTkVJR0hfREVMQVlfUFJPQkVfVElNRT02LAoxNDQ3NDogIE5F
VF9ORUlHSF9HQ19TVEFMRV9USU1FPTcsCjE0NDc0OiAgTkVUX05FSUdIX1VOUkVTX1FMRU49OCwK
MTQ0NzQ6ICBORVRfTkVJR0hfUFJPWFlfUUxFTj05LAoxNDQ3NDogIE5FVF9ORUlHSF9BTllDQVNU
X0RFTEFZPTEwLAoxNDQ3NDogIE5FVF9ORUlHSF9QUk9YWV9ERUxBWT0xMSwKMTQ0NzQ6ICBORVRf
TkVJR0hfTE9DS1RJTUU9MTIsCjE0NDc0OiAgTkVUX05FSUdIX0dDX0lOVEVSVkFMPTEzLAoxNDQ3
NDogIE5FVF9ORUlHSF9HQ19USFJFU0gxPTE0LAoxNDQ3NDogIE5FVF9ORUlHSF9HQ19USFJFU0gy
PTE1LAoxNDQ3NDogIE5FVF9ORUlHSF9HQ19USFJFU0gzPTE2LAoxNDQ3NDogIE5FVF9ORUlHSF9S
RVRSQU5TX1RJTUVfTVM9MTcsCjE0NDc0OiAgTkVUX05FSUdIX1JFQUNIQUJMRV9USU1FX01TPTE4
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfREND
UF9ERUZBVUxUPTEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3
NDogIE5FVF9JUFhfUFBST1BfQlJPQURDQVNUSU5HPTEsCjE0NDc0OiAgTkVUX0lQWF9GT1JXQVJE
SU5HPTIKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTkVU
X0xMQzI9MSwKMTQ0NzQ6ICBORVRfTExDX1NUQVRJT049MiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTkVUX0xMQzJfVElNRU9VVD0xLAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfTExDX1NUQVRJT05fQUNL
X1RJTUVPVVQ9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0
OiAgTkVUX0xMQzJfQUNLX1RJTUVPVVQ9MSwKMTQ0NzQ6ICBORVRfTExDMl9QX1RJTUVPVVQ9MiwK
MTQ0NzQ6ICBORVRfTExDMl9SRUpfVElNRU9VVD0zLAoxNDQ3NDogIE5FVF9MTEMyX0JVU1lfVElN
RU9VVD00LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBO
RVRfQVRBTEtfQUFSUF9FWFBJUllfVElNRT0xLAoxNDQ3NDogIE5FVF9BVEFMS19BQVJQX1RJQ0tf
VElNRT0yLAoxNDQ3NDogIE5FVF9BVEFMS19BQVJQX1JFVFJBTlNNSVRfTElNSVQ9MywKMTQ0NzQ6
ICBORVRfQVRBTEtfQUFSUF9SRVNPTFZFX1RJTUU9NAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9ORVRST01fREVGQVVMVF9QQVRIX1FV
QUxJVFk9MSwKMTQ0NzQ6ICBORVRfTkVUUk9NX09CU09MRVNDRU5DRV9DT1VOVF9JTklUSUFMSVNF
Uj0yLAoxNDQ3NDogIE5FVF9ORVRST01fTkVUV09SS19UVExfSU5JVElBTElTRVI9MywKMTQ0NzQ6
ICBORVRfTkVUUk9NX1RSQU5TUE9SVF9USU1FT1VUPTQsCjE0NDc0OiAgTkVUX05FVFJPTV9UUkFO
U1BPUlRfTUFYSU1VTV9UUklFUz01LAoxNDQ3NDogIE5FVF9ORVRST01fVFJBTlNQT1JUX0FDS05P
V0xFREdFX0RFTEFZPTYsCjE0NDc0OiAgTkVUX05FVFJPTV9UUkFOU1BPUlRfQlVTWV9ERUxBWT03
LAoxNDQ3NDogIE5FVF9ORVRST01fVFJBTlNQT1JUX1JFUVVFU1RFRF9XSU5ET1dfU0laRT04LAox
NDQ3NDogIE5FVF9ORVRST01fVFJBTlNQT1JUX05PX0FDVElWSVRZX1RJTUVPVVQ9OSwKMTQ0NzQ6
ICBORVRfTkVUUk9NX1JPVVRJTkdfQ09OVFJPTD0xMCwKMTQ0NzQ6ICBORVRfTkVUUk9NX0xJTktf
RkFJTFNfQ09VTlQ9MTEsCjE0NDc0OiAgTkVUX05FVFJPTV9SRVNFVD0xMgoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfQVgyNV9JUF9ERUZBVUxUX01P
REU9MSwKMTQ0NzQ6ICBORVRfQVgyNV9ERUZBVUxUX01PREU9MiwKMTQ0NzQ6ICBORVRfQVgyNV9C
QUNLT0ZGX1RZUEU9MywKMTQ0NzQ6ICBORVRfQVgyNV9DT05ORUNUX01PREU9NCwKMTQ0NzQ6ICBO
RVRfQVgyNV9TVEFOREFSRF9XSU5ET1c9NSwKMTQ0NzQ6ICBORVRfQVgyNV9FWFRFTkRFRF9XSU5E
T1c9NiwKMTQ0NzQ6ICBORVRfQVgyNV9UMV9USU1FT1VUPTcsCjE0NDc0OiAgTkVUX0FYMjVfVDJf
VElNRU9VVD04LAoxNDQ3NDogIE5FVF9BWDI1X1QzX1RJTUVPVVQ9OSwKMTQ0NzQ6ICBORVRfQVgy
NV9JRExFX1RJTUVPVVQ9MTAsCjE0NDc0OiAgTkVUX0FYMjVfTjI9MTEsCjE0NDc0OiAgTkVUX0FY
MjVfUEFDTEVOPTEyLAoxNDQ3NDogIE5FVF9BWDI1X1BST1RPQ09MPTEzLAoxNDQ3NDogIE5FVF9B
WDI1X0RBTUFfU0xBVkVfVElNRU9VVD0xNAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIHsKMTQ0NzQ6ICBORVRfUk9TRV9SRVNUQVJUX1JFUVVFU1RfVElNRU9VVD0xLAoxNDQ3
NDogIE5FVF9ST1NFX0NBTExfUkVRVUVTVF9USU1FT1VUPTIsCjE0NDc0OiAgTkVUX1JPU0VfUkVT
RVRfUkVRVUVTVF9USU1FT1VUPTMsCjE0NDc0OiAgTkVUX1JPU0VfQ0xFQVJfUkVRVUVTVF9USU1F
T1VUPTQsCjE0NDc0OiAgTkVUX1JPU0VfQUNLX0hPTERfQkFDS19USU1FT1VUPTUsCjE0NDc0OiAg
TkVUX1JPU0VfUk9VVElOR19DT05UUk9MPTYsCjE0NDc0OiAgTkVUX1JPU0VfTElOS19GQUlMX1RJ
TUVPVVQ9NywKMTQ0NzQ6ICBORVRfUk9TRV9NQVhfVkNTPTgsCjE0NDc0OiAgTkVUX1JPU0VfV0lO
RE9XX1NJWkU9OSwKMTQ0NzQ6ICBORVRfUk9TRV9OT19BQ1RJVklUWV9USU1FT1VUPTEwCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9YMjVfUkVTVEFS
VF9SRVFVRVNUX1RJTUVPVVQ9MSwKMTQ0NzQ6ICBORVRfWDI1X0NBTExfUkVRVUVTVF9USU1FT1VU
PTIsCjE0NDc0OiAgTkVUX1gyNV9SRVNFVF9SRVFVRVNUX1RJTUVPVVQ9MywKMTQ0NzQ6ICBORVRf
WDI1X0NMRUFSX1JFUVVFU1RfVElNRU9VVD00LAoxNDQ3NDogIE5FVF9YMjVfQUNLX0hPTERfQkFD
S19USU1FT1VUPTUsCjE0NDc0OiAgTkVUX1gyNV9GT1JXQVJEPTYKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZW51bQoxNDQ3NDogewoxNDQ3NDogIE5FVF9UUl9SSUZfVElNRU9VVD0x
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9ERUNO
RVRfTk9ERV9UWVBFID0gMSwKMTQ0NzQ6ICBORVRfREVDTkVUX05PREVfQUREUkVTUyA9IDIsCjE0
NDc0OiAgTkVUX0RFQ05FVF9OT0RFX05BTUUgPSAzLAoxNDQ3NDogIE5FVF9ERUNORVRfREVGQVVM
VF9ERVZJQ0UgPSA0LAoxNDQ3NDogIE5FVF9ERUNORVRfVElNRV9XQUlUID0gNSwKMTQ0NzQ6ICBO
RVRfREVDTkVUX0ROX0NPVU5UID0gNiwKMTQ0NzQ6ICBORVRfREVDTkVUX0RJX0NPVU5UID0gNywK
MTQ0NzQ6ICBORVRfREVDTkVUX0RSX0NPVU5UID0gOCwKMTQ0NzQ6ICBORVRfREVDTkVUX0RTVF9H
Q19JTlRFUlZBTCA9IDksCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GID0gMTAsCjE0NDc0OiAgTkVU
X0RFQ05FVF9OT19GQ19NQVhfQ1dORCA9IDExLAoxNDQ3NDogIE5FVF9ERUNORVRfTUVNID0gMTIs
CjE0NDc0OiAgTkVUX0RFQ05FVF9STUVNID0gMTMsCjE0NDc0OiAgTkVUX0RFQ05FVF9XTUVNID0g
MTQsCjE0NDc0OiAgTkVUX0RFQ05FVF9ERUJVR19MRVZFTCA9IDI1NQoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfTE9PUEJBQ0sg
PSAtMiwKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfRERDTVAgPSAtMywKMTQ0NzQ6ICBORVRfREVD
TkVUX0NPTkZfUFBQID0gLTQsCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX1gyNSA9IC01LAoxNDQ3
NDogIE5FVF9ERUNORVRfQ09ORl9HUkUgPSAtNiwKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfRVRI
RVIgPSAtNwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSB7CjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX0RFVl9QUklPUklUWSA9IDEsCjE0NDc0OiAg
TkVUX0RFQ05FVF9DT05GX0RFVl9UMSA9IDIsCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX0RFVl9U
MiA9IDMsCjE0NDc0OiAgTkVUX0RFQ05FVF9DT05GX0RFVl9UMyA9IDQsCjE0NDc0OiAgTkVUX0RF
Q05FVF9DT05GX0RFVl9GT1JXQVJESU5HID0gNSwKMTQ0NzQ6ICBORVRfREVDTkVUX0NPTkZfREVW
X0JMS1NJWkUgPSA2LAoxNDQ3NDogIE5FVF9ERUNORVRfQ09ORl9ERVZfU1RBVEUgPSA3CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5FVF9TQ1RQX1JUT19J
TklUSUFMID0gMSwKMTQ0NzQ6ICBORVRfU0NUUF9SVE9fTUlOID0gMiwKMTQ0NzQ6ICBORVRfU0NU
UF9SVE9fTUFYID0gMywKMTQ0NzQ6ICBORVRfU0NUUF9SVE9fQUxQSEEgPSA0LAoxNDQ3NDogIE5F
VF9TQ1RQX1JUT19CRVRBID0gNSwKMTQ0NzQ6ICBORVRfU0NUUF9WQUxJRF9DT09LSUVfTElGRSA9
IDYsCjE0NDc0OiAgTkVUX1NDVFBfQVNTT0NJQVRJT05fTUFYX1JFVFJBTlMgPSA3LAoxNDQ3NDog
IE5FVF9TQ1RQX1BBVEhfTUFYX1JFVFJBTlMgPSA4LAoxNDQ3NDogIE5FVF9TQ1RQX01BWF9JTklU
X1JFVFJBTlNNSVRTID0gOSwKMTQ0NzQ6ICBORVRfU0NUUF9IQl9JTlRFUlZBTCA9IDEwLAoxNDQ3
NDogIE5FVF9TQ1RQX1BSRVNFUlZFX0VOQUJMRSA9IDExLAoxNDQ3NDogIE5FVF9TQ1RQX01BWF9C
VVJTVCA9IDEyLAoxNDQ3NDogIE5FVF9TQ1RQX0FERElQX0VOQUJMRSA9IDEzLAoxNDQ3NDogIE5F
VF9TQ1RQX1BSU0NUUF9FTkFCTEUgPSAxNCwKMTQ0NzQ6ICBORVRfU0NUUF9TTkRCVUZfUE9MSUNZ
ID0gMTUsCjE0NDc0OiAgTkVUX1NDVFBfU0FDS19USU1FT1VUID0gMTYsCjE0NDc0OiAgTkVUX1ND
VFBfUkNWQlVGX1BPTElDWSA9IDE3LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
bnVtIHsKMTQ0NzQ6ICBORVRfQlJJREdFX05GX0NBTExfQVJQVEFCTEVTID0gMSwKMTQ0NzQ6ICBO
RVRfQlJJREdFX05GX0NBTExfSVBUQUJMRVMgPSAyLAoxNDQ3NDogIE5FVF9CUklER0VfTkZfQ0FM
TF9JUDZUQUJMRVMgPSAzLAoxNDQ3NDogIE5FVF9CUklER0VfTkZfRklMVEVSX1ZMQU5fVEFHR0VE
ID0gNCwKMTQ0NzQ6ICBORVRfQlJJREdFX05GX0ZJTFRFUl9QUFBPRV9UQUdHRUQgPSA1LAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0KMTQ0NzQ6IHsKMTQ0NzQ6
ICBGU19OUklOT0RFPTEsCjE0NDc0OiAgRlNfU1RBVElOT0RFPTIsCjE0NDc0OiAgRlNfTUFYSU5P
REU9MywKMTQ0NzQ6ICBGU19OUkRRVU9UPTQsCjE0NDc0OiAgRlNfTUFYRFFVT1Q9NSwKMTQ0NzQ6
ICBGU19OUkZJTEU9NiwKMTQ0NzQ6ICBGU19NQVhGSUxFPTcsCjE0NDc0OiAgRlNfREVOVFJZPTgs
CjE0NDc0OiAgRlNfTlJTVVBFUj05LAoxNDQ3NDogIEZTX01BWFNVUEVSPTEwLAoxNDQ3NDogIEZT
X09WRVJGTE9XVUlEPTExLAoxNDQ3NDogIEZTX09WRVJGTE9XR0lEPTEyLAoxNDQ3NDogIEZTX0xF
QVNFUz0xMywKMTQ0NzQ6ICBGU19ESVJfTk9USUZZPTE0LAoxNDQ3NDogIEZTX0xFQVNFX1RJTUU9
MTUsCjE0NDc0OiAgRlNfRFFTVEFUUz0xNiwKMTQ0NzQ6ICBGU19YRlM9MTcsCjE0NDc0OiAgRlNf
QUlPX05SPTE4LAoxNDQ3NDogIEZTX0FJT19NQVhfTlI9MTksCjE0NDc0OiAgRlNfSU5PVElGWT0y
MCwKMTQ0NzQ6ICBGU19PQ0ZTMj05ODgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0gewoxNDQ3NDogIEZTX0RRX0xPT0tVUFMgPSAxLAoxNDQ3NDogIEZTX0RRX0RST1BTID0g
MiwKMTQ0NzQ6ICBGU19EUV9SRUFEUyA9IDMsCjE0NDc0OiAgRlNfRFFfV1JJVEVTID0gNCwKMTQ0
NzQ6ICBGU19EUV9DQUNIRV9ISVRTID0gNSwKMTQ0NzQ6ICBGU19EUV9BTExPQ0FURUQgPSA2LAox
NDQ3NDogIEZTX0RRX0ZSRUUgPSA3LAoxNDQ3NDogIEZTX0RRX1NZTkNTID0gOCwKMTQ0NzQ6ICBG
U19EUV9XQVJOSU5HUyA9IDksCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBERVZfQ0RST009MSwKMTQ0NzQ6ICBERVZfSFdNT049
MiwKMTQ0NzQ6ICBERVZfUEFSUE9SVD0zLAoxNDQ3NDogIERFVl9SQUlEPTQsCjE0NDc0OiAgREVW
X01BQ19ISUQ9NSwKMTQ0NzQ6ICBERVZfU0NTST02LAoxNDQ3NDogIERFVl9JUE1JPTcsCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9DRFJPTV9JTkZP
PTEsCjE0NDc0OiAgREVWX0NEUk9NX0FVVE9DTE9TRT0yLAoxNDQ3NDogIERFVl9DRFJPTV9BVVRP
RUpFQ1Q9MywKMTQ0NzQ6ICBERVZfQ0RST01fREVCVUc9NCwKMTQ0NzQ6ICBERVZfQ0RST01fTE9D
Sz01LAoxNDQ3NDogIERFVl9DRFJPTV9DSEVDS19NRURJQT02CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9QQVJQT1JUX0RFRkFVTFQ9LTMKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVWX1JBSURfU1BFRURf
TElNSVRfTUlOPTEsCjE0NDc0OiAgREVWX1JBSURfU1BFRURfTElNSVRfTUFYPTIKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVWX1BBUlBPUlRfREVGQVVM
VF9USU1FU0xJQ0U9MSwKMTQ0NzQ6ICBERVZfUEFSUE9SVF9ERUZBVUxUX1NQSU5USU1FPTIKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVWX1BBUlBPUlRf
U1BJTlRJTUU9MSwKMTQ0NzQ6ICBERVZfUEFSUE9SVF9CQVNFX0FERFI9MiwKMTQ0NzQ6ICBERVZf
UEFSUE9SVF9JUlE9MywKMTQ0NzQ6ICBERVZfUEFSUE9SVF9ETUE9NCwKMTQ0NzQ6ICBERVZfUEFS
UE9SVF9NT0RFUz01LAoxNDQ3NDogIERFVl9QQVJQT1JUX0RFVklDRVM9NiwKMTQ0NzQ6ICBERVZf
UEFSUE9SVF9BVVRPUFJPQkU9MTYKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSB7CjE0NDc0OiAgREVWX1BBUlBPUlRfREVWSUNFU19BQ1RJVkU9LTMsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9QQVJQT1JUX0RFVklDRV9USU1F
U0xJQ0U9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAg
REVWX01BQ19ISURfS0VZQk9BUkRfU0VORFNfTElOVVhfS0VZQ09ERVM9MSwKMTQ0NzQ6ICBERVZf
TUFDX0hJRF9LRVlCT0FSRF9MT0NLX0tFWUNPREVTPTIsCjE0NDc0OiAgREVWX01BQ19ISURfTU9V
U0VfQlVUVE9OX0VNVUxBVElPTj0zLAoxNDQ3NDogIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTjJf
S0VZQ09ERT00LAoxNDQ3NDogIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTjNfS0VZQ09ERT01LAox
NDQ3NDogIERFVl9NQUNfSElEX0FEQl9NT1VTRV9TRU5EU19LRVlDT0RFUz02CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERFVl9TQ1NJX0xPR0dJTkdfTEVW
RUw9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgREVW
X0lQTUlfUE9XRVJPRkZfUE9XRVJDWUNMRT0xLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBlbnVtCjE0NDc0OiB7CjE0NDc0OiAgQUJJX0RFRkhBTkRMRVJfQ09GRj0xLAoxNDQ3NDog
IEFCSV9ERUZIQU5ETEVSX0VMRj0yLAoxNDQ3NDogIEFCSV9ERUZIQU5ETEVSX0xDQUxMNz0zLAox
NDQ3NDogIEFCSV9ERUZIQU5ETEVSX0xJQkNTTz00LAoxNDQ3NDogIEFCSV9UUkFDRT01LAoxNDQ3
NDogIEFCSV9GQUtFX1VUU05BTUU9NiwKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxICIuL2luY2x1ZGUv
bGludXgvc3lzY3RsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY29tcGxldGlv
bjsKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGU7CjE0NDc0OiBzdHJ1Y3QgbnNwcm94eTsKMTQ0NzQ6
IHN0cnVjdCBjdGxfdGFibGVfcm9vdDsKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGVfaGVhZGVyOwox
NDQ3NDogc3RydWN0IGN0bF9kaXI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gY29uc3QgaW50IHN5c2N0bF92YWxzW107CjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgaW50IHByb2NfaGFuZGxlciAoc3RydWN0IGN0bF90YWJsZSAqY3Rs
LCBpbnQgd3JpdGUsCjE0NDc0OiAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2Zm
X3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHByb2NfZG9zdHJpbmcoc3RydWN0
IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICop
OwoxNDQ3NDogZXh0ZXJuIGludCBwcm9jX2RvaW50dmVjKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50
LAoxNDQ3NDogICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgcHJvY19kb3VpbnR2ZWMoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICAgdm9p
ZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIGludCBwcm9jX2RvaW50dmVj
X21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKMTQ0NzQ6ICAgICB2b2lkICosIHNpemVf
dCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHByb2NfZG91aW50dmVjX21pbm1heChz
dHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAoxNDQ3NDogICAgICB2b2lkICpidWZm
ZXIsIHNpemVfdCAqbGVucCwKMTQ0NzQ6ICAgICAgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgcHJvY19kb2ludHZlY19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3
NDogICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHBy
b2NfZG9pbnR2ZWNfdXNlcmh6X2ppZmZpZXMoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0
OiAgICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBpbnQgcHJv
Y19kb2ludHZlY19tc19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAoxNDQ3NDogICAg
ICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHByb2Nf
ZG91bG9uZ3ZlY19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAgICAgICB2
b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CjE0NDc0OiBleHRlcm4gaW50IHByb2NfZG91bG9u
Z3ZlY19tc19qaWZmaWVzX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50LAoxNDQ3
NDogICAgICAgICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgcHJvY19kb19sYXJnZV9iaXRtYXAoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCjE0NDc0OiAg
ICAgdm9pZCAqLCBzaXplX3QgKiwgbG9mZl90ICopOwoxNDQ3NDogZXh0ZXJuIGludCBwcm9jX2Rv
X3N0YXRpY19rZXkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKMTQ0NzQ6ICAg
ICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAoxNDQ3NDogICAgICAgICAgbG9mZl90
ICpwcG9zKTsKMTQ0NzQ6ICMgMTA1ICIuL2luY2x1ZGUvbGludXgvc3lzY3RsLmgiCjE0NDc0OiBz
dHJ1Y3QgY3RsX3RhYmxlX3BvbGwgewoxNDQ3NDogIGF0b21pY190IGV2ZW50OwoxNDQ3NDogIHdh
aXRfcXVldWVfaGVhZF90IHdhaXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpwcm9j
X3N5c19wb2xsX2V2ZW50KHN0cnVjdCBjdGxfdGFibGVfcG9sbCAqcG9sbCkKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gKHZvaWQgKikodW5zaWduZWQgbG9uZylhdG9taWNfcmVhZCgmcG9sbC0+ZXZl
bnQpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjMgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKMTQ0
NzQ6IHN0cnVjdCBjdGxfdGFibGUgewoxNDQ3NDogIGNvbnN0IGNoYXIgKnByb2NuYW1lOwoxNDQ3
NDogIHZvaWQgKmRhdGE7CjE0NDc0OiAgaW50IG1heGxlbjsKMTQ0NzQ6ICB1bW9kZV90IG1vZGU7
CjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZSAqY2hpbGQ7CjE0NDc0OiAgcHJvY19oYW5kbGVyICpw
cm9jX2hhbmRsZXI7CjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZV9wb2xsICpwb2xsOwoxNDQ3NDog
IHZvaWQgKmV4dHJhMTsKMTQ0NzQ6ICB2b2lkICpleHRyYTI7CjE0NDc0OiB9IF9fYXR0cmlidXRl
X18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGN0bF9ub2Rl
IHsKMTQ0NzQ6ICBzdHJ1Y3QgcmJfbm9kZSBub2RlOwoxNDQ3NDogIHN0cnVjdCBjdGxfdGFibGVf
aGVhZGVyICpoZWFkZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGN0bF90YWJsZV9oZWFkZXIgewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0
IHsKMTQ0NzQ6ICAgIHN0cnVjdCBjdGxfdGFibGUgKmN0bF90YWJsZTsKMTQ0NzQ6ICAgIGludCB1
c2VkOwoxNDQ3NDogICAgaW50IGNvdW50OwoxNDQ3NDogICAgaW50IG5yZWc7CjE0NDc0OiAgIH07
CjE0NDc0OiAgIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIHN0
cnVjdCBjb21wbGV0aW9uICp1bnJlZ2lzdGVyaW5nOwoxNDQ3NDogIHN0cnVjdCBjdGxfdGFibGUg
KmN0bF90YWJsZV9hcmc7CjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZV9yb290ICpyb290OwoxNDQ3
NDogIHN0cnVjdCBjdGxfdGFibGVfc2V0ICpzZXQ7CjE0NDc0OiAgc3RydWN0IGN0bF9kaXIgKnBh
cmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX25vZGUgKm5vZGU7CjE0NDc0OiAgc3RydWN0IGhsaXN0
X2hlYWQgaW5vZGVzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGN0bF9kaXIgewox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgaGVhZGVyOwoxNDQ3NDogIHN0
cnVjdCByYl9yb290IHJvb3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3RsX3Rh
YmxlX3NldCB7CjE0NDc0OiAgaW50ICgqaXNfc2Vlbikoc3RydWN0IGN0bF90YWJsZV9zZXQgKik7
CjE0NDc0OiAgc3RydWN0IGN0bF9kaXIgZGlyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGN0bF90YWJsZV9yb290IHsKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCBkZWZhdWx0
X3NldDsKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCAqKCpsb29rdXApKHN0cnVjdCBjdGxf
dGFibGVfcm9vdCAqcm9vdCk7CjE0NDc0OiAgdm9pZCAoKnNldF9vd25lcnNoaXApKHN0cnVjdCBj
dGxfdGFibGVfaGVhZGVyICpoZWFkLAoxNDQ3NDogICAgICAgICAgc3RydWN0IGN0bF90YWJsZSAq
dGFibGUsCjE0NDc0OiAgICAgICAgICBrdWlkX3QgKnVpZCwga2dpZF90ICpnaWQpOwoxNDQ3NDog
IGludCAoKnBlcm1pc3Npb25zKShzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqaGVhZCwgc3RydWN0
IGN0bF90YWJsZSAqdGFibGUpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgY3RsX3BhdGggewoxNDQ3NDogIGNvbnN0IGNoYXIgKnByb2NuYW1lOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcHJvY19zeXNfcG9sbF9ub3RpZnkoc3Ry
dWN0IGN0bF90YWJsZV9wb2xsICpwb2xsKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0
dXBfc3lzY3RsX3NldChzdHJ1Y3QgY3RsX3RhYmxlX3NldCAqcCwKMTQ0NzQ6ICBzdHJ1Y3QgY3Rs
X3RhYmxlX3Jvb3QgKnJvb3QsCjE0NDc0OiAgaW50ICgqaXNfc2Vlbikoc3RydWN0IGN0bF90YWJs
ZV9zZXQgKikpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgcmV0aXJlX3N5c2N0bF9zZXQoc3RydWN0IGN0
bF90YWJsZV9zZXQgKnNldCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGVfaGVhZGVy
ICpfX3JlZ2lzdGVyX3N5c2N0bF90YWJsZSgKMTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCAq
c2V0LAoxNDQ3NDogIGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKTsK
MTQ0NzQ6IHN0cnVjdCBjdGxfdGFibGVfaGVhZGVyICpfX3JlZ2lzdGVyX3N5c2N0bF9wYXRocygK
MTQ0NzQ6ICBzdHJ1Y3QgY3RsX3RhYmxlX3NldCAqc2V0LAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBj
dGxfcGF0aCAqcGF0aCwgc3RydWN0IGN0bF90YWJsZSAqdGFibGUpOwoxNDQ3NDogc3RydWN0IGN0
bF90YWJsZV9oZWFkZXIgKnJlZ2lzdGVyX3N5c2N0bChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qg
Y3RsX3RhYmxlICp0YWJsZSk7CjE0NDc0OiBzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqcmVnaXN0
ZXJfc3lzY3RsX3RhYmxlKHN0cnVjdCBjdGxfdGFibGUgKiB0YWJsZSk7CjE0NDc0OiBzdHJ1Y3Qg
Y3RsX3RhYmxlX2hlYWRlciAqcmVnaXN0ZXJfc3lzY3RsX3BhdGhzKGNvbnN0IHN0cnVjdCBjdGxf
cGF0aCAqcGF0aCwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCB1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShzdHJ1Y3QgY3RsX3RhYmxlX2hl
YWRlciAqIHRhYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBzeXNjdGxfaW5pdCh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBjdGxfdGFibGUgc3lzY3RsX21vdW50X3Bv
aW50W107CjE0NDc0OiAjIDI0MSAiLi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oIgoxNDQ3NDogaW50
IHN5c2N0bF9tYXhfdGhyZWFkcyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAox
NDQ3NDogICAgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7
CjE0NDc0OiAjIDE4ICIuL2luY2x1ZGUvbGludXgva2V5LmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9hc3NvY19hcnJheS5oIiAxCjE0NDc0OiAjIDIyICIu
L2luY2x1ZGUvbGludXgvYXNzb2NfYXJyYXkuaCIKMTQ0NzQ6IHN0cnVjdCBhc3NvY19hcnJheSB7
CjE0NDc0OiAgc3RydWN0IGFzc29jX2FycmF5X3B0ciAqcm9vdDsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIG5yX2xlYXZlc19vbl90cmVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGFzc29jX2FycmF5X29wcyB7CjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nICgqZ2V0X2tleV9jaHVuaykoY29uc3Qgdm9pZCAqaW5kZXhfa2V5LCBpbnQg
bGV2ZWwpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nICgqZ2V0X29iamVj
dF9rZXlfY2h1bmspKGNvbnN0IHZvaWQgKm9iamVjdCwgaW50IGxldmVsKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgYm9vbCAoKmNvbXBhcmVfb2JqZWN0KShjb25zdCB2b2lkICpvYmplY3QsIGNv
bnN0IHZvaWQgKmluZGV4X2tleSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBpbnQgKCpkaWZmX29iamVjdHMpKGNvbnN0IHZvaWQgKm9iamVjdCwgY29uc3Qgdm9pZCAq
aW5kZXhfa2V5KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmZyZWVfb2JqZWN0KSh2
b2lkICpvYmplY3QpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGFzc29jX2FycmF5X2VkaXQ7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXNzb2Nf
YXJyYXlfaW5pdChzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5KQoxNDQ3NDogewoxNDQ3NDogIGFy
cmF5LT5yb290ID0gKCh2b2lkICopMCk7CjE0NDc0OiAgYXJyYXktPm5yX2xlYXZlc19vbl90cmVl
ID0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBhc3NvY19hcnJheV9pdGVy
YXRlKGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAgICAgICAgaW50
ICgqaXRlcmF0b3IpKGNvbnN0IHZvaWQgKm9iamVjdCwKMTQ0NzQ6ICAgICAgICAgICAgIHZvaWQg
Kml0ZXJhdG9yX2RhdGEpLAoxNDQ3NDogICAgICAgICAgIHZvaWQgKml0ZXJhdG9yX2RhdGEpOwox
NDQ3NDogZXh0ZXJuIHZvaWQgKmFzc29jX2FycmF5X2ZpbmQoY29uc3Qgc3RydWN0IGFzc29jX2Fy
cmF5ICphcnJheSwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMg
Km9wcywKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHZvaWQgKmluZGV4X2tleSk7CjE0NDc0OiBleHRl
cm4gdm9pZCBhc3NvY19hcnJheV9kZXN0cm95KHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0
NDc0OiAgICAgY29uc3Qgc3RydWN0IGFzc29jX2FycmF5X29wcyAqb3BzKTsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqYXNzb2NfYXJyYXlfaW5zZXJ0KHN0cnVjdCBhc3Nv
Y19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlf
b3BzICpvcHMsCjE0NDc0OiAgICAgICAgICBjb25zdCB2b2lkICppbmRleF9rZXksCjE0NDc0OiAg
ICAgICAgICB2b2lkICpvYmplY3QpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgYXNzb2NfYXJyYXlfaW5z
ZXJ0X3NldF9vYmplY3Qoc3RydWN0IGFzc29jX2FycmF5X2VkaXQgKmVkaXQsCjE0NDc0OiAgICAg
ICAgdm9pZCAqb2JqZWN0KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAq
YXNzb2NfYXJyYXlfZGVsZXRlKHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMsCjE0NDc0OiAgICAgICAgICBj
b25zdCB2b2lkICppbmRleF9rZXkpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBhc3NvY19hcnJheV9l
ZGl0ICphc3NvY19hcnJheV9jbGVhcihzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5LAoxNDQ3NDog
ICAgICAgICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMpOwoxNDQ3NDogZXh0ZXJu
IHZvaWQgYXNzb2NfYXJyYXlfYXBwbHlfZWRpdChzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqZWRp
dCk7CjE0NDc0OiBleHRlcm4gdm9pZCBhc3NvY19hcnJheV9jYW5jZWxfZWRpdChzdHJ1Y3QgYXNz
b2NfYXJyYXlfZWRpdCAqZWRpdCk7CjE0NDc0OiBleHRlcm4gaW50IGFzc29jX2FycmF5X2djKHN0
cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19h
cnJheV9vcHMgKm9wcywKMTQ0NzQ6ICAgICAgYm9vbCAoKml0ZXJhdG9yKSh2b2lkICpvYmplY3Qs
IHZvaWQgKml0ZXJhdG9yX2RhdGEpLAoxNDQ3NDogICAgICB2b2lkICppdGVyYXRvcl9kYXRhKTsK
MTQ0NzQ6ICMgMjEgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIGludDMy
X3Qga2V5X3NlcmlhbF90OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdWludDMyX3Qg
a2V5X3Blcm1fdDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtleTsKMTQ0NzQ6IHN0cnVjdCBuZXQ7
CjE0NDc0OiAjIDc0ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBzdHJ1Y3Qgc2VxX2Zp
bGU7CjE0NDc0OiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3Qgc2lnbmFsX3N0cnVj
dDsKMTQ0NzQ6IHN0cnVjdCBjcmVkOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2V5X3R5cGU7CjE0
NDc0OiBzdHJ1Y3Qga2V5X293bmVyOwoxNDQ3NDogc3RydWN0IGtleV90YWc7CjE0NDc0OiBzdHJ1
Y3Qga2V5cmluZ19saXN0OwoxNDQ3NDogc3RydWN0IGtleXJpbmdfbmFtZTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGtleV90YWcgewoxNDQ3NDogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKMTQ0
NzQ6ICByZWZjb3VudF90IHVzYWdlOwoxNDQ3NDogIGJvb2wgcmVtb3ZlZDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrZXlyaW5nX2luZGV4X2tleSB7CjE0NDc0OiAKMTQ0NzQ6ICB1
bnNpZ25lZCBsb25nIGhhc2g7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3
NDogCjE0NDc0OiAgICB1MTYgZGVzY19sZW47CjE0NDc0OiAgICBjaGFyIGRlc2Nbc2l6ZW9mKGxv
bmcpIC0gMl07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgfTsKMTQ0
NzQ6ICAgdW5zaWduZWQgbG9uZyB4OwoxNDQ3NDogIH07CjE0NDc0OiAgc3RydWN0IGtleV90eXBl
ICp0eXBlOwoxNDQ3NDogIHN0cnVjdCBrZXlfdGFnICpkb21haW5fdGFnOwoxNDQ3NDogIGNvbnN0
IGNoYXIgKmRlc2NyaXB0aW9uOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24ga2V5X3Bh
eWxvYWQgewoxNDQ3NDogIHZvaWQgKnJjdV9kYXRhMDsKMTQ0NzQ6ICB2b2lkICpkYXRhWzRdOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMTMwICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCBfX2tleV9yZWZlcmVuY2Vfd2l0aF9hdHRyaWJ1dGVzICprZXlfcmVmX3Q7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGtleV9yZWZfdCBtYWtlX2tleV9yZWYoY29uc3Qgc3RydWN0IGtleSAqa2V5
LAoxNDQ3NDogICAgICAgICAgYm9vbCBwb3NzZXNzaW9uKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biAoa2V5X3JlZl90KSAoKHVuc2lnbmVkIGxvbmcpIGtleSB8IHBvc3Nlc3Npb24pOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2V5ICprZXlfcmVmX3RvX3B0cihjb25zdCBrZXlfcmVm
X3Qga2V5X3JlZikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHN0cnVjdCBrZXkgKikgKCh1bnNp
Z25lZCBsb25nKSBrZXlfcmVmICYgfjFVTCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
aXNfa2V5X3Bvc3Nlc3NlZChjb25zdCBrZXlfcmVmX3Qga2V5X3JlZikKMTQ0NzQ6IHsKMTQ0NzQ6
ICByZXR1cm4gKHVuc2lnbmVkIGxvbmcpIGtleV9yZWYgJiAxVUw7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHR5cGVkZWYgaW50ICgqa2V5X3Jlc3RyaWN0X2xpbmtfZnVuY190KShzdHJ1Y3Qga2V5
ICpkZXN0X2tleXJpbmcsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwK
MTQ0NzQ6ICAgICAgY29uc3QgdW5pb24ga2V5X3BheWxvYWQgKnBheWxvYWQsCjE0NDc0OiAgICAg
IHN0cnVjdCBrZXkgKnJlc3RyaWN0aW9uX2tleSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrZXlf
cmVzdHJpY3Rpb24gewoxNDQ3NDogIGtleV9yZXN0cmljdF9saW5rX2Z1bmNfdCBjaGVjazsKMTQ0
NzQ6ICBzdHJ1Y3Qga2V5ICprZXk7CjE0NDc0OiAgc3RydWN0IGtleV90eXBlICprZXl0eXBlOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBrZXlfc3RhdGUgewoxNDQ3NDogIEtFWV9JU19V
TklOU1RBTlRJQVRFRCwKMTQ0NzQ6ICBLRVlfSVNfUE9TSVRJVkUsCjE0NDc0OiB9OwoxNDQ3NDog
IyAxNzIgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKMTQ0NzQ6IHN0cnVjdCBrZXkgewoxNDQ3NDog
IHJlZmNvdW50X3QgdXNhZ2U7CjE0NDc0OiAga2V5X3NlcmlhbF90IHNlcmlhbDsKMTQ0NzQ6ICB1
bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBsaXN0X2hlYWQgZ3JhdmV5YXJkX2xpbms7CjE0NDc0OiAg
IHN0cnVjdCByYl9ub2RlIHNlcmlhbF9ub2RlOwoxNDQ3NDogIH07CjE0NDc0OiAgc3RydWN0IHJ3
X3NlbWFwaG9yZSBzZW07CjE0NDc0OiAgc3RydWN0IGtleV91c2VyICp1c2VyOwoxNDQ3NDogIHZv
aWQgKnNlY3VyaXR5OwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgdGltZTY0X3QgZXhwaXJ5Owox
NDQ3NDogICB0aW1lNjRfdCByZXZva2VkX2F0OwoxNDQ3NDogIH07CjE0NDc0OiAgdGltZTY0X3Qg
bGFzdF91c2VkX2F0OwoxNDQ3NDogIGt1aWRfdCB1aWQ7CjE0NDc0OiAga2dpZF90IGdpZDsKMTQ0
NzQ6ICBrZXlfcGVybV90IHBlcm07CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgcXVvdGFsZW47CjE0
NDc0OiAgdW5zaWduZWQgc2hvcnQgZGF0YWxlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBzaG9ydCBzdGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGZsYWdzOwoxNDQ3NDogIyAyMTkgIi4vaW5j
bHVkZS9saW51eC9rZXkuaCIKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBrZXlyaW5n
X2luZGV4X2tleSBpbmRleF9rZXk7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAgICB1bnNpZ25l
ZCBsb25nIGhhc2g7CjE0NDc0OiAgICB1bnNpZ25lZCBsb25nIGxlbl9kZXNjOwoxNDQ3NDogICAg
c3RydWN0IGtleV90eXBlICp0eXBlOwoxNDQ3NDogICAgc3RydWN0IGtleV90YWcgKmRvbWFpbl90
YWc7CjE0NDc0OiAgICBjaGFyICpkZXNjcmlwdGlvbjsKMTQ0NzQ6ICAgfTsKMTQ0NzQ6ICB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0
NDc0OiAgIHVuaW9uIGtleV9wYXlsb2FkIHBheWxvYWQ7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0
OiAKMTQ0NzQ6ICAgIHN0cnVjdCBsaXN0X2hlYWQgbmFtZV9saW5rOwoxNDQ3NDogICAgc3RydWN0
IGFzc29jX2FycmF5IGtleXM7CjE0NDc0OiAgIH07CjE0NDc0OiAgfTsKMTQ0NzQ6ICMgMjU0ICIu
L2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiAgc3RydWN0IGtleV9yZXN0cmljdGlvbiAqcmVz
dHJpY3RfbGluazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2V5ICpr
ZXlfYWxsb2Moc3RydWN0IGtleV90eXBlICp0eXBlLAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFy
ICpkZXNjLAoxNDQ3NDogICAgICAgICBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAoxNDQ3NDogICAg
ICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKMTQ0NzQ6ICAgICAgICAga2V5X3Blcm1fdCBw
ZXJtLAoxNDQ3NDogICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAoxNDQ3NDogICAgICAgICBz
dHJ1Y3Qga2V5X3Jlc3RyaWN0aW9uICpyZXN0cmljdF9saW5rKTsKMTQ0NzQ6ICMgMjczICIuL2lu
Y2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfcmV2b2tlKHN0cnVjdCBr
ZXkgKmtleSk7CjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfaW52YWxpZGF0ZShzdHJ1Y3Qga2V5ICpr
ZXkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2V5X3B1dChzdHJ1Y3Qga2V5ICprZXkpOwoxNDQ3NDog
ZXh0ZXJuIGJvb2wga2V5X3B1dF90YWcoc3RydWN0IGtleV90YWcgKnRhZyk7CjE0NDc0OiBleHRl
cm4gdm9pZCBrZXlfcmVtb3ZlX2RvbWFpbihzdHJ1Y3Qga2V5X3RhZyAqZG9tYWluX3RhZyk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHN0cnVjdCBrZXkgKl9fa2V5X2dldChzdHJ1Y3Qga2V5ICprZXkpCjE0NDc0
OiB7CjE0NDc0OiAgcmVmY291bnRfaW5jKCZrZXktPnVzYWdlKTsKMTQ0NzQ6ICByZXR1cm4ga2V5
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2V5ICprZXlfZ2V0KHN0cnVjdCBrZXkg
KmtleSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2V5ID8gX19rZXlfZ2V0KGtleSkgOiBrZXk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2V5X3JlZl9wdXQoa2V5X3JlZl90IGtleV9y
ZWYpCjE0NDc0OiB7CjE0NDc0OiAga2V5X3B1dChrZXlfcmVmX3RvX3B0cihrZXlfcmVmKSk7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV90YWco
c3RydWN0IGtleV90eXBlICp0eXBlLAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0
aW9uLAoxNDQ3NDogICAgICAgIHN0cnVjdCBrZXlfdGFnICpkb21haW5fdGFnLAoxNDQ3NDogICAg
ICAgIGNvbnN0IGNoYXIgKmNhbGxvdXRfaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3Qga2V5ICpyZXF1ZXN0X2tleV9yY3Uoc3RydWN0IGtleV90eXBlICp0eXBlLAoxNDQ3NDogICAg
ICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAoxNDQ3NDogICAgICAgIHN0cnVjdCBrZXlfdGFn
ICpkb21haW5fdGFnKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrZXkgKnJlcXVlc3Rf
a2V5X3dpdGhfYXV4ZGF0YShzdHJ1Y3Qga2V5X3R5cGUgKnR5cGUsCjE0NDc0OiAgICAgICAgICBj
b25zdCBjaGFyICpkZXNjcmlwdGlvbiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBrZXlfdGFnICpk
b21haW5fdGFnLAoxNDQ3NDogICAgICAgICAgY29uc3Qgdm9pZCAqY2FsbG91dF9pbmZvLAoxNDQ3
NDogICAgICAgICAgc2l6ZV90IGNhbGxvdXRfbGVuLAoxNDQ3NDogICAgICAgICAgdm9pZCAqYXV4
KTsKMTQ0NzQ6ICMgMzE5ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2V5
ICpyZXF1ZXN0X2tleShzdHJ1Y3Qga2V5X3R5cGUgKnR5cGUsCjE0NDc0OiAgICAgICAgICAgY29u
c3QgY2hhciAqZGVzY3JpcHRpb24sCjE0NDc0OiAgICAgICAgICAgY29uc3QgY2hhciAqY2FsbG91
dF9pbmZvKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiByZXF1ZXN0X2tleV90YWcodHlwZSwgZGVz
Y3JpcHRpb24sICgodm9pZCAqKTApLCBjYWxsb3V0X2luZm8pOwoxNDQ3NDogfQoxNDQ3NDogIyAz
NTggIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKMTQ0NzQ6IGV4dGVybiBpbnQgd2FpdF9mb3Jfa2V5
X2NvbnN0cnVjdGlvbihzdHJ1Y3Qga2V5ICprZXksIGJvb2wgaW50cik7CjE0NDc0OiAKMTQ0NzQ6
IGV4dGVybiBpbnQga2V5X3ZhbGlkYXRlKGNvbnN0IHN0cnVjdCBrZXkgKmtleSk7CjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiBrZXlfcmVmX3Qga2V5X2NyZWF0ZV9vcl91cGRhdGUoa2V5X3JlZl90IGtl
eXJpbmcsCjE0NDc0OiAgICAgICAgICAgY29uc3QgY2hhciAqdHlwZSwKMTQ0NzQ6ICAgICAgICAg
ICBjb25zdCBjaGFyICpkZXNjcmlwdGlvbiwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCB2b2lkICpw
YXlsb2FkLAoxNDQ3NDogICAgICAgICAgIHNpemVfdCBwbGVuLAoxNDQ3NDogICAgICAgICAgIGtl
eV9wZXJtX3QgcGVybSwKMTQ0NzQ6ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBrZXlfdXBkYXRlKGtleV9yZWZfdCBrZXksCjE0NDc0OiAg
ICAgICAgIGNvbnN0IHZvaWQgKnBheWxvYWQsCjE0NDc0OiAgICAgICAgIHNpemVfdCBwbGVuKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBrZXlfbGluayhzdHJ1Y3Qga2V5ICprZXlyaW5nLAox
NDQ3NDogICAgICAgc3RydWN0IGtleSAqa2V5KTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBr
ZXlfbW92ZShzdHJ1Y3Qga2V5ICprZXksCjE0NDc0OiAgICAgICBzdHJ1Y3Qga2V5ICpmcm9tX2tl
eXJpbmcsCjE0NDc0OiAgICAgICBzdHJ1Y3Qga2V5ICp0b19rZXlyaW5nLAoxNDQ3NDogICAgICAg
dW5zaWduZWQgaW50IGZsYWdzKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBrZXlfdW5saW5r
KHN0cnVjdCBrZXkgKmtleXJpbmcsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBrZXkgKmtleSk7CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2V5ICprZXlyaW5nX2FsbG9jKGNvbnN0IGNoYXIg
KmRlc2NyaXB0aW9uLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAoxNDQ3NDogICAgICBjb25zdCBz
dHJ1Y3QgY3JlZCAqY3JlZCwKMTQ0NzQ6ICAgICAga2V5X3Blcm1fdCBwZXJtLAoxNDQ3NDogICAg
ICB1bnNpZ25lZCBsb25nIGZsYWdzLAoxNDQ3NDogICAgICBzdHJ1Y3Qga2V5X3Jlc3RyaWN0aW9u
ICpyZXN0cmljdF9saW5rLAoxNDQ3NDogICAgICBzdHJ1Y3Qga2V5ICpkZXN0KTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCByZXN0cmljdF9saW5rX3JlamVjdChzdHJ1Y3Qga2V5ICprZXlyaW5n
LAoxNDQ3NDogICAgIGNvbnN0IHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKMTQ0NzQ6ICAgICBjb25z
dCB1bmlvbiBrZXlfcGF5bG9hZCAqcGF5bG9hZCwKMTQ0NzQ6ICAgICBzdHJ1Y3Qga2V5ICpyZXN0
cmljdGlvbl9rZXkpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGtleXJpbmdfY2xlYXIoc3Ry
dWN0IGtleSAqa2V5cmluZyk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBrZXlfcmVmX3Qga2V5cmlu
Z19zZWFyY2goa2V5X3JlZl90IGtleXJpbmcsCjE0NDc0OiAgICAgc3RydWN0IGtleV90eXBlICp0
eXBlLAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAoxNDQ3NDogICAgIGJvb2wg
cmVjdXJzZSk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQga2V5cmluZ19hZGRfa2V5KHN0cnVj
dCBrZXkgKmtleXJpbmcsCjE0NDc0OiAgICAgICBzdHJ1Y3Qga2V5ICprZXkpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IGtleXJpbmdfcmVzdHJpY3Qoa2V5X3JlZl90IGtleXJpbmcsIGNvbnN0
IGNoYXIgKnR5cGUsCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqcmVzdHJpY3Rpb24pOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGtleSAqa2V5X2xvb2t1cChrZXlfc2VyaWFsX3QgaWQp
OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBrZXlfc2VyaWFsX3Qga2V5X3NlcmlhbChjb25zdCBzdHJ1Y3Qga2V5
ICprZXkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtleSA/IGtleS0+c2VyaWFsIDogMDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga2V5X3NldF90aW1lb3V0KHN0cnVjdCBr
ZXkgKiwgdW5zaWduZWQpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4ga2V5X3JlZl90IGxvb2t1cF91
c2VyX2tleShrZXlfc2VyaWFsX3QgaWQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCjE0NDc0OiAgICAg
IGtleV9wZXJtX3QgcGVybSk7CjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfZnJlZV91c2VyX25zKHN0
cnVjdCB1c2VyX25hbWVzcGFjZSAqKTsKMTQ0NzQ6ICMgNDM0ICIuL2luY2x1ZGUvbGludXgva2V5
LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzaG9ydCBrZXlfcmVhZF9zdGF0ZShjb25zdCBzdHJ1Y3Qga2V5ICprZXkpCjE0
NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gKHsgdHlwZW9mKComa2V5LT5zdGF0ZSkgX19f
cDEgPSAoeyB1bmlvbiB7IHR5cGVvZigqJmtleS0+c3RhdGUpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKiZrZXktPnN0YXRlKSwgX191Ll9fYywg
c2l6ZW9mKComa2V5LT5zdGF0ZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCom
a2V5LT5zdGF0ZSksIF9fdS5fX2MsIHNpemVvZigqJmtleS0+c3RhdGUpKTsgZG8geyB9IHdoaWxl
ICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF80Mzcodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNp
emVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiZrZXkt
PnN0YXRlKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComa2V5LT5zdGF0ZSkgPT0gc2l6ZW9m
KHNob3J0KSB8fCBzaXplb2YoKiZrZXktPnN0YXRlKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2Yo
KiZrZXktPnN0YXRlKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNDM3
KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyBf
X19wMTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAjIDQ0NyAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBrZXlfaXNfcG9zaXRpdmUoY29uc3Qgc3RydWN0IGtleSAqa2V5KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBrZXlfcmVhZF9zdGF0ZShrZXkpID09IEtFWV9JU19QT1NJVElWRTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrZXlfaXNfbmVnYXRpdmUoY29uc3Qgc3RydWN0
IGtleSAqa2V5KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXlfcmVhZF9zdGF0ZShrZXkpIDwg
MDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNDcwICIuL2luY2x1ZGUvbGludXgva2V5LmgiCjE0NDc0OiBl
eHRlcm4gc3RydWN0IGN0bF90YWJsZSBrZXlfc3lzY3Rsc1tdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IGluc3RhbGxfdGhyZWFkX2tleXJpbmdfdG9f
Y3JlZChzdHJ1Y3QgY3JlZCAqY3JlZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBrZXlfZnN1aWRfY2hh
bmdlZChzdHJ1Y3QgY3JlZCAqbmV3X2NyZWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2V5X2ZzZ2lk
X2NoYW5nZWQoc3RydWN0IGNyZWQgKm5ld19jcmVkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGtleV9p
bml0KHZvaWQpOwoxNDQ3NDogIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMgoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQvdXNlci5o
IiAxCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L3JhdGVsaW1pdC5oIiAxCjE0NDc0OiAjIDE1
ICIuL2luY2x1ZGUvbGludXgvcmF0ZWxpbWl0LmgiCjE0NDc0OiBzdHJ1Y3QgcmF0ZWxpbWl0X3N0
YXRlIHsKMTQ0NzQ6ICByYXdfc3BpbmxvY2tfdCBsb2NrOwoxNDQ3NDogCjE0NDc0OiAgaW50IGlu
dGVydmFsOwoxNDQ3NDogIGludCBidXJzdDsKMTQ0NzQ6ICBpbnQgcHJpbnRlZDsKMTQ0NzQ6ICBp
bnQgbWlzc2VkOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgYmVnaW47CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDQwICIuL2luY2x1ZGUvbGludXgvcmF0ZWxp
bWl0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHJhdGVsaW1pdF9zdGF0ZV9pbml0KHN0cnVjdCByYXRlbGltaXRf
c3RhdGUgKnJzLAoxNDQ3NDogICAgICBpbnQgaW50ZXJ2YWwsIGludCBidXJzdCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBtZW1zZXQocnMsIDAsIHNpemVvZigqcnMpKTsKMTQ0NzQ6IAoxNDQ3NDogIGRvIHsg
KigmcnMtPmxvY2spID0gKHJhd19zcGlubG9ja190KSB7IC5yYXdfbG9jayA9IHsgeyAudmFsID0g
eyAoMCkgfSB9IH0sIH07IH0gd2hpbGUgKDApOwoxNDQ3NDogIHJzLT5pbnRlcnZhbCA9IGludGVy
dmFsOwoxNDQ3NDogIHJzLT5idXJzdCA9IGJ1cnN0OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJhdGVsaW1pdF9kZWZhdWx0X2luaXQoc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSAqcnMpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHJhdGVsaW1pdF9zdGF0ZV9pbml0KHJzLCAoNSAqIDI1MCks
CjE0NDc0OiAgICAgIDEwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYXRlbGltaXRf
c3RhdGVfZXhpdChzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycykKMTQ0NzQ6IHsKMTQ0NzQ6ICBp
ZiAoIShycy0+ZmxhZ3MgJiAoKCgoMVVMKSkpIDw8ICgwKSkpKQoxNDQ3NDogICByZXR1cm47CjE0
NDc0OiAKMTQ0NzQ6ICBpZiAocnMtPm1pc3NlZCkgewoxNDQ3NDogICBwcmludGsoIlwwMDEiICI0
IiAiJXM6ICVkIG91dHB1dCBsaW5lcyBzdXBwcmVzc2VkIGR1ZSB0byByYXRlbGltaXRpbmdcbiIs
IGdldF9jdXJyZW50KCktPmNvbW0sIHJzLT5taXNzZWQpCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKMTQ0NzQ6ICAgcnMtPm1pc3NlZCA9IDA7CjE0NDc0OiAgfQoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkCjE0NDc0OiByYXRlbGltaXRfc2V0X2ZsYWdzKHN0cnVjdCBy
YXRlbGltaXRfc3RhdGUgKnJzLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoxNDQ3NDogewoxNDQ3NDog
IHJzLT5mbGFncyA9IGZsYWdzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0
IHJhdGVsaW1pdF9zdGF0ZSBwcmludGtfcmF0ZWxpbWl0X3N0YXRlOwoxNDQ3NDogCjE0NDc0OiBl
eHRlcm4gaW50IF9fX3JhdGVsaW1pdChzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycywgY29uc3Qg
Y2hhciAqZnVuYyk7CjE0NDc0OiAjIDkgIi4vaW5jbHVkZS9saW51eC9zY2hlZC91c2VyLmgiIDIK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHVzZXJfc3RydWN0
IHsKMTQ0NzQ6ICByZWZjb3VudF90IF9fY291bnQ7CjE0NDc0OiAgYXRvbWljX3QgcHJvY2Vzc2Vz
OwoxNDQ3NDogIGF0b21pY190IHNpZ3BlbmRpbmc7CjE0NDc0OiAKMTQ0NzQ6ICBhdG9taWNfdCBm
YW5vdGlmeV9saXN0ZW5lcnM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGF0b21pY19sb25nX3Qg
ZXBvbGxfd2F0Y2hlczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIG1xX2J5dGVzOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb2NrZWRfc2htOwox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgdW5peF9pbmZsaWdodDsKMTQ0NzQ6ICBhdG9taWNfbG9uZ190
IHBpcGVfYnVmczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGhsaXN0X25vZGUgdWlk
aGFzaF9ub2RlOwoxNDQ3NDogIGt1aWRfdCB1aWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgYXRvbWljX2xvbmdfdCBsb2NrZWRfdm07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSByYXRlbGltaXQ7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gaW50IHVpZHNfc3lzZnNfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHN0cnVjdCB1c2VyX3N0cnVjdCAqZmluZF91c2VyKGt1aWRfdCk7CjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Qgcm9vdF91c2VyOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHVzZXJfc3RydWN0ICogYWxsb2Nf
dWlkKGt1aWRfdCk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKmdldF91aWQoc3RydWN0IHVz
ZXJfc3RydWN0ICp1KQoxNDQ3NDogewoxNDQ3NDogIHJlZmNvdW50X2luYygmdS0+X19jb3VudCk7
CjE0NDc0OiAgcmV0dXJuIHU7CjE0NDc0OiB9CjE0NDc0OiBleHRlcm4gdm9pZCBmcmVlX3VpZChz
dHJ1Y3QgdXNlcl9zdHJ1Y3QgKik7CjE0NDc0OiAjIDE4ICIuL2luY2x1ZGUvbGludXgvY3JlZC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjcmVkOwoxNDQ3NDogc3RydWN0IGlub2RlOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ3JvdXBfaW5mbyB7CjE0
NDc0OiAgYXRvbWljX3QgdXNhZ2U7CjE0NDc0OiAgaW50IG5ncm91cHM7CjE0NDc0OiAga2dpZF90
IGdpZFswXTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwox
NDQ3NDogIyA0MCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBncm91cF9p
bmZvICpnZXRfZ3JvdXBfaW5mbyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpCjE0NDc0OiB7CjE0NDc0
OiAgYXRvbWljX2luYygmZ2ktPnVzYWdlKTsKMTQ0NzQ6ICByZXR1cm4gZ2k7CjE0NDc0OiB9CjE0
NDc0OiAjIDU2ICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBn
cm91cF9pbmZvIGluaXRfZ3JvdXBzOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGdyb3Vw
X2luZm8gKmdyb3Vwc19hbGxvYyhpbnQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZ3JvdXBzX2ZyZWUo
c3RydWN0IGdyb3VwX2luZm8gKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgaW5fZ3JvdXBf
cChrZ2lkX3QpOwoxNDQ3NDogZXh0ZXJuIGludCBpbl9lZ3JvdXBfcChrZ2lkX3QpOwoxNDQ3NDog
ZXh0ZXJuIGludCBncm91cHNfc2VhcmNoKGNvbnN0IHN0cnVjdCBncm91cF9pbmZvICosIGtnaWRf
dCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgc2V0X2N1cnJlbnRfZ3JvdXBzKHN0cnVjdCBn
cm91cF9pbmZvICopOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0X2dyb3VwcyhzdHJ1Y3QgY3JlZCAq
LCBzdHJ1Y3QgZ3JvdXBfaW5mbyAqKTsKMTQ0NzQ6IGV4dGVybiBib29sIG1heV9zZXRncm91cHMo
dm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBncm91cHNfc29ydChzdHJ1Y3QgZ3JvdXBfaW5mbyAq
KTsKMTQ0NzQ6ICMgMTExICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3NDogc3RydWN0IGNy
ZWQgewoxNDQ3NDogIGF0b21pY190IHVzYWdlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAga3VpZF90IHVpZDsKMTQ0NzQ6ICBr
Z2lkX3QgZ2lkOwoxNDQ3NDogIGt1aWRfdCBzdWlkOwoxNDQ3NDogIGtnaWRfdCBzZ2lkOwoxNDQ3
NDogIGt1aWRfdCBldWlkOwoxNDQ3NDogIGtnaWRfdCBlZ2lkOwoxNDQ3NDogIGt1aWRfdCBmc3Vp
ZDsKMTQ0NzQ6ICBrZ2lkX3QgZnNnaWQ7CjE0NDc0OiAgdW5zaWduZWQgc2VjdXJlYml0czsKMTQ0
NzQ6ICBrZXJuZWxfY2FwX3QgY2FwX2luaGVyaXRhYmxlOwoxNDQ3NDogIGtlcm5lbF9jYXBfdCBj
YXBfcGVybWl0dGVkOwoxNDQ3NDogIGtlcm5lbF9jYXBfdCBjYXBfZWZmZWN0aXZlOwoxNDQ3NDog
IGtlcm5lbF9jYXBfdCBjYXBfYnNldDsKMTQ0NzQ6ICBrZXJuZWxfY2FwX3QgY2FwX2FtYmllbnQ7
CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGppdF9rZXlyaW5nOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGtleSAqc2Vzc2lvbl9rZXlyaW5nOwoxNDQ3NDogIHN0cnVjdCBrZXkgKnByb2Nl
c3Nfa2V5cmluZzsKMTQ0NzQ6ICBzdHJ1Y3Qga2V5ICp0aHJlYWRfa2V5cmluZzsKMTQ0NzQ6ICBz
dHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV9hdXRoOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lk
ICpzZWN1cml0eTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsKMTQ0
NzQ6ICBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnM7CjE0NDc0OiAgc3RydWN0IGdyb3Vw
X2luZm8gKmdyb3VwX2luZm87CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIGludCBu
b25fcmN1OwoxNDQ3NDogICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CjE0NDc0OiAgfTsKMTQ0
NzQ6IH0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoxNDQ3NDogCjE0NDc0
OiBleHRlcm4gdm9pZCBfX3B1dF9jcmVkKHN0cnVjdCBjcmVkICopOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgZXhpdF9jcmVkcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CjE0NDc0OiBleHRlcm4gaW50IGNv
cHlfY3JlZHMoc3RydWN0IHRhc2tfc3RydWN0ICosIHVuc2lnbmVkIGxvbmcpOwoxNDQ3NDogZXh0
ZXJuIGNvbnN0IHN0cnVjdCBjcmVkICpnZXRfdGFza19jcmVkKHN0cnVjdCB0YXNrX3N0cnVjdCAq
KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY3JlZCAqY3JlZF9hbGxvY19ibGFuayh2b2lkKTsKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3QgY3JlZCAqcHJlcGFyZV9jcmVkcyh2b2lkKTsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgY3JlZCAqcHJlcGFyZV9leGVjX2NyZWRzKHZvaWQpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBjb21taXRfY3JlZHMoc3RydWN0IGNyZWQgKik7CjE0NDc0OiBleHRlcm4gdm9pZCBhYm9ydF9j
cmVkcyhzdHJ1Y3QgY3JlZCAqKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgY3JlZCAqb3Zl
cnJpZGVfY3JlZHMoY29uc3Qgc3RydWN0IGNyZWQgKik7CjE0NDc0OiBleHRlcm4gdm9pZCByZXZl
cnRfY3JlZHMoY29uc3Qgc3RydWN0IGNyZWQgKik7CjE0NDc0OiBleHRlcm4gc3RydWN0IGNyZWQg
KnByZXBhcmVfa2VybmVsX2NyZWQoc3RydWN0IHRhc2tfc3RydWN0ICopOwoxNDQ3NDogZXh0ZXJu
IGludCBjaGFuZ2VfY3JlYXRlX2ZpbGVzX2FzKHN0cnVjdCBjcmVkICosIHN0cnVjdCBpbm9kZSAq
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgc2V0X3NlY3VyaXR5X292ZXJyaWRlKHN0cnVjdCBjcmVkICos
IHUzMik7CjE0NDc0OiBleHRlcm4gaW50IHNldF9zZWN1cml0eV9vdmVycmlkZV9mcm9tX2N0eChz
dHJ1Y3QgY3JlZCAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogZXh0ZXJuIGludCBzZXRfY3JlYXRl
X2ZpbGVzX2FzKHN0cnVjdCBjcmVkICosIHN0cnVjdCBpbm9kZSAqKTsKMTQ0NzQ6IGV4dGVybiBp
bnQgY3JlZF9mc2NtcChjb25zdCBzdHJ1Y3QgY3JlZCAqLCBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0
IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGNyZWRfaW5pdCh2b2lkKTsKMTQ0NzQ6ICMg
MjAzICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB2YWxpZGF0ZV9jcmVkcyhj
b25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmFs
aWRhdGVfY3JlZHNfZm9yX2RvX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCjE0NDc0OiB7
CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHZhbGlkYXRlX3Byb2Nlc3NfY3JlZHModm9pZCkKMTQ0NzQ6
IHsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNhcF9hbWJpZW50X2ludmFy
aWFudF9vayhjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
Y2FwX2lzc3Vic2V0KGNyZWQtPmNhcF9hbWJpZW50LAoxNDQ3NDogICAgICAgIGNhcF9pbnRlcnNl
Y3QoY3JlZC0+Y2FwX3Blcm1pdHRlZCwKMTQ0NzQ6ICAgICAgICBjcmVkLT5jYXBfaW5oZXJpdGFi
bGUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjI4ICIuL2luY2x1ZGUvbGludXgvY3JlZC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGNyZWQgKmdldF9uZXdfY3JlZChzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBhdG9taWNfaW5jKCZjcmVkLT51c2FnZSk7CjE0NDc0OiAgcmV0dXJuIGNyZWQ7CjE0
NDc0OiB9CjE0NDc0OiAjIDI0NyAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0
IHN0cnVjdCBjcmVkICpnZXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzdHJ1Y3QgY3JlZCAqbm9uY29uc3RfY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjcmVk
OwoxNDQ3NDogIGlmICghY3JlZCkKMTQ0NzQ6ICAgcmV0dXJuIGNyZWQ7CjE0NDc0OiAgdmFsaWRh
dGVfY3JlZHMoY3JlZCk7CjE0NDc0OiAgbm9uY29uc3RfY3JlZC0+bm9uX3JjdSA9IDA7CjE0NDc0
OiAgcmV0dXJuIGdldF9uZXdfY3JlZChub25jb25zdF9jcmVkKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgY29uc3Qgc3RydWN0IGNyZWQgKmdldF9jcmVkX3JjdShjb25zdCBzdHJ1Y3QgY3JlZCAq
Y3JlZCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgY3JlZCAqbm9uY29uc3RfY3JlZCA9IChzdHJ1
Y3QgY3JlZCAqKSBjcmVkOwoxNDQ3NDogIGlmICghY3JlZCkKMTQ0NzQ6ICAgcmV0dXJuICgodm9p
ZCAqKTApOwoxNDQ3NDogIGlmICghYXRvbWljX2luY19ub3RfemVybygmbm9uY29uc3RfY3JlZC0+
dXNhZ2UpKQoxNDQ3NDogICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiAgdmFsaWRhdGVfY3Jl
ZHMoY3JlZCk7CjE0NDc0OiAgbm9uY29uc3RfY3JlZC0+bm9uX3JjdSA9IDA7CjE0NDc0OiAgcmV0
dXJuIGNyZWQ7CjE0NDc0OiB9CjE0NDc0OiAjIDI4MCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgcHV0X2NyZWQoY29uc3Qgc3RydWN0IGNyZWQgKl9jcmVkKQoxNDQ3NDogewox
NDQ3NDogIHN0cnVjdCBjcmVkICpjcmVkID0gKHN0cnVjdCBjcmVkICopIF9jcmVkOwoxNDQ3NDog
CjE0NDc0OiAgaWYgKGNyZWQpIHsKMTQ0NzQ6ICAgdmFsaWRhdGVfY3JlZHMoY3JlZCk7CjE0NDc0
OiAgIGlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCYoY3JlZCktPnVzYWdlKSkKMTQ0NzQ6ICAgIF9f
cHV0X2NyZWQoY3JlZCk7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAzOTAgIi4vaW5jbHVk
ZS9saW51eC9jcmVkLmgiCjE0NDc0OiBleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRf
dXNlcl9uczsKMTQ0NzQ6ICMgMTMgIi4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBzZXFfb3BlcmF0aW9uczsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNl
cV9maWxlIHsKMTQ0NzQ6ICBjaGFyICpidWY7CjE0NDc0OiAgc2l6ZV90IHNpemU7CjE0NDc0OiAg
c2l6ZV90IGZyb207CjE0NDc0OiAgc2l6ZV90IGNvdW50OwoxNDQ3NDogIHNpemVfdCBwYWRfdW50
aWw7CjE0NDc0OiAgbG9mZl90IGluZGV4OwoxNDQ3NDogIGxvZmZfdCByZWFkX3BvczsKMTQ0NzQ6
ICB1NjQgdmVyc2lvbjsKMTQ0NzQ6ICBzdHJ1Y3QgbXV0ZXggbG9jazsKMTQ0NzQ6ICBjb25zdCBz
dHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKm9wOwoxNDQ3NDogIGludCBwb2xsX2V2ZW50OwoxNDQ3NDog
IGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlOwoxNDQ3NDogIHZvaWQgKnByaXZhdGU7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgewoxNDQ3NDogIHZvaWQgKiAo
KnN0YXJ0KSAoc3RydWN0IHNlcV9maWxlICptLCBsb2ZmX3QgKnBvcyk7CjE0NDc0OiAgdm9pZCAo
KnN0b3ApIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpOwoxNDQ3NDogIHZvaWQgKiAoKm5l
eHQpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKTsKMTQ0NzQ6ICBp
bnQgKCpzaG93KSAoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KTsKMTQ0NzQ6IH07CjE0NDc0
OiAjIDUxICIuL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2VxX2hhc19v
dmVyZmxvd2VkKHN0cnVjdCBzZXFfZmlsZSAqbSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gbS0+
Y291bnQgPT0gbS0+c2l6ZTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjQgIi4vaW5jbHVkZS9saW51eC9z
ZXFfZmlsZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc2l6ZV90IHNlcV9nZXRfYnVmKHN0cnVjdCBzZXFfZmlsZSAqbSwg
Y2hhciAqKmJ1ZnApCjE0NDc0OiB7CjE0NDc0OiAgZG8geyBpZiAoX19idWlsdGluX2V4cGVjdCgh
IShtLT5jb3VudCA+IG0tPnNpemUpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGls
ZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs
ZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpm
aWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMy
IiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9u
IiA6IDogImkiICgiaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIiksICJpIiAoNjYpLCAiaSIgKDAp
LCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBh
c20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxl
XG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMzMp
KTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogIGlmIChtLT5jb3VudCA8IG0t
PnNpemUpCjE0NDc0OiAgICpidWZwID0gbS0+YnVmICsgbS0+Y291bnQ7CjE0NDc0OiAgZWxzZQox
NDQ3NDogICAqYnVmcCA9ICgodm9pZCAqKTApOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIG0tPnNp
emUgLSBtLT5jb3VudDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgODQgIi4vaW5jbHVkZS9saW51eC9zZXFf
ZmlsZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXFfY29tbWl0KHN0cnVjdCBzZXFfZmlsZSAqbSwgaW50IG51
bSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAobnVtIDwgMCkgewoxNDQ3NDogICBtLT5jb3VudCA9IG0t
PnNpemU7CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6ICAgZG8geyBpZiAoX19idWlsdGluX2V4cGVj
dCghIShtLT5jb3VudCArIG51bSA+IG0tPnNpemUpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGlu
ZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBf
X2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVn
X2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0
LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5w
b3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIiksICJpIiAoODkp
LCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsg
ZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVu
cmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6
ICJpIiAoMzQpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgp
OyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwoxNDQ3NDogICBtLT5jb3Vu
dCArPSBudW07CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAxMDIgIi4vaW5jbHVkZS9saW51
eC9zZXFfZmlsZS5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXFfc2V0d2lkdGgoc3RydWN0IHNlcV9maWxlICpt
LCBzaXplX3Qgc2l6ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBtLT5wYWRfdW50aWwgPSBtLT5jb3VudCAr
IHNpemU7CjE0NDc0OiB9CjE0NDc0OiB2b2lkIHNlcV9wYWQoc3RydWN0IHNlcV9maWxlICptLCBj
aGFyIGMpOwoxNDQ3NDogCjE0NDc0OiBjaGFyICptYW5nbGVfcGF0aChjaGFyICpzLCBjb25zdCBj
aGFyICpwLCBjb25zdCBjaGFyICplc2MpOwoxNDQ3NDogaW50IHNlcV9vcGVuKHN0cnVjdCBmaWxl
ICosIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqKTsKMTQ0NzQ6IHNzaXplX3Qgc2VxX3Jl
YWQoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKMTQ0NzQ6IGxvZmZf
dCBzZXFfbHNlZWsoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwoxNDQ3NDogaW50IHNlcV9y
ZWxlYXNlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKMTQ0NzQ6IGludCBzZXFfd3Jp
dGUoc3RydWN0IHNlcV9maWxlICpzZXEsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwox
NDQ3NDogCjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMCkpKQox
NDQ3NDogdm9pZCBzZXFfdnByaW50ZihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmZt
dCwgdmFfbGlzdCBhcmdzKTsKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRm
LCAyLCAzKSkpCjE0NDc0OiB2b2lkIHNlcV9wcmludGYoc3RydWN0IHNlcV9maWxlICptLCBjb25z
dCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiB2b2lkIHNlcV9wdXRjKHN0cnVjdCBzZXFfZmlsZSAq
bSwgY2hhciBjKTsKMTQ0NzQ6IHZvaWQgc2VxX3B1dHMoc3RydWN0IHNlcV9maWxlICptLCBjb25z
dCBjaGFyICpzKTsKMTQ0NzQ6IHZvaWQgc2VxX3B1dF9kZWNpbWFsX3VsbF93aWR0aChzdHJ1Y3Qg
c2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmRlbGltaXRlciwKMTQ0NzQ6ICAgICAgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgbnVtLCB1bnNpZ25lZCBpbnQgd2lkdGgpOwoxNDQ3NDogdm9pZCBzZXFf
cHV0X2RlY2ltYWxfdWxsKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqZGVsaW1pdGVy
LAoxNDQ3NDogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBudW0pOwoxNDQ3NDogdm9pZCBzZXFfcHV0
X2RlY2ltYWxfbGwoc3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpkZWxpbWl0ZXIsIGxv
bmcgbG9uZyBudW0pOwoxNDQ3NDogdm9pZCBzZXFfcHV0X2hleF9sbChzdHJ1Y3Qgc2VxX2ZpbGUg
Km0sIGNvbnN0IGNoYXIgKmRlbGltaXRlciwKMTQ0NzQ6ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyB2LCB1bnNpZ25lZCBpbnQgd2lkdGgpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHNlcV9lc2NhcGUo
c3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICplc2MpOwoxNDQ3
NDogdm9pZCBzZXFfZXNjYXBlX21lbV9hc2NpaShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNo
YXIgKnNyYywgc2l6ZV90IGlzeik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2VxX2hleF9kdW1wKHN0
cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqcHJlZml4X3N0ciwgaW50IHByZWZpeF90eXBl
LAoxNDQ3NDogICAgIGludCByb3dzaXplLCBpbnQgZ3JvdXBzaXplLCBjb25zdCB2b2lkICpidWYs
IHNpemVfdCBsZW4sCjE0NDc0OiAgICAgYm9vbCBhc2NpaSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBz
ZXFfcGF0aChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgY29uc3Qgc3RydWN0IHBhdGggKiwgY29uc3QgY2hh
ciAqKTsKMTQ0NzQ6IGludCBzZXFfZmlsZV9wYXRoKHN0cnVjdCBzZXFfZmlsZSAqLCBzdHJ1Y3Qg
ZmlsZSAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogaW50IHNlcV9kZW50cnkoc3RydWN0IHNlcV9m
aWxlICosIHN0cnVjdCBkZW50cnkgKiwgY29uc3QgY2hhciAqKTsKMTQ0NzQ6IGludCBzZXFfcGF0
aF9yb290KHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3Qgc3RydWN0IHBhdGggKnBhdGgsCjE0NDc0
OiAgICAgY29uc3Qgc3RydWN0IHBhdGggKnJvb3QsIGNvbnN0IGNoYXIgKmVzYyk7CjE0NDc0OiAK
MTQ0NzQ6IGludCBzaW5nbGVfb3BlbihzdHJ1Y3QgZmlsZSAqLCBpbnQgKCopKHN0cnVjdCBzZXFf
ZmlsZSAqLCB2b2lkICopLCB2b2lkICopOwoxNDQ3NDogaW50IHNpbmdsZV9vcGVuX3NpemUoc3Ry
dWN0IGZpbGUgKiwgaW50ICgqKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgdm9pZCAqKSwgdm9pZCAqLCBz
aXplX3QpOwoxNDQ3NDogaW50IHNpbmdsZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3Qg
ZmlsZSAqKTsKMTQ0NzQ6IHZvaWQgKl9fc2VxX29wZW5fcHJpdmF0ZShzdHJ1Y3QgZmlsZSAqLCBj
b25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKiwgaW50KTsKMTQ0NzQ6IGludCBzZXFfb3Blbl9w
cml2YXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqLCBpbnQp
OwoxNDQ3NDogaW50IHNlcV9yZWxlYXNlX3ByaXZhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBm
aWxlICopOwoxNDQ3NDogIyAxNzYgIi4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIgoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IHVzZXJfbmFtZXNwYWNlICpzZXFfdXNlcl9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSkK
MTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBzZXEtPmZpbGUtPmZfY3JlZC0+dXNlcl9u
czsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNl
cV9zaG93X29wdGlvbihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0
OiAgICAgICAgY29uc3QgY2hhciAqdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgc2VxX3B1dGMobSwg
JywnKTsKMTQ0NzQ6ICBzZXFfZXNjYXBlKG0sIG5hbWUsICIsPSBcdFxuXFwiKTsKMTQ0NzQ6ICBp
ZiAodmFsdWUpIHsKMTQ0NzQ6ICAgc2VxX3B1dGMobSwgJz0nKTsKMTQ0NzQ6ICAgc2VxX2VzY2Fw
ZShtLCB2YWx1ZSwgIiwgXHRcblxcIik7CjE0NDc0OiAgfQoxNDQ3NDogfQoxNDQ3NDogIyAyMjYg
Ii4vaW5jbHVkZS9saW51eC9zZXFfZmlsZS5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBsaXN0X2hl
YWQgKnNlcV9saXN0X3N0YXJ0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCjE0NDc0OiAgIGxvZmZf
dCBwb3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgKnNlcV9saXN0X3N0YXJ0X2hl
YWQoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgbG9mZl90IHBvcyk7CjE0NDc0OiBl
eHRlcm4gc3RydWN0IGxpc3RfaGVhZCAqc2VxX2xpc3RfbmV4dCh2b2lkICp2LCBzdHJ1Y3QgbGlz
dF9oZWFkICpoZWFkLAoxNDQ3NDogICBsb2ZmX3QgKnBwb3MpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqc2Vx
X2hsaXN0X3N0YXJ0KHN0cnVjdCBobGlzdF9oZWFkICpoZWFkLAoxNDQ3NDogICAgICAgIGxvZmZf
dCBwb3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3Rfc3RhcnRf
aGVhZChzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgICAgIGxvZmZfdCBw
b3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3RfbmV4dCh2b2lk
ICp2LCBzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgIGxvZmZfdCAqcHBvcyk7
CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqc2VxX2hsaXN0X3N0YXJ0
X3JjdShzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgICAgbG9mZl90IHBv
cyk7CjE0NDc0OiBleHRlcm4gc3RydWN0IGhsaXN0X25vZGUgKnNlcV9obGlzdF9zdGFydF9oZWFk
X3JjdShzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwKMTQ0NzQ6ICAgICAgICAgIGxvZmZfdCBwb3Mp
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3RfbmV4dF9yY3Uodm9p
ZCAqdiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBobGlzdF9oZWFkICpoZWFkLAoxNDQ3NDogICAg
ICAgICAgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0
IGhsaXN0X25vZGUgKnNlcV9obGlzdF9zdGFydF9wZXJjcHUoc3RydWN0IGhsaXN0X2hlYWQgKmhl
YWQsIGludCAqY3B1LCBsb2ZmX3QgcG9zKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBo
bGlzdF9ub2RlICpzZXFfaGxpc3RfbmV4dF9wZXJjcHUodm9pZCAqdiwgc3RydWN0IGhsaXN0X2hl
YWQgKmhlYWQsIGludCAqY3B1LCBsb2ZmX3QgKnBvcyk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgc2Vx
X2ZpbGVfaW5pdCh2b2lkKTsKMTQ0NzQ6ICMgMzIgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50Lmgi
IDIKMTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAxCjE0NDc0OiAjIDE1ICIu
L2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9kZXZf
cHJpbnRrLmgiIDEKMTQ0NzQ6ICMgMjIgIi4vaW5jbHVkZS9saW51eC9kZXZfcHJpbnRrLmgiCjE0
NDc0OiBzdHJ1Y3QgZGV2aWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDApKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKQoxNDQ3NDogaW50IGRldl92cHJpbnRrX2VtaXQoaW50IGxldmVsLCBjb25zdCBzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3Mp
OwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkgX19hdHRy
aWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogaW50IGRldl9wcmludGtfZW1pdChpbnQgbGV2ZWws
IGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDog
CjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKSBfX2F0dHJp
YnV0ZV9fKChfX2NvbGRfXykpCjE0NDc0OiB2b2lkIGRldl9wcmludGsoY29uc3QgY2hhciAqbGV2
ZWwsIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqZm10LCAu
Li4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkgX19h
dHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9pZCBfZGV2X2VtZXJnKGNvbnN0IHN0cnVj
dCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVf
XygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQox
NDQ3NDogdm9pZCBfZGV2X2FsZXJ0KGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hh
ciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIs
IDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9pZCBfZGV2X2NyaXQoY29u
c3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiBfX2F0
dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpCjE0NDc0OiB2b2lkIF9kZXZfZXJyKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29u
c3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9pZCBfZGV2X3dh
cm4oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLik7CjE0NDc0
OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBfX2F0dHJpYnV0ZV9f
KChfX2NvbGRfXykpCjE0NDc0OiB2b2lkIF9kZXZfbm90aWNlKGNvbnN0IHN0cnVjdCBkZXZpY2Ug
KmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3Jt
YXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQoxNDQ3NDogdm9p
ZCBfZGV2X2luZm8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4u
Lik7CjE0NDc0OiAjIDE2ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oIiAxCjE0NDc0OiAjIDIwICIuL2luY2x1ZGUvbGludXgv
aW9wb3J0LmgiCjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2UgewoxNDQ3NDogIHJlc291cmNlX3NpemVf
dCBzdGFydDsKMTQ0NzQ6ICByZXNvdXJjZV9zaXplX3QgZW5kOwoxNDQ3NDogIGNvbnN0IGNoYXIg
Km5hbWU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBmbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25n
IGRlc2M7CjE0NDc0OiAgc3RydWN0IHJlc291cmNlICpwYXJlbnQsICpzaWJsaW5nLCAqY2hpbGQ7
CjE0NDc0OiB9OwoxNDQ3NDogIyAxMjggIi4vaW5jbHVkZS9saW51eC9pb3BvcnQuaCIKMTQ0NzQ6
IGVudW0gewoxNDQ3NDogIElPUkVTX0RFU0NfTk9ORSA9IDAsCjE0NDc0OiAgSU9SRVNfREVTQ19D
UkFTSF9LRVJORUwgPSAxLAoxNDQ3NDogIElPUkVTX0RFU0NfQUNQSV9UQUJMRVMgPSAyLAoxNDQ3
NDogIElPUkVTX0RFU0NfQUNQSV9OVl9TVE9SQUdFID0gMywKMTQ0NzQ6ICBJT1JFU19ERVNDX1BF
UlNJU1RFTlRfTUVNT1JZID0gNCwKMTQ0NzQ6ICBJT1JFU19ERVNDX1BFUlNJU1RFTlRfTUVNT1JZ
X0xFR0FDWSA9IDUsCjE0NDc0OiAgSU9SRVNfREVTQ19ERVZJQ0VfUFJJVkFURV9NRU1PUlkgPSA2
LAoxNDQ3NDogIElPUkVTX0RFU0NfUkVTRVJWRUQgPSA3LAoxNDQ3NDogIElPUkVTX0RFU0NfU09G
VF9SRVNFUlZFRCA9IDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBJT1JFU19NQVBfU1lTVEVNX1JBTSA9ICgoKCgxVUwpKSkg
PDwgKDApKSwKMTQ0NzQ6ICBJT1JFU19NQVBfRU5DUllQVEVEID0gKCgoKDFVTCkpKSA8PCAoMSkp
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTc5ICIuL2luY2x1ZGUvbGludXgvaW9wb3J0LmgiCjE0NDc0
OiBleHRlcm4gc3RydWN0IHJlc291cmNlIGlvcG9ydF9yZXNvdXJjZTsKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3QgcmVzb3VyY2UgaW9tZW1fcmVzb3VyY2U7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1
Y3QgcmVzb3VyY2UgKnJlcXVlc3RfcmVzb3VyY2VfY29uZmxpY3Qoc3RydWN0IHJlc291cmNlICpy
b290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CjE0NDc0OiBleHRlcm4gaW50IHJlcXVlc3RfcmVz
b3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CjE0NDc0
OiBleHRlcm4gaW50IHJlbGVhc2VfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpuZXcpOwoxNDQ3
NDogdm9pZCByZWxlYXNlX2NoaWxkX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CjE0
NDc0OiBleHRlcm4gdm9pZCByZXNlcnZlX3JlZ2lvbl93aXRoX3NwbGl0KHN0cnVjdCByZXNvdXJj
ZSAqcm9vdCwKMTQ0NzQ6ICAgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9z
aXplX3QgZW5kLAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4dGVy
biBzdHJ1Y3QgcmVzb3VyY2UgKmluc2VydF9yZXNvdXJjZV9jb25mbGljdChzdHJ1Y3QgcmVzb3Vy
Y2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNlICpuZXcpOwoxNDQ3NDogZXh0ZXJuIGludCBpbnNl
cnRfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpwYXJlbnQsIHN0cnVjdCByZXNvdXJjZSAqbmV3
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGluc2VydF9yZXNvdXJjZV9leHBhbmRfdG9fZml0KHN0cnVj
dCByZXNvdXJjZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpuZXcpOwoxNDQ3NDogZXh0ZXJuIGlu
dCByZW1vdmVfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpvbGQpOwoxNDQ3NDogZXh0ZXJuIHZv
aWQgYXJjaF9yZW1vdmVfcmVzZXJ2YXRpb25zKHN0cnVjdCByZXNvdXJjZSAqYXZhaWwpOwoxNDQ3
NDogZXh0ZXJuIGludCBhbGxvY2F0ZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHN0
cnVjdCByZXNvdXJjZSAqbmV3LAoxNDQ3NDogICAgICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwg
cmVzb3VyY2Vfc2l6ZV90IG1pbiwKMTQ0NzQ6ICAgICAgICAgcmVzb3VyY2Vfc2l6ZV90IG1heCwg
cmVzb3VyY2Vfc2l6ZV90IGFsaWduLAoxNDQ3NDogICAgICAgICByZXNvdXJjZV9zaXplX3QgKCph
bGlnbmYpKHZvaWQgKiwKMTQ0NzQ6ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2Ug
KiwKMTQ0NzQ6ICAgICAgICAgICAgICByZXNvdXJjZV9zaXplX3QsCjE0NDc0OiAgICAgICAgICAg
ICAgcmVzb3VyY2Vfc2l6ZV90KSwKMTQ0NzQ6ICAgICAgICAgdm9pZCAqYWxpZ25mX2RhdGEpOwox
NDQ3NDogc3RydWN0IHJlc291cmNlICpsb29rdXBfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpy
b290LCByZXNvdXJjZV9zaXplX3Qgc3RhcnQpOwoxNDQ3NDogaW50IGFkanVzdF9yZXNvdXJjZShz
dHJ1Y3QgcmVzb3VyY2UgKnJlcywgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAoxNDQ3NDogICAgICAg
cmVzb3VyY2Vfc2l6ZV90IHNpemUpOwoxNDQ3NDogcmVzb3VyY2Vfc2l6ZV90IHJlc291cmNlX2Fs
aWdubWVudChzdHJ1Y3QgcmVzb3VyY2UgKnJlcyk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSByZXNvdXJjZV9zaXplX3QgcmVz
b3VyY2Vfc2l6ZShjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gcmVzLT5lbmQgLSByZXMtPnN0YXJ0ICsgMTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGxvbmcgcmVzb3VyY2VfdHlwZShjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gcmVzLT5mbGFncyAmIDB4MDAwMDFmMDA7CjE0NDc0OiB9CjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
bnNpZ25lZCBsb25nIHJlc291cmNlX2V4dF90eXBlKGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVz
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiByZXMtPmZsYWdzICYgMHgwMTAwMDAwMDsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCByZXNvdXJjZV9jb250YWlucyhzdHJ1Y3QgcmVzb3VyY2Ug
KnIxLCBzdHJ1Y3QgcmVzb3VyY2UgKnIyKQoxNDQ3NDogewoxNDQ3NDogIGlmIChyZXNvdXJjZV90
eXBlKHIxKSAhPSByZXNvdXJjZV90eXBlKHIyKSkKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3
NDogIGlmIChyMS0+ZmxhZ3MgJiAweDIwMDAwMDAwIHx8IHIyLT5mbGFncyAmIDB4MjAwMDAwMDAp
CjE0NDc0OiAgIHJldHVybiBmYWxzZTsKMTQ0NzQ6ICByZXR1cm4gcjEtPnN0YXJ0IDw9IHIyLT5z
dGFydCAmJiByMS0+ZW5kID49IHIyLT5lbmQ7CjE0NDc0OiB9CjE0NDc0OiAjIDIzOCAiLi9pbmNs
dWRlL2xpbnV4L2lvcG9ydC5oIgoxNDQ3NDogZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSAqIF9fcmVx
dWVzdF9yZWdpb24oc3RydWN0IHJlc291cmNlICosCjE0NDc0OiAgICAgIHJlc291cmNlX3NpemVf
dCBzdGFydCwKMTQ0NzQ6ICAgICAgcmVzb3VyY2Vfc2l6ZV90IG4sCjE0NDc0OiAgICAgIGNvbnN0
IGNoYXIgKm5hbWUsIGludCBmbGFncyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19yZWxlYXNlX3JlZ2lvbihzdHJ1Y3QgcmVzb3Vy
Y2UgKiwgcmVzb3VyY2Vfc2l6ZV90LAoxNDQ3NDogICAgIHJlc291cmNlX3NpemVfdCk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgcmVsZWFzZV9tZW1fcmVnaW9uX2FkanVzdGFibGUoc3RydWN0
IHJlc291cmNlICosIHJlc291cmNlX3NpemVfdCwKMTQ0NzQ6ICAgICByZXNvdXJjZV9zaXplX3Qp
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldmljZTsKMTQ0NzQ6IAox
NDQ3NDogZXh0ZXJuIGludCBkZXZtX3JlcXVlc3RfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2
LCBzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsCjE0NDc0OiAgICAgIHN0cnVjdCByZXNvdXJjZSAqbmV3
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldm1fcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqbmV3KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgKiBfX2Rl
dm1fcmVxdWVzdF9yZWdpb24oc3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgIHN0cnVjdCBy
ZXNvdXJjZSAqcGFyZW50LCByZXNvdXJjZV9zaXplX3Qgc3RhcnQsCjE0NDc0OiAgICAgcmVzb3Vy
Y2Vfc2l6ZV90IG4sIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgX19kZXZtX3JlbGVhc2Vf
cmVnaW9uKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlc291cmNlICpwYXJlbnQsCjE0NDc0
OiAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBuKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgaW9tZW1fbWFwX3Nhbml0eV9jaGVjayhyZXNvdXJjZV9zaXplX3QgYWRkciwg
dW5zaWduZWQgbG9uZyBzaXplKTsKMTQ0NzQ6IGV4dGVybiBib29sIGlvbWVtX2lzX2V4Y2x1c2l2
ZSh1NjQgYWRkcik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHdhbGtfc3lzdGVt
X3JhbV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdl
cywKMTQ0NzQ6ICAgdm9pZCAqYXJnLCBpbnQgKCpmdW5jKSh1bnNpZ25lZCBsb25nLCB1bnNpZ25l
ZCBsb25nLCB2b2lkICopKTsKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHdhbGtfbWVtX3Jlcyh1
NjQgc3RhcnQsIHU2NCBlbmQsIHZvaWQgKmFyZywKMTQ0NzQ6ICAgICAgIGludCAoKmZ1bmMpKHN0
cnVjdCByZXNvdXJjZSAqLCB2b2lkICopKTsKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHdhbGtf
c3lzdGVtX3JhbV9yZXModTY0IHN0YXJ0LCB1NjQgZW5kLCB2b2lkICphcmcsCjE0NDc0OiAgICAg
ICBpbnQgKCpmdW5jKShzdHJ1Y3QgcmVzb3VyY2UgKiwgdm9pZCAqKSk7CjE0NDc0OiBleHRlcm4g
aW50CjE0NDc0OiB3YWxrX2lvbWVtX3Jlc19kZXNjKHVuc2lnbmVkIGxvbmcgZGVzYywgdW5zaWdu
ZWQgbG9uZyBmbGFncywgdTY0IHN0YXJ0LCB1NjQgZW5kLAoxNDQ3NDogICAgICAgdm9pZCAqYXJn
LCBpbnQgKCpmdW5jKShzdHJ1Y3QgcmVzb3VyY2UgKiwgdm9pZCAqKSk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCByZXNvdXJjZV9vdmVybGFwcyhzdHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1
Y3QgcmVzb3VyY2UgKnIyKQoxNDQ3NDogewoxNDQ3NDogICAgICAgIHJldHVybiAocjEtPnN0YXJ0
IDw9IHIyLT5lbmQgJiYgcjEtPmVuZCA+PSByMi0+c3RhcnQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcmVzb3VyY2UgKmRldm1fcmVxdWVzdF9mcmVlX21lbV9yZWdpb24oc3RydWN0
IGRldmljZSAqZGV2LAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3VyY2UgKmJhc2UsIHVuc2lnbmVkIGxv
bmcgc2l6ZSk7CjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2UgKnJlcXVlc3RfZnJlZV9tZW1fcmVnaW9u
KHN0cnVjdCByZXNvdXJjZSAqYmFzZSwKMTQ0NzQ6ICAgdW5zaWduZWQgbG9uZyBzaXplLCBjb25z
dCBjaGFyICpuYW1lKTsKMTQ0NzQ6ICMgMTcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgva29iamVjdC5oIiAxCjE0NDc0OiAjIDIwICIuL2lu
Y2x1ZGUvbGludXgva29iamVjdC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvc3lzZnMu
aCIgMQoxNDQ3NDogIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCjE0NDc0OiAjIDEgIi4v
aW5jbHVkZS9saW51eC9rZXJuZnMuaCIgMQoxNDQ3NDogIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2tl
cm5mcy5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvaWRyLmgiIDEKMTQ0NzQ6ICMgMTkg
Ii4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHN0cnVjdCBpZHIgewoxNDQ3NDogIHN0cnVj
dCB4YXJyYXkgaWRyX3J0OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpZHJfYmFzZTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgaWRyX25leHQ7CjE0NDc0OiB9OwoxNDQ3NDogIyA2NiAiLi9pbmNsdWRlL2xp
bnV4L2lkci5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGlkcl9nZXRfY3Vyc29yKGNvbnN0IHN0cnVj
dCBpZHIgKmlkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdW5pb24geyB0eXBlb2YoaWRy
LT5pZHJfbmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNl
X3NpemUoJihpZHItPmlkcl9uZXh0KSwgX191Ll9fYywgc2l6ZW9mKGlkci0+aWRyX25leHQpKTsg
ZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihpZHItPmlkcl9uZXh0KSwgX191Ll9fYywg
c2l6ZW9mKGlkci0+aWRyX25leHQpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgNzkgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aWRyX3NldF9jdXJzb3Ioc3RydWN0IGlkciAqaWRyLCB1bnNpZ25lZCBpbnQgdmFsKQoxNDQ3NDog
ewoxNDQ3NDogICh7IHVuaW9uIHsgdHlwZW9mKGlkci0+aWRyX25leHQpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGlkci0+aWRyX25leHQpKSAodmFsKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKGlkci0+aWRyX25leHQpLCBfX3UuX19jLCBzaXplb2YoaWRy
LT5pZHJfbmV4dCkpOyBfX3UuX192YWw7IH0pOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTIgIi4vaW5j
bHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHZvaWQgaWRyX3ByZWxvYWQoZ2ZwX3QgZ2ZwX21hc2sp
OwoxNDQ3NDogCjE0NDc0OiBpbnQgaWRyX2FsbG9jKHN0cnVjdCBpZHIgKiwgdm9pZCAqcHRyLCBp
bnQgc3RhcnQsIGludCBlbmQsIGdmcF90KTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgaWRyX2FsbG9jX3UzMihzdHJ1Y3QgaWRyICosIHZvaWQgKnB0
ciwgdTMyICppZCwKMTQ0NzQ6ICAgICB1bnNpZ25lZCBsb25nIG1heCwgZ2ZwX3QpOwoxNDQ3NDog
aW50IGlkcl9hbGxvY19jeWNsaWMoc3RydWN0IGlkciAqLCB2b2lkICpwdHIsIGludCBzdGFydCwg
aW50IGVuZCwgZ2ZwX3QpOwoxNDQ3NDogdm9pZCAqaWRyX3JlbW92ZShzdHJ1Y3QgaWRyICosIHVu
c2lnbmVkIGxvbmcgaWQpOwoxNDQ3NDogdm9pZCAqaWRyX2ZpbmQoY29uc3Qgc3RydWN0IGlkciAq
LCB1bnNpZ25lZCBsb25nIGlkKTsKMTQ0NzQ6IGludCBpZHJfZm9yX2VhY2goY29uc3Qgc3RydWN0
IGlkciAqLAoxNDQ3NDogICAgaW50ICgqZm4pKGludCBpZCwgdm9pZCAqcCwgdm9pZCAqZGF0YSks
IHZvaWQgKmRhdGEpOwoxNDQ3NDogdm9pZCAqaWRyX2dldF9uZXh0KHN0cnVjdCBpZHIgKiwgaW50
ICpuZXh0aWQpOwoxNDQ3NDogdm9pZCAqaWRyX2dldF9uZXh0X3VsKHN0cnVjdCBpZHIgKiwgdW5z
aWduZWQgbG9uZyAqbmV4dGlkKTsKMTQ0NzQ6IHZvaWQgKmlkcl9yZXBsYWNlKHN0cnVjdCBpZHIg
Kiwgdm9pZCAqLCB1bnNpZ25lZCBsb25nIGlkKTsKMTQ0NzQ6IHZvaWQgaWRyX2Rlc3Ryb3koc3Ry
dWN0IGlkciAqKTsKMTQ0NzQ6ICMgMTM1ICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGlkcl9pbml0X2Jhc2Uoc3RydWN0IGlkciAqaWRyLCBpbnQgYmFzZSkKMTQ0NzQ6IHsKMTQ0
NzQ6ICB4YV9pbml0X2ZsYWdzKCZpZHItPmlkcl9ydCwgKCgoIGdmcF90KTQpIHwgKCBnZnBfdCkg
KDEgPDwgKCgoMjMgKyAwKSkgKyAwKSkpKTsKMTQ0NzQ6ICBpZHItPmlkcl9iYXNlID0gYmFzZTsK
MTQ0NzQ6ICBpZHItPmlkcl9uZXh0ID0gMDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQ5ICIuL2luY2x1
ZGUvbGludXgvaWRyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlkcl9pbml0KHN0cnVjdCBpZHIgKmlkcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBpZHJfaW5pdF9iYXNlKGlkciwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
aWRyX2lzX2VtcHR5KGNvbnN0IHN0cnVjdCBpZHIgKmlkcikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gcmFkaXhfdHJlZV9lbXB0eSgmaWRyLT5pZHJfcnQpICYmCjE0NDc0OiAgIHJhZGl4X3RyZWVf
dGFnZ2VkKCZpZHItPmlkcl9ydCwgMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaWRyX3ByZWxvYWRf
ZW5kKHZvaWQpCjE0NDc0OiB7CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjQwICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCjE0
NDc0OiBzdHJ1Y3QgaWRhX2JpdG1hcCB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBiaXRtYXBbKDEy
OCAvIHNpemVvZihsb25nKSldOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGlkYSB7
CjE0NDc0OiAgc3RydWN0IHhhcnJheSB4YTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI1NSAiLi9pbmNs
dWRlL2xpbnV4L2lkci5oIgoxNDQ3NDogaW50IGlkYV9hbGxvY19yYW5nZShzdHJ1Y3QgaWRhICos
IHVuc2lnbmVkIGludCBtaW4sIHVuc2lnbmVkIGludCBtYXgsIGdmcF90KTsKMTQ0NzQ6IHZvaWQg
aWRhX2ZyZWUoc3RydWN0IGlkYSAqLCB1bnNpZ25lZCBpbnQgaWQpOwoxNDQ3NDogdm9pZCBpZGFf
ZGVzdHJveShzdHJ1Y3QgaWRhICppZGEpOwoxNDQ3NDogIyAyNzAgIi4vaW5jbHVkZS9saW51eC9p
ZHIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBpZGFfYWxsb2Moc3RydWN0IGlkYSAqaWRhLCBnZnBfdCBnZnApCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGlkYV9hbGxvY19yYW5nZShpZGEsIDAsIH4wLCBnZnApOwox
NDQ3NDogfQoxNDQ3NDogIyAyODcgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBp
ZGFfYWxsb2NfbWluKHN0cnVjdCBpZGEgKmlkYSwgdW5zaWduZWQgaW50IG1pbiwgZ2ZwX3QgZ2Zw
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBpZGFfYWxsb2NfcmFuZ2UoaWRhLCBtaW4sIH4wLCBn
ZnApOwoxNDQ3NDogfQoxNDQ3NDogIyAzMDQgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBpZGFfYWxsb2NfbWF4KHN0cnVjdCBpZGEgKmlkYSwgdW5zaWduZWQgaW50IG1heCwgZ2Zw
X3QgZ2ZwKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBpZGFfYWxsb2NfcmFuZ2UoaWRhLCAwLCBt
YXgsIGdmcCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaWRhX2luaXQoc3RydWN0IGlk
YSAqaWRhKQoxNDQ3NDogewoxNDQ3NDogIHhhX2luaXRfZmxhZ3MoJmlkYS0+eGEsICgoKCBnZnBf
dClYQV9MT0NLX0lSUSkgfCAoKCggZ2ZwX3QpNFUpIHwgKCggZ2ZwX3QpKCgxVSA8PCAoMjMgKyAw
KSkgPDwgKCB1bnNpZ25lZCkoKCggeGFfbWFya190KTBVKSkpKSkpKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlkYV9pc19lbXB0
eShjb25zdCBzdHJ1Y3QgaWRhICppZGEpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHhhX2VtcHR5
KCZpZGEtPnhhKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGZpbGU7CjE0NDc0OiBzdHJ1Y3QgZGVudHJ5OwoxNDQ3NDogc3RydWN0IGlhdHRy
OwoxNDQ3NDogc3RydWN0IHNlcV9maWxlOwoxNDQ3NDogc3RydWN0IHZtX2FyZWFfc3RydWN0Owox
NDQ3NDogc3RydWN0IHN1cGVyX2Jsb2NrOwoxNDQ3NDogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGU7
CjE0NDc0OiBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3Q7CjE0NDc0OiBzdHJ1Y3QgZnNfY29udGV4
dDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtlcm5mc19mc19jb250ZXh0OwoxNDQ3NDogc3RydWN0
IGtlcm5mc19vcGVuX25vZGU7CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX2lhdHRyczsKMTQ0NzQ6IAox
NDQ3NDogZW51bSBrZXJuZnNfbm9kZV90eXBlIHsKMTQ0NzQ6ICBLRVJORlNfRElSID0gMHgwMDAx
LAoxNDQ3NDogIEtFUk5GU19GSUxFID0gMHgwMDAyLAoxNDQ3NDogIEtFUk5GU19MSU5LID0gMHgw
MDA0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBrZXJuZnNfbm9kZV9mbGFnIHsKMTQ0NzQ6ICBLRVJORlNfQUNUSVZBVEVEID0gMHgwMDEwLAox
NDQ3NDogIEtFUk5GU19OUyA9IDB4MDAyMCwKMTQ0NzQ6ICBLRVJORlNfSEFTX1NFUV9TSE9XID0g
MHgwMDQwLAoxNDQ3NDogIEtFUk5GU19IQVNfTU1BUCA9IDB4MDA4MCwKMTQ0NzQ6ICBLRVJORlNf
TE9DS0RFUCA9IDB4MDEwMCwKMTQ0NzQ6ICBLRVJORlNfU1VJQ0lEQUwgPSAweDA0MDAsCjE0NDc0
OiAgS0VSTkZTX1NVSUNJREVEID0gMHgwODAwLAoxNDQ3NDogIEtFUk5GU19FTVBUWV9ESVIgPSAw
eDEwMDAsCjE0NDc0OiAgS0VSTkZTX0hBU19SRUxFQVNFID0gMHgyMDAwLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGtlcm5mc19yb290X2ZsYWcgewoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5GU19ST09UX0NS
RUFURV9ERUFDVElWQVRFRCA9IDB4MDAwMSwKMTQ0NzQ6ICMgNzQgIi4vaW5jbHVkZS9saW51eC9r
ZXJuZnMuaCIKMTQ0NzQ6ICBLRVJORlNfUk9PVF9FWFRSQV9PUEVOX1BFUk1fQ0hFQ0sgPSAweDAw
MDIsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEtFUk5G
U19ST09UX1NVUFBPUlRfRVhQT1JUT1AgPSAweDAwMDQsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfZWxlbV9kaXIgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
c3ViZGlyczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCByYl9yb290IGNoaWxkcmVuOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qga2VybmZzX3Jv
b3QgKnJvb3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX2VsZW1fc3lt
bGluayB7CjE0NDc0OiAgc3RydWN0IGtlcm5mc19ub2RlICp0YXJnZXRfa247CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX2VsZW1fYXR0ciB7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IGtlcm5mc19vcHMgKm9wczsKMTQ0NzQ6ICBzdHJ1Y3Qga2VybmZzX29wZW5fbm9kZSAqb3Bl
bjsKMTQ0NzQ6ICBsb2ZmX3Qgc2l6ZTsKMTQ0NzQ6ICBzdHJ1Y3Qga2VybmZzX25vZGUgKm5vdGlm
eV9uZXh0OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTE2ICIuL2luY2x1ZGUvbGludXgva2VybmZzLmgi
CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX25vZGUgewoxNDQ3NDogIGF0b21pY190IGNvdW50OwoxNDQ3
NDogIGF0b21pY190IGFjdGl2ZTsKMTQ0NzQ6ICMgMTI4ICIuL2luY2x1ZGUvbGludXgva2VybmZz
LmgiCjE0NDc0OiAgc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQ7CjE0NDc0OiAgY29uc3QgY2hh
ciAqbmFtZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCByYl9ub2RlIHJiOwoxNDQ3NDogCjE0NDc0
OiAgY29uc3Qgdm9pZCAqbnM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGhhc2g7CjE0NDc0OiAgdW5p
b24gewoxNDQ3NDogICBzdHJ1Y3Qga2VybmZzX2VsZW1fZGlyIGRpcjsKMTQ0NzQ6ICAgc3RydWN0
IGtlcm5mc19lbGVtX3N5bWxpbmsgc3ltbGluazsKMTQ0NzQ6ICAgc3RydWN0IGtlcm5mc19lbGVt
X2F0dHIgYXR0cjsKMTQ0NzQ6ICB9OwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAqcHJpdjsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IGlkOwoxNDQ3NDog
CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgZmxhZ3M7CjE0NDc0OiAgdW1vZGVfdCBtb2RlOwoxNDQ3
NDogIHN0cnVjdCBrZXJuZnNfaWF0dHJzICppYXR0cjsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE2MSAi
Li9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oIgoxNDQ3NDogc3RydWN0IGtlcm5mc19zeXNjYWxsX29w
cyB7CjE0NDc0OiAgaW50ICgqc2hvd19vcHRpb25zKShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCBzdHJ1
Y3Qga2VybmZzX3Jvb3QgKnJvb3QpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqbWtkaXIpKHN0cnVj
dCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25zdCBjaGFyICpuYW1lLAoxNDQ3NDogICAgICAgIHVt
b2RlX3QgbW9kZSk7CjE0NDc0OiAgaW50ICgqcm1kaXIpKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24p
OwoxNDQ3NDogIGludCAoKnJlbmFtZSkoc3RydWN0IGtlcm5mc19ub2RlICprbiwgc3RydWN0IGtl
cm5mc19ub2RlICpuZXdfcGFyZW50LAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFyICpuZXdfbmFt
ZSk7CjE0NDc0OiAgaW50ICgqc2hvd19wYXRoKShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCBzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtuLAoxNDQ3NDogICAgIHN0cnVjdCBrZXJuZnNfcm9vdCAqcm9vdCk7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX3Jvb3QgewoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGtlcm5mc19ub2RlICprbjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBpZHIgaW5vX2lkcjsKMTQ0NzQ6ICB1MzIgbGFz
dF9pZF9sb3diaXRzOwoxNDQ3NDogIHUzMiBpZF9oaWdoYml0czsKMTQ0NzQ6ICBzdHJ1Y3Qga2Vy
bmZzX3N5c2NhbGxfb3BzICpzeXNjYWxsX29wczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGxpc3RfaGVhZCBzdXBlcnM7CjE0NDc0OiAKMTQ0NzQ6ICB3YWl0X3F1ZXVlX2hlYWRfdCBk
ZWFjdGl2YXRlX3dhaXRxOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtlcm5mc19v
cGVuX2ZpbGUgewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGtlcm5mc19ub2RlICprbjsKMTQ0NzQ6
ICBzdHJ1Y3QgZmlsZSAqZmlsZTsKMTQ0NzQ6ICBzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcV9maWxlOwox
NDQ3NDogIHZvaWQgKnByaXY7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtdXRleCBt
dXRleDsKMTQ0NzQ6ICBzdHJ1Y3QgbXV0ZXggcHJlYWxsb2NfbXV0ZXg7CjE0NDc0OiAgaW50IGV2
ZW50OwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKMTQ0NzQ6ICBjaGFyICpwcmVhbGxv
Y19idWY7CjE0NDc0OiAKMTQ0NzQ6ICBzaXplX3QgYXRvbWljX3dyaXRlX2xlbjsKMTQ0NzQ6ICBi
b29sIG1tYXBwZWQ6MTsKMTQ0NzQ6ICBib29sIHJlbGVhc2VkOjE7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICp2bV9vcHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3Qga2VybmZzX29wcyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBpbnQgKCpvcGVuKShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YpOwoxNDQ3NDogIHZv
aWQgKCpyZWxlYXNlKShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YpOwoxNDQ3NDogIyAyMjkg
Ii4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKMTQ0NzQ6ICBpbnQgKCpzZXFfc2hvdykoc3RydWN0
IHNlcV9maWxlICpzZiwgdm9pZCAqdik7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICooKnNlcV9zdGFy
dCkoc3RydWN0IHNlcV9maWxlICpzZiwgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6ICB2b2lkICooKnNl
cV9uZXh0KShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCB2b2lkICp2LCBsb2ZmX3QgKnBwb3MpOwoxNDQ3
NDogIHZvaWQgKCpzZXFfc3RvcCkoc3RydWN0IHNlcV9maWxlICpzZiwgdm9pZCAqdik7CjE0NDc0
OiAKMTQ0NzQ6ICBzc2l6ZV90ICgqcmVhZCkoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLCBj
aGFyICpidWYsIHNpemVfdCBieXRlcywKMTQ0NzQ6ICAgIGxvZmZfdCBvZmYpOwoxNDQ3NDogIyAy
NDUgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKMTQ0NzQ6ICBzaXplX3QgYXRvbWljX3dyaXRl
X2xlbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBib29sIHByZWFsbG9jOwoxNDQ3NDogIHNzaXplX3QgKCp3cml0ZSkoc3RydWN0IGtlcm5m
c19vcGVuX2ZpbGUgKm9mLCBjaGFyICpidWYsIHNpemVfdCBieXRlcywKMTQ0NzQ6ICAgICBsb2Zm
X3Qgb2ZmKTsKMTQ0NzQ6IAoxNDQ3NDogIF9fcG9sbF90ICgqcG9sbCkoc3RydWN0IGtlcm5mc19v
cGVuX2ZpbGUgKm9mLAoxNDQ3NDogICAgIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqcHQpOwox
NDQ3NDogCjE0NDc0OiAgaW50ICgqbW1hcCkoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLCBz
dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBrZXJuZnNfZnNfY29udGV4dCB7CjE0NDc0OiAgc3RydWN0IGtlcm5mc19yb290ICpyb290Owox
NDQ3NDogIHZvaWQgKm5zX3RhZzsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG1hZ2ljOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBib29sIG5ld19zYl9jcmVhdGVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0ga2VybmZzX25vZGVfdHlwZSBrZXJuZnNfdHlwZShz
dHJ1Y3Qga2VybmZzX25vZGUgKmtuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrbi0+ZmxhZ3Mg
JiAweDAwMGY7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IGtlcm5mc19pZF9pbm8odTY0
IGlkKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKHNpemVvZihpbm9fdCkgPj0gc2l6ZW9m
KHU2NCkpCjE0NDc0OiAgIHJldHVybiBpZDsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiAo
dTMyKWlkOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIga2VybmZzX2lkX2dlbih1NjQgaWQp
CjE0NDc0OiB7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoc2l6ZW9mKGlub190KSA+PSBzaXplb2YodTY0
KSkKMTQ0NzQ6ICAgcmV0dXJuIDE7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICByZXR1cm4gaWQgPj4g
MzI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IGtlcm5mc19pbm8oc3RydWN0IGtlcm5m
c19ub2RlICprbikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2VybmZzX2lkX2lubyhrbi0+aWQp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbm9fdCBrZXJuZnNfZ2VuKHN0cnVjdCBrZXJuZnNf
bm9kZSAqa24pCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtlcm5mc19pZF9nZW4oa24tPmlkKTsK
MTQ0NzQ6IH0KMTQ0NzQ6ICMgMzIxICIuL2luY2x1ZGUvbGludXgva2VybmZzLmgiCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGtlcm5mc19lbmFibGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICprbikKMTQ0NzQ6IHsKMTQ0
NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGtlcm5mc190eXBlKGtuKSAhPSBLRVJORlNf
RElSKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRv
IHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAi
LnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAi
IC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIg
LSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRy
eTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3Jn
IDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2tlcm5mcy5o
IiksICJpIiAoMzIzKSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDM1KSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3
NDogICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoeyB1bmlvbiB7IHR5cGVvZigoJmtuLT5k
aXIuY2hpbGRyZW4pLT5yYl9ub2RlKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkg
X19yZWFkX29uY2Vfc2l6ZSgmKCgma24tPmRpci5jaGlsZHJlbiktPnJiX25vZGUpLCBfX3UuX19j
LCBzaXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9kZSkpOyBlbHNlIF9fcmVhZF9vbmNl
X3NpemVfbm9jaGVjaygmKCgma24tPmRpci5jaGlsZHJlbiktPnJiX25vZGUpLCBfX3UuX19jLCBz
aXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9kZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pID09ICgodm9pZCAqKTApKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9f
cmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIg
Ii5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJc
biIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJc
biIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJc
dC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1
Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImki
ICgiaW5jbHVkZS9saW51eC9rZXJuZnMuaCIpLCAiaSIgKDMyNCksICJpIiAoKDEgPDwgMCl8KCgx
IDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9
IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlz
Y2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0
IiA6IDogImkiICgzNikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICBrbi0+ZmxhZ3MgfD0gS0VSTkZTX05TOwoxNDQ3
NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIGtlcm5mc19uc19lbmFibGVkKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24p
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtuLT5mbGFncyAmIEtFUk5GU19OUzsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogaW50IGtlcm5mc19uYW1lKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNo
YXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7CjE0NDc0OiBpbnQga2VybmZzX3BhdGhfZnJvbV9ub2Rl
KHN0cnVjdCBrZXJuZnNfbm9kZSAqcm9vdF9rbiwgc3RydWN0IGtlcm5mc19ub2RlICprbiwKMTQ0
NzQ6ICAgICAgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKTsKMTQ0NzQ6IHZvaWQgcHJfY29udF9r
ZXJuZnNfbmFtZShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IHZvaWQgcHJfY29udF9r
ZXJuZnNfcGF0aChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNf
bm9kZSAqa2VybmZzX2dldF9wYXJlbnQoc3RydWN0IGtlcm5mc19ub2RlICprbik7CjE0NDc0OiBz
dHJ1Y3Qga2VybmZzX25vZGUgKmtlcm5mc19maW5kX2FuZF9nZXRfbnMoc3RydWN0IGtlcm5mc19u
b2RlICpwYXJlbnQsCjE0NDc0OiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHZvaWQg
Km5zKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX3dhbGtfYW5kX2dldF9ucyhz
dHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwKMTQ0NzQ6ICAgICAgICAgY29uc3QgY2hhciAqcGF0
aCwgY29uc3Qgdm9pZCAqbnMpOwoxNDQ3NDogdm9pZCBrZXJuZnNfZ2V0KHN0cnVjdCBrZXJuZnNf
bm9kZSAqa24pOwoxNDQ3NDogdm9pZCBrZXJuZnNfcHV0KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24p
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2VybmZzX25vZGUgKmtlcm5mc19ub2RlX2Zyb21fZGVu
dHJ5KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX3Jvb3QgKmtl
cm5mc19yb290X2Zyb21fc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CjE0NDc0OiBzdHJ1Y3Qg
aW5vZGUgKmtlcm5mc19nZXRfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtl
cm5mc19ub2RlICprbik7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZW50cnkgKmtlcm5mc19ub2Rl
X2RlbnRyeShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLAoxNDQ3NDogICAgICAgc3RydWN0IHN1cGVy
X2Jsb2NrICpzYik7CjE0NDc0OiBzdHJ1Y3Qga2VybmZzX3Jvb3QgKmtlcm5mc19jcmVhdGVfcm9v
dChzdHJ1Y3Qga2VybmZzX3N5c2NhbGxfb3BzICpzY29wcywKMTQ0NzQ6ICAgICAgICAgICAgdW5z
aWduZWQgaW50IGZsYWdzLCB2b2lkICpwcml2KTsKMTQ0NzQ6IHZvaWQga2VybmZzX2Rlc3Ryb3lf
cm9vdChzdHJ1Y3Qga2VybmZzX3Jvb3QgKnJvb3QpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qga2Vy
bmZzX25vZGUgKmtlcm5mc19jcmVhdGVfZGlyX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50
LAoxNDQ3NDogICAgICAgY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAoxNDQ3NDogICAg
ICAga3VpZF90IHVpZCwga2dpZF90IGdpZCwKMTQ0NzQ6ICAgICAgIHZvaWQgKnByaXYsIGNvbnN0
IHZvaWQgKm5zKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX2NyZWF0ZV9lbXB0
eV9kaXIoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCjE0NDc0OiAgICAgICAgICBjb25zdCBj
aGFyICpuYW1lKTsKMTQ0NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqX19rZXJuZnNfY3JlYXRlX2Zp
bGUoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCjE0NDc0OiAgICAgICBjb25zdCBjaGFyICpu
YW1lLCB1bW9kZV90IG1vZGUsCjE0NDc0OiAgICAgICBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAox
NDQ3NDogICAgICAgbG9mZl90IHNpemUsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3Qga2VybmZz
X29wcyAqb3BzLAoxNDQ3NDogICAgICAgdm9pZCAqcHJpdiwgY29uc3Qgdm9pZCAqbnMsCjE0NDc0
OiAgICAgICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSk7CjE0NDc0OiBzdHJ1Y3Qga2VybmZz
X25vZGUgKmtlcm5mc19jcmVhdGVfbGluayhzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwKMTQ0
NzQ6ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICAgICAgc3RydWN0
IGtlcm5mc19ub2RlICp0YXJnZXQpOwoxNDQ3NDogdm9pZCBrZXJuZnNfYWN0aXZhdGUoc3RydWN0
IGtlcm5mc19ub2RlICprbik7CjE0NDc0OiB2b2lkIGtlcm5mc19yZW1vdmUoc3RydWN0IGtlcm5m
c19ub2RlICprbik7CjE0NDc0OiB2b2lkIGtlcm5mc19icmVha19hY3RpdmVfcHJvdGVjdGlvbihz
dHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IHZvaWQga2VybmZzX3VuYnJlYWtfYWN0aXZl
X3Byb3RlY3Rpb24oc3RydWN0IGtlcm5mc19ub2RlICprbik7CjE0NDc0OiBib29sIGtlcm5mc19y
ZW1vdmVfc2VsZihzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IGludCBrZXJuZnNfcmVt
b3ZlX2J5X25hbWVfbnMoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5h
bWUsCjE0NDc0OiAgICAgICAgIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IGludCBrZXJuZnNfcmVu
YW1lX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIHN0cnVjdCBrZXJuZnNfbm9kZSAqbmV3X3Bh
cmVudCwKMTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICpuZXdfbmFtZSwgY29uc3Qgdm9pZCAqbmV3
X25zKTsKMTQ0NzQ6IGludCBrZXJuZnNfc2V0YXR0cihzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLCBj
b25zdCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKTsKMTQ0NzQ6IF9fcG9sbF90IGtlcm5mc19nZW5lcmlj
X3BvbGwoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAoxNDQ3NDogICAgICAgICBzdHJ1Y3Qg
cG9sbF90YWJsZV9zdHJ1Y3QgKnB0KTsKMTQ0NzQ6IHZvaWQga2VybmZzX25vdGlmeShzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtuKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGtlcm5mc194YXR0cl9nZXQoc3Ry
dWN0IGtlcm5mc19ub2RlICprbiwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICB2b2lk
ICp2YWx1ZSwgc2l6ZV90IHNpemUpOwoxNDQ3NDogaW50IGtlcm5mc194YXR0cl9zZXQoc3RydWN0
IGtlcm5mc19ub2RlICprbiwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICBjb25zdCB2
b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncyk7CjE0NDc0OiAKMTQ0NzQ6IGNvbnN0
IHZvaWQgKmtlcm5mc19zdXBlcl9ucyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IGlu
dCBrZXJuZnNfZ2V0X3RyZWUoc3RydWN0IGZzX2NvbnRleHQgKmZjKTsKMTQ0NzQ6IHZvaWQga2Vy
bmZzX2ZyZWVfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOwoxNDQ3NDogdm9pZCBr
ZXJuZnNfa2lsbF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBrZXJuZnNfaW5pdCh2b2lkKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtlcm5mc19ub2RlICpr
ZXJuZnNfZmluZF9hbmRfZ2V0X25vZGVfYnlfaWQoc3RydWN0IGtlcm5mc19yb290ICpyb290LAox
NDQ3NDogICAgICAgICAgdTY0IGlkKTsKMTQ0NzQ6ICMgNTMzICIuL2luY2x1ZGUvbGludXgva2Vy
bmZzLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQga2VybmZzX3BhdGgoc3RydWN0IGtlcm5mc19ub2RlICprbiwgY2hh
ciAqYnVmLCBzaXplX3QgYnVmbGVuKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfcGF0
aF9mcm9tX25vZGUoa24sICgodm9pZCAqKTApLCBidWYsIGJ1Zmxlbik7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCBrZXJuZnNfbm9kZSAqCjE0NDc0OiBrZXJuZnNfZmluZF9hbmRfZ2V0
KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNvbnN0IGNoYXIgKm5hbWUpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGtlcm5mc19maW5kX2FuZF9nZXRfbnMoa24sIG5hbWUsICgodm9pZCAqKTApKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtlcm5mc19ub2RlICoKMTQ0NzQ6IGtlcm5m
c193YWxrX2FuZF9nZXQoc3RydWN0IGtlcm5mc19ub2RlICprbiwgY29uc3QgY2hhciAqcGF0aCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga2VybmZzX3dhbGtfYW5kX2dldF9ucyhrbiwgcGF0aCwg
KCh2b2lkICopMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUg
KgoxNDQ3NDoga2VybmZzX2NyZWF0ZV9kaXIoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsIGNv
bnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICB2b2lkICpwcml2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfY3JlYXRlX2Rpcl9ucyhwYXJlbnQsIG5hbWUsIG1v
ZGUsCjE0NDc0OiAgICAgICAgIChrdWlkX3QpeyAwIH0sIChrZ2lkX3QpeyAwIH0sCjE0NDc0OiAg
ICAgICAgIHByaXYsICgodm9pZCAqKTApKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGtlcm5mc19ub2RlICoKMTQ0NzQ6IGtlcm5mc19jcmVhdGVfZmlsZV9ucyhzdHJ1Y3Qga2VybmZz
X25vZGUgKnBhcmVudCwgY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICAgdW1vZGVfdCBt
b2RlLCBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAoxNDQ3NDogICAgICAgICBsb2ZmX3Qgc2l6ZSwg
Y29uc3Qgc3RydWN0IGtlcm5mc19vcHMgKm9wcywKMTQ0NzQ6ICAgICAgICAgdm9pZCAqcHJpdiwg
Y29uc3Qgdm9pZCAqbnMpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpr
ZXkgPSAoKHZvaWQgKikwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IHJldHVybiBfX2tlcm5mc19jcmVhdGVfZmlsZShwYXJlbnQsIG5hbWUsIG1vZGUsIHVpZCwgZ2lk
LAoxNDQ3NDogICAgICAgICBzaXplLCBvcHMsIHByaXYsIG5zLCBrZXkpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUgKgoxNDQ3NDoga2VybmZzX2NyZWF0ZV9maWxl
KHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1v
ZGUsCjE0NDc0OiAgICAgIGxvZmZfdCBzaXplLCBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3Bz
LCB2b2lkICpwcml2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfY3JlYXRlX2ZpbGVf
bnMocGFyZW50LCBuYW1lLCBtb2RlLAoxNDQ3NDogICAgICAgICAgKGt1aWRfdCl7IDAgfSwgKGtn
aWRfdCl7IDAgfSwKMTQ0NzQ6ICAgICAgICAgIHNpemUsIG9wcywgcHJpdiwgKCh2b2lkICopMCkp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga2VybmZzX3JlbW92ZV9ieV9uYW1lKHN0cnVj
dCBrZXJuZnNfbm9kZSAqcGFyZW50LAoxNDQ3NDogICAgICBjb25zdCBjaGFyICpuYW1lKQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfcmVtb3ZlX2J5X25hbWVfbnMocGFyZW50LCBuYW1l
LCAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBrZXJuZnNfcmVuYW1l
KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sCjE0NDc0OiAgICAgc3RydWN0IGtlcm5mc19ub2RlICpu
ZXdfcGFyZW50LAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKm5ld19uYW1lKQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBrZXJuZnNfcmVuYW1lX25zKGtuLCBuZXdfcGFyZW50LCBuZXdfbmFtZSwgKCh2
b2lkICopMCkpOwoxNDQ3NDogfQoxNDQ3NDogIyAxNyAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1ZGUv
bGludXgva29iamVjdF9ucy5oIiAxCjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgva29iamVj
dF9ucy5oIgoxNDQ3NDogc3RydWN0IHNvY2s7CjE0NDc0OiBzdHJ1Y3Qga29iamVjdDsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGtvYmpfbnNfdHlw
ZSB7CjE0NDc0OiAgS09CSl9OU19UWVBFX05PTkUgPSAwLAoxNDQ3NDogIEtPQkpfTlNfVFlQRV9O
RVQsCjE0NDc0OiAgS09CSl9OU19UWVBFUwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzkgIi4vaW5jbHVk
ZS9saW51eC9rb2JqZWN0X25zLmgiCjE0NDc0OiBzdHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlv
bnMgewoxNDQ3NDogIGVudW0ga29ial9uc190eXBlIHR5cGU7CjE0NDc0OiAgYm9vbCAoKmN1cnJl
bnRfbWF5X21vdW50KSh2b2lkKTsKMTQ0NzQ6ICB2b2lkICooKmdyYWJfY3VycmVudF9ucykodm9p
ZCk7CjE0NDc0OiAgY29uc3Qgdm9pZCAqKCpuZXRsaW5rX25zKShzdHJ1Y3Qgc29jayAqc2spOwox
NDQ3NDogIGNvbnN0IHZvaWQgKigqaW5pdGlhbF9ucykodm9pZCk7CjE0NDc0OiAgdm9pZCAoKmRy
b3BfbnMpKHZvaWQgKik7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBpbnQga29ial9uc190eXBl
X3JlZ2lzdGVyKGNvbnN0IHN0cnVjdCBrb2JqX25zX3R5cGVfb3BlcmF0aW9ucyAqb3BzKTsKMTQ0
NzQ6IGludCBrb2JqX25zX3R5cGVfcmVnaXN0ZXJlZChlbnVtIGtvYmpfbnNfdHlwZSB0eXBlKTsK
MTQ0NzQ6IGNvbnN0IHN0cnVjdCBrb2JqX25zX3R5cGVfb3BlcmF0aW9ucyAqa29ial9jaGlsZF9u
c19vcHMoc3RydWN0IGtvYmplY3QgKnBhcmVudCk7CjE0NDc0OiBjb25zdCBzdHJ1Y3Qga29ial9u
c190eXBlX29wZXJhdGlvbnMgKmtvYmpfbnNfb3BzKHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKMTQ0
NzQ6IAoxNDQ3NDogYm9vbCBrb2JqX25zX2N1cnJlbnRfbWF5X21vdW50KGVudW0ga29ial9uc190
eXBlIHR5cGUpOwoxNDQ3NDogdm9pZCAqa29ial9uc19ncmFiX2N1cnJlbnQoZW51bSBrb2JqX25z
X3R5cGUgdHlwZSk7CjE0NDc0OiBjb25zdCB2b2lkICprb2JqX25zX25ldGxpbmsoZW51bSBrb2Jq
X25zX3R5cGUgdHlwZSwgc3RydWN0IHNvY2sgKnNrKTsKMTQ0NzQ6IGNvbnN0IHZvaWQgKmtvYmpf
bnNfaW5pdGlhbChlbnVtIGtvYmpfbnNfdHlwZSB0eXBlKTsKMTQ0NzQ6IHZvaWQga29ial9uc19k
cm9wKGVudW0ga29ial9uc190eXBlIHR5cGUsIHZvaWQgKm5zKTsKMTQ0NzQ6ICMgMjIgIi4vaW5j
bHVkZS9saW51eC9zeXNmcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qga29iamVjdDsKMTQ0NzQ6IHN0cnVjdCBtb2R1bGU7CjE0NDc0OiBzdHJ1Y3QgYmluX2F0dHJp
YnV0ZTsKMTQ0NzQ6IGVudW0ga29ial9uc190eXBlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXR0
cmlidXRlIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIHVtb2RlX3QgbW9kZTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDog
IyA4NCAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCjE0NDc0OiBzdHJ1Y3QgYXR0cmlidXRlX2dy
b3VwIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIHVtb2RlX3QgKCppc192aXNp
YmxlKShzdHJ1Y3Qga29iamVjdCAqLAoxNDQ3NDogICAgICAgICAgICBzdHJ1Y3QgYXR0cmlidXRl
ICosIGludCk7CjE0NDc0OiAgdW1vZGVfdCAoKmlzX2Jpbl92aXNpYmxlKShzdHJ1Y3Qga29iamVj
dCAqLAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqLCBpbnQpOwoxNDQ3NDog
IHN0cnVjdCBhdHRyaWJ1dGUgKiphdHRyczsKMTQ0NzQ6ICBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAq
KmJpbl9hdHRyczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE1OCAiLi9pbmNsdWRlL2xpbnV4L3N5c2Zz
LmgiCjE0NDc0OiBzdHJ1Y3QgZmlsZTsKMTQ0NzQ6IHN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGJpbl9hdHRyaWJ1dGUgewoxNDQ3NDogIHN0cnVjdCBhdHRyaWJ1
dGUgYXR0cjsKMTQ0NzQ6ICBzaXplX3Qgc2l6ZTsKMTQ0NzQ6ICB2b2lkICpwcml2YXRlOwoxNDQ3
NDogIHNzaXplX3QgKCpyZWFkKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1
Y3QgYmluX2F0dHJpYnV0ZSAqLAoxNDQ3NDogICAgY2hhciAqLCBsb2ZmX3QsIHNpemVfdCk7CjE0
NDc0OiAgc3NpemVfdCAoKndyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVjdCAqLCBz
dHJ1Y3QgYmluX2F0dHJpYnV0ZSAqLAoxNDQ3NDogICAgIGNoYXIgKiwgbG9mZl90LCBzaXplX3Qp
OwoxNDQ3NDogIGludCAoKm1tYXApKHN0cnVjdCBmaWxlICosIHN0cnVjdCBrb2JqZWN0ICosIHN0
cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgICAgc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjIzICIuL2luY2x1ZGUvbGludXgvc3lzZnMu
aCIKMTQ0NzQ6IHN0cnVjdCBzeXNmc19vcHMgewoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1
Y3Qga29iamVjdCAqLCBzdHJ1Y3QgYXR0cmlidXRlICosIGNoYXIgKik7CjE0NDc0OiAgc3NpemVf
dCAoKnN0b3JlKShzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1Y3QgYXR0cmlidXRlICosIGNvbnN0IGNo
YXIgKiwgc2l6ZV90KTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9k
aXJfbnMoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IHZvaWQg
c3lzZnNfcmVtb3ZlX2RpcihzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0NDc0OiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX3JlbmFtZV9kaXJfbnMoc3Ry
dWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5ld19uYW1lLAoxNDQ3NDogICAgICAgICAg
Y29uc3Qgdm9pZCAqbmV3X25zKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkgc3lzZnNfbW92ZV9kaXJfbnMoc3RydWN0IGtvYmplY3QgKmtvYmosCjE0
NDc0OiAgICAgICAgc3RydWN0IGtvYmplY3QgKm5ld19wYXJlbnRfa29iaiwKMTQ0NzQ6ICAgICAg
ICBjb25zdCB2b2lkICpuZXdfbnMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jcmVhdGVfbW91bnRfcG9pbnQoc3RydWN0IGtvYmplY3Qg
KnBhcmVudF9rb2JqLAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogdm9p
ZCBzeXNmc19yZW1vdmVfbW91bnRfcG9pbnQoc3RydWN0IGtvYmplY3QgKnBhcmVudF9rb2JqLAox
NDQ3NDogICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2ZpbGVfbnMo
c3RydWN0IGtvYmplY3QgKmtvYmosCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJp
YnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCB2b2lkICpucyk7CjE0NDc0OiBpbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9maWxl
cyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmli
dXRlICogY29uc3QgKmF0dHIpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVz
ZWRfcmVzdWx0X18pKSBzeXNmc19jaG1vZF9maWxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3
NDogICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgdW1vZGVfdCBtb2RlKTsKMTQ0
NzQ6IHN0cnVjdCBrZXJuZnNfbm9kZSAqc3lzZnNfYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3Ry
dWN0IGtvYmplY3QgKmtvYmosCjE0NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUg
KmF0dHIpOwoxNDQ3NDogdm9pZCBzeXNmc191bmJyZWFrX2FjdGl2ZV9wcm90ZWN0aW9uKHN0cnVj
dCBrZXJuZnNfbm9kZSAqa24pOwoxNDQ3NDogdm9pZCBzeXNmc19yZW1vdmVfZmlsZV9ucyhzdHJ1
Y3Qga29iamVjdCAqa29iaiwgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAg
ICAgY29uc3Qgdm9pZCAqbnMpOwoxNDQ3NDogYm9vbCBzeXNmc19yZW1vdmVfZmlsZV9zZWxmKHN0
cnVjdCBrb2JqZWN0ICprb2JqLCBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKTsKMTQ0NzQ6
IHZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGVzKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBjb25zdCBzdHJ1
Y3QgYXR0cmlidXRlICogY29uc3QgKmF0dHIpOwoxNDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZShzdHJ1
Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRy
aWJ1dGUgKmF0dHIpOwoxNDQ3NDogdm9pZCBzeXNmc19yZW1vdmVfYmluX2ZpbGUoc3RydWN0IGtv
YmplY3QgKmtvYmosCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0
cik7CjE0NDc0OiAKMTQ0NzQ6IGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgc3lzZnNfY3JlYXRlX2xpbmsoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2Jq
ZWN0ICp0YXJnZXQsCjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiBpbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX2NyZWF0ZV9saW5r
X25vd2FybihzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICBzdHJ1Y3Qga29iamVj
dCAqdGFyZ2V0LAoxNDQ3NDogICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOwoxNDQ3NDogdm9pZCBz
eXNmc19yZW1vdmVfbGluayhzdHJ1Y3Qga29iamVjdCAqa29iaiwgY29uc3QgY2hhciAqbmFtZSk7
CjE0NDc0OiAKMTQ0NzQ6IGludCBzeXNmc19yZW5hbWVfbGlua19ucyhzdHJ1Y3Qga29iamVjdCAq
a29iaiwgc3RydWN0IGtvYmplY3QgKnRhcmdldCwKMTQ0NzQ6ICAgICBjb25zdCBjaGFyICpvbGRf
bmFtZSwgY29uc3QgY2hhciAqbmV3X25hbWUsCjE0NDc0OiAgICAgY29uc3Qgdm9pZCAqbmV3X25z
KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBzeXNmc19kZWxldGVfbGluayhzdHJ1Y3Qga29iamVjdCAq
ZGlyLCBzdHJ1Y3Qga29iamVjdCAqdGFyZywKMTQ0NzQ6ICAgIGNvbnN0IGNoYXIgKm5hbWUpOwox
NDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IHN5c2ZzX2NyZWF0ZV9ncm91cChzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAg
Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKMTQ0NzQ6IGludCBfX2F0dHJpYnV0
ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2dyb3VwcyhzdHJ1Y3Qg
a29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv
dXAgKipncm91cHMpOwoxNDQ3NDogaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBzeXNmc191cGRhdGVfZ3JvdXBzKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDog
ICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiBp
bnQgc3lzZnNfdXBkYXRlX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDogICAgICAg
ICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKMTQ0NzQ6IHZvaWQgc3lzZnNf
cmVtb3ZlX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0
IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKMTQ0NzQ6IHZvaWQgc3lzZnNfcmVtb3ZlX2dyb3Vwcyhz
dHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dy
b3VwICoqZ3JvdXBzKTsKMTQ0NzQ6IGludCBzeXNmc19hZGRfZmlsZV90b19ncm91cChzdHJ1Y3Qg
a29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGNv
bnN0IGNoYXIgKmdyb3VwKTsKMTQ0NzQ6IHZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGVfZnJvbV9ncm91
cChzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUg
KmF0dHIsIGNvbnN0IGNoYXIgKmdyb3VwKTsKMTQ0NzQ6IGludCBzeXNmc19tZXJnZV9ncm91cChz
dHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGVfZ3JvdXAgKmdycCk7CjE0NDc0OiB2b2lkIHN5c2ZzX3VubWVyZ2VfZ3JvdXAoc3RydWN0IGtv
YmplY3QgKmtvYmosCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3Vw
ICpncnApOwoxNDQ3NDogaW50IHN5c2ZzX2FkZF9saW5rX3RvX2dyb3VwKHN0cnVjdCBrb2JqZWN0
ICprb2JqLCBjb25zdCBjaGFyICpncm91cF9uYW1lLAoxNDQ3NDogICAgICAgIHN0cnVjdCBrb2Jq
ZWN0ICp0YXJnZXQsIGNvbnN0IGNoYXIgKmxpbmtfbmFtZSk7CjE0NDc0OiB2b2lkIHN5c2ZzX3Jl
bW92ZV9saW5rX2Zyb21fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKmdy
b3VwX25hbWUsCjE0NDc0OiAgICAgICBjb25zdCBjaGFyICpsaW5rX25hbWUpOwoxNDQ3NDogaW50
IF9fY29tcGF0X29ubHlfc3lzZnNfbGlua19lbnRyeV90b19rb2JqKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCBrb2JqZWN0ICp0YXJnZXRfa29iaiwKMTQ0NzQ6
ICAgICAgICAgICBjb25zdCBjaGFyICp0YXJnZXRfbmFtZSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQg
c3lzZnNfbm90aWZ5KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBjb25zdCBjaGFyICpkaXIsIGNvbnN0
IGNoYXIgKmF0dHIpOwoxNDQ3NDogCjE0NDc0OiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIHN5c2ZzX2luaXQodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lz
ZnNfZW5hYmxlX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGtlcm5mc19lbmFibGVfbnMoa24pOwoxNDQ3NDogfQoxNDQ3NDogIyA1MjcgIi4vaW5jbHVk
ZS9saW51eC9zeXNmcy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBzeXNmc19jcmVhdGVfZmlsZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKMTQ0NzQ6
ICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBzeXNmc19jcmVhdGVfZmlsZV9ucyhrb2JqLCBhdHRyLCAoKHZvaWQgKikwKSk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGUoc3RydWN0IGtvYmplY3Qg
KmtvYmosCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQoxNDQ3
NDogewoxNDQ3NDogIHN5c2ZzX3JlbW92ZV9maWxlX25zKGtvYmosIGF0dHIsICgodm9pZCAqKTAp
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN5c2ZzX3JlbmFtZV9saW5rKHN0cnVjdCBr
b2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29iamVjdCAqdGFyZ2V0LAoxNDQ3NDogICAgICAgICBjb25z
dCBjaGFyICpvbGRfbmFtZSwgY29uc3QgY2hhciAqbmV3X25hbWUpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIHN5c2ZzX3JlbmFtZV9saW5rX25zKGtvYmosIHRhcmdldCwgb2xkX25hbWUsIG5ld19u
YW1lLCAoKHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lzZnNfbm90
aWZ5X2RpcmVudChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQoxNDQ3NDogewoxNDQ3NDogIGtlcm5m
c19ub3RpZnkoa24pOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUg
KnN5c2ZzX2dldF9kaXJlbnQoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCjE0NDc0OiAgICAg
ICAgICBjb25zdCBjaGFyICpuYW1lKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrZXJuZnNfZmlu
ZF9hbmRfZ2V0KHBhcmVudCwgbmFtZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBr
ZXJuZnNfbm9kZSAqc3lzZnNfZ2V0KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pCjE0NDc0OiB7CjE0
NDc0OiAga2VybmZzX2dldChrbik7CjE0NDc0OiAgcmV0dXJuIGtuOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHN5c2ZzX3B1dChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQoxNDQ3NDogewox
NDQ3NDogIGtlcm5mc19wdXQoa24pOwoxNDQ3NDogfQoxNDQ3NDogIyAyMSAiLi9pbmNsdWRlL2xp
bnV4L2tvYmplY3QuaCIgMgoxNDQ3NDogIyA0MSAiLi9pbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIK
MTQ0NzQ6IGV4dGVybiB1NjQgdWV2ZW50X3NlcW51bTsKMTQ0NzQ6ICMgNTMgIi4vaW5jbHVkZS9s
aW51eC9rb2JqZWN0LmgiCjE0NDc0OiBlbnVtIGtvYmplY3RfYWN0aW9uIHsKMTQ0NzQ6ICBLT0JK
X0FERCwKMTQ0NzQ6ICBLT0JKX1JFTU9WRSwKMTQ0NzQ6ICBLT0JKX0NIQU5HRSwKMTQ0NzQ6ICBL
T0JKX01PVkUsCjE0NDc0OiAgS09CSl9PTkxJTkUsCjE0NDc0OiAgS09CSl9PRkZMSU5FLAoxNDQ3
NDogIEtPQkpfQklORCwKMTQ0NzQ6ICBLT0JKX1VOQklORCwKMTQ0NzQ6ICBLT0JKX01BWAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtvYmplY3QgewoxNDQ3NDogIGNvbnN0IGNoYXIg
Km5hbWU7CjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKMTQ0NzQ6ICBzdHJ1Y3Qga29i
amVjdCAqcGFyZW50OwoxNDQ3NDogIHN0cnVjdCBrc2V0ICprc2V0OwoxNDQ3NDogIHN0cnVjdCBr
b2JqX3R5cGUgKmt0eXBlOwoxNDQ3NDogIHN0cnVjdCBrZXJuZnNfbm9kZSAqc2Q7CjE0NDc0OiAg
c3RydWN0IGtyZWYga3JlZjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgc3RhdGVfaW5pdGlhbGl6ZWQ6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RhdGVfaW5f
c3lzZnM6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RhdGVfYWRkX3VldmVudF9zZW50OjE7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHN0YXRlX3JlbW92ZV91ZXZlbnRfc2VudDoxOwoxNDQ3NDogIHVu
c2lnbmVkIGludCB1ZXZlbnRfc3VwcHJlc3M6MTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKQoxNDQ3NDogaW50
IGtvYmplY3Rfc2V0X25hbWUoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5hbWUs
IC4uLik7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIs
IDApKSkKMTQ0NzQ6IGludCBrb2JqZWN0X3NldF9uYW1lX3ZhcmdzKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLCBjb25zdCBjaGFyICpmbXQsCjE0NDc0OiAgICAgICB2YV9saXN0IHZhcmdzKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgY29uc3QgY2hhciAqa29iamVjdF9uYW1lKGNvbnN0IHN0cnVjdCBrb2JqZWN0ICpr
b2JqKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBrb2JqLT5uYW1lOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBleHRlcm4gdm9pZCBrb2JqZWN0X2luaXQoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0
cnVjdCBrb2JqX3R5cGUgKmt0eXBlKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKHByaW50ZiwgMywgNCkpKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkKMTQ0NzQ6IGludCBrb2JqZWN0X2FkZChzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0
IGtvYmplY3QgKnBhcmVudCwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwoxNDQ3NDog
ZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCA0LCA1KSkpIF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKQoxNDQ3NDogaW50IGtvYmplY3RfaW5pdF9h
bmRfYWRkKHN0cnVjdCBrb2JqZWN0ICprb2JqLAoxNDQ3NDogICAgIHN0cnVjdCBrb2JqX3R5cGUg
Kmt0eXBlLCBzdHJ1Y3Qga29iamVjdCAqcGFyZW50LAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKmZt
dCwgLi4uKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga29iamVjdF9kZWwoc3RydWN0IGtv
YmplY3QgKmtvYmopOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKiBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga29iamVjdF9jcmVhdGUodm9pZCk7
CjE0NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkga29iamVjdF9jcmVhdGVfYW5kX2FkZChjb25zdCBjaGFyICpuYW1lLAox
NDQ3NDogICAgICAgc3RydWN0IGtvYmplY3QgKnBhcmVudCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVy
biBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtvYmplY3RfcmVu
YW1lKHN0cnVjdCBrb2JqZWN0ICosIGNvbnN0IGNoYXIgKm5ld19uYW1lKTsKMTQ0NzQ6IGV4dGVy
biBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtvYmplY3RfbW92
ZShzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1Y3Qga29iamVjdCAqKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBrb2JqZWN0ICprb2JqZWN0X2dldChzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0
NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkga29iamVjdF9nZXRfdW5sZXNzX3plcm8oCjE0NDc0OiAgICAgICBzdHJ1Y3Qg
a29iamVjdCAqa29iaik7CjE0NDc0OiBleHRlcm4gdm9pZCBrb2JqZWN0X3B1dChzdHJ1Y3Qga29i
amVjdCAqa29iaik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCB2b2lkICprb2JqZWN0X25h
bWVzcGFjZShzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0NDc0OiBleHRlcm4gdm9pZCBrb2JqZWN0
X2dldF9vd25lcnNoaXAoc3RydWN0IGtvYmplY3QgKmtvYmosCjE0NDc0OiAgICAgICBrdWlkX3Qg
KnVpZCwga2dpZF90ICpnaWQpOwoxNDQ3NDogZXh0ZXJuIGNoYXIgKmtvYmplY3RfZ2V0X3BhdGgo
c3RydWN0IGtvYmplY3QgKmtvYmosIGdmcF90IGZsYWcpOwoxNDQ3NDogIyAxMzIgIi4vaW5jbHVk
ZS9saW51eC9rb2JqZWN0LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGtvYmplY3RfaGFzX2NoaWxkcmVuKHN0cnVj
dCBrb2JqZWN0ICprb2JqKQoxNDQ3NDogewoxNDQ3NDogICh7IGludCBfX3JldF93YXJuX29uID0g
ISEoa3JlZl9yZWFkKCZrb2JqLT5rcmVmKSA9PSAwKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0
IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdc
IlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRk
clxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIg
Ilx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMg
YnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAi
aSIgKCJpbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIpLCAiaSIgKDEzNCksICJpIiAoKDEgPDwgMCl8
KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgzNykpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBrb2JqLT5zZCAm
JiBrb2JqLT5zZC0+ZGlyLnN1YmRpcnM7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBr
b2JqX3R5cGUgewoxNDQ3NDogIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3Qga29iamVjdCAqa29iaik7
CjE0NDc0OiAgY29uc3Qgc3RydWN0IHN5c2ZzX29wcyAqc3lzZnNfb3BzOwoxNDQ3NDogIHN0cnVj
dCBhdHRyaWJ1dGUgKipkZWZhdWx0X2F0dHJzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGVfZ3JvdXAgKipkZWZhdWx0X2dyb3VwczsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3Qga29ial9uc190
eXBlX29wZXJhdGlvbnMgKigqY2hpbGRfbnNfdHlwZSkoc3RydWN0IGtvYmplY3QgKmtvYmopOwox
NDQ3NDogIGNvbnN0IHZvaWQgKigqbmFtZXNwYWNlKShzdHJ1Y3Qga29iamVjdCAqa29iaik7CjE0
NDc0OiAgdm9pZCAoKmdldF9vd25lcnNoaXApKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBrdWlkX3Qg
KnVpZCwga2dpZF90ICpnaWQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGtvYmpf
dWV2ZW50X2VudiB7CjE0NDc0OiAgY2hhciAqYXJndlszXTsKMTQ0NzQ6ICBjaGFyICplbnZwWzMy
XTsKMTQ0NzQ6ICBpbnQgZW52cF9pZHg7CjE0NDc0OiAgY2hhciBidWZbMjA0OF07CjE0NDc0OiAg
aW50IGJ1ZmxlbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrc2V0X3VldmVudF9v
cHMgewoxNDQ3NDogIGludCAoKiBjb25zdCBmaWx0ZXIpKHN0cnVjdCBrc2V0ICprc2V0LCBzdHJ1
Y3Qga29iamVjdCAqa29iaik7CjE0NDc0OiAgY29uc3QgY2hhciAqKCogY29uc3QgbmFtZSkoc3Ry
dWN0IGtzZXQgKmtzZXQsIHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKMTQ0NzQ6ICBpbnQgKCogY29u
c3QgdWV2ZW50KShzdHJ1Y3Qga3NldCAqa3NldCwgc3RydWN0IGtvYmplY3QgKmtvYmosCjE0NDc0
OiAgICAgICAgIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgewoxNDQ3NDogIHN0cnVjdCBhdHRyaWJ1dGUg
YXR0cjsKMTQ0NzQ6ICBzc2l6ZV90ICgqc2hvdykoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVj
dCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgIGNoYXIgKmJ1Zik7CjE0NDc0OiAgc3Np
emVfdCAoKnN0b3JlKShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGtvYmpfYXR0cmlidXRl
ICphdHRyLAoxNDQ3NDogICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3lzZnNfb3BzIGtvYmpfc3lz
ZnNfb3BzOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc29jazsKMTQ0NzQ6ICMgMTkzICIuL2luY2x1
ZGUvbGludXgva29iamVjdC5oIgoxNDQ3NDogc3RydWN0IGtzZXQgewoxNDQ3NDogIHN0cnVjdCBs
aXN0X2hlYWQgbGlzdDsKMTQ0NzQ6ICBzcGlubG9ja190IGxpc3RfbG9jazsKMTQ0NzQ6ICBzdHJ1
Y3Qga29iamVjdCBrb2JqOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBrc2V0X3VldmVudF9vcHMgKnVl
dmVudF9vcHM7CjE0NDc0OiB9IF9fYXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsK
MTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga3NldF9pbml0KHN0cnVjdCBrc2V0ICprc2V0KTsK
MTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGtzZXRfcmVnaXN0ZXIoc3RydWN0IGtzZXQgKmtzZXQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga3Nl
dF91bnJlZ2lzdGVyKHN0cnVjdCBrc2V0ICprc2V0KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga3Nl
dCAqIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc2V0X2NyZWF0ZV9h
bmRfYWRkKGNvbnN0IGNoYXIgKm5hbWUsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3Qga3NldF91
ZXZlbnRfb3BzICp1LAoxNDQ3NDogICAgICAgc3RydWN0IGtvYmplY3QgKnBhcmVudF9rb2JqKTsK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtzZXQgKnRvX2tzZXQoc3RydWN0IGtvYmplY3QgKmtvYmop
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGtvYmogPyAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAq
KShrb2JqKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMDkodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFp
bmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKGtvYmopKSwgdHlwZW9mKCgoc3RydWN0IGtzZXQgKikwKS0+a29iaikpICYmICFfX2J1aWx0
aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKGtvYmopKSwgdHlwZW9mKHZvaWQpKSkpKSBf
X2NvbXBpbGV0aW1lX2Fzc2VydF8yMDkoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IGtzZXQgKiko
X19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBrc2V0LCBrb2JqKSkpOyB9KSA6ICgo
dm9pZCAqKTApOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga3NldCAqa3NldF9nZXQo
c3RydWN0IGtzZXQgKmspCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGsgPyB0b19rc2V0KGtvYmpl
Y3RfZ2V0KCZrLT5rb2JqKSkgOiAoKHZvaWQgKikwKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBrc2V0X3B1dChzdHJ1Y3Qga3NldCAqaykKMTQ0NzQ6IHsKMTQ0NzQ6ICBrb2JqZWN0X3B1
dCgmay0+a29iaik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrb2JqX3R5cGUgKmdl
dF9rdHlwZShzdHJ1Y3Qga29iamVjdCAqa29iaikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4ga29i
ai0+a3R5cGU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga29iamVjdCAq
a3NldF9maW5kX29iaihzdHJ1Y3Qga3NldCAqLCBjb25zdCBjaGFyICopOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga29iamVjdCAqa2VybmVsX2tvYmo7CjE0NDc0OiAKMTQ0
NzQ6IGV4dGVybiBzdHJ1Y3Qga29iamVjdCAqbW1fa29iajsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBrb2JqZWN0ICpoeXBlcnZpc29yX2tvYmo7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBz
dHJ1Y3Qga29iamVjdCAqcG93ZXJfa29iajsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBr
b2JqZWN0ICpmaXJtd2FyZV9rb2JqOwoxNDQ3NDogCjE0NDc0OiBpbnQga29iamVjdF91ZXZlbnQo
c3RydWN0IGtvYmplY3QgKmtvYmosIGVudW0ga29iamVjdF9hY3Rpb24gYWN0aW9uKTsKMTQ0NzQ6
IGludCBrb2JqZWN0X3VldmVudF9lbnYoc3RydWN0IGtvYmplY3QgKmtvYmosIGVudW0ga29iamVj
dF9hY3Rpb24gYWN0aW9uLAoxNDQ3NDogICAgY2hhciAqZW52cFtdKTsKMTQ0NzQ6IGludCBrb2Jq
ZWN0X3N5bnRoX3VldmVudChzdHJ1Y3Qga29iamVjdCAqa29iaiwgY29uc3QgY2hhciAqYnVmLCBz
aXplX3QgY291bnQpOwoxNDQ3NDogCjE0NDc0OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMiwgMykpKQoxNDQ3NDogaW50IGFkZF91ZXZlbnRfdmFyKHN0cnVjdCBrb2JqX3VldmVu
dF9lbnYgKmVudiwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwoxNDQ3NDogIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L2RldmljZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9rbGlzdC5o
IiAxCjE0NDc0OiAjIDE3ICIuL2luY2x1ZGUvbGludXgva2xpc3QuaCIKMTQ0NzQ6IHN0cnVjdCBr
bGlzdF9ub2RlOwoxNDQ3NDogc3RydWN0IGtsaXN0IHsKMTQ0NzQ6ICBzcGlubG9ja190IGtfbG9j
azsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGtfbGlzdDsKMTQ0NzQ6ICB2b2lkICgqZ2V0KShz
dHJ1Y3Qga2xpc3Rfbm9kZSAqKTsKMTQ0NzQ6ICB2b2lkICgqcHV0KShzdHJ1Y3Qga2xpc3Rfbm9k
ZSAqKTsKMTQ0NzQ6IH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQgKHNpemVvZih2b2lkICopKSkp
OwoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2xpbnV4L2tsaXN0LmgiCjE0NDc0OiBleHRlcm4gdm9p
ZCBrbGlzdF9pbml0KHN0cnVjdCBrbGlzdCAqaywgdm9pZCAoKmdldCkoc3RydWN0IGtsaXN0X25v
ZGUgKiksCjE0NDc0OiAgICAgICAgICB2b2lkICgqcHV0KShzdHJ1Y3Qga2xpc3Rfbm9kZSAqKSk7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrbGlzdF9ub2RlIHsKMTQ0NzQ6ICB2b2lkICpuX2tsaXN0
OwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgbl9ub2RlOwoxNDQ3NDogIHN0cnVjdCBrcmVmIG5f
cmVmOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQga2xpc3RfYWRkX3RhaWwo
c3RydWN0IGtsaXN0X25vZGUgKm4sIHN0cnVjdCBrbGlzdCAqayk7CjE0NDc0OiBleHRlcm4gdm9p
ZCBrbGlzdF9hZGRfaGVhZChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGtsaXN0ICprKTsK
MTQ0NzQ6IGV4dGVybiB2b2lkIGtsaXN0X2FkZF9iZWhpbmQoc3RydWN0IGtsaXN0X25vZGUgKm4s
IHN0cnVjdCBrbGlzdF9ub2RlICpwb3MpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2xpc3RfYWRkX2Jl
Zm9yZShzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGtsaXN0X25vZGUgKnBvcyk7CjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGtsaXN0X2RlbChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbik7CjE0
NDc0OiBleHRlcm4gdm9pZCBrbGlzdF9yZW1vdmUoc3RydWN0IGtsaXN0X25vZGUgKm4pOwoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gaW50IGtsaXN0X25vZGVfYXR0YWNoZWQoc3RydWN0IGtsaXN0X25v
ZGUgKm4pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBrbGlzdF9pdGVyIHsKMTQ0NzQ6
ICBzdHJ1Y3Qga2xpc3QgKmlfa2xpc3Q7CjE0NDc0OiAgc3RydWN0IGtsaXN0X25vZGUgKmlfY3Vy
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBrbGlzdF9pdGVy
X2luaXQoc3RydWN0IGtsaXN0ICprLCBzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CjE0NDc0OiBleHRl
cm4gdm9pZCBrbGlzdF9pdGVyX2luaXRfbm9kZShzdHJ1Y3Qga2xpc3QgKmssIHN0cnVjdCBrbGlz
dF9pdGVyICppLAoxNDQ3NDogICAgICBzdHJ1Y3Qga2xpc3Rfbm9kZSAqbik7CjE0NDc0OiBleHRl
cm4gdm9pZCBrbGlzdF9pdGVyX2V4aXQoc3RydWN0IGtsaXN0X2l0ZXIgKmkpOwoxNDQ3NDogZXh0
ZXJuIHN0cnVjdCBrbGlzdF9ub2RlICprbGlzdF9wcmV2KHN0cnVjdCBrbGlzdF9pdGVyICppKTsK
MTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2xpc3Rfbm9kZSAqa2xpc3RfbmV4dChzdHJ1Y3Qga2xpc3Rf
aXRlciAqaSk7CjE0NDc0OiAjIDE5ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9s
aW51eC9wbS5oIiAxCjE0NDc0OiAjIDIyICIuL2luY2x1ZGUvbGludXgvcG0uaCIKMTQ0NzQ6IGV4
dGVybiB2b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkICgqcG1f
cG93ZXJfb2ZmX3ByZXBhcmUpKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlOwox
NDQ3NDogCjE0NDc0OiBleHRlcm4gdm9pZCBwbV92dF9zd2l0Y2hfcmVxdWlyZWQoc3RydWN0IGRl
dmljZSAqZGV2LCBib29sIHJlcXVpcmVkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHBtX3Z0X3N3aXRj
aF91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAjIDQyICIuL2luY2x1ZGUv
bGludXgvcG0uaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGNvbnN0IGNoYXIgcG93ZXJfZ3JvdXBfbmFtZVtdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBwbV9tZXNzYWdlIHsKMTQ0NzQ6ICBp
bnQgZXZlbnQ7CjE0NDc0OiB9IHBtX21lc3NhZ2VfdDsKMTQ0NzQ6ICMgMjc4ICIuL2luY2x1ZGUv
bGludXgvcG0uaCIKMTQ0NzQ6IHN0cnVjdCBkZXZfcG1fb3BzIHsKMTQ0NzQ6ICBpbnQgKCpwcmVw
YXJlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIHZvaWQgKCpjb21wbGV0ZSkoc3RydWN0
IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgZGV2aWNlICpkZXYp
OwoxNDQ3NDogIGludCAoKnJlc3VtZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQg
KCpmcmVlemUpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqdGhhdykoc3RydWN0
IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpwb3dlcm9mZikoc3RydWN0IGRldmljZSAqZGV2
KTsKMTQ0NzQ6ICBpbnQgKCpyZXN0b3JlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIGlu
dCAoKnN1c3BlbmRfbGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpyZXN1
bWVfZWFybHkpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqZnJlZXplX2xhdGUp
KHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqdGhhd19lYXJseSkoc3RydWN0IGRl
dmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpwb3dlcm9mZl9sYXRlKShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwoxNDQ3NDogIGludCAoKnJlc3RvcmVfZWFybHkpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0
NDc0OiAgaW50ICgqc3VzcGVuZF9ub2lycSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBp
bnQgKCpyZXN1bWVfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqZnJl
ZXplX25vaXJxKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIGludCAoKnRoYXdfbm9pcnEp
KHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqcG93ZXJvZmZfbm9pcnEpKHN0cnVj
dCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqcmVzdG9yZV9ub2lycSkoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpydW50aW1lX3N1c3BlbmQpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiAgaW50ICgqcnVudGltZV9yZXN1bWUpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0
NDc0OiAgaW50ICgqcnVudGltZV9pZGxlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogfTsK
MTQ0NzQ6ICMgNDk2ICIuL2luY2x1ZGUvbGludXgvcG0uaCIKMTQ0NzQ6IGVudW0gcnBtX3N0YXR1
cyB7CjE0NDc0OiAgUlBNX0FDVElWRSA9IDAsCjE0NDc0OiAgUlBNX1JFU1VNSU5HLAoxNDQ3NDog
IFJQTV9TVVNQRU5ERUQsCjE0NDc0OiAgUlBNX1NVU1BFTkRJTkcsCjE0NDc0OiB9OwoxNDQ3NDog
IyA1MTggIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3NDogZW51bSBycG1fcmVxdWVzdCB7CjE0
NDc0OiAgUlBNX1JFUV9OT05FID0gMCwKMTQ0NzQ6ICBSUE1fUkVRX0lETEUsCjE0NDc0OiAgUlBN
X1JFUV9TVVNQRU5ELAoxNDQ3NDogIFJQTV9SRVFfQVVUT1NVU1BFTkQsCjE0NDc0OiAgUlBNX1JF
UV9SRVNVTUUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZTsK
MTQ0NzQ6IHN0cnVjdCB3YWtlX2lycTsKMTQ0NzQ6IHN0cnVjdCBwbV9kb21haW5fZGF0YTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IHBtX3N1YnN5c19kYXRhIHsKMTQ0NzQ6ICBzcGlubG9ja190IGxv
Y2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmNvdW50OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0
IGxpc3RfaGVhZCBjbG9ja19saXN0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiB9OwoxNDQ3NDogIyA1NzMgIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3NDogc3RydWN0
IGRldl9wbV9pbmZvIHsKMTQ0NzQ6ICBwbV9tZXNzYWdlX3QgcG93ZXJfc3RhdGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IGNhbl93YWtldXA6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYXN5bmNfc3Vz
cGVuZDoxOwoxNDQ3NDogIGJvb2wgaW5fZHBtX2xpc3Q6MTsKMTQ0NzQ6ICBib29sIGlzX3ByZXBh
cmVkOjE7CjE0NDc0OiAgYm9vbCBpc19zdXNwZW5kZWQ6MTsKMTQ0NzQ6ICBib29sIGlzX25vaXJx
X3N1c3BlbmRlZDoxOwoxNDQ3NDogIGJvb2wgaXNfbGF0ZV9zdXNwZW5kZWQ6MTsKMTQ0NzQ6ICBi
b29sIG5vX3BtOjE7CjE0NDc0OiAgYm9vbCBlYXJseV9pbml0OjE7CjE0NDc0OiAgYm9vbCBkaXJl
Y3RfY29tcGxldGU6MTsKMTQ0NzQ6ICB1MzIgZHJpdmVyX2ZsYWdzOwoxNDQ3NDogIHNwaW5sb2Nr
X3QgbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQgZW50cnk7CjE0NDc0OiAg
c3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKMTQ0NzQ6ICBzdHJ1Y3Qgd2FrZXVwX3NvdXJj
ZSAqd2FrZXVwOwoxNDQ3NDogIGJvb2wgd2FrZXVwX3BhdGg6MTsKMTQ0NzQ6ICBib29sIHN5c2Nv
cmU6MTsKMTQ0NzQ6ICBib29sIG5vX3BtX2NhbGxiYWNrczoxOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBtdXN0X3Jlc3VtZToxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXlfc2tpcF9yZXN1bWU6MTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBocnRpbWVyIHN1
c3BlbmRfdGltZXI7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0aW1lcl9leHBpcmVzOwoxNDQ3NDog
IHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwoxNDQ3NDogIHdhaXRfcXVldWVfaGVhZF90IHdhaXRf
cXVldWU7CjE0NDc0OiAgc3RydWN0IHdha2VfaXJxICp3YWtlaXJxOwoxNDQ3NDogIGF0b21pY190
IHVzYWdlX2NvdW50OwoxNDQ3NDogIGF0b21pY190IGNoaWxkX2NvdW50OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkaXNhYmxlX2RlcHRoOjM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGlkbGVfbm90aWZp
Y2F0aW9uOjE7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlcXVlc3RfcGVuZGluZzoxOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBkZWZlcnJlZF9yZXN1bWU6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcnVu
dGltZV9hdXRvOjE7CjE0NDc0OiAgYm9vbCBpZ25vcmVfY2hpbGRyZW46MTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbm9fY2FsbGJhY2tzOjE7CjE0NDc0OiAgdW5zaWduZWQgaW50IGlycV9zYWZlOjE7
CjE0NDc0OiAgdW5zaWduZWQgaW50IHVzZV9hdXRvc3VzcGVuZDoxOwoxNDQ3NDogIHVuc2lnbmVk
IGludCB0aW1lcl9hdXRvc3VzcGVuZHM6MTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWVtYWxsb2Nf
bm9pbzoxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBsaW5rc19jb3VudDsKMTQ0NzQ6ICBlbnVtIHJw
bV9yZXF1ZXN0IHJlcXVlc3Q7CjE0NDc0OiAgZW51bSBycG1fc3RhdHVzIHJ1bnRpbWVfc3RhdHVz
OwoxNDQ3NDogIGludCBydW50aW1lX2Vycm9yOwoxNDQ3NDogIGludCBhdXRvc3VzcGVuZF9kZWxh
eTsKMTQ0NzQ6ICB1NjQgbGFzdF9idXN5OwoxNDQ3NDogIHU2NCBhY3RpdmVfdGltZTsKMTQ0NzQ6
ICB1NjQgc3VzcGVuZGVkX3RpbWU7CjE0NDc0OiAgdTY0IGFjY291bnRpbmdfdGltZXN0YW1wOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHBtX3N1YnN5c19kYXRhICpzdWJzeXNfZGF0YTsKMTQ0NzQ6
ICB2b2lkICgqc2V0X2xhdGVuY3lfdG9sZXJhbmNlKShzdHJ1Y3QgZGV2aWNlICosIHMzMik7CjE0
NDc0OiAgc3RydWN0IGRldl9wbV9xb3MgKnFvczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4
dGVybiBpbnQgZGV2X3BtX2dldF9zdWJzeXNfZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgZGV2X3BtX3B1dF9zdWJzeXNfZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYp
OwoxNDQ3NDogIyA2NTAgIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3NDogc3RydWN0IGRldl9w
bV9kb21haW4gewoxNDQ3NDogIHN0cnVjdCBkZXZfcG1fb3BzIG9wczsKMTQ0NzQ6ICBpbnQgKCpz
dGFydCkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICB2b2lkICgqZGV0YWNoKShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGJvb2wgcG93ZXJfb2ZmKTsKMTQ0NzQ6ICBpbnQgKCphY3RpdmF0ZSkoc3Ry
dWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICB2b2lkICgqc3luYykoc3RydWN0IGRldmljZSAqZGV2
KTsKMTQ0NzQ6ICB2b2lkICgqZGlzbWlzcykoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDcxNCAiLi9pbmNsdWRlL2xpbnV4L3BtLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBk
ZXZpY2VfcG1fbG9jayh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRwbV9yZXN1bWVfc3RhcnQo
cG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRwbV9yZXN1bWVfZW5kKHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fcmVzdW1lX25vaXJxKHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fcmVzdW1lX2Vhcmx5KHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fcmVzdW1lKHBtX21lc3Nh
Z2VfdCBzdGF0ZSk7CjE0NDc0OiBleHRlcm4gdm9pZCBkcG1fY29tcGxldGUocG1fbWVzc2FnZV90
IHN0YXRlKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2aWNlX3BtX3VubG9jayh2b2lk
KTsKMTQ0NzQ6IGV4dGVybiBpbnQgZHBtX3N1c3BlbmRfZW5kKHBtX21lc3NhZ2VfdCBzdGF0ZSk7
CjE0NDc0OiBleHRlcm4gaW50IGRwbV9zdXNwZW5kX3N0YXJ0KHBtX21lc3NhZ2VfdCBzdGF0ZSk7
CjE0NDc0OiBleHRlcm4gaW50IGRwbV9zdXNwZW5kX25vaXJxKHBtX21lc3NhZ2VfdCBzdGF0ZSk7
CjE0NDc0OiBleHRlcm4gaW50IGRwbV9zdXNwZW5kX2xhdGUocG1fbWVzc2FnZV90IHN0YXRlKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgZHBtX3N1c3BlbmQocG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgZHBtX3ByZXBhcmUocG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6IAoxNDQ3
NDogZXh0ZXJuIHZvaWQgX19zdXNwZW5kX3JlcG9ydF9yZXN1bHQoY29uc3QgY2hhciAqZnVuY3Rp
b24sIHZvaWQgKmZuLCBpbnQgcmV0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgZGV2aWNlX3BtX3dhaXRfZm9yX2Rldihz
dHJ1Y3QgZGV2aWNlICpzdWIsIHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gdm9p
ZCBkcG1fZm9yX2VhY2hfZGV2KHZvaWQgKmRhdGEsIHZvaWQgKCpmbikoc3RydWN0IGRldmljZSAq
LCB2b2lkICopKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX3ByZXBhcmUo
c3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY19zdXNwZW5k
X2xhdGUoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY19z
dXNwZW5kX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBtX2dl
bmVyaWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBwbV9n
ZW5lcmljX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGlu
dCBwbV9nZW5lcmljX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0
ZXJuIGludCBwbV9nZW5lcmljX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0
ZXJuIGludCBwbV9nZW5lcmljX2ZyZWV6ZV9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX2ZyZWV6ZV9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfdGhhd19ub2lycShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX3RoYXdfZWFybHkoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY190aGF3KHN0cnVjdCBkZXZpY2Ug
KmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfcmVzdG9yZV9ub2lycShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBwbV9nZW5lcmljX3Jlc3RvcmVfZWFybHko
c3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0b3Jl
KHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBtX2dlbmVyaWNfcG93ZXJv
ZmZfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBpbnQgcG1fZ2VuZXJp
Y19wb3dlcm9mZl9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IHBt
X2dlbmVyaWNfcG93ZXJvZmYoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IHBtX2dlbmVyaWNfY29tcGxldGUoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIGJvb2wgZGV2X3BtX21heV9za2lwX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwox
NDQ3NDogZXh0ZXJuIGJvb2wgZGV2X3BtX3NtYXJ0X3N1c3BlbmRfYW5kX3N1c3BlbmRlZChzdHJ1
Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIyA4MDggIi4vaW5jbHVkZS9saW51eC9wbS5oIgoxNDQ3
NDogZW51bSBkcG1fb3JkZXIgewoxNDQ3NDogIERQTV9PUkRFUl9OT05FLAoxNDQ3NDogIERQTV9P
UkRFUl9ERVZfQUZURVJfUEFSRU5ULAoxNDQ3NDogIERQTV9PUkRFUl9QQVJFTlRfQkVGT1JFX0RF
ViwKMTQ0NzQ6ICBEUE1fT1JERVJfREVWX0xBU1QsCjE0NDc0OiB9OwoxNDQ3NDogIyAyNSAiLi9p
bmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICMgMSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIgMQoxNDQ3NDogIyAyMSAi
Li9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2VfZHJpdmVy
OwoxNDQ3NDogc3RydWN0IGZ3bm9kZV9oYW5kbGU7CjE0NDc0OiAjIDgyICIuL2luY2x1ZGUvbGlu
dXgvZGV2aWNlL2J1cy5oIgoxNDQ3NDogc3RydWN0IGJ1c190eXBlIHsKMTQ0NzQ6ICBjb25zdCBj
aGFyICpuYW1lOwoxNDQ3NDogIGNvbnN0IGNoYXIgKmRldl9uYW1lOwoxNDQ3NDogIHN0cnVjdCBk
ZXZpY2UgKmRldl9yb290OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipi
dXNfZ3JvdXBzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipkZXZfZ3Jv
dXBzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipkcnZfZ3JvdXBzOwox
NDQ3NDogCjE0NDc0OiAgaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydik7CjE0NDc0OiAgaW50ICgqdWV2ZW50KShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7CjE0NDc0OiAgaW50ICgqcHJvYmUpKHN0
cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgdm9pZCAoKnN5bmNfc3RhdGUpKHN0cnVjdCBkZXZp
Y2UgKmRldik7CjE0NDc0OiAgaW50ICgqcmVtb3ZlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogIHZvaWQgKCpzaHV0ZG93bikoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDog
IGludCAoKm9ubGluZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6ICBpbnQgKCpvZmZsaW5l
KShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc3VzcGVuZCkoc3Ry
dWN0IGRldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpOwoxNDQ3NDogIGludCAoKnJlc3Vt
ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKm51bV92Zikoc3Ry
dWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKmRtYV9jb25maWd1cmUpKHN0
cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2X3BtX29w
cyAqcG07CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICppb21tdV9vcHM7
CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3Vic3lzX3ByaXZhdGUgKnA7CjE0NDc0OiAgc3RydWN0
IGxvY2tfY2xhc3Nfa2V5IGxvY2tfa2V5OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBuZWVkX3BhcmVu
dF9sb2NrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYnVzX3JlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAq
YnVzKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgYnVzX3VucmVnaXN0ZXIoc3RydWN0IGJ1
c190eXBlICpidXMpOwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9f
d2Fybl91bnVzZWRfcmVzdWx0X18pKSBidXNfcmVzY2FuX2RldmljZXMoc3RydWN0IGJ1c190eXBl
ICpidXMpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnVzX2F0dHJpYnV0ZSB7CjE0NDc0OiAgc3Ry
dWN0IGF0dHJpYnV0ZSBhdHRyOwoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgYnVzX3R5
cGUgKmJ1cywgY2hhciAqYnVmKTsKMTQ0NzQ6ICBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBidXNf
dHlwZSAqYnVzLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCk7CjE0NDc0OiB9OwoxNDQ3
NDogIyAxMzYgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCjE0NDc0OiBleHRlcm4gaW50
IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBidXNfY3JlYXRlX2ZpbGUo
c3RydWN0IGJ1c190eXBlICosCjE0NDc0OiAgICAgIHN0cnVjdCBidXNfYXR0cmlidXRlICopOwox
NDQ3NDogZXh0ZXJuIHZvaWQgYnVzX3JlbW92ZV9maWxlKHN0cnVjdCBidXNfdHlwZSAqLCBzdHJ1
Y3QgYnVzX2F0dHJpYnV0ZSAqKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgZGV2aWNlX21h
dGNoX25hbWUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpuYW1lKTsKMTQ0NzQ6IGlu
dCBkZXZpY2VfbWF0Y2hfb2Zfbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKm5w
KTsKMTQ0NzQ6IGludCBkZXZpY2VfbWF0Y2hfZndub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29u
c3Qgdm9pZCAqZndub2RlKTsKMTQ0NzQ6IGludCBkZXZpY2VfbWF0Y2hfZGV2dChzdHJ1Y3QgZGV2
aWNlICpkZXYsIGNvbnN0IHZvaWQgKnBkZXZ0KTsKMTQ0NzQ6IGludCBkZXZpY2VfbWF0Y2hfYWNw
aV9kZXYoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICphZGV2KTsKMTQ0NzQ6IGludCBk
ZXZpY2VfbWF0Y2hfYW55KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqdW51c2VkKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3Vic3lzX2Rldl9pdGVyIHsKMTQ0NzQ6ICBz
dHJ1Y3Qga2xpc3RfaXRlciBraTsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5
cGU7CjE0NDc0OiB9OwoxNDQ3NDogdm9pZCBzdWJzeXNfZGV2X2l0ZXJfaW5pdChzdHJ1Y3Qgc3Vi
c3lzX2Rldl9pdGVyICppdGVyLAoxNDQ3NDogICAgIHN0cnVjdCBidXNfdHlwZSAqc3Vic3lzLAox
NDQ3NDogICAgIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LAoxNDQ3NDogICAgIGNvbnN0IHN0cnVjdCBk
ZXZpY2VfdHlwZSAqdHlwZSk7CjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpzdWJzeXNfZGV2X2l0ZXJf
bmV4dChzdHJ1Y3Qgc3Vic3lzX2Rldl9pdGVyICppdGVyKTsKMTQ0NzQ6IHZvaWQgc3Vic3lzX2Rl
dl9pdGVyX2V4aXQoc3RydWN0IHN1YnN5c19kZXZfaXRlciAqaXRlcik7CjE0NDc0OiAKMTQ0NzQ6
IGludCBidXNfZm9yX2VhY2hfZGV2KHN0cnVjdCBidXNfdHlwZSAqYnVzLCBzdHJ1Y3QgZGV2aWNl
ICpzdGFydCwgdm9pZCAqZGF0YSwKMTQ0NzQ6ICAgICAgICBpbnQgKCpmbikoc3RydWN0IGRldmlj
ZSAqZGV2LCB2b2lkICpkYXRhKSk7CjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpidXNfZmluZF9kZXZp
Y2Uoc3RydWN0IGJ1c190eXBlICpidXMsIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LAoxNDQ3NDogICAg
ICAgICAgIGNvbnN0IHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICAgICAgaW50ICgqbWF0Y2gpKHN0
cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNl
ICpidXNfZmluZF9kZXZpY2VfYnlfbmFtZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywKMTQ0NzQ6ICAg
ICAgICAgICAgc3RydWN0IGRldmljZSAqc3RhcnQsCjE0NDc0OiAgICAgICAgICAgIGNvbnN0IGNo
YXIgKm5hbWUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ1c19maW5kX2RldmljZShidXMsIHN0
YXJ0LCBuYW1lLCBkZXZpY2VfbWF0Y2hfbmFtZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZp
Y2UgKgoxNDQ3NDogYnVzX2ZpbmRfZGV2aWNlX2J5X29mX25vZGUoc3RydWN0IGJ1c190eXBlICpi
dXMsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJu
IGJ1c19maW5kX2RldmljZShidXMsICgodm9pZCAqKTApLCBucCwgZGV2aWNlX21hdGNoX29mX25v
ZGUpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKMTQ0NzQ6IGJ1c19maW5kX2Rldmlj
ZV9ieV9md25vZGUoc3RydWN0IGJ1c190eXBlICpidXMsIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFu
ZGxlICpmd25vZGUpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ1c19maW5kX2RldmljZShidXMs
ICgodm9pZCAqKTApLCBmd25vZGUsIGRldmljZV9tYXRjaF9md25vZGUpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzdHJ1Y3QgZGV2aWNlICpidXNfZmluZF9kZXZpY2VfYnlfZGV2dChzdHJ1Y3QgYnVzX3R5cGUg
KmJ1cywKMTQ0NzQ6ICAgICAgICAgICAgZGV2X3QgZGV2dCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYnVzX2ZpbmRfZGV2aWNlKGJ1cywgKCh2b2lkICopMCksICZkZXZ0LCBkZXZpY2VfbWF0Y2hf
ZGV2dCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3NDogYnVzX2ZpbmRfbmV4
dF9kZXZpY2Uoc3RydWN0IGJ1c190eXBlICpidXMsc3RydWN0IGRldmljZSAqY3VyKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiBidXNfZmluZF9kZXZpY2UoYnVzLCBjdXIsICgodm9pZCAqKTApLCBk
ZXZpY2VfbWF0Y2hfYW55KTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YWNwaV9kZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3NDogYnVzX2ZpbmRfZGV2aWNl
X2J5X2FjcGlfZGV2KHN0cnVjdCBidXNfdHlwZSAqYnVzLCBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZp
Y2UgKmFkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ1c19maW5kX2RldmljZShidXMsICgo
dm9pZCAqKTApLCBhZGV2LCBkZXZpY2VfbWF0Y2hfYWNwaV9kZXYpOwoxNDQ3NDogfQoxNDQ3NDog
IyAyNDkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCjE0NDc0OiBzdHJ1Y3QgZGV2aWNl
ICpzdWJzeXNfZmluZF9kZXZpY2VfYnlfaWQoc3RydWN0IGJ1c190eXBlICpidXMsIHVuc2lnbmVk
IGludCBpZCwKMTQ0NzQ6ICAgICAgc3RydWN0IGRldmljZSAqaGludCk7CjE0NDc0OiBpbnQgYnVz
X2Zvcl9lYWNoX2RydihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgc3RydWN0IGRldmljZV9kcml2ZXIg
KnN0YXJ0LAoxNDQ3NDogICAgICAgIHZvaWQgKmRhdGEsIGludCAoKmZuKShzdHJ1Y3QgZGV2aWNl
X2RyaXZlciAqLCB2b2lkICopKTsKMTQ0NzQ6IHZvaWQgYnVzX3NvcnRfYnJlYWR0aGZpcnN0KHN0
cnVjdCBidXNfdHlwZSAqYnVzLAoxNDQ3NDogICAgICAgaW50ICgqY29tcGFyZSkoY29uc3Qgc3Ry
dWN0IGRldmljZSAqYSwKMTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpiKSk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgbm90aWZpZXJfYmxvY2s7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgYnVzX3JlZ2lzdGVy
X25vdGlmaWVyKHN0cnVjdCBidXNfdHlwZSAqYnVzLAoxNDQ3NDogICAgICBzdHJ1Y3Qgbm90aWZp
ZXJfYmxvY2sgKm5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQgYnVzX3VucmVnaXN0ZXJfbm90aWZpZXIo
c3RydWN0IGJ1c190eXBlICpidXMsCjE0NDc0OiAgICAgICAgc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuYik7CjE0NDc0OiAjIDI4NSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIKMTQ0NzQ6
IGV4dGVybiBzdHJ1Y3Qga3NldCAqYnVzX2dldF9rc2V0KHN0cnVjdCBidXNfdHlwZSAqYnVzKTsK
MTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qga2xpc3QgKmJ1c19nZXRfZGV2aWNlX2tsaXN0KHN0cnVjdCBi
dXNfdHlwZSAqYnVzKTsKMTQ0NzQ6ICMgMzAgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgox
NDQ3NDogIyAxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2NsYXNzLmgiIDEKMTQ0NzQ6ICMgMjIg
Ii4vaW5jbHVkZS9saW51eC9kZXZpY2UvY2xhc3MuaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2U7CjE0
NDc0OiBzdHJ1Y3QgZndub2RlX2hhbmRsZTsKMTQ0NzQ6ICMgNTQgIi4vaW5jbHVkZS9saW51eC9k
ZXZpY2UvY2xhc3MuaCIKMTQ0NzQ6IHN0cnVjdCBjbGFzcyB7CjE0NDc0OiAgY29uc3QgY2hhciAq
bmFtZTsKMTQ0NzQ6ICBzdHJ1Y3QgbW9kdWxlICpvd25lcjsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0
IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipjbGFzc19ncm91cHM7CjE0NDc0OiAgY29uc3Qgc3Ry
dWN0IGF0dHJpYnV0ZV9ncm91cCAqKmRldl9ncm91cHM7CjE0NDc0OiAgc3RydWN0IGtvYmplY3Qg
KmRldl9rb2JqOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqZGV2X3VldmVudCkoc3RydWN0IGRldmlj
ZSAqZGV2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpOwoxNDQ3NDogIGNoYXIgKigqZGV2
bm9kZSkoc3RydWN0IGRldmljZSAqZGV2LCB1bW9kZV90ICptb2RlKTsKMTQ0NzQ6IAoxNDQ3NDog
IHZvaWQgKCpjbGFzc19yZWxlYXNlKShzdHJ1Y3QgY2xhc3MgKmNsYXNzKTsKMTQ0NzQ6ICB2b2lk
ICgqZGV2X3JlbGVhc2UpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQg
KCpzaHV0ZG93bl9wcmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICBjb25z
dCBzdHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlvbnMgKm5zX3R5cGU7CjE0NDc0OiAgY29uc3Qg
dm9pZCAqKCpuYW1lc3BhY2UpKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqZ2V0X293bmVyc2hpcCkoc3RydWN0IGRldmljZSAqZGV2LCBrdWlkX3QgKnVpZCwga2dp
ZF90ICpnaWQpOwoxNDQ3NDogCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IHN1YnN5c19wcml2YXRlICpwOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGNsYXNzX2Rldl9pdGVyIHsKMTQ0NzQ6ICBzdHJ1Y3Qga2xpc3RfaXRl
ciBraTsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGU7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IGtvYmplY3QgKnN5c2ZzX2Rldl9ibG9ja19rb2Jq
OwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpzeXNmc19kZXZfY2hhcl9rb2JqOwoxNDQ3
NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19j
bGFzc19yZWdpc3RlcihzdHJ1Y3QgY2xhc3MgKmNsYXNzLAoxNDQ3NDogICAgICAgc3RydWN0IGxv
Y2tfY2xhc3Nfa2V5ICprZXkpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgY2xhc3NfdW5yZWdpc3Rlcihz
dHJ1Y3QgY2xhc3MgKmNsYXNzKTsKMTQ0NzQ6ICMgOTkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2Uv
Y2xhc3MuaCIKMTQ0NzQ6IHN0cnVjdCBjbGFzc19jb21wYXQ7CjE0NDc0OiBzdHJ1Y3QgY2xhc3Nf
Y29tcGF0ICpjbGFzc19jb21wYXRfcmVnaXN0ZXIoY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiB2
b2lkIGNsYXNzX2NvbXBhdF91bnJlZ2lzdGVyKHN0cnVjdCBjbGFzc19jb21wYXQgKmNscyk7CjE0
NDc0OiBpbnQgY2xhc3NfY29tcGF0X2NyZWF0ZV9saW5rKHN0cnVjdCBjbGFzc19jb21wYXQgKmNs
cywgc3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXZp
Y2VfbGluayk7CjE0NDc0OiB2b2lkIGNsYXNzX2NvbXBhdF9yZW1vdmVfbGluayhzdHJ1Y3QgY2xh
c3NfY29tcGF0ICpjbHMsIHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgIHN0cnVj
dCBkZXZpY2UgKmRldmljZV9saW5rKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgY2xhc3Nf
ZGV2X2l0ZXJfaW5pdChzdHJ1Y3QgY2xhc3NfZGV2X2l0ZXIgKml0ZXIsCjE0NDc0OiAgICAgc3Ry
dWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCwKMTQ0NzQ6
ICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGUpOwoxNDQ3NDogZXh0ZXJuIHN0cnVj
dCBkZXZpY2UgKmNsYXNzX2Rldl9pdGVyX25leHQoc3RydWN0IGNsYXNzX2Rldl9pdGVyICppdGVy
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsYXNzX2Rldl9pdGVyX2V4aXQoc3RydWN0IGNsYXNzX2Rl
dl9pdGVyICppdGVyKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBjbGFzc19mb3JfZWFjaF9k
ZXZpY2Uoc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGRldmljZSAqc3RhcnQsCjE0NDc0OiAg
ICAgIHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgIGludCAoKmZuKShzdHJ1Y3QgZGV2aWNlICpkZXYs
IHZvaWQgKmRhdGEpKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGV2aWNlICpjbGFzc19maW5kX2Rl
dmljZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAoxNDQ3NDogICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFy
dCwgY29uc3Qgdm9pZCAqZGF0YSwKMTQ0NzQ6ICAgICAgaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZp
Y2UgKiwgY29uc3Qgdm9pZCAqKSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKmNsYXNzX2ZpbmRfZGV2
aWNlX2J5X25hbWUoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAgICAgICAgICAgICBjb25z
dCBjaGFyICpuYW1lKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjbGFzc19maW5kX2RldmljZShj
bGFzcywgKCh2b2lkICopMCksIG5hbWUsIGRldmljZV9tYXRjaF9uYW1lKTsKMTQ0NzQ6IH0KMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGRldmljZSAqCjE0NDc0OiBjbGFzc19maW5kX2RldmljZV9ieV9vZl9ub2RlKHN0
cnVjdCBjbGFzcyAqY2xhc3MsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGNsYXNzX2ZpbmRfZGV2aWNlKGNsYXNzLCAoKHZvaWQgKikwKSwgbnAs
IGRldmljZV9tYXRjaF9vZl9ub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCjE0
NDc0OiBjbGFzc19maW5kX2RldmljZV9ieV9md25vZGUoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0
NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQoxNDQ3NDogewox
NDQ3NDogIHJldHVybiBjbGFzc19maW5kX2RldmljZShjbGFzcywgKCh2b2lkICopMCksIGZ3bm9k
ZSwgZGV2aWNlX21hdGNoX2Z3bm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKmNs
YXNzX2ZpbmRfZGV2aWNlX2J5X2RldnQoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAgICAg
ICAgICAgICBkZXZfdCBkZXZ0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjbGFzc19maW5kX2Rl
dmljZShjbGFzcywgKCh2b2lkICopMCksICZkZXZ0LCBkZXZpY2VfbWF0Y2hfZGV2dCk7CjE0NDc0
OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGFjcGlfZGV2aWNlOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmlj
ZSAqCjE0NDc0OiBjbGFzc19maW5kX2RldmljZV9ieV9hY3BpX2RldihzdHJ1Y3QgY2xhc3MgKmNs
YXNzLCBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGNsYXNzX2ZpbmRfZGV2aWNlKGNsYXNzLCAoKHZvaWQgKikwKSwgYWRldiwgZGV2aWNlX21h
dGNoX2FjcGlfZGV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTkxICIuL2luY2x1ZGUvbGludXgvZGV2
aWNlL2NsYXNzLmgiCjE0NDc0OiBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlIHsKMTQ0NzQ6ICBzdHJ1
Y3QgYXR0cmlidXRlIGF0dHI7CjE0NDc0OiAgc3NpemVfdCAoKnNob3cpKHN0cnVjdCBjbGFzcyAq
Y2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICBjaGFyICpidWYp
OwoxNDQ3NDogIHNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGNs
YXNzX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNv
dW50KTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDIwNiAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9jbGFz
cy5oIgoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3Vs
dF9fKSkgY2xhc3NfY3JlYXRlX2ZpbGVfbnMoc3RydWN0IGNsYXNzICpjbGFzcywKMTQ0NzQ6ICAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgICAg
ICAgIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsYXNzX3JlbW92ZV9maWxl
X25zKHN0cnVjdCBjbGFzcyAqY2xhc3MsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBjbGFzc19h
dHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgIGNvbnN0IHZvaWQgKm5zKTsKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBjbGFzc19jcmVh
dGVfZmlsZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgY2xh
c3NfYXR0cmlidXRlICphdHRyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBjbGFzc19jcmVhdGVf
ZmlsZV9ucyhjbGFzcywgYXR0ciwgKCh2b2lkICopMCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGNsYXNzX3JlbW92ZV9maWxlKHN0cnVjdCBjbGFzcyAqY2xhc3MsCjE0NDc0OiAgICAg
ICAgICBjb25zdCBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlICphdHRyKQoxNDQ3NDogewoxNDQ3NDog
IHJldHVybiBjbGFzc19yZW1vdmVfZmlsZV9ucyhjbGFzcywgYXR0ciwgKCh2b2lkICopMCkpOwox
NDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGFzc19hdHRyaWJ1dGVfc3Ry
aW5nIHsKMTQ0NzQ6ICBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlIGF0dHI7CjE0NDc0OiAgY2hhciAq
c3RyOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjM4ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2NsYXNz
LmgiCjE0NDc0OiBleHRlcm4gc3NpemVfdCBzaG93X2NsYXNzX2F0dHJfc3RyaW5nKHN0cnVjdCBj
bGFzcyAqY2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGFyICpidWYpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY2xhc3Nf
aW50ZXJmYWNlIHsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CjE0NDc0OiAgc3RydWN0
IGNsYXNzICpjbGFzczsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKmFkZF9kZXYpIChzdHJ1Y3QgZGV2
aWNlICosIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKik7CjE0NDc0OiAgdm9pZCAoKnJlbW92ZV9k
ZXYpIChzdHJ1Y3QgZGV2aWNlICosIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKik7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBjbGFzc19pbnRlcmZhY2VfcmVnaXN0ZXIoc3RydWN0IGNsYXNzX2ludGVyZmFj
ZSAqKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGNsYXNzX2ludGVyZmFjZV91bnJlZ2lzdGVyKHN0cnVj
dCBjbGFzc19pbnRlcmZhY2UgKik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgY2xhc3Mg
KiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19jbGFzc19jcmVhdGUo
c3RydWN0IG1vZHVsZSAqb3duZXIsCjE0NDc0OiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCjE0
NDc0OiAgICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKMTQ0NzQ6IGV4dGVybiB2
b2lkIGNsYXNzX2Rlc3Ryb3koc3RydWN0IGNsYXNzICpjbHMpOwoxNDQ3NDogIyAzMSAiLi9pbmNs
dWRlL2xpbnV4L2RldmljZS5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9kZXZpY2Uv
ZHJpdmVyLmgiIDEKMTQ0NzQ6ICMgNDQgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvZHJpdmVyLmgi
CjE0NDc0OiBlbnVtIHByb2JlX3R5cGUgewoxNDQ3NDogIFBST0JFX0RFRkFVTFRfU1RSQVRFR1ks
CjE0NDc0OiAgUFJPQkVfUFJFRkVSX0FTWU5DSFJPTk9VUywKMTQ0NzQ6ICBQUk9CRV9GT1JDRV9T
WU5DSFJPTk9VUywKMTQ0NzQ6IH07CjE0NDc0OiAjIDk1ICIuL2luY2x1ZGUvbGludXgvZGV2aWNl
L2RyaXZlci5oIgoxNDQ3NDogc3RydWN0IGRldmljZV9kcml2ZXIgewoxNDQ3NDogIGNvbnN0IGNo
YXIgKm5hbWU7CjE0NDc0OiAgc3RydWN0IGJ1c190eXBlICpidXM7CjE0NDc0OiAKMTQ0NzQ6ICBz
dHJ1Y3QgbW9kdWxlICpvd25lcjsKMTQ0NzQ6ICBjb25zdCBjaGFyICptb2RfbmFtZTsKMTQ0NzQ6
IAoxNDQ3NDogIGJvb2wgc3VwcHJlc3NfYmluZF9hdHRyczsKMTQ0NzQ6ICBlbnVtIHByb2JlX3R5
cGUgcHJvYmVfdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg
Km9mX21hdGNoX3RhYmxlOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqYWNw
aV9tYXRjaF90YWJsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnByb2JlKSAoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6ICB2b2lkICgqc3luY19zdGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsK
MTQ0NzQ6ICBpbnQgKCpyZW1vdmUpIChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIHZvaWQg
KCpzaHV0ZG93bikgKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiAgaW50ICgqc3VzcGVuZCkg
KHN0cnVjdCBkZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKTsKMTQ0NzQ6ICBpbnQgKCpy
ZXN1bWUpIChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGVfZ3JvdXAgKipncm91cHM7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
KmRldl9ncm91cHM7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyAqcG07
CjE0NDc0OiAgdm9pZCAoKmNvcmVkdW1wKSAoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBkcml2ZXJfcHJpdmF0ZSAqcDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpOwoxNDQ3NDogZXh0
ZXJuIHZvaWQgZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydik7CjE0
NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyX2ZpbmQoY29u
c3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKMTQ0NzQ6
IGV4dGVybiBpbnQgZHJpdmVyX3Byb2JlX2RvbmUodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB3
YWl0X2Zvcl9kZXZpY2VfcHJvYmUodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHJpdmVyX2F0dHJpYnV0ZSB7CjE0NDc0OiAgc3RydWN0IGF0dHJpYnV0ZSBhdHRy
OwoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBj
aGFyICpidWYpOwoxNDQ3NDogIHNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGRldmljZV9kcml2ZXIg
KmRyaXZlciwgY29uc3QgY2hhciAqYnVmLAoxNDQ3NDogICAgIHNpemVfdCBjb3VudCk7CjE0NDc0
OiB9OwoxNDQ3NDogIyAxNDggIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvZHJpdmVyLmgiCjE0NDc0
OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkcml2
ZXJfY3JlYXRlX2ZpbGUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRyaXZlciwKMTQ0NzQ6ICAgICAg
Y29uc3Qgc3RydWN0IGRyaXZlcl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDogZXh0ZXJuIHZvaWQg
ZHJpdmVyX3JlbW92ZV9maWxlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsCjE0NDc0OiAg
ICAgICAgICAgY29uc3Qgc3RydWN0IGRyaXZlcl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDogCjE0
NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBk
cml2ZXJfZm9yX2VhY2hfZGV2aWNlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYsCjE0NDc0OiAg
ICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCwKMTQ0NzQ6ICAgICAgICAgICAgIHZvaWQg
KmRhdGEsCjE0NDc0OiAgICAgICAgICAgICBpbnQgKCpmbikoc3RydWN0IGRldmljZSAqZGV2LAox
NDQ3NDogICAgICAgICB2b2lkICopKTsKMTQ0NzQ6IHN0cnVjdCBkZXZpY2UgKmRyaXZlcl9maW5k
X2RldmljZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAoxNDQ3NDogICAgICAgc3RydWN0IGRl
dmljZSAqc3RhcnQsIGNvbnN0IHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICBpbnQgKCptYXRjaCko
c3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKSk7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZp
Y2UgKmRyaXZlcl9maW5kX2RldmljZV9ieV9uYW1lKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYs
CjE0NDc0OiAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZHJpdmVyX2ZpbmRfZGV2aWNlKGRydiwgKCh2b2lkICopMCksIG5hbWUsIGRldmljZV9tYXRjaF9u
YW1lKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCjE0NDc0OiBkcml2ZXJfZmluZF9k
ZXZpY2VfYnlfb2Zfbm9kZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAoxNDQ3NDogICAgICAg
ICAgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4g
ZHJpdmVyX2ZpbmRfZGV2aWNlKGRydiwgKCh2b2lkICopMCksIG5wLCBkZXZpY2VfbWF0Y2hfb2Zf
bm9kZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3NDogZHJpdmVyX2ZpbmRf
ZGV2aWNlX2J5X2Z3bm9kZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAoxNDQ3NDogICAgICAg
ICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiBkcml2ZXJfZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgZndub2RlLCBkZXZpY2Vf
bWF0Y2hfZndub2RlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRf
ZGV2aWNlX2J5X2RldnQoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwKMTQ0NzQ6ICAgICAgICBk
ZXZfdCBkZXZ0KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkcml2ZXJfZmluZF9kZXZpY2UoZHJ2
LCAoKHZvaWQgKikwKSwgJmRldnQsIGRldmljZV9tYXRjaF9kZXZ0KTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfbmV4dF9kZXZpY2Uoc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydiwKMTQ0NzQ6ICAgICAgICAgICAgc3RydWN0IGRldmljZSAqc3RhcnQp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRyaXZlcl9maW5kX2RldmljZShkcnYsIHN0YXJ0LCAo
KHZvaWQgKikwKSwgZGV2aWNlX21hdGNoX2FueSk7CjE0NDc0OiB9CjE0NDc0OiAjIDIyNSAiLi9p
bmNsdWRlL2xpbnV4L2RldmljZS9kcml2ZXIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKgoxNDQ3
NDogZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X2FjcGlfZGV2KHN0cnVjdCBkZXZpY2VfZHJpdmVyICpk
cnYsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KQoxNDQ3
NDogewoxNDQ3NDogIHJldHVybiBkcml2ZXJfZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwg
YWRldiwgZGV2aWNlX21hdGNoX2FjcGlfZGV2KTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjM5ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIgoxNDQ3NDogdm9pZCBkcml2ZXJfZGVmZXJyZWRf
cHJvYmVfYWRkKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBpbnQgZHJpdmVyX2RlZmVycmVk
X3Byb2JlX2NoZWNrX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBpbnQgZHJpdmVy
X2RlZmVycmVkX3Byb2JlX2NoZWNrX3N0YXRlX2NvbnRpbnVlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiB2b2lkIGRyaXZlcl9pbml0KHZvaWQpOwoxNDQ3NDogIyAzMiAiLi9pbmNsdWRlL2xp
bnV4L2RldmljZS5oIiAyCjE0NDc0OiAjIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGV2aWNl
LmgiIDEKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldl9h
cmNoZGF0YSB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICppb21tdTsKMTQ0NzQ6IAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBkZXZfYXJjaGRhdGEgewoxNDQ3NDogfTsKMTQ0NzQ6ICMg
MzMgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2
aWNlOwoxNDQ3NDogc3RydWN0IGRldmljZV9wcml2YXRlOwoxNDQ3NDogc3RydWN0IGRldmljZV9k
cml2ZXI7CjE0NDc0OiBzdHJ1Y3QgZHJpdmVyX3ByaXZhdGU7CjE0NDc0OiBzdHJ1Y3QgbW9kdWxl
OwoxNDQ3NDogc3RydWN0IGNsYXNzOwoxNDQ3NDogc3RydWN0IHN1YnN5c19wcml2YXRlOwoxNDQ3
NDogc3RydWN0IGRldmljZV9ub2RlOwoxNDQ3NDogc3RydWN0IGZ3bm9kZV9oYW5kbGU7CjE0NDc0
OiBzdHJ1Y3QgaW9tbXVfb3BzOwoxNDQ3NDogc3RydWN0IGlvbW11X2dyb3VwOwoxNDQ3NDogc3Ry
dWN0IGlvbW11X2Z3c3BlYzsKMTQ0NzQ6IHN0cnVjdCBkZXZfcGluX2luZm87CjE0NDc0OiBzdHJ1
Y3QgaW9tbXVfcGFyYW07CjE0NDc0OiAjIDYyICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCjE0
NDc0OiBzdHJ1Y3Qgc3Vic3lzX2ludGVyZmFjZSB7CjE0NDc0OiAgY29uc3QgY2hhciAqbmFtZTsK
MTQ0NzQ6ICBzdHJ1Y3QgYnVzX3R5cGUgKnN1YnN5czsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IG5vZGU7CjE0NDc0OiAgaW50ICgqYWRkX2Rldikoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg
c3Vic3lzX2ludGVyZmFjZSAqc2lmKTsKMTQ0NzQ6ICB2b2lkICgqcmVtb3ZlX2Rldikoc3RydWN0
IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc3Vic3lzX2ludGVyZmFjZSAqc2lmKTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGludCBzdWJzeXNfaW50ZXJmYWNlX3JlZ2lzdGVyKHN0cnVjdCBzdWJzeXNf
aW50ZXJmYWNlICpzaWYpOwoxNDQ3NDogdm9pZCBzdWJzeXNfaW50ZXJmYWNlX3VucmVnaXN0ZXIo
c3RydWN0IHN1YnN5c19pbnRlcmZhY2UgKnNpZik7CjE0NDc0OiAKMTQ0NzQ6IGludCBzdWJzeXNf
c3lzdGVtX3JlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAqc3Vic3lzLAoxNDQ3NDogICAgICAgY29u
c3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiBpbnQgc3Vic3lzX3Zp
cnR1YWxfcmVnaXN0ZXIoc3RydWN0IGJ1c190eXBlICpzdWJzeXMsCjE0NDc0OiAgICAgICAgY29u
c3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiAjIDg3ICIuL2luY2x1
ZGUvbGludXgvZGV2aWNlLmgiCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX3R5cGUgewoxNDQ3NDogIGNv
bnN0IGNoYXIgKm5hbWU7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdy
b3VwczsKMTQ0NzQ6ICBpbnQgKCp1ZXZlbnQpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGtv
YmpfdWV2ZW50X2VudiAqZW52KTsKMTQ0NzQ6ICBjaGFyICooKmRldm5vZGUpKHN0cnVjdCBkZXZp
Y2UgKmRldiwgdW1vZGVfdCAqbW9kZSwKMTQ0NzQ6ICAgICBrdWlkX3QgKnVpZCwga2dpZF90ICpn
aWQpOwoxNDQ3NDogIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDog
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSB7CjE0NDc0OiAgc3RydWN0IGF0
dHJpYnV0ZSBhdHRyOwoxNDQ3NDogIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZGV2aWNlICpkZXYs
IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgY2hhciAqYnVmKTsKMTQ0
NzQ6ICBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9h
dHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQp
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldl9leHRfYXR0cmlidXRlIHsKMTQ0
NzQ6ICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBhdHRyOwoxNDQ3NDogIHZvaWQgKnZhcjsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3Nob3dfdWxvbmcoc3RydWN0IGRl
dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgICAgY2hh
ciAqYnVmKTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3N0b3JlX3Vsb25nKHN0cnVjdCBkZXZpY2Ug
KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCjE0NDc0OiAgICAgICBjb25zdCBj
aGFyICpidWYsIHNpemVfdCBjb3VudCk7CjE0NDc0OiBzc2l6ZV90IGRldmljZV9zaG93X2ludChz
dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3NDog
ICAgY2hhciAqYnVmKTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3N0b3JlX2ludChzdHJ1Y3QgZGV2
aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3NDogICAgIGNvbnN0
IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3Nob3dfYm9v
bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAoxNDQ3
NDogICAgY2hhciAqYnVmKTsKMTQ0NzQ6IHNzaXplX3QgZGV2aWNlX3N0b3JlX2Jvb2woc3RydWN0
IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKMTQ0NzQ6ICAgICBj
b25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCk7CjE0NDc0OiAjIDE0OSAiLi9pbmNsdWRlL2xp
bnV4L2RldmljZS5oIgoxNDQ3NDogZXh0ZXJuIGludCBkZXZpY2VfY3JlYXRlX2ZpbGUoc3RydWN0
IGRldmljZSAqZGV2aWNlLAoxNDQ3NDogICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRy
aWJ1dGUgKmVudHJ5KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldmljZV9yZW1vdmVfZmlsZShzdHJ1
Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRy
aWJ1dGUgKmF0dHIpOwoxNDQ3NDogZXh0ZXJuIGJvb2wgZGV2aWNlX3JlbW92ZV9maWxlX3NlbGYo
c3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX2F0
dHJpYnV0ZSAqYXR0cik7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfY3JlYXRlX2Jpbl9maWxlKHN0cnVjdCBkZXZpY2UgKmRl
diwKMTQ0NzQ6ICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDog
ZXh0ZXJuIHZvaWQgZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIpOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmRyX3JlbGVhc2VfdCkoc3RydWN0IGRldmljZSAq
ZGV2LCB2b2lkICpyZXMpOwoxNDQ3NDogdHlwZWRlZiBpbnQgKCpkcl9tYXRjaF90KShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIHZvaWQgKnJlcywgdm9pZCAqbWF0Y2hfZGF0YSk7CjE0NDc0OiAjIDE3MiAi
Li9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgoxNDQ3NDogZXh0ZXJuIHZvaWQgKmRldnJlc19hbGxv
Y19ub2RlKGRyX3JlbGVhc2VfdCByZWxlYXNlLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwLAoxNDQ3
NDogICAgICAgICAgIGludCBuaWQpIF9fYXR0cmlidXRlX18oKF9fbWFsbG9jX18pKTsKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKmRldnJlc19hbGxvYyhkcl9yZWxlYXNlX3QgcmVsZWFzZSwgc2l6ZV90IHNpemUsIGdm
cF90IGdmcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGV2cmVzX2FsbG9jX25vZGUocmVsZWFz
ZSwgc2l6ZSwgZ2ZwLCAoLTEpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gdm9pZCBkZXZyZXNfZm9yX2VhY2hfcmVzKHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFz
ZV90IHJlbGVhc2UsCjE0NDc0OiAgICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0
YSwKMTQ0NzQ6ICAgICB2b2lkICgqZm4pKHN0cnVjdCBkZXZpY2UgKiwgdm9pZCAqLCB2b2lkICop
LAoxNDQ3NDogICAgIHZvaWQgKmRhdGEpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2cmVzX2ZyZWUo
dm9pZCAqcmVzKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldnJlc19hZGQoc3RydWN0IGRldmljZSAq
ZGV2LCB2b2lkICpyZXMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgKmRldnJlc19maW5kKHN0cnVjdCBk
ZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVhc2UsCjE0NDc0OiAgICAgZHJfbWF0Y2hfdCBt
YXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CjE0NDc0OiBleHRlcm4gdm9pZCAqZGV2cmVzX2dldChz
dHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKm5ld19yZXMsCjE0NDc0OiAgICBkcl9tYXRjaF90IG1h
dGNoLCB2b2lkICptYXRjaF9kYXRhKTsKMTQ0NzQ6IGV4dGVybiB2b2lkICpkZXZyZXNfcmVtb3Zl
KHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVhc2UsCjE0NDc0OiAgICAgICBk
cl9tYXRjaF90IG1hdGNoLCB2b2lkICptYXRjaF9kYXRhKTsKMTQ0NzQ6IGV4dGVybiBpbnQgZGV2
cmVzX2Rlc3Ryb3koc3RydWN0IGRldmljZSAqZGV2LCBkcl9yZWxlYXNlX3QgcmVsZWFzZSwKMTQ0
NzQ6ICAgICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CjE0NDc0OiBleHRl
cm4gaW50IGRldnJlc19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJl
bGVhc2UsCjE0NDc0OiAgICAgIGRyX21hdGNoX3QgbWF0Y2gsIHZvaWQgKm1hdGNoX2RhdGEpOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICogX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGRldnJlc19vcGVuX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwg
dm9pZCAqaWQsCjE0NDc0OiAgICAgICAgICAgZ2ZwX3QgZ2ZwKTsKMTQ0NzQ6IGV4dGVybiB2b2lk
IGRldnJlc19jbG9zZV9ncm91cChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmlkKTsKMTQ0NzQ6
IGV4dGVybiB2b2lkIGRldnJlc19yZW1vdmVfZ3JvdXAoc3RydWN0IGRldmljZSAqZGV2LCB2b2lk
ICppZCk7CjE0NDc0OiBleHRlcm4gaW50IGRldnJlc19yZWxlYXNlX2dyb3VwKHN0cnVjdCBkZXZp
Y2UgKmRldiwgdm9pZCAqaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkICpk
ZXZtX2ttYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKSBf
X2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CjE0NDc0OiBleHRlcm4gX19hdHRyaWJ1dGVfXygo
X19mb3JtYXRfXyhwcmludGYsIDMsIDApKSkKMTQ0NzQ6IGNoYXIgKmRldm1fa3Zhc3ByaW50Zihz
dHJ1Y3QgZGV2aWNlICpkZXYsIGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LAoxNDQ3NDogICAg
ICAgICB2YV9saXN0IGFwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CjE0NDc0OiBleHRl
cm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IGNoYXIg
KmRldm1fa2FzcHJpbnRmKHN0cnVjdCBkZXZpY2UgKmRldiwgZ2ZwX3QgZ2ZwLCBjb25zdCBjaGFy
ICpmbXQsIC4uLikgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwoxNDQ3NDogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqZGV2
bV9remFsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGV2bV9rbWFsbG9jKGRldiwgc2l6ZSwgZ2ZwIHwgKCggZ2Zw
X3QpMHgxMDB1KSk7CjE0NDc0OiB9CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpkZXZtX2ttYWxsb2NfYXJyYXkoc3Ry
dWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICAgICBzaXplX3Qgbiwgc2l6ZV90IHNpemUs
IGdmcF90IGZsYWdzKQoxNDQ3NDogewoxNDQ3NDogIHNpemVfdCBieXRlczsKMTQ0NzQ6IAoxNDQ3
NDogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh7IHR5cGVvZihuKSBfX2EgPSAobik7IHR5cGVv
ZihzaXplKSBfX2IgPSAoc2l6ZSk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9p
ZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292
ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSksIDApKQoxNDQ3NDogICByZXR1cm4gKCh2b2lkICop
MCk7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gZGV2bV9rbWFsbG9jKGRldiwgYnl0ZXMsIGZsYWdz
KTsKMTQ0NzQ6IH0KMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmRldm1fa2NhbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYs
CjE0NDc0OiAgICAgIHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCjE0NDc0OiB7
CjE0NDc0OiAgcmV0dXJuIGRldm1fa21hbGxvY19hcnJheShkZXYsIG4sIHNpemUsIGZsYWdzIHwg
KCggZ2ZwX3QpMHgxMDB1KSk7CjE0NDc0OiB9CjE0NDc0OiBleHRlcm4gdm9pZCBkZXZtX2tmcmVl
KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqcCk7CjE0NDc0OiBleHRlcm4gY2hhciAq
ZGV2bV9rc3RyZHVwKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcywgZ2ZwX3QgZ2Zw
KSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CjE0NDc0OiBleHRlcm4gY29uc3QgY2hhciAq
ZGV2bV9rc3RyZHVwX2NvbnN0KHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgICBj
b25zdCBjaGFyICpzLCBnZnBfdCBnZnApOwoxNDQ3NDogZXh0ZXJuIHZvaWQgKmRldm1fa21lbWR1
cChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGxlbiwKMTQ0NzQ6
ICAgICAgZ2ZwX3QgZ2ZwKTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZGV2
bV9nZXRfZnJlZV9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICBnZnBfdCBn
ZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldm1fZnJl
ZV9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgYWRkcik7CjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgKmRldm1faW9yZW1hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgICAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKMTQ0NzQ6IHZvaWQgKmRl
dm1faW9yZW1hcF9yZXNvdXJjZV93YyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCAqZGV2
bV9vZl9pb21hcChzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgc3RydWN0IGRldmlj
ZV9ub2RlICpub2RlLCBpbnQgaW5kZXgsCjE0NDc0OiAgICAgICAgcmVzb3VyY2Vfc2l6ZV90ICpz
aXplKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBpbnQgZGV2bV9hZGRfYWN0aW9uKHN0cnVjdCBk
ZXZpY2UgKmRldiwgdm9pZCAoKmFjdGlvbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CjE0NDc0OiB2
b2lkIGRldm1fcmVtb3ZlX2FjdGlvbihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKCphY3Rpb24p
KHZvaWQgKiksIHZvaWQgKmRhdGEpOwoxNDQ3NDogdm9pZCBkZXZtX3JlbGVhc2VfYWN0aW9uKHN0
cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAoKmFjdGlvbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoc3RydWN0IGRldmljZSAq
ZGV2LAoxNDQ3NDogICAgICAgICB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2b2lkICpkYXRhKQox
NDQ3NDogewoxNDQ3NDogIGludCByZXQ7CjE0NDc0OiAKMTQ0NzQ6ICByZXQgPSBkZXZtX2FkZF9h
Y3Rpb24oZGV2LCBhY3Rpb24sIGRhdGEpOwoxNDQ3NDogIGlmIChyZXQpCjE0NDc0OiAgIGFjdGlv
bihkYXRhKTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXQ7CjE0NDc0OiB9CjE0NDc0OiAjIDI4
MiAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgoxNDQ3NDogdm9pZCAqX19kZXZtX2FsbG9jX3Bl
cmNwdShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAoxNDQ3NDogICAgICAgIHNpemVf
dCBhbGlnbik7CjE0NDc0OiB2b2lkIGRldm1fZnJlZV9wZXJjcHUoc3RydWN0IGRldmljZSAqZGV2
LCB2b2lkICpwZGF0YSk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZXZpY2VfZG1hX3BhcmFtZXRl
cnMgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50
IG1heF9zZWdtZW50X3NpemU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzZWdtZW50X2JvdW5kYXJ5
X21hc2s7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMDYgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIK
MTQ0NzQ6IHN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiB7CjE0NDc0OiAgc3RydWN0IGZ3bm9kZV9o
YW5kbGUgKmZ3bm9kZTsKMTQ0NzQ6ICBjb25zdCBjaGFyICplbmRwb2ludFsyXTsKMTQ0NzQ6ICBj
b25zdCBjaGFyICppZDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiB0eXBlZGVmIHZvaWQgKigqZGV2Y29uX21hdGNoX2ZuX3QpKHN0cnVjdCBk
ZXZpY2VfY29ubmVjdGlvbiAqY29uLCBpbnQgZXAsCjE0NDc0OiAgICAgICAgdm9pZCAqZGF0YSk7
CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgKmZ3bm9kZV9jb25uZWN0aW9uX2ZpbmRfbWF0Y2goc3RydWN0
IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwKMTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICpjb25faWQs
IHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICAgZGV2Y29uX21hdGNoX2ZuX3QgbWF0Y2gpOwoxNDQ3
NDogdm9pZCAqZGV2aWNlX2Nvbm5lY3Rpb25fZmluZF9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYs
IGNvbnN0IGNoYXIgKmNvbl9pZCwKMTQ0NzQ6ICAgICAgICB2b2lkICpkYXRhLCBkZXZjb25fbWF0
Y2hfZm5fdCBtYXRjaCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZXZpY2UgKmRldmljZV9jb25u
ZWN0aW9uX2ZpbmQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpjb25faWQpOwoxNDQ3
NDogCjE0NDc0OiB2b2lkIGRldmljZV9jb25uZWN0aW9uX2FkZChzdHJ1Y3QgZGV2aWNlX2Nvbm5l
Y3Rpb24gKmNvbik7CjE0NDc0OiB2b2lkIGRldmljZV9jb25uZWN0aW9uX3JlbW92ZShzdHJ1Y3Qg
ZGV2aWNlX2Nvbm5lY3Rpb24gKmNvbik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfY29ubmVjdGlvbnNfYWRkKHN0cnVjdCBkZXZpY2Vf
Y29ubmVjdGlvbiAqY29ucykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rp
b24gKmM7CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKGMgPSBjb25zOyBjLT5lbmRwb2ludFswXTsgYysr
KQoxNDQ3NDogICBkZXZpY2VfY29ubmVjdGlvbl9hZGQoYyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfY29ubmVjdGlv
bnNfcmVtb3ZlKHN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiAqY29ucykKMTQ0NzQ6IHsKMTQ0NzQ6
ICBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24gKmM7CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKGMgPSBj
b25zOyBjLT5lbmRwb2ludFswXTsgYysrKQoxNDQ3NDogICBkZXZpY2VfY29ubmVjdGlvbl9yZW1v
dmUoYyk7CjE0NDc0OiB9CjE0NDc0OiAjIDM2MCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgox
NDQ3NDogZW51bSBkZXZpY2VfbGlua19zdGF0ZSB7CjE0NDc0OiAgRExfU1RBVEVfTk9ORSA9IC0x
LAoxNDQ3NDogIERMX1NUQVRFX0RPUk1BTlQgPSAwLAoxNDQ3NDogIERMX1NUQVRFX0FWQUlMQUJM
RSwKMTQ0NzQ6ICBETF9TVEFURV9DT05TVU1FUl9QUk9CRSwKMTQ0NzQ6ICBETF9TVEFURV9BQ1RJ
VkUsCjE0NDc0OiAgRExfU1RBVEVfU1VQUExJRVJfVU5CSU5ELAoxNDQ3NDogfTsKMTQ0NzQ6ICMg
NDAzICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX2xpbmsg
ewoxNDQ3NDogIHN0cnVjdCBkZXZpY2UgKnN1cHBsaWVyOwoxNDQ3NDogIHN0cnVjdCBsaXN0X2hl
YWQgc19ub2RlOwoxNDQ3NDogIHN0cnVjdCBkZXZpY2UgKmNvbnN1bWVyOwoxNDQ3NDogIHN0cnVj
dCBsaXN0X2hlYWQgY19ub2RlOwoxNDQ3NDogIGVudW0gZGV2aWNlX2xpbmtfc3RhdGUgc3RhdHVz
OwoxNDQ3NDogIHUzMiBmbGFnczsKMTQ0NzQ6ICByZWZjb3VudF90IHJwbV9hY3RpdmU7CjE0NDc0
OiAgc3RydWN0IGtyZWYga3JlZjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjYWxsYmFja19oZWFk
IGNhbGxiYWNrX2hlYWQ7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIHN1cHBsaWVyX3ByZWFjdGl2YXRl
ZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDQyNSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIgoxNDQ3
NDogZW51bSBkbF9kZXZfc3RhdGUgewoxNDQ3NDogIERMX0RFVl9OT19EUklWRVIgPSAwLAoxNDQ3
NDogIERMX0RFVl9QUk9CSU5HLAoxNDQ3NDogIERMX0RFVl9EUklWRVJfQk9VTkQsCjE0NDc0OiAg
RExfREVWX1VOQklORElORywKMTQ0NzQ6IH07CjE0NDc0OiAjIDQ0MiAiLi9pbmNsdWRlL2xpbnV4
L2RldmljZS5oIgoxNDQ3NDogc3RydWN0IGRldl9saW5rc19pbmZvIHsKMTQ0NzQ6ICBzdHJ1Y3Qg
bGlzdF9oZWFkIHN1cHBsaWVyczsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIGNvbnN1bWVyczsK
MTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFkIG5lZWRzX3N1cHBsaWVyczsKMTQ0NzQ6ICBzdHJ1Y3Qg
bGlzdF9oZWFkIGRlZmVyX3N5bmM7CjE0NDc0OiAgYm9vbCBuZWVkX2Zvcl9wcm9iZTsKMTQ0NzQ6
ICBlbnVtIGRsX2Rldl9zdGF0ZSBzdGF0dXM7CjE0NDc0OiB9OwoxNDQ3NDogIyA1MzcgIi4vaW5j
bHVkZS9saW51eC9kZXZpY2UuaCIKMTQ0NzQ6IHN0cnVjdCBkZXZpY2UgewoxNDQ3NDogIHN0cnVj
dCBrb2JqZWN0IGtvYmo7CjE0NDc0OiAgc3RydWN0IGRldmljZSAqcGFyZW50OwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IGRldmljZV9wcml2YXRlICpwOwoxNDQ3NDogCjE0NDc0OiAgY29uc3QgY2hh
ciAqaW5pdF9uYW1lOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSAqdHlwZTsKMTQ0
NzQ6IAoxNDQ3NDogIHN0cnVjdCBidXNfdHlwZSAqYnVzOwoxNDQ3NDogIHN0cnVjdCBkZXZpY2Vf
ZHJpdmVyICpkcml2ZXI7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICpwbGF0Zm9ybV9kYXRhOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAqZHJpdmVyX2RhdGE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgbXV0ZXggbXV0ZXg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRldl9saW5rc19pbmZvIGxpbmtzOwoxNDQ3NDogIHN0cnVjdCBkZXZf
cG1faW5mbyBwb3dlcjsKMTQ0NzQ6ICBzdHJ1Y3QgZGV2X3BtX2RvbWFpbiAqcG1fZG9tYWluOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgaXJxX2RvbWFpbiAqbXNpX2RvbWFpbjsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRldl9waW5faW5mbyAqcGluczsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpc3RfaGVhZCBtc2lfbGlzdDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpkbWFfb3BzOwoxNDQ3NDogIHU2NCAq
ZG1hX21hc2s7CjE0NDc0OiAgdTY0IGNvaGVyZW50X2RtYV9tYXNrOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdTY0IGJ1c19kbWFfbGltaXQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBkbWFfcGZuX29mZnNldDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkZXZpY2VfZG1h
X3BhcmFtZXRlcnMgKmRtYV9wYXJtczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaXN0X2hlYWQg
ZG1hX3Bvb2xzOwoxNDQ3NDogIyA1OTcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKMTQ0NzQ6
ICBzdHJ1Y3QgZGV2X2FyY2hkYXRhIGFyY2hkYXRhOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRl
dmljZV9ub2RlICpvZl9ub2RlOwoxNDQ3NDogIHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBkZXZfdCBkZXZ0OwoxNDQ3
NDogIHUzMiBpZDsKMTQ0NzQ6IAoxNDQ3NDogIHNwaW5sb2NrX3QgZGV2cmVzX2xvY2s7CjE0NDc0
OiAgc3RydWN0IGxpc3RfaGVhZCBkZXZyZXNfaGVhZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBj
bGFzcyAqY2xhc3M7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vw
czsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwox
NDQ3NDogIHN0cnVjdCBpb21tdV9ncm91cCAqaW9tbXVfZ3JvdXA7CjE0NDc0OiAgc3RydWN0IGlv
bW11X2Z3c3BlYyAqaW9tbXVfZndzcGVjOwoxNDQ3NDogIHN0cnVjdCBpb21tdV9wYXJhbSAqaW9t
bXVfcGFyYW07CjE0NDc0OiAKMTQ0NzQ6ICBib29sIG9mZmxpbmVfZGlzYWJsZWQ6MTsKMTQ0NzQ6
ICBib29sIG9mZmxpbmU6MTsKMTQ0NzQ6ICBib29sIG9mX25vZGVfcmV1c2VkOjE7CjE0NDc0OiAg
Ym9vbCBzdGF0ZV9zeW5jZWQ6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICprb2JqX3RvX2Rldihz
dHJ1Y3Qga29iamVjdCAqa29iaikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHsgdm9pZCAqX19t
cHRyID0gKHZvaWQgKikoa29iaik7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3Nl
cnRfNjMyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21h
dGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBh
dGlibGVfcCh0eXBlb2YoKihrb2JqKSksIHR5cGVvZigoKHN0cnVjdCBkZXZpY2UgKikwKS0+a29i
aikpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKGtvYmopKSwgdHlw
ZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF82MzIoKTsgfSB3aGlsZSAoMCk7ICgo
c3RydWN0IGRldmljZSAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGRldmlj
ZSwga29iaikpKTsgfSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRldmljZV9pb21tdV9tYXBwZWQoc3RydWN0IGRl
dmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAoZGV2LT5pb21tdV9ncm91cCAhPSAo
KHZvaWQgKikwKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2luY2x1
ZGUvbGludXgvcG1fd2FrZXVwLmgiIDEKMTQ0NzQ6ICMgMTggIi4vaW5jbHVkZS9saW51eC9wbV93
YWtldXAuaCIKMTQ0NzQ6IHN0cnVjdCB3YWtlX2lycTsKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS9s
aW51eC9wbV93YWtldXAuaCIKMTQ0NzQ6IHN0cnVjdCB3YWtldXBfc291cmNlIHsKMTQ0NzQ6ICBj
b25zdCBjaGFyICpuYW1lOwoxNDQ3NDogIGludCBpZDsKMTQ0NzQ6ICBzdHJ1Y3QgbGlzdF9oZWFk
IGVudHJ5OwoxNDQ3NDogIHNwaW5sb2NrX3QgbG9jazsKMTQ0NzQ6ICBzdHJ1Y3Qgd2FrZV9pcnEg
Kndha2VpcnE7CjE0NDc0OiAgc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyB0aW1lcl9leHBpcmVzOwoxNDQ3NDogIGt0aW1lX3QgdG90YWxfdGltZTsKMTQ0NzQ6
ICBrdGltZV90IG1heF90aW1lOwoxNDQ3NDogIGt0aW1lX3QgbGFzdF90aW1lOwoxNDQ3NDogIGt0
aW1lX3Qgc3RhcnRfcHJldmVudF90aW1lOwoxNDQ3NDogIGt0aW1lX3QgcHJldmVudF9zbGVlcF90
aW1lOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgZXZlbnRfY291bnQ7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBhY3RpdmVfY291bnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyByZWxheF9jb3VudDsKMTQ0
NzQ6ICB1bnNpZ25lZCBsb25nIGV4cGlyZV9jb3VudDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHdh
a2V1cF9jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgZGV2aWNlICpkZXY7CjE0NDc0OiAgYm9vbCBhY3Rp
dmU6MTsKMTQ0NzQ6ICBib29sIGF1dG9zbGVlcF9lbmFibGVkOjE7CjE0NDc0OiB9OwoxNDQ3NDog
IyA3NyAiLi9pbmNsdWRlL2xpbnV4L3BtX3dha2V1cC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfY2Fu
X3dha2V1cChzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+
cG93ZXIuY2FuX3dha2V1cDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfbWF5
X3dha2V1cChzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+
cG93ZXIuY2FuX3dha2V1cCAmJiAhIWRldi0+cG93ZXIud2FrZXVwOwoxNDQ3NDogfQoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRldmljZV9zZXRfd2FrZXVwX3BhdGgoc3RydWN0IGRldmljZSAqZGV2KQox
NDQ3NDogewoxNDQ3NDogIGRldi0+cG93ZXIud2FrZXVwX3BhdGggPSB0cnVlOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd2FrZXVw
X3NvdXJjZV9jcmVhdGUoY29uc3QgY2hhciAqbmFtZSk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtl
dXBfc291cmNlX2Rlc3Ryb3koc3RydWN0IHdha2V1cF9zb3VyY2UgKndzKTsKMTQ0NzQ6IGV4dGVy
biB2b2lkIHdha2V1cF9zb3VyY2VfYWRkKHN0cnVjdCB3YWtldXBfc291cmNlICp3cyk7CjE0NDc0
OiBleHRlcm4gdm9pZCB3YWtldXBfc291cmNlX3JlbW92ZShzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAq
d3MpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB3YWtldXBfc291cmNlICp3YWtldXBfc291cmNlX3Jl
Z2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBjaGFyICpu
YW1lKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHdha2V1cF9zb3VyY2VfdW5yZWdpc3RlcihzdHJ1Y3Qg
d2FrZXVwX3NvdXJjZSAqd3MpOwoxNDQ3NDogZXh0ZXJuIGludCB3YWtldXBfc291cmNlc19yZWFk
X2xvY2sodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB3YWtldXBfc291cmNlc19yZWFkX3VubG9j
ayhpbnQgaWR4KTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd2FrZXVwX3Nv
dXJjZXNfd2Fsa19zdGFydCh2b2lkKTsKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJj
ZSAqd2FrZXVwX3NvdXJjZXNfd2Fsa19uZXh0KHN0cnVjdCB3YWtldXBfc291cmNlICp3cyk7CjE0
NDc0OiBleHRlcm4gaW50IGRldmljZV93YWtldXBfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV93YWtldXBfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2aWNlX3NldF93YWtldXBfY2FwYWJsZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGJvb2wgY2FwYWJsZSk7CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV9pbml0
X3dha2V1cChzdHJ1Y3QgZGV2aWNlICpkZXYsIGJvb2wgdmFsKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
ZGV2aWNlX3NldF93YWtldXBfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCBlbmFibGUp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgX19wbV9zdGF5X2F3YWtlKHN0cnVjdCB3YWtldXBfc291cmNl
ICp3cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBwbV9zdGF5X2F3YWtlKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiBleHRlcm4gdm9pZCBfX3BtX3JlbGF4KHN0cnVjdCB3YWtldXBfc291cmNlICp3
cyk7CjE0NDc0OiBleHRlcm4gdm9pZCBwbV9yZWxheChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3
NDogZXh0ZXJuIHZvaWQgcG1fd2FrZXVwX3dzX2V2ZW50KHN0cnVjdCB3YWtldXBfc291cmNlICp3
cywgdW5zaWduZWQgaW50IG1zZWMsIGJvb2wgaGFyZCk7CjE0NDc0OiBleHRlcm4gdm9pZCBwbV93
YWtldXBfZGV2X2V2ZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG1zZWMsIGJv
b2wgaGFyZCk7CjE0NDc0OiAjIDE5NSAiLi9pbmNsdWRlL2xpbnV4L3BtX3dha2V1cC5oIgoxNDQ3
NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBfX3BtX3dha2V1cF9ldmVudChzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MsIHVuc2ln
bmVkIGludCBtc2VjKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBwbV93YWtldXBfd3NfZXZlbnQo
d3MsIG1zZWMsIGZhbHNlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbV93YWtldXBf
ZXZlbnQoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbXNlYykKMTQ0NzQ6IHsKMTQ0
NzQ6ICByZXR1cm4gcG1fd2FrZXVwX2Rldl9ldmVudChkZXYsIG1zZWMsIGZhbHNlKTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbV93YWtldXBfaGFyZF9ldmVudChzdHJ1Y3QgZGV2aWNl
ICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIHBtX3dha2V1cF9kZXZfZXZlbnQoZGV2LCAw
LCB0cnVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgNjQ3ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgY2hhciAqZGV2X25hbWUoY29uc3Qgc3RydWN0IGRldmlj
ZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgaWYgKGRldi0+aW5pdF9uYW1lKQoxNDQ3
NDogICByZXR1cm4gZGV2LT5pbml0X25hbWU7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4ga29iamVj
dF9uYW1lKCZkZXYtPmtvYmopOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBleHRlcm4gX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkKMTQ0NzQ6IGludCBkZXZfc2V0X25h
bWUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLCAuLi4pOwoxNDQ3NDogIyA2
NzAgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkZXZfdG9fbm9kZShzdHJ1
Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgtMSk7CjE0NDc0OiB9CjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIHNldF9kZXZfbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBub2RlKQoxNDQ3
NDogewoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpcnFfZG9tYWluICpk
ZXZfZ2V0X21zaV9kb21haW4oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3
NDogCjE0NDc0OiAgcmV0dXJuIGRldi0+bXNpX2RvbWFpbjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfc2V0X21zaV9kb21haW4oc3RydWN0
IGRldmljZSAqZGV2LCBzdHJ1Y3QgaXJxX2RvbWFpbiAqZCkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3
NDogIGRldi0+bXNpX2RvbWFpbiA9IGQ7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqZGV2X2dldF9kcnZkYXRhKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsK
MTQ0NzQ6ICByZXR1cm4gZGV2LT5kcml2ZXJfZGF0YTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBkZXZfc2V0X2RydmRhdGEoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoxNDQ3
NDogewoxNDQ3NDogIGRldi0+ZHJpdmVyX2RhdGEgPSBkYXRhOwoxNDQ3NDogfQoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3QgcG1fc3Vic3lzX2RhdGEgKmRldl90b19wc2Qoc3RydWN0IGRldmljZSAqZGV2
KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkZXYgPyBkZXYtPnBvd2VyLnN1YnN5c19kYXRhIDog
KCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBkZXZfZ2V0
X3VldmVudF9zdXBwcmVzcyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0
OiAgcmV0dXJuIGRldi0+a29iai51ZXZlbnRfc3VwcHJlc3M7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgZGV2X3NldF91ZXZlbnRfc3VwcHJlc3Moc3RydWN0IGRldmljZSAqZGV2LCBpbnQg
dmFsKQoxNDQ3NDogewoxNDQ3NDogIGRldi0+a29iai51ZXZlbnRfc3VwcHJlc3MgPSB2YWw7CjE0
NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkZXZpY2VfaXNfcmVnaXN0ZXJlZChzdHJ1Y3QgZGV2
aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+a29iai5zdGF0ZV9pbl9zeXNm
czsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfZW5hYmxlX2FzeW5jX3N1c3Bl
bmQoc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIGlmICghZGV2LT5wb3dlci5p
c19wcmVwYXJlZCkKMTQ0NzQ6ICAgZGV2LT5wb3dlci5hc3luY19zdXNwZW5kID0gdHJ1ZTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2VfZGlzYWJsZV9hc3luY19zdXNwZW5kKHN0
cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWRldi0+cG93ZXIuaXNfcHJl
cGFyZWQpCjE0NDc0OiAgIGRldi0+cG93ZXIuYXN5bmNfc3VzcGVuZCA9IGZhbHNlOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRldmljZV9hc3luY19zdXNwZW5kX2VuYWJsZWQoc3RydWN0
IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiAhIWRldi0+cG93ZXIuYXN5bmNf
c3VzcGVuZDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfcG1fbm90X3JlcXVp
cmVkKHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGV2LT5wb3dl
ci5ub19wbTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZpY2Vfc2V0X3BtX25vdF9y
ZXF1aXJlZChzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgZGV2LT5wb3dlci5u
b19wbSA9IHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGV2X3BtX3N5c2NvcmVf
ZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCB2YWwpCjE0NDc0OiB7CjE0NDc0OiAKMTQ0
NzQ6ICBkZXYtPnBvd2VyLnN5c2NvcmUgPSB2YWw7CjE0NDc0OiAKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBkZXZfcG1fc2V0X2RyaXZlcl9mbGFncyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHUz
MiBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICBkZXYtPnBvd2VyLmRyaXZlcl9mbGFncyA9IGZsYWdz
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRldl9wbV90ZXN0X2RyaXZlcl9mbGFncyhz
dHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBmbGFncykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gISEo
ZGV2LT5wb3dlci5kcml2ZXJfZmxhZ3MgJiBmbGFncyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgZGV2aWNlX2xvY2soc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3NDogewoxNDQ3NDogIG11
dGV4X2xvY2soJmRldi0+bXV0ZXgpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGV2aWNl
X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5tdXRleCk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBkZXZpY2VfdHJ5bG9jayhzdHJ1Y3QgZGV2aWNlICpkZXYpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIG11dGV4X3RyeWxvY2soJmRldi0+bXV0ZXgpOwoxNDQ3NDogfQox
NDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV91bmxvY2soc3RydWN0IGRldmljZSAqZGV2KQoxNDQ3
NDogewoxNDQ3NDogIG11dGV4X3VubG9jaygmZGV2LT5tdXRleCk7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgZGV2aWNlX2xvY2tfYXNzZXJ0KHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6
IHsKMTQ0NzQ6ICBkbyB7ICh2b2lkKSgmZGV2LT5tdXRleCk7IH0gd2hpbGUgKDApOwoxNDQ3NDog
fQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlX25vZGUgKmRldl9vZl9ub2RlKHN0cnVjdCBk
ZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoITAgfHwgIWRldikKMTQ0NzQ6ICAgcmV0
dXJuICgodm9pZCAqKTApOwoxNDQ3NDogIHJldHVybiBkZXYtPm9mX25vZGU7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZGV2X2hhc19zeW5jX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRldikK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoIWRldikKMTQ0NzQ6ICAgcmV0dXJuIGZhbHNlOwoxNDQ3NDog
IGlmIChkZXYtPmRyaXZlciAmJiBkZXYtPmRyaXZlci0+c3luY19zdGF0ZSkKMTQ0NzQ6ICAgcmV0
dXJuIHRydWU7CjE0NDc0OiAgaWYgKGRldi0+YnVzICYmIGRldi0+YnVzLT5zeW5jX3N0YXRlKQox
NDQ3NDogICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmljZV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNl
ICpkZXYpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldmljZV9pbml0aWFsaXplKHN0cnVjdCBkZXZp
Y2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBkZXZpY2VfYWRkKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4g
dm9pZCBkZXZpY2VfZGVsKHN0cnVjdCBkZXZpY2UgKmRldik7CjE0NDc0OiBleHRlcm4gaW50IGRl
dmljZV9mb3JfZWFjaF9jaGlsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCjE0NDc0
OiAgICAgICAgaW50ICgqZm4pKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkpOwoxNDQ3
NDogZXh0ZXJuIGludCBkZXZpY2VfZm9yX2VhY2hfY2hpbGRfcmV2ZXJzZShzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHZvaWQgKmRhdGEsCjE0NDc0OiAgICAgICAgaW50ICgqZm4pKHN0cnVjdCBkZXZpY2Ug
KmRldiwgdm9pZCAqZGF0YSkpOwoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmRldmljZV9m
aW5kX2NoaWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKMTQ0NzQ6ICAgICBpbnQg
KCptYXRjaCkoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKSk7CjE0NDc0OiBleHRlcm4g
c3RydWN0IGRldmljZSAqZGV2aWNlX2ZpbmRfY2hpbGRfYnlfbmFtZShzdHJ1Y3QgZGV2aWNlICpw
YXJlbnQsCjE0NDc0OiAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
ZGV2aWNlX3JlbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5ld19uYW1lKTsK
MTQ0NzQ6IGV4dGVybiBpbnQgZGV2aWNlX21vdmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg
ZGV2aWNlICpuZXdfcGFyZW50LAoxNDQ3NDogICAgICAgICAgZW51bSBkcG1fb3JkZXIgZHBtX29y
ZGVyKTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBjaGFyICpkZXZpY2VfZ2V0X2Rldm5vZGUoc3RydWN0
IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICAgICAgIHVtb2RlX3QgKm1vZGUsIGt1aWRfdCAqdWlk
LCBrZ2lkX3QgKmdpZCwKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBjaGFyICoqdG1wKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkZXZpY2Vfc3VwcG9ydHNfb2ZmbGluZShzdHJ1Y3QgZGV2aWNlICpkZXYp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+YnVzICYmIGRldi0+YnVzLT5vZmZsaW5lICYm
IGRldi0+YnVzLT5vbmxpbmU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiB2b2lkIGxv
Y2tfZGV2aWNlX2hvdHBsdWcodm9pZCk7CjE0NDc0OiBleHRlcm4gdm9pZCB1bmxvY2tfZGV2aWNl
X2hvdHBsdWcodm9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGxvY2tfZGV2aWNlX2hvdHBsdWdfc3lz
ZnModm9pZCk7CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV9vZmZsaW5lKHN0cnVjdCBkZXZpY2Ug
KmRldik7CjE0NDc0OiBleHRlcm4gaW50IGRldmljZV9vbmxpbmUoc3RydWN0IGRldmljZSAqZGV2
KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHNldF9wcmltYXJ5X2Z3bm9kZShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgc2V0
X3NlY29uZGFyeV9md25vZGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZndub2RlX2hhbmRs
ZSAqZndub2RlKTsKMTQ0NzQ6IHZvaWQgZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVj
dCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2Mik7CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBkZXZfbnVtX3ZmKHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
ZGV2LT5idXMgJiYgZGV2LT5idXMtPm51bV92ZikKMTQ0NzQ6ICAgcmV0dXJuIGRldi0+YnVzLT5u
dW1fdmYoZGV2KTsKMTQ0NzQ6ICByZXR1cm4gMDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKl9fcm9vdF9kZXZpY2Vf
cmVnaXN0ZXIoY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAgICAgICBzdHJ1Y3QgbW9kdWxl
ICpvd25lcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZXh0ZXJuIHZvaWQgcm9vdF9kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpyb290KTsK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCAqZGV2X2dldF9wbGF0ZGF0YShjb25zdCBzdHJ1Y3QgZGV2aWNl
ICpkZXYpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRldi0+cGxhdGZvcm1fZGF0YTsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
aW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfYmluZF9k
cml2ZXIoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGRldmljZV9yZWxl
YXNlX2RyaXZlcihzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZGV2aWNlX2F0dGFjaChzdHJ1Y3QgZGV2
aWNlICpkZXYpOwoxNDQ3NDogZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkgZHJpdmVyX2F0dGFjaChzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIGRldmljZV9pbml0aWFsX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBkZXZpY2VfcmVwcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogCjE0NDc0OiBleHRl
cm4gYm9vbCBkZXZpY2VfaXNfYm91bmQoc3RydWN0IGRldmljZSAqZGV2KTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCA1LCAwKSkpCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpkZXZpY2VfY3JlYXRlX3Zh
cmdzKHN0cnVjdCBjbGFzcyAqY2xzLCBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCjE0NDc0OiAgICAg
ICAgZGV2X3QgZGV2dCwgdm9pZCAqZHJ2ZGF0YSwKMTQ0NzQ6ICAgICAgICBjb25zdCBjaGFyICpm
bXQsIHZhX2xpc3QgdmFyZ3MpOwoxNDQ3NDogZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCA1LCA2KSkpCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlICpkZXZpY2VfY3JlYXRlKHN0
cnVjdCBjbGFzcyAqY2xzLCBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCjE0NDc0OiAgICAgICAgIGRl
dl90IGRldnQsIHZvaWQgKmRydmRhdGEsCjE0NDc0OiAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwg
Li4uKTsKMTQ0NzQ6IGV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgNiwg
NykpKQoxNDQ3NDogc3RydWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3VwcyhzdHJ1
Y3QgY2xhc3MgKmNscywKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRldmljZSAqcGFyZW50LCBkZXZf
dCBkZXZ0LCB2b2lkICpkcnZkYXRhLAoxNDQ3NDogICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmli
dXRlX2dyb3VwICoqZ3JvdXBzLAoxNDQ3NDogICAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7
CjE0NDc0OiBleHRlcm4gdm9pZCBkZXZpY2VfZGVzdHJveShzdHJ1Y3QgY2xhc3MgKmNscywgZGV2
X3QgZGV2dCk7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGRldmljZV9hZGRfZ3JvdXBzKHN0cnVjdCBkZXZpY2UgKmRldiwK
MTQ0NzQ6ICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0
OiBleHRlcm4gdm9pZCBkZXZpY2VfcmVtb3ZlX2dyb3VwcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmlj
ZV9hZGRfZ3JvdXAoc3RydWN0IGRldmljZSAqZGV2LAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3Qg
YXR0cmlidXRlX2dyb3VwICpncnApCjE0NDc0OiB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF0dHJp
YnV0ZV9ncm91cCAqZ3JvdXBzW10gPSB7IGdycCwgKCh2b2lkICopMCkgfTsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiBkZXZpY2VfYWRkX2dyb3VwcyhkZXYsIGdyb3Vwcyk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZGV2aWNlX3JlbW92ZV9ncm91cChzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0
NDc0OiAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmdycCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncm91cHNbXSA9IHsgZ3Jw
LCAoKHZvaWQgKikwKSB9OwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGRldmljZV9yZW1vdmVfZ3Jv
dXBzKGRldiwgZ3JvdXBzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZGV2bV9kZXZpY2VfYWRkX2dyb3Vw
cyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVf
Z3JvdXAgKipncm91cHMpOwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2bV9kZXZpY2VfcmVtb3ZlX2dy
b3VwcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGF0
dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CjE0NDc0OiBleHRlcm4gaW50IF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZtX2RldmljZV9hZGRfZ3JvdXAoc3RydWN0IGRl
dmljZSAqZGV2LAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncnAp
OwoxNDQ3NDogZXh0ZXJuIHZvaWQgZGV2bV9kZXZpY2VfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZp
Y2UgKmRldiwKMTQ0NzQ6ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmdy
cCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGV4dGVybiBpbnQgKCpwbGF0Zm9ybV9ub3RpZnkpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBpbnQgKCpwbGF0Zm9ybV9ub3RpZnlfcmVtb3ZlKShz
dHJ1Y3QgZGV2aWNlICpkZXYpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmdldF9kZXZpY2Uoc3RydWN0
IGRldmljZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiB2b2lkIHB1dF9kZXZpY2Uoc3RydWN0IGRldmlj
ZSAqZGV2KTsKMTQ0NzQ6IGV4dGVybiBib29sIGtpbGxfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRl
dik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIGludCBkZXZ0bXBmc19tb3VudCh2b2lk
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4g
dm9pZCBkZXZpY2Vfc2h1dGRvd24odm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IGNvbnN0IGNoYXIgKmRldl9kcml2ZXJfc3RyaW5nKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldik7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRldmljZV9saW5rICpkZXZpY2VfbGlua19h
ZGQoc3RydWN0IGRldmljZSAqY29uc3VtZXIsCjE0NDc0OiAgICAgICAgIHN0cnVjdCBkZXZpY2Ug
KnN1cHBsaWVyLCB1MzIgZmxhZ3MpOwoxNDQ3NDogdm9pZCBkZXZpY2VfbGlua19kZWwoc3RydWN0
IGRldmljZV9saW5rICpsaW5rKTsKMTQ0NzQ6IHZvaWQgZGV2aWNlX2xpbmtfcmVtb3ZlKHZvaWQg
KmNvbnN1bWVyLCBzdHJ1Y3QgZGV2aWNlICpzdXBwbGllcik7CjE0NDc0OiB2b2lkIGRldmljZV9s
aW5rc19zdXBwbGllcl9zeW5jX3N0YXRlX3BhdXNlKHZvaWQpOwoxNDQ3NDogdm9pZCBkZXZpY2Vf
bGlua3Nfc3VwcGxpZXJfc3luY19zdGF0ZV9yZXN1bWUodm9pZCk7CjE0NDc0OiAjIDMzICIuL2lu
Y2x1ZGUvZHJtL2RybV9wcmludC5oIiAyCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC9kZWJ1
Z2ZzLmgiIDEKMTQ0NzQ6ICMgMjEgIi4vaW5jbHVkZS9saW51eC9kZWJ1Z2ZzLmgiCjE0NDc0OiBz
dHJ1Y3QgZGV2aWNlOwoxNDQ3NDogc3RydWN0IGZpbGVfb3BlcmF0aW9uczsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRlYnVnZnNfYmxvYl93cmFwcGVyIHsKMTQ0NzQ6ICB2b2lkICpkYXRhOwoxNDQ3
NDogIHVuc2lnbmVkIGxvbmcgc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
ZWJ1Z2ZzX3JlZzMyIHsKMTQ0NzQ6ICBjaGFyICpuYW1lOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIg
ewoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyICpyZWdzOwoxNDQ3NDogIGludCBu
cmVnczsKMTQ0NzQ6ICB2b2lkICpiYXNlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJu
IHN0cnVjdCBkZW50cnkgKmFyY2hfZGVidWdmc19kaXI7CjE0NDc0OiAjIDU3ICIuL2luY2x1ZGUv
bGludXgvZGVidWdmcy5oIgoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgdmZzbW91bnQgKigqZGVidWdm
c19hdXRvbW91bnRfdCkoc3RydWN0IGRlbnRyeSAqLCB2b2lkICopOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19sb29rdXAoY29uc3QgY2hhciAq
bmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50KTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRy
eSAqZGVidWdmc19jcmVhdGVfZmlsZShjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCjE0
NDc0OiAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB2b2lkICpkYXRhLAoxNDQ3NDogICAg
ICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwoxNDQ3NDogc3RydWN0IGRl
bnRyeSAqZGVidWdmc19jcmVhdGVfZmlsZV91bnNhZmUoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVf
dCBtb2RlLAoxNDQ3NDogICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdm9pZCAqZGF0YSwK
MTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfZmlsZV9zaXplKGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50
LCB2b2lkICpkYXRhLAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpm
b3BzLAoxNDQ3NDogICAgICBsb2ZmX3QgZmlsZV9zaXplKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfZGlyKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkZW50
cnkgKnBhcmVudCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRl
X3N5bWxpbmsoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDog
ICAgICAgICAgIGNvbnN0IGNoYXIgKmRlc3QpOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGVudHJ5
ICpkZWJ1Z2ZzX2NyZWF0ZV9hdXRvbW91bnQoY29uc3QgY2hhciAqbmFtZSwKMTQ0NzQ6ICAgICAg
c3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAgICBkZWJ1Z2ZzX2F1dG9tb3VudF90IGYs
CjE0NDc0OiAgICAgIHZvaWQgKmRhdGEpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRlYnVnZnNfcmVt
b3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogY29uc3Qg
c3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZGVidWdmc19yZWFsX2ZvcHMoY29uc3Qgc3RydWN0IGZp
bGUgKmZpbHApOwoxNDQ3NDogCjE0NDc0OiBpbnQgZGVidWdmc19maWxlX2dldChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpOwoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX2ZpbGVfcHV0KHN0cnVjdCBkZW50cnkg
KmRlbnRyeSk7CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgZGVidWdmc19hdHRyX3JlYWQoc3RydWN0
IGZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwKMTQ0NzQ6ICAgIHNpemVfdCBsZW4sIGxvZmZfdCAqcHBv
cyk7CjE0NDc0OiBzc2l6ZV90IGRlYnVnZnNfYXR0cl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg
Y29uc3QgY2hhciAqYnVmLAoxNDQ3NDogICAgc2l6ZV90IGxlbiwgbG9mZl90ICpwcG9zKTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19yZW5hbWUoc3RydWN0IGRlbnRyeSAq
b2xkX2Rpciwgc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGlyLCBjb25zdCBjaGFyICpuZXdfbmFtZSk7CjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfdTgoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt
b2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICAgICAgICB1OCAqdmFsdWUpOwox
NDQ3NDogdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91MTYoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt
b2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICB1MTYgKnZhbHVlKTsKMTQ0NzQ6
IHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX3UzMihjb25zdCBjaGFyICpuYW1lLCB1bW9k
ZV90IG1vZGUsCjE0NDc0OiAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHUzMiAqdmFsdWUp
OwoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91NjQoY29uc3QgY2hhciAqbmFtZSwgdW1vZGVf
dCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICB1NjQgKnZhbHVlKTsKMTQ0
NzQ6IHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX3Vsb25nKGNvbnN0IGNoYXIgKm5hbWUs
IHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB1bnNp
Z25lZCBsb25nICp2YWx1ZSk7CjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRlX3g4KGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAg
ICAgICAgdTggKnZhbHVlKTsKMTQ0NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfeDE2KGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAg
dTE2ICp2YWx1ZSk7CjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRlX3gzMihjb25zdCBjaGFyICpu
YW1lLCB1bW9kZV90IG1vZGUsIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKMTQ0NzQ6ICAgIHUzMiAq
dmFsdWUpOwoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV94NjQoY29uc3QgY2hhciAqbmFtZSwg
dW1vZGVfdCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICB1NjQgKnZhbHVl
KTsKMTQ0NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfc2l6ZV90KGNvbnN0IGNoYXIgKm5hbWUsIHVt
b2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgc2l6ZV90ICp2
YWx1ZSk7CjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRlX2F0b21pY190KGNvbnN0IGNoYXIgKm5h
bWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCBh
dG9taWNfdCAqdmFsdWUpOwoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfYm9v
bChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCjE0NDc0OiAgICAgICBzdHJ1Y3QgZGVu
dHJ5ICpwYXJlbnQsIGJvb2wgKnZhbHVlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAq
ZGVidWdmc19jcmVhdGVfYmxvYihjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCjE0NDc0
OiAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCjE0NDc0OiAgICAgICBzdHJ1Y3QgZGVidWdm
c19ibG9iX3dyYXBwZXIgKmJsb2IpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRlYnVnZnNfY3JlYXRl
X3JlZ3NldDMyKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAg
c3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAgICAgICBzdHJ1Y3QgZGVidWdmc19yZWdz
ZXQzMiAqcmVnc2V0KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkZWJ1Z2ZzX3ByaW50X3JlZ3MzMihz
dHJ1Y3Qgc2VxX2ZpbGUgKnMsIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyICpyZWdzLAoxNDQ3
NDogICAgICBpbnQgbnJlZ3MsIHZvaWQgKmJhc2UsIGNoYXIgKnByZWZpeCk7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZGVidWdmc19jcmVhdGVfdTMyX2FycmF5KGNvbnN0IGNoYXIgKm5hbWUsIHVtb2Rl
X3QgbW9kZSwKMTQ0NzQ6ICAgICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdTMyICphcnJh
eSwgdTMyIGVsZW1lbnRzKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRlbnRyeSAqZGVidWdmc19j
cmVhdGVfZGV2bV9zZXFmaWxlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwK
MTQ0NzQ6ICAgICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LAoxNDQ3NDogICAgICAgICBpbnQg
KCpyZWFkX2ZuKShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsCjE0NDc0OiAgICAgICAgICB2b2lkICpkYXRh
KSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGVidWdmc19pbml0aWFsaXplZCh2b2lkKTsKMTQ0NzQ6
IAoxNDQ3NDogc3NpemVfdCBkZWJ1Z2ZzX3JlYWRfZmlsZV9ib29sKHN0cnVjdCBmaWxlICpmaWxl
LCBjaGFyICp1c2VyX2J1ZiwKMTQ0NzQ6ICAgICAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAq
cHBvcyk7CjE0NDc0OiAKMTQ0NzQ6IHNzaXplX3QgZGVidWdmc193cml0ZV9maWxlX2Jvb2woc3Ry
dWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnVzZXJfYnVmLAoxNDQ3NDogICAgIHNpemVfdCBj
b3VudCwgbG9mZl90ICpwcG9zKTsKMTQ0NzQ6ICMgMzY1ICIuL2luY2x1ZGUvbGludXgvZGVidWdm
cy5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV94dWwoY29uc3QgY2hhciAqbmFtZSwgdW1v
ZGVfdCBtb2RlLAoxNDQ3NDogICAgICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKMTQ0NzQ6
ICAgICAgICAgICB1bnNpZ25lZCBsb25nICp2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoc2l6
ZW9mKCp2YWx1ZSkgPT0gc2l6ZW9mKHUzMikpCjE0NDc0OiAgIGRlYnVnZnNfY3JlYXRlX3gzMihu
YW1lLCBtb2RlLCBwYXJlbnQsICh1MzIgKil2YWx1ZSk7CjE0NDc0OiAgZWxzZQoxNDQ3NDogICBk
ZWJ1Z2ZzX2NyZWF0ZV94NjQobmFtZSwgbW9kZSwgcGFyZW50LCAodTY0ICopdmFsdWUpOwoxNDQ3
NDogfQoxNDQ3NDogIyAzNCAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIgMgoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMQoxNDQ3NDogIyA0MiAiLi9pbmNs
dWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3NDogIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJh
dGVkL3VhcGkvYXNtL2lvY3RsLmgiIDEKMTQ0NzQ6ICMgNDMgIi4vaW5jbHVkZS91YXBpL2RybS9k
cm0uaCIgMgoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX2hhbmRsZV90OwoxNDQ3NDog
IyA4NCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBp
bnQgZHJtX2NvbnRleHRfdDsKMTQ0NzQ6IHR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9kcmF3YWJs
ZV90OwoxNDQ3NDogdHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX21hZ2ljX3Q7CjE0NDc0OiAjIDk3
ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCB7
CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgeDE7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgeTE7CjE0
NDc0OiAgdW5zaWduZWQgc2hvcnQgeDI7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgeTI7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2Ry
YXdhYmxlX2luZm8gewoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fcmVjdHM7CjE0NDc0OiAgc3Ry
dWN0IGRybV9jbGlwX3JlY3QgKnJlY3RzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV90ZXhfcmVnaW9uIHsKMTQ0NzQ6ICB1bnNpZ25l
ZCBjaGFyIG5leHQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBwcmV2OwoxNDQ3NDogIHVuc2lnbmVk
IGNoYXIgaW5fdXNlOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcGFkZGluZzsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgYWdlOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTMwICIuL2luY2x1ZGUvdWFwaS9kcm0v
ZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX2h3X2xvY2sgewoxNDQ3NDogIF9fdm9sYXRpbGVfXyB1
bnNpZ25lZCBpbnQgbG9jazsKMTQ0NzQ6ICBjaGFyIHBhZGRpbmdbNjBdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkcm1fdmVyc2lvbiB7CjE0NDc0OiAgaW50IHZlcnNpb25fbWFqb3I7CjE0NDc0OiAgaW50IHZl
cnNpb25fbWlub3I7CjE0NDc0OiAgaW50IHZlcnNpb25fcGF0Y2hsZXZlbDsKMTQ0NzQ6ICBfX2tl
cm5lbF9zaXplX3QgbmFtZV9sZW47CjE0NDc0OiAgY2hhciAqbmFtZTsKMTQ0NzQ6ICBfX2tlcm5l
bF9zaXplX3QgZGF0ZV9sZW47CjE0NDc0OiAgY2hhciAqZGF0ZTsKMTQ0NzQ6ICBfX2tlcm5lbF9z
aXplX3QgZGVzY19sZW47CjE0NDc0OiAgY2hhciAqZGVzYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX3Vu
aXF1ZSB7CjE0NDc0OiAgX19rZXJuZWxfc2l6ZV90IHVuaXF1ZV9sZW47CjE0NDc0OiAgY2hhciAq
dW5pcXVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9saXN0IHsKMTQ0NzQ6
ICBpbnQgY291bnQ7CjE0NDc0OiAgc3RydWN0IGRybV92ZXJzaW9uICp2ZXJzaW9uOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9ibG9jayB7CjE0NDc0OiAgaW50IHVudXNlZDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZHJtX2NvbnRyb2wgewoxNDQ3NDogIGVudW0gewoxNDQ3NDogICBEUk1f
QUREX0NPTU1BTkQsCjE0NDc0OiAgIERSTV9STV9DT01NQU5ELAoxNDQ3NDogICBEUk1fSU5TVF9I
QU5ETEVSLAoxNDQ3NDogICBEUk1fVU5JTlNUX0hBTkRMRVIKMTQ0NzQ6ICB9IGZ1bmM7CjE0NDc0
OiAgaW50IGlycTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gZHJtX21hcF90eXBlIHsKMTQ0NzQ6ICBfRFJNX0ZSQU1FX0JVRkZFUiA9IDAsCjE0
NDc0OiAgX0RSTV9SRUdJU1RFUlMgPSAxLAoxNDQ3NDogIF9EUk1fU0hNID0gMiwKMTQ0NzQ6ICBf
RFJNX0FHUCA9IDMsCjE0NDc0OiAgX0RSTV9TQ0FUVEVSX0dBVEhFUiA9IDQsCjE0NDc0OiAgX0RS
TV9DT05TSVNURU5UID0gNQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBkcm1fbWFwX2ZsYWdzIHsKMTQ0NzQ6ICBfRFJNX1JFU1RSSUNURUQgPSAw
eDAxLAoxNDQ3NDogIF9EUk1fUkVBRF9PTkxZID0gMHgwMiwKMTQ0NzQ6ICBfRFJNX0xPQ0tFRCA9
IDB4MDQsCjE0NDc0OiAgX0RSTV9LRVJORUwgPSAweDA4LAoxNDQ3NDogIF9EUk1fV1JJVEVfQ09N
QklOSU5HID0gMHgxMCwKMTQ0NzQ6ICBfRFJNX0NPTlRBSU5TX0xPQ0sgPSAweDIwLAoxNDQ3NDog
IF9EUk1fUkVNT1ZBQkxFID0gMHg0MCwKMTQ0NzQ6ICBfRFJNX0RSSVZFUiA9IDB4ODAKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwIHsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgY3R4X2lkOwoxNDQ3NDogIHZvaWQgKmhhbmRsZTsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkcm1fbWFwIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG9mZnNldDsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIHNpemU7CjE0NDc0OiAgZW51bSBkcm1fbWFwX3R5cGUgdHlwZTsKMTQ0NzQ6ICBl
bnVtIGRybV9tYXBfZmxhZ3MgZmxhZ3M7CjE0NDc0OiAgdm9pZCAqaGFuZGxlOwoxNDQ3NDogCjE0
NDc0OiAgaW50IG10cnI7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fY2xpZW50IHsKMTQ0NzQ6ICBpbnQgaWR4OwoxNDQ3
NDogIGludCBhdXRoOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgcGlkOwoxNDQ3NDogIHVuc2lnbmVk
IGxvbmcgdWlkOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbWFnaWM7CjE0NDc0OiAgdW5zaWduZWQg
bG9uZyBpb2NzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkcm1fc3RhdF90eXBlIHsK
MTQ0NzQ6ICBfRFJNX1NUQVRfTE9DSywKMTQ0NzQ6ICBfRFJNX1NUQVRfT1BFTlMsCjE0NDc0OiAg
X0RSTV9TVEFUX0NMT1NFUywKMTQ0NzQ6ICBfRFJNX1NUQVRfSU9DVExTLAoxNDQ3NDogIF9EUk1f
U1RBVF9MT0NLUywKMTQ0NzQ6ICBfRFJNX1NUQVRfVU5MT0NLUywKMTQ0NzQ6ICBfRFJNX1NUQVRf
VkFMVUUsCjE0NDc0OiAgX0RSTV9TVEFUX0JZVEUsCjE0NDc0OiAgX0RSTV9TVEFUX0NPVU5ULAox
NDQ3NDogCjE0NDc0OiAgX0RSTV9TVEFUX0lSUSwKMTQ0NzQ6ICBfRFJNX1NUQVRfUFJJTUFSWSwK
MTQ0NzQ6ICBfRFJNX1NUQVRfU0VDT05EQVJZLAoxNDQ3NDogIF9EUk1fU1RBVF9ETUEsCjE0NDc0
OiAgX0RSTV9TVEFUX1NQRUNJQUwsCjE0NDc0OiAgX0RSTV9TVEFUX01JU1NFRAoxNDQ3NDogCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJt
X3N0YXRzIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGNvdW50OwoxNDQ3NDogIHN0cnVjdCB7CjE0
NDc0OiAgIHVuc2lnbmVkIGxvbmcgdmFsdWU7CjE0NDc0OiAgIGVudW0gZHJtX3N0YXRfdHlwZSB0
eXBlOwoxNDQ3NDogIH0gZGF0YVsxNV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRybV9sb2NrX2ZsYWdzIHsKMTQ0NzQ6ICBfRFJNX0xPQ0tf
UkVBRFkgPSAweDAxLAoxNDQ3NDogIF9EUk1fTE9DS19RVUlFU0NFTlQgPSAweDAyLAoxNDQ3NDog
IF9EUk1fTE9DS19GTFVTSCA9IDB4MDQsCjE0NDc0OiAgX0RSTV9MT0NLX0ZMVVNIX0FMTCA9IDB4
MDgsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX0RSTV9IQUxUX0FMTF9RVUVVRVMg
PSAweDEwLAoxNDQ3NDogIF9EUk1fSEFMVF9DVVJfUVVFVUVTID0gMHgyMAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkcm1fbG9jayB7CjE0NDc0OiAgaW50IGNvbnRleHQ7CjE0NDc0OiAgZW51bSBkcm1fbG9ja19m
bGFncyBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxMCAiLi9pbmNsdWRlL3VhcGkvZHJtL2Ry
bS5oIgoxNDQ3NDogZW51bSBkcm1fZG1hX2ZsYWdzIHsKMTQ0NzQ6IAoxNDQ3NDogIF9EUk1fRE1B
X0JMT0NLID0gMHgwMSwKMTQ0NzQ6ICMgMzIyICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCjE0
NDc0OiAgX0RSTV9ETUFfV0hJTEVfTE9DS0VEID0gMHgwMiwKMTQ0NzQ6ICBfRFJNX0RNQV9QUklP
UklUWSA9IDB4MDQsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9EUk1fRE1BX1dBSVQgPSAweDEw
LAoxNDQ3NDogIF9EUk1fRE1BX1NNQUxMRVJfT0sgPSAweDIwLAoxNDQ3NDogIF9EUk1fRE1BX0xB
UkdFUl9PSyA9IDB4NDAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2J1Zl9kZXNjIHsKMTQ0NzQ6ICBpbnQg
Y291bnQ7CjE0NDc0OiAgaW50IHNpemU7CjE0NDc0OiAgaW50IGxvd19tYXJrOwoxNDQ3NDogIGlu
dCBoaWdoX21hcms7CjE0NDc0OiAgZW51bSB7CjE0NDc0OiAgIF9EUk1fUEFHRV9BTElHTiA9IDB4
MDEsCjE0NDc0OiAgIF9EUk1fQUdQX0JVRkZFUiA9IDB4MDIsCjE0NDc0OiAgIF9EUk1fU0dfQlVG
RkVSID0gMHgwNCwKMTQ0NzQ6ICAgX0RSTV9GQl9CVUZGRVIgPSAweDA4LAoxNDQ3NDogICBfRFJN
X1BDSV9CVUZGRVJfUk8gPSAweDEwCjE0NDc0OiAgfSBmbGFnczsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIGFncF9zdGFydDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fYnVmX2luZm8gewoxNDQ3
NDogIGludCBjb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX2J1Zl9kZXNjICpsaXN0OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9idWZf
ZnJlZSB7CjE0NDc0OiAgaW50IGNvdW50OwoxNDQ3NDogIGludCAqbGlzdDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZHJtX2J1Zl9wdWIgewoxNDQ3NDogIGludCBpZHg7CjE0NDc0OiAgaW50IHRvdGFsOwoxNDQ3
NDogIGludCB1c2VkOwoxNDQ3NDogIHZvaWQgKmFkZHJlc3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2J1Zl9tYXAgewoxNDQ3NDog
IGludCBjb3VudDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICp2aXJ0dWFs
OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRybV9idWZfcHViICpsaXN0OwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgNDAyICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX2Rt
YSB7CjE0NDc0OiAgaW50IGNvbnRleHQ7CjE0NDc0OiAgaW50IHNlbmRfY291bnQ7CjE0NDc0OiAg
aW50ICpzZW5kX2luZGljZXM7CjE0NDc0OiAgaW50ICpzZW5kX3NpemVzOwoxNDQ3NDogIGVudW0g
ZHJtX2RtYV9mbGFncyBmbGFnczsKMTQ0NzQ6ICBpbnQgcmVxdWVzdF9jb3VudDsKMTQ0NzQ6ICBp
bnQgcmVxdWVzdF9zaXplOwoxNDQ3NDogIGludCAqcmVxdWVzdF9pbmRpY2VzOwoxNDQ3NDogIGlu
dCAqcmVxdWVzdF9zaXplczsKMTQ0NzQ6ICBpbnQgZ3JhbnRlZF9jb3VudDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZHJtX2N0eF9mbGFncyB7CjE0NDc0OiAgX0RSTV9DT05URVhUX1BS
RVNFUlZFRCA9IDB4MDEsCjE0NDc0OiAgX0RSTV9DT05URVhUXzJET05MWSA9IDB4MDIKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHJtX2N0eCB7CjE0NDc0OiAgZHJtX2NvbnRleHRfdCBoYW5kbGU7CjE0NDc0OiAg
ZW51bSBkcm1fY3R4X2ZsYWdzIGZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9jdHhfcmVzIHsKMTQ0NzQ6ICBpbnQgY291bnQ7
CjE0NDc0OiAgc3RydWN0IGRybV9jdHggKmNvbnRleHRzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9kcmF3IHsKMTQ0NzQ6ICBkcm1f
ZHJhd2FibGVfdCBoYW5kbGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiB0eXBlZGVmIGVudW0gewoxNDQ3NDogIERSTV9EUkFXQUJMRV9DTElQUkVDVFMK
MTQ0NzQ6IH0gZHJtX2RyYXdhYmxlX2luZm9fdHlwZV90OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX3VwZGF0ZV9kcmF3IHsKMTQ0NzQ6ICBkcm1fZHJhd2FibGVfdCBoYW5kbGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHR5cGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bTsKMTQ0NzQ6ICB1bnNp
Z25lZCBsb25nIGxvbmcgZGF0YTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fYXV0aCB7CjE0NDc0OiAgZHJtX21hZ2ljX3QgbWFnaWM7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGRybV9pcnFfYnVzaWQgewoxNDQ3NDogIGludCBpcnE7CjE0NDc0OiAg
aW50IGJ1c251bTsKMTQ0NzQ6ICBpbnQgZGV2bnVtOwoxNDQ3NDogIGludCBmdW5jbnVtOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHsKMTQ0NzQ6ICBf
RFJNX1ZCTEFOS19BQlNPTFVURSA9IDB4MCwKMTQ0NzQ6ICBfRFJNX1ZCTEFOS19SRUxBVElWRSA9
IDB4MSwKMTQ0NzQ6IAoxNDQ3NDogIF9EUk1fVkJMQU5LX0hJR0hfQ1JUQ19NQVNLID0gMHgwMDAw
MDAzZSwKMTQ0NzQ6ICBfRFJNX1ZCTEFOS19FVkVOVCA9IDB4NDAwMDAwMCwKMTQ0NzQ6ICBfRFJN
X1ZCTEFOS19GTElQID0gMHg4MDAwMDAwLAoxNDQ3NDogIF9EUk1fVkJMQU5LX05FWFRPTk1JU1Mg
PSAweDEwMDAwMDAwLAoxNDQ3NDogIF9EUk1fVkJMQU5LX1NFQ09OREFSWSA9IDB4MjAwMDAwMDAs
CjE0NDc0OiAgX0RSTV9WQkxBTktfU0lHTkFMID0gMHg0MDAwMDAwMAoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
cm1fd2FpdF92YmxhbmtfcmVxdWVzdCB7CjE0NDc0OiAgZW51bSBkcm1fdmJsYW5rX3NlcV90eXBl
IHR5cGU7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNlcXVlbmNlOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgc2lnbmFsOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV93YWl0X3ZibGFu
a19yZXBseSB7CjE0NDc0OiAgZW51bSBkcm1fdmJsYW5rX3NlcV90eXBlIHR5cGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHNlcXVlbmNlOwoxNDQ3NDogIGxvbmcgdHZhbF9zZWM7CjE0NDc0OiAgbG9u
ZyB0dmFsX3VzZWM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHJtX3dhaXRfdmJsYW5rIHsKMTQ0NzQ6ICBzdHJ1
Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcXVlc3QgcmVxdWVzdDsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3dh
aXRfdmJsYW5rX3JlcGx5IHJlcGx5OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTI2ICIuL2luY2x1ZGUv
dWFwaS9kcm0vZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVzZXRfY3RsIHsKMTQ0NzQ6ICBf
X3UzMiBjcnRjOwoxNDQ3NDogIF9fdTMyIGNtZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2FncF9tb2Rl
IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIG1vZGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9hZ3BfYnVm
ZmVyIHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIHNpemU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBo
YW5kbGU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB0eXBlOwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcg
cGh5c2ljYWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9hZ3BfYmluZGluZyB7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBoYW5kbGU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBvZmZzZXQ7CjE0NDc0OiB9Owox
NDQ3NDogIyA1NjkgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIKMTQ0NzQ6IHN0cnVjdCBkcm1f
YWdwX2luZm8gewoxNDQ3NDogIGludCBhZ3BfdmVyc2lvbl9tYWpvcjsKMTQ0NzQ6ICBpbnQgYWdw
X3ZlcnNpb25fbWlub3I7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtb2RlOwoxNDQ3NDogIHVuc2ln
bmVkIGxvbmcgYXBlcnR1cmVfYmFzZTsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGFwZXJ0dXJlX3Np
emU7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBtZW1vcnlfYWxsb3dlZDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBsb25nIG1lbW9yeV91c2VkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBzaG9y
dCBpZF92ZW5kb3I7CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgaWRfZGV2aWNlOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9zY2F0dGVy
X2dhdGhlciB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBzaXplOwoxNDQ3NDogIHVuc2lnbmVkIGxv
bmcgaGFuZGxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRybV9zZXRfdmVyc2lvbiB7CjE0NDc0OiAgaW50IGRybV9kaV9tYWpvcjsKMTQ0
NzQ6ICBpbnQgZHJtX2RpX21pbm9yOwoxNDQ3NDogIGludCBkcm1fZGRfbWFqb3I7CjE0NDc0OiAg
aW50IGRybV9kZF9taW5vcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRybV9nZW1fY2xvc2UgewoxNDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogIF9f
dTMyIHBhZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9nZW1f
ZmxpbmsgewoxNDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBfX3UzMiBuYW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX2dlbV9vcGVuIHsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIG5hbWU7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTMyIGhhbmRsZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191NjQgc2l6
ZTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDY1NiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3
NDogc3RydWN0IGRybV9nZXRfY2FwIHsKMTQ0NzQ6ICBfX3U2NCBjYXBhYmlsaXR5OwoxNDQ3NDog
IF9fdTY0IHZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNzAyICIuL2luY2x1ZGUvdWFwaS9kcm0v
ZHJtLmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX3NldF9jbGllbnRfY2FwIHsKMTQ0NzQ6ICBfX3U2NCBj
YXBhYmlsaXR5OwoxNDQ3NDogIF9fdTY0IHZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIHsKMTQ0NzQ6ICBfX3UzMiBo
YW5kbGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBfX3MzMiBmZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1f
c3luY29ial9jcmVhdGUgewoxNDQ3NDogIF9fdTMyIGhhbmRsZTsKMTQ0NzQ6IAoxNDQ3NDogIF9f
dTMyIGZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9zeW5jb2JqX2Rl
c3Ryb3kgewoxNDQ3NDogIF9fdTMyIGhhbmRsZTsKMTQ0NzQ6ICBfX3UzMiBwYWQ7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9zeW5jb2JqX2hhbmRs
ZSB7CjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogCjE0
NDc0OiAgX19zMzIgZmQ7CjE0NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRybV9zeW5jb2JqX3RyYW5zZmVyIHsKMTQ0NzQ6ICBfX3UzMiBzcmNfaGFuZGxl
OwoxNDQ3NDogIF9fdTMyIGRzdF9oYW5kbGU7CjE0NDc0OiAgX191NjQgc3JjX3BvaW50OwoxNDQ3
NDogIF9fdTY0IGRzdF9wb2ludDsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBfX3UzMiBw
YWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZHJtX3N5bmNvYmpfd2FpdCB7CjE0NDc0OiAgX191NjQgaGFuZGxlczsKMTQ0NzQ6IAoxNDQ3
NDogIF9fczY0IHRpbWVvdXRfbnNlYzsKMTQ0NzQ6ICBfX3UzMiBjb3VudF9oYW5kbGVzOwoxNDQ3
NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogIF9fdTMyIGZpcnN0X3NpZ25hbGVkOwoxNDQ3NDogIF9f
dTMyIHBhZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fc3luY29ial90aW1l
bGluZV93YWl0IHsKMTQ0NzQ6ICBfX3U2NCBoYW5kbGVzOwoxNDQ3NDogCjE0NDc0OiAgX191NjQg
cG9pbnRzOwoxNDQ3NDogCjE0NDc0OiAgX19zNjQgdGltZW91dF9uc2VjOwoxNDQ3NDogIF9fdTMy
IGNvdW50X2hhbmRsZXM7CjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0OiAgX191MzIgZmlyc3Rf
c2lnbmFsZWQ7CjE0NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZHJtX3N5bmNvYmpfYXJyYXkgewoxNDQ3NDogIF9fdTY0IGhhbmRsZXM7CjE0
NDc0OiAgX191MzIgY291bnRfaGFuZGxlczsKMTQ0NzQ6ICBfX3UzMiBwYWQ7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV9hcnJheSB7
CjE0NDc0OiAgX191NjQgaGFuZGxlczsKMTQ0NzQ6ICBfX3U2NCBwb2ludHM7CjE0NDc0OiAgX191
MzIgY291bnRfaGFuZGxlczsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2NydGNfZ2V0X3NlcXVlbmNlIHsKMTQ0
NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGFjdGl2ZTsKMTQ0NzQ6ICBfX3U2NCBz
ZXF1ZW5jZTsKMTQ0NzQ6ICBfX3M2NCBzZXF1ZW5jZV9uczsKMTQ0NzQ6IH07CjE0NDc0OiAjIDgw
NSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgoxNDQ3NDogc3RydWN0IGRybV9jcnRjX3F1ZXVl
X3NlcXVlbmNlIHsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwox
NDQ3NDogIF9fdTY0IHNlcXVlbmNlOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0YTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2lu
Y2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIgMQoxNDQ3NDogIyAzMCAiLi9pbmNsdWRlL3VhcGkv
ZHJtL2RybV9tb2RlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMQox
NDQ3NDogIyAzMSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiIDIKMTQ0NzQ6ICMgMjIx
ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9t
b2RlaW5mbyB7CjE0NDc0OiAgX191MzIgY2xvY2s7CjE0NDc0OiAgX191MTYgaGRpc3BsYXk7CjE0
NDc0OiAgX191MTYgaHN5bmNfc3RhcnQ7CjE0NDc0OiAgX191MTYgaHN5bmNfZW5kOwoxNDQ3NDog
IF9fdTE2IGh0b3RhbDsKMTQ0NzQ6ICBfX3UxNiBoc2tldzsKMTQ0NzQ6ICBfX3UxNiB2ZGlzcGxh
eTsKMTQ0NzQ6ICBfX3UxNiB2c3luY19zdGFydDsKMTQ0NzQ6ICBfX3UxNiB2c3luY19lbmQ7CjE0
NDc0OiAgX191MTYgdnRvdGFsOwoxNDQ3NDogIF9fdTE2IHZzY2FuOwoxNDQ3NDogCjE0NDc0OiAg
X191MzIgdnJlZnJlc2g7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBfX3Uz
MiB0eXBlOwoxNDQ3NDogIGNoYXIgbmFtZVszMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgZHJtX21vZGVfY2FyZF9yZXMgewoxNDQ3NDogIF9fdTY0IGZiX2lkX3B0cjsKMTQ0NzQ6
ICBfX3U2NCBjcnRjX2lkX3B0cjsKMTQ0NzQ6ICBfX3U2NCBjb25uZWN0b3JfaWRfcHRyOwoxNDQ3
NDogIF9fdTY0IGVuY29kZXJfaWRfcHRyOwoxNDQ3NDogIF9fdTMyIGNvdW50X2ZiczsKMTQ0NzQ6
ICBfX3UzMiBjb3VudF9jcnRjczsKMTQ0NzQ6ICBfX3UzMiBjb3VudF9jb25uZWN0b3JzOwoxNDQ3
NDogIF9fdTMyIGNvdW50X2VuY29kZXJzOwoxNDQ3NDogIF9fdTMyIG1pbl93aWR0aDsKMTQ0NzQ6
ICBfX3UzMiBtYXhfd2lkdGg7CjE0NDc0OiAgX191MzIgbWluX2hlaWdodDsKMTQ0NzQ6ICBfX3Uz
MiBtYXhfaGVpZ2h0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2Ny
dGMgewoxNDQ3NDogIF9fdTY0IHNldF9jb25uZWN0b3JzX3B0cjsKMTQ0NzQ6ICBfX3UzMiBjb3Vu
dF9jb25uZWN0b3JzOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgY3J0Y19pZDsKMTQ0NzQ6ICBfX3Uz
MiBmYl9pZDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHg7CjE0NDc0OiAgX191MzIgeTsKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTMyIGdhbW1hX3NpemU7CjE0NDc0OiAgX191MzIgbW9kZV92YWxpZDsKMTQ0
NzQ6ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gbW9kZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX3NldF9w
bGFuZSB7CjE0NDc0OiAgX191MzIgcGxhbmVfaWQ7CjE0NDc0OiAgX191MzIgY3J0Y19pZDsKMTQ0
NzQ6ICBfX3UzMiBmYl9pZDsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgX19zMzIgY3J0Y194OwoxNDQ3NDogIF9fczMyIGNydGNfeTsKMTQ0NzQ6ICBfX3UzMiBj
cnRjX3c7CjE0NDc0OiAgX191MzIgY3J0Y19oOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3Uz
MiBzcmNfeDsKMTQ0NzQ6ICBfX3UzMiBzcmNfeTsKMTQ0NzQ6ICBfX3UzMiBzcmNfaDsKMTQ0NzQ6
ICBfX3UzMiBzcmNfdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9n
ZXRfcGxhbmUgewoxNDQ3NDogIF9fdTMyIHBsYW5lX2lkOwoxNDQ3NDogCjE0NDc0OiAgX191MzIg
Y3J0Y19pZDsKMTQ0NzQ6ICBfX3UzMiBmYl9pZDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIHBvc3Np
YmxlX2NydGNzOwoxNDQ3NDogIF9fdTMyIGdhbW1hX3NpemU7CjE0NDc0OiAKMTQ0NzQ6ICBfX3Uz
MiBjb3VudF9mb3JtYXRfdHlwZXM7CjE0NDc0OiAgX191NjQgZm9ybWF0X3R5cGVfcHRyOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZV9yZXMgewoxNDQ3
NDogIF9fdTY0IHBsYW5lX2lkX3B0cjsKMTQ0NzQ6ICBfX3UzMiBjb3VudF9wbGFuZXM7CjE0NDc0
OiB9OwoxNDQ3NDogIyAzMjIgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDog
c3RydWN0IGRybV9tb2RlX2dldF9lbmNvZGVyIHsKMTQ0NzQ6ICBfX3UzMiBlbmNvZGVyX2lkOwox
NDQ3NDogIF9fdTMyIGVuY29kZXJfdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGNydGNfaWQ7
CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBwb3NzaWJsZV9jcnRjczsKMTQ0NzQ6ICBfX3UzMiBwb3Nz
aWJsZV9jbG9uZXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBkcm1fbW9kZV9zdWJjb25uZWN0b3IgewoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9B
dXRvbWF0aWMgPSAwLAoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9Vbmtub3duID0gMCwK
MTQ0NzQ6ICBEUk1fTU9ERV9TVUJDT05ORUNUT1JfRFZJRCA9IDMsCjE0NDc0OiAgRFJNX01PREVf
U1VCQ09OTkVDVE9SX0RWSUEgPSA0LAoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9Db21w
b3NpdGUgPSA1LAoxNDQ3NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9TVklERU8gPSA2LAoxNDQ3
NDogIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9Db21wb25lbnQgPSA4LAoxNDQ3NDogIERSTV9NT0RF
X1NVQkNPTk5FQ1RPUl9TQ0FSVCA9IDksCjE0NDc0OiB9OwoxNDQ3NDogIyAzNjYgIi4vaW5jbHVk
ZS91YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2dldF9jb25uZWN0
b3IgewoxNDQ3NDogCjE0NDc0OiAgX191NjQgZW5jb2RlcnNfcHRyOwoxNDQ3NDogIF9fdTY0IG1v
ZGVzX3B0cjsKMTQ0NzQ6ICBfX3U2NCBwcm9wc19wdHI7CjE0NDc0OiAgX191NjQgcHJvcF92YWx1
ZXNfcHRyOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgY291bnRfbW9kZXM7CjE0NDc0OiAgX191MzIg
Y291bnRfcHJvcHM7CjE0NDc0OiAgX191MzIgY291bnRfZW5jb2RlcnM7CjE0NDc0OiAKMTQ0NzQ6
ICBfX3UzMiBlbmNvZGVyX2lkOwoxNDQ3NDogIF9fdTMyIGNvbm5lY3Rvcl9pZDsKMTQ0NzQ6ICBf
X3UzMiBjb25uZWN0b3JfdHlwZTsKMTQ0NzQ6ICBfX3UzMiBjb25uZWN0b3JfdHlwZV9pZDsKMTQ0
NzQ6IAoxNDQ3NDogIF9fdTMyIGNvbm5lY3Rpb247CjE0NDc0OiAgX191MzIgbW1fd2lkdGg7CjE0
NDc0OiAgX191MzIgbW1faGVpZ2h0OwoxNDQ3NDogIF9fdTMyIHN1YnBpeGVsOwoxNDQ3NDogCjE0
NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNDE5ICIuL2luY2x1ZGUvdWFwaS9k
cm0vZHJtX21vZGUuaCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9wcm9wZXJ0eV9lbnVtIHsKMTQ0
NzQ6ICBfX3U2NCB2YWx1ZTsKMTQ0NzQ6ICBjaGFyIG5hbWVbMzJdOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2dldF9wcm9wZXJ0eSB7CjE0NDc0OiAgX191NjQgdmFs
dWVzX3B0cjsKMTQ0NzQ6ICBfX3U2NCBlbnVtX2Jsb2JfcHRyOwoxNDQ3NDogCjE0NDc0OiAgX191
MzIgcHJvcF9pZDsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBjaGFyIG5hbWVbMzJdOwox
NDQ3NDogCjE0NDc0OiAgX191MzIgY291bnRfdmFsdWVzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBfX3UzMiBjb3VudF9lbnVtX2Jsb2JzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkgewoxNDQ3NDogIF9fdTY0IHZhbHVlOwox
NDQ3NDogIF9fdTMyIHByb3BfaWQ7CjE0NDc0OiAgX191MzIgY29ubmVjdG9yX2lkOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgNDU0ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKMTQ0NzQ6IHN0
cnVjdCBkcm1fbW9kZV9vYmpfZ2V0X3Byb3BlcnRpZXMgewoxNDQ3NDogIF9fdTY0IHByb3BzX3B0
cjsKMTQ0NzQ6ICBfX3U2NCBwcm9wX3ZhbHVlc19wdHI7CjE0NDc0OiAgX191MzIgY291bnRfcHJv
cHM7CjE0NDc0OiAgX191MzIgb2JqX2lkOwoxNDQ3NDogIF9fdTMyIG9ial90eXBlOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkgewoxNDQ3
NDogIF9fdTY0IHZhbHVlOwoxNDQ3NDogIF9fdTMyIHByb3BfaWQ7CjE0NDc0OiAgX191MzIgb2Jq
X2lkOwoxNDQ3NDogIF9fdTMyIG9ial90eXBlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRybV9tb2RlX2dldF9ibG9iIHsKMTQ0NzQ6ICBfX3UzMiBibG9iX2lkOwoxNDQ3NDogIF9f
dTMyIGxlbmd0aDsKMTQ0NzQ6ICBfX3U2NCBkYXRhOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGRybV9tb2RlX2ZiX2NtZCB7CjE0NDc0OiAgX191MzIgZmJfaWQ7CjE0NDc0OiAgX191
MzIgd2lkdGg7CjE0NDc0OiAgX191MzIgaGVpZ2h0OwoxNDQ3NDogIF9fdTMyIHBpdGNoOwoxNDQ3
NDogIF9fdTMyIGJwcDsKMTQ0NzQ6ICBfX3UzMiBkZXB0aDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMy
IGhhbmRsZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIHsKMTQ0NzQ6ICBfX3UzMiBmYl9pZDsKMTQ0NzQ6ICBf
X3UzMiB3aWR0aDsKMTQ0NzQ6ICBfX3UzMiBoZWlnaHQ7CjE0NDc0OiAgX191MzIgcGl4ZWxfZm9y
bWF0OwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogIyA1MjAgIi4vaW5jbHVkZS91YXBpL2Ry
bS9kcm1fbW9kZS5oIgoxNDQ3NDogIF9fdTMyIGhhbmRsZXNbNF07CjE0NDc0OiAgX191MzIgcGl0
Y2hlc1s0XTsKMTQ0NzQ6ICBfX3UzMiBvZmZzZXRzWzRdOwoxNDQ3NDogIF9fdTY0IG1vZGlmaWVy
WzRdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTU5ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUu
aCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9mYl9kaXJ0eV9jbWQgewoxNDQ3NDogIF9fdTMyIGZi
X2lkOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogIF9fdTMyIGNvbG9yOwoxNDQ3NDogIF9f
dTMyIG51bV9jbGlwczsKMTQ0NzQ6ICBfX3U2NCBjbGlwc19wdHI7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfbW9kZV9jbWQgewoxNDQ3NDogIF9fdTMyIGNvbm5lY3Rv
cl9pZDsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gbW9kZTsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDU5MCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX21vZGVfY3Vyc29yIHsKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6ICBfX3UzMiBjcnRj
X2lkOwoxNDQ3NDogIF9fczMyIHg7CjE0NDc0OiAgX19zMzIgeTsKMTQ0NzQ6ICBfX3UzMiB3aWR0
aDsKMTQ0NzQ6ICBfX3UzMiBoZWlnaHQ7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBoYW5kbGU7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfY3Vyc29yMiB7CjE0NDc0OiAg
X191MzIgZmxhZ3M7CjE0NDc0OiAgX191MzIgY3J0Y19pZDsKMTQ0NzQ6ICBfX3MzMiB4OwoxNDQ3
NDogIF9fczMyIHk7CjE0NDc0OiAgX191MzIgd2lkdGg7CjE0NDc0OiAgX191MzIgaGVpZ2h0Owox
NDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3NDogIF9fczMyIGhvdF94OwoxNDQ3NDog
IF9fczMyIGhvdF95OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2Ny
dGNfbHV0IHsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGdhbW1hX3NpemU7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IHJlZDsKMTQ0NzQ6ICBfX3U2NCBncmVlbjsK
MTQ0NzQ6ICBfX3U2NCBibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9j
b2xvcl9jdG0gewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191NjQg
bWF0cml4WzldOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9jb2xvcl9sdXQg
ewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgcmVkOwoxNDQ3
NDogIF9fdTE2IGdyZWVuOwoxNDQ3NDogIF9fdTE2IGJsdWU7CjE0NDc0OiAgX191MTYgcmVzZXJ2
ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyA2NTIgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o
IgoxNDQ3NDogc3RydWN0IGhkcl9tZXRhZGF0YV9pbmZvZnJhbWUgewoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191OCBlb3RmOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTggbWV0YWRhdGFfdHlwZTsKMTQ0NzQ6ICMgNjcwICIuL2luY2x1ZGUvdWFw
aS9kcm0vZHJtX21vZGUuaCIKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICBfX3UxNiB4LCB5Owox
NDQ3NDogICB9IGRpc3BsYXlfcHJpbWFyaWVzWzNdOwoxNDQ3NDogIyA2ODEgIi4vaW5jbHVkZS91
YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIF9fdTE2IHgsIHk7
CjE0NDc0OiAgIH0gd2hpdGVfcG9pbnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIF9fdTE2IG1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191
MTYgbWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgbWF4X2NsbDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MTYgbWF4X2ZhbGw7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIF9fdTMyIG1ldGFkYXRhX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
dW5pb24gewoxNDQ3NDogICBzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9mcmFtZSBoZG1pX21ldGFk
YXRhX3R5cGUxOwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDogIyA3NjMgIi4vaW5jbHVkZS91
YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2NydGNfcGFnZV9mbGlw
IHsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGZiX2lkOwoxNDQ3NDogIF9f
dTMyIGZsYWdzOwoxNDQ3NDogIF9fdTMyIHJlc2VydmVkOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0
YTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDc5MSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgi
CjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0IHsKMTQ0NzQ6ICBf
X3UzMiBjcnRjX2lkOwoxNDQ3NDogIF9fdTMyIGZiX2lkOwoxNDQ3NDogIF9fdTMyIGZsYWdzOwox
NDQ3NDogIF9fdTMyIHNlcXVlbmNlOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0YTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIHsKMTQ0
NzQ6ICBfX3UzMiBoZWlnaHQ7CjE0NDc0OiAgX191MzIgd2lkdGg7CjE0NDc0OiAgX191MzIgYnBw
OwoxNDQ3NDogIF9fdTMyIGZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgaGFuZGxlOwoxNDQ3
NDogIF9fdTMyIHBpdGNoOwoxNDQ3NDogIF9fdTY0IHNpemU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9tYXBfZHVtYiB7CjE0NDc0OiAKMTQ0NzQ6ICBf
X3UzMiBoYW5kbGU7CjE0NDc0OiAgX191MzIgcGFkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3U2NCBvZmZzZXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZHJtX21vZGVfZGVzdHJveV9kdW1iIHsKMTQ0NzQ6ICBfX3UzMiBoYW5kbGU7
CjE0NDc0OiB9OwoxNDQ3NDogIyA4NDAgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgox
NDQ3NDogc3RydWN0IGRybV9tb2RlX2F0b21pYyB7CjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0
OiAgX191MzIgY291bnRfb2JqczsKMTQ0NzQ6ICBfX3U2NCBvYmpzX3B0cjsKMTQ0NzQ6ICBfX3U2
NCBjb3VudF9wcm9wc19wdHI7CjE0NDc0OiAgX191NjQgcHJvcHNfcHRyOwoxNDQ3NDogIF9fdTY0
IHByb3BfdmFsdWVzX3B0cjsKMTQ0NzQ6ICBfX3U2NCByZXNlcnZlZDsKMTQ0NzQ6ICBfX3U2NCB1
c2VyX2RhdGE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2Rp
Zmllcl9ibG9iIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgdmVyc2lvbjsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9f
dTMyIGNvdW50X2Zvcm1hdHM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGZvcm1hdHNf
b2Zmc2V0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBjb3VudF9tb2RpZmllcnM7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIG1vZGlmaWVyc19vZmZzZXQ7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2Zvcm1hdF9t
b2RpZmllciB7CjE0NDc0OiAjIDg5MyAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0
NDc0OiAgX191NjQgZm9ybWF0czsKMTQ0NzQ6ICBfX3UzMiBvZmZzZXQ7CjE0NDc0OiAgX191MzIg
cGFkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3U2NCBtb2RpZmllcjsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDkwOSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0NDc0OiBzdHJ1Y3Qg
ZHJtX21vZGVfY3JlYXRlX2Jsb2IgewoxNDQ3NDogCjE0NDc0OiAgX191NjQgZGF0YTsKMTQ0NzQ6
IAoxNDQ3NDogIF9fdTMyIGxlbmd0aDsKMTQ0NzQ6IAoxNDQ3NDogIF9fdTMyIGJsb2JfaWQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRybV9tb2RlX2Rlc3Ryb3lfYmxvYiB7CjE0NDc0OiAgX191MzIgYmxvYl9p
ZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDkzNiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgi
CjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2xlYXNlIHsKMTQ0NzQ6IAoxNDQ3NDogIF9f
dTY0IG9iamVjdF9pZHM7CjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBvYmplY3RfY291bnQ7CjE0NDc0
OiAKMTQ0NzQ6ICBfX3UzMiBmbGFnczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgbGVz
c2VlX2lkOwoxNDQ3NDogCjE0NDc0OiAgX191MzIgZmQ7CjE0NDc0OiB9OwoxNDQ3NDogIyA5NTcg
Ii4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgoxNDQ3NDogc3RydWN0IGRybV9tb2RlX2xp
c3RfbGVzc2VlcyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBfX3UzMiBjb3VudF9sZXNzZWVzOwoxNDQ3NDogIF9fdTMyIHBh
ZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIF9fdTY0IGxlc3NlZXNf
cHRyOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTgxICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUu
aCIKMTQ0NzQ6IHN0cnVjdCBkcm1fbW9kZV9nZXRfbGVhc2UgewoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgY291bnRf
b2JqZWN0czsKMTQ0NzQ6ICBfX3UzMiBwYWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBfX3U2NCBvYmplY3RzX3B0cjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX21vZGVfcmV2
b2tlX2xlYXNlIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgX191MzIgbGVzc2VlX2lkOwoxNDQ3
NDogfTsKMTQ0NzQ6ICMgMTAyMSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCjE0NDc0
OiBzdHJ1Y3QgZHJtX21vZGVfcmVjdCB7CjE0NDc0OiAgX19zMzIgeDE7CjE0NDc0OiAgX19zMzIg
eTE7CjE0NDc0OiAgX19zMzIgeDI7CjE0NDc0OiAgX19zMzIgeTI7CjE0NDc0OiB9OwoxNDQ3NDog
IyA4MTcgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMgoxNDQ3NDogIyA5NzQgIi4vaW5jbHVk
ZS91YXBpL2RybS9kcm0uaCIKMTQ0NzQ6IHN0cnVjdCBkcm1fZXZlbnQgewoxNDQ3NDogIF9fdTMy
IHR5cGU7CjE0NDc0OiAgX191MzIgbGVuZ3RoOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJtX2V2ZW50X3ZibGFuayB7CjE0
NDc0OiAgc3RydWN0IGRybV9ldmVudCBiYXNlOwoxNDQ3NDogIF9fdTY0IHVzZXJfZGF0YTsKMTQ0
NzQ6ICBfX3UzMiB0dl9zZWM7CjE0NDc0OiAgX191MzIgdHZfdXNlYzsKMTQ0NzQ6ICBfX3UzMiBz
ZXF1ZW5jZTsKMTQ0NzQ6ICBfX3UzMiBjcnRjX2lkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRybV9ldmVudF9jcnRjX3NlcXVlbmNlIHsK
MTQ0NzQ6ICBzdHJ1Y3QgZHJtX2V2ZW50IGJhc2U7CjE0NDc0OiAgX191NjQgdXNlcl9kYXRhOwox
NDQ3NDogIF9fczY0IHRpbWVfbnM7CjE0NDc0OiAgX191NjQgc2VxdWVuY2U7CjE0NDc0OiB9Owox
NDQ3NDogIyAzNiAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIgMgoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGV4dGVybiB1bnNpZ25lZCBpbnQgX19kcm1fZGVidWc7CjE0NDc0OiAjIDc1ICIuL2lu
Y2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogc3RydWN0IGRybV9wcmludGVyIHsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCpwcmludGZuKShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2
YV9mb3JtYXQgKnZhZik7CjE0NDc0OiAgdm9pZCAoKnB1dHMpKHN0cnVjdCBkcm1fcHJpbnRlciAq
cCwgY29uc3QgY2hhciAqc3RyKTsKMTQ0NzQ6ICB2b2lkICphcmc7CjE0NDc0OiAgY29uc3QgY2hh
ciAqcHJlZml4OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBfX2RybV9wcmludGZuX2Nv
cmVkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKMTQ0
NzQ6IHZvaWQgX19kcm1fcHV0c19jb3JlZHVtcChzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGNvbnN0
IGNoYXIgKnN0cik7CjE0NDc0OiB2b2lkIF9fZHJtX3ByaW50Zm5fc2VxX2ZpbGUoc3RydWN0IGRy
bV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpOwoxNDQ3NDogdm9pZCBfX2RybV9w
dXRzX3NlcV9maWxlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgY29uc3QgY2hhciAqc3RyKTsKMTQ0
NzQ6IHZvaWQgX19kcm1fcHJpbnRmbl9pbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0
IHZhX2Zvcm1hdCAqdmFmKTsKMTQ0NzQ6IHZvaWQgX19kcm1fcHJpbnRmbl9kZWJ1ZyhzdHJ1Y3Qg
ZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2YV9mb3JtYXQgKnZhZik7CjE0NDc0OiB2b2lkIF9fZHJt
X3ByaW50Zm5fZXJyKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFm
KTsKMTQ0NzQ6IAoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMp
KSkKMTQ0NzQ6IHZvaWQgZHJtX3ByaW50ZihzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGNvbnN0IGNo
YXIgKmYsIC4uLik7CjE0NDc0OiB2b2lkIGRybV9wdXRzKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwg
Y29uc3QgY2hhciAqc3RyKTsKMTQ0NzQ6IHZvaWQgZHJtX3ByaW50X3JlZ3NldDMyKHN0cnVjdCBk
cm1fcHJpbnRlciAqcCwgc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCk7CjE0NDc0OiB2
b2lkIGRybV9wcmludF9iaXRzKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWduZWQgbG9uZyB2
YWx1ZSwKMTQ0NzQ6ICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCBiaXRzW10sIHVuc2lnbmVkIGlu
dCBuYml0cyk7CjE0NDc0OiAKMTQ0NzQ6IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRm
LCAyLCAwKSkpCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkCjE0NDc0OiBkcm1fdnByaW50ZihzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIGNv
bnN0IGNoYXIgKmZtdCwgdmFfbGlzdCAqdmEpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IHZhX2Zv
cm1hdCB2YWYgPSB7IC5mbXQgPSBmbXQsIC52YSA9IHZhIH07CjE0NDc0OiAKMTQ0NzQ6ICBwLT5w
cmludGZuKHAsICZ2YWYpOwoxNDQ3NDogfQoxNDQ3NDogIyAxMjggIi4vaW5jbHVkZS9kcm0vZHJt
X3ByaW50LmgiCjE0NDc0OiBzdHJ1Y3QgZHJtX3ByaW50X2l0ZXJhdG9yIHsKMTQ0NzQ6ICB2b2lk
ICpkYXRhOwoxNDQ3NDogIHNzaXplX3Qgc3RhcnQ7CjE0NDc0OiAgc3NpemVfdCByZW1haW47CjE0
NDc0OiAKMTQ0NzQ6ICBzc2l6ZV90IG9mZnNldDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDE3MiAiLi9p
bmNsdWRlL2RybS9kcm1fcHJpbnQuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkcm1fcHJpbnRlcgoxNDQ3NDog
ZHJtX2NvcmVkdW1wX3ByaW50ZXIoc3RydWN0IGRybV9wcmludF9pdGVyYXRvciAqaXRlcikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsKMTQ0NzQ6ICAgLnByaW50Zm4g
PSBfX2RybV9wcmludGZuX2NvcmVkdW1wLAoxNDQ3NDogICAucHV0cyA9IF9fZHJtX3B1dHNfY29y
ZWR1bXAsCjE0NDc0OiAgIC5hcmcgPSBpdGVyLAoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGl0ZXItPm9mZnNldCA9IDA7CjE0NDc0OiAKMTQ0NzQ6ICByZXR1cm4gcDsKMTQ0NzQ6
IH0KMTQ0NzQ6ICMgMTk0ICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGRybV9wcmludGVyIGRybV9zZXFfZmlsZV9wcmludGVyKHN0cnVjdCBzZXFfZmlsZSAqZikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsKMTQ0NzQ6ICAgLnByaW50Zm4g
PSBfX2RybV9wcmludGZuX3NlcV9maWxlLAoxNDQ3NDogICAucHV0cyA9IF9fZHJtX3B1dHNfc2Vx
X2ZpbGUsCjE0NDc0OiAgIC5hcmcgPSBmLAoxNDQ3NDogIH07CjE0NDc0OiAgcmV0dXJuIHA7CjE0
NDc0OiB9CjE0NDc0OiAjIDIxMSAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBkcm1fcHJpbnRlciBkcm1faW5mb19wcmludGVyKHN0cnVjdCBkZXZpY2UgKmRldikKMTQ0
NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsKMTQ0NzQ6ICAgLnByaW50Zm4g
PSBfX2RybV9wcmludGZuX2luZm8sCjE0NDc0OiAgIC5hcmcgPSBkZXYsCjE0NDc0OiAgfTsKMTQ0
NzQ6ICByZXR1cm4gcDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMjI3ICIuL2luY2x1ZGUvZHJtL2RybV9w
cmludC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRybV9wcmludGVyIGRybV9kZWJ1Z19wcmludGVyKGNvbnN0
IGNoYXIgKnByZWZpeCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IHsK
MTQ0NzQ6ICAgLnByaW50Zm4gPSBfX2RybV9wcmludGZuX2RlYnVnLAoxNDQ3NDogICAucHJlZml4
ID0gcHJlZml4CjE0NDc0OiAgfTsKMTQ0NzQ6ICByZXR1cm4gcDsKMTQ0NzQ6IH0KMTQ0NzQ6ICMg
MjQzICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRybV9wcmludGVy
IGRybV9lcnJfcHJpbnRlcihjb25zdCBjaGFyICpwcmVmaXgpCjE0NDc0OiB7CjE0NDc0OiAgc3Ry
dWN0IGRybV9wcmludGVyIHAgPSB7CjE0NDc0OiAgIC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9l
cnIsCjE0NDc0OiAgIC5wcmVmaXggPSBwcmVmaXgKMTQ0NzQ6ICB9OwoxNDQ3NDogIHJldHVybiBw
OwoxNDQ3NDogfQoxNDQ3NDogIyAyNzcgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCjE0NDc0
OiBlbnVtIGRybV9kZWJ1Z19jYXRlZ29yeSB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBEUk1fVVRfQ09SRSA9IDB4MDEsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICBEUk1fVVRfRFJJVkVSID0gMHgwMiwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBEUk1fVVRfS01TID0gMHgwNCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBEUk1fVVRfUFJJTUUgPSAweDA4LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IERSTV9VVF9BVE9NSUMgPSAweDEwLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERS
TV9VVF9WQkwgPSAweDIwLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERSTV9VVF9T
VEFURSA9IDB4NDAsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRFJNX1VUX0xFQVNF
ID0gMHg4MCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBEUk1fVVRfRFAgPSAweDEw
MCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZHJtX2RlYnVnX2VuYWJsZWQoZW51bSBk
cm1fZGVidWdfY2F0ZWdvcnkgY2F0ZWdvcnkpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIF9fYnVp
bHRpbl9leHBlY3QoISEoX19kcm1fZGVidWcgJiBjYXRlZ29yeSksIDApOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQoxNDQ3NDogdm9pZCBk
cm1fZGV2X3ByaW50ayhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmxldmVs
LAoxNDQ3NDogICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwoxNDQ3NDogX19hdHRyaWJ1
dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKMTQ0NzQ6IHZvaWQgZHJtX2Rldl9kYmco
Y29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBlbnVtIGRybV9kZWJ1Z19jYXRlZ29yeSBjYXRlZ29y
eSwKMTQ0NzQ6ICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKMTQ0NzQ6ICMgNDg5ICIuL2lu
Y2x1ZGUvZHJtL2RybV9wcmludC5oIgoxNDQ3NDogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhw
cmludGYsIDIsIDMpKSkKMTQ0NzQ6IHZvaWQgX19kcm1fZGJnKGVudW0gZHJtX2RlYnVnX2NhdGVn
b3J5IGNhdGVnb3J5LCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7CjE0NDc0OiBfX2F0dHJpYnV0
ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKQoxNDQ3NDogdm9pZCBfX2RybV9lcnIoY29u
c3QgY2hhciAqZm9ybWF0LCAuLi4pOwoxNDQ3NDogIyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvY2dzX2NvbW1vbi5oIiAxCjE0
NDc0OiAjIDI3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvY2dzX2Nv
bW1vbi5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1
ZGUvYW1kX3NoYXJlZC5oIiAxCjE0NDc0OiAjIDI2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2luY2x1ZGUvYW1kX3NoYXJlZC5oIgoxNDQ3NDogIyAxICIuL2luY2x1ZGUvZHJtL2Ft
ZF9hc2ljX3R5cGUuaCIgMQoxNDQ3NDogIyAyOCAiLi9pbmNsdWRlL2RybS9hbWRfYXNpY190eXBl
LmgiCjE0NDc0OiBlbnVtIGFtZF9hc2ljX3R5cGUgewoxNDQ3NDogIENISVBfVEFISVRJID0gMCwK
MTQ0NzQ6ICBDSElQX1BJVENBSVJOLAoxNDQ3NDogIENISVBfVkVSREUsCjE0NDc0OiAgQ0hJUF9P
TEFORCwKMTQ0NzQ6ICBDSElQX0hBSU5BTiwKMTQ0NzQ6ICBDSElQX0JPTkFJUkUsCjE0NDc0OiAg
Q0hJUF9LQVZFUkksCjE0NDc0OiAgQ0hJUF9LQUJJTkksCjE0NDc0OiAgQ0hJUF9IQVdBSUksCjE0
NDc0OiAgQ0hJUF9NVUxMSU5TLAoxNDQ3NDogIENISVBfVE9QQVosCjE0NDc0OiAgQ0hJUF9UT05H
QSwKMTQ0NzQ6ICBDSElQX0ZJSkksCjE0NDc0OiAgQ0hJUF9DQVJSSVpPLAoxNDQ3NDogIENISVBf
U1RPTkVZLAoxNDQ3NDogIENISVBfUE9MQVJJUzEwLAoxNDQ3NDogIENISVBfUE9MQVJJUzExLAox
NDQ3NDogIENISVBfUE9MQVJJUzEyLAoxNDQ3NDogIENISVBfVkVHQU0sCjE0NDc0OiAgQ0hJUF9W
RUdBMTAsCjE0NDc0OiAgQ0hJUF9WRUdBMTIsCjE0NDc0OiAgQ0hJUF9WRUdBMjAsCjE0NDc0OiAg
Q0hJUF9SQVZFTiwKMTQ0NzQ6ICBDSElQX0FSQ1RVUlVTLAoxNDQ3NDogIENISVBfUkVOT0lSLAox
NDQ3NDogIENISVBfTkFWSTEwLAoxNDQ3NDogIENISVBfTkFWSTE0LAoxNDQ3NDogIENISVBfTkFW
STEyLAoxNDQ3NDogIENISVBfTEFTVCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBj
b25zdCBjaGFyICphbWRncHVfYXNpY19uYW1lW107CjE0NDc0OiAjIDI3ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYW1kX3NoYXJlZC5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYW1k
X2NoaXBfZmxhZ3MgewoxNDQ3NDogIEFNRF9BU0lDX01BU0sgPSAweDAwMDBmZmZmVUwsCjE0NDc0
OiAgQU1EX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCjE0NDc0OiAgQU1EX0lTX01PQklMSVRZ
ID0gMHgwMDAxMDAwMFVMLAoxNDQ3NDogIEFNRF9JU19BUFUgPSAweDAwMDIwMDAwVUwsCjE0NDc0
OiAgQU1EX0lTX1BYID0gMHgwMDA0MDAwMFVMLAoxNDQ3NDogIEFNRF9FWFBfSFdfU1VQUE9SVCA9
IDB4MDAwODAwMDBVTCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYW1kX2lwX2Jsb2Nr
X3R5cGUgewoxNDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX0NPTU1PTiwKMTQ0NzQ6ICBBTURfSVBf
QkxPQ0tfVFlQRV9HTUMsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVfSUgsCjE0NDc0OiAgQU1E
X0lQX0JMT0NLX1RZUEVfU01DLAoxNDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX1BTUCwKMTQ0NzQ6
ICBBTURfSVBfQkxPQ0tfVFlQRV9EQ0UsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAox
NDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX1NETUEsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVf
VVZELAoxNDQ3NDogIEFNRF9JUF9CTE9DS19UWVBFX1ZDRSwKMTQ0NzQ6ICBBTURfSVBfQkxPQ0tf
VFlQRV9BQ1AsCjE0NDc0OiAgQU1EX0lQX0JMT0NLX1RZUEVfVkNOLAoxNDQ3NDogIEFNRF9JUF9C
TE9DS19UWVBFX01FUywKMTQ0NzQ6ICBBTURfSVBfQkxPQ0tfVFlQRV9KUEVHCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSB7CjE0NDc0OiAgQU1EX0NH
X1NUQVRFX0dBVEUgPSAwLAoxNDQ3NDogIEFNRF9DR19TVEFURV9VTkdBVEUsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHsKMTQ0NzQ6
ICBBTURfUEdfU1RBVEVfR0FURSA9IDAsCjE0NDc0OiAgQU1EX1BHX1NUQVRFX1VOR0FURSwKMTQ0
NzQ6IH07CjE0NDc0OiAjIDEyNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNs
dWRlL2FtZF9zaGFyZWQuaCIKMTQ0NzQ6IGVudW0gUFBfRkVBVFVSRV9NQVNLIHsKMTQ0NzQ6ICBQ
UF9TQ0xLX0RQTV9NQVNLID0gMHgxLAoxNDQ3NDogIFBQX01DTEtfRFBNX01BU0sgPSAweDIsCjE0
NDc0OiAgUFBfUENJRV9EUE1fTUFTSyA9IDB4NCwKMTQ0NzQ6ICBQUF9TQ0xLX0RFRVBfU0xFRVBf
TUFTSyA9IDB4OCwKMTQ0NzQ6ICBQUF9QT1dFUl9DT05UQUlOTUVOVF9NQVNLID0gMHgxMCwKMTQ0
NzQ6ICBQUF9VVkRfSEFORFNIQUtFX01BU0sgPSAweDIwLAoxNDQ3NDogIFBQX1NNQ19WT0xUQUdF
X0NPTlRST0xfTUFTSyA9IDB4NDAsCjE0NDc0OiAgUFBfVkJJX1RJTUVfU1VQUE9SVF9NQVNLID0g
MHg4MCwKMTQ0NzQ6ICBQUF9VTFZfTUFTSyA9IDB4MTAwLAoxNDQ3NDogIFBQX0VOQUJMRV9HRlhf
Q0dfVEhSVV9TTVUgPSAweDIwMCwKMTQ0NzQ6ICBQUF9DTE9DS19TVFJFVENIX01BU0sgPSAweDQw
MCwKMTQ0NzQ6ICBQUF9PRF9GVVpaWV9GQU5fQ09OVFJPTF9NQVNLID0gMHg4MDAsCjE0NDc0OiAg
UFBfU09DQ0xLX0RQTV9NQVNLID0gMHgxMDAwLAoxNDQ3NDogIFBQX0RDRUZDTEtfRFBNX01BU0sg
PSAweDIwMDAsCjE0NDc0OiAgUFBfT1ZFUkRSSVZFX01BU0sgPSAweDQwMDAsCjE0NDc0OiAgUFBf
R0ZYT0ZGX01BU0sgPSAweDgwMDAsCjE0NDc0OiAgUFBfQUNHX01BU0sgPSAweDEwMDAwLAoxNDQ3
NDogIFBQX1NUVVRURVJfTU9ERSA9IDB4MjAwMDAsCjE0NDc0OiAgUFBfQVZGU19NQVNLID0gMHg0
MDAwMCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gRENfRkVBVFVSRV9NQVNLIHsKMTQ0
NzQ6ICBEQ19GQkNfTUFTSyA9IDB4MSwKMTQ0NzQ6ICBEQ19NVUxUSV9NT05fUFBfTUNMS19TV0lU
Q0hfTUFTSyA9IDB4MiwKMTQ0NzQ6ICBEQ19ESVNBQkxFX0ZSQUNUSU9OQUxfUFdNX01BU0sgPSAw
eDQsCjE0NDc0OiAgRENfUFNSX01BU0sgPSAweDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBl
bnVtIGFtZF9kcG1fZm9yY2VkX2xldmVsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGFtZF9pcF9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6ICBjaGFyICpuYW1lOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKmVh
cmx5X2luaXQpKHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpsYXRlX2luaXQp
KHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpzd19pbml0KSh2b2lkICpoYW5k
bGUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc3dfZmluaSkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6
IAoxNDQ3NDogIGludCAoKmh3X2luaXQpKHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBp
bnQgKCpod19maW5pKSh2b2lkICpoYW5kbGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmxhdGVf
ZmluaSkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnN1c3BlbmQpKHZvaWQg
KmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCpyZXN1bWUpKHZvaWQgKmhhbmRsZSk7CjE0
NDc0OiAKMTQ0NzQ6ICBib29sICgqaXNfaWRsZSkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3
NDogIGludCAoKndhaXRfZm9yX2lkbGUpKHZvaWQgKmhhbmRsZSk7CjE0NDc0OiAKMTQ0NzQ6ICBi
b29sICgqY2hlY2tfc29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGlu
dCAoKnByZV9zb2Z0X3Jlc2V0KSh2b2lkICpoYW5kbGUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgq
c29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnBvc3Rfc29m
dF9yZXNldCkodm9pZCAqaGFuZGxlKTsKMTQ0NzQ6IAoxNDQ3NDogIGludCAoKnNldF9jbG9ja2dh
dGluZ19zdGF0ZSkodm9pZCAqaGFuZGxlLAoxNDQ3NDogICAgICAgICAgZW51bSBhbWRfY2xvY2tn
YXRpbmdfc3RhdGUgc3RhdGUpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqc2V0X3Bvd2VyZ2F0aW5n
X3N0YXRlKSh2b2lkICpoYW5kbGUsCjE0NDc0OiAgICAgICAgICBlbnVtIGFtZF9wb3dlcmdhdGlu
Z19zdGF0ZSBzdGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZ2V0X2Nsb2NrZ2F0aW5nX3N0
YXRlKSh2b2lkICpoYW5kbGUsIHUzMiAqZmxhZ3MpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqZW5h
YmxlX3VtZF9wc3RhdGUpKHZvaWQgKmhhbmRsZSwgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCAq
bGV2ZWwpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vaW5jbHVkZS9jZ3NfY29tbW9uLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNnc19k
ZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY2dzX2lu
ZF9yZWcgewoxNDQ3NDogIENHU19JTkRfUkVHX19NTUlPLAoxNDQ3NDogIENHU19JTkRfUkVHX19Q
Q0lFLAoxNDQ3NDogIENHU19JTkRfUkVHX19TTUMsCjE0NDc0OiAgQ0dTX0lORF9SRUdfX1VWRF9D
VFgsCjE0NDc0OiAgQ0dTX0lORF9SRUdfX0RJRFQsCjE0NDc0OiAgQ0dTX0lORF9SRUdfR0NfQ0FD
LAoxNDQ3NDogIENHU19JTkRfUkVHX1NFX0NBQywKMTQ0NzQ6ICBDR1NfSU5EX1JFR19fQVVESU9f
RU5EUFQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gY2dzX3Vjb2RlX2lkIHsKMTQ0NzQ6ICBDR1NfVUNPREVfSURfU01VID0gMCwKMTQ0NzQ6ICBD
R1NfVUNPREVfSURfU01VX1NLLAoxNDQ3NDogIENHU19VQ09ERV9JRF9TRE1BMCwKMTQ0NzQ6ICBD
R1NfVUNPREVfSURfU0RNQTEsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0NQX0NFLAoxNDQ3NDogIENH
U19VQ09ERV9JRF9DUF9QRlAsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0NQX01FLAoxNDQ3NDogIENH
U19VQ09ERV9JRF9DUF9NRUMsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0NQX01FQ19KVDEsCjE0NDc0
OiAgQ0dTX1VDT0RFX0lEX0NQX01FQ19KVDIsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX0dNQ09OX1JF
TkcsCjE0NDc0OiAgQ0dTX1VDT0RFX0lEX1JMQ19HLAoxNDQ3NDogIENHU19VQ09ERV9JRF9TVE9S
QUdFLAoxNDQ3NDogIENHU19VQ09ERV9JRF9NQVhJTVVNLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNnc19maXJtd2FyZV9pbmZvIHsKMTQ0
NzQ6ICB1aW50MTZfdCB2ZXJzaW9uOwoxNDQ3NDogIHVpbnQxNl90IGZ3X3ZlcnNpb247CjE0NDc0
OiAgdWludDE2X3QgZmVhdHVyZV92ZXJzaW9uOwoxNDQ3NDogIHVpbnQzMl90IGltYWdlX3NpemU7
CjE0NDc0OiAgdWludDY0X3QgbWNfYWRkcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgdWNvZGVfc3RhcnRfYWRkcmVzczsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKmtwdHI7CjE0NDc0
OiAgYm9vbCBpc19raWNrZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgY2dzX2hhbmRsZV90OwoxNDQ3NDogIyA5MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19jb21tb24uaCIKMTQ0NzQ6IHR5cGVkZWYgdWludDMyX3Qg
KCpjZ3NfcmVhZF9yZWdpc3Rlcl90KShzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2RldmljZSwgdW5z
aWduZWQgb2Zmc2V0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB2b2lkICgqY2dzX3dyaXRlX3JlZ2lzdGVyX3Qp
KHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLCB1bnNpZ25lZCBvZmZzZXQsCjE0NDc0OiAg
ICAgICAgICB1aW50MzJfdCB2YWx1ZSk7CjE0NDc0OiAjIDEwOSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19jb21tb24uaCIKMTQ0NzQ6IHR5cGVkZWYgdWludDMy
X3QgKCpjZ3NfcmVhZF9pbmRfcmVnaXN0ZXJfdCkoc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZp
Y2UsIGVudW0gY2dzX2luZF9yZWcgc3BhY2UsCjE0NDc0OiAgICAgICAgICB1bnNpZ25lZCBpbmRl
eCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHR5cGVkZWYgdm9pZCAoKmNnc193cml0ZV9pbmRfcmVnaXN0ZXJfdCkoc3RydWN0
IGNnc19kZXZpY2UgKmNnc19kZXZpY2UsIGVudW0gY2dzX2luZF9yZWcgc3BhY2UsCjE0NDc0OiAg
ICAgICB1bnNpZ25lZCBpbmRleCwgdWludDMyX3QgdmFsdWUpOwoxNDQ3NDogIyAxMzcgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9jZ3NfY29tbW9uLmgiCjE0NDc0OiB0
eXBlZGVmIGludCAoKmNnc19nZXRfZmlybXdhcmVfaW5mbykoc3RydWN0IGNnc19kZXZpY2UgKmNn
c19kZXZpY2UsCjE0NDc0OiAgICAgICAgICBlbnVtIGNnc191Y29kZV9pZCB0eXBlLAoxNDQ3NDog
ICAgICAgICAgc3RydWN0IGNnc19maXJtd2FyZV9pbmZvICppbmZvKTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGNnc19vcHMgewoxNDQ3NDogCjE0NDc0OiAgY2dzX3JlYWRfcmVnaXN0ZXJfdCByZWFk
X3JlZ2lzdGVyOwoxNDQ3NDogIGNnc193cml0ZV9yZWdpc3Rlcl90IHdyaXRlX3JlZ2lzdGVyOwox
NDQ3NDogIGNnc19yZWFkX2luZF9yZWdpc3Rlcl90IHJlYWRfaW5kX3JlZ2lzdGVyOwoxNDQ3NDog
IGNnc193cml0ZV9pbmRfcmVnaXN0ZXJfdCB3cml0ZV9pbmRfcmVnaXN0ZXI7CjE0NDc0OiAKMTQ0
NzQ6ICBjZ3NfZ2V0X2Zpcm13YXJlX2luZm8gZ2V0X2Zpcm13YXJlX2luZm87CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY2dzX29zX29wczsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNn
c19kZXZpY2UKMTQ0NzQ6IHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgY2dzX29wcyAqb3BzOwoxNDQ3
NDogCjE0NDc0OiB9OwoxNDQ3NDogIyA0MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNTUgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIgoxNDQ3NDogIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2ZwdS9hcGkuaCIgMQoxNDQ3NDogIyAyMiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9mcHUvYXBpLmgiCjE0NDc0OiBleHRlcm4gdm9pZCBrZXJuZWxfZnB1X2JlZ2luKHZv
aWQpOwoxNDQ3NDogZXh0ZXJuIHZvaWQga2VybmVsX2ZwdV9lbmQodm9pZCk7CjE0NDc0OiBleHRl
cm4gYm9vbCBpcnFfZnB1X3VzYWJsZSh2b2lkKTsKMTQ0NzQ6IGV4dGVybiB2b2lkIGZwcmVnc19t
YXJrX2FjdGl2YXRlKHZvaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZwcmVnc19sb2NrKHZvaWQpCjE0NDc0OiB7
CjE0NDc0OiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKMTQ0NzQ6ICBs
b2NhbF9iaF9kaXNhYmxlKCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZnByZWdzX3Vu
bG9jayh2b2lkKQoxNDQ3NDogewoxNDQ3NDogIGxvY2FsX2JoX2VuYWJsZSgpOwoxNDQ3NDogIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIHZvaWQgZnByZWdzX2Fzc2VydF9zdGF0ZV9jb25zaXN0ZW50KHZv
aWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gdm9pZCBzd2l0Y2hfZnB1X3JldHVybih2b2lkKTsKMTQ0NzQ6ICMg
NjMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L2FwaS5oIgoxNDQ3NDogZXh0ZXJuIGludCBj
cHVfaGFzX3hmZWF0dXJlcyh1NjQgeGZlYXR1cmVzX21hc2ssIGNvbnN0IGNoYXIgKipmZWF0dXJl
X25hbWUpOwoxNDQ3NDogIyA1NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL29zX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIgMQoxNDQ3
NDogIyA1NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgewoxNDQ3NDogIGxvbmcgbG9u
ZyB2YWx1ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBk
Y19maXhwdF96ZXJvID0geyAwIH07CjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFf
MzIgZGNfZml4cHRfZXBzaWxvbiA9IHsgMUxMIH07CjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0
IGZpeGVkMzFfMzIgZGNfZml4cHRfaGFsZiA9IHsgMHg4MDAwMDAwMExMIH07CjE0NDc0OiBzdGF0
aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfb25lID0geyAweDEwMDAwMDAwMExM
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhw
dF9waSA9IHsgMTM0OTMwMzc3MDVMTCB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhl
ZDMxXzMyIGRjX2ZpeHB0X3R3b19waSA9IHsgMjY5ODYwNzU0MDlMTCB9OwoxNDQ3NDogc3RhdGlj
IGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2UgPSB7IDExNjc0OTMxNTU1TEwgfTsK
MTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9sbjIgPSB7IDI5
NzcwNDQ0NzFMTCB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X2xuMl9kaXZfMiA9IHsgMTQ4ODUyMjIzNkxMIH07CjE0NDc0OiAjIDg3ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCjE0NDc0
OiBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9mcm9tX2ZyYWN0aW9uKGxvbmcgbG9uZyBudW1l
cmF0b3IsIGxvbmcgbG9uZyBkZW5vbWluYXRvcik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfZnJvbV9pbnQo
aW50IGFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7CjE0NDc0OiAK
MTQ0NzQ6ICByZXMudmFsdWUgPSAobG9uZyBsb25nKSBhcmcgPDwgMzI7CjE0NDc0OiAKMTQ0NzQ6
ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogIyAxMTEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBm
aXhlZDMxXzMyIGRjX2ZpeHB0X25lZyhzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCjE0NDc0OiB7CjE0
NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcmVzOwoxNDQ3NDogCjE0NDc0OiAgcmVzLnZhbHVlID0g
LWFyZy52YWx1ZTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiByZXM7CjE0NDc0OiB9CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIg
ZGNfZml4cHRfYWJzKHN0cnVjdCBmaXhlZDMxXzMyIGFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAo
YXJnLnZhbHVlIDwgMCkKMTQ0NzQ6ICAgcmV0dXJuIGRjX2ZpeHB0X25lZyhhcmcpOwoxNDQ3NDog
IGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIGFyZzsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMTQxICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGRjX2ZpeHB0X2x0KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhl
ZDMxXzMyIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFyZzEudmFsdWUgPCBhcmcyLnZh
bHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgZGNfZml4cHRfbGUoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVk
MzFfMzIgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1ZSA8PSBhcmcyLnZh
bHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgZGNfZml4cHRfZXEoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVk
MzFfMzIgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1ZSA9PSBhcmcyLnZh
bHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X21pbihzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcx
LCBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKQoxNDQ3NDogewoxNDQ3NDogIGlmIChhcmcxLnZhbHVl
IDw9IGFyZzIudmFsdWUpCjE0NDc0OiAgIHJldHVybiBhcmcxOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6
ICAgcmV0dXJuIGFyZzI7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbWF4KHN0cnVjdCBmaXhl
ZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgaWYg
KGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZSkKMTQ0NzQ6ICAgcmV0dXJuIGFyZzI7CjE0NDc0OiAg
ZWxzZQoxNDQ3NDogICByZXR1cm4gYXJnMTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFf
MzIgZGNfZml4cHRfY2xhbXAoCjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgYXJnLAoxNDQ3NDog
IHN0cnVjdCBmaXhlZDMxXzMyIG1pbl92YWx1ZSwKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBt
YXhfdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGRjX2ZpeHB0X2xlKGFyZywgbWluX3ZhbHVl
KSkKMTQ0NzQ6ICAgcmV0dXJuIG1pbl92YWx1ZTsKMTQ0NzQ6ICBlbHNlIGlmIChkY19maXhwdF9s
ZShtYXhfdmFsdWUsIGFyZykpCjE0NDc0OiAgIHJldHVybiBtYXhfdmFsdWU7CjE0NDc0OiAgZWxz
ZQoxNDQ3NDogICByZXR1cm4gYXJnOwoxNDQ3NDogfQoxNDQ3NDogIyAyMTYgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3NobChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcsIHVu
c2lnbmVkIGNoYXIgc2hpZnQpCjE0NDc0OiB7CjE0NDc0OiAgKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhISghKCgoYXJnLnZhbHVlID49IDApICYmIChhcmcudmFsdWUgPD0gKChsb25nIGxvbmcpKH4w
VUxMID4+IDEpKSA+PiBzaGlmdCkpIHx8ICgoYXJnLnZhbHVlIDwgMCkgJiYgKGFyZy52YWx1ZSA+
PSB+KCgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkgPj4gc2hpZnQpKSkpKTsgaWYgKF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZv
bGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVn
X3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50
cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29y
ZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNl
Y3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2lu
Y2x1ZGUvZml4ZWQzMV8zMi5oIiksICJpIiAoMjE4KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4
KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNt
IHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0
IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzOCkpOyB9
KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9
KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwoxNDQ3NDogCjE0NDc0OiAgYXJnLnZhbHVlID0gYXJnLnZhbHVlIDw8IHNo
aWZ0OwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGFyZzsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhw
dF9zaHIoc3RydWN0IGZpeGVkMzFfMzIgYXJnLCB1bnNpZ25lZCBjaGFyIHNoaWZ0KQoxNDQ3NDog
ewoxNDQ3NDogIGJvb2wgbmVnYXRpdmUgPSBhcmcudmFsdWUgPCAwOwoxNDQ3NDogCjE0NDc0OiAg
aWYgKG5lZ2F0aXZlKQoxNDQ3NDogICBhcmcudmFsdWUgPSAtYXJnLnZhbHVlOwoxNDQ3NDogIGFy
Zy52YWx1ZSA9IGFyZy52YWx1ZSA+PiBzaGlmdDsKMTQ0NzQ6ICBpZiAobmVnYXRpdmUpCjE0NDc0
OiAgIGFyZy52YWx1ZSA9IC1hcmcudmFsdWU7CjE0NDc0OiAgcmV0dXJuIGFyZzsKMTQ0NzQ6IH0K
MTQ0NzQ6ICMgMjUxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5j
bHVkZS9maXhlZDMxXzMyLmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9hZGQo
c3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKMTQ0NzQ6IHsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7CjE0NDc0OiAKMTQ0NzQ6ICAoeyBpbnQgX19y
ZXRfd2Fybl9vbiA9ICEhKCEoKChhcmcxLnZhbHVlID49IDApICYmICgoKGxvbmcgbG9uZykofjBV
TEwgPj4gMSkpIC0gYXJnMS52YWx1ZSA+PSBhcmcyLnZhbHVlKSkgfHwgKChhcmcxLnZhbHVlIDwg
MCkgJiYgKCgtKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSAtIDEpIC0gYXJnMS52YWx1ZSA8PSBh
cmcyLnZhbHVlKSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDAp
KSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgw
YiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25n
ICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAi
ICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQj
IGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xu
IiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIiksICJpIiAoMjU1
KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2Vu
dHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiA6IDogImkiICgzOSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBl
Y3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KQoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoxNDQ3NDogCjE0NDc0
OiAgcmVzLnZhbHVlID0gYXJnMS52YWx1ZSArIGFyZzIudmFsdWU7CjE0NDc0OiAKMTQ0NzQ6ICBy
ZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2FkZF9pbnQoc3RydWN0IGZpeGVk
MzFfMzIgYXJnMSwgaW50IGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2Fk
ZChhcmcxLCBkY19maXhwdF9mcm9tX2ludChhcmcyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4
cHRfc3ViKHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCjE0
NDc0OiB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcmVzOwoxNDQ3NDogCjE0NDc0OiAgKHsg
aW50IF9fcmV0X3dhcm5fb24gPSAhISghKCgoYXJnMi52YWx1ZSA+PSAwKSAmJiAoKC0oKGxvbmcg
bG9uZykofjBVTEwgPj4gMSkpIC0gMSkgKyBhcmcyLnZhbHVlIDw9IGFyZzEudmFsdWUpKSB8fCAo
KGFyZzIudmFsdWUgPCAwKSAmJiAoKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSArIGFyZzIudmFs
dWUgPj0gYXJnMS52YWx1ZSkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4
MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQi
ICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAi
LmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVj
MSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6
ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIpLCAi
aSIgKDI4MCksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIu
cHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIg
Ii5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSkKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKMTQ0NzQ6
IAoxNDQ3NDogIHJlcy52YWx1ZSA9IGFyZzEudmFsdWUgLSBhcmcyLnZhbHVlOwoxNDQ3NDogCjE0
NDc0OiAgcmV0dXJuIHJlczsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9zdWJfaW50KHN0cnVj
dCBmaXhlZDMxXzMyIGFyZzEsIGludCBhcmcyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBkY19m
aXhwdF9zdWIoYXJnMSwgZGNfZml4cHRfZnJvbV9pbnQoYXJnMikpOwoxNDQ3NDogfQoxNDQ3NDog
IyAzMDcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Zp
eGVkMzFfMzIuaCIKMTQ0NzQ6IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X211bChzdHJ1Y3Qg
Zml4ZWQzMV8zMiBhcmcxLCBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMy
IGRjX2ZpeHB0X211bF9pbnQoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgaW50IGFyZzIpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X211bChhcmcxLCBkY19maXhwdF9mcm9tX2ludChh
cmcyKSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc3FyKHN0cnVjdCBmaXhlZDMxXzMyIGFy
Zyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGZpeGVkMzFfMzIgZGNfZml4cHRfZGl2X2ludChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLCBsb25n
IGxvbmcgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gZGNfZml4cHRfZnJvbV9mcmFjdGlv
bihhcmcxLnZhbHVlLCBkY19maXhwdF9mcm9tX2ludChhcmcyKS52YWx1ZSk7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVk
MzFfMzIgZGNfZml4cHRfZGl2KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMx
XzMyIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2Zyb21fZnJhY3Rpb24o
YXJnMS52YWx1ZSwgYXJnMi52YWx1ZSk7CjE0NDc0OiB9CjE0NDc0OiAjIDM1NSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3
NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfcmVjaXAoc3RydWN0IGZpeGVkMzFfMzIgYXJn
KTsKMTQ0NzQ6ICMgMzcwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9maXhlZDMxXzMyLmgiCjE0NDc0OiBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9z
aW5jKHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAjIDM4MCAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3NDogc3Ry
dWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc2luKHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0
OiAjIDM5MiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfY29zKHN0cnVj
dCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAjIDQwNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RydWN0IGZpeGVk
MzFfMzIgZGNfZml4cHRfZXhwKHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAjIDQxOCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8z
Mi5oIgoxNDQ3NDogc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbG9nKHN0cnVjdCBmaXhlZDMx
XzMyIGFyZyk7CjE0NDc0OiAjIDQzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNf
Zml4cHRfcG93KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIp
CjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2V4cCgKMTQ0NzQ6ICAgZGNfZml4cHRf
bXVsKAoxNDQ3NDogICAgZGNfZml4cHRfbG9nKGFyZzEpLAoxNDQ3NDogICAgYXJnMikpOwoxNDQ3
NDogfQoxNDQ3NDogIyA0NDkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9mbG9vcihzdHJ1Y3Qg
Zml4ZWQzMV8zMiBhcmcpCjE0NDc0OiB7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIGFyZ192
YWx1ZSA9IGFyZy52YWx1ZSA+IDAgPyBhcmcudmFsdWUgOiAtYXJnLnZhbHVlOwoxNDQ3NDogCjE0
NDc0OiAgaWYgKGFyZy52YWx1ZSA+PSAwKQoxNDQ3NDogICByZXR1cm4gKGludCkoYXJnX3ZhbHVl
ID4+IDMyKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAgIHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+
IDMyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgZGNfZml4cHRfcm91bmQoc3RydWN0IGZpeGVkMzFfMzIgYXJnKQoxNDQ3NDogewox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBhcmdfdmFsdWUgPSBhcmcudmFsdWUgPiAwID8gYXJn
LnZhbHVlIDogLWFyZy52YWx1ZTsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IGxvbmcgbG9uZyBzdW1t
YW5kID0gZGNfZml4cHRfaGFsZi52YWx1ZTsKMTQ0NzQ6IAoxNDQ3NDogICh7IGludCBfX3JldF93
YXJuX29uID0gISEoISgoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkpIC0gKGxvbmcgbG9uZylhcmdf
dmFsdWUgPj0gc3VtbWFuZCkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29u
KSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiKSwgImki
ICg0NjkpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBi
dWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1
c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQxKSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGlu
X2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogCjE0NDc0OiAgYXJnX3Zh
bHVlICs9IHN1bW1hbmQ7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoYXJnLnZhbHVlID49IDApCjE0NDc0
OiAgIHJldHVybiAoaW50KShhcmdfdmFsdWUgPj4gMzIpOwoxNDQ3NDogIGVsc2UKMTQ0NzQ6ICAg
cmV0dXJuIC0oaW50KShhcmdfdmFsdWUgPj4gMzIpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9jZWlsKHN0cnVjdCBm
aXhlZDMxXzMyIGFyZykKMTQ0NzQ6IHsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgYXJnX3Zh
bHVlID0gYXJnLnZhbHVlID4gMCA/IGFyZy52YWx1ZSA6IC1hcmcudmFsdWU7CjE0NDc0OiAKMTQ0
NzQ6ICBjb25zdCBsb25nIGxvbmcgc3VtbWFuZCA9IGRjX2ZpeHB0X29uZS52YWx1ZSAtCjE0NDc0
OiAgIGRjX2ZpeHB0X2Vwc2lsb24udmFsdWU7CjE0NDc0OiAKMTQ0NzQ6ICAoeyBpbnQgX19yZXRf
d2Fybl9vbiA9ICEhKCEoKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSAtIChsb25nIGxvbmcpYXJn
X3ZhbHVlID49IHN1bW1hbmQpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9v
biksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgw
ZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIg
Ii5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIu
bG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMx
IiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5Ojpm
bGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJkcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIiksICJp
IiAoNDkwKSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3Qg
YnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5w
dXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAi
LnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0MikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6IAoxNDQ3NDogIGFyZ192
YWx1ZSArPSBzdW1tYW5kOwoxNDQ3NDogCjE0NDc0OiAgaWYgKGFyZy52YWx1ZSA+PSAwKQoxNDQ3
NDogICByZXR1cm4gKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKMTQ0NzQ6ICBlbHNlCjE0NDc0OiAg
IHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQg
aW50IGRjX2ZpeHB0X3U0ZDE5KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAKMTQ0NzQ6
IHVuc2lnbmVkIGludCBkY19maXhwdF91M2QxOShzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoxNDQ3
NDogCjE0NDc0OiB1bnNpZ25lZCBpbnQgZGNfZml4cHRfdTJkMTkoc3RydWN0IGZpeGVkMzFfMzIg
YXJnKTsKMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQgaW50IGRjX2ZpeHB0X3UwZDE5KHN0cnVjdCBm
aXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGludCBkY19maXhwdF9jbGFt
cF91MGQxNChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBp
bnQgZGNfZml4cHRfY2xhbXBfdTBkMTAoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKMTQ0NzQ6IAox
NDQ3NDogaW50IGRjX2ZpeHB0X3M0ZDE5KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CjE0NDc0OiAK
MTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3RydW5jYXRlKHN0cnVjdCBmaXhlZDMx
XzMyIGFyZywgdW5zaWduZWQgaW50IGZyYWNfYml0cykKMTQ0NzQ6IHsKMTQ0NzQ6ICBib29sIG5l
Z2F0aXZlID0gYXJnLnZhbHVlIDwgMDsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChmcmFjX2JpdHMgPj0g
MzIpIHsKMTQ0NzQ6ICAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhISghKGZyYWNfYml0cyA9PSAz
MikpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8g
eyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIu
cHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIg
LSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAt
IDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5
OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcg
MmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiKSwgImkiICg1MjUpLCAiaSIgKCgx
IDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0g
d2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDQzKSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3Jl
dF93YXJuX29uKSwgMCk7IH0pOwoxNDQ3NDogICByZXR1cm4gYXJnOwoxNDQ3NDogIH0KMTQ0NzQ6
IAoxNDQ3NDogIGlmIChuZWdhdGl2ZSkKMTQ0NzQ6ICAgYXJnLnZhbHVlID0gLWFyZy52YWx1ZTsK
MTQ0NzQ6ICBhcmcudmFsdWUgJj0gKH4wTEwpIDw8ICgzMiAtIGZyYWNfYml0cyk7CjE0NDc0OiAg
aWYgKG5lZ2F0aXZlKQoxNDQ3NDogICBhcmcudmFsdWUgPSAtYXJnLnZhbHVlOwoxNDQ3NDogIHJl
dHVybiBhcmc7CjE0NDc0OiB9CjE0NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaXJxX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pcnFfdHlwZXMuaCIK
MTQ0NzQ6IHN0cnVjdCBkY19jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiB0eXBlZGVmIHZvaWQgKCpp
bnRlcnJ1cHRfaGFuZGxlcikodm9pZCAqKTsKMTQ0NzQ6IAoxNDQ3NDogdHlwZWRlZiB2b2lkICpp
cnFfaGFuZGxlcl9pZHg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gZGNfaXJxX3NvdXJjZSB7CjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0lOVkFMSUQg
PSAwLAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9IUEQxLAoxNDQ3NDogIERDX0lSUV9T
T1VSQ0VfSFBEMiwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDMsCjE0NDc0OiAgRENfSVJRX1NP
VVJDRV9IUEQ0LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfSFBENSwKMTQ0NzQ6ICBEQ19JUlFfU09V
UkNFX0hQRDYsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDFSWCwKMTQ0NzQ6ICBE
Q19JUlFfU09VUkNFX0hQRDJSWCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDNSWCwKMTQ0NzQ6
ICBEQ19JUlFfU09VUkNFX0hQRDRSWCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDVSWCwKMTQ0
NzQ6ICBEQ19JUlFfU09VUkNFX0hQRDZSWCwKMTQ0NzQ6IAoxNDQ3NDogIERDX0lSUV9TT1VSQ0Vf
STJDX0REQzEsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9JMkNfRERDMiwKMTQ0NzQ6ICBEQ19JUlFf
U09VUkNFX0kyQ19EREMzLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfSTJDX0REQzQsCjE0NDc0OiAg
RENfSVJRX1NPVVJDRV9JMkNfRERDNSwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0kyQ19EREM2LAox
NDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EUFNJTksxLAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfRFBTSU5LMiwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RQU0lOSzMsCjE0NDc0OiAgRENfSVJR
X1NPVVJDRV9EUFNJTks0LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfRFBTSU5LNSwKMTQ0NzQ6ICBE
Q19JUlFfU09VUkNFX0RQU0lOSzYsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1RJTUVS
LAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVCwKMTQ0NzQ6ICBEQ19J
UlFfU09VUkNFX1BGTElQMSA9IERDX0lSUV9TT1VSQ0VfUEZMSVBfRklSU1QsCjE0NDc0OiAgRENf
SVJRX1NPVVJDRV9QRkxJUDIsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUDMsCjE0NDc0OiAg
RENfSVJRX1NPVVJDRV9QRkxJUDQsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUDUsCjE0NDc0
OiAgRENfSVJRX1NPVVJDRV9QRkxJUDYsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUF9VTkRF
UkxBWTAsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9QRkxJUF9MQVNUID0gRENfSVJRX1NPVVJDRV9Q
RkxJUF9VTkRFUkxBWTAsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0dQSU9QQUQwLAox
NDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDEsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9HUElP
UEFEMiwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0dQSU9QQUQzLAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfR1BJT1BBRDQsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9HUElPUEFENSwKMTQ0NzQ6ICBEQ19J
UlFfU09VUkNFX0dQSU9QQUQ2LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDcsCjE0NDc0
OiAgRENfSVJRX1NPVVJDRV9HUElPUEFEOCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0dQSU9QQUQ5
LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDEwLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0Vf
R1BJT1BBRDExLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDEyLAoxNDQ3NDogIERDX0lS
UV9TT1VSQ0VfR1BJT1BBRDEzLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE0LAoxNDQ3
NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE1LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BB
RDE2LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE3LAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfR1BJT1BBRDE4LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE5LAoxNDQ3NDogIERD
X0lSUV9TT1VSQ0VfR1BJT1BBRDIwLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDIxLAox
NDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDIyLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJ
T1BBRDIzLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI0LAoxNDQ3NDogIERDX0lSUV9T
T1VSQ0VfR1BJT1BBRDI1LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI2LAoxNDQ3NDog
IERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI3LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI4
LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI5LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0Vf
R1BJT1BBRDMwLAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzFVTkRFUkZMT1csCjE0
NDc0OiAgRENfSVJRX1NPVVJDRV9EQzJVTkRFUkZMT1csCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9E
QzNVTkRFUkZMT1csCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzRVTkRFUkZMT1csCjE0NDc0OiAg
RENfSVJRX1NPVVJDRV9EQzVVTkRFUkZMT1csCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzZVTkRF
UkZMT1csCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RNQ1VfU0NQLAoxNDQ3NDogIERD
X0lSUV9TT1VSQ0VfVkJJT1NfU1csCjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZVUERB
VEUxLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfVlVQREFURTIsCjE0NDc0OiAgRENfSVJRX1NPVVJD
RV9WVVBEQVRFMywKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZVUERBVEU0LAoxNDQ3NDogIERDX0lS
UV9TT1VSQ0VfVlVQREFURTUsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9WVVBEQVRFNiwKMTQ0NzQ6
IAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfVkJMQU5LMSwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZC
TEFOSzIsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9WQkxBTkszLAoxNDQ3NDogIERDX0lSUV9TT1VS
Q0VfVkJMQU5LNCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX1ZCTEFOSzUsCjE0NDc0OiAgRENfSVJR
X1NPVVJDRV9WQkxBTks2LAoxNDQ3NDogCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzFfVkxJTkUw
LAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfREMyX1ZMSU5FMCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNF
X0RDM19WTElORTAsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzRfVkxJTkUwLAoxNDQ3NDogIERD
X0lSUV9TT1VSQ0VfREM1X1ZMSU5FMCwKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RDNl9WTElORTAs
CjE0NDc0OiAKMTQ0NzQ6ICBEQ19JUlFfU09VUkNFX0RDMV9WTElORTEsCjE0NDc0OiAgRENfSVJR
X1NPVVJDRV9EQzJfVkxJTkUxLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfREMzX1ZMSU5FMSwKMTQ0
NzQ6ICBEQ19JUlFfU09VUkNFX0RDNF9WTElORTEsCjE0NDc0OiAgRENfSVJRX1NPVVJDRV9EQzVf
VkxJTkUxLAoxNDQ3NDogIERDX0lSUV9TT1VSQ0VfREM2X1ZMSU5FMSwKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgREFMX0lSUV9TT1VSQ0VTX05VTUJFUgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBpcnFfdHlwZQoxNDQ3NDogewoxNDQ3NDogIElSUV9UWVBFX1BGTElQID0gRENfSVJRX1NP
VVJDRV9QRkxJUDEsCjE0NDc0OiAgSVJRX1RZUEVfVlVQREFURSA9IERDX0lSUV9TT1VSQ0VfVlVQ
REFURTEsCjE0NDc0OiAgSVJRX1RZUEVfVkJMQU5LID0gRENfSVJRX1NPVVJDRV9WQkxBTksxLAox
NDQ3NDogfTsKMTQ0NzQ6ICMgMTczICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaXJxX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2ludGVycnVwdF9jb250ZXh0IHsK
MTQ0NzQ6ICBJTlRFUlJVUFRfTE9XX0lSUV9DT05URVhUID0gMCwKMTQ0NzQ6ICBJTlRFUlJVUFRf
SElHSF9JUlFfQ09OVEVYVCwKMTQ0NzQ6ICBJTlRFUlJVUFRfQ09OVEVYVF9OVU1CRVIKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfaW50ZXJydXB0X3Bvcmxhcml0eSB7CjE0NDc0OiAg
SU5URVJSVVBUX1BPTEFSSVRZX0RFRkFVTFQgPSAwLAoxNDQ3NDogIElOVEVSUlVQVF9QT0xBUklU
WV9MT1cgPSBJTlRFUlJVUFRfUE9MQVJJVFlfREVGQVVMVCwKMTQ0NzQ6ICBJTlRFUlJVUFRfUE9M
QVJJVFlfSElHSCwKMTQ0NzQ6ICBJTlRFUlJVUFRfUE9MQVJJVFlfQk9USAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkY190aW1lcl9pbnRlcnJ1cHRfcGFyYW1zIHsKMTQ0NzQ6ICB1aW50MzJfdCBtaWNyb19zZWNf
aW50ZXJ2YWw7CjE0NDc0OiAgZW51bSBkY19pbnRlcnJ1cHRfY29udGV4dCBpbnRfY29udGV4dDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19pbnRlcnJ1cHRfcGFyYW1zIHsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX2ludGVycnVwdF9wb3JsYXJpdHkg
cmVxdWVzdGVkX3BvbGFyaXR5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgZW51bSBkY19pbnRlcnJ1cHRfcG9ybGFyaXR5IGN1cnJlbnRfcG9sYXJpdHk7CjE0NDc0OiAg
ZW51bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2U7CjE0NDc0OiAgZW51bSBkY19pbnRlcnJ1cHRf
Y29udGV4dCBpbnRfY29udGV4dDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM1ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZHBfdHlwZXMuaCIg
MQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RjX2RwX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2xhbmVfY291bnQgewoxNDQ3NDogIExBTkVf
Q09VTlRfVU5LTk9XTiA9IDAsCjE0NDc0OiAgTEFORV9DT1VOVF9PTkUgPSAxLAoxNDQ3NDogIExB
TkVfQ09VTlRfVFdPID0gMiwKMTQ0NzQ6ICBMQU5FX0NPVU5UX0ZPVVIgPSA0LAoxNDQ3NDogIExB
TkVfQ09VTlRfRUlHSFQgPSA4LAoxNDQ3NDogIExBTkVfQ09VTlRfRFBfTUFYID0gTEFORV9DT1VO
VF9GT1VSCjE0NDc0OiB9OwoxNDQ3NDogIyA0NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2xpbmtfcmF0ZSB7
CjE0NDc0OiAgTElOS19SQVRFX1VOS05PV04gPSAwLAoxNDQ3NDogIExJTktfUkFURV9MT1cgPSAw
eDA2LAoxNDQ3NDogIExJTktfUkFURV9SQVRFXzIgPSAweDA4LAoxNDQ3NDogIExJTktfUkFURV9S
QVRFXzMgPSAweDA5LAoxNDQ3NDogIExJTktfUkFURV9ISUdIID0gMHgwQSwKMTQ0NzQ6ICBMSU5L
X1JBVEVfUkJSMiA9IDB4MEMsCjE0NDc0OiAgTElOS19SQVRFX1JBVEVfNiA9IDB4MTAsCjE0NDc0
OiAgTElOS19SQVRFX0hJR0gyID0gMHgxNCwKMTQ0NzQ6ICBMSU5LX1JBVEVfSElHSDMgPSAweDFF
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2xpbmtfc3ByZWFkIHsKMTQ0NzQ6ICBM
SU5LX1NQUkVBRF9ESVNBQkxFRCA9IDB4MDAsCjE0NDc0OiAKMTQ0NzQ6ICBMSU5LX1NQUkVBRF8w
NV9ET1dOU1BSRUFEXzMwS0haID0gMHgxMCwKMTQ0NzQ6IAoxNDQ3NDogIExJTktfU1BSRUFEXzA1
X0RPV05TUFJFQURfMzNLSFogPSAweDExCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRj
X3ZvbHRhZ2Vfc3dpbmcgewoxNDQ3NDogIFZPTFRBR0VfU1dJTkdfTEVWRUwwID0gMCwKMTQ0NzQ6
ICBWT0xUQUdFX1NXSU5HX0xFVkVMMSwKMTQ0NzQ6ICBWT0xUQUdFX1NXSU5HX0xFVkVMMiwKMTQ0
NzQ6ICBWT0xUQUdFX1NXSU5HX0xFVkVMMywKMTQ0NzQ6ICBWT0xUQUdFX1NXSU5HX01BWF9MRVZF
TCA9IFZPTFRBR0VfU1dJTkdfTEVWRUwzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRj
X3ByZV9lbXBoYXNpcyB7CjE0NDc0OiAgUFJFX0VNUEhBU0lTX0RJU0FCTEVEID0gMCwKMTQ0NzQ6
ICBQUkVfRU1QSEFTSVNfTEVWRUwxLAoxNDQ3NDogIFBSRV9FTVBIQVNJU19MRVZFTDIsCjE0NDc0
OiAgUFJFX0VNUEhBU0lTX0xFVkVMMywKMTQ0NzQ6ICBQUkVfRU1QSEFTSVNfTUFYX0xFVkVMID0g
UFJFX0VNUEhBU0lTX0xFVkVMMwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gZGNfcG9zdF9jdXJzb3IyIHsKMTQ0NzQ6ICBQT1NUX0NVUlNPUjJfRElTQUJMRUQg
PSAwLAoxNDQ3NDogIFBPU1RfQ1VSU09SMl9MRVZFTDEsCjE0NDc0OiAgUE9TVF9DVVJTT1IyX0xF
VkVMMiwKMTQ0NzQ6ICBQT1NUX0NVUlNPUjJfTEVWRUwzLAoxNDQ3NDogIFBPU1RfQ1VSU09SMl9N
QVhfTEVWRUwgPSBQT1NUX0NVUlNPUjJfTEVWRUwzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkY19kcF90cmFpbmluZ19wYXR0ZXJuIHsKMTQ0NzQ6ICBEUF9UUkFJTklOR19QQVRURVJO
X1NFUVVFTkNFXzEgPSAwLAoxNDQ3NDogIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VRVUVOQ0VfMiwK
MTQ0NzQ6ICBEUF9UUkFJTklOR19QQVRURVJOX1NFUVVFTkNFXzMsCjE0NDc0OiAgRFBfVFJBSU5J
TkdfUEFUVEVSTl9TRVFVRU5DRV80LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgewoxNDQ3NDogIGVudW0gZGNfbGFuZV9jb3VudCBsYW5lX2NvdW50Owox
NDQ3NDogIGVudW0gZGNfbGlua19yYXRlIGxpbmtfcmF0ZTsKMTQ0NzQ6ICBlbnVtIGRjX2xpbmtf
c3ByZWFkIGxpbmtfc3ByZWFkOwoxNDQ3NDogIGJvb2wgdXNlX2xpbmtfcmF0ZV9zZXQ7CjE0NDc0
OiAgdWludDhfdCBsaW5rX3JhdGVfc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRjX2xhbmVfc2V0dGluZ3MgewoxNDQ3NDogIGVudW0gZGNfdm9sdGFnZV9zd2luZyBWT0xUQUdF
X1NXSU5HOwoxNDQ3NDogIGVudW0gZGNfcHJlX2VtcGhhc2lzIFBSRV9FTVBIQVNJUzsKMTQ0NzQ6
ICBlbnVtIGRjX3Bvc3RfY3Vyc29yMiBQT1NUX0NVUlNPUjI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGNfbGlua190cmFpbmluZ19zZXR0aW5ncyB7CjE0NDc0OiAgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgbGluazsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGFuZV9zZXR0aW5ncyBsYW5l
X3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyB7CjE0NDc0OiAgZW51bSBkY192b2x0YWdl
X3N3aW5nICp2b2x0YWdlX3N3aW5nOwoxNDQ3NDogIGVudW0gZGNfcHJlX2VtcGhhc2lzICpwcmVf
ZW1waGFzaXM7CjE0NDc0OiAgZW51bSBkY19wb3N0X2N1cnNvcjIgKnBvc3RfY3Vyc29yMjsKMTQ0
NzQ6IAoxNDQ3NDogIHVpbnQxNl90ICpjcl9wYXR0ZXJuX3RpbWU7CjE0NDc0OiAgdWludDE2X3Qg
KmVxX3BhdHRlcm5fdGltZTsKMTQ0NzQ6ICBlbnVtIGRjX2RwX3RyYWluaW5nX3BhdHRlcm4gKnBh
dHRlcm5fZm9yX2VxOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19saW5rX3NwcmVhZCAqZG93bnNw
cmVhZDsKMTQ0NzQ6ICBib29sICphbHRlcm5hdGVfc2NyYW1ibGVyX3Jlc2V0OwoxNDQ3NDogIGJv
b2wgKmVuaGFuY2VkX2ZyYW1pbmc7CjE0NDc0OiAgYm9vbCAqbXN0X2VuYWJsZTsKMTQ0NzQ6ICBi
b29sICpmZWNfZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHBjZF9yZXYg
ewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgTUlOT1I6NDsKMTQ0NzQ6ICAgdWlu
dDhfdCBNQUpPUjo0OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIG1heF9sYW5lX2NvdW50IHsKMTQ0NzQ6ICBzdHJ1Y3Qg
ewoxNDQ3NDogICB1aW50OF90IE1BWF9MQU5FX0NPVU5UOjU7CjE0NDc0OiAgIHVpbnQ4X3QgUE9T
VF9MVF9BREpfUkVRX1NVUFBPUlRFRDoxOwoxNDQ3NDogICB1aW50OF90IFRQUzNfU1VQUE9SVEVE
OjE7CjE0NDc0OiAgIHVpbnQ4X3QgRU5IQU5DRURfRlJBTUVfQ0FQOjE7CjE0NDc0OiAgfSBiaXRz
OwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbWF4
X2Rvd25fc3ByZWFkIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IE1BWF9ET1dO
X1NQUkVBRDoxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjU7CjE0NDc0OiAgIHVpbnQ4X3Qg
Tk9fQVVYX0hBTkRTSEFLRV9MSU5LX1RSQUlOSU5HOjE7CjE0NDc0OiAgIHVpbnQ4X3QgVFBTNF9T
VVBQT1JURUQ6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBtc3RtX2NhcCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdWludDhfdCBNU1RfQ0FQOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NzsKMTQ0NzQ6
ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1
bmlvbiBsYW5lX2NvdW50X3NldCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBM
QU5FX0NPVU5UX1NFVDo1OwoxNDQ3NDogICB1aW50OF90IFBPU1RfTFRfQURKX1JFUV9HUkFOVEVE
OjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6MTsKMTQ0NzQ6ICAgdWludDhfdCBFTkhBTkNF
RF9GUkFNSU5HOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbGFuZV9zdGF0dXMgewoxNDQ3NDogIHN0cnVjdCB7CjE0
NDc0OiAgIHVpbnQ4X3QgQ1JfRE9ORV8wOjE7CjE0NDc0OiAgIHVpbnQ4X3QgQ0hBTk5FTF9FUV9E
T05FXzA6MTsKMTQ0NzQ6ICAgdWludDhfdCBTWU1CT0xfTE9DS0VEXzA6MTsKMTQ0NzQ6ICAgdWlu
dDhfdCBSRVNFUlZFRDA6MTsKMTQ0NzQ6ICAgdWludDhfdCBDUl9ET05FXzE6MTsKMTQ0NzQ6ICAg
dWludDhfdCBDSEFOTkVMX0VRX0RPTkVfMToxOwoxNDQ3NDogICB1aW50OF90IFNZTUJPTF9MT0NL
RURfMToxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEXzE6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0
NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkZXZpY2Vf
c2VydmljZV9pcnEgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgUkVNT1RFX0NP
TlRST0xfQ01EX1BFTkRJTkc6MTsKMTQ0NzQ6ICAgdWludDhfdCBBVVRPTUFURURfVEVTVDoxOwox
NDQ3NDogICB1aW50OF90IENQX0lSUToxOwoxNDQ3NDogICB1aW50OF90IE1DQ1NfSVJROjE7CjE0
NDc0OiAgIHVpbnQ4X3QgRE9XTl9SRVBfTVNHX1JEWToxOwoxNDQ3NDogICB1aW50OF90IFVQX1JF
UV9NU0dfUkRZOjE7CjE0NDc0OiAgIHVpbnQ4X3QgU0lOS19TUEVDSUZJQzoxOwoxNDQ3NDogICB1
aW50OF90IHJlc2VydmVkOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gc2lua19jb3VudCB7CjE0NDc0OiAgc3RydWN0
IHsKMTQ0NzQ6ICAgdWludDhfdCBTSU5LX0NPVU5UOjY7CjE0NDc0OiAgIHVpbnQ4X3QgQ1BSRUFE
WToxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDog
IHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbGFuZV9hbGlnbl9z
dGF0dXNfdXBkYXRlZCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBJTlRFUkxB
TkVfQUxJR05fRE9ORToxOwoxNDQ3NDogICB1aW50OF90IFBPU1RfTFRfQURKX1JFUV9JTl9QUk9H
UkVTUzoxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjQ7CjE0NDc0OiAgIHVpbnQ4X3QgRE9X
TlNUUkVBTV9QT1JUX1NUQVRVU19DSEFOR0VEOjE7CjE0NDc0OiAgIHVpbnQ4X3QgTElOS19TVEFU
VVNfVVBEQVRFRDoxOwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGxhbmVfYWRqdXN0IHsKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICB1aW50OF90IFZPTFRBR0VfU1dJTkdfTEFORToyOwoxNDQ3NDogICB1aW50OF90IFBS
RV9FTVBIQVNJU19MQU5FOjI7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NDsKMTQ0NzQ6ICB9
IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlv
biBkcGNkX3RyYWluaW5nX3BhdHRlcm4gewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4
X3QgVFJBSU5JTkdfUEFUVEVSTl9TRVQ6NDsKMTQ0NzQ6ICAgdWludDhfdCBSRUNPVkVSRURfQ0xP
Q0tfT1VUX0VOOjE7CjE0NDc0OiAgIHVpbnQ4X3QgU0NSQU1CTElOR19ESVNBQkxFOjE7CjE0NDc0
OiAgIHVpbnQ4X3QgU1lNQk9MX0VSUk9SX0NPVU5UX1NFTDoyOwoxNDQ3NDogIH0gdjFfNDsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFRSQUlOSU5HX1BBVFRFUk5fU0VUOjI7CjE0
NDc0OiAgIHVpbnQ4X3QgTElOS19RVUFMX1BBVFRFUk5fU0VUOjI7CjE0NDc0OiAgIHVpbnQ4X3Qg
UkVTRVJWRUQ6NDsKMTQ0NzQ6ICB9IHYxXzM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcGNkX3RyYWlu
aW5nX2xhbmUgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgVk9MVEFHRV9TV0lO
R19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhfU1dJTkdfUkVBQ0hFRDoxOwoxNDQ3NDogICB1
aW50OF90IFBSRV9FTVBIQVNJU19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhfUFJFX0VNUEhB
U0lTX1JFQUNIRUQ6MTsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDoyOwoxNDQ3NDogIH0gYml0
czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
dW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlMCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdWludDhfdCBEV05fU1RSTV9QT1JUWF9UWVBFOjM7CjE0NDc0OiAgIHVpbnQ4X3QgRFdOX1NU
Uk1fUE9SVFhfSFBEOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRVJEOjQ7CjE0NDc0OiAgfSBi
aXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIGRwY2RfZG93bnN0cmVhbV9wb3J0X2RldGFpbGVkX3R5cGUgewoxNDQ3NDogIERPV05f
U1RSRUFNX0RFVEFJTEVEX0RQID0gMCwKMTQ0NzQ6ICBET1dOX1NUUkVBTV9ERVRBSUxFRF9WR0Es
CjE0NDc0OiAgRE9XTl9TVFJFQU1fREVUQUlMRURfRFZJLAoxNDQ3NDogIERPV05fU1RSRUFNX0RF
VEFJTEVEX0hETUksCjE0NDc0OiAgRE9XTl9TVFJFQU1fREVUQUlMRURfTk9ORERDLAoxNDQ3NDog
IERPV05fU1RSRUFNX0RFVEFJTEVEX0RQX1BMVVNfUExVUwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogdW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlMiB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0
NzQ6ICAgdWludDhfdCBNQVhfQklUU19QRVJfQ09MT1JfQ09NUE9ORU5UOjI7CjE0NDc0OiAgIHVp
bnQ4X3QgUkVTRVJWRUQ6NjsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcF9kb3duc3RyZWFtX3BvcnRfcHJlc2VudCB7
CjE0NDc0OiAgdWludDhfdCBieXRlOwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3Qg
UE9SVF9QUkVTRU5UOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUE9SVF9UWVBFOjI7CjE0NDc0OiAgIHVp
bnQ4X3QgRk1UX0NPTlZFUlNJT046MTsKMTQ0NzQ6ICAgdWludDhfdCBERVRBSUxFRF9DQVBTOjE7
CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6MzsKMTQ0NzQ6ICB9IGZpZWxkczsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNfYnl0ZTNfZHZpIHsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEMToxOwoxNDQ3NDogICB1aW50
OF90IERVQUxfTElOSzoxOwoxNDQ3NDogICB1aW50OF90IEhJR0hfQ09MT1JfREVQVEg6MTsKMTQ0
NzQ6ICAgdWludDhfdCBSRVNFUlZFRDI6NTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhf
dCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBz
X2J5dGUzX2hkbWkgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgRlJBTUVfU0VR
X1RPX0ZSQU1FX1BBQ0s6MTsKMTQ0NzQ6ICAgdWludDhfdCBZQ3JDcjQyMl9QQVNTX1RIUk9VR0g6
MTsKMTQ0NzQ6ICAgdWludDhfdCBZQ3JDcjQyMF9QQVNTX1RIUk9VR0g6MTsKMTQ0NzQ6ICAgdWlu
dDhfdCBZQ3JDcjQyMl9DT05WRVJTSU9OOjE7CjE0NDc0OiAgIHVpbnQ4X3QgWUNyQ3I0MjBfQ09O
VkVSU0lPTjoxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEOjM7CjE0NDc0OiAgfSBiaXRzOwox
NDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHVuaW9uIGR3bnN0cmVhbV9wb3J0eGNhcHMgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAg
IHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNfYnl0ZTAgYnl0ZTA7CjE0NDc0OiAgIHVuc2lnbmVk
IGNoYXIgbWF4X1RNRFNfY2xvY2s7CjE0NDc0OiAgIHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNf
Ynl0ZTIgYnl0ZTI7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5pb24gewoxNDQ3NDogICAgdW5pb24gZHdu
c3RyZWFtX3BvcnRfY2Fwc19ieXRlM19kdmkgYnl0ZURWSTsKMTQ0NzQ6ICAgIHVuaW9uIGR3bnN0
cmVhbV9wb3J0X2NhcHNfYnl0ZTNfaGRtaSBieXRlSERNSTsKMTQ0NzQ6ICAgfSBieXRlMzsKMTQ0
NzQ6ICB9IGJ5dGVzOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgY2hhciByYXdbNF07CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkb3duc3RyZWFtX3BvcnQgewoxNDQ3NDogIHN0cnVj
dCB7CjE0NDc0OiAgIHVuc2lnbmVkIGNoYXIgcHJlc2VudDoxOwoxNDQ3NDogICB1bnNpZ25lZCBj
aGFyIHR5cGU6MjsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBmb3JtYXRfY29udjoxOwoxNDQ3NDog
ICB1bnNpZ25lZCBjaGFyIGRldGFpbGVkX2NhcHM6MTsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBy
ZXNlcnZlZDozOwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHJhdzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gc2lua19zdGF0dXMgewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgUlhfUE9SVDBfU1RBVFVTOjE7CjE0NDc0OiAgIHVp
bnQ4X3QgUlhfUE9SVDFfU1RBVFVTOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NjsKMTQ0
NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gaHBkX2lycV9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICB1bmlvbiBzaW5rX2NvdW50IHNpbmtfY250OwoxNDQ3NDogICB1bmlvbiBkZXZpY2Vf
c2VydmljZV9pcnEgZGV2aWNlX3NlcnZpY2VfaXJxOwoxNDQ3NDogICB1bmlvbiBsYW5lX3N0YXR1
cyBsYW5lMDFfc3RhdHVzOwoxNDQ3NDogICB1bmlvbiBsYW5lX3N0YXR1cyBsYW5lMjNfc3RhdHVz
OwoxNDQ3NDogICB1bmlvbiBsYW5lX2FsaWduX3N0YXR1c191cGRhdGVkIGxhbmVfc3RhdHVzX3Vw
ZGF0ZWQ7CjE0NDc0OiAgIHVuaW9uIHNpbmtfc3RhdHVzIHNpbmtfc3RhdHVzOwoxNDQ3NDogIH0g
Ynl0ZXM7CjE0NDc0OiAgdWludDhfdCByYXdbNl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1
bmlvbiBkb3duX3N0cmVhbV9wb3J0X2NvdW50IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1
aW50OF90IERPV05fU1RSX1BPUlRfQ09VTlQ6NDsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDoy
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgSUdOT1JF
X01TQV9USU1JTkdfUEFSQU06MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50OF90IE9VSV9TVVBQT1JUOjE7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4
X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZG93bl9zcHJlYWRfY3RybCB7
CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDE6NDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFNQUkVBRF9BTVA6MTsKMTQ0
NzQ6ICAgdWludDhfdCBSRVNFUlZFRDI6MjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICAgdWludDhfdCBJR05PUkVfTVNBX1RJTUlOR19QQVJBTToxOwoxNDQ3NDogIH0gYml0czsKMTQ0
NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGRwY2RfZWRw
X2NvbmZpZyB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBQQU5FTF9NT0RFX0VE
UDoxOwoxNDQ3NDogICB1aW50OF90IEZSQU1JTkdfQ0hBTkdFX0VOQUJMRToxOwoxNDQ3NDogICB1
aW50OF90IFJFU0VSVkVEOjU7CjE0NDc0OiAgIHVpbnQ4X3QgUEFORUxfU0VMRl9URVNUX0VOQUJM
RToxOwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkcF9kZXZpY2VfdmVuZG9yX2lkIHsKMTQ0NzQ6ICB1aW50OF90IGll
ZWVfb3VpWzNdOwoxNDQ3NDogIHVpbnQ4X3QgaWVlZV9kZXZpY2VfaWRbNl07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBfc2lua19od19md19yZXZpc2lvbiB7CjE0NDc0OiAgdWlu
dDhfdCBpZWVlX2h3X3JldjsKMTQ0NzQ6ICB1aW50OF90IGllZWVfZndfcmV2WzJdOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBlZHBfY29uZmlndXJhdGlvbl9jYXAgewox
NDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgQUxUX1NDUkFNQkxFUl9SRVNFVDoxOwox
NDQ3NDogICB1aW50OF90IEZSQU1JTkdfQ0hBTkdFOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJW
RUQ6MTsKMTQ0NzQ6ICAgdWludDhfdCBEUENEX0RJU1BMQVlfQ09OVFJPTF9DQVBBQkxFOjE7CjE0
NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQyOjQ7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVpbnQ4
X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHByeF9mZWF0dXJlIHsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IEdUQ19DQVA6MTsKMTQ0NzQ6ICAgdWludDhf
dCBTU1RfU1BMSVRfU0RQX0NBUDoxOwoxNDQ3NDogICB1aW50OF90IEFWX1NZTkNfQ0FQOjE7CjE0
NDc0OiAgIHVpbnQ4X3QgVlNDX1NEUF9DT0xPUklNRVRSWV9TVVBQT1JURUQ6MTsKMTQ0NzQ6ICAg
dWludDhfdCBWU0NfRVhUX1ZFU0FfU0RQX1NVUFBPUlRFRDoxOwoxNDQ3NDogICB1aW50OF90IFZT
Q19FWFRfVkVTQV9TRFBfQ0hBSU5JTkdfU1VQUE9SVEVEOjE7CjE0NDc0OiAgIHVpbnQ4X3QgVlND
X0VYVF9DRUFfU0RQX1NVUFBPUlRFRDoxOwoxNDQ3NDogICB1aW50OF90IFZTQ19FWFRfQ0VBX1NE
UF9DSEFJTklOR19TVVBQT1JURUQ6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCBy
YXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiB0cmFpbmluZ19hdXhfcmRfaW50ZXJ2
YWwgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgVFJBSU5JR19BVVhfUkRfSU5U
RVJWQUw6NzsKMTQ0NzQ6ICAgdWludDhfdCBFWFRfUkVDRUlWRVJfQ0FQX0ZJRUxEX1BSRVNFTlQ6
MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIHRlc3RfcmVxdWVzdCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0
NzQ6ICB1aW50OF90IExJTktfVFJBSU5JTkcgOjE7CjE0NDc0OiAgdWludDhfdCBMSU5LX1RFU1Rf
UEFUVFJOIDoxOwoxNDQ3NDogIHVpbnQ4X3QgRURJRF9SRUFEIDoxOwoxNDQ3NDogIHVpbnQ4X3Qg
UEhZX1RFU1RfUEFUVEVSTiA6MTsKMTQ0NzQ6ICB1aW50OF90IFJFU0VSVkVEIDoxOwoxNDQ3NDog
IHVpbnQ4X3QgQVVESU9fVEVTVF9QQVRURVJOIDoxOwoxNDQ3NDogIHVpbnQ4X3QgVEVTVF9BVURJ
T19ESVNBQkxFRF9WSURFTyA6MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiB0ZXN0X3Jlc3BvbnNlIHsKMTQ0NzQ6ICBz
dHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IEFDSyA6MTsKMTQ0NzQ6ICAgdWludDhfdCBOT19BQ0sg
OjE7CjE0NDc0OiAgIHVpbnQ4X3QgRURJRF9DSEVDS1NVTV9XUklURToxOwoxNDQ3NDogICB1aW50
OF90IFJFU0VSVkVEIDo1OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIHBoeV90ZXN0X3BhdHRlcm4gewoxNDQ3NDogIHN0
cnVjdCB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgUEFUVEVSTiA6
MzsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEIDo1OwoxNDQ3NDogIH0gYml0czsK
MTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5p
b24gY29tcGxpYW5jZV90ZXN0X3N0YXRlIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNp
Z25lZCBjaGFyIFNURVJFT18zRF9SVU5OSU5HIDogMTsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBS
RVNFUlZFRCA6IDc7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmF3Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gbGlua190ZXN0X3BhdHRlcm4gewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBQQVRURVJOIDoyOwoxNDQ3
NDogICB1bnNpZ25lZCBjaGFyIFJFU0VSVkVEOjY7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVu
c2lnbmVkIGNoYXIgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gdGVzdF9taXNj
IHsKMTQ0NzQ6ICBzdHJ1Y3QgZHBjZF90ZXN0X21pc2NfYml0cyB7CjE0NDc0OiAgIHVuc2lnbmVk
IGNoYXIgU1lOQ19DTE9DSyA6MTsKMTQ0NzQ6IAoxNDQ3NDogICB1bnNpZ25lZCBjaGFyIENMUl9G
T1JNQVQgOjI7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBEWU5fUkFOR0UgOjE7CjE0
NDc0OiAgIHVuc2lnbmVkIGNoYXIgWUNCQ1JfQ09FRlMgOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5z
aWduZWQgY2hhciBCUEMgOjM7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIg
cmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gYXVkaW9fdGVzdF9tb2RlIHsKMTQ0
NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBjaGFyIHNhbXBsaW5nX3JhdGUgOjQ7CjE0
NDc0OiAgIHVuc2lnbmVkIGNoYXIgY2hhbm5lbF9jb3VudCA6NDsKMTQ0NzQ6ICB9IGJpdHM7CjE0
NDc0OiAgdW5zaWduZWQgY2hhciByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBh
dWRpb190ZXN0X3BhdHRlcm5fcGVyaW9kIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNp
Z25lZCBjaGFyIHBhdHRlcm5fcGVyaW9kIDo0OwoxNDQ3NDogICB1bnNpZ25lZCBjaGFyIHJlc2Vy
dmVkIDo0OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIHJhdzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb190ZXN0X3BhdHRlcm5fdHlwZSB7CjE0NDc0
OiAgdW5zaWduZWQgY2hhciB2YWx1ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
cF9hdWRpb190ZXN0X2RhdGFfZmxhZ3MgewoxNDQ3NDogIHVpbnQ4X3QgdGVzdF9yZXF1ZXN0ZWQg
OjE7CjE0NDc0OiAgdWludDhfdCBkaXNhYmxlX3ZpZGVvIDoxOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YSB7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
ZHBfYXVkaW9fdGVzdF9kYXRhX2ZsYWdzIGZsYWdzOwoxNDQ3NDogIHVpbnQ4X3Qgc2FtcGxpbmdf
cmF0ZTsKMTQ0NzQ6ICB1aW50OF90IGNoYW5uZWxfY291bnQ7CjE0NDc0OiAgdWludDhfdCBwYXR0
ZXJuX3R5cGU7CjE0NDc0OiAgdWludDhfdCBwYXR0ZXJuX3BlcmlvZFs4XTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHBjZF9mZWNfY2FwYWJpbGl0eSB7CjE0NDc0OiAg
c3RydWN0IHsKMTQ0NzQ6ICAgdWludDhfdCBGRUNfQ0FQQUJMRToxOwoxNDQ3NDogICB1aW50OF90
IFVOQ09SUkVDVEVEX0JMT0NLX0VSUk9SX0NPVU5UX0NBUEFCTEU6MTsKMTQ0NzQ6ICAgdWludDhf
dCBDT1JSRUNURURfQkxPQ0tfRVJST1JfQ09VTlRfQ0FQQUJMRToxOwoxNDQ3NDogICB1aW50OF90
IEJJVF9FUlJPUl9DT1VOVF9DQVBBQkxFOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkVTRVJWRUQ6NDsK
MTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2RzY19zdXBwb3J0IHsKMTQ0NzQ6ICB1aW50OF90IERT
Q19TVVBQT1JUIDoxOwoxNDQ3NDogIHVpbnQ4X3QgRFNDX1BBU1NUSFJPVUdIX1NVUFBPUlQgOjE7
CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6NjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkcGNkX2RzY19hbGdvcml0aG1fcmV2aXNpb24gewoxNDQ3NDogIHVpbnQ4X3QgRFNDX1ZF
UlNJT05fTUFKT1IgOjQ7CjE0NDc0OiAgdWludDhfdCBEU0NfVkVSU0lPTl9NSU5PUiA6NDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6
ZSB7CjE0NDc0OiAgdWludDhfdCBSQ19CTE9DS19CVUZGRVJfU0laRSA6MjsKMTQ0NzQ6ICB1aW50
OF90IFJFU0VSVkVEIDo2OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfZHNj
X3NsaWNlX2NhcGFiaWxpdHkxIHsKMTQ0NzQ6ICB1aW50OF90IE9ORV9TTElDRV9QRVJfRFBfRFND
X1NJTktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3QgVFdPX1NMSUNFU19QRVJfRFBfRFNDX1NJ
TktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3QgUkVTRVJWRUQgOjE7CjE0NDc0OiAgdWludDhf
dCBGT1VSX1NMSUNFU19QRVJfRFBfRFNDX1NJTktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3Qg
U0lYX1NMSUNFU19QRVJfRFBfRFNDX1NJTktfREVWSUNFIDoxOwoxNDQ3NDogIHVpbnQ4X3QgRUlH
SFRfU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiAgdWludDhfdCBURU5f
U0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiAgdWludDhfdCBUV0VMVkVf
U0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHBjZF9kc2NfbGluZV9idWZmZXJfYml0X2RlcHRoIHsKMTQ0NzQ6ICB1aW50OF90
IExJTkVfQlVGRkVSX0JJVF9ERVBUSCA6NDsKMTQ0NzQ6ICB1aW50OF90IFJFU0VSVkVEIDo0Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfZHNjX2Jsb2NrX3ByZWRpY3Rpb25f
c3VwcG9ydCB7CjE0NDc0OiAgdWludDhfdCBCTE9DS19QUkVESUNUSU9OX1NVUFBPUlQ6MTsKMTQ0
NzQ6ICB1aW50OF90IFJFU0VSVkVEIDo3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRwY2RfbWF4aW11bV9iaXRzX3Blcl9waXhlbF9zdXBwb3J0ZWRfYnlfdGhlX2RlY29tcHJlc3Nv
ciB7CjE0NDc0OiAgdWludDhfdCBNQVhJTVVNX0JJVFNfUEVSX1BJWEVMX1NVUFBPUlRFRF9CWV9U
SEVfREVDT01QUkVTU09SX0xPVyA6NzsKMTQ0NzQ6ICB1aW50OF90IE1BWElNVU1fQklUU19QRVJf
UElYRUxfU1VQUE9SVEVEX0JZX1RIRV9ERUNPTVBSRVNTT1JfSElHSCA6NzsKMTQ0NzQ6ICB1aW50
OF90IFJFU0VSVkVEIDoyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfZHNj
X2RlY29kZXJfY29sb3JfZm9ybWF0X2NhcGFiaWxpdGllcyB7CjE0NDc0OiAgdWludDhfdCBSR0Jf
U1VQUE9SVCA6MTsKMTQ0NzQ6ICB1aW50OF90IFlfQ0JfQ1JfNDQ0X1NVUFBPUlQgOjE7CjE0NDc0
OiAgdWludDhfdCBZX0NCX0NSX1NJTVBMRV80MjJfU1VQUE9SVCA6MTsKMTQ0NzQ6ICB1aW50OF90
IFlfQ0JfQ1JfTkFUSVZFXzQyMl9TVVBQT1JUIDoxOwoxNDQ3NDogIHVpbnQ4X3QgWV9DQl9DUl9O
QVRJVkVfNDIwX1NVUFBPUlQgOjE7CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6MzsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2RzY19kZWNvZGVyX2NvbG9yX2RlcHRoX2Nh
cGFiaWxpdGllcyB7CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRDAgOjE7CjE0NDc0OiAgdWludDhf
dCBFSUdIVF9CSVRTX1BFUl9DT0xPUl9TVVBQT1JUIDoxOwoxNDQ3NDogIHVpbnQ4X3QgVEVOX0JJ
VFNfUEVSX0NPTE9SX1NVUFBPUlQgOjE7CjE0NDc0OiAgdWludDhfdCBUV0VMVkVfQklUU19QRVJf
Q09MT1JfU1VQUE9SVCA6MTsKMTQ0NzQ6ICB1aW50OF90IFJFU0VSVkVEMSA6NDsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX3BlYWtfZHNjX3Rocm91Z2hwdXRfZHNjX3Npbmsg
ewoxNDQ3NDogIHVpbnQ4X3QgVEhST1VHSFBVVF9NT0RFXzA6NDsKMTQ0NzQ6ICB1aW50OF90IFRI
Uk9VR0hQVVRfTU9ERV8xOjQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBjZF9k
c2Nfc2xpY2VfY2FwYWJpbGl0aWVzXzIgewoxNDQ3NDogIHVpbnQ4X3QgU0lYVEVFTl9TTElDRVNf
UEVSX0RTQ19TSU5LX0RFVklDRSA6MTsKMTQ0NzQ6ICB1aW50OF90IFRXRU5UWV9TTElDRVNfUEVS
X0RTQ19TSU5LX0RFVklDRSA6MTsKMTQ0NzQ6ICB1aW50OF90IFRXRU5UWUZPVVJfU0xJQ0VTX1BF
Ul9EU0NfU0lOS19ERVZJQ0UgOjE7CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6NTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcGNkX2JpdHNfcGVyX3BpeGVsX2luY3JlbWVudHsK
MTQ0NzQ6ICB1aW50OF90IElOQ1JFTUVOVF9PRl9CSVRTX1BFUl9QSVhFTF9TVVBQT1JURUQgOjM7
CjE0NDc0OiAgdWludDhfdCBSRVNFUlZFRCA6NTsKMTQ0NzQ6IH07CjE0NDc0OiB1bmlvbiBkcGNk
X2RzY19iYXNpY19jYXBhYmlsaXRpZXMgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHN0cnVj
dCBkcGNkX2RzY19zdXBwb3J0IGRzY19zdXBwb3J0OwoxNDQ3NDogICBzdHJ1Y3QgZHBjZF9kc2Nf
YWxnb3JpdGhtX3JldmlzaW9uIGRzY19hbGdvcml0aG1fcmV2aXNpb247CjE0NDc0OiAgIHN0cnVj
dCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6ZSBkc2NfcmNfYnVmZmVyX2Jsb2NrX3NpemU7
CjE0NDc0OiAgIHVpbnQ4X3QgZHNjX3JjX2J1ZmZlcl9zaXplOwoxNDQ3NDogICBzdHJ1Y3QgZHBj
ZF9kc2Nfc2xpY2VfY2FwYWJpbGl0eTEgZHNjX3NsaWNlX2NhcGFiaWxpdGllc18xOwoxNDQ3NDog
ICBzdHJ1Y3QgZHBjZF9kc2NfbGluZV9idWZmZXJfYml0X2RlcHRoIGRzY19saW5lX2J1ZmZlcl9i
aXRfZGVwdGg7CjE0NDc0OiAgIHN0cnVjdCBkcGNkX2RzY19ibG9ja19wcmVkaWN0aW9uX3N1cHBv
cnQgZHNjX2Jsb2NrX3ByZWRpY3Rpb25fc3VwcG9ydDsKMTQ0NzQ6ICAgc3RydWN0IGRwY2RfbWF4
aW11bV9iaXRzX3Blcl9waXhlbF9zdXBwb3J0ZWRfYnlfdGhlX2RlY29tcHJlc3NvciBtYXhpbXVt
X2JpdHNfcGVyX3BpeGVsX3N1cHBvcnRlZF9ieV90aGVfZGVjb21wcmVzc29yOwoxNDQ3NDogICBz
dHJ1Y3QgZHBjZF9kc2NfZGVjb2Rlcl9jb2xvcl9mb3JtYXRfY2FwYWJpbGl0aWVzIGRzY19kZWNv
ZGVyX2NvbG9yX2Zvcm1hdF9jYXBhYmlsaXRpZXM7CjE0NDc0OiAgIHN0cnVjdCBkcGNkX2RzY19k
ZWNvZGVyX2NvbG9yX2RlcHRoX2NhcGFiaWxpdGllcyBkc2NfZGVjb2Rlcl9jb2xvcl9kZXB0aF9j
YXBhYmlsaXRpZXM7CjE0NDc0OiAgIHN0cnVjdCBkcGNkX3BlYWtfZHNjX3Rocm91Z2hwdXRfZHNj
X3NpbmsgcGVha19kc2NfdGhyb3VnaHB1dF9kc2Nfc2luazsKMTQ0NzQ6ICAgdWludDhfdCBkc2Nf
bWF4aW11bV9zbGljZV93aWR0aDsKMTQ0NzQ6ICAgc3RydWN0IGRwY2RfZHNjX3NsaWNlX2NhcGFi
aWxpdGllc18yIGRzY19zbGljZV9jYXBhYmlsaXRpZXNfMjsKMTQ0NzQ6ICAgdWludDhfdCByZXNl
cnZlZDsKMTQ0NzQ6ICAgc3RydWN0IGRwY2RfYml0c19wZXJfcGl4ZWxfaW5jcmVtZW50IGJpdHNf
cGVyX3BpeGVsX2luY3JlbWVudDsKMTQ0NzQ6ICB9IGZpZWxkczsKMTQ0NzQ6ICB1aW50OF90IHJh
d1sxNl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcGNkX2RzY19leHRfY2FwYWJp
bGl0aWVzIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IEJSQU5DSF9PVkVSQUxM
X1RIUk9VR0hQVVRfMDsKMTQ0NzQ6ICAgdWludDhfdCBCUkFOQ0hfT1ZFUkFMTF9USFJPVUdIUFVU
XzE7CjE0NDc0OiAgIHVpbnQ4X3QgQlJBTkNIX01BWF9MSU5FX1dJRFRIOwoxNDQ3NDogIH0gZmll
bGRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3WzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRwY2RfZHNjX2NhcGFiaWxpdGllcyB7CjE0NDc0OiAgdW5pb24gZHBjZF9kc2NfYmFzaWNf
Y2FwYWJpbGl0aWVzIGRzY19iYXNpY19jYXBzOwoxNDQ3NDogIHVuaW9uIGRwY2RfZHNjX2V4dF9j
YXBhYmlsaXRpZXMgZHNjX2V4dF9jYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzYgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCjE0NDc0OiAj
IDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19od190eXBl
cy5oIiAxCjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvZGNfaHdfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzQgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL3NpZ25hbF90eXBl
cy5oIgoxNDQ3NDogZW51bSBzaWduYWxfdHlwZSB7CjE0NDc0OiAgU0lHTkFMX1RZUEVfTk9ORSA9
IDBMLAoxNDQ3NDogIFNJR05BTF9UWVBFX0RWSV9TSU5HTEVfTElOSyA9ICgxIDw8IDApLAoxNDQ3
NDogIFNJR05BTF9UWVBFX0RWSV9EVUFMX0xJTksgPSAoMSA8PCAxKSwKMTQ0NzQ6ICBTSUdOQUxf
VFlQRV9IRE1JX1RZUEVfQSA9ICgxIDw8IDIpLAoxNDQ3NDogIFNJR05BTF9UWVBFX0xWRFMgPSAo
MSA8PCAzKSwKMTQ0NzQ6ICBTSUdOQUxfVFlQRV9SR0IgPSAoMSA8PCA0KSwKMTQ0NzQ6ICBTSUdO
QUxfVFlQRV9ESVNQTEFZX1BPUlQgPSAoMSA8PCA1KSwKMTQ0NzQ6ICBTSUdOQUxfVFlQRV9ESVNQ
TEFZX1BPUlRfTVNUID0gKDEgPDwgNiksCjE0NDc0OiAgU0lHTkFMX1RZUEVfRURQID0gKDEgPDwg
NyksCjE0NDc0OiAgU0lHTkFMX1RZUEVfVklSVFVBTCA9ICgxIDw8IDkpLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2hkbWlfdG1kc19zaWduYWwoZW51bSBzaWdu
YWxfdHlwZSBzaWduYWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0gU0lHTkFM
X1RZUEVfSERNSV9UWVBFX0EpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2hk
bWlfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQoxNDQ3NDogewoxNDQ3NDogIHJldHVy
biAoc2lnbmFsID09IFNJR05BTF9UWVBFX0hETUlfVFlQRV9BKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAox
NDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCBkY19pc19kcF9zc3Rfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX0RJU1BMQVlfUE9S
VCB8fAoxNDQ3NDogICBzaWduYWwgPT0gU0lHTkFMX1RZUEVfRURQKTsKMTQ0NzQ6IH0KMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBkY19pc19kcF9zaWduYWwoZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JU
IHx8CjE0NDc0OiAgIHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9FRFAgfHwKMTQ0NzQ6ICAgc2lnbmFs
ID09IFNJR05BTF9UWVBFX0RJU1BMQVlfUE9SVF9NU1QpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGRjX2lzX2VtYmVkZGVkX3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9FRFAgfHwgc2lnbmFs
ID09IFNJR05BTF9UWVBFX0xWRFMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lz
X2x2ZHNfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQoxNDQ3NDogewoxNDQ3NDogIHJl
dHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX0xWRFMpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIGRjX2lzX2R2aV9zaWduYWwoZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0NDc0OiB7
CjE0NDc0OiAgc3dpdGNoIChzaWduYWwpIHsKMTQ0NzQ6ICBjYXNlIFNJR05BTF9UWVBFX0RWSV9T
SU5HTEVfTElOSzoKMTQ0NzQ6ICBjYXNlIFNJR05BTF9UWVBFX0RWSV9EVUFMX0xJTks6CjE0NDc0
OiAgIHJldHVybiB0cnVlOwoxNDQ3NDogIGJyZWFrOwoxNDQ3NDogIGRlZmF1bHQ6CjE0NDc0OiAg
IHJldHVybiBmYWxzZTsKMTQ0NzQ6ICB9CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGNf
aXNfZHZpX3NpbmdsZV9saW5rX3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKMTQ0NzQ6
IHsKMTQ0NzQ6ICByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTksp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2R1YWxfbGlua19zaWduYWwoZW51
bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0g
U0lHTkFMX1RZUEVfRFZJX0RVQUxfTElOSyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZGNfaXNfYXVkaW9fY2FwYWJsZV9zaWduYWwoZW51bSBzaWduYWxfdHlwZSBzaWduYWwpCjE0NDc0
OiB7CjE0NDc0OiAgcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUIHx8
CjE0NDc0OiAgIHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlRfTVNUIHx8CjE0NDc0
OiAgIGRjX2lzX2hkbWlfc2lnbmFsKHNpZ25hbCkpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIGRjX2lzX3ZpcnR1YWxfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX1ZJUlRVQUwpOwoxNDQ3NDog
fQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RjX2h3X3R5cGVzLmgiIDIKMTQ0NzQ6ICMgNDUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9kY19od190eXBlcy5oIgoxNDQ3NDogdW5pb24gbGFyZ2VfaW50ZWdl
ciB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDMyX3QgbG93X3BhcnQ7CjE0NDc0OiAg
IGludDMyX3QgaGlnaF9wYXJ0OwoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICB1aW50MzJfdCBsb3dfcGFydDsKMTQ0NzQ6ICAgaW50MzJfdCBoaWdoX3BhcnQ7CjE0
NDc0OiAgfSB1OwoxNDQ3NDogCjE0NDc0OiAgaW50NjRfdCBxdWFkX3BhcnQ7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19wbGFuZV9hZGRyX3R5cGUgewox
NDQ3NDogIFBMTl9BRERSX1RZUEVfR1JBUEhJQ1MgPSAwLAoxNDQ3NDogIFBMTl9BRERSX1RZUEVf
R1JQSF9TVEVSRU8sCjE0NDc0OiAgUExOX0FERFJfVFlQRV9WSURFT19QUk9HUkVTU0lWRSwKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIHsKMTQ0NzQ6ICBl
bnVtIGRjX3BsYW5lX2FkZHJfdHlwZSB0eXBlOwoxNDQ3NDogIGJvb2wgdG16X3N1cmZhY2U7CjE0
NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3R7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRl
Z2VyIGFkZHI7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIG1ldGFfYWRkcjsKMTQ0NzQ6
ICAgIHVuaW9uIGxhcmdlX2ludGVnZXIgZGNjX2NvbnN0X2NvbG9yOwoxNDQ3NDogICB9IGdycGg7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdW5pb24gbGFyZ2Vf
aW50ZWdlciBsZWZ0X2FkZHI7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGxlZnRfbWV0
YV9hZGRyOwoxNDQ3NDogICAgdW5pb24gbGFyZ2VfaW50ZWdlciBsZWZ0X2RjY19jb25zdF9jb2xv
cjsKMTQ0NzQ6IAoxNDQ3NDogICAgdW5pb24gbGFyZ2VfaW50ZWdlciByaWdodF9hZGRyOwoxNDQ3
NDogICAgdW5pb24gbGFyZ2VfaW50ZWdlciByaWdodF9tZXRhX2FkZHI7CjE0NDc0OiAgICB1bmlv
biBsYXJnZV9pbnRlZ2VyIHJpZ2h0X2RjY19jb25zdF9jb2xvcjsKMTQ0NzQ6IAoxNDQ3NDogICB9
IGdycGhfc3RlcmVvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAg
IHVuaW9uIGxhcmdlX2ludGVnZXIgbHVtYV9hZGRyOwoxNDQ3NDogICAgdW5pb24gbGFyZ2VfaW50
ZWdlciBsdW1hX21ldGFfYWRkcjsKMTQ0NzQ6ICAgIHVuaW9uIGxhcmdlX2ludGVnZXIgbHVtYV9k
Y2NfY29uc3RfY29sb3I7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVuaW9uIGxhcmdlX2ludGVnZXIgY2hy
b21hX2FkZHI7CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGNocm9tYV9tZXRhX2FkZHI7
CjE0NDc0OiAgICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGNocm9tYV9kY2NfY29uc3RfY29sb3I7CjE0
NDc0OiAgIH0gdmlkZW9fcHJvZ3Jlc3NpdmU7CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDogIHVu
aW9uIGxhcmdlX2ludGVnZXIgcGFnZV90YWJsZV9iYXNlOwoxNDQ3NDogCjE0NDc0OiAgdWludDhf
dCB2bWlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3NpemUgewoxNDQ3NDog
IGludCB3aWR0aDsKMTQ0NzQ6ICBpbnQgaGVpZ2h0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHJlY3QgewoxNDQ3NDogIGludCB4OwoxNDQ3NDogIGludCB5OwoxNDQ3NDogIGludCB3
aWR0aDsKMTQ0NzQ6ICBpbnQgaGVpZ2h0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHBsYW5lX3NpemUgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50
IHN1cmZhY2VfcGl0Y2g7CjE0NDc0OiAgaW50IGNocm9tYV9waXRjaDsKMTQ0NzQ6ICBzdHJ1Y3Qg
cmVjdCBzdXJmYWNlX3NpemU7CjE0NDc0OiAgc3RydWN0IHJlY3QgY2hyb21hX3NpemU7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtIHsKMTQ0NzQ6ICBi
b29sIGVuYWJsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCBtZXRhX3BpdGNoOwoxNDQ3NDogIGJvb2wg
aW5kZXBlbmRlbnRfNjRiX2Jsa3M7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgbWV0YV9waXRjaF9jOwox
NDQ3NDogIGJvb2wgaW5kZXBlbmRlbnRfNjRiX2Jsa3NfYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCB7CjE0NDc0OiAgU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfR1JQSF9CRUdJTiA9IDAsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVM
X0ZPUk1BVF9HUlBIX1BBTEVUQV8yNTZfQ09MT1JTID0KMTQ0NzQ6ICAgU1VSRkFDRV9QSVhFTF9G
T1JNQVRfR1JQSF9CRUdJTiwKMTQ0NzQ6IAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dS
UEhfQVJHQjE1NTUsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JH
QjU2NSwKMTQ0NzQ6IAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjg4ODgs
CjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1I4ODg4LAoxNDQ3
NDogCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BUkdCMjEwMTAxMCwKMTQ0NzQ6
IAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjIxMDEwMTAsCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSMjEw
MTAxMF9YUl9CSUFTLAoxNDQ3NDogCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9B
UkdCMTYxNjE2MTYsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FS
R0IxNjE2MTYxNkYsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FC
R1IxNjE2MTYxNkYsCjE0NDc0OiAKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JH
QjExMTExMF9GSVgsCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9CR1IxMDExMTFf
RklYLAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfUkdCMTExMTEwX0ZMT0FULAox
NDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQkdSMTAxMTExX0ZMT0FULAoxNDQ3NDog
IFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOLAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxf
Rk9STUFUX1ZJREVPXzQyMF9ZQ2JDciA9CjE0NDc0OiAgIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJ
REVPX0JFR0lOLAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVPXzQyMF9ZQ3JDYiwK
MTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT180MjBfMTBicGNfWUNiQ3IsCjE0NDc0
OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fNDIwXzEwYnBjX1lDckNiLAoxNDQ3NDogICBT
VVJGQUNFX1BJWEVMX0ZPUk1BVF9TVUJTQU1QTEVfRU5ELAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxf
Rk9STUFUX1ZJREVPX0FDcllDYjIxMDEwMTAsCjE0NDc0OiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRf
VklERU9fQ3JZQ2JBMTAxMDEwMiwKMTQ0NzQ6ICBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19B
WUNyQ2I4ODg4LAoxNDQ3NDogIFNVUkZBQ0VfUElYRUxfRk9STUFUX0lOVkFMSUQKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
bnVtIHBpeGVsX2Zvcm1hdCB7CjE0NDc0OiAKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfVU5JTklUSUFM
SVpFRCwKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfSU5ERVg4LAoxNDQ3NDogIFBJWEVMX0ZPUk1BVF9S
R0I1NjUsCjE0NDc0OiAgUElYRUxfRk9STUFUX0FSR0I4ODg4LAoxNDQ3NDogIFBJWEVMX0ZPUk1B
VF9BUkdCMjEwMTAxMCwKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfQVJHQjIxMDEwMTBfWFJCSUFTLAox
NDQ3NDogIFBJWEVMX0ZPUk1BVF9GUDE2LAoxNDQ3NDogCjE0NDc0OiAgUElYRUxfRk9STUFUXzQy
MEJQUDgsCjE0NDc0OiAgUElYRUxfRk9STUFUXzQyMEJQUDEwLAoxNDQ3NDogCjE0NDc0OiAgUElY
RUxfRk9STUFUX0lOVkFMSUQsCjE0NDc0OiAKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfR1JQSF9CRUdJ
TiA9IFBJWEVMX0ZPUk1BVF9JTkRFWDgsCjE0NDc0OiAgUElYRUxfRk9STUFUX0dSUEhfRU5EID0g
UElYRUxfRk9STUFUX0ZQMTYsCjE0NDc0OiAgUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOID0gUElY
RUxfRk9STUFUXzQyMEJQUDgsCjE0NDc0OiAgUElYRUxfRk9STUFUX1ZJREVPX0VORCA9IFBJWEVM
X0ZPUk1BVF80MjBCUFAxMCwKMTQ0NzQ6ICBQSVhFTF9GT1JNQVRfVU5LTk9XTgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSB0aWxlX3NwbGl0X3ZhbHVlcyB7CjE0NDc0OiAgRENfRElTUExB
WV9NSUNST19USUxJTkcgPSAweDAsCjE0NDc0OiAgRENfVEhJTl9NSUNST19USUxJTkcgPSAweDEs
CjE0NDc0OiAgRENfREVQVEhfTUlDUk9fVElMSU5HID0gMHgyLAoxNDQ3NDogIERDX1JPVEFURURf
TUlDUk9fVElMSU5HID0gMHgzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB0cmlwbGVC
dWZmZXJfZW5hYmxlIHsKMTQ0NzQ6ICBEQ19UUklQTEVCVUZGRVJfRElTQUJMRSA9IDB4MCwKMTQ0
NzQ6ICBEQ19UUklQTEVCVUZGRVJfRU5BQkxFID0gMHgxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhcnJheV9tb2RlX3ZhbHVlcyB7CjE0NDc0
OiAgRENfQVJSQVlfTElORUFSX0dFTkVSQUwgPSAwLAoxNDQ3NDogIERDX0FSUkFZX0xJTkVBUl9B
TExJR05FRCwKMTQ0NzQ6ICBEQ19BUlJBWV8xRF9USUxFRF9USElOMSwKMTQ0NzQ6ICBEQ19BUlJB
WV8xRF9USUxFRF9USElDSywKMTQ0NzQ6ICBEQ19BUlJBWV8yRF9USUxFRF9USElOMSwKMTQ0NzQ6
ICBEQ19BUlJBWV9QUlRfVElMRURfVEhJTjEsCjE0NDc0OiAgRENfQVJSQVlfUFJUXzJEX1RJTEVE
X1RISU4xLAoxNDQ3NDogIERDX0FSUkFZXzJEX1RJTEVEX1RISUNLLAoxNDQ3NDogIERDX0FSUkFZ
XzJEX1RJTEVEX1hfVEhJQ0ssCjE0NDc0OiAgRENfQVJSQVlfUFJUX1RJTEVEX1RISUNLLAoxNDQ3
NDogIERDX0FSUkFZX1BSVF8yRF9USUxFRF9USElDSywKMTQ0NzQ6ICBEQ19BUlJBWV9QUlRfM0Rf
VElMRURfVEhJTjEsCjE0NDc0OiAgRENfQVJSQVlfM0RfVElMRURfVEhJTjEsCjE0NDc0OiAgRENf
QVJSQVlfM0RfVElMRURfVEhJQ0ssCjE0NDc0OiAgRENfQVJSQVlfM0RfVElMRURfWF9USElDSywK
MTQ0NzQ6ICBEQ19BUlJBWV9QUlRfM0RfVElMRURfVEhJQ0ssCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIHRpbGVfbW9kZV92YWx1ZXMgewoxNDQ3NDogIERDX0FERFJfU1VSRl9NSUNST19U
SUxJTkdfRElTUExBWSA9IDB4MCwKMTQ0NzQ6ICBEQ19BRERSX1NVUkZfTUlDUk9fVElMSU5HX05P
Tl9ESVNQTEFZID0gMHgxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzd2l6emxlX21v
ZGVfdmFsdWVzIHsKMTQ0NzQ6ICBEQ19TV19MSU5FQVIgPSAwLAoxNDQ3NDogIERDX1NXXzI1NkJf
UyA9IDEsCjE0NDc0OiAgRENfU1dfMjU2X0QgPSAyLAoxNDQ3NDogIERDX1NXXzI1Nl9SID0gMywK
MTQ0NzQ6ICBEQ19TV180S0JfUyA9IDUsCjE0NDc0OiAgRENfU1dfNEtCX0QgPSA2LAoxNDQ3NDog
IERDX1NXXzRLQl9SID0gNywKMTQ0NzQ6ICBEQ19TV182NEtCX1MgPSA5LAoxNDQ3NDogIERDX1NX
XzY0S0JfRCA9IDEwLAoxNDQ3NDogIERDX1NXXzY0S0JfUiA9IDExLAoxNDQ3NDogIERDX1NXX1ZB
Ul9TID0gMTMsCjE0NDc0OiAgRENfU1dfVkFSX0QgPSAxNCwKMTQ0NzQ6ICBEQ19TV19WQVJfUiA9
IDE1LAoxNDQ3NDogIERDX1NXXzY0S0JfU19UID0gMTcsCjE0NDc0OiAgRENfU1dfNjRLQl9EX1Qg
PSAxOCwKMTQ0NzQ6ICBEQ19TV180S0JfU19YID0gMjEsCjE0NDc0OiAgRENfU1dfNEtCX0RfWCA9
IDIyLAoxNDQ3NDogIERDX1NXXzRLQl9SX1ggPSAyMywKMTQ0NzQ6ICBEQ19TV182NEtCX1NfWCA9
IDI1LAoxNDQ3NDogIERDX1NXXzY0S0JfRF9YID0gMjYsCjE0NDc0OiAgRENfU1dfNjRLQl9SX1gg
PSAyNywKMTQ0NzQ6ICBEQ19TV19WQVJfU19YID0gMjksCjE0NDc0OiAgRENfU1dfVkFSX0RfWCA9
IDMwLAoxNDQ3NDogIERDX1NXX1ZBUl9SX1ggPSAzMSwKMTQ0NzQ6ICBEQ19TV19NQVggPSAzMiwK
MTQ0NzQ6ICBEQ19TV19VTktOT1dOID0gRENfU1dfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiB1bmlvbiBkY190aWxpbmdfaW5mbyB7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IG51
bV9iYW5rczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
IHVuc2lnbmVkIGludCBiYW5rX3dpZHRoOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgYmFua193aWR0
aF9jOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IGJhbmtfaGVpZ2h0OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgYmFua19oZWlnaHRf
YzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHRpbGVfYXNw
ZWN0OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgdGlsZV9hc3BlY3RfYzsKMTQ0NzQ6ICMgMzE3ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaCIK
MTQ0NzQ6ICAgZW51bSB0aWxlX3NwbGl0X3ZhbHVlcyB0aWxlX3NwbGl0OwoxNDQ3NDogICBlbnVt
IHRpbGVfc3BsaXRfdmFsdWVzIHRpbGVfc3BsaXRfYzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgZW51bSB0aWxlX21vZGVfdmFsdWVzIHRp
bGVfbW9kZTsKMTQ0NzQ6ICAgZW51bSB0aWxlX21vZGVfdmFsdWVzIHRpbGVfbW9kZV9jOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQgaW50
IHBpcGVfY29uZmlnOwoxNDQ3NDogIyAzNDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9kY19od190eXBlcy5oIgoxNDQ3NDogICBlbnVtIGFycmF5X21vZGVfdmFs
dWVzIGFycmF5X21vZGU7CjE0NDc0OiAgfSBnZng4OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsK
MTQ0NzQ6ICAgZW51bSBzd2l6emxlX21vZGVfdmFsdWVzIHN3aXp6bGU7CjE0NDc0OiAgIHVuc2ln
bmVkIGludCBudW1fcGlwZXM7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBtYXhfY29tcHJlc3NlZF9m
cmFnczsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHBpcGVfaW50ZXJsZWF2ZTsKMTQ0NzQ6IAoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgbnVtX2JhbmtzOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3No
YWRlcl9lbmdpbmVzOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3JiX3Blcl9zZTsKMTQ0NzQ6
ICAgYm9vbCBzaGFkZXJFbmFibGU7CjE0NDc0OiAKMTQ0NzQ6ICAgYm9vbCBtZXRhX2xpbmVhcjsK
MTQ0NzQ6ICAgYm9vbCByYl9hbGlnbmVkOwoxNDQ3NDogICBib29sIHBpcGVfYWxpZ25lZDsKMTQ0
NzQ6ICB9IGdmeDk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfcm90
YXRpb25fYW5nbGUgewoxNDQ3NDogIFJPVEFUSU9OX0FOR0xFXzAgPSAwLAoxNDQ3NDogIFJPVEFU
SU9OX0FOR0xFXzkwLAoxNDQ3NDogIFJPVEFUSU9OX0FOR0xFXzE4MCwKMTQ0NzQ6ICBST1RBVElP
Tl9BTkdMRV8yNzAsCjE0NDc0OiAgUk9UQVRJT05fQU5HTEVfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IGVudW0gZGNfc2Nhbl9kaXJlY3Rpb24gewoxNDQ3NDogIFNDQU5fRElSRUNUSU9O
X1VOS05PV04gPSAwLAoxNDQ3NDogIFNDQU5fRElSRUNUSU9OX0hPUklaT05UQUwgPSAxLAoxNDQ3
NDogIFNDQU5fRElSRUNUSU9OX1ZFUlRJQ0FMID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19jdXJzb3JfcG9zaXRpb24gewoxNDQ3NDogIHVpbnQzMl90IHg7CjE0NDc0OiAg
dWludDMyX3QgeTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHhfaG90c3BvdDsKMTQ0NzQ6ICB1
aW50MzJfdCB5X2hvdHNwb3Q7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICBib29sIGVuYWJsZTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2N1cnNvcl9taV9wYXJhbSB7CjE0NDc0OiAgdW5zaWduZWQgaW50IHBpeGVsX2Nsa19raHo7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHJlZl9jbGtfa2h6OwoxNDQ3NDogIHN0cnVjdCByZWN0IHZpZXdw
b3J0OwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGhfc2NhbGVfcmF0aW87CjE0NDc0OiAgc3Ry
dWN0IGZpeGVkMzFfMzIgdl9zY2FsZV9yYXRpbzsKMTQ0NzQ6ICBlbnVtIGRjX3JvdGF0aW9uX2Fu
Z2xlIHJvdGF0aW9uOwoxNDQ3NDogIGJvb2wgbWlycm9yOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIEdBTU1BX1JHQl8yNTZfRU5UUklFUyA9
IDI1NiwKMTQ0NzQ6ICBHQU1NQV9SR0JfRkxPQVRfMTAyNF9FTlRSSUVTID0gMTAyNCwKMTQ0NzQ6
ICBHQU1NQV9DU19URk1fMURfRU5UUklFUyA9IDQwOTYsCjE0NDc0OiAgR0FNTUFfQ1VTVE9NX0VO
VFJJRVMgPSA0MDk2LAoxNDQ3NDogIEdBTU1BX01BWF9FTlRSSUVTID0gNDA5NgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19nYW1tYV90eXBlIHsKMTQ0NzQ6ICBHQU1NQV9SR0JfMjU2
ID0gMSwKMTQ0NzQ6ICBHQU1NQV9SR0JfRkxPQVRfMTAyNCA9IDIsCjE0NDc0OiAgR0FNTUFfQ1Nf
VEZNXzFEID0gMywKMTQ0NzQ6ICBHQU1NQV9DVVNUT00gPSA0LAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gewoxNDQ3NDogIHVpbnQxNl90IG1hdHJpeFsx
Ml07CjE0NDc0OiAgYm9vbCBlbmFibGVfYWRqdXN0bWVudDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY19yZ2JfZml4ZWQgewoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIHJlZDsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBncmVlbjsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8z
MiBibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2dhbW1hIHsKMTQ0NzQ6
ICBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKMTQ0NzQ6ICBlbnVtIGRjX2dhbW1hX3R5cGUgdHlwZTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfZ2FtbWFfZW50cmllcyB7CjE0NDc0OiAgIHN0cnVjdCBmaXhlZDMxXzMyIHJlZFtHQU1NQV9N
QVhfRU5UUklFU107CjE0NDc0OiAgIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuW0dBTU1BX01BWF9F
TlRSSUVTXTsKMTQ0NzQ6ICAgc3RydWN0IGZpeGVkMzFfMzIgYmx1ZVtHQU1NQV9NQVhfRU5UUklF
U107CjE0NDc0OiAgfSBlbnRyaWVzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9v
bCBpc19pZGVudGl0eTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDQ1NiAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCjE0NDc0OiBlbnVtIGRjX2N1
cnNvcl9jb2xvcl9mb3JtYXQgewoxNDQ3NDogIENVUlNPUl9NT0RFX01PTk8sCjE0NDc0OiAgQ1VS
U09SX01PREVfQ09MT1JfMUJJVF9BTkQsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfUFJFX01V
TFRJUExJRURfQUxQSEEsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfVU5fUFJFX01VTFRJUExJ
RURfQUxQSEEsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfNjRCSVRfRlBfUFJFX01VTFRJUExJ
RUQsCjE0NDc0OiAgQ1VSU09SX01PREVfQ09MT1JfNjRCSVRfRlBfVU5fUFJFX01VTFRJUExJRUQK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGRjX2N1cnNvcl9hdHRyaWJ1dGVfZmxhZ3MgewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQzMl90IEVOQUJMRV9NQUdOSUZJQ0FUSU9OOjE7CjE0NDc0
OiAgIHVpbnQzMl90IElOVkVSU0VfVFJBTlNQQVJFTlRfQ0xBTVBJTkc6MTsKMTQ0NzQ6ICAgdWlu
dDMyX3QgSE9SSVpPTlRBTF9NSVJST1I6MTsKMTQ0NzQ6ICAgdWludDMyX3QgVkVSVElDQUxfTUlS
Uk9SOjE7CjE0NDc0OiAgIHVpbnQzMl90IElOVkVSVF9QSVhFTF9EQVRBOjE7CjE0NDc0OiAgIHVp
bnQzMl90IFpFUk9fRVhQQU5TSU9OOjE7CjE0NDc0OiAgIHVpbnQzMl90IE1JTl9NQVhfSU5WRVJU
OjE7CjE0NDc0OiAgIHVpbnQzMl90IEVOQUJMRV9DVVJTT1JfREVHQU1NQToxOwoxNDQ3NDogICB1
aW50MzJfdCBSRVNFUlZFRDoyNDsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDMyX3QgdmFs
dWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMg
ewoxNDQ3NDogIHVuaW9uIGxhcmdlX2ludGVnZXIgYWRkcmVzczsKMTQ0NzQ6ICB1aW50MzJfdCBw
aXRjaDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qgd2lkdGg7CjE0NDc0OiAgdWlu
dDMyX3QgaGVpZ2h0OwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19jdXJzb3JfY29sb3JfZm9ybWF0
IGNvbG9yX2Zvcm1hdDsKMTQ0NzQ6ICB1aW50MzJfdCBzZHJfd2hpdGVfbGV2ZWw7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb25fYW5nbGU7CjE0
NDc0OiAKMTQ0NzQ6ICB1bmlvbiBkY19jdXJzb3JfYXR0cmlidXRlX2ZsYWdzIGF0dHJpYnV0ZV9m
bGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcHBfY3Vyc29yX2F0dHJpYnV0
ZXMgewoxNDQ3NDogIGludCBiaWFzOwoxNDQ3NDogIGludCBzY2FsZTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2NvbG9yX3NwYWNlIHsKMTQ0NzQ6ICBD
T0xPUl9TUEFDRV9VTktOT1dOLAoxNDQ3NDogIENPTE9SX1NQQUNFX1NSR0IsCjE0NDc0OiAgQ09M
T1JfU1BBQ0VfWFJfUkdCLAoxNDQ3NDogIENPTE9SX1NQQUNFX1NSR0JfTElNSVRFRCwKMTQ0NzQ6
ICBDT0xPUl9TUEFDRV9NU1JFRl9TQ1JHQiwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9ZQ0JDUjYwMSwK
MTQ0NzQ6ICBDT0xPUl9TUEFDRV9ZQ0JDUjcwOSwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9YVl9ZQ0Nf
NzA5LAoxNDQ3NDogIENPTE9SX1NQQUNFX1hWX1lDQ182MDEsCjE0NDc0OiAgQ09MT1JfU1BBQ0Vf
WUNCQ1I2MDFfTElNSVRFRCwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9ZQ0JDUjcwOV9MSU1JVEVELAox
NDQ3NDogIENPTE9SX1NQQUNFXzIwMjBfUkdCX0ZVTExSQU5HRSwKMTQ0NzQ6ICBDT0xPUl9TUEFD
RV8yMDIwX1JHQl9MSU1JVEVEUkFOR0UsCjE0NDc0OiAgQ09MT1JfU1BBQ0VfMjAyMF9ZQ0JDUiwK
MTQ0NzQ6ICBDT0xPUl9TUEFDRV9BRE9CRVJHQiwKMTQ0NzQ6ICBDT0xPUl9TUEFDRV9EQ0lQMywK
MTQ0NzQ6ICBDT0xPUl9TUEFDRV9ESVNQTEFZTkFUSVZFLAoxNDQ3NDogIENPTE9SX1NQQUNFX0RP
TEJZVklTSU9OLAoxNDQ3NDogIENPTE9SX1NQQUNFX0FQUENUUkwsCjE0NDc0OiAgQ09MT1JfU1BB
Q0VfQ1VTVE9NUE9JTlRTLAoxNDQ3NDogIENPTE9SX1NQQUNFX1lDQkNSNzA5X0JMQUNLLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19kaXRoZXJfb3B0aW9uIHsKMTQ0NzQ6ICBESVRI
RVJfT1BUSU9OX0RFRkFVTFQsCjE0NDc0OiAgRElUSEVSX09QVElPTl9ESVNBQkxFLAoxNDQ3NDog
IERJVEhFUl9PUFRJT05fRk02LAoxNDQ3NDogIERJVEhFUl9PUFRJT05fRk04LAoxNDQ3NDogIERJ
VEhFUl9PUFRJT05fRk0xMCwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUw2X0ZSQU1FX1JB
TkRPTSwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUw4X0ZSQU1FX1JBTkRPTSwKMTQ0NzQ6
ICBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GUkFNRV9SQU5ET00sCjE0NDc0OiAgRElUSEVSX09Q
VElPTl9TUEFUSUFMNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUw4LAoxNDQ3NDogIERJ
VEhFUl9PUFRJT05fU1BBVElBTDEwLAoxNDQ3NDogIERJVEhFUl9PUFRJT05fVFJVTjYsCjE0NDc0
OiAgRElUSEVSX09QVElPTl9UUlVOOCwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1RSVU4xMCwKMTQ0
NzQ6ICBESVRIRVJfT1BUSU9OX1RSVU4xMF9TUEFUSUFMOCwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9O
X1RSVU4xMF9TUEFUSUFMNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1RSVU4xMF9GTTgsCjE0NDc0
OiAgRElUSEVSX09QVElPTl9UUlVOMTBfRk02LAoxNDQ3NDogIERJVEhFUl9PUFRJT05fVFJVTjEw
X1NQQVRJQUw4X0ZNNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GTTgsCjE0NDc0
OiAgRElUSEVSX09QVElPTl9TUEFUSUFMMTBfRk02LAoxNDQ3NDogIERJVEhFUl9PUFRJT05fVFJV
TjhfU1BBVElBTDYsCjE0NDc0OiAgRElUSEVSX09QVElPTl9UUlVOOF9GTTYsCjE0NDc0OiAgRElU
SEVSX09QVElPTl9TUEFUSUFMOF9GTTYsCjE0NDc0OiAgRElUSEVSX09QVElPTl9NQVggPSBESVRI
RVJfT1BUSU9OX1NQQVRJQUw4X0ZNNiwKMTQ0NzQ6ICBESVRIRVJfT1BUSU9OX0lOVkFMSUQKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfcXVhbnRpemF0aW9uX3JhbmdlIHsKMTQ0NzQ6
ICBRVUFOVElaQVRJT05fUkFOR0VfVU5LTk9XTiwKMTQ0NzQ6ICBRVUFOVElaQVRJT05fUkFOR0Vf
RlVMTCwKMTQ0NzQ6ICBRVUFOVElaQVRJT05fUkFOR0VfTElNSVRFRAoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiB7CjE0NDc0OiAgRFlOX0VYUEFOU0lP
Tl9BVVRPLAoxNDQ3NDogIERZTl9FWFBBTlNJT05fRElTQUJMRQoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNjYWxpbmdfdGFwcyB7CjE0NDc0
OiAgdWludDMyX3Qgdl90YXBzOwoxNDQ3NDogIHVpbnQzMl90IGhfdGFwczsKMTQ0NzQ6ICB1aW50
MzJfdCB2X3RhcHNfYzsKMTQ0NzQ6ICB1aW50MzJfdCBoX3RhcHNfYzsKMTQ0NzQ6ICBib29sIGlu
dGVnZXJfc2NhbGluZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfdGltaW5nX3N0
YW5kYXJkIHsKMTQ0NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfVU5ERUZJTkVELAoxNDQ3NDogIERD
X1RJTUlOR19TVEFOREFSRF9ETVQsCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX0dURiwKMTQ0
NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfQ1ZULAoxNDQ3NDogIERDX1RJTUlOR19TVEFOREFSRF9D
VlRfUkIsCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX0NFQTc3MCwKMTQ0NzQ6ICBEQ19USU1J
TkdfU1RBTkRBUkRfQ0VBODYxLAoxNDQ3NDogIERDX1RJTUlOR19TVEFOREFSRF9IRE1JLAoxNDQ3
NDogIERDX1RJTUlOR19TVEFOREFSRF9UVl9OVFNDLAoxNDQ3NDogIERDX1RJTUlOR19TVEFOREFS
RF9UVl9OVFNDX0osCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX1RWX1BBTCwKMTQ0NzQ6ICBE
Q19USU1JTkdfU1RBTkRBUkRfVFZfUEFMX00sCjE0NDc0OiAgRENfVElNSU5HX1NUQU5EQVJEX1RW
X1BBTF9DTiwKMTQ0NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfVFZfU0VDQU0sCjE0NDc0OiAgRENf
VElNSU5HX1NUQU5EQVJEX0VYUExJQ0lULAoxNDQ3NDogCjE0NDc0OiAgRENfVElNSU5HX1NUQU5E
QVJEX1VTRVJfT1ZFUlJJREUsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19USU1JTkdfU1RBTkRBUkRfTUFY
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2NvbG9yX2RlcHRoIHsKMTQ0NzQ6ICBD
T0xPUl9ERVBUSF9VTkRFRklORUQsCjE0NDc0OiAgQ09MT1JfREVQVEhfNjY2LAoxNDQ3NDogIENP
TE9SX0RFUFRIXzg4OCwKMTQ0NzQ6ICBDT0xPUl9ERVBUSF8xMDEwMTAsCjE0NDc0OiAgQ09MT1Jf
REVQVEhfMTIxMjEyLAoxNDQ3NDogIENPTE9SX0RFUFRIXzE0MTQxNCwKMTQ0NzQ6ICBDT0xPUl9E
RVBUSF8xNjE2MTYsCjE0NDc0OiAgQ09MT1JfREVQVEhfOTk5LAoxNDQ3NDogIENPTE9SX0RFUFRI
XzExMTExMSwKMTQ0NzQ6ICBDT0xPUl9ERVBUSF9DT1VOVAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkY19waXhlbF9lbmNvZGluZyB7CjE0NDc0OiAgUElYRUxfRU5DT0RJTkdfVU5ERUZJ
TkVELAoxNDQ3NDogIFBJWEVMX0VOQ09ESU5HX1JHQiwKMTQ0NzQ6ICBQSVhFTF9FTkNPRElOR19Z
Q0JDUjQyMiwKMTQ0NzQ6ICBQSVhFTF9FTkNPRElOR19ZQ0JDUjQ0NCwKMTQ0NzQ6ICBQSVhFTF9F
TkNPRElOR19ZQ0JDUjQyMCwKMTQ0NzQ6ICBQSVhFTF9FTkNPRElOR19DT1VOVAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19hc3BlY3RfcmF0aW8gewoxNDQ3NDogIEFTUEVDVF9SQVRJ
T19OT19EQVRBLAoxNDQ3NDogIEFTUEVDVF9SQVRJT180XzMsCjE0NDc0OiAgQVNQRUNUX1JBVElP
XzE2XzksCjE0NDc0OiAgQVNQRUNUX1JBVElPXzY0XzI3LAoxNDQ3NDogIEFTUEVDVF9SQVRJT18y
NTZfMTM1LAoxNDQ3NDogIEFTUEVDVF9SQVRJT19GVVRVUkUKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IGVudW0gc2Nhbm5pbmdfdHlwZSB7CjE0NDc0OiAgU0NBTk5JTkdfVFlQRV9OT0RBVEEgPSAw
LAoxNDQ3NDogIFNDQU5OSU5HX1RZUEVfT1ZFUlNDQU4sCjE0NDc0OiAgU0NBTk5JTkdfVFlQRV9V
TkRFUlNDQU4sCjE0NDc0OiAgU0NBTk5JTkdfVFlQRV9GVVRVUkUsCjE0NDc0OiAgU0NBTk5JTkdf
VFlQRV9VTkRFRklORUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jcnRjX3Rp
bWluZ19mbGFncyB7CjE0NDc0OiAgdWludDMyX3QgSU5URVJMQUNFIDoxOwoxNDQ3NDogIHVpbnQz
Ml90IEhTWU5DX1BPU0lUSVZFX1BPTEFSSVRZIDoxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
VlNZTkNfUE9TSVRJVkVfUE9MQVJJVFkgOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IEhPUlpfQ09VTlRfQllfVFdPOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBFWENMVVNJ
VkVfM0QgOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFJJR0hUX0VZRV8zRF9Q
T0xBUklUWSA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFNVQl9TQU1QTEVfM0QgOjE7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBVU0VfSU5fM0RfVklFV19PTkxZIDoxOwoxNDQ3NDogCjE0
NDc0OiAgdWludDMyX3QgU1RFUkVPXzNEX1BSRUZFUkVOQ0UgOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1
aW50MzJfdCBZX09OTFkgOjE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBZQ0JDUjQyMCA6MTsK
MTQ0NzQ6ICB1aW50MzJfdCBEVERfQ09VTlRFUiA6NTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90
IEZPUkNFX0hEUiA6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBM
VEVfMzQwTUNTQ19TQ1JBTUJMRToxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgRFNDIDogMTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfdGltaW5nXzNkX2Zvcm1hdCB7CjE0NDc0
OiAgVElNSU5HXzNEX0ZPUk1BVF9OT05FLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfRlJBTUVf
QUxURVJOQVRFLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfSU5CQU5EX0ZBLAoxNDQ3NDogIFRJ
TUlOR18zRF9GT1JNQVRfRFBfSERNSV9JTkJBTkRfRkEsCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdf
M0RfRk9STUFUX1NJREVCQU5EX0ZBLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfSFdfRlJBTUVf
UEFDS0lORywKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9STUFUX1NXX0ZSQU1FX1BBQ0tJTkcsCjE0NDc0
OiAgVElNSU5HXzNEX0ZPUk1BVF9ST1dfSU5URVJMRUFWRSwKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9S
TUFUX0NPTFVNTl9JTlRFUkxFQVZFLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfUElYRUxfSU5U
RVJMRUFWRSwKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9STUFUX1NJREVfQllfU0lERSwKMTQ0NzQ6ICBU
SU1JTkdfM0RfRk9STUFUX1RPUF9BTkRfQk9UVE9NLAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRf
U0JTX1NXX1BBQ0tFRCwKMTQ0NzQ6IAoxNDQ3NDogIFRJTUlOR18zRF9GT1JNQVRfVEJfU1dfUEFD
S0VELAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdfM0RfRk9STUFUX01BWCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kc2NfY29uZmlnIHsKMTQ0NzQ6ICB1aW50MzJf
dCBudW1fc2xpY2VzX2g7CjE0NDc0OiAgdWludDMyX3QgbnVtX3NsaWNlc192OwoxNDQ3NDogIHVp
bnQzMl90IGJpdHNfcGVyX3BpeGVsOwoxNDQ3NDogIGJvb2wgYmxvY2tfcHJlZF9lbmFibGU7CjE0
NDc0OiAgdWludDMyX3QgbGluZWJ1Zl9kZXB0aDsKMTQ0NzQ6ICB1aW50MzJfdCB2ZXJzaW9uX21p
bm9yOwoxNDQ3NDogIGJvb2wgeWNiY3I0MjJfc2ltcGxlOwoxNDQ3NDogIGludDMyX3QgcmNfYnVm
ZmVyX3NpemU7CjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0IGRjX2NydGNfdGltaW5nIHsKMTQ0NzQ6
ICB1aW50MzJfdCBoX3RvdGFsOwoxNDQ3NDogIHVpbnQzMl90IGhfYm9yZGVyX2xlZnQ7CjE0NDc0
OiAgdWludDMyX3QgaF9hZGRyZXNzYWJsZTsKMTQ0NzQ6ICB1aW50MzJfdCBoX2JvcmRlcl9yaWdo
dDsKMTQ0NzQ6ICB1aW50MzJfdCBoX2Zyb250X3BvcmNoOwoxNDQ3NDogIHVpbnQzMl90IGhfc3lu
Y193aWR0aDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHZfdG90YWw7CjE0NDc0OiAgdWludDMy
X3Qgdl9ib3JkZXJfdG9wOwoxNDQ3NDogIHVpbnQzMl90IHZfYWRkcmVzc2FibGU7CjE0NDc0OiAg
dWludDMyX3Qgdl9ib3JkZXJfYm90dG9tOwoxNDQ3NDogIHVpbnQzMl90IHZfZnJvbnRfcG9yY2g7
CjE0NDc0OiAgdWludDMyX3Qgdl9zeW5jX3dpZHRoOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
cGl4X2Nsa18xMDBoejsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHZpYzsKMTQ0NzQ6ICB1aW50
MzJfdCBoZG1pX3ZpYzsKMTQ0NzQ6ICBlbnVtIGRjX3RpbWluZ18zZF9mb3JtYXQgdGltaW5nXzNk
X2Zvcm1hdDsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGRpc3BsYXlfY29sb3JfZGVwdGg7
CjE0NDc0OiAgZW51bSBkY19waXhlbF9lbmNvZGluZyBwaXhlbF9lbmNvZGluZzsKMTQ0NzQ6ICBl
bnVtIGRjX2FzcGVjdF9yYXRpbyBhc3BlY3RfcmF0aW87CjE0NDc0OiAgZW51bSBzY2FubmluZ190
eXBlIHNjYW5fdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19jcnRjX3RpbWluZ19mbGFn
cyBmbGFnczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZHNjX2NvbmZpZyBkc2NfY2ZnOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSB0cmlnZ2VyX2RlbGF5IHsKMTQ0NzQ6ICBUUklHR0VSX0RFTEFZ
X05FWFRfUElYRUwgPSAwLAoxNDQ3NDogIFRSSUdHRVJfREVMQVlfTkVYVF9MSU5FLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjcnRjX2V2ZW50IHsKMTQ0NzQ6ICBDUlRDX0VWRU5UX1ZT
WU5DX1JJU0lORyA9IDAsCjE0NDc0OiAgQ1JUQ19FVkVOVF9WU1lOQ19GQUxMSU5HCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gewoxNDQ3NDogIGJvb2wg
ZW5hYmxlZDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpldmVudF9zb3VyY2U7CjE0
NDc0OiAgZW51bSBjcnRjX2V2ZW50IGV2ZW50OwoxNDQ3NDogIGVudW0gdHJpZ2dlcl9kZWxheSBk
ZWxheTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jcnRjX3RpbWluZ19hZGp1
c3QgewoxNDQ3NDogIHVpbnQzMl90IHZfdG90YWxfbWluOwoxNDQ3NDogIHVpbnQzMl90IHZfdG90
YWxfbWF4OwoxNDQ3NDogIHVpbnQzMl90IHZfdG90YWxfbWlkOwoxNDQ3NDogIHVpbnQzMl90IHZf
dG90YWxfbWlkX2ZyYW1lX251bTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBlbnVtIHZyYW1fdHlwZSB7CjE0NDc0OiAgVklERU9fTUVNT1JZX1RZUEVfR0REUjUgPSAy
LAoxNDQ3NDogIFZJREVPX01FTU9SWV9UWVBFX0REUjMgPSAzLAoxNDQ3NDogIFZJREVPX01FTU9S
WV9UWVBFX0REUjQgPSA0LAoxNDQ3NDogIFZJREVPX01FTU9SWV9UWVBFX0hCTSA9IDUsCjE0NDc0
OiAgVklERU9fTUVNT1JZX1RZUEVfR0REUjYgPSA2LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkd2JfY252X291dF9icGMgewoxNDQ3NDogIERXQl9DTlZfT1VUX0JQQ184QlBDID0gMCwK
MTQ0NzQ6ICBEV0JfQ05WX09VVF9CUENfMTBCUEMgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkd2Jfb3V0cHV0X2RlcHRoIHsKMTQ0NzQ6ICBEV0JfT1VUUFVUX1BJWEVMX0RFUFRI
XzhCUEMgPSAwLAoxNDQ3NDogIERXQl9PVVRQVVRfUElYRUxfREVQVEhfMTBCUEMgPSAxLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkd2JfY2FwdHVyZV9yYXRlIHsKMTQ0NzQ6ICBkd2Jf
Y2FwdHVyZV9yYXRlXzAgPSAwLAoxNDQ3NDogIGR3Yl9jYXB0dXJlX3JhdGVfMSA9IDEsCjE0NDc0
OiAgZHdiX2NhcHR1cmVfcmF0ZV8yID0gMiwKMTQ0NzQ6ICBkd2JfY2FwdHVyZV9yYXRlXzMgPSAz
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkd2Jfc2NhbGVyX21vZGUgewoxNDQ3NDog
IGR3Yl9zY2FsZXJfbW9kZV9ieXBhc3M0NDQgPSAwLAoxNDQ3NDogIGR3Yl9zY2FsZXJfbW9kZV9y
Z2I0NDQgPSAxLAoxNDQ3NDogIGR3Yl9zY2FsZXJfbW9kZV95dXY0NDQgPSAyLAoxNDQ3NDogIGR3
Yl9zY2FsZXJfbW9kZV95dXY0MjAgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGR3
Yl9zdWJzYW1wbGVfcG9zaXRpb24gewoxNDQ3NDogIERXQl9JTlRFUlNUSVRJQUxfU1VCU0FNUExJ
TkcgPSAwLAoxNDQ3NDogIERXQl9DT1NJVEVEX1NVQlNBTVBMSU5HID0gMQoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogZW51bSBkd2Jfc3RlcmVvX2V5ZV9zZWxlY3QgewoxNDQ3NDogIERXQl9TVEVS
RU9fRVlFX0xFRlQgPSAxLAoxNDQ3NDogIERXQl9TVEVSRU9fRVlFX1JJR0hUID0gMiwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHdiX3N0ZXJlb190eXBlIHsKMTQ0NzQ6ICBEV0JfU1RF
UkVPX1RZUEVfRlJBTUVfUEFDS0lORyA9IDAsCjE0NDc0OiAgRFdCX1NURVJFT19UWVBFX0ZSQU1F
X1NFUVVFTlRJQUwgPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBtY2lmX2J1Zl9wYXJhbXMgewoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBsdW1h
X2FkZHJlc3NbNF07CjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIGNocm9tYV9hZGRyZXNzWzRd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBsdW1hX3BpdGNoOwoxNDQ3NDogIHVuc2lnbmVkIGludCBj
aHJvbWFfcGl0Y2g7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdhcm11cF9waXRjaDsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgc3dsb2NrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCB0Z19jb2xvciB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBjb2xvcl9yX2Ny
OwoxNDQ3NDogIHVpbnQxNl90IGNvbG9yX2dfeTsKMTQ0NzQ6ICB1aW50MTZfdCBjb2xvcl9iX2Ni
OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2RhbF90eXBlcy5oIiAxCjE0NDc0OiAjIDI5ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kYWxfdHlwZXMu
aCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2lu
Y2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2RhbF90eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAxCjE0
NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVk
ZS9kYWxfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGFsX2xvZ2dlcjsKMTQ0NzQ6
IHN0cnVjdCBkY19iaW9zOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjZV92ZXJzaW9uIHsKMTQ0NzQ6
ICBEQ0VfVkVSU0lPTl9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBEQ0VfVkVSU0lPTl84XzAsCjE0
NDc0OiAgRENFX1ZFUlNJT05fOF8xLAoxNDQ3NDogIERDRV9WRVJTSU9OXzhfMywKMTQ0NzQ6ICBE
Q0VfVkVSU0lPTl8xMF8wLAoxNDQ3NDogIERDRV9WRVJTSU9OXzExXzAsCjE0NDc0OiAgRENFX1ZF
UlNJT05fMTFfMiwKMTQ0NzQ6ICBEQ0VfVkVSU0lPTl8xMV8yMiwKMTQ0NzQ6ICBEQ0VfVkVSU0lP
Tl8xMl8wLAoxNDQ3NDogIERDRV9WRVJTSU9OXzEyXzEsCjE0NDc0OiAgRENFX1ZFUlNJT05fTUFY
LAoxNDQ3NDogIERDTl9WRVJTSU9OXzFfMCwKMTQ0NzQ6ICBEQ05fVkVSU0lPTl8xXzAxLAoxNDQ3
NDogIERDTl9WRVJTSU9OXzJfMCwKMTQ0NzQ6ICBEQ05fVkVSU0lPTl8yXzEsCjE0NDc0OiAgRENO
X1ZFUlNJT05fTUFYCjE0NDc0OiB9OwoxNDQ3NDogIyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3RfZGVmcy5o
IiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiIDEKMTQ0NzQ6
ICMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dy
cGhfb2JqZWN0X2lkLmgiCjE0NDc0OiBlbnVtIG9iamVjdF90eXBlIHsKMTQ0NzQ6ICBPQkpFQ1Rf
VFlQRV9VTktOT1dOID0gMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgT0JKRUNUX1RZUEVfR1BV
LAoxNDQ3NDogIE9CSkVDVF9UWVBFX0VOQ09ERVIsCjE0NDc0OiAgT0JKRUNUX1RZUEVfQ09OTkVD
VE9SLAoxNDQ3NDogIE9CSkVDVF9UWVBFX1JPVVRFUiwKMTQ0NzQ6ICBPQkpFQ1RfVFlQRV9HRU5F
UklDLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBPQkpFQ1RfVFlQRV9BVURJTywKMTQ0NzQ6ICBP
QkpFQ1RfVFlQRV9DT05UUk9MTEVSLAoxNDQ3NDogIE9CSkVDVF9UWVBFX0NMT0NLX1NPVVJDRSwK
MTQ0NzQ6ICBPQkpFQ1RfVFlQRV9FTkdJTkUsCjE0NDc0OiAKMTQ0NzQ6ICBPQkpFQ1RfVFlQRV9D
T1VOVAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIG9iamVjdF9lbnVtX2lk
IHsKMTQ0NzQ6ICBFTlVNX0lEX1VOS05PV04gPSAwLAoxNDQ3NDogIEVOVU1fSURfMSwKMTQ0NzQ6
ICBFTlVNX0lEXzIsCjE0NDc0OiAgRU5VTV9JRF8zLAoxNDQ3NDogIEVOVU1fSURfNCwKMTQ0NzQ6
ICBFTlVNX0lEXzUsCjE0NDc0OiAgRU5VTV9JRF82LAoxNDQ3NDogIEVOVU1fSURfNywKMTQ0NzQ6
IAoxNDQ3NDogIEVOVU1fSURfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBnZW5lcmljX2lkIHsKMTQ0NzQ6ICBHRU5FUklDX0lEX1VOS05PV04gPSAwLAoxNDQ3NDog
IEdFTkVSSUNfSURfTVhNX09QTSwKMTQ0NzQ6ICBHRU5FUklDX0lEX0dMU1lOQywKMTQ0NzQ6ICBH
RU5FUklDX0lEX1NURVJFTywKMTQ0NzQ6IAoxNDQ3NDogIEdFTkVSSUNfSURfQ09VTlQKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb250cm9sbGVyX2lkIHsKMTQ0NzQ6ICBD
T05UUk9MTEVSX0lEX1VOREVGSU5FRCA9IDAsCjE0NDc0OiAgQ09OVFJPTExFUl9JRF9EMCwKMTQ0
NzQ6ICBDT05UUk9MTEVSX0lEX0QxLAoxNDQ3NDogIENPTlRST0xMRVJfSURfRDIsCjE0NDc0OiAg
Q09OVFJPTExFUl9JRF9EMywKMTQ0NzQ6ICBDT05UUk9MTEVSX0lEX0Q0LAoxNDQ3NDogIENPTlRS
T0xMRVJfSURfRDUsCjE0NDc0OiAgQ09OVFJPTExFUl9JRF9VTkRFUkxBWTAsCjE0NDc0OiAgQ09O
VFJPTExFUl9JRF9NQVggPSBDT05UUk9MTEVSX0lEX1VOREVSTEFZMAoxNDQ3NDogfTsKMTQ0NzQ6
ICMgOTMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dy
cGhfb2JqZWN0X2lkLmgiCjE0NDc0OiBlbnVtIGNsb2NrX3NvdXJjZV9pZCB7CjE0NDc0OiAgQ0xP
Q0tfU09VUkNFX0lEX1VOREVGSU5FRCA9IDAsCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX1BMTDAs
CjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX1BMTDEsCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX1BM
TDIsCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMLAoxNDQ3NDogIENMT0NLX1NPVVJD
RV9JRF9EQ1BMTCwKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfSURfREZTLAoxNDQ3NDogIENMT0NLX1NP
VVJDRV9JRF9WQ0UsCjE0NDc0OiAKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfSURfRFBfRFRPLAoxNDQ3
NDogCjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwwLAoxNDQ3NDogIENMT0NLX1NP
VVJDRV9DT01CT19QSFlfUExMMSwKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDIs
CjE0NDc0OiAgQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwzLAoxNDQ3NDogIENMT0NLX1NPVVJD
RV9DT01CT19QSFlfUExMNCwKMTQ0NzQ6ICBDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDUsCjE0
NDc0OiAgQ0xPQ0tfU09VUkNFX0NPTUJPX0RJU1BMQVlfUExMMAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIGVuY29kZXJfaWQgewoxNDQ3NDogIEVOQ09ERVJfSURfVU5LTk9X
TiA9IDAsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfTFZEUywK
MTQ0NzQ6ICBFTkNPREVSX0lEX0lOVEVSTkFMX1RNRFMxLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5U
RVJOQUxfVE1EUzIsCjE0NDc0OiAgRU5DT0RFUl9JRF9JTlRFUk5BTF9EQUMxLAoxNDQ3NDogIEVO
Q09ERVJfSURfSU5URVJOQUxfREFDMiwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRU5DT0RFUl9J
RF9JTlRFUk5BTF9MVlRNMSwKMTQ0NzQ6ICBFTkNPREVSX0lEX0lOVEVSTkFMX0hETUksCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQX1RNRFMxLAoxNDQ3
NDogIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQX0RBQzEsCjE0NDc0OiAgRU5DT0RFUl9JRF9J
TlRFUk5BTF9LTERTQ1BfREFDMiwKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJfSURfRVhURVJOQUxf
TVZQVV9GUEdBLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfRERJLAoxNDQ3NDogIEVOQ09E
RVJfSURfSU5URVJOQUxfVU5JUEhZLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfS0xEU0NQ
X0xWVE1BLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMSwKMTQ0NzQ6ICBFTkNP
REVSX0lEX0lOVEVSTkFMX1VOSVBIWTIsCjE0NDc0OiAgRU5DT0RFUl9JRF9FWFRFUk5BTF9OVVRN
RUcsCjE0NDc0OiAgRU5DT0RFUl9JRF9FWFRFUk5BTF9UUkFWSVMsCjE0NDc0OiAKMTQ0NzQ6ICBF
TkNPREVSX0lEX0lOVEVSTkFMX1dJUkVMRVNTLAoxNDQ3NDogIEVOQ09ERVJfSURfSU5URVJOQUxf
VU5JUEhZMywKMTQ0NzQ6ICBFTkNPREVSX0lEX0lOVEVSTkFMX1ZJUlRVQUwsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY29ubmVjdG9yX2lkIHsKMTQ0NzQ6ICBDT05ORUNU
T1JfSURfVU5LTk9XTiA9IDAsCjE0NDc0OiAgQ09OTkVDVE9SX0lEX1NJTkdMRV9MSU5LX0RWSUkg
PSAxLAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9EVUFMX0xJTktfRFZJSSA9IDIsCjE0NDc0OiAgQ09O
TkVDVE9SX0lEX1NJTkdMRV9MSU5LX0RWSUQgPSAzLAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9EVUFM
X0xJTktfRFZJRCA9IDQsCjE0NDc0OiAgQ09OTkVDVE9SX0lEX1ZHQSA9IDUsCjE0NDc0OiAgQ09O
TkVDVE9SX0lEX0hETUlfVFlQRV9BID0gMTIsCjE0NDc0OiAgQ09OTkVDVE9SX0lEX0xWRFMgPSAx
NCwKMTQ0NzQ6ICBDT05ORUNUT1JfSURfUENJRSA9IDE2LAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9I
QVJEQ09ERV9EVkkgPSAxOCwKMTQ0NzQ6ICBDT05ORUNUT1JfSURfRElTUExBWV9QT1JUID0gMTks
CjE0NDc0OiAgQ09OTkVDVE9SX0lEX0VEUCA9IDIwLAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9NWE0g
PSAyMSwKMTQ0NzQ6ICBDT05ORUNUT1JfSURfV0lSRUxFU1MgPSAyMiwKMTQ0NzQ6ICBDT05ORUNU
T1JfSURfTUlSQUNBU1QgPSAyMywKMTQ0NzQ6IAoxNDQ3NDogIENPTk5FQ1RPUl9JRF9WSVJUVUFM
ID0gMTAwCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXVkaW9faWQgewox
NDQ3NDogIEFVRElPX0lEX1VOS05PV04gPSAwLAoxNDQ3NDogIEFVRElPX0lEX0lOVEVSTkFMX0Fa
QUxJQQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGVuZ2luZV9pZCB7CjE0
NDc0OiAgRU5HSU5FX0lEX0RJR0EsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0IsCjE0NDc0OiAgRU5H
SU5FX0lEX0RJR0MsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0QsCjE0NDc0OiAgRU5HSU5FX0lEX0RJ
R0UsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0YsCjE0NDc0OiAgRU5HSU5FX0lEX0RJR0csCjE0NDc0
OiAgRU5HSU5FX0lEX0RBQ0EsCjE0NDc0OiAgRU5HSU5FX0lEX0RBQ0IsCjE0NDc0OiAgRU5HSU5F
X0lEX1ZDRSwKMTQ0NzQ6ICBFTkdJTkVfSURfVklSVFVBTCwKMTQ0NzQ6IAoxNDQ3NDogIEVOR0lO
RV9JRF9DT1VOVCwKMTQ0NzQ6ICBFTkdJTkVfSURfVU5LTk9XTiA9ICgtMUwpCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIHRyYW5zbWl0dGVyX2NvbG9yX2RlcHRoIHsKMTQ0NzQ6ICBUUkFO
U01JVFRFUl9DT0xPUl9ERVBUSF8yNCA9IDAsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09MT1JfREVQ
VEhfMzAsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09MT1JfREVQVEhfMzYsCjE0NDc0OiAgVFJBTlNN
SVRURVJfQ09MT1JfREVQVEhfNDgKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHBfYWx0
X21vZGUgewoxNDQ3NDogIERQX0FsdF9tb2RlX19Vbmtub3duID0gMCwKMTQ0NzQ6ICBEUF9BbHRf
bW9kZV9fQ29ubmVjdCwKMTQ0NzQ6ICBEUF9BbHRfbW9kZV9fTm9Db25uZWN0LAoxNDQ3NDogfTsK
MTQ0NzQ6ICMgMjIwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5j
bHVkZS9ncnBoX29iamVjdF9pZC5oIgoxNDQ3NDogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCB7
CjE0NDc0OiAgdWludDMyX3QgaWQ6ODsKMTQ0NzQ6ICB1aW50MzJfdCBlbnVtX2lkOjQ7CjE0NDc0
OiAgdWludDMyX3QgdHlwZTo0OwoxNDQ3NDogIHVpbnQzMl90IHJlc2VydmVkOjE2OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBncmFwaGljc19vYmplY3Rf
aWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9pbml0KAoxNDQ3NDogIHVpbnQzMl90IGlkLAoxNDQ3
NDogIGVudW0gb2JqZWN0X2VudW1faWQgZW51bV9pZCwKMTQ0NzQ6ICBlbnVtIG9iamVjdF90eXBl
IHR5cGUpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCByZXN1bHQg
PSB7CjE0NDc0OiAgIGlkLCBlbnVtX2lkLCB0eXBlLCAwCjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3
NDogIHJldHVybiByZXN1bHQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdWludDMy
X3QgZGFsX2dyYXBoaWNzX29iamVjdF9pZF90b191aW50KAoxNDQ3NDogIHN0cnVjdCBncmFwaGlj
c19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGlkLmlkICsgKGlkLmVudW1f
aWQgPDwgMHg4KSArIChpZC50eXBlIDw8IDB4Yyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVu
dW0gY29udHJvbGxlcl9pZCBkYWxfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lk
KAoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAg
aWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfQ09OVFJPTExFUikKMTQ0NzQ6ICAgcmV0dXJuIChl
bnVtIGNvbnRyb2xsZXJfaWQpIGlkLmlkOwoxNDQ3NDogIHJldHVybiBDT05UUk9MTEVSX0lEX1VO
REVGSU5FRDsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBjbG9ja19zb3VyY2VfaWQgZGFs
X2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY2xvY2tfc291cmNlX2lkKAoxNDQ3NDogIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGlkLnR5cGUgPT0gT0JK
RUNUX1RZUEVfQ0xPQ0tfU09VUkNFKQoxNDQ3NDogICByZXR1cm4gKGVudW0gY2xvY2tfc291cmNl
X2lkKSBpZC5pZDsKMTQ0NzQ6ICByZXR1cm4gQ0xPQ0tfU09VUkNFX0lEX1VOREVGSU5FRDsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBlbmNvZGVyX2lkIGRhbF9ncmFwaGljc19vYmplY3Rf
aWRfZ2V0X2VuY29kZXJfaWQoCjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZCkK
MTQ0NzQ6IHsKMTQ0NzQ6ICBpZiAoaWQudHlwZSA9PSBPQkpFQ1RfVFlQRV9FTkNPREVSKQoxNDQ3
NDogICByZXR1cm4gKGVudW0gZW5jb2Rlcl9pZCkgaWQuaWQ7CjE0NDc0OiAgcmV0dXJuIEVOQ09E
RVJfSURfVU5LTk9XTjsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBjb25uZWN0b3JfaWQg
ZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY29ubmVjdG9yX2lkKAoxNDQ3NDogIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGlkLnR5cGUgPT0gT0JK
RUNUX1RZUEVfQ09OTkVDVE9SKQoxNDQ3NDogICByZXR1cm4gKGVudW0gY29ubmVjdG9yX2lkKSBp
ZC5pZDsKMTQ0NzQ6ICByZXR1cm4gQ09OTkVDVE9SX0lEX1VOS05PV047CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGVudW0gYXVkaW9faWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfYXVkaW9f
aWQoCjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZCkKMTQ0NzQ6IHsKMTQ0NzQ6
ICBpZiAoaWQudHlwZSA9PSBPQkpFQ1RfVFlQRV9BVURJTykKMTQ0NzQ6ICAgcmV0dXJuIChlbnVt
IGF1ZGlvX2lkKSBpZC5pZDsKMTQ0NzQ6ICByZXR1cm4gQVVESU9fSURfVU5LTk9XTjsKMTQ0NzQ6
IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBlbmdpbmVfaWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9n
ZXRfZW5naW5lX2lkKAoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCjE0NDc0
OiB7CjE0NDc0OiAgaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfRU5HSU5FKQoxNDQ3NDogICBy
ZXR1cm4gKGVudW0gZW5naW5lX2lkKSBpZC5pZDsKMTQ0NzQ6ICByZXR1cm4gRU5HSU5FX0lEX1VO
S05PV047CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGFsX2dyYXBoaWNzX29iamVjdF9p
ZF9lcXVhbCgKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkXzEsCjE0NDc0OiAg
c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZF8yKQoxNDQ3NDogewoxNDQ3NDogIGlmICgoaWRf
MS5pZCA9PSBpZF8yLmlkKSAmJiAoaWRfMS5lbnVtX2lkID09IGlkXzIuZW51bV9pZCkgJiYKMTQ0
NzQ6ICAgKGlkXzEudHlwZSA9PSBpZF8yLnR5cGUpKSB7CjE0NDc0OiAgIHJldHVybiB0cnVlOwox
NDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0OiAjIDMwICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9k
ZWZzLmgiIDIKMTQ0NzQ6ICMgNDUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIKMTQ0NzQ6IGVudW0gaHBkX3NvdXJjZV9p
ZCB7CjE0NDc0OiAgSFBEX1NPVVJDRUlEMSA9IDAsCjE0NDc0OiAgSFBEX1NPVVJDRUlEMiwKMTQ0
NzQ6ICBIUERfU09VUkNFSUQzLAoxNDQ3NDogIEhQRF9TT1VSQ0VJRDQsCjE0NDc0OiAgSFBEX1NP
VVJDRUlENSwKMTQ0NzQ6ICBIUERfU09VUkNFSUQ2LAoxNDQ3NDogCjE0NDc0OiAgSFBEX1NPVVJD
RUlEX0NPVU5ULAoxNDQ3NDogIEhQRF9TT1VSQ0VJRF9VTktOT1dOCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gY2hhbm5lbF9pZCB7CjE0NDc0OiAgQ0hBTk5FTF9JRF9VTktO
T1dOID0gMCwKMTQ0NzQ6ICBDSEFOTkVMX0lEX0REQzEsCjE0NDc0OiAgQ0hBTk5FTF9JRF9EREMy
LAoxNDQ3NDogIENIQU5ORUxfSURfRERDMywKMTQ0NzQ6ICBDSEFOTkVMX0lEX0REQzQsCjE0NDc0
OiAgQ0hBTk5FTF9JRF9EREM1LAoxNDQ3NDogIENIQU5ORUxfSURfRERDNiwKMTQ0NzQ6ICBDSEFO
TkVMX0lEX0REQ19WR0EsCjE0NDc0OiAgQ0hBTk5FTF9JRF9JMkNfUEFELAoxNDQ3NDogIENIQU5O
RUxfSURfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAjIDgxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiCjE0NDc0OiBlbnVt
IHRyYW5zbWl0dGVyIHsKMTQ0NzQ6ICBUUkFOU01JVFRFUl9VTktOT1dOID0gKC0xTCksCjE0NDc0
OiAgVFJBTlNNSVRURVJfVU5JUEhZX0EsCjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0IsCjE0
NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0MsCjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0Qs
CjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZX0UsCjE0NDc0OiAgVFJBTlNNSVRURVJfVU5JUEhZ
X0YsCjE0NDc0OiAgVFJBTlNNSVRURVJfTlVUTUVHX0NSVCwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9U
UkFWSVNfQ1JULAoxNDQ3NDogIFRSQU5TTUlUVEVSX1RSQVZJU19MQ0QsCjE0NDc0OiAgVFJBTlNN
SVRURVJfVU5JUEhZX0csCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHN5bmNfc291cmNlIHsKMTQ0NzQ6ICBTWU5D
X1NPVVJDRV9OT05FID0gMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09O
VFJPTExFUjAsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjEsCjE0NDc0OiAgU1lOQ19T
T1VSQ0VfQ09OVFJPTExFUjIsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjMsCjE0NDc0
OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjQsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfQ09OVFJPTExF
UjUsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFNZTkNfU09VUkNFX0dTTF9HUk9VUDAsCjE0NDc0
OiAgU1lOQ19TT1VSQ0VfR1NMX0dST1VQMSwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfR1JPVVAy
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFNZTkNfU09VUkNFX0dTTF9JT19GSVJT
VCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fR0VOTE9DS19DTE9DSyA9IFNZTkNfU09VUkNF
X0dTTF9JT19GSVJTVCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fR0VOTE9DS19WU1lOQywK
MTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fU1dBUExPQ0tfQSwKMTQ0NzQ6ICBTWU5DX1NPVVJD
RV9HU0xfSU9fU1dBUExPQ0tfQiwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9HU0xfSU9fTEFTVCA9IFNZ
TkNfU09VUkNFX0dTTF9JT19TV0FQTE9DS19CLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBTWU5D
X1NPVVJDRV9JT19GSVJTVCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19HRU5FUklDX0EgPSBTWU5D
X1NPVVJDRV9JT19GSVJTVCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19HRU5FUklDX0IsCjE0NDc0
OiAgU1lOQ19TT1VSQ0VfSU9fR0VORVJJQ19DLAoxNDQ3NDogIFNZTkNfU09VUkNFX0lPX0dFTkVS
SUNfRCwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19HRU5FUklDX0UsCjE0NDc0OiAgU1lOQ19TT1VS
Q0VfSU9fR0VORVJJQ19GLAoxNDQ3NDogIFNZTkNfU09VUkNFX0lPX0hQRDEsCjE0NDc0OiAgU1lO
Q19TT1VSQ0VfSU9fSFBEMiwKMTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19IU1lOQ19BLAoxNDQ3NDog
IFNZTkNfU09VUkNFX0lPX1ZTWU5DX0EsCjE0NDc0OiAgU1lOQ19TT1VSQ0VfSU9fSFNZTkNfQiwK
MTQ0NzQ6ICBTWU5DX1NPVVJDRV9JT19WU1lOQ19CLAoxNDQ3NDogIFNZTkNfU09VUkNFX0lPX0xB
U1QgPSBTWU5DX1NPVVJDRV9JT19WU1lOQ19CLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBTWU5D
X1NPVVJDRV9EVUFMX0dQVV9QSU4KMTQ0NzQ6IH07CjE0NDc0OiAjIDE1MSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3RfZGVmcy5oIgox
NDQ3NDogZW51bSBjb25uZWN0b3JfbGF5b3V0X3R5cGUgewoxNDQ3NDogIENPTk5FQ1RPUl9MQVlP
VVRfVFlQRV9VTktOT1dOLAoxNDQ3NDogIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EVklfRCwKMTQ0
NzQ6ICBDT05ORUNUT1JfTEFZT1VUX1RZUEVfRFZJX0ksCjE0NDc0OiAgQ09OTkVDVE9SX0xBWU9V
VF9UWVBFX1ZHQSwKMTQ0NzQ6ICBDT05ORUNUT1JfTEFZT1VUX1RZUEVfSERNSSwKMTQ0NzQ6ICBD
T05ORUNUT1JfTEFZT1VUX1RZUEVfRFAsCjE0NDc0OiAgQ09OTkVDVE9SX0xBWU9VVF9UWVBFX01J
TklfRFAsCjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0IGNvbm5lY3Rvcl9sYXlvdXRfaW5mbyB7CjE0
NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBjb25uZWN0b3JfaWQ7CjE0NDc0OiAgZW51
bSBjb25uZWN0b3JfbGF5b3V0X3R5cGUgY29ubmVjdG9yX3R5cGU7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGxlbmd0aDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcG9zaXRpb247CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzbG90X2xheW91dF9pbmZvIHsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbGVuZ3RoOwoxNDQ3NDogIHVuc2lnbmVkIGludCB3aWR0aDsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbnVtX29mX2Nvbm5lY3RvcnM7CjE0NDc0OiAgc3RydWN0IGNvbm5lY3Rvcl9sYXlv
dXRfaW5mbyBjb25uZWN0b3JzWygxNildOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGJvYXJkX2xheW91dF9pbmZvIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX29mX3Nsb3RzOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXNfbnVtYmVyX29mX3Nsb3RzX3Zh
bGlkIDogMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXNfc2xvdHNfc2l6ZV92YWxpZCA6IDE7CjE0
NDc0OiAgdW5zaWduZWQgaW50IGlzX2Nvbm5lY3Rvcl9vZmZzZXRzX3ZhbGlkIDogMTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgaXNfY29ubmVjdG9yX2xlbmd0aHNfdmFsaWQgOiAxOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHNsb3RfbGF5b3V0X2luZm8gc2xvdHNbKDQpXTsKMTQ0NzQ6IH07CjE0NDc0
OiAjIDM5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlw
ZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRjX3BsYW5lX3N0YXRlOwoxNDQ3NDogc3RydWN0IGRjX3N0cmVhbV9zdGF0
ZTsKMTQ0NzQ6IHN0cnVjdCBkY19saW5rOwoxNDQ3NDogc3RydWN0IGRjX3Npbms7CjE0NDc0OiBz
dHJ1Y3QgZGFsOwoxNDQ3NDogc3RydWN0IGRjX2RtdWJfc3J2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjZV9lbnZpcm9ubWVudCB7CjE0NDc0OiAgRENFX0VO
Vl9QUk9EVUNUSU9OX0RSViA9IDAsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRENF
X0VOVl9GUEdBX01BWElNVVMsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERDRV9FTlZfRElBRywK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERDRV9FTlZfVklSVFVBTF9I
VwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNzggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kY190eXBlcy5oIgoxNDQ3NDogc3RydWN0IGh3X2FzaWNfaWQgewoxNDQ3NDog
IHVpbnQzMl90IGNoaXBfaWQ7CjE0NDc0OiAgdWludDMyX3QgY2hpcF9mYW1pbHk7CjE0NDc0OiAg
dWludDMyX3QgcGNpX3JldmlzaW9uX2lkOwoxNDQ3NDogIHVpbnQzMl90IGh3X2ludGVybmFsX3Jl
djsKMTQ0NzQ6ICB1aW50MzJfdCB2cmFtX3R5cGU7CjE0NDc0OiAgdWludDMyX3QgdnJhbV93aWR0
aDsKMTQ0NzQ6ICB1aW50MzJfdCBmZWF0dXJlX2ZsYWdzOwoxNDQ3NDogIHVpbnQzMl90IGZha2Vf
cGF0aHNfbnVtOwoxNDQ3NDogIHZvaWQgKmF0b21iaW9zX2Jhc2VfYWRkcmVzczsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wZXJmX3RyYWNlIHsKMTQ0NzQ6ICB1bnNpZ25lZCBs
b25nIHJlYWRfY291bnQ7CjE0NDc0OiAgdW5zaWduZWQgbG9uZyB3cml0ZV9jb3VudDsKMTQ0NzQ6
ICB1bnNpZ25lZCBsb25nIGxhc3RfZW50cnlfcmVhZDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxh
c3RfZW50cnlfd3JpdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY29udGV4
dCB7CjE0NDc0OiAgc3RydWN0IGRjICpkYzsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKmRyaXZlcl9j
b250ZXh0OwoxNDQ3NDogIHN0cnVjdCBkY19wZXJmX3RyYWNlICpwZXJmX3RyYWNlOwoxNDQ3NDog
IHZvaWQgKmNnc19kZXZpY2U7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjZV9lbnZpcm9ubWVudCBk
Y2VfZW52aXJvbm1lbnQ7CjE0NDc0OiAgc3RydWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNlX3ZlcnNpb24gZGNlX3Zl
cnNpb247CjE0NDc0OiAgc3RydWN0IGRjX2Jpb3MgKmRjX2Jpb3M7CjE0NDc0OiAgYm9vbCBjcmVh
dGVkX2Jpb3M7CjE0NDc0OiAgc3RydWN0IGdwaW9fc2VydmljZSAqZ3Bpb19zZXJ2aWNlOwoxNDQ3
NDogIHVpbnQzMl90IGRjX3NpbmtfaWRfY291bnQ7CjE0NDc0OiAgdWludDMyX3QgZGNfc3RyZWFt
X2lkX2NvdW50OwoxNDQ3NDogIHVpbnQ2NF90IGZiY19ncHVfYWRkcjsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfZG11Yl9zcnYgKmRtdWJfc3J2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiB9OwoxNDQ3NDogIyAxMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9kY190eXBlcy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZGRjX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMjggIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19kZGNfdHlwZXMuaCIKMTQ0NzQ6
IGVudW0gYXV4X3RyYW5zYWN0aW9uX3R5cGUgewoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9UWVBF
X0RQLAoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9UWVBFX0kyQwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIGkyY2F1eF90cmFuc2FjdGlvbl9hY3Rpb24gewoxNDQ3NDogIEky
Q0FVWF9UUkFOU0FDVElPTl9BQ1RJT05fSTJDX1dSSVRFID0gMHgwMCwKMTQ0NzQ6ICBJMkNBVVhf
VFJBTlNBQ1RJT05fQUNUSU9OX0kyQ19SRUFEID0gMHgxMCwKMTQ0NzQ6ICBJMkNBVVhfVFJBTlNB
Q1RJT05fQUNUSU9OX0kyQ19TVEFUVVNfUkVRVUVTVCA9IDB4MjAsCjE0NDc0OiAKMTQ0NzQ6ICBJ
MkNBVVhfVFJBTlNBQ1RJT05fQUNUSU9OX0kyQ19XUklURV9NT1QgPSAweDQwLAoxNDQ3NDogIEky
Q0FVWF9UUkFOU0FDVElPTl9BQ1RJT05fSTJDX1JFQURfTU9UID0gMHg1MCwKMTQ0NzQ6ICBJMkNB
VVhfVFJBTlNBQ1RJT05fQUNUSU9OX0kyQ19TVEFUVVNfUkVRVUVTVF9NT1QgPSAweDYwLAoxNDQ3
NDogCjE0NDc0OiAgSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9EUF9XUklURSA9IDB4ODAsCjE0
NDc0OiAgSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9EUF9SRUFEID0gMHg5MAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBhdXhfY2hhbm5lbF9vcGVyYXRpb25fcmVzdWx0IHsKMTQ0NzQ6
ICBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fU1VDQ0VFREVELAoxNDQ3NDogIEFVWF9DSEFOTkVMX09Q
RVJBVElPTl9GQUlMRURfUkVBU09OX1VOS05PV04sCjE0NDc0OiAgQVVYX0NIQU5ORUxfT1BFUkFU
SU9OX0ZBSUxFRF9JTlZBTElEX1JFUExZLAoxNDQ3NDogIEFVWF9DSEFOTkVMX09QRVJBVElPTl9G
QUlMRURfVElNRU9VVCwKMTQ0NzQ6ICBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVEX0hQRF9E
SVNDT04sCjE0NDc0OiAgQVVYX0NIQU5ORUxfT1BFUkFUSU9OX0ZBSUxFRF9FTkdJTkVfQUNRVUlS
RQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXV4X3JlcXVlc3RfdHJh
bnNhY3Rpb25fZGF0YSB7CjE0NDc0OiAgZW51bSBhdXhfdHJhbnNhY3Rpb25fdHlwZSB0eXBlOwox
NDQ3NDogIGVudW0gaTJjYXV4X3RyYW5zYWN0aW9uX2FjdGlvbiBhY3Rpb247CjE0NDc0OiAKMTQ0
NzQ6ICB1aW50MzJfdCBhZGRyZXNzOwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBkZWxheTsKMTQ0
NzQ6ICB1aW50MzJfdCBsZW5ndGg7CjE0NDc0OiAgdWludDhfdCAqZGF0YTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gYXV4X3RyYW5zYWN0aW9uX3JlcGx5IHsKMTQ0NzQ6ICBBVVhfVFJB
TlNBQ1RJT05fUkVQTFlfQVVYX0FDSyA9IDB4MDAsCjE0NDc0OiAgQVVYX1RSQU5TQUNUSU9OX1JF
UExZX0FVWF9OQUNLID0gMHgwMSwKMTQ0NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfQVVYX0RF
RkVSID0gMHgwMiwKMTQ0NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSTJDX09WRVJfQVVYX05B
Q0sgPSAweDA0LAoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9JMkNfT1ZFUl9BVVhfREVG
RVIgPSAweDA4LAoxNDQ3NDogCjE0NDc0OiAgQVVYX1RSQU5TQUNUSU9OX1JFUExZX0kyQ19BQ0sg
PSAweDAwLAoxNDQ3NDogIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9JMkNfTkFDSyA9IDB4MTAsCjE0
NDc0OiAgQVVYX1RSQU5TQUNUSU9OX1JFUExZX0kyQ19ERUZFUiA9IDB4MjAsCjE0NDc0OiAKMTQ0
NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSFBEX0RJU0NPTiA9IDB4NDAsCjE0NDc0OiAKMTQ0
NzQ6ICBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSU5WQUxJRCA9IDB4RkYKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdXhfcmVwbHlfdHJhbnNhY3Rpb25fZGF0YSB7CjE0NDc0OiAgZW51
bSBhdXhfdHJhbnNhY3Rpb25fcmVwbHkgc3RhdHVzOwoxNDQ3NDogIHVpbnQzMl90IGxlbmd0aDsK
MTQ0NzQ6ICB1aW50OF90ICpkYXRhOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGky
Y19wYXlsb2FkIHsKMTQ0NzQ6ICBib29sIHdyaXRlOwoxNDQ3NDogIHVpbnQ4X3QgYWRkcmVzczsK
MTQ0NzQ6ICB1aW50MzJfdCBsZW5ndGg7CjE0NDc0OiAgdWludDhfdCAqZGF0YTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gaTJjX2NvbW1hbmRfZW5naW5lIHsKMTQ0NzQ6ICBJMkNfQ09N
TUFORF9FTkdJTkVfREVGQVVMVCwKMTQ0NzQ6ICBJMkNfQ09NTUFORF9FTkdJTkVfU1csCjE0NDc0
OiAgSTJDX0NPTU1BTkRfRU5HSU5FX0hXCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
aTJjX2NvbW1hbmQgewoxNDQ3NDogIHN0cnVjdCBpMmNfcGF5bG9hZCAqcGF5bG9hZHM7CjE0NDc0
OiAgdWludDhfdCBudW1iZXJfb2ZfcGF5bG9hZHM7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGkyY19j
b21tYW5kX2VuZ2luZSBlbmdpbmU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWlu
dDMyX3Qgc3BlZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ3Bpb19kZGNfaHdf
aW5mbyB7CjE0NDc0OiAgYm9vbCBod19zdXBwb3J0ZWQ7CjE0NDc0OiAgdWludDMyX3QgZGRjX2No
YW5uZWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjIHsKMTQ0NzQ6ICBzdHJ1
Y3QgZ3BpbyAqcGluX2RhdGE7CjE0NDc0OiAgc3RydWN0IGdwaW8gKnBpbl9jbG9jazsKMTQ0NzQ6
ICBzdHJ1Y3QgZ3Bpb19kZGNfaHdfaW5mbyBod19pbmZvOwoxNDQ3NDogIHN0cnVjdCBkY19jb250
ZXh0ICpjdHg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkZGNfd2EgewoxNDQ3NDog
IHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQzMl90IERQX1NLSVBfUE9XRVJfT0ZGOjE7CjE0NDc0OiAg
IHVpbnQzMl90IERQX0FVWF9QT1dFUl9VUF9XQV9ERUxBWToxOwoxNDQ3NDogIH0gYml0czsKMTQ0
NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjX2Zs
YWdzIHsKMTQ0NzQ6ICB1aW50OF90IEVESURfUVVFUllfRE9ORV9PTkNFOjE7CjE0NDc0OiAgdWlu
dDhfdCBJU19JTlRFUk5BTF9ESVNQTEFZOjE7CjE0NDc0OiAgdWludDhfdCBGT1JDRV9SRUFEX1JF
UEVBVEVEX1NUQVJUOjE7CjE0NDc0OiAgdWludDhfdCBFRElEX1NUUkVTU19SRUFEOjE7CjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGRjX3RyYW5zYWN0aW9uX3R5cGUgewox
NDQ3NDogIEREQ19UUkFOU0FDVElPTl9UWVBFX05PTkUgPSAwLAoxNDQ3NDogIEREQ19UUkFOU0FD
VElPTl9UWVBFX0kyQywKMTQ0NzQ6ICBERENfVFJBTlNBQ1RJT05fVFlQRV9JMkNfT1ZFUl9BVVgs
CjE0NDc0OiAgRERDX1RSQU5TQUNUSU9OX1RZUEVfSTJDX09WRVJfQVVYX1dJVEhfREVGRVIsCjE0
NDc0OiAgRERDX1RSQU5TQUNUSU9OX1RZUEVfSTJDX09WRVJfQVVYX1JFVFJZX0RFRkVSCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgewoxNDQ3NDogIERJ
U1BMQVlfRE9OR0xFX05PTkUgPSAwLAoxNDQ3NDogCjE0NDc0OiAgRElTUExBWV9ET05HTEVfRFBf
VkdBX0NPTlZFUlRFUiwKMTQ0NzQ6ICBESVNQTEFZX0RPTkdMRV9EUF9EVklfQ09OVkVSVEVSLAox
NDQ3NDogIERJU1BMQVlfRE9OR0xFX0RQX0hETUlfQ09OVkVSVEVSLAoxNDQ3NDogCjE0NDc0OiAg
RElTUExBWV9ET05HTEVfRFBfRFZJX0RPTkdMRSwKMTQ0NzQ6ICBESVNQTEFZX0RPTkdMRV9EUF9I
RE1JX0RPTkdMRSwKMTQ0NzQ6IAoxNDQ3NDogIERJU1BMQVlfRE9OR0xFX0RQX0hETUlfTUlTTUFU
Q0hFRF9ET05HTEUsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjX3NlcnZpY2Ug
ewoxNDQ3NDogIHN0cnVjdCBkZGMgKmRkY19waW47CjE0NDc0OiAgc3RydWN0IGRkY19mbGFncyBm
bGFnczsKMTQ0NzQ6ICB1bmlvbiBkZGNfd2Egd2E7CjE0NDc0OiAgZW51bSBkZGNfdHJhbnNhY3Rp
b25fdHlwZSB0cmFuc2FjdGlvbl90eXBlOwoxNDQ3NDogIGVudW0gZGlzcGxheV9kb25nbGVfdHlw
ZSBkb25nbGVfdHlwZTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHN0
cnVjdCBkY19saW5rICpsaW5rOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgYWRkcmVzczsKMTQ0
NzQ6ICB1aW50MzJfdCBlZGlkX2J1Zl9sZW47CjE0NDc0OiAgdWludDhfdCBlZGlkX2J1ZlsxMDI0
XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDEzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogZW51bSB0aWxpbmdfbW9k
ZSB7CjE0NDc0OiAgVElMSU5HX01PREVfSU5WQUxJRCwKMTQ0NzQ6ICBUSUxJTkdfTU9ERV9MSU5F
QVIsCjE0NDc0OiAgVElMSU5HX01PREVfVElMRUQsCjE0NDc0OiAgVElMSU5HX01PREVfQ09VTlQK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdmlld18zZF9mb3JtYXQgewoxNDQ3NDogIFZJ
RVdfM0RfRk9STUFUX05PTkUgPSAwLAoxNDQ3NDogIFZJRVdfM0RfRk9STUFUX0ZSQU1FX1NFUVVF
TlRJQUwsCjE0NDc0OiAgVklFV18zRF9GT1JNQVRfU0lERV9CWV9TSURFLAoxNDQ3NDogIFZJRVdf
M0RfRk9STUFUX1RPUF9BTkRfQk9UVE9NLAoxNDQ3NDogIFZJRVdfM0RfRk9STUFUX0NPVU5ULAox
NDQ3NDogIFZJRVdfM0RfRk9STUFUX0ZJUlNUID0gVklFV18zRF9GT1JNQVRfRlJBTUVfU0VRVUVO
VElBTAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwbGFuZV9zdGVyZW9fZm9ybWF0IHsK
MTQ0NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX05PTkUgPSAwLAoxNDQ3NDogIFBMQU5FX1NURVJF
T19GT1JNQVRfU0lERV9CWV9TSURFID0gMSwKMTQ0NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX1RP
UF9BTkRfQk9UVE9NID0gMiwKMTQ0NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX0ZSQU1FX0FMVEVS
TkFURSA9IDMsCjE0NDc0OiAgUExBTkVfU1RFUkVPX0ZPUk1BVF9ST1dfSU5URVJMRUFWRUQgPSA1
LAoxNDQ3NDogIFBMQU5FX1NURVJFT19GT1JNQVRfQ09MVU1OX0lOVEVSTEVBVkVEID0gNiwKMTQ0
NzQ6ICBQTEFORV9TVEVSRU9fRk9STUFUX0NIRUNLRVJfQk9BUkQgPSA3CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBk
Y19lZGlkX2Nvbm5lY3Rvcl90eXBlIHsKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9VTktOT1dO
ID0gMCwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9BTkFMT0cgPSAxLAoxNDQ3NDogIERDX0VE
SURfQ09OTkVDVE9SX0RJR0lUQUwgPSAxMCwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9EVkkg
PSAxMSwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9IRE1JQSA9IDEyLAoxNDQ3NDogIERDX0VE
SURfQ09OTkVDVE9SX01EREkgPSAxNCwKMTQ0NzQ6ICBEQ19FRElEX0NPTk5FQ1RPUl9ESVNQTEFZ
UE9SVCA9IDE1CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2VkaWRfc3RhdHVzIHsK
MTQ0NzQ6ICBFRElEX09LLAoxNDQ3NDogIEVESURfQkFEX0lOUFVULAoxNDQ3NDogIEVESURfTk9f
UkVTUE9OU0UsCjE0NDc0OiAgRURJRF9CQURfQ0hFQ0tTVU0sCjE0NDc0OiAgRURJRF9USEVfU0FN
RSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYWN0X3JldHVybl9zdGF0dXMgewoxNDQ3
NDogIEFDVF9TVUNDRVNTLAoxNDQ3NDogIEFDVF9MSU5LX0xPU1QsCjE0NDc0OiAgQUNUX0ZBSUxF
RAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY2VhX2F1ZGlvX21v
ZGUgewoxNDQ3NDogIHVpbnQ4X3QgZm9ybWF0X2NvZGU7CjE0NDc0OiAgdWludDhfdCBjaGFubmVs
X2NvdW50OwoxNDQ3NDogIHVpbnQ4X3Qgc2FtcGxlX3JhdGU7CjE0NDc0OiAgdW5pb24gewoxNDQ3
NDogICB1aW50OF90IHNhbXBsZV9zaXplOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2Jp
dF9yYXRlOwoxNDQ3NDogICB1aW50OF90IGF1ZGlvX2NvZGVjX3ZlbmRvcl9zcGVjaWZpYzsKMTQ0
NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2VkaWQgewoxNDQ3NDog
IHVpbnQzMl90IGxlbmd0aDsKMTQ0NzQ6ICB1aW50OF90IHJhd19lZGlkWzEwMjRdOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMjE1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGNfdHlwZXMuaCIKMTQ0NzQ6IHVuaW9uIGRpc3BsYXlfY29udGVudF9zdXBwb3J0IHsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgcmF3OwoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVuc2lnbmVk
IGludCB2YWxpZF9jb250ZW50X3R5cGUgOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBnYW1lX2Nv
bnRlbnQgOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBjaW5lbWFfY29udGVudCA6MTsKMTQ0NzQ6
ICAgdW5zaWduZWQgaW50IHBob3RvX2NvbnRlbnQgOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBn
cmFwaGljc19jb250ZW50IDoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQgOjI3Owox
NDQ3NDogIH0gYml0czsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wYW5lbF9w
YXRjaCB7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwcG93ZXJ1cF9kZWxheTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZXh0cmFfdDEyX21zOwoxNDQ3NDogIHVuc2lnbmVkIGludCBleHRyYV9kZWxheV9i
YWNrbGlnaHRfb2ZmOwoxNDQ3NDogIHVuc2lnbmVkIGludCBleHRyYV90N19tczsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbWFuYWdlX3NlY29uZGFyeV9saW5rOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRjX2VkaWRfY2FwcyB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBtYW51ZmFj
dHVyZXJfaWQ7CjE0NDc0OiAgdWludDE2X3QgcHJvZHVjdF9pZDsKMTQ0NzQ6ICB1aW50MzJfdCBz
ZXJpYWxfbnVtYmVyOwoxNDQ3NDogIHVpbnQ4X3QgbWFudWZhY3R1cmVfd2VlazsKMTQ0NzQ6ICB1
aW50OF90IG1hbnVmYWN0dXJlX3llYXI7CjE0NDc0OiAgdWludDhfdCBkaXNwbGF5X25hbWVbMjBd
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHNwZWFrZXJfZmxhZ3M7CjE0NDc0OiAg
dWludDMyX3QgYXVkaW9fbW9kZV9jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY2VhX2F1ZGlvX21v
ZGUgYXVkaW9fbW9kZXNbMTZdOwoxNDQ3NDogIHVpbnQzMl90IGF1ZGlvX2xhdGVuY3k7CjE0NDc0
OiAgdWludDMyX3QgdmlkZW9fbGF0ZW5jeTsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIGRpc3BsYXlf
Y29udGVudF9zdXBwb3J0IGNvbnRlbnRfc3VwcG9ydDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3Qg
cXNfYml0OwoxNDQ3NDogIHVpbnQ4X3QgcXlfYml0OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBi
b29sIGx0ZV8zNDBtY3NjX3NjcmFtYmxlOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBlZGlkX2hkbWk7
CjE0NDc0OiAgYm9vbCBoZHJfc3VwcG9ydGVkOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3Bh
bmVsX3BhdGNoIHBhbmVsX3BhdGNoOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHZp
ZXcgewoxNDQ3NDogIHVpbnQzMl90IHdpZHRoOwoxNDQ3NDogIHVpbnQzMl90IGhlaWdodDsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19tb2RlX2ZsYWdzIHsKMTQ0NzQ6IAoxNDQ3
NDogIHVpbnQzMl90IElOVEVSTEFDRSA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IE5BVElW
RSA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFBSRUZFUlJFRCA6MTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdWludDMyX3QgUkVEVUNFRF9CTEFOS0lORyA6MTsKMTQ0NzQ6IAoxNDQ3NDog
IHVpbnQzMl90IFZJREVPX09QVElNSVpFRF9SQVRFIDoxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgUEFDS0VEX1BJWEVMX0ZPUk1BVCA6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IFBSRUZF
UlJFRF9WSUVXIDoxOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgVElMRURfTU9ERSA6MTsKMTQ0
NzQ6ICB1aW50MzJfdCBEU0VfTU9ERSA6MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHVpbnQzMl90IE1JUkFDQVNUX1JFRlJFU0hfRElWSURFUjsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY190aW1pbmdfc291cmNlIHsKMTQ0NzQ6ICBUSU1J
TkdfU09VUkNFX1VOREVGSU5FRCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgVElNSU5HX1NPVVJD
RV9VU0VSX0ZPUkNFRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX1VTRVJfT1ZFUlJJREUsCjE0NDc0
OiAgVElNSU5HX1NPVVJDRV9DVVNUT00sCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9FWFBMSUNJVCwK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9FRElEX0NFQV9TVkRfM0QsCjE0
NDc0OiAgVElNSU5HX1NPVVJDRV9FRElEX0NFQV9TVkRfUFJFRkVSUkVELAoxNDQ3NDogIFRJTUlO
R19TT1VSQ0VfRURJRF9DRUFfU1ZEXzQyMCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0VESURfREVU
QUlMRUQsCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9FRElEX0VTVEFCTElTSEVELAoxNDQ3NDogIFRJ
TUlOR19TT1VSQ0VfRURJRF9TVEFOREFSRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0VESURfQ0VB
X1NWRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0VESURfQ1ZUXzNCWVRFLAoxNDQ3NDogIFRJTUlO
R19TT1VSQ0VfRURJRF80QllURSwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX1ZCSU9TLAoxNDQ3NDog
IFRJTUlOR19TT1VSQ0VfQ1YsCjE0NDc0OiAgVElNSU5HX1NPVVJDRV9UViwKMTQ0NzQ6ICBUSU1J
TkdfU09VUkNFX0hETUlfVklDLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdfU09VUkNF
X0RFRkFVTFQsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFRJTUlOR19TT1VSQ0VfQ1VTVE9NX0JB
U0UsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFRJTUlOR19TT1VSQ0VfUkFOR0VMSU1JVCwKMTQ0
NzQ6ICBUSU1JTkdfU09VUkNFX09TX0ZPUkNFRCwKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0lNUExJ
Q0lULAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUSU1JTkdfU09VUkNFX0JBU0lDTU9ERSwKMTQ0
NzQ6IAoxNDQ3NDogIFRJTUlOR19TT1VSQ0VfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHN0ZXJlb18zZF9mZWF0dXJlcyB7CjE0NDc0OiAgYm9vbCBzdXBwb3J0
ZWQgOwoxNDQ3NDogIGJvb2wgYWxsVGltaW5ncyA7CjE0NDc0OiAgYm9vbCBjbG9uZU1vZGUgOwox
NDQ3NDogIGJvb2wgc2NhbGluZyA7CjE0NDc0OiAgYm9vbCBzaW5nbGVGcmFtZVNXUGFja2VkOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY190aW1pbmdfc3VwcG9ydF9tZXRob2Qgewox
NDQ3NDogIFRJTUlOR19TVVBQT1JUX01FVEhPRF9VTkRFRklORUQsCjE0NDc0OiAgVElNSU5HX1NV
UFBPUlRfTUVUSE9EX0VYUExJQ0lULAoxNDQ3NDogIFRJTUlOR19TVVBQT1JUX01FVEhPRF9JTVBM
SUNJVCwKMTQ0NzQ6ICBUSU1JTkdfU1VQUE9SVF9NRVRIT0RfTkFUSVZFCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZGNfbW9kZV9pbmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF93
aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9oZWlnaHQ7CjE0NDc0OiAgdWludDMyX3QgZmll
bGRfcmF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX3RpbWluZ19z
dGFuZGFyZCB0aW1pbmdfc3RhbmRhcmQ7CjE0NDc0OiAgZW51bSBkY190aW1pbmdfc291cmNlIHRp
bWluZ19zb3VyY2U7CjE0NDc0OiAgc3RydWN0IGRjX21vZGVfZmxhZ3MgZmxhZ3M7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3Bvd2VyX3N0YXRlIHsKMTQ0NzQ6ICBEQ19QT1dFUl9T
VEFURV9PTiA9IDEsCjE0NDc0OiAgRENfUE9XRVJfU1RBVEVfU1RBTkRCWSwKMTQ0NzQ6ICBEQ19Q
T1dFUl9TVEFURV9TVVNQRU5ELAoxNDQ3NDogIERDX1BPV0VSX1NUQVRFX09GRgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3ZpZGVvX3Bvd2VyX3N0YXRlIHsKMTQ0NzQ6
ICBEQ19WSURFT19QT1dFUl9VTlNQRUNJRklFRCA9IDAsCjE0NDc0OiAgRENfVklERU9fUE9XRVJf
T04gPSAxLAoxNDQ3NDogIERDX1ZJREVPX1BPV0VSX1NUQU5EQlksCjE0NDc0OiAgRENfVklERU9f
UE9XRVJfU1VTUEVORCwKMTQ0NzQ6ICBEQ19WSURFT19QT1dFUl9PRkYsCjE0NDc0OiAgRENfVklE
RU9fUE9XRVJfSElCRVJOQVRFLAoxNDQ3NDogIERDX1ZJREVPX1BPV0VSX1NIVVRET1dOLAoxNDQ3
NDogIERDX1ZJREVPX1BPV0VSX1VMUFMsCjE0NDc0OiAgRENfVklERU9fUE9XRVJfQUZURVJfUkVT
RVQsCjE0NDc0OiAgRENfVklERU9fUE9XRVJfTUFYSU1VTQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkY19hY3BpX2NtX3Bvd2VyX3N0YXRlIHsKMTQ0NzQ6ICBEQ19BQ1BJX0NNX1BPV0VS
X1NUQVRFX0QwID0gMSwKMTQ0NzQ6ICBEQ19BQ1BJX0NNX1BPV0VSX1NUQVRFX0QxID0gMiwKMTQ0
NzQ6ICBEQ19BQ1BJX0NNX1BPV0VSX1NUQVRFX0QyID0gNCwKMTQ0NzQ6ICBEQ19BQ1BJX0NNX1BP
V0VSX1NUQVRFX0QzID0gOAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19jb25uZWN0
aW9uX3R5cGUgewoxNDQ3NDogIGRjX2Nvbm5lY3Rpb25fbm9uZSwKMTQ0NzQ6ICBkY19jb25uZWN0
aW9uX3NpbmdsZSwKMTQ0NzQ6ICBkY19jb25uZWN0aW9uX21zdF9icmFuY2gsCjE0NDc0OiAgZGNf
Y29ubmVjdGlvbl9hY3RpdmVfZG9uZ2xlCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGNfY3NjX2FkanVzdG1lbnRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBjb250cmFzdDsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBzYXR1cmF0aW9uOwoxNDQ3NDogIHN0cnVjdCBmaXhl
ZDMxXzMyIGJyaWdodG5lc3M7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgaHVlOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkcGNkX2Rvd25zdHJlYW1fcG9ydF9tYXhfYnBjIHsKMTQ0
NzQ6ICBET1dOX1NUUkVBTV9NQVhfOEJQQyA9IDAsCjE0NDc0OiAgRE9XTl9TVFJFQU1fTUFYXzEw
QlBDLAoxNDQ3NDogIERPV05fU1RSRUFNX01BWF8xMkJQQywKMTQ0NzQ6ICBET1dOX1NUUkVBTV9N
QVhfMTZCUEMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBsaW5rX3RyYWlu
aW5nX29mZnNldCB7CjE0NDc0OiAgRFBSWCA9IDAsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVS
MSA9IDEsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSMiA9IDIsCjE0NDc0OiAgTFRUUFJfUEhZ
X1JFUEVBVEVSMyA9IDMsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSNCA9IDQsCjE0NDc0OiAg
TFRUUFJfUEhZX1JFUEVBVEVSNSA9IDUsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSNiA9IDYs
CjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVBVEVSNyA9IDcsCjE0NDc0OiAgTFRUUFJfUEhZX1JFUEVB
VEVSOCA9IDgKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19sdHRwcl9jYXBzIHsK
MTQ0NzQ6ICB1bmlvbiBkcGNkX3JldiByZXZpc2lvbjsKMTQ0NzQ6ICB1aW50OF90IG1vZGU7CjE0
NDc0OiAgdWludDhfdCBtYXhfbGFuZV9jb3VudDsKMTQ0NzQ6ICB1aW50OF90IG1heF9saW5rX3Jh
dGU7CjE0NDc0OiAgdWludDhfdCBwaHlfcmVwZWF0ZXJfY250OwoxNDQ3NDogIHVpbnQ4X3QgbWF4
X2V4dF90aW1lb3V0OwoxNDQ3NDogIHVpbnQ4X3QgYXV4X3JkX2ludGVydmFsWzggLSAxXTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kb25nbGVfY2FwcyB7CjE0NDc0OiAKMTQ0
NzQ6ICBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9uZ2xlX3R5cGU7CjE0NDc0OiAgYm9vbCBl
eHRlbmRlZENhcFZhbGlkOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIGlzX2RwX2hkbWlf
czNkX2NvbnZlcnRlcjsKMTQ0NzQ6ICBib29sIGlzX2RwX2hkbWlfeWNiY3I0MjJfcGFzc190aHJv
dWdoOwoxNDQ3NDogIGJvb2wgaXNfZHBfaGRtaV95Y2JjcjQyMF9wYXNzX3Rocm91Z2g7CjE0NDc0
OiAgYm9vbCBpc19kcF9oZG1pX3ljYmNyNDIyX2NvbnZlcnRlcjsKMTQ0NzQ6ICBib29sIGlzX2Rw
X2hkbWlfeWNiY3I0MjBfY29udmVydGVyOwoxNDQ3NDogIHVpbnQzMl90IGRwX2hkbWlfbWF4X2Jw
YzsKMTQ0NzQ6ICB1aW50MzJfdCBkcF9oZG1pX21heF9waXhlbF9jbGtfaW5fa2h6OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzY2FsaW5nX3RyYW5zZm9ybWF0aW9uIHsKMTQ0NzQ6ICBT
Q0FMSU5HX1RSQU5TRk9STUFUSU9OX1VOSU5JVElBTElaRUQsCjE0NDc0OiAgU0NBTElOR19UUkFO
U0ZPUk1BVElPTl9JREVOVElUWSA9IDB4MDAwMSwKMTQ0NzQ6ICBTQ0FMSU5HX1RSQU5TRk9STUFU
SU9OX0NFTlRFUl9USU1JTkcgPSAweDAwMDIsCjE0NDc0OiAgU0NBTElOR19UUkFOU0ZPUk1BVElP
Tl9GVUxMX1NDUkVFTl9TQ0FMRSA9IDB4MDAwNCwKMTQ0NzQ6ICBTQ0FMSU5HX1RSQU5TRk9STUFU
SU9OX1BSRVNFUlZFX0FTUEVDVF9SQVRJT19TQ0FMRSA9IDB4MDAwOCwKMTQ0NzQ6ICBTQ0FMSU5H
X1RSQU5TRk9STUFUSU9OX0RBTF9ERUNJREUgPSAweDAwMTAsCjE0NDc0OiAgU0NBTElOR19UUkFO
U0ZPUk1BVElPTl9JTlZBTElEID0gMHg4MDAwMDAwMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
U0NBTElOR19UUkFOU0ZPUk1BVElPTl9CRUdJTkcgPSBTQ0FMSU5HX1RSQU5TRk9STUFUSU9OX0lE
RU5USVRZLAoxNDQ3NDogIFNDQUxJTkdfVFJBTlNGT1JNQVRJT05fRU5EID0KMTQ0NzQ6ICAgU0NB
TElOR19UUkFOU0ZPUk1BVElPTl9QUkVTRVJWRV9BU1BFQ1RfUkFUSU9fU0NBTEUKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGlzcGxheV9jb250ZW50X3R5cGUgewoxNDQ3NDogIERJU1BM
QVlfQ09OVEVOVF9UWVBFX05PX0RBVEEgPSAwLAoxNDQ3NDogIERJU1BMQVlfQ09OVEVOVF9UWVBF
X0dSQVBISUNTID0gMSwKMTQ0NzQ6ICBESVNQTEFZX0NPTlRFTlRfVFlQRV9QSE9UTyA9IDIsCjE0
NDc0OiAgRElTUExBWV9DT05URU5UX1RZUEVfQ0lORU1BID0gNCwKMTQ0NzQ6ICBESVNQTEFZX0NP
TlRFTlRfVFlQRV9HQU1FID0gOAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZHdiX3N0ZXJlb19wYXJhbXMgewoxNDQ3NDogIGJvb2wgc3RlcmVvX2VuYWJsZWQ7CjE0NDc0
OiAgZW51bSBkd2Jfc3RlcmVvX3R5cGUgc3RlcmVvX3R5cGU7CjE0NDc0OiAgYm9vbCBzdGVyZW9f
cG9sYXJpdHk7CjE0NDc0OiAgZW51bSBkd2Jfc3RlcmVvX2V5ZV9zZWxlY3Qgc3RlcmVvX2V5ZV9z
ZWxlY3Q7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfZHdiX2Nudl9wYXJhbXMg
ewoxNDQ3NDogIHVuc2lnbmVkIGludCBzcmNfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNy
Y19oZWlnaHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNyb3Bfd2lkdGg7CjE0NDc0OiAgYm9vbCBj
cm9wX2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCBjcm9wX2hlaWdodDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY3JvcF94OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjcm9wX3k7CjE0NDc0OiAgZW51bSBk
d2JfY252X291dF9icGMgY252X291dF9icGM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZGNfZHdiX3BhcmFtcyB7CjE0NDc0OiAgc3RydWN0IGRjX2R3Yl9jbnZfcGFyYW1zIGNudl9w
YXJhbXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRlc3Rfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGRlc3RfaGVpZ2h0OwoxNDQ3NDogIGVudW0gZHdiX3NjYWxlcl9tb2RlIG91dF9mb3JtYXQ7
CjE0NDc0OiAgZW51bSBkd2Jfb3V0cHV0X2RlcHRoIG91dHB1dF9kZXB0aDsKMTQ0NzQ6ICBlbnVt
IGR3Yl9jYXB0dXJlX3JhdGUgY2FwdHVyZV9yYXRlOwoxNDQ3NDogIHN0cnVjdCBzY2FsaW5nX3Rh
cHMgc2NhbGVyX3RhcHM7CjE0NDc0OiAgZW51bSBkd2Jfc3Vic2FtcGxlX3Bvc2l0aW9uIHN1YnNh
bXBsZV9wb3NpdGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqb3V0X3RyYW5z
ZmVyX2Z1bmM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdW5pb24g
YXVkaW9fc2FtcGxlX3JhdGVzIHsKMTQ0NzQ6ICBzdHJ1Y3Qgc2FtcGxlX3JhdGVzIHsKMTQ0NzQ6
ICAgdWludDhfdCBSQVRFXzMyOjE7CjE0NDc0OiAgIHVpbnQ4X3QgUkFURV80NF8xOjE7CjE0NDc0
OiAgIHVpbnQ4X3QgUkFURV80ODoxOwoxNDQ3NDogICB1aW50OF90IFJBVEVfODhfMjoxOwoxNDQ3
NDogICB1aW50OF90IFJBVEVfOTY6MTsKMTQ0NzQ6ICAgdWludDhfdCBSQVRFXzE3Nl80OjE7CjE0
NDc0OiAgIHVpbnQ4X3QgUkFURV8xOTI6MTsKMTQ0NzQ6ICB9IHJhdGU7CjE0NDc0OiAKMTQ0NzQ6
ICB1aW50OF90IGFsbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19zcGVh
a2VyX2ZsYWdzIHsKMTQ0NzQ6ICB1aW50MzJfdCBGTF9GUjoxOwoxNDQ3NDogIHVpbnQzMl90IExG
RToxOwoxNDQ3NDogIHVpbnQzMl90IEZDOjE7CjE0NDc0OiAgdWludDMyX3QgUkxfUlI6MTsKMTQ0
NzQ6ICB1aW50MzJfdCBSQzoxOwoxNDQ3NDogIHVpbnQzMl90IEZMQ19GUkM6MTsKMTQ0NzQ6ICB1
aW50MzJfdCBSTENfUlJDOjE7CjE0NDc0OiAgdWludDMyX3QgU1VQUE9SVF9BSToxOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF1ZGlvX3NwZWFrZXJfaW5mbyB7CjE0NDc0OiAgdWlu
dDMyX3QgQUxMU1BFQUtFUlM6NzsKMTQ0NzQ6ICB1aW50MzJfdCBTVVBQT1JUX0FJOjE7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19pbmZvX2ZsYWdzIHsKMTQ0
NzQ6IAoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgYXVkaW9fc3BlYWtl
cl9mbGFncyBzcGVha2VyX2ZsYWdzOwoxNDQ3NDogICBzdHJ1Y3QgYXVkaW9fc3BlYWtlcl9pbmZv
IGluZm87CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBhbGw7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXVkaW9fZm9ybWF0X2NvZGUgewoxNDQ3NDogIEFVRElPX0ZP
Uk1BVF9DT0RFX0ZJUlNUID0gMSwKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09ERV9MSU5FQVJQQ00g
PSBBVURJT19GT1JNQVRfQ09ERV9GSVJTVCwKMTQ0NzQ6IAoxNDQ3NDogIEFVRElPX0ZPUk1BVF9D
T0RFX0FDMywKMTQ0NzQ6IAoxNDQ3NDogIEFVRElPX0ZPUk1BVF9DT0RFX01QRUcxLAoxNDQ3NDog
CjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfTVAzLAoxNDQ3NDogCjE0NDc0OiAgQVVESU9fRk9S
TUFUX0NPREVfTVBFRzIsCjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfQUFDLAoxNDQ3NDogIEFV
RElPX0ZPUk1BVF9DT0RFX0RUUywKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09ERV9BVFJBQywKMTQ0
NzQ6ICBBVURJT19GT1JNQVRfQ09ERV8xQklUQVVESU8sCjE0NDc0OiAgQVVESU9fRk9STUFUX0NP
REVfRE9MQllESUdJVEFMUExVUywKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09ERV9EVFNfSEQsCjE0
NDc0OiAgQVVESU9fRk9STUFUX0NPREVfTUFUX01MUCwKMTQ0NzQ6ICBBVURJT19GT1JNQVRfQ09E
RV9EU1QsCjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfV01BUFJPLAoxNDQ3NDogIEFVRElPX0ZP
Uk1BVF9DT0RFX0xBU1QsCjE0NDc0OiAgQVVESU9fRk9STUFUX0NPREVfQ09VTlQgPQoxNDQ3NDog
ICBBVURJT19GT1JNQVRfQ09ERV9MQVNUIC0gQVVESU9fRk9STUFUX0NPREVfRklSU1QKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19tb2RlIHsKMTQ0NzQ6IAoxNDQ3NDogIGVu
dW0gYXVkaW9fZm9ybWF0X2NvZGUgZm9ybWF0X2NvZGU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90
IGNoYW5uZWxfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiBhdWRpb19zYW1wbGVfcmF0ZXMg
c2FtcGxlX3JhdGVzOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IHNh
bXBsZV9zaXplOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2JpdF9yYXRlOwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgdmVuZG9yX3NwZWNpZmljOwoxNDQ3NDogIH07CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXVkaW9faW5mbyB7CjE0NDc0OiAgc3RydWN0IGF1ZGlvX2lu
Zm9fZmxhZ3MgZmxhZ3M7CjE0NDc0OiAgdWludDMyX3QgdmlkZW9fbGF0ZW5jeTsKMTQ0NzQ6ICB1
aW50MzJfdCBhdWRpb19sYXRlbmN5OwoxNDQ3NDogIHVpbnQzMl90IGRpc3BsYXlfaW5kZXg7CjE0
NDc0OiAgdWludDhfdCBkaXNwbGF5X25hbWVbMjBdOwoxNDQ3NDogIHVpbnQzMl90IG1hbnVmYWN0
dXJlX2lkOwoxNDQ3NDogIHVpbnQzMl90IHByb2R1Y3RfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MzJfdCBwb3J0X2lkWzJdOwoxNDQ3NDogIHVpbnQzMl90IG1vZGVfY291bnQ7CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgYXVkaW9fbW9kZSBtb2Rlc1sxNl07CjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0
IGF1ZGlvX2NoZWNrIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYXVkaW9fcGFja2V0X3R5cGU7CjE0
NDc0OiAgdW5zaWduZWQgaW50IG1heF9hdWRpb3NhbXBsZV9yYXRlOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBhY2F0OwoxNDQ3NDogfTsKMTQ0NzQ6IGVudW0gZGNfaW5mb2ZyYW1lX3R5cGUgewoxNDQ3
NDogIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfVkVORE9SID0gMHg4MSwKMTQ0NzQ6ICBEQ19IRE1J
X0lORk9GUkFNRV9UWVBFX0FWSSA9IDB4ODIsCjE0NDc0OiAgRENfSERNSV9JTkZPRlJBTUVfVFlQ
RV9TUEQgPSAweDgzLAoxNDQ3NDogIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfQVVESU8gPSAweDg0
LAoxNDQ3NDogIERDX0RQX0lORk9GUkFNRV9UWVBFX1BQUyA9IDB4MTAsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgewoxNDQ3NDogIGJvb2wgdmFsaWQ7CjE0
NDc0OiAgdWludDhfdCBoYjA7CjE0NDc0OiAgdWludDhfdCBoYjE7CjE0NDc0OiAgdWludDhfdCBo
YjI7CjE0NDc0OiAgdWludDhfdCBoYjM7CjE0NDc0OiAgdWludDhfdCBzYlszMl07CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXRfMTI4IHsKMTQ0NzQ6ICBib29s
IHZhbGlkOwoxNDQ3NDogIHVpbnQ4X3QgaGIwOwoxNDQ3NDogIHVpbnQ4X3QgaGIxOwoxNDQ3NDog
IHVpbnQ4X3QgaGIyOwoxNDQ3NDogIHVpbnQ4X3QgaGIzOwoxNDQ3NDogIHVpbnQ4X3Qgc2JbMTI4
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxh
bmVfZmxpcF90aW1lIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdGltZV9lbGFwc2VkX2luX3VzWzEw
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHByZXZf
dXBkYXRlX3RpbWVfaW5fdXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHNyX2Nv
bmZpZyB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBwc3JfdmVyc2lvbjsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcHNyX3JmYl9zZXR1cF90aW1lOwoxNDQ3NDogIGJvb2wgcHNyX2V4aXRfbGlua190cmFp
bmluZ19yZXF1aXJlZDsKMTQ0NzQ6ICBib29sIHBzcl9mcmFtZV9jYXB0dXJlX2luZGljYXRpb25f
cmVxOwoxNDQ3NDogIHVuc2lnbmVkIGludCBwc3Jfc2RwX3RyYW5zbWl0X2xpbmVfbnVtX2RlYWRs
aW5lOwoxNDQ3NDogIGJvb2wgYWxsb3dfc211X29wdGltaXphdGlvbnM7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiB1bmlvbiBkbWN1X3Bzcl9sZXZlbCB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdW5zaWduZWQgaW50IFNLSVBfQ1JDOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBTS0lQX0RQ
X1ZJRF9TVFJFQU1fRElTQUJMRToxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgU0tJUF9QSFlfUE9X
RVJfRE9XTjoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgU0tJUF9BVVhfQUNLX0NIRUNLOjE7CjE0
NDc0OiAgIHVuc2lnbmVkIGludCBTS0lQX0NSVENfRElTQUJMRToxOwoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgU0tJUF9BVVhfUkZCX0NBUFRVUkVfQ0hFQ0s6MTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50
IFNLSVBfU01VX05PVElGSUNBVElPTjoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgU0tJUF9BVVRP
X1NUQVRFX0FEVkFOQ0U6MTsKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IERJU0FCTEVfUFNSX0VOVFJZ
X0FCT1JUOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBTS0lQX1NJTkdMRV9PVEdfRElTQUJMRTox
OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgUkVTRVJWRUQ6MjI7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCB1MzJhbGw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHBo
eXNpY2FsX3BoeV9pZCB7CjE0NDc0OiAgUEhZTERfMCwKMTQ0NzQ6ICBQSFlMRF8xLAoxNDQ3NDog
IFBIWUxEXzIsCjE0NDc0OiAgUEhZTERfMywKMTQ0NzQ6ICBQSFlMRF80LAoxNDQ3NDogIFBIWUxE
XzUsCjE0NDc0OiAgUEhZTERfNiwKMTQ0NzQ6ICBQSFlMRF83LAoxNDQ3NDogIFBIWUxEXzgsCjE0
NDc0OiAgUEhZTERfOSwKMTQ0NzQ6ICBQSFlMRF9DT1VOVCwKMTQ0NzQ6ICBQSFlMRF9VTktOT1dO
ID0gKC0xTCkKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGh5X3R5cGUgewoxNDQ3NDog
IFBIWV9UWVBFX1VOS05PV04gPSAxLAoxNDQ3NDogIFBIWV9UWVBFX1BDSUVfUEhZID0gMiwKMTQ0
NzQ6ICBQSFlfVFlQRV9VTklQSFkgPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHBzcl9jb250ZXh0IHsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gY2hhbm5lbF9pZCBjaGFubmVsOwox
NDQ3NDogCjE0NDc0OiAgZW51bSB0cmFuc21pdHRlciB0cmFuc21pdHRlcklkOwoxNDQ3NDogCjE0
NDc0OiAgZW51bSBlbmdpbmVfaWQgZW5naW5lSWQ7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGNvbnRy
b2xsZXJfaWQgY29udHJvbGxlcklkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBwaHlfdHlwZSBwaHlU
eXBlOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBwaHlzaWNhbF9waHlfaWQgc211UGh5SWQ7CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBj
cnRjVGltaW5nVmVydGljYWxUb3RhbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBi
b29sIHBzclN1cHBvcnRlZERpc3BsYXlDb25maWc7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIHBzckV4
aXRMaW5rVHJhaW5pbmdSZXF1aXJlZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIHBzckZyYW1lQ2FwdHVyZUluZGljYXRpb25SZXE7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHNkcFRyYW5zbWl0
TGluZU51bURlYWRsaW5lOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVk
IGludCB2c3luY19yYXRlX2h6OwoxNDQ3NDogIHVuc2lnbmVkIGludCBza2lwUHNyV2FpdEZvclBs
bExvY2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bWJlck9mQ29udHJvbGxlcnM7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIHJmYl91cGRhdGVfYXV0b19lbjsK
MTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB0aW1laHlzdF9mcmFtZXM7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgaHlzdF9saW5lczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgYXV4X3JlcGVhdHM7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiBkbWN1
X3Bzcl9sZXZlbCBwc3JfbGV2ZWw7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5z
aWduZWQgaW50IGZyYW1lX2RlbGF5OwoxNDQ3NDogIGJvb2wgYWxsb3dfc211X29wdGltaXphdGlv
bnM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY29sb3JzcGFjZV90cmFuc2Zvcm0g
ewoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIG1hdHJpeFsxMl07CjE0NDc0OiAgYm9vbCBlbmFi
bGVfcmVtYXA7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGkyY19tb3RfbW9kZSB7CjE0
NDc0OiAgSTJDX01PVF9VTkRFRiwKMTQ0NzQ6ICBJMkNfTU9UX1RSVUUsCjE0NDc0OiAgSTJDX01P
VF9GQUxTRQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IEFzaWNTdGF0ZUV4IHsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgbWVtb3J5Q2xvY2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRpc3Bs
YXlDbG9jazsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZW5naW5lQ2xvY2s7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG1heFN1cHBvcnRlZERwcENsb2NrOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHBDbG9j
azsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc29jQ2xvY2s7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRj
ZkNsb2NrRGVlcFNsZWVwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBmQ2xvY2s7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHBoeUNsb2NrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVt
IGRjX2Nsb2NrX3R5cGUgewoxNDQ3NDogIERDX0NMT0NLX1RZUEVfRElTUENMSyA9IDAsCjE0NDc0
OiAgRENfQ0xPQ0tfVFlQRV9EUFBDTEsgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRjX2Nsb2NrX2NvbmZpZyB7CjE0NDc0OiAgdWludDMyX3QgbWF4X2Nsb2NrX2toejsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fY2xvY2tfa2h6OwoxNDQ3NDogIHVpbnQzMl90IGJ3X3JlcXVpcmVx
dWlyZWRfY2xvY2tfa2h6OwoxNDQ3NDogIHVpbnQzMl90IGN1cnJlbnRfY2xvY2tfa2h6OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkc2Nfc2xpY2VfY2FwczEgewoxNDQ3
NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU18xIDogMTsKMTQ0NzQ6ICAg
dWludDhfdCBOVU1fU0xJQ0VTXzIgOiAxOwoxNDQ3NDogICB1aW50OF90IFJFU0VSVkVEIDogMTsK
MTQ0NzQ6ICAgdWludDhfdCBOVU1fU0xJQ0VTXzQgOiAxOwoxNDQ3NDogICB1aW50OF90IE5VTV9T
TElDRVNfNiA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU184IDogMTsKMTQ0NzQ6ICAg
dWludDhfdCBOVU1fU0xJQ0VTXzEwIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBOVU1fU0xJQ0VTXzEy
IDogMTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDhfdCByYXc7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiB1bmlvbiBkc2Nfc2xpY2VfY2FwczIgewoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0
OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU18xNiA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNF
U18yMCA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgTlVNX1NMSUNFU18yNCA6IDE7CjE0NDc0OiAgIHVp
bnQ4X3QgUkVTRVJWRUQgOiA1OwoxNDQ3NDogIH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGRzY19jb2xvcl9mb3JtYXRzIHsKMTQ0NzQ6
ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFJHQiA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgWUNC
Q1JfNDQ0IDogMTsKMTQ0NzQ6ICAgdWludDhfdCBZQ0JDUl9TSU1QTEVfNDIyIDogMTsKMTQ0NzQ6
ICAgdWludDhfdCBZQ0JDUl9OQVRJVkVfNDIyIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBZQ0JDUl9O
QVRJVkVfNDIwIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRCA6IDM7CjE0NDc0OiAgfSBi
aXRzOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24g
ZHNjX2NvbG9yX2RlcHRoIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50OF90IFJFU0VS
VkVEMSA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgQ09MT1JfREVQVEhfOF9CUEMgOiAxOwoxNDQ3NDog
ICB1aW50OF90IENPTE9SX0RFUFRIXzEwX0JQQyA6IDE7CjE0NDc0OiAgIHVpbnQ4X3QgQ09MT1Jf
REVQVEhfMTJfQlBDIDogMTsKMTQ0NzQ6ICAgdWludDhfdCBSRVNFUlZFRDIgOiAzOwoxNDQ3NDog
IH0gYml0czsKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyB7CjE0NDc0OiAgYm9vbCBpc19kc2Nfc3VwcG9ydGVkOwox
NDQ3NDogIHVpbnQ4X3QgZHNjX3ZlcnNpb247CjE0NDc0OiAgaW50MzJfdCByY19idWZmZXJfc2l6
ZTsKMTQ0NzQ6ICB1bmlvbiBkc2Nfc2xpY2VfY2FwczEgc2xpY2VfY2FwczE7CjE0NDc0OiAgdW5p
b24gZHNjX3NsaWNlX2NhcHMyIHNsaWNlX2NhcHMyOwoxNDQ3NDogIGludDMyX3QgbGJfYml0X2Rl
cHRoOwoxNDQ3NDogIGJvb2wgaXNfYmxvY2tfcHJlZF9zdXBwb3J0ZWQ7CjE0NDc0OiAgaW50MzJf
dCBlZHBfbWF4X2JpdHNfcGVyX3BpeGVsOwoxNDQ3NDogIHVuaW9uIGRzY19jb2xvcl9mb3JtYXRz
IGNvbG9yX2Zvcm1hdHM7CjE0NDc0OiAgdW5pb24gZHNjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRo
OwoxNDQ3NDogIGludDMyX3QgdGhyb3VnaHB1dF9tb2RlXzBfbXBzOwoxNDQ3NDogIGludDMyX3Qg
dGhyb3VnaHB1dF9tb2RlXzFfbXBzOwoxNDQ3NDogIGludDMyX3QgbWF4X3NsaWNlX3dpZHRoOwox
NDQ3NDogIHVpbnQzMl90IGJwcF9pbmNyZW1lbnRfZGl2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
ICB1aW50MzJfdCBicmFuY2hfb3ZlcmFsbF90aHJvdWdocHV0XzBfbXBzOwoxNDQ3NDogIHVpbnQz
Ml90IGJyYW5jaF9vdmVyYWxsX3Rocm91Z2hwdXRfMV9tcHM7CjE0NDc0OiAgdWludDMyX3QgYnJh
bmNoX21heF9saW5lX3dpZHRoOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZGNjZy5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY2NnIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDog
IGNvbnN0IHN0cnVjdCBkY2NnX2Z1bmNzICpmdW5jczsKMTQ0NzQ6IAoxNDQ3NDogIGludCByZWZf
ZHBwY2xrOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjY2dfZnVuY3MgewoxNDQ3
NDogIHZvaWQgKCp1cGRhdGVfZHBwX2R0bykoc3RydWN0IGRjY2cgKmRjY2csCjE0NDc0OiAgICBp
bnQgZHBwX2luc3QsCjE0NDc0OiAgICBpbnQgcmVxX2RwcGNsayk7CjE0NDc0OiAgdm9pZCAoKmdl
dF9kY2NnX3JlZl9mcmVxKShzdHJ1Y3QgZGNjZyAqZGNjZywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGlu
dCB4dGFsaW5fZnJlcV9pbktoeiwKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCAqZGNjZ19yZWZfZnJl
cV9pbktoeik7CjE0NDc0OiAgdm9pZCAoKmRjY2dfaW5pdCkoc3RydWN0IGRjY2cgKmRjY2cpOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMjcgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFs
LmgiIDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIgMQoxNDQ3NDog
IyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9j
bGtfbWdyLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9kYy5oIiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGMuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMg
MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbG9nZ2Vy
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5
cGVzLmgiIDIKMTQ0NzQ6ICMgNzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIgoxNDQ3NDogc3RydWN0IGRhbF9sb2dnZXI7CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCB7CjE0NDc0OiAgY2hhciAqYnVm
OwoxNDQ3NDogIHNpemVfdCBwb3M7CjE0NDc0OiAgc2l6ZV90IHNpemU7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGRjX2xvZ190eXBlIHsKMTQ0NzQ6ICBMT0dfRVJST1IgPSAwLAoxNDQ3
NDogIExPR19XQVJOSU5HLAoxNDQ3NDogIExPR19ERUJVRywKMTQ0NzQ6ICBMT0dfREMsCjE0NDc0
OiAgTE9HX0RUTiwKMTQ0NzQ6ICBMT0dfU1VSRkFDRSwKMTQ0NzQ6ICBMT0dfSFdfSE9UUExVRywK
MTQ0NzQ6ICBMT0dfSFdfTElOS19UUkFJTklORywKMTQ0NzQ6ICBMT0dfSFdfU0VUX01PREUsCjE0
NDc0OiAgTE9HX0hXX1JFU1VNRV9TMywKMTQ0NzQ6ICBMT0dfSFdfQVVESU8sCjE0NDc0OiAgTE9H
X0hXX0hQRF9JUlEsCjE0NDc0OiAgTE9HX01TVCwKMTQ0NzQ6ICBMT0dfU0NBTEVSLAoxNDQ3NDog
IExPR19CSU9TLAoxNDQ3NDogIExPR19CQU5EV0lEVEhfQ0FMQ1MsCjE0NDc0OiAgTE9HX0JBTkRX
SURUSF9WQUxJREFUSU9OLAoxNDQ3NDogIExPR19JMkNfQVVYLAoxNDQ3NDogIExPR19TWU5DLAox
NDQ3NDogIExPR19CQUNLTElHSFQsCjE0NDc0OiAgTE9HX0ZFQVRVUkVfT1ZFUlJJREUsCjE0NDc0
OiAgTE9HX0RFVEVDVElPTl9FRElEX1BBUlNFUiwKMTQ0NzQ6ICBMT0dfREVURUNUSU9OX0RQX0NB
UFMsCjE0NDc0OiAgTE9HX1JFU09VUkNFLAoxNDQ3NDogIExPR19ETUwsCjE0NDc0OiAgTE9HX0VW
RU5UX01PREVfU0VULAoxNDQ3NDogIExPR19FVkVOVF9ERVRFQ1RJT04sCjE0NDc0OiAgTE9HX0VW
RU5UX0xJTktfVFJBSU5JTkcsCjE0NDc0OiAgTE9HX0VWRU5UX0xJTktfTE9TUywKMTQ0NzQ6ICBM
T0dfRVZFTlRfVU5ERVJGTE9XLAoxNDQ3NDogIExPR19JRl9UUkFDRSwKMTQ0NzQ6ICBMT0dfUEVS
Rl9UUkFDRSwKMTQ0NzQ6ICBMT0dfRElTUExBWVNUQVRTLAoxNDQ3NDogIExPR19IRE1JX1JFVElN
RVJfUkVEUklWRVIsCjE0NDc0OiAgTE9HX0RTQywKMTQ0NzQ6ICBMT0dfRFdCLAoxNDQ3NDogIExP
R19HQU1NQV9ERUJVRywKMTQ0NzQ6ICBMT0dfTUFYX0hXX1BPSU5UUywKMTQ0NzQ6ICBMT0dfQUxM
X1RGX0NIQU5ORUxTLAoxNDQ3NDogIExPR19TQU1QTEVfMURMVVQsCjE0NDc0OiAgTE9HX1NFQ1RJ
T05fVE9UQUxfQ09VTlQKMTQ0NzQ6IH07CjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgiIDEKMTQ0NzQ6
ICMgNDAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dw
aW9fdHlwZXMuaCIKMTQ0NzQ6IGVudW0gZ3Bpb19yZXN1bHQgewoxNDQ3NDogIEdQSU9fUkVTVUxU
X09LLAoxNDQ3NDogIEdQSU9fUkVTVUxUX05VTExfSEFORExFLAoxNDQ3NDogIEdQSU9fUkVTVUxU
X0lOVkFMSURfREFUQSwKMTQ0NzQ6ICBHUElPX1JFU1VMVF9ERVZJQ0VfQlVTWSwKMTQ0NzQ6ICBH
UElPX1JFU1VMVF9PUEVOX0ZBSUxFRCwKMTQ0NzQ6ICBHUElPX1JFU1VMVF9BTFJFQURZX09QRU5F
RCwKMTQ0NzQ6ICBHUElPX1JFU1VMVF9OT05fU1BFQ0lGSUNfRVJST1IKMTQ0NzQ6IH07CjE0NDc0
OiAjIDU4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9n
cGlvX3R5cGVzLmgiCjE0NDc0OiBlbnVtIGdwaW9faWQgewoxNDQ3NDogIEdQSU9fSURfVU5LTk9X
TiA9ICgtMSksCjE0NDc0OiAgR1BJT19JRF9ERENfREFUQSwKMTQ0NzQ6ICBHUElPX0lEX0REQ19D
TE9DSywKMTQ0NzQ6ICBHUElPX0lEX0dFTkVSSUMsCjE0NDc0OiAgR1BJT19JRF9IUEQsCjE0NDc0
OiAgR1BJT19JRF9HUElPX1BBRCwKMTQ0NzQ6ICBHUElPX0lEX1ZJUF9QQUQsCjE0NDc0OiAgR1BJ
T19JRF9TWU5DLAoxNDQ3NDogIEdQSU9fSURfR1NMLAoxNDQ3NDogIEdQSU9fSURfQ09VTlQsCjE0
NDc0OiAgR1BJT19JRF9NSU4gPSBHUElPX0lEX0REQ19EQVRBLAoxNDQ3NDogIEdQSU9fSURfTUFY
ID0gR1BJT19JRF9HU0wKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBncGlvX3Bpbl9pbmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCBvZmZzZXQ7CjE0
NDc0OiAgdWludDMyX3Qgb2Zmc2V0X3k7CjE0NDc0OiAgdWludDMyX3Qgb2Zmc2V0X2VuOwoxNDQ3
NDogIHVpbnQzMl90IG9mZnNldF9tYXNrOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbWFzazsK
MTQ0NzQ6ICB1aW50MzJfdCBtYXNrX3k7CjE0NDc0OiAgdWludDMyX3QgbWFza19lbjsKMTQ0NzQ6
ICB1aW50MzJfdCBtYXNrX21hc2s7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGdwaW9f
cGluX291dHB1dF9zdGF0ZSB7CjE0NDc0OiAgR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FDVElWRV9M
T1csCjE0NDc0OiAgR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FDVElWRV9ISUdILAoxNDQ3NDogIEdQ
SU9fUElOX09VVFBVVF9TVEFURV9ERUZBVUxUID0gR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FDVElW
RV9MT1cKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZ3Bpb19nZW5lcmljIHsKMTQ0NzQ6
ICBHUElPX0dFTkVSSUNfVU5LTk9XTiA9ICgtMSksCjE0NDc0OiAgR1BJT19HRU5FUklDX0EsCjE0
NDc0OiAgR1BJT19HRU5FUklDX0IsCjE0NDc0OiAgR1BJT19HRU5FUklDX0MsCjE0NDc0OiAgR1BJ
T19HRU5FUklDX0QsCjE0NDc0OiAgR1BJT19HRU5FUklDX0UsCjE0NDc0OiAgR1BJT19HRU5FUklD
X0YsCjE0NDc0OiAgR1BJT19HRU5FUklDX0csCjE0NDc0OiAgR1BJT19HRU5FUklDX0NPVU5ULAox
NDQ3NDogIEdQSU9fR0VORVJJQ19NSU4gPSBHUElPX0dFTkVSSUNfQSwKMTQ0NzQ6ICBHUElPX0dF
TkVSSUNfTUFYID0gR1BJT19HRU5FUklDX0IKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0g
Z3Bpb19ocGQgewoxNDQ3NDogIEdQSU9fSFBEX1VOS05PV04gPSAoLTEpLAoxNDQ3NDogIEdQSU9f
SFBEXzEsCjE0NDc0OiAgR1BJT19IUERfMiwKMTQ0NzQ6ICBHUElPX0hQRF8zLAoxNDQ3NDogIEdQ
SU9fSFBEXzQsCjE0NDc0OiAgR1BJT19IUERfNSwKMTQ0NzQ6ICBHUElPX0hQRF82LAoxNDQ3NDog
IEdQSU9fSFBEX0NPVU5ULAoxNDQ3NDogIEdQSU9fSFBEX01JTiA9IEdQSU9fSFBEXzEsCjE0NDc0
OiAgR1BJT19IUERfTUFYID0gR1BJT19IUERfNgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBncGlvX2dwaW9fcGFkIHsKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEX1VOS05PV04gPSAoLTEpLAox
NDQ3NDogIEdQSU9fR1BJT19QQURfMCwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzEsCjE0NDc0OiAg
R1BJT19HUElPX1BBRF8yLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMywKMTQ0NzQ6ICBHUElPX0dQ
SU9fUEFEXzQsCjE0NDc0OiAgR1BJT19HUElPX1BBRF81LAoxNDQ3NDogIEdQSU9fR1BJT19QQURf
NiwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzcsCjE0NDc0OiAgR1BJT19HUElPX1BBRF84LAoxNDQ3
NDogIEdQSU9fR1BJT19QQURfOSwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzEwLAoxNDQ3NDogIEdQ
SU9fR1BJT19QQURfMTEsCjE0NDc0OiAgR1BJT19HUElPX1BBRF8xMiwKMTQ0NzQ6ICBHUElPX0dQ
SU9fUEFEXzEzLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMTQsCjE0NDc0OiAgR1BJT19HUElPX1BB
RF8xNSwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzE2LAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMTcs
CjE0NDc0OiAgR1BJT19HUElPX1BBRF8xOCwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzE5LAoxNDQ3
NDogIEdQSU9fR1BJT19QQURfMjAsCjE0NDc0OiAgR1BJT19HUElPX1BBRF8yMSwKMTQ0NzQ6ICBH
UElPX0dQSU9fUEFEXzIyLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMjMsCjE0NDc0OiAgR1BJT19H
UElPX1BBRF8yNCwKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzI1LAoxNDQ3NDogIEdQSU9fR1BJT19Q
QURfMjYsCjE0NDc0OiAgR1BJT19HUElPX1BBRF8yNywKMTQ0NzQ6ICBHUElPX0dQSU9fUEFEXzI4
LAoxNDQ3NDogIEdQSU9fR1BJT19QQURfMjksCjE0NDc0OiAgR1BJT19HUElPX1BBRF8zMCwKMTQ0
NzQ6ICBHUElPX0dQSU9fUEFEX0NPVU5ULAoxNDQ3NDogIEdQSU9fR1BJT19QQURfTUlOID0gR1BJ
T19HUElPX1BBRF8wLAoxNDQ3NDogIEdQSU9fR1BJT19QQURfTUFYID0gR1BJT19HUElPX1BBRF8z
MAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX3ZpcF9wYWQgewoxNDQ3NDogIEdQ
SU9fVklQX1BBRF9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgR1BJT19W
SVBfUEFEX1NDTCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgR1BJT19WSVBfUEFEX1NEQSwKMTQ0
NzQ6ICBHUElPX1ZJUF9QQURfVkhBRCwKMTQ0NzQ6ICBHUElPX1ZJUF9QQURfVlBIQ1RMLAoxNDQ3
NDogIEdQSU9fVklQX1BBRF9WSVBDTEssCjE0NDc0OiAgR1BJT19WSVBfUEFEX1ZJRCwKMTQ0NzQ6
ICBHUElPX1ZJUF9QQURfVlBDTEswLAoxNDQ3NDogIEdQSU9fVklQX1BBRF9EVkFMSUQsCjE0NDc0
OiAgR1BJT19WSVBfUEFEX1BTWU5DLAoxNDQ3NDogIEdQSU9fVklQX1BBRF9DT1VOVCwKMTQ0NzQ6
ICBHUElPX1ZJUF9QQURfTUlOID0gR1BJT19WSVBfUEFEX1NDTCwKMTQ0NzQ6ICBHUElPX1ZJUF9Q
QURfTUFYID0gR1BJT19WSVBfUEFEX1BTWU5DCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IGdwaW9fc3luYyB7CjE0NDc0OiAgR1BJT19TWU5DX1VOS05PV04gPSAoLTEpLAoxNDQ3NDogIEdQ
SU9fU1lOQ19IU1lOQ19BLAoxNDQ3NDogIEdQSU9fU1lOQ19WU1lOQ19BLAoxNDQ3NDogIEdQSU9f
U1lOQ19IU1lOQ19CLAoxNDQ3NDogIEdQSU9fU1lOQ19WU1lOQ19CLAoxNDQ3NDogIEdQSU9fU1lO
Q19DT1VOVCwKMTQ0NzQ6ICBHUElPX1NZTkNfTUlOID0gR1BJT19TWU5DX0hTWU5DX0EsCjE0NDc0
OiAgR1BJT19TWU5DX01BWCA9IEdQSU9fU1lOQ19WU1lOQ19CCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIGdwaW9fZ3NsIHsKMTQ0NzQ6ICBHUElPX0dTTF9VTktOT1dOID0gKC0xKSwKMTQ0
NzQ6ICBHUElPX0dTTF9HRU5MT0NLX0NMT0NLLAoxNDQ3NDogIEdQSU9fR1NMX0dFTkxPQ0tfVlNZ
TkMsCjE0NDc0OiAgR1BJT19HU0xfU1dBUExPQ0tfQSwKMTQ0NzQ6ICBHUElPX0dTTF9TV0FQTE9D
S19CLAoxNDQ3NDogIEdQSU9fR1NMX0NPVU5ULAoxNDQ3NDogIEdQSU9fR1NMX01JTiA9IEdQSU9f
R1NMX0dFTkxPQ0tfQ0xPQ0ssCjE0NDc0OiAgR1BJT19HU0xfTUFYID0gR1BJT19HU0xfU1dBUExP
Q0tfQgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZ3Bpb19kZGNfbGluZSB7CjE0NDc0OiAgR1BJT19ERENfTElORV9V
TktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElPX0REQ19MSU5FX0REQzEsCjE0NDc0OiAgR1BJT19E
RENfTElORV9EREMyLAoxNDQ3NDogIEdQSU9fRERDX0xJTkVfRERDMywKMTQ0NzQ6ICBHUElPX0RE
Q19MSU5FX0REQzQsCjE0NDc0OiAgR1BJT19ERENfTElORV9EREM1LAoxNDQ3NDogIEdQSU9fRERD
X0xJTkVfRERDNiwKMTQ0NzQ6ICBHUElPX0REQ19MSU5FX0REQ19WR0EsCjE0NDc0OiAgR1BJT19E
RENfTElORV9WSVBfUEFELAoxNDQ3NDogIEdQSU9fRERDX0xJTkVfSTJDX1BBRCA9IEdQSU9fRERD
X0xJTkVfVklQX1BBRCwKMTQ0NzQ6ICBHUElPX0REQ19MSU5FX0NPVU5ULAoxNDQ3NDogIEdQSU9f
RERDX0xJTkVfTUlOID0gR1BJT19ERENfTElORV9EREMxLAoxNDQ3NDogIEdQSU9fRERDX0xJTkVf
TUFYID0gR1BJT19ERENfTElORV9JMkNfUEFECjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX21vZGUgewoxNDQ3
NDogIEdQSU9fTU9ERV9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElPX01PREVfSU5QVVQsCjE0
NDc0OiAgR1BJT19NT0RFX09VVFBVVCwKMTQ0NzQ6ICBHUElPX01PREVfRkFTVF9PVVRQVVQsCjE0
NDc0OiAgR1BJT19NT0RFX0hBUkRXQVJFLAoxNDQ3NDogIEdQSU9fTU9ERV9JTlRFUlJVUFQKMTQ0
NzQ6IH07CjE0NDc0OiAjIDI0NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvZ3Bpb190eXBlcy5oIgoxNDQ3NDogZW51bSBncGlvX3NpZ25hbF9zb3VyY2Ug
ewoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElP
X1NJR05BTF9TT1VSQ0VfREFDQV9TVEVSRU9fU1lOQywKMTQ0NzQ6ICBHUElPX1NJR05BTF9TT1VS
Q0VfUEFTU19USFJPVUdIX1NURVJFT19TWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9E
QUNCX1NURVJFT19TWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNBX0hTWU5DLAox
NDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNCX0hTWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFM
X1NPVVJDRV9EQUNBX1ZTWU5DLAoxNDQ3NDogIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNCX1ZTWU5D
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX3N0ZXJlb19zb3VyY2UgewoxNDQ3
NDogIEdQSU9fU1RFUkVPX1NPVVJDRV9VTktOT1dOID0gKC0xKSwKMTQ0NzQ6ICBHUElPX1NURVJF
T19TT1VSQ0VfRDEsCjE0NDc0OiAgR1BJT19TVEVSRU9fU09VUkNFX0QyLAoxNDQ3NDogIEdQSU9f
U1RFUkVPX1NPVVJDRV9EMywKMTQ0NzQ6ICBHUElPX1NURVJFT19TT1VSQ0VfRDQsCjE0NDc0OiAg
R1BJT19TVEVSRU9fU09VUkNFX0Q1LAoxNDQ3NDogIEdQSU9fU1RFUkVPX1NPVVJDRV9ENgoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVt
IGdwaW9fY29uZmlnX3R5cGUgewoxNDQ3NDogIEdQSU9fQ09ORklHX1RZUEVfTk9ORSwKMTQ0NzQ6
ICBHUElPX0NPTkZJR19UWVBFX0REQywKMTQ0NzQ6ICBHUElPX0NPTkZJR19UWVBFX0hQRCwKMTQ0
NzQ6ICBHUElPX0NPTkZJR19UWVBFX0dFTkVSSUNfTVVYLAoxNDQ3NDogIEdQSU9fQ09ORklHX1RZ
UEVfR1NMX01VWCwKMTQ0NzQ6ICBHUElPX0NPTkZJR19UWVBFX0kyQ19BVVhfRFVBTF9NT0RFCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBncGlvX2RkY19jb25m
aWdfdHlwZSB7CjE0NDc0OiAgR1BJT19ERENfQ09ORklHX1RZUEVfTU9ERV9BVVgsCjE0NDc0OiAg
R1BJT19ERENfQ09ORklHX1RZUEVfTU9ERV9JMkMsCjE0NDc0OiAgR1BJT19ERENfQ09ORklHX1RZ
UEVfUE9MTF9GT1JfQ09OTkVDVCwKMTQ0NzQ6ICBHUElPX0REQ19DT05GSUdfVFlQRV9QT0xMX0ZP
Ul9ESVNDT05ORUNULAoxNDQ3NDogIEdQSU9fRERDX0NPTkZJR19UWVBFX0RJU0FCTEVfUE9MTElO
RwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdwaW9fZGRjX2NvbmZpZyB7CjE0NDc0
OiAgZW51bSBncGlvX2RkY19jb25maWdfdHlwZSB0eXBlOwoxNDQ3NDogIGJvb2wgZGF0YV9lbl9i
aXRfcHJlc2VudDsKMTQ0NzQ6ICBib29sIGNsb2NrX2VuX2JpdF9wcmVzZW50OwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncGlvX2hwZF9jb25maWcgewox
NDQ3NDogIHVpbnQzMl90IGRlbGF5X29uX2Nvbm5lY3Q7CjE0NDc0OiAgdWludDMyX3QgZGVsYXlf
b25fZGlzY29ubmVjdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncGlvX2dlbmVy
aWNfbXV4X2NvbmZpZyB7CjE0NDc0OiAgYm9vbCBlbmFibGVfb3V0cHV0X2Zyb21fbXV4OwoxNDQ3
NDogIGVudW0gZ3Bpb19zaWduYWxfc291cmNlIG11eF9zZWxlY3Q7CjE0NDc0OiAgZW51bSBncGlv
X3N0ZXJlb19zb3VyY2Ugc3RlcmVvX3NlbGVjdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gZ3Bpb19nc2xfbXV4X2NvbmZpZ190eXBlIHsKMTQ0NzQ6ICBHUElPX0dTTF9NVVhfQ09ORklH
X1RZUEVfRElTQUJMRSwKMTQ0NzQ6ICBHUElPX0dTTF9NVVhfQ09ORklHX1RZUEVfVElNSU5HX1NZ
TkMsCjE0NDc0OiAgR1BJT19HU0xfTVVYX0NPTkZJR19UWVBFX0ZMSVBfU1lOQwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdwaW9fZ3NsX211eF9jb25maWcgewoxNDQ3NDogIGVudW0g
Z3Bpb19nc2xfbXV4X2NvbmZpZ190eXBlIHR5cGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVp
bnQzMl90IGdzbF9ncm91cDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncGlvX2Nv
bmZpZ19kYXRhIHsKMTQ0NzQ6ICBlbnVtIGdwaW9fY29uZmlnX3R5cGUgdHlwZTsKMTQ0NzQ6ICB1
bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBncGlvX2RkY19jb25maWcgZGRjOwoxNDQ3NDogICBzdHJ1
Y3QgZ3Bpb19ocGRfY29uZmlnIGhwZDsKMTQ0NzQ6ICAgc3RydWN0IGdwaW9fZ2VuZXJpY19tdXhf
Y29uZmlnIGdlbmVyaWNfbXV4OwoxNDQ3NDogICBzdHJ1Y3QgZ3Bpb19nc2xfbXV4X2NvbmZpZyBn
c2xfbXV4OwoxNDQ3NDogIH0gY29uZmlnOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAjIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xpbmtfc2Vydmlj
ZV90eXBlcy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2VfdHlwZXMuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiIDEK
MTQ0NzQ6ICMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNs
dWRlL2xpbmtfc2VydmljZV90eXBlcy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pcnFfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbGlua19zZXJ2aWNl
X3R5cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGRjOwoxNDQ3NDogc3Ry
dWN0IGlycV9tYW5hZ2VyOwoxNDQ3NDogCjE0NDc0OiBlbnVtIHsKMTQ0NzQ6ICBNQVhfQ09OVFJP
TExFUl9OVU0gPSA2CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3Bvd2VyX3N0YXRl
IHsKMTQ0NzQ6ICBEUF9QT1dFUl9TVEFURV9EMCA9IDEsCjE0NDc0OiAgRFBfUE9XRVJfU1RBVEVf
RDMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZWRwX3JldmlzaW9uIHsKMTQ0NzQ6IAox
NDQ3NDogIEVEUF9SRVZJU0lPTl8xMSA9IDB4MDAsCjE0NDc0OiAKMTQ0NzQ6ICBFRFBfUkVWSVNJ
T05fMTIgPSAweDAxLAoxNDQ3NDogCjE0NDc0OiAgRURQX1JFVklTSU9OXzEzID0gMHgwMgoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgTElOS19SQVRFX1JFRl9GUkVRX0lO
X0tIWiA9IDI3MDAwCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGxpbmtfdHJhaW5pbmdf
cmVzdWx0IHsKMTQ0NzQ6ICBMSU5LX1RSQUlOSU5HX1NVQ0NFU1MsCjE0NDc0OiAgTElOS19UUkFJ
TklOR19DUl9GQUlMX0xBTkUwLAoxNDQ3NDogIExJTktfVFJBSU5JTkdfQ1JfRkFJTF9MQU5FMSwK
MTQ0NzQ6ICBMSU5LX1RSQUlOSU5HX0NSX0ZBSUxfTEFORTIzLAoxNDQ3NDogCjE0NDc0OiAgTElO
S19UUkFJTklOR19FUV9GQUlMX0NSLAoxNDQ3NDogCjE0NDc0OiAgTElOS19UUkFJTklOR19FUV9G
QUlMX0VRLAoxNDQ3NDogIExJTktfVFJBSU5JTkdfTFFBX0ZBSUwsCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyB7CjE0NDc0OiAgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgbGlua19zZXR0aW5nczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGFuZV9zZXR0
aW5ncyBsYW5lX3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKMTQ0NzQ6IAoxNDQ3NDogIGVu
dW0gZGNfdm9sdGFnZV9zd2luZyAqdm9sdGFnZV9zd2luZzsKMTQ0NzQ6ICBlbnVtIGRjX3ByZV9l
bXBoYXNpcyAqcHJlX2VtcGhhc2lzOwoxNDQ3NDogIGVudW0gZGNfcG9zdF9jdXJzb3IyICpwb3N0
X2N1cnNvcjI7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBjcl9wYXR0ZXJuX3RpbWU7CjE0NDc0
OiAgdWludDE2X3QgZXFfcGF0dGVybl90aW1lOwoxNDQ3NDogIGVudW0gZGNfZHBfdHJhaW5pbmdf
cGF0dGVybiBwYXR0ZXJuX2Zvcl9lcTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgZW5oYW5jZWRfZnJh
bWluZzsKMTQ0NzQ6ICBib29sIGFsbG93X2ludmFsaWRfbXNhX3RpbWluZ19wYXJhbTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3Rlc3RfcGF0dGVybiB7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9WSURFT19NT0RFID0gMCwK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX1BIWV9QQVRURVJOX0JFR0lO
LAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9EMTAyID0gRFBfVEVTVF9QQVRURVJOX1BIWV9QQVRU
RVJOX0JFR0lOLAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9TWU1CT0xfRVJST1IsCjE0NDc0OiAg
RFBfVEVTVF9QQVRURVJOX1BSQlM3LAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl84MEJJVF9DVVNU
T00sCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX0NQMjUyMF8xLAoxNDQ3NDogIERQX1RFU1RfUEFU
VEVSTl9DUDI1MjBfMiwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fSEJSMl9DT01QTElBTkNFX0VZ
RSA9IERQX1RFU1RfUEFUVEVSTl9DUDI1MjBfMiwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fQ1Ay
NTIwXzMsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19Q
QVRURVJOMSwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fVFJBSU5JTkdfUEFUVEVSTjIsCjE0NDc0
OiAgRFBfVEVTVF9QQVRURVJOX1RSQUlOSU5HX1BBVFRFUk4zLAoxNDQ3NDogIERQX1RFU1RfUEFU
VEVSTl9UUkFJTklOR19QQVRURVJONCwKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fUEhZX1BBVFRF
Uk5fRU5EID0gRFBfVEVTVF9QQVRURVJOX1RSQUlOSU5HX1BBVFRFUk40LAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBEUF9URVNUX1BBVFRFUk5fQ09MT1JfU1FVQVJFUywKMTQ0NzQ6ICBEUF9URVNU
X1BBVFRFUk5fQ09MT1JfU1FVQVJFU19DRUEsCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX1ZFUlRJ
Q0FMX0JBUlMsCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX0hPUklaT05UQUxfQkFSUywKMTQ0NzQ6
ICBEUF9URVNUX1BBVFRFUk5fQ09MT1JfUkFNUCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgRFBf
VEVTVF9QQVRURVJOX0FVRElPX09QRVJBVE9SX0RFRklORUQsCjE0NDc0OiAgRFBfVEVTVF9QQVRU
RVJOX0FVRElPX1NBV1RPT1RILAoxNDQ3NDogCjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX1VOU1VQ
UE9SVEVECjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3Rlc3RfcGF0dGVybl9jb2xv
cl9zcGFjZSB7CjE0NDc0OiAgRFBfVEVTVF9QQVRURVJOX0NPTE9SX1NQQUNFX1JHQiwKMTQ0NzQ6
ICBEUF9URVNUX1BBVFRFUk5fQ09MT1JfU1BBQ0VfWUNCQ1I2MDEsCjE0NDc0OiAgRFBfVEVTVF9Q
QVRURVJOX0NPTE9SX1NQQUNFX1lDQkNSNzA5LAoxNDQ3NDogIERQX1RFU1RfUEFUVEVSTl9DT0xP
Ul9TUEFDRV9VTkRFRklORUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHBfcGFuZWxf
bW9kZSB7CjE0NDc0OiAKMTQ0NzQ6ICBEUF9QQU5FTF9NT0RFX0RFRkFVTFQsCjE0NDc0OiAKMTQ0
NzQ6ICBEUF9QQU5FTF9NT0RFX0VEUCwKMTQ0NzQ6IAoxNDQ3NDogIERQX1BBTkVMX01PREVfU1BF
Q0lBTAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkcGNkX3RyYWluaW5n
X2xhbmVfc2V0IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgVk9M
VEFHRV9TV0lOR19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhfU1dJTkdfUkVBQ0hFRDoxOwox
NDQ3NDogICB1aW50OF90IFBSRV9FTVBIQVNJU19TRVQ6MjsKMTQ0NzQ6ICAgdWludDhfdCBNQVhf
UFJFX0VNUEhBU0lTX1JFQUNIRUQ6MTsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFBPU1RfQ1VS
U09SMl9TRVQ6MjsKMTQ0NzQ6ICMgMTYxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2VfdHlwZXMuaCIKMTQ0NzQ6ICB9IGJpdHM7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHJhdzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHsKMTQ0NzQ6ICB1aW50
OF90IHZjcF9pZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBzbG90X2NvdW50Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxv
Y2F0aW9uX3RhYmxlIHsKMTQ0NzQ6IAoxNDQ3NDogIGludCBzdHJlYW1fY291bnQ7CjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHN0cmVhbV9hbGxvY2F0aW9u
c1tNQVhfQ09OVFJPTExFUl9OVU1dOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzQgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAjIDEgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0
cmxfZGVmcy5oIiAxCjE0NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIKMTQ0NzQ6ICMgMSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3Rf
ZGVmcy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIgMgoxNDQ3NDogIyA0MiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmplY3Rf
Y3RybF9kZWZzLmgiCjE0NDc0OiBlbnVtIGRpc3BsYXlfb3V0cHV0X2JpdF9kZXB0aCB7CjE0NDc0
OiAgUEFORUxfVU5ERUZJTkUgPSAwLAoxNDQ3NDogIFBBTkVMXzZCSVRfQ09MT1IgPSAxLAoxNDQ3
NDogIFBBTkVMXzhCSVRfQ09MT1IgPSAyLAoxNDQ3NDogIFBBTkVMXzEwQklUX0NPTE9SID0gMywK
MTQ0NzQ6ICBQQU5FTF8xMkJJVF9DT0xPUiA9IDQsCjE0NDc0OiAgUEFORUxfMTZCSVRfQ09MT1Ig
PSA1LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGFsX2Rl
dmljZV90eXBlIHsKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9VTktOT1dOID0gMCwKMTQ0NzQ6ICBERVZJ
Q0VfVFlQRV9MQ0QsCjE0NDc0OiAgREVWSUNFX1RZUEVfQ1JULAoxNDQ3NDogIERFVklDRV9UWVBF
X0RGUCwKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9DViwKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9UViwKMTQ0
NzQ6ICBERVZJQ0VfVFlQRV9DRiwKMTQ0NzQ6ICBERVZJQ0VfVFlQRV9XSVJFTEVTUwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGV2aWNlX2lkIHsKMTQ0NzQ6ICBlbnVt
IGRhbF9kZXZpY2VfdHlwZSBkZXZpY2VfdHlwZToxNjsKMTQ0NzQ6ICB1aW50MzJfdCBlbnVtX2lk
OjE2OwoxNDQ3NDogIHVpbnQxNl90IHJhd19kZXZpY2VfdGFnOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pMmNfaW5mbyB7CjE0NDc0OiAgc3RydWN0IGdw
aW9faW5mbyB7CjE0NDc0OiAgIHVpbnQzMl90IGNsa19tYXNrX3JlZ2lzdGVyX2luZGV4OwoxNDQ3
NDogICB1aW50MzJfdCBjbGtfZW5fcmVnaXN0ZXJfaW5kZXg7CjE0NDc0OiAgIHVpbnQzMl90IGNs
a195X3JlZ2lzdGVyX2luZGV4OwoxNDQ3NDogICB1aW50MzJfdCBjbGtfYV9yZWdpc3Rlcl9pbmRl
eDsKMTQ0NzQ6ICAgdWludDMyX3QgZGF0YV9tYXNrX3JlZ2lzdGVyX2luZGV4OwoxNDQ3NDogICB1
aW50MzJfdCBkYXRhX2VuX3JlZ2lzdGVyX2luZGV4OwoxNDQ3NDogICB1aW50MzJfdCBkYXRhX3lf
cmVnaXN0ZXJfaW5kZXg7CjE0NDc0OiAgIHVpbnQzMl90IGRhdGFfYV9yZWdpc3Rlcl9pbmRleDsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBjbGtfbWFza19zaGlmdDsKMTQ0NzQ6ICAgdWludDMy
X3QgY2xrX2VuX3NoaWZ0OwoxNDQ3NDogICB1aW50MzJfdCBjbGtfeV9zaGlmdDsKMTQ0NzQ6ICAg
dWludDMyX3QgY2xrX2Ffc2hpZnQ7CjE0NDc0OiAgIHVpbnQzMl90IGRhdGFfbWFza19zaGlmdDsK
MTQ0NzQ6ICAgdWludDMyX3QgZGF0YV9lbl9zaGlmdDsKMTQ0NzQ6ICAgdWludDMyX3QgZGF0YV95
X3NoaWZ0OwoxNDQ3NDogICB1aW50MzJfdCBkYXRhX2Ffc2hpZnQ7CjE0NDc0OiAgfSBncGlvX2lu
Zm87CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGkyY19od19hc3Npc3Q7CjE0NDc0OiAgdWludDMyX3Qg
aTJjX2xpbmU7CjE0NDc0OiAgdWludDMyX3QgaTJjX2VuZ2luZV9pZDsKMTQ0NzQ6ICB1aW50MzJf
dCBpMmNfc2xhdmVfYWRkcmVzczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBncmFw
aGljc19vYmplY3RfaHBkX2luZm8gewoxNDQ3NDogIHVpbnQ4X3QgaHBkX2ludF9ncGlvX3VpZDsK
MTQ0NzQ6ICB1aW50OF90IGhwZF9hY3RpdmU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgY29ubmVjdG9yX2RldmljZV90YWdfaW5mbyB7CjE0NDc0OiAgdWludDMyX3QgYWNwaV9kZXZp
Y2U7CjE0NDc0OiAgc3RydWN0IGRldmljZV9pZCBkZXZfaWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGV2aWNlX3RpbWluZyB7CjE0NDc0OiAgc3RydWN0IG1pc2NfaW5mbyB7CjE0
NDc0OiAgIHVpbnQzMl90IEhPUklaT05UQUxfQ1VUX09GRjoxOwoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQzMl90IEhfU1lOQ19QT0xBUklUWToxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IFZfU1lO
Q19QT0xBUklUWToxOwoxNDQ3NDogICB1aW50MzJfdCBWRVJUSUNBTF9DVVRfT0ZGOjE7CjE0NDc0
OiAgIHVpbnQzMl90IEhfUkVQTElDQVRJT05fQlkyOjE7CjE0NDc0OiAgIHVpbnQzMl90IFZfUkVQ
TElDQVRJT05fQlkyOjE7CjE0NDc0OiAgIHVpbnQzMl90IENPTVBPU0lURV9TWU5DOjE7CjE0NDc0
OiAgIHVpbnQzMl90IElOVEVSTEFDRToxOwoxNDQ3NDogICB1aW50MzJfdCBET1VCTEVfQ0xPQ0s6
MTsKMTQ0NzQ6ICAgdWludDMyX3QgUkdCODg4OjE7CjE0NDc0OiAgIHVpbnQzMl90IEdSRVlfTEVW
RUw6MjsKMTQ0NzQ6ICAgdWludDMyX3QgU1BBVElBTDoxOwoxNDQ3NDogICB1aW50MzJfdCBURU1Q
T1JBTDoxOwoxNDQ3NDogICB1aW50MzJfdCBBUElfRU5BQkxFRDoxOwoxNDQ3NDogIH0gbWlzY19p
bmZvOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcGl4ZWxfY2xrOwoxNDQ3NDogIHVpbnQzMl90
IGhvcml6b250YWxfYWRkcmVzc2FibGU7CjE0NDc0OiAgdWludDMyX3QgaG9yaXpvbnRhbF9ibGFu
a2luZ190aW1lOwoxNDQ3NDogIHVpbnQzMl90IHZlcnRpY2FsX2FkZHJlc3NhYmxlOwoxNDQ3NDog
IHVpbnQzMl90IHZlcnRpY2FsX2JsYW5raW5nX3RpbWU7CjE0NDc0OiAgdWludDMyX3QgaG9yaXpv
bnRhbF9zeW5jX29mZnNldDsKMTQ0NzQ6ICB1aW50MzJfdCBob3Jpem9udGFsX3N5bmNfd2lkdGg7
CjE0NDc0OiAgdWludDMyX3QgdmVydGljYWxfc3luY19vZmZzZXQ7CjE0NDc0OiAgdWludDMyX3Qg
dmVydGljYWxfc3luY193aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCBob3Jpem9udGFsX2JvcmRlcjsK
MTQ0NzQ6ICB1aW50MzJfdCB2ZXJ0aWNhbF9ib3JkZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3Qgc3VwcG9ydGVkX3JlZnJlc2hfcmF0ZSB7CjE0NDc0OiAgdWludDMyX3QgUkVGUkVT
SF9SQVRFXzMwSFo6MTsKMTQ0NzQ6ICB1aW50MzJfdCBSRUZSRVNIX1JBVEVfNDBIWjoxOwoxNDQ3
NDogIHVpbnQzMl90IFJFRlJFU0hfUkFURV80OEhaOjE7CjE0NDc0OiAgdWludDMyX3QgUkVGUkVT
SF9SQVRFXzUwSFo6MTsKMTQ0NzQ6ICB1aW50MzJfdCBSRUZSRVNIX1JBVEVfNjBIWjoxOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVtYmVkZGVkX3BhbmVsX2luZm8gewoxNDQ3NDog
IHN0cnVjdCBkZXZpY2VfdGltaW5nIGxjZF90aW1pbmc7CjE0NDc0OiAgdWludDMyX3Qgc3NfaWQ7
CjE0NDc0OiAgc3RydWN0IHN1cHBvcnRlZF9yZWZyZXNoX3JhdGUgc3VwcG9ydGVkX3JyOwoxNDQ3
NDogIHVpbnQzMl90IGRycl9lbmFibGVkOwoxNDQ3NDogIHVpbnQzMl90IG1pbl9kcnJfcmVmcmVz
aF9yYXRlOwoxNDQ3NDogIGJvb2wgcmVhbHRla19lRFBUb0xWRFM7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZGNfZmlybXdhcmVfaW5mbyB7CjE0NDc0OiAgc3RydWN0IHBsbF9pbmZv
IHsKMTQ0NzQ6ICAgdWludDMyX3QgY3J5c3RhbF9mcmVxdWVuY3k7CjE0NDc0OiAgIHVpbnQzMl90
IG1pbl9pbnB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CjE0NDc0OiAgIHVpbnQzMl90IG1heF9p
bnB1dF9weGxfY2xrX3BsbF9mcmVxdWVuY3k7CjE0NDc0OiAgIHVpbnQzMl90IG1pbl9vdXRwdXRf
cHhsX2Nsa19wbGxfZnJlcXVlbmN5OwoxNDQ3NDogICB1aW50MzJfdCBtYXhfb3V0cHV0X3B4bF9j
bGtfcGxsX2ZyZXF1ZW5jeTsKMTQ0NzQ6ICB9IHBsbF9pbmZvOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGZpcm13YXJlX2ZlYXR1cmUgewoxNDQ3NDogICB1aW50MzJfdCBtZW1vcnlfY2xrX3NzX3Bl
cmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQzMl90IGVuZ2luZV9jbGtfc3NfcGVyY2VudGFnZTsKMTQ0
NzQ6ICB9IGZlYXR1cmU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkZWZhdWx0X2Rpc3BsYXlf
ZW5naW5lX3BsbF9mcmVxdWVuY3k7CjE0NDc0OiAgdWludDMyX3QgZXh0ZXJuYWxfY2xvY2tfc291
cmNlX2ZyZXF1ZW5jeV9mb3JfZHA7CjE0NDc0OiAgdWludDMyX3Qgc211X2dwdV9wbGxfb3V0cHV0
X2ZyZXE7CjE0NDc0OiAgdWludDhfdCBtaW5fYWxsb3dlZF9ibF9sZXZlbDsKMTQ0NzQ6ICB1aW50
OF90IHJlbW90ZV9kaXNwbGF5X2NvbmZpZzsKMTQ0NzQ6ICB1aW50MzJfdCBkZWZhdWx0X21lbW9y
eV9jbGs7CjE0NDc0OiAgdWludDMyX3QgZGVmYXVsdF9lbmdpbmVfY2xrOwoxNDQ3NDogIHVpbnQz
Ml90IGRwX3BoeV9yZWZfY2xrOwoxNDQ3NDogIHVpbnQzMl90IGkyY19lbmdpbmVfcmVmX2NsazsK
MTQ0NzQ6ICBib29sIG9lbV9pMmNfcHJlc2VudDsKMTQ0NzQ6ICB1aW50OF90IG9lbV9pMmNfb2Jq
X2lkOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3RlcF9hbmRfZGVs
YXlfaW5mbyB7CjE0NDc0OiAgdWludDMyX3Qgc3RlcDsKMTQ0NzQ6ICB1aW50MzJfdCBkZWxheTsK
MTQ0NzQ6ICB1aW50MzJfdCByZWNvbW1lbmRlZF9yZWZfZGl2OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNwcmVhZF9zcGVjdHJ1bV9pbmZvIHsKMTQ0NzQ6ICBzdHJ1Y3Qgc3ByZWFk
X3NwZWN0cnVtX3R5cGUgewoxNDQ3NDogICBib29sIENFTlRFUl9NT0RFOjE7CjE0NDc0OiAgIGJv
b2wgRVhURVJOQUw6MTsKMTQ0NzQ6ICAgYm9vbCBTVEVQX0FORF9ERUxBWV9JTkZPOjE7CjE0NDc0
OiAgfSB0eXBlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNwcmVh
ZF9zcGVjdHJ1bV9wZXJjZW50YWdlOwoxNDQ3NDogIHVpbnQzMl90IHNwcmVhZF9wZXJjZW50YWdl
X2RpdmlkZXI7CjE0NDc0OiAgdWludDMyX3Qgc3ByZWFkX3NwZWN0cnVtX3JhbmdlOwoxNDQ3NDog
CjE0NDc0OiAgdW5pb24gewoxNDQ3NDogICBzdHJ1Y3Qgc3RlcF9hbmRfZGVsYXlfaW5mbyBzdGVw
X2FuZF9kZWxheV9pbmZvOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJf
dCB0YXJnZXRfY2xvY2tfcmFuZ2U7CjE0NDc0OiAgfTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGdyYXBoaWNzX29iamVjdF9lbmNvZGVyX2NhcF9pbmZvIHsKMTQ0NzQ6
ICB1aW50MzJfdCBkcF9oYnIyX2NhcDoxOwoxNDQ3NDogIHVpbnQzMl90IGRwX2hicjJfdmFsaWRh
dGVkOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcmVzZXJ2ZWQ6
MTU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGluX2Nvbm5lY3Rvcl9pbmZvIHsK
MTQ0NzQ6ICB1aW50MzJfdCBncGlvX2lkOwoxNDQ3NDogIGJvb2wgZ3Bpb190dl9hY3RpdmVfc3Rh
dGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0geyBJTlZBTElEX0RESV9D
SEFOTkVMX01BUFBJTkcgPSAweDAgfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogdW5pb24gZGRpX2NoYW5uZWxfbWFwcGluZyB7CjE0NDc0OiAgc3RydWN0IG1hcHBpbmcg
ewoxNDQ3NDogICB1aW50OF90IGxhbmUwOjI7CjE0NDc0OiAgIHVpbnQ4X3QgbGFuZTE6MjsKMTQ0
NzQ6ICAgdWludDhfdCBsYW5lMjoyOwoxNDQ3NDogICB1aW50OF90IGxhbmUzOjI7CjE0NDc0OiAg
fSBtYXBwaW5nOwoxNDQ3NDogIHVpbnQ4X3QgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRyYW5zbWl0dGVyX2NvbmZpZ3VyYXRpb25f
aW5mbyB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyX3BoeV9p
ZDsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIGRkaV9jaGFubmVsX21hcHBpbmcgb3V0cHV0X2NoYW5u
ZWxfbWFwcGluZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFuc21pdHRlcl9j
b25maWd1cmF0aW9uIHsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCB0cmFuc21pdHRlcl9jb25maWd1
cmF0aW9uX2luZm8gcHJpbWFyeV90cmFuc21pdHRlcl9jb25maWc7CjE0NDc0OiAKMTQ0NzQ6ICBz
dHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlvbl9pbmZvIHNlY29uZGFyeV90cmFuc21pdHRl
cl9jb25maWc7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0cmxfZGVmcy5oIgoxNDQ3NDog
c3RydWN0IGkyY19yZWdfaW5mbyB7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBpMmNfcmVnX2luZGV4
OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgaTJjX3JlZ192YWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZXh0X2hkbWlfc2V0dGluZ3MgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc2x2
X2FkZHI7CjE0NDc0OiAgdW5zaWduZWQgY2hhciByZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNf
cmVnX2luZm8gcmVnX3NldHRpbmdzWzldOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmVnX251bV82
ZzsKMTQ0NzQ6ICBzdHJ1Y3QgaTJjX3JlZ19pbmZvIHJlZ19zZXR0aW5nc182Z1szXTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgaW50ZWdyYXRlZF9pbmZv
IHsKMTQ0NzQ6ICBzdHJ1Y3QgY2xvY2tfdm9sdGFnZV9jYXBzIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgIHVpbnQzMl90IHZvbHRhZ2VfaW5kZXg7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3Qg
bWF4X3N1cHBvcnRlZF9jbGs7CjE0NDc0OiAgfSBkaXNwX2Nsa192b2x0YWdlWzRdOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlfY29ubmVjdGlvbl9pbmZvIHsKMTQ0NzQ6ICAgc3RydWN0
IGV4dGVybmFsX2Rpc3BsYXlfcGF0aCB7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVpbnQzMl90IGRldmlj
ZV90YWc7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVpbnQzMl90IGRldmljZV9hY3BpX2VudW07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBkZXZpY2VfY29u
bmVjdG9yX2lkOwoxNDQ3NDogCjE0NDc0OiAgICB1aW50OF90IGV4dF9hdXhfZGRjX2x1dF9pbmRl
eDsKMTQ0NzQ6IAoxNDQ3NDogICAgdWludDhfdCBleHRfaHBkX3Bpbl9sdXRfaW5kZXg7CjE0NDc0
OiAKMTQ0NzQ6ICAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZXh0X2VuY29kZXJfb2JqX2lk
OwoxNDQ3NDogCjE0NDc0OiAgICB1bmlvbiBkZGlfY2hhbm5lbF9tYXBwaW5nIGNoYW5uZWxfbWFw
cGluZzsKMTQ0NzQ6IAoxNDQ3NDogICAgdW5zaWduZWQgc2hvcnQgY2FwczsKMTQ0NzQ6ICAgfSBw
YXRoWzddOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgZ3VfaWRbMTZdOwoxNDQ3NDogICB1aW50
OF90IGNoZWNrc3VtOwoxNDQ3NDogIH0gZXh0X2Rpc3BfY29ubl9pbmZvOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGF2YWlsYWJsZV9zX2Nsa19saXN0IHsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJf
dCBzdXBwb3J0ZWRfc19jbGs7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3Qgdm9sdGFnZV9pbmRl
eDsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCB2b2x0YWdlX2lkOwoxNDQ3NDogIH0gYXZhaWxf
c19jbGtbNV07CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IG1lbW9yeV90eXBlOwoxNDQ3NDogIHVp
bnQ4X3QgbWFfY2hhbm5lbF9udW1iZXI7CjE0NDc0OiAgdWludDMyX3QgYm9vdF91cF9lbmdpbmVf
Y2xvY2s7CjE0NDc0OiAgdWludDMyX3QgZGVudGlzdF92Y29fZnJlcTsKMTQ0NzQ6ICB1aW50MzJf
dCBib290X3VwX3VtYV9jbG9jazsKMTQ0NzQ6ICB1aW50MzJfdCBib290X3VwX3JlcV9kaXNwbGF5
X3ZlY3RvcjsKMTQ0NzQ6ICB1aW50MzJfdCBvdGhlcl9kaXNwbGF5X21pc2M7CjE0NDc0OiAgdWlu
dDMyX3QgZ3B1X2NhcF9pbmZvOwoxNDQ3NDogIHVpbnQzMl90IHNiX21taW9fYmFzZV9hZGRyOwox
NDQ3NDogIHVpbnQzMl90IHN5c3RlbV9jb25maWc7CjE0NDc0OiAgdWludDMyX3QgY3B1X2NhcF9p
bmZvOwoxNDQ3NDogIHVpbnQzMl90IG1heF9uYl92b2x0YWdlOwoxNDQ3NDogIHVpbnQzMl90IG1p
bl9uYl92b2x0YWdlOwoxNDQ3NDogIHVpbnQzMl90IGJvb3RfdXBfbmJfdm9sdGFnZTsKMTQ0NzQ6
ICB1aW50MzJfdCBleHRfZGlzcF9jb25uX2luZm9fb2Zmc2V0OwoxNDQ3NDogIHVpbnQzMl90IGNz
cl9tM19hcmJfY250bF9kZWZhdWx0WzEwXTsKMTQ0NzQ6ICB1aW50MzJfdCBjc3JfbTNfYXJiX2Nu
dGxfdXZkWzEwXTsKMTQ0NzQ6ICB1aW50MzJfdCBjc3JfbTNfYXJiX2NudGxfZnMzZFsxMF07CjE0
NDc0OiAgdWludDMyX3QgZ21jX3Jlc3RvcmVfcmVzZXRfdGltZTsKMTQ0NzQ6ICB1aW50MzJfdCBt
aW5pbXVtX25fY2xrOwoxNDQ3NDogIHVpbnQzMl90IGlkbGVfbl9jbGs7CjE0NDc0OiAgdWludDMy
X3QgZGRyX2RsbF9wb3dlcl91cF90aW1lOwoxNDQ3NDogIHVpbnQzMl90IGRkcl9wbGxfcG93ZXJf
dXBfdGltZTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHBjaWVfY2xrX3NzX3R5cGU7CjE0NDc0
OiAgdWludDMyX3QgbHZkc19zc19wZXJjZW50YWdlOwoxNDQ3NDogIHVpbnQzMl90IGx2ZHNfc3Nw
cmVhZF9yYXRlX2luXzEwaHo7CjE0NDc0OiAgdWludDMyX3QgaGRtaV9zc19wZXJjZW50YWdlOwox
NDQ3NDogIHVpbnQzMl90IGhkbWlfc3NwcmVhZF9yYXRlX2luXzEwaHo7CjE0NDc0OiAgdWludDMy
X3QgZHZpX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgdWludDMyX3QgZHZpX3NzcHJlYWRfcmF0ZV9p
bl8xMF9oejsKMTQ0NzQ6ICB1aW50MzJfdCBzY2xrX2RwbV9ib29zdF9tYXJnaW47CjE0NDc0OiAg
dWludDMyX3Qgc2Nsa19kcG1fdGhyb3R0bGVfbWFyZ2luOwoxNDQ3NDogIHVpbnQzMl90IHNjbGtf
ZHBtX3RkcF9saW1pdF9wZzsKMTQ0NzQ6ICB1aW50MzJfdCBzY2xrX2RwbV90ZHBfbGltaXRfYm9v
c3Q7CjE0NDc0OiAgdWludDMyX3QgYm9vc3RfZW5naW5lX2Nsb2NrOwoxNDQ3NDogIHVpbnQzMl90
IGJvb3N0X3ZpZF8yYml0OwoxNDQ3NDogIHVpbnQzMl90IGVuYWJsZV9ib29zdDsKMTQ0NzQ6ICB1
aW50MzJfdCBnbmJfdGRwX2xpbWl0OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbWF4X2x2ZHNf
cGNsa19mcmVxX2luX3NpbmdsZV9saW5rOwoxNDQ3NDogIHVpbnQzMl90IGx2ZHNfbWlzYzsKMTQ0
NzQ6ICB1aW50MzJfdCBsdmRzX3B3cl9vbl9zZXFfZGlnX29uX3RvX2RlX2luXzRtczsKMTQ0NzQ6
ICB1aW50MzJfdCBsdmRzX3B3cl9vbl9zZXFfZGVfdG9fdmFyeV9ibF9pbl80bXM7CjE0NDc0OiAg
dWludDMyX3QgbHZkc19wd3Jfb2ZmX3NlcV92YXJ5X2JsX3RvX2RlX2luNG1zOwoxNDQ3NDogIHVp
bnQzMl90IGx2ZHNfcHdyX29mZl9zZXFfZGVfdG9fZGlnX29uX2luNG1zOwoxNDQ3NDogIHVpbnQz
Ml90IGx2ZHNfb2ZmX3RvX29uX2RlbGF5X2luXzRtczsKMTQ0NzQ6ICB1aW50MzJfdCBsdmRzX3B3
cl9vbl9zZXFfdmFyeV9ibF90b19ibG9uX2luXzRtczsKMTQ0NzQ6ICB1aW50MzJfdCBsdmRzX3B3
cl9vZmZfc2VxX2Jsb25fdG9fdmFyeV9ibF9pbl80bXM7CjE0NDc0OiAgdWludDMyX3QgbHZkc19y
ZXNlcnZlZDE7CjE0NDc0OiAgdWludDMyX3QgbHZkc19iaXRfZGVwdGhfY29udHJvbF92YWw7CjE0
NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMF9leHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6
ICB1bnNpZ25lZCBjaGFyIGRwMF9leHRfaGRtaV9yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNf
cmVnX2luZm8gZHAwX2V4dF9oZG1pX3JlZ19zZXR0aW5nc1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBj
aGFyIGRwMF9leHRfaGRtaV82Z19yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8g
ZHAwX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRw
MV9leHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMV9leHRfaGRtaV9y
ZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAxX2V4dF9oZG1pX3JlZ19zZXR0
aW5nc1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMV9leHRfaGRtaV82Z19yZWdfbnVtOwox
NDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAxX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1sz
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwMl9leHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6ICB1
bnNpZ25lZCBjaGFyIGRwMl9leHRfaGRtaV9yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVn
X2luZm8gZHAyX2V4dF9oZG1pX3JlZ19zZXR0aW5nc1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFy
IGRwMl9leHRfaGRtaV82Z19yZWdfbnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAy
X2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwM19l
eHRfaGRtaV9zbHZfYWRkcjsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwM19leHRfaGRtaV9yZWdf
bnVtOwoxNDQ3NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAzX2V4dF9oZG1pX3JlZ19zZXR0aW5n
c1s5XTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGRwM19leHRfaGRtaV82Z19yZWdfbnVtOwoxNDQ3
NDogIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAzX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsK
MTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRwX3NzX2NvbnRyb2w7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIHBvd2VyX3NvdXJjZSB7CjE0NDc0
OiAgUE9XRVJfU09VUkNFX0FDID0gMCwKMTQ0NzQ6ICBQT1dFUl9TT1VSQ0VfREMsCjE0NDc0OiAg
UE9XRVJfU09VUkNFX0xJTUlURURfUE9XRVIsCjE0NDc0OiAgUE9XRVJfU09VUkNFX0xJTUlURURf
UE9XRVJfMiwKMTQ0NzQ6ICBQT1dFUl9TT1VSQ0VfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgYmlvc19ldmVudF9pbmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCB0aGVybWFsX3N0YXRl
OwoxNDQ3NDogIHVpbnQzMl90IGJhY2tsaWdodF9sZXZlbDsKMTQ0NzQ6ICBlbnVtIHBvd2VyX3Nv
dXJjZSBwb3dlclNvdXJjZTsKMTQ0NzQ6ICBib29sIGhhc190aGVybWFsX3N0YXRlX2NoYW5nZWQ7
CjE0NDc0OiAgYm9vbCBoYXNfcG93ZXJfc291cmNlX2NoYW5nZWQ7CjE0NDc0OiAgYm9vbCBoYXNf
Zm9yY2VkX21vZGVfY2hhbmdlZDsKMTQ0NzQ6ICBib29sIGZvcmNlZF9tb2RlOwoxNDQ3NDogIGJv
b2wgYmFja2xpZ2h0X2NoYW5nZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIERGU19CWVBBU1NfRU5BQkxFID0g
MHgxMAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgSU5WQUxJRF9CQUNL
TElHSFQgPSAtMQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBhbmVsX2JhY2tsaWdo
dF9ib3VuZGFyaWVzIHsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fc2lnbmFsX2xldmVsOwoxNDQ3NDog
IHVpbnQzMl90IG1heF9zaWduYWxfbGV2ZWw7CjE0NDc0OiB9OwoxNDQ3NDogIyAzNSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9vcHAuaCIg
MQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9ody9vcHAuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9ody9od19zaGFyZWQuaCIgMQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9od19zaGFyZWQuaCIKMTQ0
NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgMzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9pbmMvaHcvaHdfc2hhcmVkLmgiIDIKMTQ0NzQ6ICMgNDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvaHdfc2hhcmVkLmgiCjE0NDc0
OiBzdHJ1Y3QgZ2FtbWFfY3VydmUgewoxNDQ3NDogIHVpbnQzMl90IG9mZnNldDsKMTQ0NzQ6ICB1
aW50MzJfdCBzZWdtZW50c19udW07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3Vy
dmVfcG9pbnRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB4OwoxNDQ3NDogIHN0cnVjdCBm
aXhlZDMxXzMyIHk7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgb2Zmc2V0OwoxNDQ3NDogIHN0
cnVjdCBmaXhlZDMxXzMyIHNsb3BlOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgY3VzdG9tX2Zs
b2F0X3g7CjE0NDc0OiAgdWludDMyX3QgY3VzdG9tX2Zsb2F0X3k7CjE0NDc0OiAgdWludDMyX3Qg
Y3VzdG9tX2Zsb2F0X29mZnNldDsKMTQ0NzQ6ICB1aW50MzJfdCBjdXN0b21fZmxvYXRfc2xvcGU7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3VydmVfcG9pbnRzMyB7CjE0NDc0OiAg
c3RydWN0IGN1cnZlX3BvaW50cyByZWQ7CjE0NDc0OiAgc3RydWN0IGN1cnZlX3BvaW50cyBncmVl
bjsKMTQ0NzQ6ICBzdHJ1Y3QgY3VydmVfcG9pbnRzIGJsdWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgcHdsX3Jlc3VsdF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBy
ZWQ7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgZ3JlZW47CjE0NDc0OiAgc3RydWN0IGZpeGVk
MzFfMzIgYmx1ZTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGRlbHRhX3JlZDsK
MTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBkZWx0YV9ncmVlbjsKMTQ0NzQ6ICBzdHJ1Y3QgZml4
ZWQzMV8zMiBkZWx0YV9ibHVlOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcmVkX3JlZzsKMTQ0
NzQ6ICB1aW50MzJfdCBncmVlbl9yZWc7CjE0NDc0OiAgdWludDMyX3QgYmx1ZV9yZWc7CjE0NDc0
OiAKMTQ0NzQ6ICB1aW50MzJfdCBkZWx0YV9yZWRfcmVnOwoxNDQ3NDogIHVpbnQzMl90IGRlbHRh
X2dyZWVuX3JlZzsKMTQ0NzQ6ICB1aW50MzJfdCBkZWx0YV9ibHVlX3JlZzsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19yZ2IgewoxNDQ3NDogIHVpbnQzMl90IHJlZDsKMTQ0NzQ6
ICB1aW50MzJfdCBncmVlbjsKMTQ0NzQ6ICB1aW50MzJfdCBibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHRldHJhaGVkcmFsXzE3eDE3eDE3IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
cmdiIGx1dDBbMTIyOV07CjE0NDc0OiAgc3RydWN0IGRjX3JnYiBsdXQxWzEyMjhdOwoxNDQ3NDog
IHN0cnVjdCBkY19yZ2IgbHV0MlsxMjI4XTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1dDNbMTIy
OF07CjE0NDc0OiB9OwoxNDQ3NDogc3RydWN0IHRldHJhaGVkcmFsXzl4OXg5IHsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfcmdiIGx1dDBbMTgzXTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1dDFbMTgyXTsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1dDJbMTgyXTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcmdiIGx1
dDNbMTgyXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0ZXRyYWhlZHJhbF9wYXJh
bXMgewoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHRldHJhaGVkcmFsXzE3eDE3eDE3
IHRldHJhaGVkcmFsXzE3OwoxNDQ3NDogICBzdHJ1Y3QgdGV0cmFoZWRyYWxfOXg5eDkgdGV0cmFo
ZWRyYWxfOTsKMTQ0NzQ6ICB9OwoxNDQ3NDogIGJvb2wgdXNlX3RldHJhaGVkcmFsXzk7CjE0NDc0
OiAgYm9vbCB1c2VfMTJiaXRzOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHB3bF9wYXJhbXMgewox
NDQ3NDogIHN0cnVjdCBnYW1tYV9jdXJ2ZSBhcnJfY3VydmVfcG9pbnRzWzM0XTsKMTQ0NzQ6ICB1
bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCBjdXJ2ZV9wb2ludHMgYXJyX3BvaW50c1syXTsKMTQ0NzQ6
ICAgc3RydWN0IGN1cnZlX3BvaW50czMgY29ybmVyX3BvaW50c1syXTsKMTQ0NzQ6ICB9OwoxNDQ3
NDogIHN0cnVjdCBwd2xfcmVzdWx0X2RhdGEgcmdiX3Jlc3VsdGVkWzI1NiArIDNdOwoxNDQ3NDog
IHVpbnQzMl90IGh3X3BvaW50c19udW07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGxiX3BpeGVsX2Rl
cHRoIHsKMTQ0NzQ6IAoxNDQ3NDogIExCX1BJWEVMX0RFUFRIXzE4QlBQID0gMSwKMTQ0NzQ6ICBM
Ql9QSVhFTF9ERVBUSF8yNEJQUCA9IDIsCjE0NDc0OiAgTEJfUElYRUxfREVQVEhfMzBCUFAgPSA0
LAoxNDQ3NDogIExCX1BJWEVMX0RFUFRIXzM2QlBQID0gOAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBncmFwaGljc19jc2NfYWRqdXN0X3R5cGUgewoxNDQ3NDogIEdSQVBISUNTX0NTQ19B
REpVU1RfVFlQRV9CWVBBU1MgPSAwLAoxNDQ3NDogIEdSQVBISUNTX0NTQ19BREpVU1RfVFlQRV9I
VywKMTQ0NzQ6ICBHUkFQSElDU19DU0NfQURKVVNUX1RZUEVfU1cKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gaXBwX2RlZ2FtbWFfbW9kZSB7CjE0NDc0OiAgSVBQX0RFR0FNTUFfTU9ERV9C
WVBBU1MsCjE0NDc0OiAgSVBQX0RFR0FNTUFfTU9ERV9IV19zUkdCLAoxNDQ3NDogIElQUF9ERUdB
TU1BX01PREVfSFdfeHZZQ0MsCjE0NDc0OiAgSVBQX0RFR0FNTUFfTU9ERV9VU0VSX1BXTAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBpcHBfb3V0cHV0X2Zvcm1hdCB7CjE0NDc0OiAgSVBQ
X09VVFBVVF9GT1JNQVRfMTJfQklUX0ZJWCwKMTQ0NzQ6ICBJUFBfT1VUUFVUX0ZPUk1BVF8xNl9C
SVRfQllQQVNTLAoxNDQ3NDogIElQUF9PVVRQVVRfRk9STUFUX0ZMT0FUCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGV4cGFuc2lvbl9tb2RlIHsKMTQ0NzQ6ICBFWFBBTlNJT05fTU9ERV9E
WU5BTUlDLAoxNDQ3NDogIEVYUEFOU0lPTl9NT0RFX1pFUk8KMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkZWZhdWx0X2FkanVzdG1lbnQgewoxNDQ3NDogIGVudW0gbGJfcGl4ZWxfZGVw
dGggbGJfY29sb3JfZGVwdGg7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBvdXRfY29sb3Jf
c3BhY2U7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBpbl9jb2xvcl9zcGFjZTsKMTQ0NzQ6
ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoOwoxNDQ3NDogIGVudW0gcGl4ZWxfZm9y
bWF0IHN1cmZhY2VfcGl4ZWxfZm9ybWF0OwoxNDQ3NDogIGVudW0gZ3JhcGhpY3NfY3NjX2FkanVz
dF90eXBlIGNzY19hZGp1c3RfdHlwZTsKMTQ0NzQ6ICBib29sIGZvcmNlX2h3X2RlZmF1bHQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvdXRfY3NjX2NvbG9yX21hdHJp
eCB7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZTsKMTQ0NzQ6ICB1aW50
MTZfdCByZWd2YWxbMTJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBnYW11dF9yZW1h
cF9zZWxlY3QgewoxNDQ3NDogIEdBTVVUX1JFTUFQX0JZUEFTUyA9IDAsCjE0NDc0OiAgR0FNVVRf
UkVNQVBfQ09FRkYsCjE0NDc0OiAgR0FNVVRfUkVNQVBfQ09NQV9DT0VGRiwKMTQ0NzQ6ICBHQU1V
VF9SRU1BUF9DT01CX0NPRUZGCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIG9wcF9yZWdh
bW1hIHsKMTQ0NzQ6ICBPUFBfUkVHQU1NQV9CWVBBU1MgPSAwLAoxNDQ3NDogIE9QUF9SRUdBTU1B
X1NSR0IsCjE0NDc0OiAgT1BQX1JFR0FNTUFfWFZZQ0MsCjE0NDc0OiAgT1BQX1JFR0FNTUFfVVNF
UgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBvcHRjX2RzY19tb2RlIHsKMTQ0NzQ6ICBP
UFRDX0RTQ19ESVNBQkxFRCA9IDAsCjE0NDc0OiAgT1BUQ19EU0NfRU5BQkxFRF80NDQgPSAxLAox
NDQ3NDogIE9QVENfRFNDX0VOQUJMRURfTkFUSVZFX1NVQlNBTVBMRUQgPSAyCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgewoxNDQ3NDogIHVpbnQxNl90
IHNjYWxlX3JlZDsKMTQ0NzQ6ICB1aW50MTZfdCBiaWFzX3JlZDsKMTQ0NzQ6ICB1aW50MTZfdCBz
Y2FsZV9ncmVlbjsKMTQ0NzQ6ICB1aW50MTZfdCBiaWFzX2dyZWVuOwoxNDQ3NDogIHVpbnQxNl90
IHNjYWxlX2JsdWU7CjE0NDc0OiAgdWludDE2X3QgYmlhc19ibHVlOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSB0ZXN0X3BhdHRlcm5fZHluX3JhbmdlIHsKMTQ0NzQ6ICBURVNUX1BBVFRF
Uk5fRFlOX1JBTkdFX1ZFU0EgPSAwLAoxNDQ3NDogIFRFU1RfUEFUVEVSTl9EWU5fUkFOR0VfQ0VB
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHRlc3RfcGF0dGVybl9tb2RlIHsKMTQ0NzQ6
ICBURVNUX1BBVFRFUk5fTU9ERV9DT0xPUlNRVUFSRVNfUkdCID0gMCwKMTQ0NzQ6ICBURVNUX1BB
VFRFUk5fTU9ERV9DT0xPUlNRVUFSRVNfWUNCQ1I2MDEsCjE0NDc0OiAgVEVTVF9QQVRURVJOX01P
REVfQ09MT1JTUVVBUkVTX1lDQkNSNzA5LAoxNDQ3NDogIFRFU1RfUEFUVEVSTl9NT0RFX1ZFUlRJ
Q0FMQkFSUywKMTQ0NzQ6ICBURVNUX1BBVFRFUk5fTU9ERV9IT1JJWk9OVEFMQkFSUywKMTQ0NzQ6
ICBURVNUX1BBVFRFUk5fTU9ERV9TSU5HTEVSQU1QX1JHQiwKMTQ0NzQ6ICBURVNUX1BBVFRFUk5f
TU9ERV9EVUFMUkFNUF9SR0IsCjE0NDc0OiAgVEVTVF9QQVRURVJOX01PREVfWFJfQklBU19SR0IK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gdGVzdF9wYXR0ZXJuX2NvbG9yX2Zvcm1hdCB7
CjE0NDc0OiAgVEVTVF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfNiA9IDAsCjE0NDc0OiAgVEVT
VF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfOCwKMTQ0NzQ6ICBURVNUX1BBVFRFUk5fQ09MT1Jf
Rk9STUFUX0JQQ18xMCwKMTQ0NzQ6ICBURVNUX1BBVFRFUk5fQ09MT1JfRk9STUFUX0JQQ18xMgox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb250cm9sbGVyX2RwX3Rlc3RfcGF0dGVybiB7
CjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fRDEwMiA9IDAsCjE0NDc0OiAgQ09O
VFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU1lNQk9MRVJST1IsCjE0NDc0OiAgQ09OVFJPTExFUl9E
UF9URVNUX1BBVFRFUk5fUFJCUzcsCjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5f
Q09MT1JTUVVBUkVTLAoxNDQ3NDogIENPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX1ZFUlRJQ0FM
QkFSUywKMTQ0NzQ6ICBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9IT1JJWk9OVEFMQkFSUywK
MTQ0NzQ6ICBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9DT0xPUlJBTVAsCjE0NDc0OiAgQ09O
VFJPTExFUl9EUF9URVNUX1BBVFRFUk5fVklERU9NT0RFLAoxNDQ3NDogIENPTlRST0xMRVJfRFBf
VEVTVF9QQVRURVJOX1JFU0VSVkVEXzgsCjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRF
Uk5fUkVTRVJWRURfOSwKMTQ0NzQ6ICBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9SRVNFUlZF
RF9BLAoxNDQ3NDogIENPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX0NPTE9SU1FVQVJFU19DRUEs
CjE0NDc0OiAgQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU09MSURfQ09MT1IKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gY29udHJvbGxlcl9kcF9jb2xvcl9zcGFjZSB7CjE0NDc0OiAg
Q09OVFJPTExFUl9EUF9DT0xPUl9TUEFDRV9SR0IsCjE0NDc0OiAgQ09OVFJPTExFUl9EUF9DT0xP
Ul9TUEFDRV9ZQ0JDUjYwMSwKMTQ0NzQ6ICBDT05UUk9MTEVSX0RQX0NPTE9SX1NQQUNFX1lDQkNS
NzA5LAoxNDQ3NDogIENPTlRST0xMRVJfRFBfQ09MT1JfU1BBQ0VfVURFRklORUQKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfbHV0X21vZGUgewoxNDQ3NDogIExVVF9CWVBBU1MsCjE0
NDc0OiAgTFVUX1JBTV9BLAoxNDQ3NDogIExVVF9SQU1fQgoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzAg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIiAxCjE0NDc0OiAjIDM1ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIgoxNDQ3NDog
c3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
dHJhbnNmb3JtIHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgdHJhbnNmb3JtX2Z1bmNzICpmdW5jczsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIGludCBpbnN0OwoxNDQ3NDog
IHN0cnVjdCBkcHBfY2FwcyAqY2FwczsKMTQ0NzQ6ICBzdHJ1Y3QgcHdsX3BhcmFtcyByZWdhbW1h
X3BhcmFtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb2xvcmltZXRy
eSB7CjE0NDc0OiAgQ09MT1JJTUVUUllfTk9fREFUQSA9IDAsCjE0NDc0OiAgQ09MT1JJTUVUUllf
SVRVNjAxID0gMSwKMTQ0NzQ6ICBDT0xPUklNRVRSWV9JVFU3MDkgPSAyLAoxNDQ3NDogIENPTE9S
SU1FVFJZX0VYVEVOREVEID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjb2xvcmlt
ZXRyeV9leHQgewoxNDQ3NDogIENPTE9SSU1FVFJZRVhfWFZZQ0M2MDEgPSAwLAoxNDQ3NDogIENP
TE9SSU1FVFJZRVhfWFZZQ0M3MDkgPSAxLAoxNDQ3NDogIENPTE9SSU1FVFJZRVhfU1lDQzYwMSA9
IDIsCjE0NDc0OiAgQ09MT1JJTUVUUllFWF9BRE9CRVlDQzYwMSA9IDMsCjE0NDc0OiAgQ09MT1JJ
TUVUUllFWF9BRE9CRVJHQiA9IDQsCjE0NDc0OiAgQ09MT1JJTUVUUllFWF9CVDIwMjBZQ0MgPSA1
LAoxNDQ3NDogIENPTE9SSU1FVFJZRVhfQlQyMDIwUkdCWUNCQ1IgPSA2LAoxNDQ3NDogIENPTE9S
SU1FVFJZRVhfUkVTRVJWRUQgPSA3CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGFjdGl2
ZV9mb3JtYXRfaW5mbyB7CjE0NDc0OiAgQUNUSVZFX0ZPUk1BVF9OT19EQVRBID0gMCwKMTQ0NzQ6
ICBBQ1RJVkVfRk9STUFUX1ZBTElEID0gMQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIGFjdGl2ZV9mb3JtYXRfYXNwZWN0X3JhdGlvIHsKMTQ0NzQ6ICBBQ1RJVkVfRk9STUFU
X0FTUEVDVF9SQVRJT19TQU1FX0FTX1BJQ1RVUkUgPSA4LAoxNDQ3NDogIEFDVElWRV9GT1JNQVRf
QVNQRUNUX1JBVElPXzRfMyA9IDksCjE0NDc0OiAgQUNUSVZFX0ZPUk1BVF9BU1BFQ1RfUkFUSU9f
MTZfOSA9IDBYQSwKMTQ0NzQ6ICBBQ1RJVkVfRk9STUFUX0FTUEVDVF9SQVRJT18xNF85ID0gMFhC
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJhcl9pbmZvIHsKMTQ0NzQ6ICBCQVJfSU5G
T19OT1RfVkFMSUQgPSAwLAoxNDQ3NDogIEJBUl9JTkZPX1ZFUlRJQ0FMX1ZBTElEID0gMSwKMTQ0
NzQ6ICBCQVJfSU5GT19IT1JJWk9OVEFMX1ZBTElEID0gMiwKMTQ0NzQ6ICBCQVJfSU5GT19CT1RI
X1ZBTElEID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwaWN0dXJlX3NjYWxpbmcg
ewoxNDQ3NDogIFBJQ1RVUkVfU0NBTElOR19VTklGT1JNID0gMCwKMTQ0NzQ6ICBQSUNUVVJFX1ND
QUxJTkdfSE9SSVpPTlRBTCA9IDEsCjE0NDc0OiAgUElDVFVSRV9TQ0FMSU5HX1ZFUlRJQ0FMID0g
MiwKMTQ0NzQ6ICBQSUNUVVJFX1NDQUxJTkdfQk9USCA9IDMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSByZ2JfcXVhbnRpemF0aW9uX3JhbmdlIHsKMTQ0NzQ6ICBSR0JfUVVB
TlRJWkFUSU9OX0RFRkFVTFRfUkFOR0UgPSAwLAoxNDQ3NDogIFJHQl9RVUFOVElaQVRJT05fTElN
SVRFRF9SQU5HRSA9IDEsCjE0NDc0OiAgUkdCX1FVQU5USVpBVElPTl9GVUxMX1JBTkdFID0gMiwK
MTQ0NzQ6ICBSR0JfUVVBTlRJWkFUSU9OX1JFU0VSVkVEID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIHl5Y19xdWFudGl6YXRpb25fcmFuZ2UgewoxNDQ3NDogIFlZQ19R
VUFOVElaQVRJT05fTElNSVRFRF9SQU5HRSA9IDAsCjE0NDc0OiAgWVlDX1FVQU5USVpBVElPTl9G
VUxMX1JBTkdFID0gMSwKMTQ0NzQ6ICBZWUNfUVVBTlRJWkFUSU9OX1JFU0VSVkVEMiA9IDIsCjE0
NDc0OiAgWVlDX1FVQU5USVpBVElPTl9SRVNFUlZFRDMgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIGdyYXBoaWNzX2dhbXV0X2FkanVzdF90eXBlIHsKMTQ0NzQ6ICBHUkFQSElDU19H
QU1VVF9BREpVU1RfVFlQRV9CWVBBU1MgPSAwLAoxNDQ3NDogIEdSQVBISUNTX0dBTVVUX0FESlVT
VF9UWVBFX0hXLAoxNDQ3NDogIEdSQVBISUNTX0dBTVVUX0FESlVTVF9UWVBFX1NXCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGxiX21lbW9yeV9jb25maWcgewoxNDQ3NDogCjE0NDc0OiAg
TEJfTUVNT1JZX0NPTkZJR18wID0gMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgTEJfTUVNT1JZ
X0NPTkZJR18xID0gMSwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgTEJfTUVNT1JZX0NPTkZJR18y
ID0gMiwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIExCX01FTU9SWV9D
T05GSUdfMyA9IDMKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB4Zm1fZ3JwaF9jc2Nf
YWRqdXN0bWVudCB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgdGVtcGVyYXR1cmVfbWF0cml4
WzEyXTsKMTQ0NzQ6ICBlbnVtIGdyYXBoaWNzX2dhbXV0X2FkanVzdF90eXBlIGdhbXV0X2FkanVz
dF90eXBlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG92ZXJzY2FuX2luZm8gewox
NDQ3NDogIGludCBsZWZ0OwoxNDQ3NDogIGludCByaWdodDsKMTQ0NzQ6ICBpbnQgdG9wOwoxNDQ3
NDogIGludCBib3R0b207CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc2NhbGluZ19y
YXRpb3MgewoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGhvcno7CjE0NDc0OiAgc3RydWN0IGZp
eGVkMzFfMzIgdmVydDsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBob3J6X2M7CjE0NDc0OiAg
c3RydWN0IGZpeGVkMzFfMzIgdmVydF9jOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IHNoYXJwbmVzc19hZGogewoxNDQ3NDogIGludCBob3J6OwoxNDQ3NDogIGludCB2ZXJ0OwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxpbmVfYnVmZmVyX3BhcmFtcyB7CjE0NDc0OiAg
Ym9vbCBhbHBoYV9lbjsKMTQ0NzQ6ICBib29sIHBpeGVsX2V4cGFuX21vZGU7CjE0NDc0OiAgYm9v
bCBpbnRlcmxlYXZlX2VuOwoxNDQ3NDogIGludCBkeW5hbWljX3BpeGVsX2RlcHRoOwoxNDQ3NDog
IGVudW0gbGJfcGl4ZWxfZGVwdGggZGVwdGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgc2NsX2luaXRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBoOwoxNDQ3NDogIHN0cnVj
dCBmaXhlZDMxXzMyIGhfYzsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB2OwoxNDQ3NDogIHN0
cnVjdCBmaXhlZDMxXzMyIHZfYm90OwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIHZfYzsKMTQ0
NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB2X2NfYm90OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IHNjYWxlcl9kYXRhIHsKMTQ0NzQ6ICBpbnQgaF9hY3RpdmU7CjE0NDc0OiAgaW50IHZf
YWN0aXZlOwoxNDQ3NDogIHN0cnVjdCBzY2FsaW5nX3RhcHMgdGFwczsKMTQ0NzQ6ICBzdHJ1Y3Qg
cmVjdCB2aWV3cG9ydDsKMTQ0NzQ6ICBzdHJ1Y3QgcmVjdCB2aWV3cG9ydF9jOwoxNDQ3NDogIHN0
cnVjdCByZWN0IHJlY291dDsKMTQ0NzQ6ICBzdHJ1Y3Qgc2NhbGluZ19yYXRpb3MgcmF0aW9zOwox
NDQ3NDogIHN0cnVjdCBzY2xfaW5pdHMgaW5pdHM7CjE0NDc0OiAgc3RydWN0IHNoYXJwbmVzc19h
ZGogc2hhcnBuZXNzOwoxNDQ3NDogIGVudW0gcGl4ZWxfZm9ybWF0IGZvcm1hdDsKMTQ0NzQ6ICBz
dHJ1Y3QgbGluZV9idWZmZXJfcGFyYW1zIGxiX3BhcmFtczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCB0cmFuc2Zvcm1fZnVuY3MgewoxNDQ3NDogIHZvaWQgKCp0cmFuc2Zvcm1fcmVz
ZXQpKHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqdHJhbnNm
b3JtX3NldF9zY2FsZXIpKHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKMTQ0NzQ6ICAgIGNvbnN0IHN0
cnVjdCBzY2FsZXJfZGF0YSAqc2NsX2RhdGEpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnRyYW5z
Zm9ybV9zZXRfcGl4ZWxfc3RvcmFnZV9kZXB0aCkoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3Jt
ICp4Zm0sCjE0NDc0OiAgICBlbnVtIGxiX3BpeGVsX2RlcHRoIGRlcHRoLAoxNDQ3NDogICAgY29u
c3Qgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpiaXRfZGVwdGhfcGFyYW1zKTsK
MTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCp0cmFuc2Zvcm1fZ2V0X29wdGltYWxfbnVtYmVyX29mX3Rh
cHMpKAoxNDQ3NDogICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICAgc3RydWN0IHNj
YWxlcl9kYXRhICpzY2xfZGF0YSwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBzY2FsaW5nX3RhcHMg
KmluX3RhcHMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnRyYW5zZm9ybV9zZXRfZ2FtdXRfcmVt
YXApKAoxNDQ3NDogICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICAgY29uc3Qgc3Ry
dWN0IHhmbV9ncnBoX2NzY19hZGp1c3RtZW50ICphZGp1c3QpOwoxNDQ3NDogCjE0NDc0OiAgdm9p
ZCAoKm9wcF9zZXRfY3NjX2RlZmF1bHQpKAoxNDQ3NDogICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0s
CjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkZWZhdWx0X2FkanVzdG1lbnQgKmRlZmF1bHRfYWRqdXN0
KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfc2V0X2NzY19hZGp1c3RtZW50KSgKMTQ0NzQ6
ICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qgb3V0X2NzY19j
b2xvcl9tYXRyaXggKnRibF9lbnRyeSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX3Bvd2Vy
X29uX3JlZ2FtbWFfbHV0KSgKMTQ0NzQ6ICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDog
ICBib29sIHBvd2VyX29uKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfcHJvZ3JhbV9yZWdh
bW1hX2x1dCkoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCjE0NDc0OiAgICBjb25z
dCBzdHJ1Y3QgcHdsX3Jlc3VsdF9kYXRhICpyZ2IsCjE0NDc0OiAgICB1aW50MzJfdCBudW0pOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9jb25maWd1cmVfcmVnYW1tYV9sdXQpKAoxNDQ3NDog
ICAgc3RydWN0IHRyYW5zZm9ybSAqeGZtLAoxNDQ3NDogICAgYm9vbCBpc19yYW1fYSk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX3Byb2dyYW1fcmVnYW1tYV9sdXRiX3NldHRpbmdzKSgKMTQ0
NzQ6ICAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBwd2xf
cGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2Ft
bWFfbHV0YV9zZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCjE0NDc0
OiAgICBjb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZv
aWQgKCpvcHBfcHJvZ3JhbV9yZWdhbW1hX3B3bCkoCjE0NDc0OiAgIHN0cnVjdCB0cmFuc2Zvcm0g
KnhmbSwgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqb3BwX3NldF9yZWdhbW1hX21vZGUpKAoxNDQ3NDogICAgc3RydWN0IHRyYW5zZm9ybSAq
eGZtX2Jhc2UsCjE0NDc0OiAgICBlbnVtIG9wcF9yZWdhbW1hIG1vZGUpOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKmlwcF9zZXRfZGVnYW1tYSkoCjE0NDc0OiAgICBzdHJ1Y3QgdHJhbnNmb3JtICp4
Zm1fYmFzZSwKMTQ0NzQ6ICAgIGVudW0gaXBwX2RlZ2FtbWFfbW9kZSBtb2RlKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCppcHBfcHJvZ3JhbV9pbnB1dF9sdXQpKAoxNDQ3NDogICAgc3RydWN0IHRy
YW5zZm9ybSAqeGZtX2Jhc2UsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1h
KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCppcHBfcHJvZ3JhbV9kZWdhbW1hX3B3bCkoc3RydWN0
IHRyYW5zZm9ybSAqeGZtX2Jhc2UsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IHB3bF9w
YXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaXBwX3NldHVwKSgKMTQ0NzQ6
ICAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbV9iYXNlLAoxNDQ3NDogICAgZW51bSBzdXJmYWNlX3Bp
eGVsX2Zvcm1hdCBmb3JtYXQsCjE0NDc0OiAgICBlbnVtIGV4cGFuc2lvbl9tb2RlIG1vZGUsCjE0
NDc0OiAgICBzdHJ1Y3QgZGNfY3NjX3RyYW5zZm9ybSBpbnB1dF9jc2NfY29sb3JfbWF0cml4LAox
NDQ3NDogICAgZW51bSBkY19jb2xvcl9zcGFjZSBpbnB1dF9jb2xvcl9zcGFjZSk7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqaXBwX2Z1bGxfYnlwYXNzKShzdHJ1Y3QgdHJhbnNmb3JtICp4Zm1fYmFz
ZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2N1cnNvcl9hdHRyaWJ1dGVzKSgKMTQ0NzQ6
ICAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbV9iYXNlLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IGRj
X2N1cnNvcl9hdHRyaWJ1dGVzICphdHRyKTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogY29uc3QgdWludDE2X3QgKmdldF9maWx0ZXJfMnRhcF8xNnAodm9pZCk7CjE0NDc0OiBjb25z
dCB1aW50MTZfdCAqZ2V0X2ZpbHRlcl8ydGFwXzY0cCh2b2lkKTsKMTQ0NzQ6IGNvbnN0IHVpbnQx
Nl90ICpnZXRfZmlsdGVyXzN0YXBfMTZwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6
IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzN0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJh
dGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzR0YXBfMTZwKHN0cnVjdCBm
aXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzR0YXBf
NjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRf
ZmlsdGVyXzV0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVp
bnQxNl90ICpnZXRfZmlsdGVyXzZ0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0
NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzd0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMy
IHJhdGlvKTsKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzh0YXBfNjRwKHN0cnVj
dCBmaXhlZDMxXzMyIHJhdGlvKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
ZHNjbF9kYXRhX3Byb2Nlc3NpbmdfZm9ybWF0IHsKMTQ0NzQ6ICBEU0NMX0RBVEFfUFJDRVNTSU5H
X0ZJWEVEX0ZPUk1BVCwKMTQ0NzQ6ICBEU0NMX0RBVEFfUFJDRVNTSU5HX0ZMT0FUX0ZPUk1BVCwK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcHBfY2FwcyB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRz
Y2xfZGF0YV9wcm9jZXNzaW5nX2Zvcm1hdCBkc2NsX2RhdGFfcHJvY19mb3JtYXQ7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkc2NsX2NhbGNf
bGJfbnVtX3BhcnRpdGlvbnMpKAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHNjYWxlcl9kYXRhICpz
Y2xfZGF0YSwKMTQ0NzQ6ICAgIGVudW0gbGJfbWVtb3J5X2NvbmZpZyBsYl9jb25maWcsCjE0NDc0
OiAgICBpbnQgKm51bV9wYXJ0X3ksCjE0NDc0OiAgICBpbnQgKm51bV9wYXJ0X2MpOwoxNDQ3NDog
fTsKMTQ0NzQ6ICMgMzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvaHcvb3BwLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIgMQoxNDQ3NDogIyAzNiAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIKMTQ0NzQ6IGVudW0g
bXBjX291dHB1dF9jc2NfbW9kZSB7CjE0NDc0OiAgTVBDX09VVFBVVF9DU0NfRElTQUJMRSA9IDAs
CjE0NDc0OiAgTVBDX09VVFBVVF9DU0NfQ09FRl9BLAoxNDQ3NDogIE1QQ19PVVRQVVRfQ1NDX0NP
RUZfQgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIG1wY2NfYmxlbmRfbW9k
ZSB7CjE0NDc0OiAgTVBDQ19CTEVORF9NT0RFX0JZUEFTUywKMTQ0NzQ6ICBNUENDX0JMRU5EX01P
REVfVE9QX0xBWUVSX1BBU1NUSFJPVUdILAoxNDQ3NDogIE1QQ0NfQkxFTkRfTU9ERV9UT1BfTEFZ
RVJfT05MWSwKMTQ0NzQ6ICBNUENDX0JMRU5EX01PREVfVE9QX0JPVF9CTEVORElORwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBtcGNjX2FscGhhX2JsZW5kX21vZGUgewoxNDQ3NDogIE1Q
Q0NfQUxQSEFfQkxFTkRfTU9ERV9QRVJfUElYRUxfQUxQSEEsCjE0NDc0OiAgTVBDQ19BTFBIQV9C
TEVORF9NT0RFX1BFUl9QSVhFTF9BTFBIQV9DT01CSU5FRF9HTE9CQUxfR0FJTiwKMTQ0NzQ6ICBN
UENDX0FMUEhBX0JMRU5EX01PREVfR0xPQkFMX0FMUEhBCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbXBjY19ibG5kX2NmZyB7CjE0NDc0OiAg
c3RydWN0IHRnX2NvbG9yIGJsYWNrX2NvbG9yOwoxNDQ3NDogIGVudW0gbXBjY19hbHBoYV9ibGVu
ZF9tb2RlIGFscGhhX21vZGU7CjE0NDc0OiAgYm9vbCBwcmVfbXVsdGlwbGllZF9hbHBoYTsKMTQ0
NzQ6ICBpbnQgZ2xvYmFsX2dhaW47CjE0NDc0OiAgaW50IGdsb2JhbF9hbHBoYTsKMTQ0NzQ6ICBi
b29sIG92ZXJsYXBfb25seTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IGJvdHRvbV9nYWlu
X21vZGU7CjE0NDc0OiAgaW50IGJhY2tncm91bmRfY29sb3JfYnBjOwoxNDQ3NDogIGludCB0b3Bf
Z2FpbjsKMTQ0NzQ6ICBpbnQgYm90dG9tX2luc2lkZV9nYWluOwoxNDQ3NDogIGludCBib3R0b21f
b3V0c2lkZV9nYWluOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1wY2Nfc21fY2Zn
IHsKMTQ0NzQ6ICBib29sIGVuYWJsZTsKMTQ0NzQ6IAoxNDQ3NDogIGludCBzbV9tb2RlOwoxNDQ3
NDogCjE0NDc0OiAgYm9vbCBmcmFtZV9hbHQ7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGZpZWxkX2Fs
dDsKMTQ0NzQ6IAoxNDQ3NDogIGludCBmb3JjZV9uZXh0X2ZyYW1lX3Bvcmxhcml0eTsKMTQ0NzQ6
IAoxNDQ3NDogIGludCBmb3JjZV9uZXh0X2ZpZWxkX3BvbGFyaXR5OwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IG1wY19kZW5vcm1fY2xhbXAgewoxNDQ3NDogIGludCBjbGFtcF9tYXhf
cl9jcjsKMTQ0NzQ6ICBpbnQgY2xhbXBfbWluX3JfY3I7CjE0NDc0OiAgaW50IGNsYW1wX21heF9n
X3k7CjE0NDc0OiAgaW50IGNsYW1wX21pbl9nX3k7CjE0NDc0OiAgaW50IGNsYW1wX21heF9iX2Ni
OwoxNDQ3NDogIGludCBjbGFtcF9taW5fYl9jYjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1wY2MgewoxNDQ3NDogIGludCBt
cGNjX2lkOwoxNDQ3NDogIGludCBkcHBfaWQ7CjE0NDc0OiAgc3RydWN0IG1wY2MgKm1wY2NfYm90
OwoxNDQ3NDogIHN0cnVjdCBtcGNjX2JsbmRfY2ZnIGJsbmRfY2ZnOwoxNDQ3NDogIHN0cnVjdCBt
cGNjX3NtX2NmZyBzbV9jZmc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgbXBjX3RyZWUgewoxNDQ3NDogIGludCBvcHBfaWQ7CjE0NDc0OiAg
c3RydWN0IG1wY2MgKm9wcF9saXN0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1w
YyB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IG1wY19mdW5jcyAqZnVuY3M7CjE0NDc0OiAgc3RydWN0
IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBtcGNjIG1wY2NfYXJyYXlb
Nl07CjE0NDc0OiAgc3RydWN0IHB3bF9wYXJhbXMgYmxlbmRlcl9wYXJhbXM7CjE0NDc0OiAgYm9v
bCBjbV9ieXBhc3NfbW9kZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcGNjX3N0
YXRlIHsKMTQ0NzQ6ICB1aW50MzJfdCBvcHBfaWQ7CjE0NDc0OiAgdWludDMyX3QgZHBwX2lkOwox
NDQ3NDogIHVpbnQzMl90IGJvdF9tcGNjX2lkOwoxNDQ3NDogIHVpbnQzMl90IG1vZGU7CjE0NDc0
OiAgdWludDMyX3QgYWxwaGFfbW9kZTsKMTQ0NzQ6ICB1aW50MzJfdCBwcmVfbXVsdGlwbGllZF9h
bHBoYTsKMTQ0NzQ6ICB1aW50MzJfdCBvdmVybGFwX29ubHk7CjE0NDc0OiAgdWludDMyX3QgaWRs
ZTsKMTQ0NzQ6ICB1aW50MzJfdCBidXN5OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IG1wY19mdW5jcyB7CjE0NDc0OiAgdm9pZCAoKnJlYWRfbXBjY19zdGF0ZSkoCjE0NDc0OiAgICBz
dHJ1Y3QgbXBjICptcGMsCjE0NDc0OiAgICBpbnQgbXBjY19pbnN0LAoxNDQ3NDogICAgc3RydWN0
IG1wY2Nfc3RhdGUgKnMpOwoxNDQ3NDogIyAxNjEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCjE0NDc0OiAgc3RydWN0IG1wY2MqICgqaW5z
ZXJ0X3BsYW5lKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIHN0cnVjdCBt
cGNfdHJlZSAqdHJlZSwKMTQ0NzQ6ICAgIHN0cnVjdCBtcGNjX2JsbmRfY2ZnICpibG5kX2NmZywK
MTQ0NzQ6ICAgIHN0cnVjdCBtcGNjX3NtX2NmZyAqc21fY2ZnLAoxNDQ3NDogICAgc3RydWN0IG1w
Y2MgKmluc2VydF9hYm92ZV9tcGNjLAoxNDQ3NDogICAgaW50IGRwcF9pZCwKMTQ0NzQ6ICAgIGlu
dCBtcGNjX2lkKTsKMTQ0NzQ6ICMgMTgwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIgoxNDQ3NDogIHZvaWQgKCpyZW1vdmVfbXBjYykoCjE0
NDc0OiAgICBzdHJ1Y3QgbXBjICptcGMsCjE0NDc0OiAgICBzdHJ1Y3QgbXBjX3RyZWUgKnRyZWUs
CjE0NDc0OiAgICBzdHJ1Y3QgbXBjYyAqbXBjYyk7CjE0NDc0OiAjIDE5MyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIKMTQ0NzQ6ICB2b2lk
ICgqbXBjX2luaXQpKHN0cnVjdCBtcGMgKm1wYyk7CjE0NDc0OiAgdm9pZCAoKm1wY19pbml0X3Np
bmdsZV9pbnN0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIHVuc2lnbmVk
IGludCBtcGNjX2lkKTsKMTQ0NzQ6ICMgMjA4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIgoxNDQ3NDogIHZvaWQgKCp1cGRhdGVfYmxlbmRp
bmcpKAoxNDQ3NDogICBzdHJ1Y3QgbXBjICptcGMsCjE0NDc0OiAgIHN0cnVjdCBtcGNjX2JsbmRf
Y2ZnICpibG5kX2NmZywKMTQ0NzQ6ICAgaW50IG1wY2NfaWQpOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IG1wY2MqICgqZ2V0X21wY2NfZm9yX2RwcCkoCjE0NDc0OiAgICBzdHJ1Y3QgbXBjX3RyZWUg
KnRyZWUsCjE0NDc0OiAgICBpbnQgZHBwX2lkKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCp3YWl0
X2Zvcl9pZGxlKShzdHJ1Y3QgbXBjICptcGMsIGludCBpZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lk
ICgqYXNzZXJ0X21wY2NfaWRsZV9iZWZvcmVfY29ubmVjdCkoc3RydWN0IG1wYyAqbXBjLCBpbnQg
bXBjY19pZCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaW5pdF9tcGNjX2xpc3RfZnJvbV9odyko
CjE0NDc0OiAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgc3RydWN0IG1wY190cmVlICp0cmVl
KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfZGVub3JtKShzdHJ1Y3QgbXBjICptcGMsCjE0
NDc0OiAgICBpbnQgb3BwX2lkLAoxNDQ3NDogICAgZW51bSBkY19jb2xvcl9kZXB0aCBvdXRwdXRf
ZGVwdGgpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9kZW5vcm1fY2xhbXApKAoxNDQ3NDog
ICAgc3RydWN0IG1wYyAqbXBjLAoxNDQ3NDogICAgaW50IG9wcF9pZCwKMTQ0NzQ6ICAgIHN0cnVj
dCBtcGNfZGVub3JtX2NsYW1wIGRlbm9ybV9jbGFtcCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgq
c2V0X291dHB1dF9jc2MpKHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIGludCBvcHBfaWQsCjE0
NDc0OiAgICBjb25zdCB1aW50MTZfdCAqcmVndmFsLAoxNDQ3NDogICAgZW51bSBtcGNfb3V0cHV0
X2NzY19tb2RlIG9jc2NfbW9kZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X29jc2NfZGVm
YXVsdCkoc3RydWN0IG1wYyAqbXBjLAoxNDQ3NDogICAgaW50IG9wcF9pZCwKMTQ0NzQ6ICAgIGVu
dW0gZGNfY29sb3Jfc3BhY2UgY29sb3Jfc3BhY2UsCjE0NDc0OiAgICBlbnVtIG1wY19vdXRwdXRf
Y3NjX21vZGUgb2NzY19tb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfb3V0cHV0X2dh
bW1hKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6ICAgIGludCBtcGNjX2lkLAox
NDQ3NDogICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAgdm9pZCAo
KnBvd2VyX29uX21wY19tZW1fcHdyKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtcGMgKm1wYywKMTQ0NzQ6
ICAgIGludCBtcGNjX2lkLAoxNDQ3NDogICAgYm9vbCBwb3dlcl9vbik7CjE0NDc0OiAKMTQ0NzQ6
IH07CjE0NDc0OiAjIDMzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvaW5jL2h3L29wcC5oIiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBmaXhlZDMxXzMyOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gY2xhbXBpbmdfcmFuZ2UgewoxNDQ3NDogIENMQU1QSU5H
X0ZVTExfUkFOR0UgPSAwLAoxNDQ3NDogIENMQU1QSU5HX0xJTUlURURfUkFOR0VfOEJQQywKMTQ0
NzQ6ICBDTEFNUElOR19MSU1JVEVEX1JBTkdFXzEwQlBDLAoxNDQ3NDogIENMQU1QSU5HX0xJTUlU
RURfUkFOR0VfMTJCUEMsCjE0NDc0OiAKMTQ0NzQ6ICBDTEFNUElOR19MSU1JVEVEX1JBTkdFX1BS
T0dSQU1NQUJMRQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsYW1waW5nX2FuZF9w
aXhlbF9lbmNvZGluZ19wYXJhbXMgewoxNDQ3NDogIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4
ZWxfZW5jb2Rpbmc7CjE0NDc0OiAgZW51bSBjbGFtcGluZ19yYW5nZSBjbGFtcGluZ19sZXZlbDsK
MTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNfZGVwdGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgewoxNDQ3NDogIHN0cnVjdCB7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBUUlVOQ0FURV9FTkFCTEVEOjE7CjE0
NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgVFJVTkNBVEVfREVQVEg6MjsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50MzJfdCBUUlVOQ0FURV9NT0RFOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgIHVpbnQzMl90IFNQQVRJQUxfRElUSEVSX0VOQUJMRUQ6MTsKMTQ0NzQ6IAoxNDQ3NDogICB1
aW50MzJfdCBTUEFUSUFMX0RJVEhFUl9ERVBUSDoyOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90
IFNQQVRJQUxfRElUSEVSX01PREU6MjsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBSR0JfUkFO
RE9NOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgRlJBTUVfUkFORE9NOjE7CjE0NDc0OiAK
MTQ0NzQ6ICAgdWludDMyX3QgSElHSFBBU1NfUkFORE9NOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgIHVpbnQzMl90IEZSQU1FX01PRFVMQVRJT05fRU5BQkxFRDoxOwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQzMl90IEZSQU1FX01PRFVMQVRJT05fREVQVEg6MjsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MzJfdCBURU1QT1JBTF9MRVZFTDoxOwoxNDQ3NDogICB1aW50MzJfdCBGUkMyNToy
OwoxNDQ3NDogICB1aW50MzJfdCBGUkM1MDoyOwoxNDQ3NDogICB1aW50MzJfdCBGUkM3NToyOwox
NDQ3NDogIH0gZmxhZ3M7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByX3NlZWRfdmFsdWU7CjE0
NDc0OiAgdWludDMyX3QgYl9zZWVkX3ZhbHVlOwoxNDQ3NDogIHVpbnQzMl90IGdfc2VlZF92YWx1
ZTsKMTQ0NzQ6ICBlbnVtIGRjX3BpeGVsX2VuY29kaW5nIHBpeGVsX2VuY29kaW5nOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB3aWRlX2dhbXV0X3JlZ2FtbWFfbW9kZSB7CjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19CWVBBU1MsCjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19TUkdCMjQsCjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19YWVlDQzIyLAoxNDQ3NDog
CjE0NDc0OiAgV0lERV9HQU1VVF9SRUdBTU1BX01PREVfR1JBUEhJQ1NfTUFUUklYX0EsCjE0NDc0
OiAKMTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19NQVRSSVhfQiwKMTQ0
NzQ6IAoxNDQ3NDogIFdJREVfR0FNVVRfUkVHQU1NQV9NT0RFX09WTF9CWVBBU1MsCjE0NDc0OiAK
MTQ0NzQ6ICBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9PVkxfU1JHQjI0LAoxNDQ3NDogCjE0NDc0
OiAgV0lERV9HQU1VVF9SRUdBTU1BX01PREVfT1ZMX1hZWUNDMjIsCjE0NDc0OiAKMTQ0NzQ6ICBX
SURFX0dBTVVUX1JFR0FNTUFfTU9ERV9PVkxfTUFUUklYX0EsCjE0NDc0OiAKMTQ0NzQ6ICBXSURF
X0dBTVVUX1JFR0FNTUFfTU9ERV9PVkxfTUFUUklYX0IKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBnYW1tYV9waXhlbCB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcjsKMTQ0NzQ6
ICBzdHJ1Y3QgZml4ZWQzMV8zMiBnOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGI7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGNoYW5uZWxfbmFtZSB7CjE0NDc0OiAgQ0hBTk5FTF9O
QU1FX1JFRCwKMTQ0NzQ6ICBDSEFOTkVMX05BTUVfR1JFRU4sCjE0NDc0OiAgQ0hBTk5FTF9OQU1F
X0JMVUUKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjdXN0b21fZmxvYXRfZm9ybWF0
IHsKMTQ0NzQ6ICB1aW50MzJfdCBtYW50aXNzYV9iaXRzOwoxNDQ3NDogIHVpbnQzMl90IGV4cG9u
ZW50YV9iaXRzOwoxNDQ3NDogIGJvb2wgc2lnbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBjdXN0b21fZmxvYXRfdmFsdWUgewoxNDQ3NDogIHVpbnQzMl90IG1hbnRpc3NhOwoxNDQ3
NDogIHVpbnQzMl90IGV4cG9uZW50YTsKMTQ0NzQ6ICB1aW50MzJfdCB2YWx1ZTsKMTQ0NzQ6ICBi
b29sIG5lZ2F0aXZlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGh3X3hfcG9pbnQg
ewoxNDQ3NDogIHVpbnQzMl90IGN1c3RvbV9mbG9hdF94OwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMx
XzMyIHg7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcmVnYW1tYV95X3JlZDsKMTQ0NzQ6ICBz
dHJ1Y3QgZml4ZWQzMV8zMiByZWdhbW1hX3lfZ3JlZW47CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFf
MzIgcmVnYW1tYV95X2JsdWU7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBwd2xfZmxvYXRfZGF0YV9leCB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcjsKMTQ0NzQ6
ICBzdHJ1Y3QgZml4ZWQzMV8zMiBnOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGI7CjE0NDc0
OiAgc3RydWN0IGZpeGVkMzFfMzIgZGVsdGFfcjsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBk
ZWx0YV9nOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGRlbHRhX2I7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGh3X3BvaW50X3Bvc2l0aW9uIHsKMTQ0NzQ6IAoxNDQ3NDogIEhXX1BP
SU5UX1BPU0lUSU9OX01JRERMRSwKMTQ0NzQ6IAoxNDQ3NDogIEhXX1BPSU5UX1BPU0lUSU9OX0xF
RlQsCjE0NDc0OiAKMTQ0NzQ6ICBIV19QT0lOVF9QT1NJVElPTl9SSUdIVAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGdhbW1hX3BvaW50IHsKMTQ0NzQ6ICBpbnQzMl90IGxlZnRfaW5k
ZXg7CjE0NDc0OiAgaW50MzJfdCByaWdodF9pbmRleDsKMTQ0NzQ6ICBlbnVtIGh3X3BvaW50X3Bv
c2l0aW9uIHBvczsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBjb2VmZjsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwaXhlbF9nYW1tYV9wb2ludCB7CjE0NDc0OiAgc3RydWN0IGdh
bW1hX3BvaW50IHI7CjE0NDc0OiAgc3RydWN0IGdhbW1hX3BvaW50IGc7CjE0NDc0OiAgc3RydWN0
IGdhbW1hX3BvaW50IGI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ2FtbWFfY29l
ZmZpY2llbnRzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBhMFszXTsKMTQ0NzQ6ICBzdHJ1
Y3QgZml4ZWQzMV8zMiBhMVszXTsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBhMlszXTsKMTQ0
NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBhM1szXTsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB1
c2VyX2dhbW1hWzNdOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIHVzZXJfY29udHJhc3Q7CjE0
NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgdXNlcl9icmlnaHRuZXNzOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IHB3bF9mbG9hdF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8z
MiByOwoxNDQ3NDogIHN0cnVjdCBmaXhlZDMxXzMyIGc7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFf
MzIgYjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtcGNfdHJlZV9jZmcgewoxNDQ3
NDogIGludCBudW1fcGlwZXM7CjE0NDc0OiAgaW50IGRwcFs2XTsKMTQ0NzQ6ICBpbnQgbXBjY1s2
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29y
IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVpbnQzMl90IGluc3Q7
CjE0NDc0OiAgc3RydWN0IHB3bF9wYXJhbXMgcmVnYW1tYV9wYXJhbXM7CjE0NDc0OiAgc3RydWN0
IG1wY190cmVlIG1wY190cmVlX3BhcmFtczsKMTQ0NzQ6ICBib29sIG1wY2NfZGlzY29ubmVjdF9w
ZW5kaW5nWzZdOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBvcHBfZnVuY3MgKmZ1bmNzOwoxNDQ3NDog
IHVpbnQzMl90IGR5bl9leHBhbnNpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGZt
dF9zdGVyZW9fYWN0aW9uIHsKMTQ0NzQ6ICBGTVRfU1RFUkVPX0FDVElPTl9FTkFCTEUgPSAwLAox
NDQ3NDogIEZNVF9TVEVSRU9fQUNUSU9OX0RJU0FCTEUsCjE0NDc0OiAgRk1UX1NURVJFT19BQ1RJ
T05fVVBEQVRFX1BPTEFSSVRZCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgb3BwX2dy
cGhfY3NjX2FkanVzdG1lbnQgewoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBj
X3NwYWNlOwoxNDQ3NDogIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CjE0NDc0OiAg
ZW51bSBncmFwaGljc19jc2NfYWRqdXN0X3R5cGUgY3NjX2FkanVzdF90eXBlOwoxNDQ3NDogIGlu
dDMyX3QgYWRqdXN0X2RpdmlkZXI7CjE0NDc0OiAgaW50MzJfdCBncnBoX2NvbnQ7CjE0NDc0OiAg
aW50MzJfdCBncnBoX3NhdDsKMTQ0NzQ6ICBpbnQzMl90IGdycGhfYnJpZ2h0OwoxNDQ3NDogIGlu
dDMyX3QgZ3JwaF9odWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGh3X2FkanVzdG1lbnRfcmFuZ2UgewoxNDQ3NDogIGludDMyX3QgaHdfZGVmYXVsdDsK
MTQ0NzQ6ICBpbnQzMl90IG1pbjsKMTQ0NzQ6ICBpbnQzMl90IG1heDsKMTQ0NzQ6ICBpbnQzMl90
IHN0ZXA7CjE0NDc0OiAgdWludDMyX3QgZGl2aWRlcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gb3ZsX2NzY19hZGp1c3RfaXRlbSB7CjE0NDc0OiAgT1ZFUkxBWV9CUklHSFRORVNTID0g
MCwKMTQ0NzQ6ICBPVkVSTEFZX0dBTU1BLAoxNDQ3NDogIE9WRVJMQVlfQ09OVFJBU1QsCjE0NDc0
OiAgT1ZFUkxBWV9TQVRVUkFUSU9OLAoxNDQ3NDogIE9WRVJMQVlfSFVFLAoxNDQ3NDogIE9WRVJM
QVlfQUxQSEEsCjE0NDc0OiAgT1ZFUkxBWV9BTFBIQV9QRVJfUElYLAoxNDQ3NDogIE9WRVJMQVlf
Q09MT1JfVEVNUEVSQVRVUkUKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gb3BwYnVmX2Rp
c3BsYXlfc2VnbWVudGF0aW9uIHsKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05f
MV9TRUdNRU5UID0gMCwKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fMl9TRUdN
RU5UID0gMSwKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fNF9TRUdNRU5UID0g
MiwKMTQ0NzQ6ICBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fNF9TRUdNRU5UX1NQTElUX0xF
RlQgPSAzLAoxNDQ3NDogIE9QUEJVRl9ESVNQTEFZX1NFR01FTlRBVElPTl80X1NFR01FTlRfU1BM
SVRfUklHSFQgPSA0CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgb3BwYnVmX3BhcmFt
cyB7CjE0NDc0OiAgdWludDMyX3QgYWN0aXZlX3dpZHRoOwoxNDQ3NDogIGVudW0gb3BwYnVmX2Rp
c3BsYXlfc2VnbWVudGF0aW9uIG1zb19zZWdtZW50YXRpb247CjE0NDc0OiAgdWludDMyX3QgbXNv
X292ZXJsYXBfcGl4ZWxfbnVtOwoxNDQ3NDogIHVpbnQzMl90IHBpeGVsX3JlcGV0aXRpb247CjE0
NDc0OiAgdWludDMyX3QgbnVtX3NlZ21lbnRfcGFkZGVkX3BpeGVsczsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBvcHBfZnVuY3MgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9wcm9ncmFtX2ZtdCkoCjE0NDc0OiAgICBzdHJ1Y3Qgb3V0
cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAoxNDQ3NDogICAgc3RydWN0IGJpdF9kZXB0aF9yZWR1
Y3Rpb25fcGFyYW1zICpmbXRfYml0X2RlcHRoLAoxNDQ3NDogICAgc3RydWN0IGNsYW1waW5nX2Fu
ZF9waXhlbF9lbmNvZGluZ19wYXJhbXMgKmNsYW1waW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpvcHBfc2V0X2R5bl9leHBhbnNpb24pKAoxNDQ3NDogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3By
b2Nlc3NvciAqb3BwLAoxNDQ3NDogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yX3NwLAoxNDQ3
NDogICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RwdGgsCjE0NDc0OiAgIGVudW0gc2lnbmFs
X3R5cGUgc2lnbmFsKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfcHJvZ3JhbV9iaXRfZGVw
dGhfcmVkdWN0aW9uKSgKMTQ0NzQ6ICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9w
cCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpwYXJh
bXMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX2dldF91bmRlcmxheV9hZGp1
c3RtZW50X3JhbmdlKSgKMTQ0NzQ6ICAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpv
cHAsCjE0NDc0OiAgICBlbnVtIG92bF9jc2NfYWRqdXN0X2l0ZW0gb3ZlcmxheV9hZGp1c3RfaXRl
bSwKMTQ0NzQ6ICAgIHN0cnVjdCBod19hZGp1c3RtZW50X3JhbmdlICpyYW5nZSk7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqb3BwX2Rlc3Ryb3kpKHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29y
ICoqb3BwKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfcHJvZ3JhbV9zdGVyZW8pKAoxNDQ3
NDogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAoxNDQ3NDogICBib29sIGVu
YWJsZSwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcpOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKm9wcF9waXBlX2Nsb2NrX2NvbnRyb2wpKAoxNDQ3NDogICAgc3Ry
dWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKMTQ0NzQ6ICAgIGJvb2wgZW5hYmxlKTsK
MTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpvcHBfc2V0X2Rpc3BfcGF0dGVybl9nZW5lcmF0b3IpKAox
NDQ3NDogICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKMTQ0NzQ6ICAgIGVu
dW0gY29udHJvbGxlcl9kcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAoxNDQ3NDogICAgZW51
bSBjb250cm9sbGVyX2RwX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlLAoxNDQ3NDogICAgZW51bSBk
Y19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0aCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCB0Z19jb2xv
ciAqc29saWRfY29sb3IsCjE0NDc0OiAgICBpbnQgd2lkdGgsCjE0NDc0OiAgICBpbnQgaGVpZ2h0
KTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpkcGdfaXNfYmxhbmtlZCkoCjE0NDc0OiAgICBzdHJ1
Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpv
cHBfZHBnX3NldF9ibGFua19jb2xvcikoCjE0NDc0OiAgICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3By
b2Nlc3NvciAqb3BwLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHRnX2NvbG9yICpjb2xvcik7CjE0
NDc0OiAKMTQ0NzQ6ICB2b2lkICgqb3BwX3Byb2dyYW1fbGVmdF9lZGdlX2V4dHJhX3BpeGVsKSgK
MTQ0NzQ6ICAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCjE0NDc0OiAgICBi
b29sIGNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzYgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9od19zZXF1ZW5j
ZXIuaCIgMQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIgMQoxNDQ3NDogIyAz
MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19z
b3VyY2UuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvZ3JwaF9vYmplY3RfaWQuaCIgMQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIgMgoxNDQ3
NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9i
aW9zX3BhcnNlcl90eXBlcy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIgoxNDQ3NDogIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMu
aCIgMQoxNDQ3NDogIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RtX3NlcnZpY2VzLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiIDEKMTQ0NzQ6ICMgMzIg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1
X2RtX3RyYWNlLmgiCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiIDEK
MTQ0NzQ6ICMgMjMgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiCjE0NDc0OiBzdHJ1Y3Qg
bW9kdWxlOwoxNDQ3NDogc3RydWN0IHRyYWNlcG9pbnQ7CjE0NDc0OiBzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2s7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB0cmFjZV9ldmFsX21hcCB7CjE0NDc0OiAgY29u
c3QgY2hhciAqc3lzdGVtOwoxNDQ3NDogIGNvbnN0IGNoYXIgKmV2YWxfc3RyaW5nOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgZXZhbF92YWx1ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHNyY3Vfc3RydWN0IHRyYWNlcG9pbnRfc3JjdTsKMTQ0
NzQ6IAoxNDQ3NDogZXh0ZXJuIGludAoxNDQ3NDogdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3Rlcihz
dHJ1Y3QgdHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByb2JlLCB2b2lkICpkYXRhKTsKMTQ0NzQ6IGV4
dGVybiBpbnQKMTQ0NzQ6IHRyYWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXJfcHJpbyhzdHJ1Y3QgdHJh
Y2Vwb2ludCAqdHAsIHZvaWQgKnByb2JlLCB2b2lkICpkYXRhLAoxNDQ3NDogICAgICAgICAgIGlu
dCBwcmlvKTsKMTQ0NzQ6IGV4dGVybiBpbnQKMTQ0NzQ6IHRyYWNlcG9pbnRfcHJvYmVfdW5yZWdp
c3RlcihzdHJ1Y3QgdHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByb2JlLCB2b2lkICpkYXRhKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkCjE0NDc0OiBmb3JfZWFjaF9rZXJuZWxfdHJhY2Vwb2ludCh2b2lkICgq
ZmN0KShzdHJ1Y3QgdHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByaXYpLAoxNDQ3NDogICB2b2lkICpw
cml2KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdHBfbW9kdWxlIHsKMTQ0NzQ6ICBz
dHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CjE0NDc0OiAgc3RydWN0IG1vZHVsZSAqbW9kOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCB0cmFjZV9tb2R1bGVfaGFzX2JhZF90YWludChzdHJ1Y3Qg
bW9kdWxlICptb2QpOwoxNDQ3NDogZXh0ZXJuIGludCByZWdpc3Rlcl90cmFjZXBvaW50X21vZHVs
ZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKMTQ0NzQ6IGV4dGVybiBpbnQg
dW5yZWdpc3Rlcl90cmFjZXBvaW50X21vZHVsZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxv
Y2sgKm5iKTsKMTQ0NzQ6ICMgODAgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiCjE0NDc0
OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHRyYWNlcG9pbnRfc3luY2hyb25pemVfdW5yZWdpc3Rlcih2b2lkKQoxNDQ3NDogewox
NDQ3NDogIHN5bmNocm9uaXplX3NyY3UoJnRyYWNlcG9pbnRfc3JjdSk7CjE0NDc0OiAgc3luY2hy
b25pemVfcmN1KCk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gaW50IHN5c2NhbGxfcmVnZnVuYyh2b2lkKTsKMTQ0
NzQ6IGV4dGVybiB2b2lkIHN5c2NhbGxfdW5yZWdmdW5jKHZvaWQpOwoxNDQ3NDogIyAxMDEgIi4v
aW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgdHJhY2Vwb2ludCAqdHJh
Y2Vwb2ludF9wdHJfZGVyZWYodHJhY2Vwb2ludF9wdHJfdCAqcCkKMTQ0NzQ6IHsKMTQ0NzQ6ICBy
ZXR1cm4gb2Zmc2V0X3RvX3B0cihwKTsKMTQ0NzQ6IH0KMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vwb2ludF9h
bWRncHVfZGNfcnJlZzsgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCB0cmFjZV9hbWRncHVfZGNfcnJlZyh1bnNpZ25lZCBsb25nICpy
ZWFkX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSB7IGlmIChzdGF0aWNfa2V5
X2ZhbHNlKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KSkgZG8geyBzdHJ1Y3QgdHJh
Y2Vwb2ludF9mdW5jICppdF9mdW5jX3B0cjsgdm9pZCAqaXRfZnVuYzsgdm9pZCAqX19kYXRhOyBp
bnQgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9faWR4ID0gMDsgaWYgKCEoY3B1bWFza190
ZXN0X2NwdSgoKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBzY3JfcmV0X187IGRvIHsgY29uc3Qgdm9p
ZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJihjcHVfbnVtYmVyKSkgKyAwKSkoKHZvaWQgKikw
KTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZihjcHVfbnVt
YmVyKSkgeyBjYXNlIDE6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3Jl
dF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgMjog
cHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6
ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIg
IjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBj
YXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNt
IHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA0OiBwc2NyX3JldF9fID0gKHsg
dHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikp
IHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6
IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIg
KHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0
aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChj
cHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19y
ZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDg6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJl
cikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgi
bW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7
IGRlZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIoKTsgYnJlYWs7IH0gcHNjcl9yZXRf
XzsgfSkpLCAoKGNvbnN0IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSkpKSBy
ZXR1cm47ICh7IGludCBfX3JldF93YXJuX29uID0gISEoMCAmJiAocHJlZW1wdF9jb3VudCgpICYg
KCgoMVVMIDw8ICgxKSktMSkgPDwgKCgoMCArIDgpICsgOCkgKyA0KSkpKTsgaWYgKF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZv
bGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVn
X3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50
cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29y
ZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNl
Y3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Ft
ZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIpLCAiaSIgKDM0KSwgImkiICgoMSA8PCAwKXwoKDEg
PDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0g
d2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDQ0KSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3Jl
dF93YXJuX29uKSwgMCk7IH0pOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OyBpZiAoMCkgeyBfX2lkeCA9IHNyY3VfcmVhZF9sb2NrX25vdHJhY2UoJnRyYWNlcG9pbnRfc3Jj
dSk7IHJjdV9pcnFfZW50ZXJfaXJxc29uKCk7IH0gaXRfZnVuY19wdHIgPSAoeyB0eXBlb2YoKCZf
X3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcykgX19fX19fX19wMSA9ICh7IHVuaW9u
IHsgdHlwZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnKS0+ZnVuY3MpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNr
KCYoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVv
ZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSk7IGRvIHsgfSB3aGlsZSAo
MCk7IF9fdS5fX3ZhbDsgfSk7ICgodHlwZW9mKCooJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJl
ZyktPmZ1bmNzKSAqKShfX19fX19fX3AxKSk7IH0pOyBpZiAoaXRfZnVuY19wdHIpIHsgZG8geyBp
dF9mdW5jID0gKGl0X2Z1bmNfcHRyKS0+ZnVuYzsgX19kYXRhID0gKGl0X2Z1bmNfcHRyKS0+ZGF0
YTsgKCh2b2lkKCopKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9jb3VudCwgdWlu
dDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkpKGl0X2Z1bmMpKShfX2RhdGEsIHJlYWRfY291bnQs
IHJlZywgdmFsdWUpOyB9IHdoaWxlICgoKytpdF9mdW5jX3B0ciktPmZ1bmMpOyB9IGlmICgwKSB7
IHJjdV9pcnFfZXhpdF9pcnFzb24oKTsgc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKCZ0cmFjZXBv
aW50X3NyY3UsIF9faWR4KTsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OyB9IHdoaWxlICgwKTsgaWYgKDAgJiYgKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihjcHVf
bnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBl
b2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsg
fSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2NyX3Jl
dF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1
X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDog
YXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRp
bGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2Yo
Y3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNl
IDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZv
bGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJt
b3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIl
JSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1i
ZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9
KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9f
cmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxl
ICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6
ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3
ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVf
bnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsg
YnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIx
IiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA4
OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChz
aXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUi
ImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVy
KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIl
IiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7
IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAi
IDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBh
c20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Nh
bGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1Y3Qg
Y3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkgeyByY3VfcmVhZF9sb2NrX3NjaGVkX25v
dHJhY2UoKTsgKHsgdHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkg
Kl9fX19fX19fcDEgPSAodHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNz
KSkgKikoeyB1bmlvbiB7IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNz
KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigo
X190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190
cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVf
bm9jaGVjaygmKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSwgX191Ll9fYywg
c2l6ZW9mKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSk7IGRvIHsgfSB3aGls
ZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3Vf
cmVhZF91bmxvY2tfc2NoZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdw
dV9kY19ycmVnKHZvaWQgKCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICpyZWFk
X2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSkgeyByZXR1
cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVn
LCAodm9pZCAqKXByb2JlLCBkYXRhKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVnaXN0ZXJfdHJhY2VfcHJpb19hbWRncHVf
ZGNfcnJlZyh2b2lkICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9j
b3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSksIHZvaWQgKmRhdGEsIGludCBwcmlv
KSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2JlX3JlZ2lzdGVyX3ByaW8oJl9fdHJhY2Vwb2ludF9h
bWRncHVfZGNfcnJlZywgKHZvaWQgKilwcm9iZSwgZGF0YSwgcHJpbyk7IH0gc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVucmVnaXN0
ZXJfdHJhY2VfYW1kZ3B1X2RjX3JyZWcodm9pZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2ln
bmVkIGxvbmcgKnJlYWRfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpLCB2b2lk
ICpkYXRhKSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2JlX3VucmVnaXN0ZXIoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcnJlZywgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFj
ZV9jYWxsYmFja190eXBlX2FtZGdwdV9kY19ycmVnKHZvaWQgKCpjYikodm9pZCAqX19kYXRhLCB1
bnNpZ25lZCBsb25nICpyZWFkX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSkg
eyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgdHJhY2VfYW1kZ3B1X2RjX3JyZWdfZW5hYmxlZCh2b2lkKSB7IHJldHVybiBzdGF0
aWNfa2V5X2ZhbHNlKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KTsgfQoxNDQ3NDog
IyA0OSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9h
bWRncHVfZG1fdHJhY2UuaCIKMTQ0NzQ6ICA7CjE0NDc0OiAKMTQ0NzQ6IGV4dGVybiBzdHJ1Y3Qg
dHJhY2Vwb2ludCBfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWc7IHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdHJhY2VfYW1kZ3B1
X2RjX3dyZWcodW5zaWduZWQgbG9uZyAqd3JpdGVfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMy
X3QgdmFsdWUpIHsgaWYgKHN0YXRpY19rZXlfZmFsc2UoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNf
d3JlZy5rZXkpKSBkbyB7IHN0cnVjdCB0cmFjZXBvaW50X2Z1bmMgKml0X2Z1bmNfcHRyOyB2b2lk
ICppdF9mdW5jOyB2b2lkICpfX2RhdGE7IGludCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19pZHggPSAwOyBpZiAoIShjcHVtYXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1X251bWJlcikg
cHNjcl9yZXRfXzsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGNw
dV9udW1iZXIpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUg
KDApOyBzd2l0Y2goc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9yZXRfXyA9ICh7
IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAy
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xh
dGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRf
XykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92
IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAo
Y3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pOyBicmVhazsgY2FzZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1i
ZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFr
OyBjYXNlIDQ6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBz
d2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIg
IjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBj
YXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgODogcHNjcl9y
ZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNw
dV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6
IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIg
KHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0
aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUo
KTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFt
ZXRlcigpOyBicmVhazsgfSBwc2NyX3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0IGNwdW1hc2sg
KikmX19jcHVfb25saW5lX21hc2spKSkpIHJldHVybjsgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
ISgwICYmIChwcmVlbXB0X2NvdW50KCkgJiAoKCgxVUwgPDwgKDEpKS0xKSA8PCAoKCgwICsgOCkg
KyA4KSArIDQpKSkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkp
IGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBi
IiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcg
IiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIg
IiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMg
YnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4i
ICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIiksICJp
IiAoNTEpLCAiaSIgKCgxIDw8IDApfCgoMSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXpl
b2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMw
OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIg
LSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDUpKTsgfSk7IH0gd2hpbGUgKDAp
OyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7IF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IGlmICgwKSB7IF9faWR4ID0gc3JjdV9yZWFkX2xv
Y2tfbm90cmFjZSgmdHJhY2Vwb2ludF9zcmN1KTsgcmN1X2lycV9lbnRlcl9pcnFzb24oKTsgfSBp
dF9mdW5jX3B0ciA9ICh7IHR5cGVvZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZyktPmZ1
bmNzKSBfX19fX19fX3AxID0gKHsgdW5pb24geyB0eXBlb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3dyZWcpLT5mdW5jcykgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVh
ZF9vbmNlX3NpemUoJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZyktPmZ1bmNzKSwgX191
Ll9fYywgc2l6ZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnKS0+ZnVuY3MpKTsgZWxz
ZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3Jl
ZyktPmZ1bmNzKSwgX191Ll9fYywgc2l6ZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVn
KS0+ZnVuY3MpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgKCh0eXBlb2YoKigm
X190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnKS0+ZnVuY3MpICopKF9fX19fX19fcDEpKTsgfSk7
IGlmIChpdF9mdW5jX3B0cikgeyBkbyB7IGl0X2Z1bmMgPSAoaXRfZnVuY19wdHIpLT5mdW5jOyBf
X2RhdGEgPSAoaXRfZnVuY19wdHIpLT5kYXRhOyAoKHZvaWQoKikodm9pZCAqX19kYXRhLCB1bnNp
Z25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkpKGl0
X2Z1bmMpKShfX2RhdGEsIHdyaXRlX2NvdW50LCByZWcsIHZhbHVlKTsgfSB3aGlsZSAoKCsraXRf
ZnVuY19wdHIpLT5mdW5jKTsgfSBpZiAoMCkgeyByY3VfaXJxX2V4aXRfaXJxc29uKCk7IHNyY3Vf
cmVhZF91bmxvY2tfbm90cmFjZSgmdHJhY2Vwb2ludF9zcmN1LCBfX2lkeCk7IH0gX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgfSB3aGlsZSAoMCk7IGlmICgwICYmIChjcHVt
YXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1X251bWJlcikgcHNjcl9yZXRfXzsgZG8geyBjb25z
dCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGNwdV9udW1iZXIpKSArIDApKSgodm9p
ZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKGNw
dV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBw
Zm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0
aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChj
cHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2Fz
ZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNo
IChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJl
YWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDQ6IHBzY3JfcmV0X18g
PSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVt
YmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNh
c2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDog
Ij1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20g
dm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0g
cGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgODogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVf
bnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTog
YXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRp
bGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpOyBicmVhazsgfSBwc2Ny
X3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0IGNwdW1hc2sgKikmX19jcHVfb25saW5lX21hc2sp
KSkpIHsgcmN1X3JlYWRfbG9ja19zY2hlZF9ub3RyYWNlKCk7ICh7IHR5cGVvZigqKF9fdHJhY2Vw
b2ludF9hbWRncHVfZGNfd3JlZy5mdW5jcykpICpfX19fX19fX3AxID0gKHR5cGVvZigqKF9fdHJh
Y2Vwb2ludF9hbWRncHVfZGNfd3JlZy5mdW5jcykpICopKHsgdW5pb24geyB0eXBlb2YoKF9fdHJh
Y2Vwb2ludF9hbWRncHVfZGNfd3JlZy5mdW5jcykpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7
IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZy5m
dW5jcykpLCBfX3UuX19jLCBzaXplb2YoKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZy5mdW5j
cykpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoX190cmFjZXBvaW50X2FtZGdw
dV9kY193cmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdwdV9k
Y193cmVnLmZ1bmNzKSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBkbyB7IH0g
d2hpbGUgKDApOyA7ICgodHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNz
KSkgKikoX19fX19fX19wMSkpOyB9KTsgcmN1X3JlYWRfdW5sb2NrX3NjaGVkX25vdHJhY2UoKTsg
fSB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCByZWdpc3Rlcl90cmFjZV9hbWRncHVfZGNfd3JlZyh2b2lkICgqcHJvYmUpKHZvaWQg
Kl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqd3JpdGVfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMy
X3QgdmFsdWUpLCB2b2lkICpkYXRhKSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2JlX3JlZ2lzdGVy
KCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcsICh2b2lkICopcHJvYmUsIGRhdGEpOyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCByZWdpc3Rlcl90cmFjZV9wcmlvX2FtZGdwdV9kY193cmVnKHZvaWQgKCpwcm9iZSkodm9pZCAq
X19kYXRhLCB1bnNpZ25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJf
dCB2YWx1ZSksIHZvaWQgKmRhdGEsIGludCBwcmlvKSB7IHJldHVybiB0cmFjZXBvaW50X3Byb2Jl
X3JlZ2lzdGVyX3ByaW8oJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZywgKHZvaWQgKilwcm9i
ZSwgZGF0YSwgcHJpbyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVucmVnaXN0ZXJfdHJhY2VfYW1kZ3B1X2RjX3dyZWcodm9p
ZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKndyaXRlX2NvdW50LCB1aW50
MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2lu
dF9wcm9iZV91bnJlZ2lzdGVyKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcsICh2b2lkICop
cHJvYmUsIGRhdGEpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY2hlY2tfdHJhY2VfY2FsbGJhY2tfdHlwZV9hbWRncHVfZGNf
d3JlZyh2b2lkICgqY2IpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqd3JpdGVfY291bnQs
IHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpKSB7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0cmFjZV9hbWRncHVfZGNf
d3JlZ19lbmFibGVkKHZvaWQpIHsgcmV0dXJuIHN0YXRpY19rZXlfZmFsc2UoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfd3JlZy5rZXkpOyB9CjE0NDc0OiAjIDY2ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIgoxNDQ3NDog
IDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBleHRlcm4gc3RydWN0IHRyYWNlcG9pbnQgX190cmFj
ZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZTsgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0cmFjZV9hbWRncHVfZGNfcGVyZm9y
bWFuY2UodW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50
LCB1bnNpZ25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNv
bnN0IGNoYXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSB7IGlmIChzdGF0aWNfa2V5X2ZhbHNl
KCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmtleSkpIGRvIHsgc3RydWN0IHRy
YWNlcG9pbnRfZnVuYyAqaXRfZnVuY19wdHI7IHZvaWQgKml0X2Z1bmM7IHZvaWQgKl9fZGF0YTsg
aW50IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2lkeCA9IDA7IGlmICghKGNwdW1hc2tf
dGVzdF9jcHUoKCh7IHR5cGVvZihjcHVfbnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZv
aWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICop
MCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251
bWJlcikpIHsgY2FzZSAxOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19y
ZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUg
KCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDog
Im0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncg
IiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9u
dW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIi
OiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBi
cmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEi
IiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6
IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNp
emVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
Y2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIg
OiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFz
bSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBm
b19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNw
dV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7
IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAy
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xh
dGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRf
XykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92
IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAo
Y3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pOyBicmVhazsgY2FzZSA4OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1i
ZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFr
OyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0
X187IH0pKSwgKChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkg
cmV0dXJuOyAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKDAgJiYgKHByZWVtcHRfY291bnQoKSAm
ICgoKDFVTCA8PCAoMSkpLTEpIDw8ICgoKDAgKyA4KSArIDgpICsgNCkpKSk7IGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2
b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1
Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19l
bnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0Lndv
cmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3Bz
ZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9h
bWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiKSwgImkiICg2OSksICJpIiAoKDEgPDwgMCl8KCgx
IDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9
IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlz
Y2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0
IiA6IDogImkiICg0NikpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApOyB9KTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsgaWYgKDApIHsgX19pZHggPSBzcmN1X3JlYWRfbG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3Ny
Y3UpOyByY3VfaXJxX2VudGVyX2lycXNvbigpOyB9IGl0X2Z1bmNfcHRyID0gKHsgdHlwZW9mKCgm
X190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZSktPmZ1bmNzKSBfX19fX19fX3AxID0g
KHsgdW5pb24geyB0eXBlb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+
ZnVuY3MpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXpl
KCYoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpLCBfX3UuX19j
LCBzaXplb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpKTsg
ZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNf
cGVyZm9ybWFuY2UpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2ludF9hbWRn
cHVfZGNfcGVyZm9ybWFuY2UpLT5mdW5jcykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7
IH0pOyAoKHR5cGVvZigqKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVu
Y3MpICopKF9fX19fX19fcDEpKTsgfSk7IGlmIChpdF9mdW5jX3B0cikgeyBkbyB7IGl0X2Z1bmMg
PSAoaXRfZnVuY19wdHIpLT5mdW5jOyBfX2RhdGEgPSAoaXRfZnVuY19wdHIpLT5kYXRhOyAoKHZv
aWQoKikodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVuc2lnbmVkIGxv
bmcgd3JpdGVfY291bnQsIHVuc2lnbmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWduZWQgbG9uZyAq
bGFzdF93cml0ZSwgY29uc3QgY2hhciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUpKShpdF9mdW5j
KSkoX19kYXRhLCByZWFkX2NvdW50LCB3cml0ZV9jb3VudCwgbGFzdF9yZWFkLCBsYXN0X3dyaXRl
LCBmdW5jLCBsaW5lKTsgfSB3aGlsZSAoKCsraXRfZnVuY19wdHIpLT5mdW5jKTsgfSBpZiAoMCkg
eyByY3VfaXJxX2V4aXRfaXJxc29uKCk7IHNyY3VfcmVhZF91bmxvY2tfbm90cmFjZSgmdHJhY2Vw
b2ludF9zcmN1LCBfX2lkeCk7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsgfSB3aGlsZSAoMCk7IGlmICgwICYmIChjcHVtYXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1
X251bWJlcikgcHNjcl9yZXRfXzsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlw
ZW9mKCgmKGNwdV9udW1iZXIpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7
IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9y
ZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNw
dV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6
IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIg
KHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0
aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUo
KTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9m
KGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2Fz
ZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsg
fSk7IGJyZWFrOyBjYXNlIDQ6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAi
dyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2Ug
ODogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAo
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUl
IiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJl
cikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODog
YXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVy
Y3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9j
YWxsX3BhcmFtZXRlcigpOyBicmVhazsgfSBwc2NyX3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0
IGNwdW1hc2sgKikmX19jcHVfb25saW5lX21hc2spKSkpIHsgcmN1X3JlYWRfbG9ja19zY2hlZF9u
b3RyYWNlKCk7ICh7IHR5cGVvZigqKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2Uu
ZnVuY3MpKSAqX19fX19fX19wMSA9ICh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3Bl
cmZvcm1hbmNlLmZ1bmNzKSkgKikoeyB1bmlvbiB7IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdw
dV9kY19wZXJmb3JtYW5jZS5mdW5jcykpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgx
KSBfX3JlYWRfb25jZV9zaXplKCYoKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2Uu
ZnVuY3MpKSwgX191Ll9fYywgc2l6ZW9mKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1h
bmNlLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFj
ZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5mdW5jcykpKTsgZG8geyB9IHdoaWxlICgwKTsg
X191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKF9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcGVyZm9ybWFuY2UuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3Vf
cmVhZF91bmxvY2tfc2NoZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdw
dV9kY19wZXJmb3JtYW5jZSh2b2lkICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9u
ZyByZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICps
YXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVu
c2lnbmVkIGludCBsaW5lKSwgdm9pZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9y
ZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9i
ZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX3ByaW9fYW1kZ3B1X2RjX3BlcmZvcm1hbmNl
KHZvaWQgKCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVu
c2lnbmVkIGxvbmcgd3JpdGVfY291bnQsIHVuc2lnbmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWdu
ZWQgbG9uZyAqbGFzdF93cml0ZSwgY29uc3QgY2hhciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUp
LCB2b2lkICpkYXRhLCBpbnQgcHJpbykgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3Rl
cl9wcmlvKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLCAodm9pZCAqKXByb2Jl
LCBkYXRhLCBwcmlvKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgdW5yZWdpc3Rlcl90cmFjZV9hbWRncHVfZGNfcGVyZm9ybWFu
Y2Uodm9pZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgcmVhZF9jb3VudCwg
dW5zaWduZWQgbG9uZyB3cml0ZV9jb3VudCwgdW5zaWduZWQgbG9uZyAqbGFzdF9yZWFkLCB1bnNp
Z25lZCBsb25nICpsYXN0X3dyaXRlLCBjb25zdCBjaGFyICpmdW5jLCB1bnNpZ25lZCBpbnQgbGlu
ZSksIHZvaWQgKmRhdGEpIHsgcmV0dXJuIHRyYWNlcG9pbnRfcHJvYmVfdW5yZWdpc3RlcigmX190
cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0g
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBjaGVja190cmFjZV9jYWxsYmFja190eXBlX2FtZGdwdV9kY19wZXJmb3JtYW5jZSh2b2lk
ICgqY2IpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25lZCBs
b25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcg
Kmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSkgeyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgdHJhY2VfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlX2VuYWJsZWQodm9pZCkgeyByZXR1cm4gc3Rh
dGljX2tleV9mYWxzZSgmX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5rZXkpOyB9
CjE0NDc0OiAjIDk4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1k
Z3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIgoxNDQ3NDogIDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJh
Y2UuaCIgMQoxNDQ3NDogIyAxMDUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiIDIKMTQ0NzQ6ICMgMzUgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIiAyCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZG1fc2VydmljZXNfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgiCjE0NDc0
OiBzdHJ1Y3QgcHBfc211X2Z1bmNzOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfY2xvY2tf
cmFuZ2UgewoxNDQ3NDogIGludCBtaW5fa2h6OwoxNDQ3NDogIGludCBtYXhfa2h6OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgewoxNDQ3NDogIERNX1BQ
X0NMT0NLU19TVEFURV9JTlZBTElELAoxNDQ3NDogIERNX1BQX0NMT0NLU19TVEFURV9VTFRSQV9M
T1csCjE0NDc0OiAgRE1fUFBfQ0xPQ0tTX1NUQVRFX0xPVywKMTQ0NzQ6ICBETV9QUF9DTE9DS1Nf
U1RBVEVfTk9NSU5BTCwKMTQ0NzQ6ICBETV9QUF9DTE9DS1NfU1RBVEVfUEVSRk9STUFOQ0UsCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfSU5WQUxJ
RCA9IERNX1BQX0NMT0NLU19TVEFURV9JTlZBTElELAoxNDQ3NDogIERNX1BQX0NMT0NLU19EUE1f
U1RBVEVfTEVWRUxfMCwKMTQ0NzQ6ICBETV9QUF9DTE9DS1NfRFBNX1NUQVRFX0xFVkVMXzEsCjE0
NDc0OiAgRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF8yLAoxNDQ3NDogCjE0NDc0OiAgRE1f
UFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF8zLAoxNDQ3NDogIERNX1BQX0NMT0NLU19EUE1fU1RB
VEVfTEVWRUxfNCwKMTQ0NzQ6ICBETV9QUF9DTE9DS1NfRFBNX1NUQVRFX0xFVkVMXzUsCjE0NDc0
OiAgRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF82LAoxNDQ3NDogIERNX1BQX0NMT0NLU19E
UE1fU1RBVEVfTEVWRUxfNywKMTQ0NzQ6IAoxNDQ3NDogIERNX1BQX0NMT0NLU19NQVhfU1RBVEVT
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfZ3B1X2Nsb2NrX3JhbmdlIHsK
MTQ0NzQ6ICBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSBjbG9ja19zdGF0ZTsKMTQ0NzQ6ICBzdHJ1
Y3QgZG1fcHBfY2xvY2tfcmFuZ2Ugc2NsazsKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFu
Z2UgbWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2UgZWNsazsKMTQ0NzQ6ICBz
dHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2UgZGNsazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gZG1fcHBfY2xvY2tfdHlwZSB7CjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9ESVNQTEFZX0NM
SyA9IDEsCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9FTkdJTkVfQ0xLLAoxNDQ3NDogIERNX1BQ
X0NMT0NLX1RZUEVfTUVNT1JZX0NMSywKMTQ0NzQ6ICBETV9QUF9DTE9DS19UWVBFX0RDRkNMSywK
MTQ0NzQ6ICBETV9QUF9DTE9DS19UWVBFX0RDRUZDTEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQ
RV9TT0NDTEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9QSVhFTENMSywKMTQ0NzQ6ICBETV9Q
UF9DTE9DS19UWVBFX0RJU1BMQVlQSFlDTEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9EUFBD
TEssCjE0NDc0OiAgRE1fUFBfQ0xPQ0tfVFlQRV9GQ0xLLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgOTcg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190
eXBlcy5oIgoxNDQ3NDogc3RydWN0IGRtX3BwX2Nsb2NrX2xldmVscyB7CjE0NDc0OiAgdWludDMy
X3QgbnVtX2xldmVsczsKMTQ0NzQ6ICB1aW50MzJfdCBjbG9ja3NfaW5fa2h6WzE2XTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkbV9wcF9jbG9ja193aXRoX2xhdGVuY3kgewoxNDQ3
NDogIHVpbnQzMl90IGNsb2Nrc19pbl9raHo7CjE0NDc0OiAgdWludDMyX3QgbGF0ZW5jeV9pbl91
czsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0
aF9sYXRlbmN5IHsKMTQ0NzQ6ICB1aW50MzJfdCBudW1fbGV2ZWxzOwoxNDQ3NDogIHN0cnVjdCBk
bV9wcF9jbG9ja193aXRoX2xhdGVuY3kgZGF0YVsxNl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF92b2x0YWdlIHsKMTQ0NzQ6ICB1aW50MzJfdCBjbG9j
a3NfaW5fa2h6OwoxNDQ3NDogIHVpbnQzMl90IHZvbHRhZ2VfaW5fbXY7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzX3dpdGhfdm9sdGFnZSB7CjE0NDc0
OiAgdWludDMyX3QgbnVtX2xldmVsczsKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF92
b2x0YWdlIGRhdGFbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3Np
bmdsZV9kaXNwX2NvbmZpZyB7CjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CjE0NDc0
OiAgdWludDhfdCB0cmFuc21pdHRlcjsKMTQ0NzQ6ICB1aW50OF90IGRkaV9jaGFubmVsX21hcHBp
bmc7CjE0NDc0OiAgdWludDhfdCBwaXBlX2lkeDsKMTQ0NzQ6ICB1aW50MzJfdCBzcmNfaGVpZ2h0
OwoxNDQ3NDogIHVpbnQzMl90IHNyY193aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCB2X3JlZnJlc2g7
CjE0NDc0OiAgdWludDMyX3Qgc3ltX2Nsb2NrOwoxNDQ3NDogIHN0cnVjdCBkY19saW5rX3NldHRp
bmdzIGxpbmtfc2V0dGluZ3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogZW51bSBkbV9wcF93bV9zZXRfaWQgewoxNDQ3NDogIFdNX1NFVF9BID0gMCwKMTQ0NzQ6ICBX
TV9TRVRfQiwKMTQ0NzQ6ICBXTV9TRVRfQywKMTQ0NzQ6ICBXTV9TRVRfRCwKMTQ0NzQ6ICBXTV9T
RVRfSU5WQUxJRCA9IDB4ZmZmZiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkbV9w
cF9jbG9ja19yYW5nZV9mb3Jfd21fc2V0IHsKMTQ0NzQ6ICBlbnVtIGRtX3BwX3dtX3NldF9pZCB3
bV9zZXRfaWQ7CjE0NDc0OiAgdWludDMyX3Qgd21fbWluX2VuZ19jbGtfaW5fa2h6OwoxNDQ3NDog
IHVpbnQzMl90IHdtX21heF9lbmdfY2xrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCB3bV9taW5f
bWVtX2Nsa19pbl9raHo7CjE0NDc0OiAgdWludDMyX3Qgd21fbWF4X21lbV9jbGtfaW5fa2h6Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3dtX3NldHNfd2l0aF9jbG9ja19y
YW5nZXMgewoxNDQ3NDogIHVpbnQzMl90IG51bV93bV9zZXRzOwoxNDQ3NDogIHN0cnVjdCBkbV9w
cF9jbG9ja19yYW5nZV9mb3Jfd21fc2V0IHdtX2Nsa19yYW5nZXNbNF07CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2VfZm9yX2RtaWZfd21fc2V0X3NvYzE1
IHsKMTQ0NzQ6ICBlbnVtIGRtX3BwX3dtX3NldF9pZCB3bV9zZXRfaWQ7CjE0NDc0OiAgdWludDMy
X3Qgd21fbWluX2RjZmNsa19jbGtfaW5fa2h6OwoxNDQ3NDogIHVpbnQzMl90IHdtX21heF9kY2Zj
bGtfY2xrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCB3bV9taW5fbWVtX2Nsa19pbl9raHo7CjE0
NDc0OiAgdWludDMyX3Qgd21fbWF4X21lbV9jbGtfaW5fa2h6OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9tY2lmX3dtX3NldF9zb2MxNSB7CjE0
NDc0OiAgZW51bSBkbV9wcF93bV9zZXRfaWQgd21fc2V0X2lkOwoxNDQ3NDogIHVpbnQzMl90IHdt
X21pbl9zb2NjbGtfY2xrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCB3bV9tYXhfc29jY2xrX2Ns
a19pbl9raHo7CjE0NDc0OiAgdWludDMyX3Qgd21fbWluX21lbV9jbGtfaW5fa2h6OwoxNDQ3NDog
IHVpbnQzMl90IHdtX21heF9tZW1fY2xrX2luX2toejsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkbV9wcF93bV9zZXRzX3dpdGhfY2xvY2tfcmFuZ2VzX3NvYzE1IHsKMTQ0NzQ6ICB1
aW50MzJfdCBudW1fd21fZG1pZl9zZXRzOwoxNDQ3NDogIHVpbnQzMl90IG51bV93bV9tY2lmX3Nl
dHM7CjE0NDc0OiAgc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9kbWlmX3dtX3NldF9zb2Mx
NQoxNDQ3NDogICB3bV9kbWlmX2Nsb2Nrc19yYW5nZXNbNF07CjE0NDc0OiAgc3RydWN0IGRtX3Bw
X2Nsb2NrX3JhbmdlX2Zvcl9tY2lmX3dtX3NldF9zb2MxNQoxNDQ3NDogICB3bV9tY2lmX2Nsb2Nr
c19yYW5nZXNbNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRtX3BwX2Rpc3BsYXlfY29uZmlndXJhdGlvbiB7CjE0NDc0OiAgYm9vbCBuYl9wc3RhdGVf
c3dpdGNoX2Rpc2FibGU7CjE0NDc0OiAgYm9vbCBjcHVfY2M2X2Rpc2FibGU7CjE0NDc0OiAgYm9v
bCBjcHVfcHN0YXRlX2Rpc2FibGU7CjE0NDc0OiAgdWludDMyX3QgY3B1X3BzdGF0ZV9zZXBhcmF0
aW9uX3RpbWU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fbWVtb3J5X2Nsb2NrX2toejsK
MTQ0NzQ6ICB1aW50MzJfdCBtaW5fZW5naW5lX2Nsb2NrX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBt
aW5fZW5naW5lX2Nsb2NrX2RlZXBfc2xlZXBfa2h6OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
YXZhaWxfbWNsa19zd2l0Y2hfdGltZV91czsKMTQ0NzQ6ICB1aW50MzJfdCBhdmFpbF9tY2xrX3N3
aXRjaF90aW1lX2luX2Rpc3BfYWN0aXZlX3VzOwoxNDQ3NDogIHVpbnQzMl90IG1pbl9kY2ZjbG9j
a19raHo7CjE0NDc0OiAgdWludDMyX3QgbWluX2RjZmNfZGVlcF9zbGVlcF9jbG9ja19raHo7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkaXNwX2Nsa19raHo7CjE0NDc0OiAKMTQ0NzQ6ICBib29s
IGFsbF9kaXNwbGF5c19pbl9zeW5jOwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBkaXNwbGF5X2Nv
dW50OwoxNDQ3NDogIHN0cnVjdCBkbV9wcF9zaW5nbGVfZGlzcF9jb25maWcgZGlzcF9jb25maWdz
WzZdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3QgY3J0Y19pbmRleDsK
MTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGxpbmVfdGltZV9pbl91czsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkbV9ibF9kYXRhX3BvaW50IHsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50
OF90IGx1bWluYW5jZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBz
aWduYWxfbGV2ZWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGRtX2FjcGlfYXRpZl9iYWNrbGlnaHRfY2FwcyB7CjE0NDc0OiAgdWludDE2X3Qgc2l6ZTsK
MTQ0NzQ6ICB1aW50MTZfdCBmbGFnczsKMTQ0NzQ6ICB1aW50OF90IGVycm9yX2NvZGU7CjE0NDc0
OiAgdWludDhfdCBhY19sZXZlbF9wZXJjZW50YWdlOwoxNDQ3NDogIHVpbnQ4X3QgZGNfbGV2ZWxf
cGVyY2VudGFnZTsKMTQ0NzQ6ICB1aW50OF90IG1pbl9pbnB1dF9zaWduYWw7CjE0NDc0OiAgdWlu
dDhfdCBtYXhfaW5wdXRfc2lnbmFsOwoxNDQ3NDogIHVpbnQ4X3QgbnVtX2RhdGFfcG9pbnRzOwox
NDQ3NDogIHN0cnVjdCBkbV9ibF9kYXRhX3BvaW50IGRhdGFfcG9pbnRzWzk5XTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZG1fYWNwaV9kaXNwbGF5X3R5cGUgewoxNDQ3NDogIEFjcGlE
aXNwbGF5VHlwZV9MQ0QxID0gMCwKMTQ0NzQ6ICBBY3BpRGlzcGxheVR5cGVfQ1JUMSA9IDEsCjE0
NDc0OiAgQWNwaURpc3BsYXlUeXBlX0RGUDEgPSAzLAoxNDQ3NDogIEFjcGlEaXNwbGF5VHlwZV9D
UlQyID0gNCwKMTQ0NzQ6ICBBY3BpRGlzcGxheVR5cGVfTENEMiA9IDUsCjE0NDc0OiAgQWNwaURp
c3BsYXlUeXBlX0RGUDIgPSA3LAoxNDQ3NDogIEFjcGlEaXNwbGF5VHlwZV9ERlAzID0gOSwKMTQ0
NzQ6ICBBY3BpRGlzcGxheVR5cGVfREZQNCA9IDEwLAoxNDQ3NDogIEFjcGlEaXNwbGF5VHlwZV9E
RlA1ID0gMTEsCjE0NDc0OiAgQWNwaURpc3BsYXlUeXBlX0RGUDYgPSAxMgoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3Bvd2VyX2xldmVsX2NoYW5nZV9yZXF1ZXN0IHsKMTQ0
NzQ6ICBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSBwb3dlcl9sZXZlbDsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkbV9wcF9jbG9ja19mb3Jfdm9sdGFnZV9yZXEgewoxNDQ3NDogIGVu
dW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtfdHlwZTsKMTQ0NzQ6ICB1aW50MzJfdCBjbG9ja3NfaW5f
a2h6OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtX3BwX3N0YXRpY19jbG9ja19p
bmZvIHsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfc2Nsa19raHo7CjE0NDc0OiAgdWludDMyX3QgbWF4
X21jbGtfa2h6OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0
ZSBtYXhfY2xvY2tzX3N0YXRlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGR0bl9t
aW5fY2xrX2luZm8gewoxNDQ3NDogIHVpbnQzMl90IGRpc3BfY2xrX2toejsKMTQ0NzQ6ICB1aW50
MzJfdCBtaW5fZW5naW5lX2Nsb2NrX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fbWVtb3J5X2Ns
b2NrX2toejsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfaW50ZXJmYWNlLmgi
IDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2xvZ2dlcl9pbnRlcmZhY2UuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbG9nZ2VyX3R5cGVzLmgiIDEKMTQ0NzQ6ICMg
MzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xvZ2dl
cl9pbnRlcmZhY2UuaCIgMgoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY29udGV4dDsKMTQ0NzQ6
IHN0cnVjdCBkY19saW5rOwoxNDQ3NDogc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlOwoxNDQ3NDog
c3RydWN0IHJlc291cmNlX2NvbnRleHQ7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgZGNfY29ubl9sb2dfaGV4X2xpbnV4KGNvbnN0IHVpbnQ4X3QgKmhleF9kYXRhLCBpbnQgaGV4
X2RhdGFfY291bnQpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHByZV9zdXJmYWNlX3RyYWNlKAoxNDQ3
NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUg
KmNvbnN0ICpwbGFuZV9zdGF0ZXMsCjE0NDc0OiAgIGludCBzdXJmYWNlX2NvdW50KTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCB1cGRhdGVfc3VyZmFjZV90cmFjZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlICp1cGRhdGVzLAoxNDQ3
NDogICBpbnQgc3VyZmFjZV9jb3VudCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcG9zdF9zdXJmYWNl
X3RyYWNlKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGNvbnRleHRfdGltaW5n
X3RyYWNlKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3VyY2Vf
Y29udGV4dCAqcmVzX2N0eCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgY29udGV4dF9jbG9ja190cmFj
ZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpjb250
ZXh0KTsKMTQ0NzQ6ICMgMzkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9zZXJ2aWNlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkbXViX3NydjsKMTQ0NzQ6IHN0cnVjdCBkY19kbXViX3NydjsKMTQ0NzQ6IAox
NDQ3NDogaXJxX2hhbmRsZXJfaWR4IGRtX3JlZ2lzdGVyX2ludGVycnVwdCgKMTQ0NzQ6ICBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIHN0cnVjdCBkY19pbnRlcnJ1cHRfcGFyYW1zICpp
bnRfcGFyYW1zLAoxNDQ3NDogIGludGVycnVwdF9oYW5kbGVyIGloLAoxNDQ3NDogIHZvaWQgKmhh
bmRsZXJfYXJncyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGRtX3JlYWRfcmVnX2Z1bmMoCjE0NDc0OiAgY29u
c3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3
NDogIGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSk7CjE0NDc0OiAjIDczICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0NzQ6IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZG1f
d3JpdGVfcmVnX2Z1bmMoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0
NzQ6ICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3NDogIHVpbnQzMl90IHZhbHVlLAoxNDQ3NDogIGNv
bnN0IGNoYXIgKmZ1bmNfbmFtZSkKMTQ0NzQ6IHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAoKChzdHJ1Y3QgY2dzX2RldmljZSAqKWN0eC0+
Y2dzX2RldmljZSktPm9wcy0+d3JpdGVfcmVnaXN0ZXIoY3R4LT5jZ3NfZGV2aWNlLCBhZGRyZXNz
LHZhbHVlKSk7CjE0NDc0OiAgdHJhY2VfYW1kZ3B1X2RjX3dyZWcoJmN0eC0+cGVyZl90cmFjZS0+
d3JpdGVfY291bnQsIGFkZHJlc3MsIHZhbHVlKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdWlu
dDMyX3QgZG1fcmVhZF9pbmRleF9yZWcoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQg
KmN0eCwKMTQ0NzQ6ICBlbnVtIGNnc19pbmRfcmVnIGFkZHJfc3BhY2UsCjE0NDc0OiAgdWludDMy
X3QgaW5kZXgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuICgoKHN0cnVjdCBjZ3NfZGV2aWNlICop
Y3R4LT5jZ3NfZGV2aWNlKS0+b3BzLT5yZWFkX2luZF9yZWdpc3RlcihjdHgtPmNnc19kZXZpY2Us
IGFkZHJfc3BhY2UsaW5kZXgpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkbV93cml0
ZV9pbmRleF9yZWcoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6
ICBlbnVtIGNnc19pbmRfcmVnIGFkZHJfc3BhY2UsCjE0NDc0OiAgdWludDMyX3QgaW5kZXgsCjE0
NDc0OiAgdWludDMyX3QgdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgKCgoc3RydWN0IGNnc19kZXZp
Y2UgKiljdHgtPmNnc19kZXZpY2UpLT5vcHMtPndyaXRlX2luZF9yZWdpc3RlcihjdHgtPmNnc19k
ZXZpY2UsIGFkZHJfc3BhY2UsaW5kZXgsdmFsdWUpKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dWludDMyX3QgZ2V0X3JlZ19maWVsZF92YWx1ZV9leCgKMTQ0NzQ6ICB1aW50MzJfdCByZWdfdmFs
dWUsCjE0NDc0OiAgdWludDMyX3QgbWFzaywKMTQ0NzQ6ICB1aW50OF90IHNoaWZ0KQoxNDQ3NDog
ewoxNDQ3NDogIHJldHVybiAobWFzayAmIHJlZ192YWx1ZSkgPj4gc2hpZnQ7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHVpbnQzMl90IHNldF9yZWdfZmllbGRfdmFsdWVfZXgoCjE0NDc0OiAgdWludDMyX3QgcmVn
X3ZhbHVlLAoxNDQ3NDogIHVpbnQzMl90IHZhbHVlLAoxNDQ3NDogIHVpbnQzMl90IG1hc2ssCjE0
NDc0OiAgdWludDhfdCBzaGlmdCkKMTQ0NzQ6IHsKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9v
biA9ICEhKCEobWFzayAhPSAwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4
MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQi
ICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAi
LmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVj
MSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6
ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIiksICJpIiAo
MTI2KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVn
X2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNo
c2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBv
cHNlY3Rpb25cblx0IiA6IDogImkiICg0NykpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9l
eHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKMTQ0NzQ6ICByZXR1cm4gKHJlZ192YWx1
ZSAmIH5tYXNrKSB8IChtYXNrICYgKHZhbHVlIDw8IHNoaWZ0KSk7CjE0NDc0OiB9CjE0NDc0OiAj
IDEzNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZp
Y2VzLmgiCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19zZXRfZXgoY29uc3Qgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkciwgdWludDMyX3QgcmVnX3ZhbCwg
aW50IG4sCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3Qg
ZmllbGRfdmFsdWUxLCAuLi4pOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ191
cGRhdGVfZXgoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3Qg
YWRkciwgaW50IG4sCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWlu
dDMyX3QgZmllbGRfdmFsdWUxLCAuLi4pOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfZG11Yl9z
cnYgKmRjX2RtdWJfc3J2X2NyZWF0ZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZG11Yl9zcnYgKmRt
dWIpOwoxNDQ3NDogdm9pZCBkY19kbXViX3Nydl9kZXN0cm95KHN0cnVjdCBkY19kbXViX3NydiAq
KmRtdWJfc3J2KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCByZWdfc2VxdWVuY2Vfc3RhcnRfZ2F0aGVy
KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgpOwoxNDQ3NDogdm9pZCByZWdfc2VxdWVuY2Vf
c3RhcnRfZXhlY3V0ZShjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKMTQ0NzQ6IHZvaWQg
cmVnX3NlcXVlbmNlX3dhaXRfZG9uZShjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKMTQ0
NzQ6ICMgMTU5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1f
c2VydmljZXMuaCIKMTQ0NzQ6IHZvaWQgZ2VuZXJpY19yZWdfd2FpdChjb25zdCBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAoxNDQ3NDogIHVpbnQzMl90IGFkZHIsIHVpbnQzMl90IG1hc2ssIHVpbnQz
Ml90IHNoaWZ0LCB1aW50MzJfdCBjb25kaXRpb25fdmFsdWUsCjE0NDc0OiAgdW5zaWduZWQgaW50
IGRlbGF5X2JldHdlZW5fcG9sbF91cywgdW5zaWduZWQgaW50IHRpbWVfb3V0X251bV90cmllcywK
MTQ0NzQ6ICBjb25zdCBjaGFyICpmdW5jX25hbWUsIGludCBsaW5lKTsKMTQ0NzQ6IAoxNDQ3NDog
dW5zaWduZWQgaW50IHNucHJpbnRmX2NvdW50KGNoYXIgKnBCdWYsIHVuc2lnbmVkIGludCBidWZT
aXplLCBjaGFyICpmbXQsIC4uLik7CjE0NDc0OiAjIDIwOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCjE0NDc0OiBib29sIGRtX3BwX2dl
dF9jbG9ja19sZXZlbHNfYnlfdHlwZSgKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAq
Y3R4LAoxNDQ3NDogIGVudW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtfdHlwZSwKMTQ0NzQ6ICBzdHJ1
Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzICpjbGtfbGV2ZWxfaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6IGJv
b2wgZG1fcHBfZ2V0X2Nsb2NrX2xldmVsc19ieV90eXBlX3dpdGhfbGF0ZW5jeSgKMTQ0NzQ6ICBj
b25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIGVudW0gZG1fcHBfY2xvY2tfdHlw
ZSBjbGtfdHlwZSwKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzX3dpdGhfbGF0ZW5j
eSAqY2xrX2xldmVsX2luZm8pOwoxNDQ3NDogCjE0NDc0OiBib29sIGRtX3BwX2dldF9jbG9ja19s
ZXZlbHNfYnlfdHlwZV93aXRoX3ZvbHRhZ2UoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKMTQ0NzQ6ICBlbnVtIGRtX3BwX2Nsb2NrX3R5cGUgY2xrX3R5cGUsCjE0NDc0OiAg
c3RydWN0IGRtX3BwX2Nsb2NrX2xldmVsc193aXRoX3ZvbHRhZ2UgKmNsa19sZXZlbF9pbmZvKTsK
MTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9wcF9ub3RpZnlfd21fY2xvY2tfY2hhbmdlcygKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIHN0cnVjdCBkbV9wcF93bV9z
ZXRzX3dpdGhfY2xvY2tfcmFuZ2VzICp3bV93aXRoX2Nsb2NrX3Jhbmdlcyk7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZG1fcHBfZ2V0X2Z1bmNzKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAg
IHN0cnVjdCBwcF9zbXVfZnVuY3MgKmZ1bmNzKTsKMTQ0NzQ6ICMgMjQxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0NzQ6IGJvb2wg
ZG1fcHBfYXBwbHlfZGlzcGxheV9yZXF1aXJlbWVudHMoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZG1fcHBfZGlzcGxheV9jb25maWd1
cmF0aW9uICpwcF9kaXNwbGF5X2NmZyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1fcHBfYXBwbHlf
cG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3QoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfcG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3Qg
KmxldmVsX2NoYW5nZV9yZXEpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRtX3BwX2FwcGx5X2Nsb2Nr
X2Zvcl92b2x0YWdlX3JlcXVlc3QoCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0
eCwKMTQ0NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfZm9yX3ZvbHRhZ2VfcmVxICpjbG9ja19mb3Jf
dm9sdGFnZV9yZXEpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRtX3BwX2dldF9zdGF0aWNfY2xvY2tz
KAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgc3RydWN0IGRt
X3BwX3N0YXRpY19jbG9ja19pbmZvICpzdGF0aWNfY2xrX2luZm8pOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBlcnNpc3RlbnRfZGF0YV9mbGFnIHsKMTQ0NzQ6ICBib29s
IHNhdmVfcGVyX2xpbms7CjE0NDc0OiAgYm9vbCBzYXZlX3Blcl9lZGlkOwoxNDQ3NDogfTsKMTQ0
NzQ6ICMgMjkxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1f
c2VydmljZXMuaCIKMTQ0NzQ6IGJvb2wgZG1fd3JpdGVfcGVyc2lzdGVudF9kYXRhKHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zaW5rICpzaW5rLAoxNDQ3
NDogICBjb25zdCBjaGFyICptb2R1bGVfbmFtZSwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqa2V5X25h
bWUsCjE0NDc0OiAgIHZvaWQgKnBhcmFtcywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHNpemUsCjE0
NDc0OiAgIHN0cnVjdCBwZXJzaXN0ZW50X2RhdGFfZmxhZyAqZmxhZyk7CjE0NDc0OiAjIDMyNSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgi
CjE0NDc0OiBib29sIGRtX3JlYWRfcGVyc2lzdGVudF9kYXRhKHN0cnVjdCBkY19jb250ZXh0ICpj
dHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zaW5rICpzaW5rLAoxNDQ3NDogICBjb25zdCBj
aGFyICptb2R1bGVfbmFtZSwKMTQ0NzQ6ICAgY29uc3QgY2hhciAqa2V5X25hbWUsCjE0NDc0OiAg
IHZvaWQgKnBhcmFtcywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IHNpemUsCjE0NDc0OiAgIHN0cnVj
dCBwZXJzaXN0ZW50X2RhdGFfZmxhZyAqZmxhZyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1fcXVl
cnlfZXh0ZW5kZWRfYnJpZ2h0bmVzc19jYXBzCjE0NDc0OiAgKHN0cnVjdCBkY19jb250ZXh0ICpj
dHgsIGVudW0gZG1fYWNwaV9kaXNwbGF5X3R5cGUgZGlzcGxheSwKMTQ0NzQ6ICAgIHN0cnVjdCBk
bV9hY3BpX2F0aWZfYmFja2xpZ2h0X2NhcHMgKnBDYXBzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBk
bV9kbWN1X3NldF9waXBlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBjb250
cm9sbGVyX2lkKTsKMTQ0NzQ6ICMgMzQ3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbG9uZyBkbV9n
ZXRfdGltZXN0YW1wKHN0cnVjdCBkY19jb250ZXh0ICpjdHgpCjE0NDc0OiB7CjE0NDc0OiAgcmV0
dXJuIGt0aW1lX2dldF9yYXdfbnMoKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdW5zaWduZWQg
bG9uZyBsb25nIGRtX2dldF9lbGFwc2VfdGltZV9pbl9ucyhzdHJ1Y3QgZGNfY29udGV4dCAqY3R4
LAoxNDQ3NDogICB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudF90aW1lX3N0YW1wLAoxNDQ3NDog
ICB1bnNpZ25lZCBsb25nIGxvbmcgbGFzdF90aW1lX3N0YW1wKTsKMTQ0NzQ6ICMgMzcxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKMTQ0
NzQ6IHZvaWQgZG1fZHRuX2xvZ19iZWdpbihzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDog
IHN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCk7CjE0NDc0OiB2b2lkIGRtX2R0bl9s
b2dfYXBwZW5kX3Yoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbG9n
X2J1ZmZlcl9jdHggKmxvZ19jdHgsCjE0NDc0OiAgY29uc3QgY2hhciAqbXNnLCAuLi4pOwoxNDQ3
NDogdm9pZCBkbV9kdG5fbG9nX2VuZChzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIHN0
cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCk7CjE0NDc0OiAjIDMxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5o
IiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL3NpZ25hbF90eXBlcy5oIiAxCjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAyCjE0NDc0
OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dy
cGhfb2JqZWN0X2N0cmxfZGVmcy5oIiAxCjE0NDc0OiAjIDMzICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAyCjE0NDc0
OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dw
aW9fdHlwZXMuaCIgMQoxNDQ3NDogIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9saW5rX3NlcnZpY2Vf
dHlwZXMuaCIgMQoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfdHlwZXMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gYXNfc2lnbmFsX3R5cGUgewoxNDQ3NDogIEFTX1NJR05BTF9UWVBFX05PTkUgPSAw
TCwKMTQ0NzQ6ICBBU19TSUdOQUxfVFlQRV9EVkksCjE0NDc0OiAgQVNfU0lHTkFMX1RZUEVfSERN
SSwKMTQ0NzQ6ICBBU19TSUdOQUxfVFlQRV9MVkRTLAoxNDQ3NDogIEFTX1NJR05BTF9UWVBFX0RJ
U1BMQVlfUE9SVCwKMTQ0NzQ6ICBBU19TSUdOQUxfVFlQRV9HUFVfUExMLAoxNDQ3NDogIEFTX1NJ
R05BTF9UWVBFX1hHTUksCjE0NDc0OiAgQVNfU0lHTkFMX1RZUEVfVU5LTk9XTgoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBicF9yZXN1bHQgewoxNDQ3NDogIEJQX1JFU1VMVF9PSyA9IDAs
CjE0NDc0OiAgQlBfUkVTVUxUX0JBRElOUFVULAoxNDQ3NDogIEJQX1JFU1VMVF9CQURCSU9TVEFC
TEUsCjE0NDc0OiAgQlBfUkVTVUxUX1VOU1VQUE9SVEVELAoxNDQ3NDogIEJQX1JFU1VMVF9OT1JF
Q09SRCwKMTQ0NzQ6ICBCUF9SRVNVTFRfRkFJTFVSRQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBicF9lbmNvZGVyX2NvbnRyb2xfYWN0aW9uIHsKMTQ0NzQ6IAoxNDQ3NDogIEVOQ09ERVJf
Q09OVFJPTF9ESVNBQkxFID0gMCwKMTQ0NzQ6ICBFTkNPREVSX0NPTlRST0xfRU5BQkxFLAoxNDQ3
NDogIEVOQ09ERVJfQ09OVFJPTF9TRVRVUCwKMTQ0NzQ6ICBFTkNPREVSX0NPTlRST0xfSU5JVAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBicF90cmFuc21pdHRlcl9jb250cm9sX2FjdGlv
biB7CjE0NDc0OiAKMTQ0NzQ6ICBUUkFOU01JVFRFUl9DT05UUk9MX0RJU0FCTEUgPSAwLAoxNDQ3
NDogIFRSQU5TTUlUVEVSX0NPTlRST0xfRU5BQkxFLAoxNDQ3NDogIFRSQU5TTUlUVEVSX0NPTlRS
T0xfQkFDS0xJR0hUX09GRiwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9DT05UUk9MX0JBQ0tMSUdIVF9P
TiwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9DT05UUk9MX0JBQ0tMSUdIVF9CUklHSFRORVNTLAoxNDQ3
NDogIFRSQU5TTUlUVEVSX0NPTlRST0xfTENEX1NFVEZfVEVTVF9TVEFSVCwKMTQ0NzQ6ICBUUkFO
U01JVFRFUl9DT05UUk9MX0xDRF9TRUxGX1RFU1RfU1RPUCwKMTQ0NzQ6ICBUUkFOU01JVFRFUl9D
T05UUk9MX0lOSVQsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09OVFJPTF9ERUFDVElWQVRFLAoxNDQ3
NDogIFRSQU5TTUlUVEVSX0NPTlRST0xfQUNUSUFWQVRFLAoxNDQ3NDogIFRSQU5TTUlUVEVSX0NP
TlRST0xfU0VUVVAsCjE0NDc0OiAgVFJBTlNNSVRURVJfQ09OVFJPTF9TRVRfVk9MVEFHRV9BTkRf
UFJFRU1QQVNJUywKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBUUkFOU01JVFRFUl9D
T05UUk9MX1BPV0VSX09OLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIFRSQU5TTUlU
VEVSX0NPTlRST0xfUE9XRVJfT0ZGCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJwX2V4
dGVybmFsX2VuY29kZXJfY29udHJvbF9hY3Rpb24gewoxNDQ3NDogIEVYVEVSTkFMX0VOQ09ERVJf
Q09OVFJPTF9ESVNBQkxFID0gMCwKMTQ0NzQ6ICBFWFRFUk5BTF9FTkNPREVSX0NPTlRST0xfRU5B
QkxFID0gMSwKMTQ0NzQ6ICBFWFRFUk5BTF9FTkNPREVSX0NPTlRST0xfSU5JVCA9IDB4NywKMTQ0
NzQ6ICBFWFRFUk5BTF9FTkNPREVSX0NPTlRST0xfU0VUVVAgPSAweGYsCjE0NDc0OiAgRVhURVJO
QUxfRU5DT0RFUl9DT05UUk9MX1VOQkxBTksgPSAweDEwLAoxNDQ3NDogIEVYVEVSTkFMX0VOQ09E
RVJfQ09OVFJPTF9CTEFOSyA9IDB4MTEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJw
X3BpcGVfY29udHJvbF9hY3Rpb24gewoxNDQ3NDogIEFTSUNfUElQRV9ESVNBQkxFID0gMCwKMTQ0
NzQ6ICBBU0lDX1BJUEVfRU5BQkxFLAoxNDQ3NDogIEFTSUNfUElQRV9JTklUCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfZW5jb2Rlcl9jb250cm9sIHsKMTQ0NzQ6ICBlbnVtIGJw
X2VuY29kZXJfY29udHJvbF9hY3Rpb24gYWN0aW9uOwoxNDQ3NDogIGVudW0gZW5naW5lX2lkIGVu
Z2luZV9pZDsKMTQ0NzQ6ICBlbnVtIHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyOwoxNDQ3NDogIGVu
dW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoxNDQ3NDogIGVudW0gZGNfbGFuZV9jb3VudCBsYW5lc19u
dW1iZXI7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0aDsKMTQ0NzQ6ICBi
b29sIGVuYWJsZV9kcF9hdWRpbzsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9jazsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBicF9leHRlcm5hbF9lbmNvZGVyX2NvbnRyb2wgewox
NDQ3NDogIGVudW0gYnBfZXh0ZXJuYWxfZW5jb2Rlcl9jb250cm9sX2FjdGlvbiBhY3Rpb247CjE0
NDc0OiAgZW51bSBlbmdpbmVfaWQgZW5naW5lX2lkOwoxNDQ3NDogIGVudW0gZGNfbGlua19yYXRl
IGxpbmtfcmF0ZTsKMTQ0NzQ6ICBlbnVtIGRjX2xhbmVfY291bnQgbGFuZXNfbnVtYmVyOwoxNDQ3
NDogIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoxNDQ3NDogIGVudW0gZGNfY29sb3JfZGVwdGgg
Y29sb3JfZGVwdGg7CjE0NDc0OiAgYm9vbCBjb2hlcmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhp
Y3Nfb2JqZWN0X2lkIGVuY29kZXJfaWQ7CjE0NDc0OiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9p
ZCBjb25uZWN0b3Jfb2JqX2lkOwoxNDQ3NDogIHVpbnQzMl90IHBpeGVsX2Nsb2NrOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwX2NydGNfc291cmNlX3NlbGVjdCB7CjE0NDc0OiAg
ZW51bSBlbmdpbmVfaWQgZW5naW5lX2lkOwoxNDQ3NDogIGVudW0gY29udHJvbGxlcl9pZCBjb250
cm9sbGVyX2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CjE0NDc0
OiAKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlIHNpbmtfc2lnbmFsOwoxNDQ3NDogIGVudW0gZGlz
cGxheV9vdXRwdXRfYml0X2RlcHRoIGRpc3BsYXlfb3V0cHV0X2JpdF9kZXB0aDsKMTQ0NzQ6ICBi
b29sIGVuYWJsZV9kcF9hdWRpbzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBicF90
cmFuc21pdHRlcl9jb250cm9sIHsKMTQ0NzQ6ICBlbnVtIGJwX3RyYW5zbWl0dGVyX2NvbnRyb2xf
YWN0aW9uIGFjdGlvbjsKMTQ0NzQ6ICBlbnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7CjE0NDc0OiAg
ZW51bSB0cmFuc21pdHRlciB0cmFuc21pdHRlcjsKMTQ0NzQ6ICBlbnVtIGRjX2xhbmVfY291bnQg
bGFuZXNfbnVtYmVyOwoxNDQ3NDogIGVudW0gY2xvY2tfc291cmNlX2lkIHBsbF9pZDsKMTQ0NzQ6
ICBlbnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNv
bG9yX2RlcHRoOwoxNDQ3NDogIGVudW0gaHBkX3NvdXJjZV9pZCBocGRfc2VsOwoxNDQ3NDogIHN0
cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yX29ial9pZDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9jazsKMTQ0NzQ6ICB1aW50MzJfdCBs
YW5lX3NlbGVjdDsKMTQ0NzQ6ICB1aW50MzJfdCBsYW5lX3NldHRpbmdzOwoxNDQ3NDogIGJvb2wg
Y29oZXJlbnQ7CjE0NDc0OiAgYm9vbCBtdWx0aV9wYXRoOwoxNDQ3NDogIGJvb2wgc2luZ2xlX3Bs
bF9tb2RlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwX2h3X2NydGNfdGltaW5n
X3BhcmFtZXRlcnMgewoxNDQ3NDogIGVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVyX2lkOwox
NDQ3NDogCjE0NDc0OiAgdWludDMyX3QgaF90b3RhbDsKMTQ0NzQ6ICB1aW50MzJfdCBoX2FkZHJl
c3NhYmxlOwoxNDQ3NDogIHVpbnQzMl90IGhfb3ZlcnNjYW5fbGVmdDsKMTQ0NzQ6ICB1aW50MzJf
dCBoX292ZXJzY2FuX3JpZ2h0OwoxNDQ3NDogIHVpbnQzMl90IGhfc3luY19zdGFydDsKMTQ0NzQ6
ICB1aW50MzJfdCBoX3N5bmNfd2lkdGg7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90
IHZfdG90YWw7CjE0NDc0OiAgdWludDMyX3Qgdl9hZGRyZXNzYWJsZTsKMTQ0NzQ6ICB1aW50MzJf
dCB2X292ZXJzY2FuX3RvcDsKMTQ0NzQ6ICB1aW50MzJfdCB2X292ZXJzY2FuX2JvdHRvbTsKMTQ0
NzQ6ICB1aW50MzJfdCB2X3N5bmNfc3RhcnQ7CjE0NDc0OiAgdWludDMyX3Qgdl9zeW5jX3dpZHRo
OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHRpbWluZ19mbGFncyB7CjE0NDc0OiAgIHVpbnQzMl90
IElOVEVSTEFDRToxOwoxNDQ3NDogICB1aW50MzJfdCBQSVhFTF9SRVBFVElUSU9OOjQ7CjE0NDc0
OiAgIHVpbnQzMl90IEhTWU5DX1BPU0lUSVZFX1BPTEFSSVRZOjE7CjE0NDc0OiAgIHVpbnQzMl90
IFZTWU5DX1BPU0lUSVZFX1BPTEFSSVRZOjE7CjE0NDc0OiAgIHVpbnQzMl90IEhPUlpfQ09VTlRf
QllfVFdPOjE7CjE0NDc0OiAgfSBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBicF9hZGp1c3RfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbF90eXBlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGdyYXBoaWNz
X29iamVjdF9pZCBlbmNvZGVyX29iamVjdF9pZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGFkanVz
dGVkX3BpeGVsX2Nsb2NrOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByZWZlcmVu
Y2VfZGl2aWRlcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcGl4ZWxfY2xvY2tf
cG9zdF9kaXZpZGVyOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBzc19lbmFibGU7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfcGl4ZWxfY2xvY2tfcGFyYW1ldGVycyB7CjE0NDc0OiAg
ZW51bSBjb250cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQ7CjE0NDc0OiAgZW51bSBjbG9ja19zb3Vy
Y2VfaWQgcGxsX2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWxfdHlw
ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgdGFyZ2V0X3BpeGVsX2Nsb2NrXzEw
MGh6OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgcmVmZXJlbmNlX2RpdmlkZXI7CjE0NDc0OiAK
MTQ0NzQ6ICB1aW50MzJfdCBmZWVkYmFja19kaXZpZGVyOwoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgZnJhY3Rpb25hbF9mZWVkYmFja19kaXZpZGVyOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3Qg
cGl4ZWxfY2xvY2tfcG9zdF9kaXZpZGVyOwoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3Rf
aWQgZW5jb2Rlcl9vYmplY3RfaWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRm
c19ieXBhc3NfZGlzcGxheV9jbG9jazsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gdHJhbnNtaXR0ZXJf
Y29sb3JfZGVwdGggY29sb3JfZGVwdGg7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcHJvZ3JhbV9w
aXhlbF9jbG9ja19mbGFncyB7CjE0NDc0OiAgIHVpbnQzMl90IEZPUkNFX1BST0dSQU1NSU5HX09G
X1BMTDoxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgVVNFX0VfQ0xPQ0tfQVNf
U09VUkNFX0ZPUl9EX0NMT0NLOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgU0VUX0VYVEVS
TkFMX1JFRl9ESVZfU1JDOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgU0VUX0RJU1BDTEtf
REZTX0JZUEFTUzoxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IFBST0dSQU1fUEhZX1BMTF9P
TkxZOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgU1VQUE9SVF9ZVVZfNDIwOjE7CjE0NDc0
OiAKMTQ0NzQ6ICAgdWludDMyX3QgU0VUX1hUQUxJTl9SRUZfU1JDOjE7CjE0NDc0OiAKMTQ0NzQ6
ICAgdWludDMyX3QgU0VUX0dFTkxPQ0tfUkVGX0RJVl9TUkM6MTsKMTQ0NzQ6ICB9IGZsYWdzOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBicF9kY2VfY2xvY2tfdHlwZSB7CjE0NDc0OiAg
RENFQ0xPQ0tfVFlQRV9ESVNQTEFZX0NMT0NLID0gMCwKMTQ0NzQ6ICBEQ0VDTE9DS19UWVBFX0RQ
UkVGQ0xLID0gMQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfc2V0
X2RjZV9jbG9ja19wYXJhbWV0ZXJzIHsKMTQ0NzQ6ICBlbnVtIGNsb2NrX3NvdXJjZV9pZCBwbGxf
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCB0YXJnZXRfY2xvY2tfZnJlcXVlbmN5OwoxNDQ3
NDogCjE0NDc0OiAgZW51bSBicF9kY2VfY2xvY2tfdHlwZSBjbG9ja190eXBlOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHNldF9kY2VfY2xvY2tfZmxhZ3MgewoxNDQ3NDogICB1aW50MzJfdCBVU0Vf
R0VORVJJQ0FfQVNfU09VUkNFX0ZPUl9EUFJFRkNMSzoxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQz
Ml90IFVTRV9YVEFMSU5fQVNfU09VUkNFX0ZPUl9EUFJFRkNMSzoxOwoxNDQ3NDogCjE0NDc0OiAg
IHVpbnQzMl90IFVTRV9QQ0lFX0FTX1NPVVJDRV9GT1JfRFBSRUZDTEs6MTsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MzJfdCBVU0VfR0VOTE9DS19BU19TT1VSQ0VfRk9SX0RQUkVGQ0xLOjE7CjE0NDc0
OiAgfSBmbGFnczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzcHJlYWRfc3BlY3Ry
dW1fZmxhZ3MgewoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgQ0VOVEVSX1NQUkVBRDoxOwoxNDQ3
NDogCjE0NDc0OiAgdWludDMyX3QgRVhURVJOQUxfU1M6MTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IERTX1RZUEU6MTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBicF9zcHJlYWRf
c3BlY3RydW1fcGFyYW1ldGVycyB7CjE0NDc0OiAgZW51bSBjbG9ja19zb3VyY2VfaWQgcGxsX2lk
OwoxNDQ3NDogIHVpbnQzMl90IHBlcmNlbnRhZ2U7CjE0NDc0OiAgdWludDMyX3QgZHNfZnJhY19h
bW91bnQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVjdCB7CjE0NDc0OiAg
ICB1aW50MzJfdCBzdGVwOwoxNDQ3NDogICAgdWludDMyX3QgZGVsYXk7CjE0NDc0OiAgICB1aW50
MzJfdCByYW5nZTsKMTQ0NzQ6ICAgfSB2ZXIxOwoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAg
dWludDMyX3QgZmVlZGJhY2tfYW1vdW50OwoxNDQ3NDogICAgdWludDMyX3QgbmZyYWNfYW1vdW50
OwoxNDQ3NDogICAgdWludDMyX3QgZHNfZnJhY19zaXplOwoxNDQ3NDogICB9IGRzOwoxNDQ3NDog
IH07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX2ZsYWdzIGZsYWdzOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJwX2VuY29kZXJfY2FwX2luZm8gewoxNDQ3
NDogIHVpbnQzMl90IERQX0hCUjJfQ0FQOjE7CjE0NDc0OiAgdWludDMyX3QgRFBfSEJSMl9FTjox
OwoxNDQ3NDogIHVpbnQzMl90IERQX0hCUjNfRU46MTsKMTQ0NzQ6ICB1aW50MzJfdCBIRE1JXzZH
Ql9FTjoxOwoxNDQ3NDogIHVpbnQzMl90IERQX0lTX1VTQl9DOjE7CjE0NDc0OiAgdWludDMyX3Qg
UkVTRVJWRUQ6Mjc7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIgMgoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgY2xvY2tfc291cmNlOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3ByZWFkX3NwZWN0
cnVtX2RhdGEgewoxNDQ3NDogIHVpbnQzMl90IHBlcmNlbnRhZ2U7CjE0NDc0OiAgdWludDMyX3Qg
cGVyY2VudGFnZV9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IGZyZXFfcmFuZ2Vfa2h6OwoxNDQ3
NDogIHVpbnQzMl90IG1vZHVsYXRpb25fZnJlcV9oejsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBz
cHJlYWRfc3BlY3RydW1fZmxhZ3MgZmxhZ3M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZGVsdGFfc2lnbWFfZGF0YSB7CjE0NDc0OiAgdWludDMyX3QgZmVlZGJhY2tfYW1vdW50Owox
NDQ3NDogIHVpbnQzMl90IG5mcmFjX2Ftb3VudDsKMTQ0NzQ6ICB1aW50MzJfdCBkc19mcmFjX3Np
emU7CjE0NDc0OiAgdWludDMyX3QgZHNfZnJhY19hbW91bnQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBpeGVs
X2Nsa19mbGFncyB7CjE0NDc0OiAgdWludDMyX3QgRU5BQkxFX1NTOjE7CjE0NDc0OiAgdWludDMy
X3QgRElTUExBWV9CTEFOS0VEOjE7CjE0NDc0OiAgdWludDMyX3QgUFJPR1JBTV9QSVhFTF9DTE9D
SzoxOwoxNDQ3NDogIHVpbnQzMl90IFBST0dSQU1fSURfQ0xPQ0s6MTsKMTQ0NzQ6ICB1aW50MzJf
dCBTVVBQT1JUX1lDQkNSNDIwOjE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjc2RwX3JlZl9jbGtfZHNfcGFyYW1zIHsKMTQ0
NzQ6ICBib29sIGh3X2Rzb19uX2RwX3JlZl9jbGs7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBh
dmdfZHBfcmVmX2Nsa19raHo7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBzc19wZXJjZW50YWdl
X29uX2RwX3JlZl9jbGs7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNzX3BlcmNl
bnRhZ2VfZGl2aWRlcjsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBp
eGVsX2Nsa19wYXJhbXMgewoxNDQ3NDogIHVpbnQzMl90IHJlcXVlc3RlZF9waXhfY2xrXzEwMGh6
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByZXF1ZXN0ZWRfc3ltX2NsazsKMTQ0
NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRwX3JlZl9jbGs7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qg
Z3JhcGhpY3Nfb2JqZWN0X2lkIGVuY29kZXJfb2JqZWN0X2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51
bSBzaWduYWxfdHlwZSBzaWduYWxfdHlwZTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gY29udHJvbGxl
cl9pZCBjb250cm9sbGVyX2lkOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19jb2xvcl9kZXB0aCBj
b2xvcl9kZXB0aDsKMTQ0NzQ6ICBzdHJ1Y3QgY3NkcF9yZWZfY2xrX2RzX3BhcmFtcyBkZV9zcHJl
YWRfcGFyYW1zOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19waXhlbF9lbmNvZGluZyBwaXhlbF9l
bmNvZGluZzsKMTQ0NzQ6ICBzdHJ1Y3QgcGl4ZWxfY2xrX2ZsYWdzIGZsYWdzOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBwbGxfc2V0dGluZ3MgewoxNDQ3NDogIHVpbnQzMl90IGFjdHVhbF9waXhfY2xrXzEwMGh6
OwoxNDQ3NDogIHVpbnQzMl90IGFkanVzdGVkX3BpeF9jbGtfMTAwaHo7CjE0NDc0OiAgdWludDMy
X3QgY2FsY3VsYXRlZF9waXhfY2xrXzEwMGh6OwoxNDQ3NDogIHVpbnQzMl90IHZjb19mcmVxOwox
NDQ3NDogIHVpbnQzMl90IHJlZmVyZW5jZV9mcmVxOwoxNDQ3NDogIHVpbnQzMl90IHJlZmVyZW5j
ZV9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IGZlZWRiYWNrX2RpdmlkZXI7CjE0NDc0OiAgdWlu
dDMyX3QgZnJhY3RfZmVlZGJhY2tfZGl2aWRlcjsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhfY2xrX3Bv
c3RfZGl2aWRlcjsKMTQ0NzQ6ICB1aW50MzJfdCBzc19wZXJjZW50YWdlOwoxNDQ3NDogIGJvb2wg
dXNlX2V4dGVybmFsX2NsazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjYWxjX3Bs
bF9jbG9ja19zb3VyY2VfaW5pdF9kYXRhIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfYmlvcyAqYnA7CjE0
NDc0OiAgdWludDMyX3QgbWluX3BpeF9jbGtfcGxsX3Bvc3RfZGl2aWRlcjsKMTQ0NzQ6ICB1aW50
MzJfdCBtYXhfcGl4X2Nsa19wbGxfcG9zdF9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1pbl9w
bGxfcmVmX2RpdmlkZXI7CjE0NDc0OiAgdWludDMyX3QgbWF4X3BsbF9yZWZfZGl2aWRlcjsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fb3ZlcnJpZGVfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcV9raHo7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IG1heF9vdmVycmlkZV9pbnB1dF9weGxfY2xr
X3BsbF9mcmVxX2toejsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbnVtX2ZyYWN0
X2ZiX2RpdmlkZXJfZGVjaW1hbF9wb2ludDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdWludDMy
X3QgbnVtX2ZyYWN0X2ZiX2RpdmlkZXJfZGVjaW1hbF9wb2ludF9wcmVjaXNpb247CjE0NDc0OiAK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgY2FsY19wbGxfY2xvY2tfc291cmNlIHsKMTQ0NzQ6ICB1aW50MzJfdCBy
ZWZfZnJlcV9raHo7CjE0NDc0OiAgdWludDMyX3QgbWluX3BpeF9jbG9ja19wbGxfcG9zdF9kaXZp
ZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1heF9waXhfY2xvY2tfcGxsX3Bvc3RfZGl2aWRlcjsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fcGxsX3JlZl9kaXZpZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1heF9w
bGxfcmVmX2RpdmlkZXI7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfdmNvX2toejsKMTQ0
NzQ6ICB1aW50MzJfdCBtaW5fdmNvX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fcGxsX2lucHV0
X2ZyZXFfa2h6OwoxNDQ3NDogIHVpbnQzMl90IG1heF9wbGxfaW5wdXRfZnJlcV9raHo7CjE0NDc0
OiAKMTQ0NzQ6ICB1aW50MzJfdCBmcmFjdF9mYl9kaXZpZGVyX2RlY2ltYWxfcG9pbnRzX251bTsK
MTQ0NzQ6ICB1aW50MzJfdCBmcmFjdF9mYl9kaXZpZGVyX2ZhY3RvcjsKMTQ0NzQ6ICB1aW50MzJf
dCBmcmFjdF9mYl9kaXZpZGVyX3ByZWNpc2lvbjsKMTQ0NzQ6ICB1aW50MzJfdCBmcmFjdF9mYl9k
aXZpZGVyX3ByZWNpc2lvbl9mYWN0b3I7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbG9ja19zb3VyY2VfZnVuY3MgewoxNDQ3
NDogIGJvb2wgKCpjc19wb3dlcl9kb3duKSgKMTQ0NzQ6ICAgIHN0cnVjdCBjbG9ja19zb3VyY2Ug
Kik7CjE0NDc0OiAgYm9vbCAoKnByb2dyYW1fcGl4X2Nsaykoc3RydWN0IGNsb2NrX3NvdXJjZSAq
LAoxNDQ3NDogICAgc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgKiwgc3RydWN0IHBsbF9zZXR0aW5n
cyAqKTsKMTQ0NzQ6ICB1aW50MzJfdCAoKmdldF9waXhfY2xrX2RpdmlkZXJzKSgKMTQ0NzQ6ICAg
IHN0cnVjdCBjbG9ja19zb3VyY2UgKiwKMTQ0NzQ6ICAgIHN0cnVjdCBwaXhlbF9jbGtfcGFyYW1z
ICosCjE0NDc0OiAgICBzdHJ1Y3QgcGxsX3NldHRpbmdzICopOwoxNDQ3NDogIGJvb2wgKCpnZXRf
cGl4ZWxfY2xrX2ZyZXF1ZW5jeV8xMDBoeikoCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgY2xvY2tf
c291cmNlICpjbG9ja19zb3VyY2UsCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgaW5zdCwKMTQ0NzQ6
ICAgIHVuc2lnbmVkIGludCAqcGl4ZWxfY2xrX2toeik7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgY2xvY2tfc291cmNlIHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgY2xvY2tfc291cmNl
X2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIGVu
dW0gY2xvY2tfc291cmNlX2lkIGlkOwoxNDQ3NDogIGJvb2wgZHBfY2xrX3NyYzsKMTQ0NzQ6IH07
CjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
aW5jL2h3X3NlcXVlbmNlci5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvdGltaW5nX2dlbmVyYXRvci5oIiAxCjE0NDc0OiAj
IDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L3Rp
bWluZ19nZW5lcmF0b3IuaCIKMTQ0NzQ6IHN0cnVjdCBkY19iaW9zOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBjcnRjX3Bvc2l0aW9uIHsKMTQ0NzQ6ICBpbnQzMl90IHZlcnRpY2FsX2Nv
dW50OwoxNDQ3NDogIGludDMyX3QgaG9yaXpvbnRhbF9jb3VudDsKMTQ0NzQ6ICBpbnQzMl90IG5v
bWluYWxfdmNvdW50OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjcF9nc2xfcGFy
YW1zIHsKMTQ0NzQ6ICBpbnQgZ3NsX2dyb3VwOwoxNDQ3NDogIGludCBnc2xfbWFzdGVyOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdzbF9wYXJhbXMgewoxNDQ3NDogIGludCBnc2ww
X2VuOwoxNDQ3NDogIGludCBnc2wxX2VuOwoxNDQ3NDogIGludCBnc2wyX2VuOwoxNDQ3NDogIGlu
dCBnc2xfbWFzdGVyX2VuOwoxNDQ3NDogIGludCBnc2xfbWFzdGVyX21vZGU7CjE0NDc0OiAgaW50
IG1hc3Rlcl91cGRhdGVfbG9ja19nc2xfZW47CjE0NDc0OiAgaW50IGdzbF93aW5kb3dfc3RhcnRf
eDsKMTQ0NzQ6ICBpbnQgZ3NsX3dpbmRvd19lbmRfeDsKMTQ0NzQ6ICBpbnQgZ3NsX3dpbmRvd19z
dGFydF95OwoxNDQ3NDogIGludCBnc2xfd2luZG93X2VuZF95OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHJyX3BhcmFtcyB7CjE0NDc0OiAgdWludDMyX3QgdmVydGlj
YWxfdG90YWxfbWluOwoxNDQ3NDogIHVpbnQzMl90IHZlcnRpY2FsX3RvdGFsX21heDsKMTQ0NzQ6
ICB1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9taWQ7CjE0NDc0OiAgdWludDMyX3QgdmVydGljYWxf
dG90YWxfbWlkX2ZyYW1lX251bTsKMTQ0NzQ6ICBib29sIGltbWVkaWF0ZV9mbGlwOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBjcnRjX3N0YXRl
IHsKMTQ0NzQ6ICBDUlRDX1NUQVRFX1ZCTEFOSyA9IDAsCjE0NDc0OiAgQ1JUQ19TVEFURV9WQUNU
SVZFCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgdnVwZGF0ZV9rZWVwb3V0X3BhcmFt
cyB7CjE0NDc0OiAgaW50IHN0YXJ0X29mZnNldDsKMTQ0NzQ6ICBpbnQgZW5kX29mZnNldDsKMTQ0
NzQ6ICBpbnQgZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNydGNfc3Rl
cmVvX2ZsYWdzIHsKMTQ0NzQ6ICB1aW50OF90IFBST0dSQU1fU1RFUkVPIDogMTsKMTQ0NzQ6ICB1
aW50OF90IFBST0dSQU1fUE9MQVJJVFkgOiAxOwoxNDQ3NDogIHVpbnQ4X3QgUklHSFRfRVlFX1BP
TEFSSVRZIDogMTsKMTQ0NzQ6ICB1aW50OF90IEZSQU1FX1BBQ0tFRCA6IDE7CjE0NDc0OiAgdWlu
dDhfdCBESVNBQkxFX1NURVJFT19EUF9TWU5DIDogMTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gY3JjX3NlbGVjdGlvbiB7CjE0NDc0OiAKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfQV9CID0g
MCwKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfQV9OT1RfQiwKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfTk9U
X0FfQiwKMTQ0NzQ6ICBVTklPTl9XSU5ET1dfTk9UX0FfTk9UX0IsCjE0NDc0OiAgSU5URVJTRUNU
X1dJTkRPV19BX0IsCjE0NDc0OiAgSU5URVJTRUNUX1dJTkRPV19BX05PVF9CLAoxNDQ3NDogIElO
VEVSU0VDVF9XSU5ET1dfTk9UX0FfQiwKMTQ0NzQ6ICBJTlRFUlNFQ1RfV0lORE9XX05PVF9BX05P
VF9CLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBoX3RpbWluZ19kaXZfbW9kZSB7CjE0
NDc0OiAgSF9USU1JTkdfTk9fRElWLAoxNDQ3NDogIEhfVElNSU5HX0RJVl9CWTIsCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY3JjX3BhcmFtcyB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MTZfdCB3aW5kb3dhX3hfc3RhcnQ7CjE0NDc0OiAgdWludDE2X3Qgd2luZG93YV94X2VuZDsKMTQ0
NzQ6ICB1aW50MTZfdCB3aW5kb3dhX3lfc3RhcnQ7CjE0NDc0OiAgdWludDE2X3Qgd2luZG93YV95
X2VuZDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQxNl90IHdpbmRvd2JfeF9zdGFydDsKMTQ0NzQ6ICB1
aW50MTZfdCB3aW5kb3diX3hfZW5kOwoxNDQ3NDogIHVpbnQxNl90IHdpbmRvd2JfeV9zdGFydDsK
MTQ0NzQ6ICB1aW50MTZfdCB3aW5kb3diX3lfZW5kOwoxNDQ3NDogCjE0NDc0OiAgZW51bSBjcmNf
c2VsZWN0aW9uIHNlbGVjdGlvbjsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgY29udGludW91c19tb2Rl
OwoxNDQ3NDogIGJvb2wgZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRp
bWluZ19nZW5lcmF0b3IgewoxNDQ3NDogIGNvbnN0IHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1
bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfYmlvcyAqYnA7CjE0NDc0OiAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19jcnRjX3RpbWluZzsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRycl9wYXJhbXM7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRpbWluZ19nZW5lcmF0b3JfZnVuY3Mgewox
NDQ3NDogIGJvb2wgKCp2YWxpZGF0ZV90aW1pbmcpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0
ZywKMTQ0NzQ6ICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7CjE0
NDc0OiAgdm9pZCAoKnByb2dyYW1fdGltaW5nKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcs
CjE0NDc0OiAgICAgICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsCjE0NDc0
OiAgICAgICAgaW50IHZyZWFkeV9vZmZzZXQsCjE0NDc0OiAgICAgICAgaW50IHZzdGFydHVwX3N0
YXJ0LAoxNDQ3NDogICAgICAgIGludCB2dXBkYXRlX29mZnNldCwKMTQ0NzQ6ICAgICAgICBpbnQg
dnVwZGF0ZV93aWR0aCwKMTQ0NzQ6ICAgICAgICBjb25zdCBlbnVtIHNpZ25hbF90eXBlIHNpZ25h
bCwKMTQ0NzQ6ICAgICAgICBib29sIHVzZV92YmlvcwoxNDQ3NDogICk7CjE0NDc0OiAgdm9pZCAo
KnNldHVwX3ZlcnRpY2FsX2ludGVycnVwdDApKAoxNDQ3NDogICAgc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKm9wdGMsCjE0NDc0OiAgICB1aW50MzJfdCBzdGFydF9saW5lLAoxNDQ3NDogICAgdWlu
dDMyX3QgZW5kX2xpbmUpOwoxNDQ3NDogIHZvaWQgKCpzZXR1cF92ZXJ0aWNhbF9pbnRlcnJ1cHQx
KSgKMTQ0NzQ6ICAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAoxNDQ3NDogICAgdWlu
dDMyX3Qgc3RhcnRfbGluZSk7CjE0NDc0OiAgdm9pZCAoKnNldHVwX3ZlcnRpY2FsX2ludGVycnVw
dDIpKAoxNDQ3NDogICAgc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICB1
aW50MzJfdCBzdGFydF9saW5lKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCplbmFibGVfY3J0Yyko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICBib29sICgqZGlzYWJsZV9jcnRj
KShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogIGJvb2wgKCppc19jb3VudGVy
X21vdmluZykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqZ2V0
X3Bvc2l0aW9uKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICAgc3RydWN0
IGNydGNfcG9zaXRpb24gKnBvc2l0aW9uKTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90ICgqZ2V0
X2ZyYW1lX2NvdW50KShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogIHZvaWQg
KCpnZXRfc2Nhbm91dHBvcykoCjE0NDc0OiAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywK
MTQ0NzQ6ICAgdWludDMyX3QgKnZfYmxhbmtfc3RhcnQsCjE0NDc0OiAgIHVpbnQzMl90ICp2X2Js
YW5rX2VuZCwKMTQ0NzQ6ICAgdWludDMyX3QgKmhfcG9zaXRpb24sCjE0NDc0OiAgIHVpbnQzMl90
ICp2X3Bvc2l0aW9uKTsKMTQ0NzQ6ICBib29sICgqZ2V0X290Z19hY3RpdmVfc2l6ZSkoc3RydWN0
IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICB1aW50MzJfdCAqb3RnX2FjdGl2ZV93
aWR0aCwKMTQ0NzQ6ICAgIHVpbnQzMl90ICpvdGdfYWN0aXZlX2hlaWdodCk7CjE0NDc0OiAgYm9v
bCAoKmlzX21hdGNoaW5nX3RpbWluZykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAoxNDQ3
NDogICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICpvdGdfdGltaW5nKTsKMTQ0NzQ6ICB2
b2lkICgqc2V0X2Vhcmx5X2NvbnRyb2wpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0
NzQ6ICAgICAgICAgICB1aW50MzJfdCBlYXJseV9jbnRsKTsKMTQ0NzQ6ICB2b2lkICgqd2FpdF9m
b3Jfc3RhdGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgICBlbnVt
IGNydGNfc3RhdGUgc3RhdGUpOwoxNDQ3NDogIHZvaWQgKCpzZXRfYmxhbmspKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgYm9vbCBlbmFibGVfYmxhbmtpbmcpOwoxNDQ3
NDogIGJvb2wgKCppc19ibGFua2VkKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3
NDogIHZvaWQgKCpzZXRfb3ZlcnNjYW5fYmxhbmtfY29sb3IpIChzdHJ1Y3QgdGltaW5nX2dlbmVy
YXRvciAqdGcsIGNvbnN0IHN0cnVjdCB0Z19jb2xvciAqY29sb3IpOwoxNDQ3NDogIHZvaWQgKCpz
ZXRfYmxhbmtfY29sb3IpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywgY29uc3Qgc3RydWN0
IHRnX2NvbG9yICpjb2xvcik7CjE0NDc0OiAgdm9pZCAoKnNldF9jb2xvcnMpKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgIGNvbnN0IHN0cnVjdCB0Z19jb2xvciAqYmxh
bmtfY29sb3IsCjE0NDc0OiAgICAgICBjb25zdCBzdHJ1Y3QgdGdfY29sb3IgKm92ZXJzY2FuX2Nv
bG9yKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkaXNhYmxlX3ZnYSkoc3RydWN0IHRpbWluZ19n
ZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICBib29sICgqZGlkX3RyaWdnZXJlZF9yZXNldF9vY2N1ciko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqc2V0dXBfZ2xvYmFs
X3N3YXBfbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAoxNDQ3NDogICAgICAgIGNv
bnN0IHN0cnVjdCBkY3BfZ3NsX3BhcmFtcyAqZ3NsX3BhcmFtcyk7CjE0NDc0OiAgdm9pZCAoKnVu
bG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqbG9jayko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lkICgqbG9ja19kb3VibGVi
dWZmZXJfZGlzYWJsZSkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKMTQ0NzQ6ICB2b2lk
ICgqbG9ja19kb3VibGVidWZmZXJfZW5hYmxlKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcp
OwoxNDQ3NDogIHZvaWQoKnRyaXBsZWJ1ZmZlcl91bmxvY2spKHN0cnVjdCB0aW1pbmdfZ2VuZXJh
dG9yICp0Zyk7CjE0NDc0OiAgdm9pZCgqdHJpcGxlYnVmZmVyX2xvY2spKHN0cnVjdCB0aW1pbmdf
Z2VuZXJhdG9yICp0Zyk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9yZXNldF90cmlnZ2VyKShzdHJ1
Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICAgICAgICBpbnQgc291cmNlX3RnX2lu
c3QpOwoxNDQ3NDogIHZvaWQgKCplbmFibGVfY3J0Y19yZXNldCkoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAoxNDQ3NDogICAgICAgaW50IHNvdXJjZV90Z19pbnN0LAoxNDQ3NDogICAgICAg
c3RydWN0IGNydGNfdHJpZ2dlcl9pbmZvICpjcnRjX3RwKTsKMTQ0NzQ6ICB2b2lkICgqZGlzYWJs
ZV9yZXNldF90cmlnZ2VyKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogIHZv
aWQgKCp0ZWFyX2Rvd25fZ2xvYmFsX3N3YXBfbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRnKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX2FkdmFuY2VkX3JlcXVlc3QpKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgICAgYm9vbCBlbmFibGUsIGNvbnN0IHN0cnVjdCBk
Y19jcnRjX3RpbWluZyAqdGltaW5nKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X2Rycikoc3RydWN0IHRp
bWluZ19nZW5lcmF0b3IgKnRnLCBjb25zdCBzdHJ1Y3QgZHJyX3BhcmFtcyAqcGFyYW1zKTsKMTQ0
NzQ6ICB2b2lkICgqc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbCkoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAoxNDQ3NDogICAgICAgdWludDMyX3QgZXZlbnRfdHJpZ2dlcnMsCjE0NDc0OiAg
ICAgICB1aW50MzJfdCBudW1fZnJhbWVzKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Rlc3RfcGF0dGVy
bikoCjE0NDc0OiAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgZW51bSBj
b250cm9sbGVyX2RwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCjE0NDc0OiAgIGVudW0gZGNf
Y29sb3JfZGVwdGggY29sb3JfZGVwdGgpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmFybV92ZXJ0
X2ludHIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywgdWludDhfdCB3aWR0aCk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqcHJvZ3JhbV9nbG9iYWxfc3luYykoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAoxNDQ3NDogICAgaW50IHZyZWFkeV9vZmZzZXQsCjE0NDc0OiAgICBpbnQgdnN0
YXJ0dXBfc3RhcnQsCjE0NDc0OiAgICBpbnQgdnVwZGF0ZV9vZmZzZXQsCjE0NDc0OiAgICBpbnQg
dnVwZGF0ZV93aWR0aCk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9vcHRjX2Nsb2NrKShzdHJ1Y3Qg
dGltaW5nX2dlbmVyYXRvciAqdGcsIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6ICB2b2lkICgqcHJvZ3Jh
bV9zdGVyZW8pKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKMTQ0NzQ6ICAgY29uc3Qgc3Ry
dWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsIHN0cnVjdCBjcnRjX3N0ZXJlb19mbGFncyAqZmxh
Z3MpOwoxNDQ3NDogIGJvb2wgKCppc19zdGVyZW9fbGVmdF9leWUpKHN0cnVjdCB0aW1pbmdfZ2Vu
ZXJhdG9yICp0Zyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2JsYW5rX2RhdGFfZG91Ymxl
X2J1ZmZlcikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBib29sIGVuYWJsZSk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqdGdfaW5pdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsK
MTQ0NzQ6ICBib29sICgqaXNfdGdfZW5hYmxlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRn
KTsKMTQ0NzQ6ICBib29sICgqaXNfb3B0Y191bmRlcmZsb3dfb2NjdXJyZWQpKHN0cnVjdCB0aW1p
bmdfZ2VuZXJhdG9yICp0Zyk7CjE0NDc0OiAgdm9pZCAoKmNsZWFyX29wdGNfdW5kZXJmbG93KShz
dHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9k
d2Jfc291cmNlKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKMTQ0NzQ6ICAgdWludDMy
X3QgZHdiX3BpcGVfaW5zdCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZ2V0X29wdGNfc291cmNl
KShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKMTQ0NzQ6ICAgIHVpbnQzMl90ICpudW1f
b2ZfaW5wdXRfc2VnbWVudHMsCjE0NDc0OiAgICB1aW50MzJfdCAqc2VnMF9zcmNfc2VsLAoxNDQ3
NDogICAgdWludDMyX3QgKnNlZzFfc3JjX3NlbCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpjb25maWd1cmVfY3JjKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGNyY19wYXJhbXMg
KnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGJvb2wgKCpnZXRfY3JjKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCjE0NDc0OiAgICB1
aW50MzJfdCAqcl9jciwgdWludDMyX3QgKmdfeSwgdWludDMyX3QgKmJfY2IpOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKnByb2dyYW1fbWFudWFsX3RyaWdnZXIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJh
dG9yICpvcHRjKTsKMTQ0NzQ6ICB2b2lkICgqc2V0dXBfbWFudWFsX3RyaWdnZXIpKHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKMTQ0NzQ6ICBib29sICgqZ2V0X2h3X3RpbWluZykoc3Ry
dWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY3J0Y190aW1p
bmcgKmh3X2NydGNfdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfdnRnX3BhcmFt
cykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3Qg
ZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpz
ZXRfZHNjX2NvbmZpZykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCjE0NDc0OiAgICAg
ICAgICAgZW51bSBvcHRjX2RzY19tb2RlIGRzY19tb2RlLAoxNDQ3NDogICAgICAgICAgIHVpbnQz
Ml90IGRzY19ieXRlc19wZXJfcGl4ZWwsCjE0NDc0OiAgICAgICAgICAgdWludDMyX3QgZHNjX3Ns
aWNlX3dpZHRoKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X29kbV9ieXBhc3MpKHN0cnVjdCB0aW1pbmdf
Z2VuZXJhdG9yICpvcHRjLCBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGlt
aW5nKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X29kbV9jb21iaW5lKShzdHJ1Y3QgdGltaW5nX2dlbmVy
YXRvciAqb3B0YywgaW50ICpvcHBfaWQsIGludCBvcHBfY250LAoxNDQ3NDogICAgc3RydWN0IGRj
X2NydGNfdGltaW5nICp0aW1pbmcpOwoxNDQ3NDogIHZvaWQgKCpzZXRfZ3NsKShzdHJ1Y3QgdGlt
aW5nX2dlbmVyYXRvciAqb3B0YywgY29uc3Qgc3RydWN0IGdzbF9wYXJhbXMgKnBhcmFtcyk7CjE0
NDc0OiAgdm9pZCAoKnNldF9nc2xfc291cmNlX3NlbGVjdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0
b3IgKm9wdGMsCjE0NDc0OiAgICBpbnQgZ3JvdXBfaWR4LAoxNDQ3NDogICAgdWludDMyX3QgZ3Ns
X3JlYWR5X3NpZ25hbCk7CjE0NDc0OiB9OwoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9od19zZXF1ZW5jZXIuaCIgMgoxNDQ3NDogCjE0
NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMv
aHcvbGlua19lbmNvZGVyLmgiIDEKMTQ0NzQ6ICMgMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbGlua19lbmNvZGVyLmgiCjE0NDc0OiBzdHJ1Y3Qg
ZGNfY29udGV4dDsKMTQ0NzQ6IHN0cnVjdCBlbmNvZGVyX3NldF9kcF9waHlfcGF0dGVybl9wYXJh
bTsKMTQ0NzQ6IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZTsKMTQ0NzQ6
IHN0cnVjdCBkY19saW5rX3NldHRpbmdzOwoxNDQ3NDogc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0
dGluZ3M7CjE0NDc0OiBzdHJ1Y3QgcGlwZV9jdHg7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBlbmNv
ZGVyX2luaXRfZGF0YSB7CjE0NDc0OiAgZW51bSBjaGFubmVsX2lkIGNoYW5uZWw7CjE0NDc0OiAg
c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBjb25uZWN0b3I7CjE0NDc0OiAgZW51bSBocGRfc291
cmNlX2lkIGhwZF9zb3VyY2U7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0
X2lkIGVuY29kZXI7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBlbnVt
IHRyYW5zbWl0dGVyIHRyYW5zbWl0dGVyOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGVuY29kZXJfZmVhdHVyZV9zdXBwb3J0IHsKMTQ0NzQ6ICB1bmlvbiB7CjE0NDc0OiAgIHN0cnVj
dCB7CjE0NDc0OiAgICB1aW50MzJfdCBJU19IQlIyX0NBUEFCTEU6MTsKMTQ0NzQ6ICAgIHVpbnQz
Ml90IElTX0hCUjNfQ0FQQUJMRToxOwoxNDQ3NDogICAgdWludDMyX3QgSVNfVFBTM19DQVBBQkxF
OjE7CjE0NDc0OiAgICB1aW50MzJfdCBJU19UUFM0X0NBUEFCTEU6MTsKMTQ0NzQ6ICAgIHVpbnQz
Ml90IEhETUlfNkdCX0VOOjE7CjE0NDc0OiAgICB1aW50MzJfdCBEUF9JU19VU0JfQzoxOwoxNDQ3
NDogICB9IGJpdHM7CjE0NDc0OiAgIHVpbnQzMl90IHJhdzsKMTQ0NzQ6ICB9IGZsYWdzOwoxNDQ3
NDogCjE0NDc0OiAgZW51bSBkY19jb2xvcl9kZXB0aCBtYXhfaGRtaV9kZWVwX2NvbG9yOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBtYXhfaGRtaV9waXhlbF9jbG9jazsKMTQ0NzQ6ICBib29sIGhkbWlf
eWNiY3I0MjBfc3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgZHBfeWNiY3I0MjBfc3VwcG9ydGVkOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHBjZF9wc3JfY29uZmlndXJhdGlvbiB7CjE0
NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBFTkFCTEUgOiAxOwoxNDQ3NDog
ICB1bnNpZ25lZCBjaGFyIFRSQU5TTUlUVEVSX0FDVElWRV9JTl9QU1IgOiAxOwoxNDQ3NDogICB1
bnNpZ25lZCBjaGFyIENSQ19WRVJJRklDQVRJT04gOiAxOwoxNDQ3NDogICB1bnNpZ25lZCBjaGFy
IEZSQU1FX0NBUFRVUkVfSU5ESUNBVElPTiA6IDE7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWduZWQg
Y2hhciBMSU5FX0NBUFRVUkVfSU5ESUNBVElPTiA6IDE7CjE0NDc0OiAKMTQ0NzQ6ICAgdW5zaWdu
ZWQgY2hhciBJUlFfSFBEX1dJVEhfQ1JDX0VSUk9SIDogMTsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hh
ciBSRVNFUlZFRCA6IDI7CjE0NDc0OiAgfSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmF3
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gcHNyX2Vycm9yX3N0YXR1cyB7CjE0NDc0
OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdW5zaWduZWQgY2hhciBMSU5LX0NSQ19FUlJPUiA6MTsKMTQ0
NzQ6ICAgdW5zaWduZWQgY2hhciBSRkJfU1RPUkFHRV9FUlJPUiA6MTsKMTQ0NzQ6ICAgdW5zaWdu
ZWQgY2hhciBSRVNFUlZFRCA6NjsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdW5zaWduZWQgY2hh
ciByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBwc3Jfc2lua19wc3Jfc3RhdHVz
IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgU0lOS19TRUxGX1JFRlJF
U0hfU1RBVFVTIDozOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgUkVTRVJWRUQgOjU7CjE0NDc0OiAg
fSBiaXRzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGxpbmtfZW5jb2RlciB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGxpbmtfZW5jb2Rl
cl9mdW5jcyAqZnVuY3M7CjE0NDc0OiAgaW50MzJfdCBhdXhfY2hhbm5lbF9vZmZzZXQ7CjE0NDc0
OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0
X2lkIGlkOwoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yOwoxNDQ3
NDogIHVpbnQzMl90IG91dHB1dF9zaWduYWxzOwoxNDQ3NDogIGVudW0gZW5naW5lX2lkIHByZWZl
cnJlZF9lbmdpbmU7CjE0NDc0OiAgc3RydWN0IGVuY29kZXJfZmVhdHVyZV9zdXBwb3J0IGZlYXR1
cmVzOwoxNDQ3NDogIGVudW0gdHJhbnNtaXR0ZXIgdHJhbnNtaXR0ZXI7CjE0NDc0OiAgZW51bSBo
cGRfc291cmNlX2lkIGhwZF9zb3VyY2U7CjE0NDc0OiAgYm9vbCB1c2JjX2NvbWJvX3BoeTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaW5rX2VuY19zdGF0ZSB7CjE0NDc0OiAKMTQ0
NzQ6ICAgdWludDMyX3QgZHBoeV9mZWNfZW47CjE0NDc0OiAgIHVpbnQzMl90IGRwaHlfZmVjX3Jl
YWR5X3NoYWRvdzsKMTQ0NzQ6ICAgdWludDMyX3QgZHBoeV9mZWNfYWN0aXZlX3N0YXR1czsKMTQ0
NzQ6ICAgdWludDMyX3QgZHBfbGlua190cmFpbmluZ19jb21wbGV0ZTsKMTQ0NzQ6IAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxpbmtfZW5jb2Rlcl9mdW5jcyB7CjE0NDc0OiAgdm9p
ZCAoKnJlYWRfc3RhdGUpKAoxNDQ3NDogICAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLCBzdHJ1
Y3QgbGlua19lbmNfc3RhdGUgKnMpOwoxNDQ3NDogIGJvb2wgKCp2YWxpZGF0ZV9vdXRwdXRfd2l0
aF9zdHJlYW0pKAoxNDQ3NDogICBzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsIGNvbnN0IHN0cnVj
dCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAgdm9pZCAoKmh3X2luaXQpKHN0cnVj
dCBsaW5rX2VuY29kZXIgKmVuYyk7CjE0NDc0OiAgdm9pZCAoKnNldHVwKShzdHJ1Y3QgbGlua19l
bmNvZGVyICplbmMsCjE0NDc0OiAgIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKTsKMTQ0NzQ6ICB2
b2lkICgqZW5hYmxlX3RtZHNfb3V0cHV0KShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCjE0NDc0
OiAgIGVudW0gY2xvY2tfc291cmNlX2lkIGNsb2NrX3NvdXJjZSwKMTQ0NzQ6ICAgZW51bSBkY19j
b2xvcl9kZXB0aCBjb2xvcl9kZXB0aCwKMTQ0NzQ6ICAgZW51bSBzaWduYWxfdHlwZSBzaWduYWws
CjE0NDc0OiAgIHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX2Rw
X291dHB1dCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qg
ZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5ncywKMTQ0NzQ6ICAgZW51bSBjbG9ja19zb3Vy
Y2VfaWQgY2xvY2tfc291cmNlKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX2RwX21zdF9vdXRwdXQp
KHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX2xpbmtf
c2V0dGluZ3MgKmxpbmtfc2V0dGluZ3MsCjE0NDc0OiAgIGVudW0gY2xvY2tfc291cmNlX2lkIGNs
b2NrX3NvdXJjZSk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9sdmRzX291dHB1dCkoc3RydWN0IGxp
bmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBlbnVtIGNsb2NrX3NvdXJjZV9pZCBjbG9ja19zb3Vy
Y2UsCjE0NDc0OiAgIHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKMTQ0NzQ6ICB2b2lkICgqZGlzYWJs
ZV9vdXRwdXQpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmxpbmtfZW5jLAoxNDQ3NDogICBlbnVtIHNp
Z25hbF90eXBlIHNpZ25hbCk7CjE0NDc0OiAgdm9pZCAoKmRwX3NldF9sYW5lX3NldHRpbmdzKShz
dHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBsaW5rX3RyYWlu
aW5nX3NldHRpbmdzICpsaW5rX3NldHRpbmdzKTsKMTQ0NzQ6ICB2b2lkICgqZHBfc2V0X3BoeV9w
YXR0ZXJuKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBl
bmNvZGVyX3NldF9kcF9waHlfcGF0dGVybl9wYXJhbSAqcGFyYSk7CjE0NDc0OiAgdm9pZCAoKnVw
ZGF0ZV9tc3Rfc3RyZWFtX2FsbG9jYXRpb25fdGFibGUpKAoxNDQ3NDogICBzdHJ1Y3QgbGlua19l
bmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2Nh
dGlvbl90YWJsZSAqdGFibGUpOwoxNDQ3NDogIHZvaWQgKCpwc3JfcHJvZ3JhbV9kcF9kcGh5X2Zh
c3RfdHJhaW5pbmcpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgIGJvb2wgZXhp
dF9saW5rX3RyYWluaW5nX3JlcXVpcmVkKTsKMTQ0NzQ6ICB2b2lkICgqcHNyX3Byb2dyYW1fc2Vj
b25kYXJ5X3BhY2tldCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICAgIHVuc2ln
bmVkIGludCBzZHBfdHJhbnNtaXRfbGluZV9udW1fZGVhZGxpbmUpOwoxNDQ3NDogIHZvaWQgKCpj
b25uZWN0X2RpZ19iZV90b19mZSkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBl
bnVtIGVuZ2luZV9pZCBlbmdpbmUsCjE0NDc0OiAgIGJvb2wgY29ubmVjdCk7CjE0NDc0OiAgdm9p
ZCAoKmVuYWJsZV9ocGQpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYyk7CjE0NDc0OiAgdm9pZCAo
KmRpc2FibGVfaHBkKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwoxNDQ3NDogIGJvb2wgKCpp
c19kaWdfZW5hYmxlZCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgKCpnZXRfZGlnX2Zyb250ZW5kKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwoxNDQ3
NDogIHZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgbGlua19lbmNvZGVyICoqZW5jKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpmZWNfc2V0X2VuYWJsZSkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAox
NDQ3NDogICBib29sIGVuYWJsZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZmVjX3NldF9yZWFk
eSkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAoxNDQ3NDogICBib29sIHJlYWR5KTsKMTQ0NzQ6
IAoxNDQ3NDogIGJvb2wgKCpmZWNfaXNfYWN0aXZlKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMp
OwoxNDQ3NDogIGJvb2wgKCppc19pbl9hbHRfbW9kZSkgKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVu
Yyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZ2V0X21heF9saW5rX2NhcCkoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jLAoxNDQ3NDogICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0
aW5ncyk7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlICgqZ2V0X2RpZ19tb2RlKSgK
MTQ0NzQ6ICAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDMz
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVl
bmNlci5oIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV9zdGF0dXMuaCIgMQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3N0YXR1cy5oIgoxNDQ3NDogZW51
bSBkY19zdGF0dXMgewoxNDQ3NDogIERDX09LID0gMSwKMTQ0NzQ6IAoxNDQ3NDogIERDX05PX0NP
TlRST0xMRVJfUkVTT1VSQ0UgPSAyLAoxNDQ3NDogIERDX05PX1NUUkVBTV9FTkNfUkVTT1VSQ0Ug
PSAzLAoxNDQ3NDogIERDX05PX0NMT0NLX1NPVVJDRV9SRVNPVVJDRSA9IDQsCjE0NDc0OiAgRENf
RkFJTF9DT05UUk9MTEVSX1ZBTElEQVRFID0gNSwKMTQ0NzQ6ICBEQ19GQUlMX0VOQ19WQUxJREFU
RSA9IDYsCjE0NDc0OiAgRENfRkFJTF9BVFRBQ0hfU1VSRkFDRVMgPSA3LAoxNDQ3NDogIERDX0ZB
SUxfREVUQUNIX1NVUkZBQ0VTID0gOCwKMTQ0NzQ6ICBEQ19GQUlMX1NVUkZBQ0VfVkFMSURBVEUg
PSA5LAoxNDQ3NDogIERDX05PX0RQX0xJTktfQkFORFdJRFRIID0gMTAsCjE0NDc0OiAgRENfRVhD
RUVEX0RPTkdMRV9DQVAgPSAxMSwKMTQ0NzQ6ICBEQ19TVVJGQUNFX1BJWEVMX0ZPUk1BVF9VTlNV
UFBPUlRFRCA9IDEyLAoxNDQ3NDogIERDX0ZBSUxfQkFORFdJRFRIX1ZBTElEQVRFID0gMTMsCjE0
NDc0OiAgRENfRkFJTF9TQ0FMSU5HID0gMTQsCjE0NDc0OiAgRENfRkFJTF9EUF9MSU5LX1RSQUlO
SU5HID0gMTUsCjE0NDc0OiAgRENfRkFJTF9EU0NfVkFMSURBVEUgPSAxNiwKMTQ0NzQ6ICBEQ19O
T19EU0NfUkVTT1VSQ0UgPSAxNywKMTQ0NzQ6ICBEQ19GQUlMX1VOU1VQUE9SVEVEXzEgPSAxOCwK
MTQ0NzQ6ICBEQ19GQUlMX0NMS19FWENFRURfTUFYID0gMjEsCjE0NDc0OiAgRENfRkFJTF9DTEtf
QkVMT1dfTUlOID0gMjIsCjE0NDc0OiAgRENfRkFJTF9DTEtfQkVMT1dfQ0ZHX1JFUVVJUkVEID0g
MjMsCjE0NDc0OiAKMTQ0NzQ6ICBEQ19FUlJPUl9VTkVYUEVDVEVEID0gLTEKMTQ0NzQ6IH07CjE0
NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2h3X3NlcXVlbmNlci5oIiAyCjE0NDc0OiAKMTQ0NzQ6IGVudW0gdmxpbmVfc2VsZWN0IHsKMTQ0
NzQ6ICBWTElORTAsCjE0NDc0OiAgVkxJTkUxCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgcGlwZV9jdHg7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0OiBzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXR1czsKMTQ0NzQ6IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbzsKMTQ0NzQ6IHN0cnVj
dCBkY2h1Yl9pbml0X2RhdGE7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGljX3NjcmVlbl9wYXJhbXM7
CjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2VfcG9vbDsKMTQ0NzQ6IHN0cnVjdCBkY19waHlfYWRkcl9z
cGFjZV9jb25maWc7CjE0NDc0OiBzdHJ1Y3QgZGNfdmlydHVhbF9hZGRyX3NwYWNlX2NvbmZpZzsK
MTQ0NzQ6IHN0cnVjdCBkcHA7CjE0NDc0OiBzdHJ1Y3QgZGNlX2h3c2VxOwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIHsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCplZHBf
cG93ZXJfY29udHJvbCkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6
ICB2b2lkICgqZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSkoc3RydWN0IGRjX2xpbmsgKmxpbmssIGJv
b2wgcG93ZXJfdXApOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaW5pdF9odykoc3Ry
dWN0IGRjICpkYyk7CjE0NDc0OiAgdm9pZCAoKmVuYWJsZV9hY2NlbGVyYXRlZF9tb2RlKShzdHJ1
Y3QgZGMgKmRjLAoxNDQ3NDogICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKMTQ0NzQ6ICBl
bnVtIGRjX3N0YXR1cyAoKmFwcGx5X2N0eF90b19odykoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAg
IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAgdm9pZCAoKmRpc2FibGVfcGxhbmUp
KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZvaWQg
KCphcHBseV9jdHhfZm9yX3N1cmZhY2UpKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBjb25zdCBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgICBpbnQgbnVtX3BsYW5lcywg
c3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKMTQ0NzQ6ICB2b2lkICgqcHJvZ3JhbV9mcm9udF9l
bmRfZm9yX2N0eCkoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29u
dGV4dCk7CjE0NDc0OiAgdm9pZCAoKnVwZGF0ZV9wbGFuZV9hZGRyKShjb25zdCBzdHJ1Y3QgZGMg
KmRjLAoxNDQ3NDogICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CjE0NDc0OiAgdm9pZCAo
KnVwZGF0ZV9kY2h1Yikoc3RydWN0IGRjZV9od3NlcSAqaHdzLAoxNDQ3NDogICAgc3RydWN0IGRj
aHViX2luaXRfZGF0YSAqZGhfZGF0YSk7CjE0NDc0OiAgdm9pZCAoKndhaXRfZm9yX21wY2NfZGlz
Y29ubmVjdCkoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHN0cnVjdCByZXNvdXJjZV9wb29sICpy
ZXNfcG9vbCwKMTQ0NzQ6ICAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZv
aWQgKCpwcm9ncmFtX3RyaXBsZWJ1ZmZlcikoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAg
c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgYm9vbCBlbmFibGVUcmlwbGVCdWZmZXIpOwoxNDQ3
NDogIHZvaWQgKCp1cGRhdGVfcGVuZGluZ19zdGF0dXMpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9j
dHgpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqcGlwZV9jb250cm9sX2xvY2tfZ2xv
YmFsKShzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlLCBib29s
IGxvY2spOwoxNDQ3NDogIHZvaWQgKCpwaXBlX2NvbnRyb2xfbG9jaykoc3RydWN0IGRjICpkYywK
MTQ0NzQ6ICAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZSwgYm9vbCBsb2NrKTsKMTQ0NzQ6ICB2b2lk
ICgqc2V0X2ZsaXBfY29udHJvbF9nc2wpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCjE0NDc0
OiAgICBib29sIGZsaXBfaW1tZWRpYXRlKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KmdldF9wb3NpdGlvbikoc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMs
CjE0NDc0OiAgICBzdHJ1Y3QgY3J0Y19wb3NpdGlvbiAqcG9zaXRpb24pOwoxNDQ3NDogIGludCAo
KmdldF92dXBkYXRlX29mZnNldF9mcm9tX3ZzeW5jKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4
KTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX3Blcl9mcmFtZV9jcnRjX3Bvc2l0aW9uX3Jlc2V0KShz
dHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgaW50IGdyb3VwX3NpemUsIHN0cnVjdCBwaXBlX2N0eCAq
Z3JvdXBlZF9waXBlc1tdKTsKMTQ0NzQ6ICB2b2lkICgqZW5hYmxlX3RpbWluZ19zeW5jaHJvbml6
YXRpb24pKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBpbnQgZ3JvdXBfaW5kZXgsIGludCBncm91
cF9zaXplLAoxNDQ3NDogICAgc3RydWN0IHBpcGVfY3R4ICpncm91cGVkX3BpcGVzW10pOwoxNDQ3
NDogIHZvaWQgKCpzZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQpKHN0cnVjdCBkYyAqZGMsCjE0NDc0
OiAgICBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAoxNDQ3NDogICAgZW51bSB2bGluZV9zZWxl
Y3QgdmxpbmUpOwoxNDQ3NDogIHZvaWQgKCpzZXRfZHJyKShzdHJ1Y3QgcGlwZV9jdHggKipwaXBl
X2N0eCwgaW50IG51bV9waXBlcywKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCB2bWluLCB1bnNpZ25l
ZCBpbnQgdm1heCwKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCB2bWlkLCB1bnNpZ25lZCBpbnQgdm1p
ZF9mcmFtZV9udW1iZXIpOwoxNDQ3NDogIHZvaWQgKCpzZXRfc3RhdGljX3NjcmVlbl9jb250cm9s
KShzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKMTQ0NzQ6ICAgIGludCBudW1fcGlwZXMsCjE0
NDc0OiAgICBjb25zdCBzdHJ1Y3QgZGNfc3RhdGljX3NjcmVlbl9wYXJhbXMgKmV2ZW50cyk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCplbmFibGVfc3RyZWFtKShzdHJ1Y3QgcGlwZV9j
dHggKnBpcGVfY3R4KTsKMTQ0NzQ6ICB2b2lkICgqZGlzYWJsZV9zdHJlYW0pKHN0cnVjdCBwaXBl
X2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZvaWQgKCpibGFua19zdHJlYW0pKHN0cnVjdCBwaXBl
X2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogIHZvaWQgKCp1bmJsYW5rX3N0cmVhbSkoc3RydWN0IHBp
cGVfY3R4ICpwaXBlX2N0eCwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5r
X3NldHRpbmdzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnByZXBhcmVfYmFuZHdp
ZHRoKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogIGJv
b2wgKCp1cGRhdGVfYmFuZHdpZHRoKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNv
bnRleHQpOwoxNDQ3NDogIHZvaWQgKCpvcHRpbWl6ZV9iYW5kd2lkdGgpKHN0cnVjdCBkYyAqZGMs
IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpzZXRfYXZtdXRlKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSk7CjE0
NDc0OiAgdm9pZCAoKnNlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlKSgKMTQ0NzQ6ICAgIHN0cnVj
dCBwaXBlX2N0eCAqcGlwZV9jdHgsCjE0NDc0OiAgICBjb25zdCB1aW50OF90ICpjdXN0b21fc2Rw
X21lc3NhZ2UsCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgc2RwX21lc3NhZ2Vfc2l6ZSk7CjE0NDc0
OiAgdm9pZCAoKnVwZGF0ZV9pbmZvX2ZyYW1lKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsK
MTQ0NzQ6ICB2b2lkICgqc2V0X2RtZGF0YV9hdHRyaWJ1dGVzKShzdHJ1Y3QgcGlwZV9jdHggKnBp
cGUpOwoxNDQ3NDogIHZvaWQgKCpwcm9ncmFtX2RtZGF0YV9lbmdpbmUpKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwoxNDQ3NDogIGJvb2wgKCpkbWRhdGFfc3RhdHVzX2RvbmUpKHN0cnVjdCBw
aXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2N1
cnNvcl9wb3NpdGlvbikoc3RydWN0IHBpcGVfY3R4ICpwaXBlKTsKMTQ0NzQ6ICB2b2lkICgqc2V0
X2N1cnNvcl9hdHRyaWJ1dGUpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZSk7CjE0NDc0OiAgdm9pZCAo
KnNldF9jdXJzb3Jfc2RyX3doaXRlX2xldmVsKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGUpOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqcHJvZ3JhbV9nYW11dF9yZW1hcCkoc3RydWN0IHBp
cGVfY3R4ICpwaXBlX2N0eCk7CjE0NDc0OiAgdm9pZCAoKnByb2dyYW1fb3V0cHV0X2NzYykoc3Ry
dWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKMTQ0NzQ6ICAgIGVudW0gZGNf
Y29sb3Jfc3BhY2UgY29sb3JzcGFjZSwKMTQ0NzQ6ICAgIHVpbnQxNl90ICptYXRyaXgsIGludCBv
cHBfaWQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgKCppbml0X3N5c19jdHgpKHN0cnVj
dCBkY2VfaHdzZXEgKmh3cywKMTQ0NzQ6ICAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBzdHJ1
Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnICpwYV9jb25maWcpOwoxNDQ3NDogIHZvaWQgKCpp
bml0X3ZtX2N0eCkoc3RydWN0IGRjZV9od3NlcSAqaHdzLAoxNDQ3NDogICAgc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgIHN0cnVjdCBkY192aXJ0dWFsX2FkZHJfc3BhY2VfY29uZmlnICp2YV9jb25m
aWcsCjE0NDc0OiAgICBpbnQgdm1pZCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCp1
cGRhdGVfd3JpdGViYWNrKShzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgc3RydWN0IGRjX3dyaXRl
YmFja19pbmZvICp3Yl9pbmZvLAoxNDQ3NDogICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsK
MTQ0NzQ6ICB2b2lkICgqZW5hYmxlX3dyaXRlYmFjaykoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAg
IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbyAqd2JfaW5mbywKMTQ0NzQ6ICAgIHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCk7CjE0NDc0OiAgdm9pZCAoKmRpc2FibGVfd3JpdGViYWNrKShzdHJ1Y3Qg
ZGMgKmRjLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGR3Yl9waXBlX2luc3QpOwoxNDQ3NDogCjE0
NDc0OiAgYm9vbCAoKm1taHViYnViX3dhcm11cCkoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHVu
c2lnbmVkIGludCBudW1fZHdiLAoxNDQ3NDogICAgc3RydWN0IGRjX3dyaXRlYmFja19pbmZvICp3
Yl9pbmZvKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZW51bSBkY19zdGF0dXMgKCpzZXRfY2xv
Y2spKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlw
ZSwKMTQ0NzQ6ICAgIHVpbnQzMl90IGNsa19raHosIHVpbnQzMl90IHN0ZXBwaW5nKTsKMTQ0NzQ6
ICB2b2lkICgqZ2V0X2Nsb2NrKShzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xv
Y2tfdHlwZSwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19jbG9ja19jb25maWcgKmNsb2NrX2NmZyk7CjE0
NDc0OiAgdm9pZCAoKm9wdGltaXplX3B3cl9zdGF0ZSkoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0
NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAgdm9pZCAoKmV4aXRfb3B0
aW1pemVkX3B3cl9zdGF0ZSkoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIHN0cnVjdCBk
Y19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCplbmFibGVf
YXVkaW9fc3RyZWFtKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKMTQ0NzQ6ICB2b2lkICgq
ZGlzYWJsZV9hdWRpb19zdHJlYW0pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0dXBfc3RlcmVvKShzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4LCBzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmxv
Z19od19zdGF0ZSkoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX2xvZ19idWZmZXJfY3R4ICpsb2df
Y3R4KTsKMTQ0NzQ6ICB2b2lkICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgZGMgKmRjLCBjaGFyICpw
QnVmLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGJ1ZlNpemUsIHVuc2lnbmVkIGludCBtYXNrKTsK
MTQ0NzQ6ICB2b2lkICgqY2xlYXJfc3RhdHVzX2JpdHMpKHN0cnVjdCBkYyAqZGMsIHVuc2lnbmVk
IGludCBtYXNrKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB2b2lk
IGNvbG9yX3NwYWNlX3RvX2JsYWNrX2NvbG9yKAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkYyAqZGMs
CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcnNwYWNlLAoxNDQ3NDogIHN0cnVjdCB0
Z19jb2xvciAqYmxhY2tfY29sb3IpOwoxNDQ3NDogCjE0NDc0OiBib29sIGh3c3Nfd2FpdF9mb3Jf
YmxhbmtfY29tcGxldGUoCjE0NDc0OiAgIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CjE0
NDc0OiAKMTQ0NzQ6IGNvbnN0IHVpbnQxNl90ICpmaW5kX2NvbG9yX21hdHJpeCgKMTQ0NzQ6ICAg
ZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZSwKMTQ0NzQ6ICAgdWludDMyX3QgKmFycmF5
X3NpemUpOwoxNDQ3NDogIyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9jb21wcmVzc29yLmgiIDEKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29tcHJlc3Nvci5oIgoxNDQ3NDog
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9z
X3BhcnNlcl9pbnRlcmZhY2UuaCIgMQoxNDQ3NDogIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiCjE0NDc0
OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19iaW9z
X3R5cGVzLmgiIDEKMTQ0NzQ6ICMgNDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kY19iaW9zX3R5cGVzLmgiCjE0NDc0OiBzdHJ1Y3QgZGNfdmJpb3NfZnVuY3Mg
ewoxNDQ3NDogIHVpbnQ4X3QgKCpnZXRfY29ubmVjdG9yc19udW1iZXIpKHN0cnVjdCBkY19iaW9z
ICpiaW9zKTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgKCpnZXRf
Y29ubmVjdG9yX2lkKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHVp
bnQ4X3QgY29ubmVjdG9yX2luZGV4KTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmdldF9zcmNf
b2JqKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBncmFw
aGljc19vYmplY3RfaWQgb2JqZWN0X2lkLCB1aW50MzJfdCBpbmRleCwKMTQ0NzQ6ICAgc3RydWN0
IGdyYXBoaWNzX29iamVjdF9pZCAqc3JjX29iamVjdF9pZCk7CjE0NDc0OiAgZW51bSBicF9yZXN1
bHQgKCpnZXRfaTJjX2luZm8pKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqZGNiLAoxNDQ3NDog
ICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkLAoxNDQ3NDogICBzdHJ1Y3QgZ3JhcGhpY3Nf
b2JqZWN0X2kyY19pbmZvICppbmZvKTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmdldF9ocGRf
aW5mbykoCjE0NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgZ3Jh
cGhpY3Nfb2JqZWN0X2lkIGlkLAoxNDQ3NDogICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2hwZF9p
bmZvICppbmZvKTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmdldF9kZXZpY2VfdGFnKSgKMTQ0
NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBncmFwaGljc19vYmpl
Y3RfaWQgY29ubmVjdG9yX29iamVjdF9pZCwKMTQ0NzQ6ICAgdWludDMyX3QgZGV2aWNlX3RhZ19p
bmRleCwKMTQ0NzQ6ICAgc3RydWN0IGNvbm5lY3Rvcl9kZXZpY2VfdGFnX2luZm8gKmluZm8pOwox
NDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0X3NwcmVhZF9zcGVjdHJ1bV9pbmZvKSgKMTQ0NzQ6
ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIGVudW0gYXNfc2lnbmFsX3R5cGUgc2ln
bmFsLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCwKMTQ0NzQ6ICAgc3RydWN0IHNwcmVhZF9zcGVj
dHJ1bV9pbmZvICpzc19pbmZvKTsKMTQ0NzQ6ICB1aW50MzJfdCAoKmdldF9zc19lbnRyeV9udW1i
ZXIpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgZW51bSBhc19zaWdu
YWxfdHlwZSBzaWduYWwpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0X2VtYmVkZGVkX3Bh
bmVsX2luZm8pKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0
IGVtYmVkZGVkX3BhbmVsX2luZm8gKmluZm8pOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0
X2dwaW9fcGluX2luZm8pKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAg
dWludDMyX3QgZ3Bpb19pZCwKMTQ0NzQ6ICAgc3RydWN0IGdwaW9fcGluX2luZm8gKmluZm8pOwox
NDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZ2V0X2VuY29kZXJfY2FwX2luZm8pKAoxNDQ3NDogICBz
dHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBv
YmplY3RfaWQsCjE0NDc0OiAgIHN0cnVjdCBicF9lbmNvZGVyX2NhcF9pbmZvICppbmZvKTsKMTQ0
NzQ6IAoxNDQ3NDogIGJvb2wgKCppc19hY2NlbGVyYXRlZF9tb2RlKSgKMTQ0NzQ6ICAgc3RydWN0
IGRjX2Jpb3MgKmJpb3MpOwoxNDQ3NDogIHZvaWQgKCpzZXRfc2NyYXRjaF9jcml0aWNhbF9zdGF0
ZSkoCjE0NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBib29sIHN0YXRlKTsK
MTQ0NzQ6ICBib29sICgqaXNfZGV2aWNlX2lkX3N1cHBvcnRlZCkoCjE0NDc0OiAgIHN0cnVjdCBk
Y19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgZGV2aWNlX2lkIGlkKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKmVuY29kZXJfY29udHJvbCkoCjE0
NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgYnBfZW5jb2Rlcl9j
b250cm9sICpjbnRsKTsKMTQ0NzQ6ICBlbnVtIGJwX3Jlc3VsdCAoKnRyYW5zbWl0dGVyX2NvbnRy
b2wpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0IGJwX3Ry
YW5zbWl0dGVyX2NvbnRyb2wgKmNudGwpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqZW5hYmxl
X2NydGMpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgZW51bSBjb250
cm9sbGVyX2lkIGlkLAoxNDQ3NDogICBib29sIGVuYWJsZSk7CjE0NDc0OiAgZW51bSBicF9yZXN1
bHQgKCphZGp1c3RfcGl4ZWxfY2xvY2spKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywK
MTQ0NzQ6ICAgc3RydWN0IGJwX2FkanVzdF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJh
bXMpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqc2V0X3BpeGVsX2Nsb2NrKSgKMTQ0NzQ6ICAg
c3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBicF9waXhlbF9jbG9ja19wYXJh
bWV0ZXJzICpicF9wYXJhbXMpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqc2V0X2RjZV9jbG9j
aykoCjE0NDc0OiAgIHN0cnVjdCBkY19iaW9zICpiaW9zLAoxNDQ3NDogICBzdHJ1Y3QgYnBfc2V0
X2RjZV9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwoxNDQ3NDogIGVudW0gYnBfcmVzdWx0
ICgqZW5hYmxlX3NwcmVhZF9zcGVjdHJ1bV9vbl9wcGxsKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jp
b3MgKmJpb3MsCjE0NDc0OiAgIHN0cnVjdCBicF9zcHJlYWRfc3BlY3RydW1fcGFyYW1ldGVycyAq
YnBfcGFyYW1zLAoxNDQ3NDogICBib29sIGVuYWJsZSk7CjE0NDc0OiAgZW51bSBicF9yZXN1bHQg
KCpwcm9ncmFtX2NydGNfdGltaW5nKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCjE0
NDc0OiAgIHN0cnVjdCBicF9od19jcnRjX3RpbWluZ19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwox
NDQ3NDogIGVudW0gYnBfcmVzdWx0ICgqcHJvZ3JhbV9kaXNwbGF5X2VuZ2luZV9wbGwpKAoxNDQ3
NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6ICAgc3RydWN0IGJwX3BpeGVsX2Nsb2Nr
X3BhcmFtZXRlcnMgKmJwX3BhcmFtcyk7CjE0NDc0OiAgZW51bSBicF9yZXN1bHQgKCplbmFibGVf
ZGlzcF9wb3dlcl9nYXRpbmcpKAoxNDQ3NDogICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKMTQ0NzQ6
ICAgZW51bSBjb250cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQsCjE0NDc0OiAgIGVudW0gYnBfcGlw
ZV9jb250cm9sX2FjdGlvbiBhY3Rpb24pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmJpb3NfcGFy
c2VyX2Rlc3Ryb3kpKHN0cnVjdCBkY19iaW9zICoqZGNiKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0g
YnBfcmVzdWx0ICgqZ2V0X2JvYXJkX2xheW91dF9pbmZvKSgKMTQ0NzQ6ICAgc3RydWN0IGRjX2Jp
b3MgKmRjYiwKMTQ0NzQ6ICAgc3RydWN0IGJvYXJkX2xheW91dF9pbmZvICpib2FyZF9sYXlvdXRf
aW5mbyk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYmlvc19yZWdpc3RlcnMgewox
NDQ3NDogIHVpbnQzMl90IEJJT1NfU0NSQVRDSF8zOwoxNDQ3NDogIHVpbnQzMl90IEJJT1NfU0NS
QVRDSF82OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2Jpb3MgewoxNDQ3NDog
IGNvbnN0IHN0cnVjdCBkY192Ymlvc19mdW5jcyAqZnVuY3M7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
OF90ICpiaW9zOwoxNDQ3NDogIHVpbnQzMl90IGJpb3Nfc2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogIHVp
bnQ4X3QgKmJpb3NfbG9jYWxfaW1hZ2U7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBiaW9zX3JlZ2lzdGVycyAqcmVnczsKMTQ0NzQ6
ICBzdHJ1Y3QgaW50ZWdyYXRlZF9pbmZvICppbnRlZ3JhdGVkX2luZm87CjE0NDc0OiAgc3RydWN0
IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbzsKMTQ0NzQ6ICBib29sIGZ3X2luZm9fdmFsaWQ7CjE0
NDc0OiB9OwoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGJpb3NfcGFyc2VyOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYnBfaW5pdF9kYXRhIHsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVpbnQ4X3QgKmJpb3M7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfYmlvcyAqZGFsX2Jpb3NfcGFyc2VyX2NyZWF0
ZSgKMTQ0NzQ6ICBzdHJ1Y3QgYnBfaW5pdF9kYXRhICppbml0LAoxNDQ3NDogIGVudW0gZGNlX3Zl
cnNpb24gZGNlX3ZlcnNpb24pOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRhbF9iaW9zX3BhcnNlcl9k
ZXN0cm95KHN0cnVjdCBkY19iaW9zICoqZGNiKTsKMTQ0NzQ6ICMgMzEgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29tcHJlc3Nvci5oIiAyCjE0NDc0OiAK
MTQ0NzQ6IGVudW0gZmJjX2NvbXByZXNzX3JhdGlvIHsKMTQ0NzQ6ICBGQkNfQ09NUFJFU1NfUkFU
SU9fSU5WQUxJRCA9IDAsCjE0NDc0OiAgRkJDX0NPTVBSRVNTX1JBVElPXzFUTzEgPSAxLAoxNDQ3
NDogIEZCQ19DT01QUkVTU19SQVRJT18yVE8xID0gMiwKMTQ0NzQ6ICBGQkNfQ09NUFJFU1NfUkFU
SU9fNFRPMSA9IDQsCjE0NDc0OiAgRkJDX0NPTVBSRVNTX1JBVElPXzhUTzEgPSA4LAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZmJjX3BoeXNpY2FsX2FkZHJlc3MgewoxNDQ3NDogIHN0
cnVjdCB7CjE0NDc0OiAgIHVpbnQzMl90IGxvd19wYXJ0OwoxNDQ3NDogICBpbnQzMl90IGhpZ2hf
cGFydDsKMTQ0NzQ6ICB9IGFkZHI7CjE0NDc0OiAgdWludDY0X3QgcXVhZF9wYXJ0OwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvbXByX2FkZHJfYW5kX3BpdGNoX3BhcmFtcyB7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBpbnN0OwoxNDQ3NDogIHVpbnQzMl90IHNvdXJjZV92aWV3
X3dpZHRoOwoxNDQ3NDogIHVpbnQzMl90IHNvdXJjZV92aWV3X2hlaWdodDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZmJjX2h3X21heF9yZXNvbHV0aW9uX3N1cHBvcnRlZCB7CjE0NDc0
OiAgRkJDX01BWF9YID0gMzg0MCwKMTQ0NzQ6ICBGQkNfTUFYX1kgPSAyNDAwLAoxNDQ3NDogIEZC
Q19NQVhfWF9TRyA9IDE5MjAsCjE0NDc0OiAgRkJDX01BWF9ZX1NHID0gMTA4MCwKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjb21wcmVzc29yOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
Y29tcHJlc3Nvcl9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqcG93ZXJfdXBfZmJjKShz
dHJ1Y3QgY29tcHJlc3NvciAqY3ApOwoxNDQ3NDogIHZvaWQgKCplbmFibGVfZmJjKShzdHJ1Y3Qg
Y29tcHJlc3NvciAqY3AsCjE0NDc0OiAgIHN0cnVjdCBjb21wcl9hZGRyX2FuZF9waXRjaF9wYXJh
bXMgKnBhcmFtcyk7CjE0NDc0OiAgdm9pZCAoKmRpc2FibGVfZmJjKShzdHJ1Y3QgY29tcHJlc3Nv
ciAqY3ApOwoxNDQ3NDogIHZvaWQgKCpzZXRfZmJjX2ludmFsaWRhdGlvbl90cmlnZ2Vycykoc3Ry
dWN0IGNvbXByZXNzb3IgKmNwLAoxNDQ3NDogICB1aW50MzJfdCBmYmNfdHJpZ2dlcik7CjE0NDc0
OiAgdm9pZCAoKnN1cmZhY2VfYWRkcmVzc19hbmRfcGl0Y2gpKAoxNDQ3NDogICBzdHJ1Y3QgY29t
cHJlc3NvciAqY3AsCjE0NDc0OiAgIHN0cnVjdCBjb21wcl9hZGRyX2FuZF9waXRjaF9wYXJhbXMg
KnBhcmFtcyk7CjE0NDc0OiAgYm9vbCAoKmlzX2ZiY19lbmFibGVkX2luX2h3KShzdHJ1Y3QgY29t
cHJlc3NvciAqY3AsCjE0NDc0OiAgIHVpbnQzMl90ICpmYmNfbWFwcGVkX2NydGNfaWQpOwoxNDQ3
NDogfTsKMTQ0NzQ6IHN0cnVjdCBjb21wcmVzc29yIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgYXR0YWNoZWRfaW5zdDsKMTQ0NzQ6ICBi
b29sIGlzX2VuYWJsZWQ7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGNvbXByZXNzb3JfZnVuY3MgKmZ1
bmNzOwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgdWludDMyX3QgcmF3OwoxNDQ3NDogICBzdHJ1
Y3QgewoxNDQ3NDogICAgdWludDMyX3QgRkJDX1NVUFBPUlQ6MTsKMTQ0NzQ6ICAgIHVpbnQzMl90
IEZCX1BPT0w6MTsKMTQ0NzQ6ICAgIHVpbnQzMl90IERZTkFNSUNfQUxMT0M6MTsKMTQ0NzQ6ICAg
IHVpbnQzMl90IExQVF9TVVBQT1JUOjE7CjE0NDc0OiAgICB1aW50MzJfdCBMUFRfTUNfQ09ORklH
OjE7CjE0NDc0OiAgICB1aW50MzJfdCBEVU1NWV9CQUNLRU5EOjE7CjE0NDc0OiAgICB1aW50MzJf
dCBDTEtfR0FUSU5HX0RJU0FCTEVEOjE7CjE0NDc0OiAKMTQ0NzQ6ICAgfSBiaXRzOwoxNDQ3NDog
IH0gb3B0aW9uczsKMTQ0NzQ6IAoxNDQ3NDogIHVuaW9uIGZiY19waHlzaWNhbF9hZGRyZXNzIGNv
bXByX3N1cmZhY2VfYWRkcmVzczsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGVtYmVkZGVkX3Bh
bmVsX2hfc2l6ZTsKMTQ0NzQ6ICB1aW50MzJfdCBlbWJlZGRlZF9wYW5lbF92X3NpemU7CjE0NDc0
OiAgdWludDMyX3QgbWVtb3J5X2J1c193aWR0aDsKMTQ0NzQ6ICB1aW50MzJfdCBiYW5rc19udW07
CjE0NDc0OiAgdWludDMyX3QgcmF3X3NpemU7CjE0NDc0OiAgdWludDMyX3QgY2hhbm5lbF9pbnRl
cmxlYXZlX3NpemU7CjE0NDc0OiAgdWludDMyX3QgZHJhbV9jaGFubmVsc19udW07CjE0NDc0OiAK
MTQ0NzQ6ICB1aW50MzJfdCBhbGxvY2F0ZWRfc2l6ZTsKMTQ0NzQ6ICB1aW50MzJfdCBwcmVmZXJy
ZWRfcmVxdWVzdGVkX3NpemU7CjE0NDc0OiAgdWludDMyX3QgbHB0X2NoYW5uZWxzX251bTsKMTQ0
NzQ6ICBlbnVtIGZiY19jb21wcmVzc19yYXRpbyBtaW5fY29tcHJlc3NfcmF0aW87CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZmJjX2lucHV0X2luZm8gewoxNDQ3NDogIGJvb2wgZHlu
YW1pY19mYmNfYnVmZmVyX2FsbG9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzb3VyY2Vfdmlld193
aWR0aDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc291cmNlX3ZpZXdfaGVpZ2h0OwoxNDQ3NDogIHVu
c2lnbmVkIGludCBudW1fb2ZfYWN0aXZlX3RhcmdldHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBmYmNfcmVxdWVzdGVkX2NvbXByZXNzZWRfc2l6ZSB7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHByZWZlcnJlZF9zaXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBwcmVmZXJy
ZWRfc2l6ZV9hbGlnbm1lbnQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1pbl9zaXplOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBtaW5fc2l6ZV9hbGlnbm1lbnQ7CjE0NDc0OiAgdW5pb24gewoxNDQ3NDog
ICBzdHJ1Y3QgewoxNDQ3NDogCjE0NDc0OiAgICB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX211c3Rf
YmVfZnJhbWVidWZmZXJfcG9vbCA6IDE7CjE0NDc0OiAKMTQ0NzQ6ICAgIHVuc2lnbmVkIGludCBt
aW5fbXVzdF9iZV9mcmFtZWJ1ZmZlcl9wb29sIDogMTsKMTQ0NzQ6ICAgfSBiaXRzOwoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CjE0NDc0OiAgfTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM5ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgoxNDQ3NDog
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Rt
Y3UuaCIgMQoxNDQ3NDogIyAyOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9ody9kbWN1LmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIiAxCjE0NDc0OiAjIDI5ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2RtY3UuaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkbWN1X3N0YXRlIHsKMTQ0NzQ6ICBETUNVX1VOTE9BREVEID0gMCwKMTQ0NzQ6ICBETUNV
X0xPQURFRF9VTklOSVRJQUxJWkVEID0gMSwKMTQ0NzQ6ICBETUNVX1JVTk5JTkcgPSAyLAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRtY3VfdmVyc2lvbiB7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGludGVyZmFjZV92ZXJzaW9uOwoxNDQ3NDogIHVuc2lnbmVkIGludCBhYm1fdmVyc2lv
bjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcHNyX3ZlcnNpb247CjE0NDc0OiAgdW5zaWduZWQgaW50
IGJ1aWxkX3ZlcnNpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1jdSB7CjE0
NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZG1jdV9m
dW5jcyAqZnVuY3M7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRtY3Vfc3RhdGUgZG1jdV9zdGF0ZTsK
MTQ0NzQ6ICBzdHJ1Y3QgZG1jdV92ZXJzaW9uIGRtY3VfdmVyc2lvbjsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY2FjaGVkX3dhaXRfbG9vcF9udW1iZXI7CjE0NDc0OiAgdWludDMyX3QgcHNwX3ZlcnNp
b247CjE0NDc0OiAgYm9vbCBhdXRvX2xvYWRfZG1jdTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkbWN1X2Z1bmNzIHsKMTQ0NzQ6ICBib29sICgqZG1jdV9pbml0KShzdHJ1Y3QgZG1j
dSAqZG1jdSk7CjE0NDc0OiAgYm9vbCAoKmxvYWRfaXJhbSkoc3RydWN0IGRtY3UgKmRtY3UsCjE0
NDc0OiAgICB1bnNpZ25lZCBpbnQgc3RhcnRfb2Zmc2V0LAoxNDQ3NDogICAgY29uc3QgY2hhciAq
c3JjLAoxNDQ3NDogICAgdW5zaWduZWQgaW50IGJ5dGVzKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Bz
cl9lbmFibGUpKHN0cnVjdCBkbWN1ICpkbWN1LCBib29sIGVuYWJsZSwgYm9vbCB3YWl0KTsKMTQ0
NzQ6ICBib29sICgqc2V0dXBfcHNyKShzdHJ1Y3QgZG1jdSAqZG1jdSwKMTQ0NzQ6ICAgIHN0cnVj
dCBkY19saW5rICpsaW5rLAoxNDQ3NDogICAgc3RydWN0IHBzcl9jb250ZXh0ICpwc3JfY29udGV4
dCk7CjE0NDc0OiAgdm9pZCAoKmdldF9wc3Jfc3RhdGUpKHN0cnVjdCBkbWN1ICpkbWN1LCB1aW50
MzJfdCAqcHNyX3N0YXRlKTsKMTQ0NzQ6ICB2b2lkICgqc2V0X3Bzcl93YWl0X2xvb3ApKHN0cnVj
dCBkbWN1ICpkbWN1LAoxNDQ3NDogICAgdW5zaWduZWQgaW50IHdhaXRfbG9vcF9udW1iZXIpOwox
NDQ3NDogIHZvaWQgKCpnZXRfcHNyX3dhaXRfbG9vcCkoc3RydWN0IGRtY3UgKmRtY3UsCjE0NDc0
OiAgICB1bnNpZ25lZCBpbnQgKnBzcl93YWl0X2xvb3BfbnVtYmVyKTsKMTQ0NzQ6ICBib29sICgq
aXNfZG1jdV9pbml0aWFsaXplZCkoc3RydWN0IGRtY3UgKmRtY3UpOwoxNDQ3NDogIGJvb2wgKCps
b2NrX3BoeSkoc3RydWN0IGRtY3UgKmRtY3UpOwoxNDQ3NDogIGJvb2wgKCp1bmxvY2tfcGh5KShz
dHJ1Y3QgZG1jdSAqZG1jdSk7CjE0NDc0OiB9OwoxNDQ3NDogIyA0MCAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgi
IDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9kbWwvZGlzcGxheV9tb2RlX2xpYi5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2RtbF9jb21tb25fZGVmcy5oIiAxCjE0NDc0OiAj
IDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2RtbF9j
b21tb25fZGVmcy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZG1sL2RjX2ZlYXR1cmVzLmgiIDEKMTQ0NzQ6ICMgMzEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLmgiIDIK
MTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Rt
bC9kaXNwbGF5X21vZGVfc3RydWN0cy5oIiAxCjE0NDc0OiAjIDMwICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiCjE0
NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV92b2x0YWdlX3NjYWxpbmdfc3Qgdm9sdGFnZV9z
Y2FsaW5nX3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2Jv
eF9zdCBzb2NfYm91bmRpbmdfYm94X3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
aXBfcGFyYW1zX3N0IGlwX3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBp
X2Rpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IGRpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1z
X3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9vdXRwdXRfcGFyYW1z
X3N0IGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3Nf
ZHBpX3NjYWxlcl9yYXRpb19kZXB0aF9zdCBzY2FsZXJfcmF0aW9fZGVwdGhfc3Q7CjE0NDc0OiB0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9zY2FsZXJfdGFwc19zdCBzY2FsZXJfdGFwc19zdDsKMTQ0
NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCBk
aXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2Rw
aV9kaXNwbGF5X3BpcGVfcGFyYW1zX3N0IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3Q7CjE0NDc0OiB0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2Nsb2Nrc19hbmRfY2ZnX3N0IGRpc3BsYXlf
Y2xvY2tzX2FuZF9jZmdfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdDsKMTQ0NzQ6IHR5
cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9taXNjX3BhcmFtc19zdCBkaXNw
bGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2Rw
aV9kaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCBkaXNwbGF5X2RhdGFfcnFfc2l6aW5n
X3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9y
cV9kbGdfcGFyYW1zX3N0IGRpc3BsYXlfZGF0YV9ycV9kbGdfcGFyYW1zX3N0OwoxNDQ3NDogdHlw
ZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9kbGdfcGFyYW1zX3N0IGRpc3BsYXlfcnFf
ZGxnX3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFf
c2l6aW5nX3BhcmFtc19zdCBkaXNwbGF5X3JxX3NpemluZ19wYXJhbXNfc3Q7CjE0NDc0OiB0eXBl
ZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX21pc2NfcGFyYW1zX3N0IGRpc3BsYXlfcnFf
bWlzY19wYXJhbXNfc3Q7CjE0NDc0OiB0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3Jx
X3BhcmFtc19zdCBkaXNwbGF5X3JxX3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92
Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgZGlzcGxheV9kbGdfcmVnc19zdDsKMTQ0NzQ6IHR5
cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgZGlzcGxheV90dHVfcmVn
c19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9yZWdz
X3N0IGRpc3BsYXlfZGF0YV9ycV9yZWdzX3N0OwoxNDQ3NDogdHlwZWRlZiBzdHJ1Y3QgX3Zjc19k
cGlfZGlzcGxheV9ycV9yZWdzX3N0IGRpc3BsYXlfcnFfcmVnc19zdDsKMTQ0NzQ6IHR5cGVkZWYg
c3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3N5c19wYXJhbXNfc3QgZGlzcGxheV9kbGdfc3lz
X3BhcmFtc19zdDsKMTQ0NzQ6IHR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfYXJiX3Bh
cmFtc19zdCBkaXNwbGF5X2FyYl9wYXJhbXNfc3Q7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfdmNz
X2RwaV92b2x0YWdlX3NjYWxpbmdfc3QgewoxNDQ3NDogIGludCBzdGF0ZTsKMTQ0NzQ6ICBkb3Vi
bGUgZHNjY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgZGNmY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUg
c29jY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgcGh5Y2xrX2QxOF9taHo7CjE0NDc0OiAgZG91Ymxl
IGRyYW1fc3BlZWRfbXRzOwoxNDQ3NDogIGRvdWJsZSBmYWJyaWNjbGtfbWh6OwoxNDQ3NDogIGRv
dWJsZSBkaXNwY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgcGh5Y2xrX21oejsKMTQ0NzQ6ICBkb3Vi
bGUgZHBwY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgZHRiY2xrX21oejsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9zb2NfYm91bmRpbmdfYm94X3N0IHsKMTQ0NzQ6ICBk
b3VibGUgc3JfZXhpdF90aW1lX3VzOwoxNDQ3NDogIGRvdWJsZSBzcl9lbnRlcl9wbHVzX2V4aXRf
dGltZV91czsKMTQ0NzQ6ICBkb3VibGUgdXJnZW50X2xhdGVuY3lfdXM7CjE0NDc0OiAgZG91Ymxl
IHVyZ2VudF9sYXRlbmN5X3BpeGVsX2RhdGFfb25seV91czsKMTQ0NzQ6ICBkb3VibGUgdXJnZW50
X2xhdGVuY3lfcGl4ZWxfbWl4ZWRfd2l0aF92bV9kYXRhX3VzOwoxNDQ3NDogIGRvdWJsZSB1cmdl
bnRfbGF0ZW5jeV92bV9kYXRhX29ubHlfdXM7CjE0NDc0OiAgZG91YmxlIHdyaXRlYmFja19sYXRl
bmN5X3VzOwoxNDQ3NDogIGRvdWJsZSBpZGVhbF9kcmFtX2J3X2FmdGVyX3VyZ2VudF9wZXJjZW50
OwoxNDQ3NDogIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVs
X29ubHk7CjE0NDc0OiAgZG91YmxlIHBjdF9pZGVhbF9kcmFtX3NkcF9id19hZnRlcl91cmdlbnRf
cGl4ZWxfYW5kX3ZtOwoxNDQ3NDogIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9zZHBfYndfYWZ0ZXJf
dXJnZW50X3ZtX29ubHk7CjE0NDc0OiAgZG91YmxlIG1heF9hdmdfc2RwX2J3X3VzZV9ub3JtYWxf
cGVyY2VudDsKMTQ0NzQ6ICBkb3VibGUgbWF4X2F2Z19kcmFtX2J3X3VzZV9ub3JtYWxfcGVyY2Vu
dDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X3JlcXVlc3Rfc2l6ZV9ieXRlczsKMTQ0NzQ6ICBk
b3VibGUgZG93bnNwcmVhZF9wZXJjZW50OwoxNDQ3NDogIGRvdWJsZSBkcmFtX3BhZ2Vfb3Blbl90
aW1lX25zOwoxNDQ3NDogIGRvdWJsZSBkcmFtX3J3X3R1cm5hcm91bmRfdGltZV9uczsKMTQ0NzQ6
ICBkb3VibGUgZHJhbV9yZXR1cm5fYnVmZmVyX3Blcl9jaGFubmVsX2J5dGVzOwoxNDQ3NDogIGRv
dWJsZSBkcmFtX2NoYW5uZWxfd2lkdGhfYnl0ZXM7CjE0NDc0OiAgZG91YmxlIGZhYnJpY19kYXRh
cGF0aF90b19kY25fZGF0YV9yZXR1cm5fYnl0ZXM7CjE0NDc0OiAgZG91YmxlIGRjbl9kb3duc3By
ZWFkX3BlcmNlbnQ7CjE0NDc0OiAgZG91YmxlIGRpc3BjbGtfZHBwY2xrX3Zjb19zcGVlZF9taHo7
CjE0NDc0OiAgZG91YmxlIGRmc192Y29fcGVyaW9kX3BzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB1
cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9waXhlbF9vbmx5X2J5dGVzOwox
NDQ3NDogIHVuc2lnbmVkIGludCB1cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5l
bF9waXhlbF9hbmRfdm1fYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHVyZ2VudF9vdXRfb2Zf
b3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHJvdW5kX3RyaXBfcGluZ19sYXRlbmN5X2RjZmNsa19jeWNsZXM7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX2J5dGVzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBjaGFubmVsX2ludGVybGVhdmVfYnl0ZXM7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG51bV9iYW5rczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX2NoYW5zOwoxNDQ3NDog
IHVuc2lnbmVkIGludCB2bW1fcGFnZV9zaXplX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBo
b3N0dm1fbWluX3BhZ2Vfc2l6ZV9ieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZ3B1dm1fbWlu
X3BhZ2Vfc2l6ZV9ieXRlczsKMTQ0NzQ6ICBkb3VibGUgZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5j
eV91czsKMTQ0NzQ6ICBkb3VibGUgZHVtbXlfcHN0YXRlX2xhdGVuY3lfdXM7CjE0NDc0OiAgZG91
YmxlIHdyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV9sYXRlbmN5X3VzOwoxNDQ3NDogIHVuc2ln
bmVkIGludCByZXR1cm5fYnVzX3dpZHRoX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2b2x0
YWdlX292ZXJyaWRlOwoxNDQ3NDogIGRvdWJsZSB4ZmNfYnVzX3RyYW5zcG9ydF90aW1lX3VzOwox
NDQ3NDogIGRvdWJsZSB4ZmNfeGJ1Zl9sYXRlbmN5X3RvbGVyYW5jZV91czsKMTQ0NzQ6ICBpbnQg
dXNlX3VyZ2VudF9idXJzdF9idzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX3N0YXRlczsKMTQ0
NzQ6ICBzdHJ1Y3QgX3Zjc19kcGlfdm9sdGFnZV9zY2FsaW5nX3N0IGNsb2NrX2xpbWl0c1s4XTsK
MTQ0NzQ6ICBib29sIGRvX3VyZ2VudF9sYXRlbmN5X2FkanVzdG1lbnQ7CjE0NDc0OiAgZG91Ymxl
IHVyZ2VudF9sYXRlbmN5X2FkanVzdG1lbnRfZmFicmljX2Nsb2NrX2NvbXBvbmVudF91czsKMTQ0
NzQ6ICBkb3VibGUgdXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudF9mYWJyaWNfY2xvY2tfcmVmZXJl
bmNlX21oejsKMTQ0NzQ6ICBib29sIGRpc2FibGVfZHJhbV9jbG9ja19jaGFuZ2VfdmFjdGl2ZV9z
dXBwb3J0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92Y3NfZHBpX2lwX3BhcmFt
c19zdCB7CjE0NDc0OiAgYm9vbCBncHV2bV9lbmFibGU7CjE0NDc0OiAgYm9vbCBob3N0dm1fZW5h
YmxlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBncHV2bV9tYXhfcGFnZV90YWJsZV9sZXZlbHM7CjE0
NDc0OiAgdW5zaWduZWQgaW50IGhvc3R2bV9tYXhfcGFnZV90YWJsZV9sZXZlbHM7CjE0NDc0OiAg
dW5zaWduZWQgaW50IGhvc3R2bV9jYWNoZWRfcGFnZV90YWJsZV9sZXZlbHM7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHB0ZV9ncm91cF9zaXplX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXhf
aW50ZXJfZGNuX3RpbGVfcmVwZWF0ZXJzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fZHNjOwox
NDQ3NDogIHVuc2lnbmVkIGludCBvZG1fY2FwYWJsZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcm9i
X2J1ZmZlcl9zaXplX2tieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGV0X2J1ZmZlcl9zaXpl
X2tieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHB0ZV9idWZmZXJfc2l6ZV9pbl9wdGVfcmVx
c19sdW1hOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX2J1ZmZlcl9zaXplX2luX3B0ZV9yZXFz
X2Nocm9tYTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcGRlX3Byb2NfYnVmZmVyX3NpemVfNjRrX3Jl
cXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwcF9vdXRwdXRfYnVmZmVyX3BpeGVsczsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgb3BwX291dHB1dF9idWZmZXJfbGluZXM7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHBpeGVsX2NodW5rX3NpemVfa2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcHRlX2Vu
YWJsZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcHRlX2NodW5rX3NpemVfa2J5dGVzOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBtZXRhX2NodW5rX3NpemVfa2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCB3cml0ZWJhY2tfY2h1bmtfc2l6ZV9rYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IGxpbmVf
YnVmZmVyX3NpemVfYml0czsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X2xpbmVfYnVmZmVyX2xp
bmVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbHVtYV9idWZmZXJfc2l6ZV9rYnl0
ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdyaXRlYmFja19jaHJvbWFfYnVmZmVyX3NpemVfa2J5
dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfY2hyb21hX2xpbmVfYnVmZmVyX3dp
ZHRoX3BpeGVsczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfaW50ZXJm
YWNlX2J1ZmZlcl9zaXplX2tieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2xp
bmVfYnVmZmVyX2J1ZmZlcl9zaXplOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHdyaXRl
YmFja18xMGJwYzQyMF9zdXBwb3J0ZWQ7CjE0NDc0OiAgZG91YmxlIHdyaXRlYmFja19tYXhfaHNj
bF9yYXRpbzsKMTQ0NzQ6ICBkb3VibGUgd3JpdGViYWNrX21heF92c2NsX3JhdGlvOwoxNDQ3NDog
IGRvdWJsZSB3cml0ZWJhY2tfbWluX2hzY2xfcmF0aW87CjE0NDc0OiAgZG91YmxlIHdyaXRlYmFj
a19taW5fdnNjbF9yYXRpbzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX21heF9oc2Ns
X3RhcHM7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdyaXRlYmFja19tYXhfdnNjbF90YXBzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbGluZV9idWZmZXJfbHVtYV9idWZmZXJfc2l6ZTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2xpbmVfYnVmZmVyX2Nocm9tYV9idWZmZXJf
c2l6ZTsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXhfcGFnZV90YWJsZV9sZXZlbHM7
CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF9udW1fZHBwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBt
YXhfbnVtX290ZzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY3Vyc29yX2NodW5rX3NpemU7CjE0NDc0
OiAgdW5zaWduZWQgaW50IGN1cnNvcl9idWZmZXJfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
bWF4X251bV93YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X2RjaHViX3BzY2xfYndfcGl4X3Bl
cl9jbGs7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF9wc2NsX2xiX2J3X3BpeF9wZXJfY2xrOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtYXhfbGJfdnNjbF9id19waXhfcGVyX2NsazsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbWF4X3ZzY2xfaHNjbF9id19waXhfcGVyX2NsazsKMTQ0NzQ6ICBkb3VibGUg
bWF4X2hzY2xfcmF0aW87CjE0NDc0OiAgZG91YmxlIG1heF92c2NsX3JhdGlvOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBoc2NsX211bHRzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2c2NsX211bHRzOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtYXhfaHNjbF90YXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBt
YXhfdnNjbF90YXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB4ZmNfc3VwcG9ydGVkOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBwdG9pX3N1cHBvcnRlZDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZ2Z4N19j
b21wYXRfdGlsaW5nX3N1cHBvcnRlZDsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgb2RtX2NvbWJpbmVf
NHRvMV9zdXBwb3J0ZWQ7CjE0NDc0OiAgYm9vbCBkeW5hbWljX21ldGFkYXRhX3ZtX2VuYWJsZWQ7
CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF9udW1faGRtaV9mcmxfb3V0cHV0czsKMTQ0NzQ6IAox
NDQ3NDogIHVuc2lnbmVkIGludCB4ZmNfZmlsbF9jb25zdGFudF9ieXRlczsKMTQ0NzQ6ICBkb3Vi
bGUgZGlzcGNsa19yYW1wX21hcmdpbl9wZXJjZW50OwoxNDQ3NDogIGRvdWJsZSB4ZmNfZmlsbF9i
d19vdmVyaGVhZF9wZXJjZW50OwoxNDQ3NDogIGRvdWJsZSB1bmRlcnNjYW5fZmFjdG9yOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBtaW5fdmJsYW5rX2xpbmVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
cHBjbGtfZGVsYXlfc3VidG90YWw7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRpc3BjbGtfZGVsYXlf
c3VidG90YWw7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRjZmNsa19jc3RhdGVfbGF0ZW5jeTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3NjbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZHBwY2xrX2RlbGF5X3NjbF9sYl9vbmx5OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHBjbGtfZGVs
YXlfY252Y19mb3JtYXR0ZXI7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwcGNsa19kZWxheV9jbnZj
X2N1cnNvcjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwox
NDQ3NDogIHVuc2lnbmVkIGludCBsaW5lX2J1ZmZlcl9maXhlZF9icHA7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGRjY19zdXBwb3J0ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgSXNMaW5l
QnVmZmVyQnBwRml4ZWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IExpbmVCdWZmZXJGaXhlZEJwcDsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2FuX3ZzdGFydHVwX2xpbmVzX2V4Y2VlZF92c3luY19wbHVz
X2JhY2tfcG9yY2hfbGluZXNfbWludXNfb25lOwoxNDQ3NDogIHVuc2lnbmVkIGludCBidWdfZm9y
Y2luZ19MQ19yZXFfc2FtZV9zaXplX2ZpeGVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IF92Y3NfZHBpX2Rpc3BsYXlfeGZjX3BhcmFtc19zdCB7CjE0NDc0OiAgZG91YmxlIHhmY190
c2x2X3ZyZWFkeV9vZmZzZXRfdXM7CjE0NDc0OiAgZG91YmxlIHhmY190c2x2X3Z1cGRhdGVfd2lk
dGhfdXM7CjE0NDc0OiAgZG91YmxlIHhmY190c2x2X3Z1cGRhdGVfb2Zmc2V0X3VzOwoxNDQ3NDog
IGludCB4ZmNfc2x2X2NodW5rX3NpemVfYnl0ZXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgewoxNDQ3NDogIGlu
dCBzb3VyY2VfZm9ybWF0OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgZGNjOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkY2NfcmF0ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZGNjX3JhdGVfY2hyb21hOwox
NDQ3NDogIHVuc2lnbmVkIGNoYXIgZGNjX3VzZV9nbG9iYWw7CjE0NDc0OiAgdW5zaWduZWQgY2hh
ciB2bTsKMTQ0NzQ6ICBib29sIGdwdXZtOwoxNDQ3NDogIGJvb2wgaG9zdHZtOwoxNDQ3NDogIGJv
b2wgZ3B1dm1fbGV2ZWxzX2ZvcmNlX2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCBncHV2bV9sZXZl
bHNfZm9yY2U7CjE0NDc0OiAgYm9vbCBob3N0dm1fbGV2ZWxzX2ZvcmNlX2VuOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBob3N0dm1fbGV2ZWxzX2ZvcmNlOwoxNDQ3NDogIGludCBzb3VyY2Vfc2NhbjsK
MTQ0NzQ6ICBpbnQgc3dfbW9kZTsKMTQ0NzQ6ICBpbnQgbWFjcm9fdGlsZV9zaXplOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBzdXJmYWNlX3dpZHRoX3k7CjE0NDc0OiAgdW5zaWduZWQgaW50IHN1cmZh
Y2VfaGVpZ2h0X3k7CjE0NDc0OiAgdW5zaWduZWQgaW50IHN1cmZhY2Vfd2lkdGhfYzsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgc3VyZmFjZV9oZWlnaHRfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdmll
d3BvcnRfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZpZXdwb3J0X2hlaWdodDsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgdmlld3BvcnRfeV95OwoxNDQ3NDogIHVuc2lnbmVkIGludCB2aWV3cG9y
dF95X2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZpZXdwb3J0X3dpZHRoX2M7CjE0NDc0OiAgdW5z
aWduZWQgaW50IHZpZXdwb3J0X2hlaWdodF9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkYXRhX3Bp
dGNoOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkYXRhX3BpdGNoX2M7CjE0NDc0OiAgdW5zaWduZWQg
aW50IG1ldGFfcGl0Y2g7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfcGl0Y2hfYzsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgY3VyMF9zcmNfd2lkdGg7CjE0NDc0OiAgaW50IGN1cjBfYnBwOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBjdXIxX3NyY193aWR0aDsKMTQ0NzQ6ICBpbnQgY3VyMV9icHA7CjE0
NDc0OiAgaW50IG51bV9jdXJzb3JzOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgaXNfaHNwbGl0Owox
NDQ3NDogIHVuc2lnbmVkIGNoYXIgZHluYW1pY19tZXRhZGF0YV9lbmFibGU7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGR5bmFtaWNfbWV0YWRhdGFfbGluZXNfYmVmb3JlX2FjdGl2ZTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZHluYW1pY19tZXRhZGF0YV94bWl0X2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBoc3BsaXRfZ3JwOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgeGZjX2VuYWJsZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBjaGFyIHhmY19zbGF2ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBjaGFyIGltbWVkaWF0
ZV9mbGlwOwoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3hmY19wYXJhbXNfc3QgeGZj
X3BhcmFtczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdl90b3RhbF9taW47CjE0NDc0
OiAgdW5zaWduZWQgY2hhciB2X3RvdGFsX21heDsKMTQ0NzQ6IH07CjE0NDc0OiBzdHJ1Y3Qgd3Jp
dGViYWNrX3N0IHsKMTQ0NzQ6ICBpbnQgd2Jfc3JjX2hlaWdodDsKMTQ0NzQ6ICBpbnQgd2Jfc3Jj
X3dpZHRoOwoxNDQ3NDogIGludCB3Yl9kc3Rfd2lkdGg7CjE0NDc0OiAgaW50IHdiX2RzdF9oZWln
aHQ7CjE0NDc0OiAgaW50IHdiX3BpeGVsX2Zvcm1hdDsKMTQ0NzQ6ICBpbnQgd2JfaHRhcHNfbHVt
YTsKMTQ0NzQ6ICBpbnQgd2JfdnRhcHNfbHVtYTsKMTQ0NzQ6ICBpbnQgd2JfaHRhcHNfY2hyb21h
OwoxNDQ3NDogIGludCB3Yl92dGFwc19jaHJvbWE7CjE0NDc0OiAgZG91YmxlIHdiX2hyYXRpbzsK
MTQ0NzQ6ICBkb3VibGUgd2JfdnJhdGlvOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IF92Y3NfZHBpX2Rpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCB7CjE0NDc0OiAgaW50IGRwX2xhbmVz
OwoxNDQ3NDogIGRvdWJsZSBvdXRwdXRfYnBwOwoxNDQ3NDogIGludCBkc2NfZW5hYmxlOwoxNDQ3
NDogIGludCB3Yl9lbmFibGU7CjE0NDc0OiAgaW50IG51bV9hY3RpdmVfd2I7CjE0NDc0OiAgaW50
IG91dHB1dF9icGM7CjE0NDc0OiAgaW50IG91dHB1dF90eXBlOwoxNDQ3NDogIGludCBvdXRwdXRf
Zm9ybWF0OwoxNDQ3NDogIGludCBkc2Nfc2xpY2VzOwoxNDQ3NDogIGludCBtYXhfYXVkaW9fc2Ft
cGxlX3JhdGU7CjE0NDc0OiAgc3RydWN0IHdyaXRlYmFja19zdCB3YjsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9zY2FsZXJfcmF0aW9fZGVwdGhfc3QgewoxNDQ3NDog
IGRvdWJsZSBoc2NsX3JhdGlvOwoxNDQ3NDogIGRvdWJsZSB2c2NsX3JhdGlvOwoxNDQ3NDogIGRv
dWJsZSBoc2NsX3JhdGlvX2M7CjE0NDc0OiAgZG91YmxlIHZzY2xfcmF0aW9fYzsKMTQ0NzQ6ICBk
b3VibGUgdmluaXQ7CjE0NDc0OiAgZG91YmxlIHZpbml0X2M7CjE0NDc0OiAgZG91YmxlIHZpbml0
X2JvdDsKMTQ0NzQ6ICBkb3VibGUgdmluaXRfYm90X2M7CjE0NDc0OiAgaW50IGxiX2RlcHRoOwox
NDQ3NDogIGludCBzY2xfZW5hYmxlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92
Y3NfZHBpX3NjYWxlcl90YXBzX3N0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaHRhcHM7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHZ0YXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBodGFwc19jOwoxNDQ3
NDogIHVuc2lnbmVkIGludCB2dGFwc19jOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IF92Y3NfZHBpX2Rpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCB7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHJlY291dF93aWR0aDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVjb3V0X2hlaWdodDsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZnVsbF9yZWNvdXRfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50
IGZ1bGxfcmVjb3V0X2hlaWdodDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgaGJsYW5rX3N0YXJ0Owox
NDQ3NDogIHVuc2lnbmVkIGludCBoYmxhbmtfZW5kOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2Ymxh
bmtfc3RhcnQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZibGFua19lbmQ7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGh0b3RhbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdnRvdGFsOwoxNDQ3NDogIHVuc2ln
bmVkIGludCB2YWN0aXZlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBoYWN0aXZlOwoxNDQ3NDogIHVu
c2lnbmVkIGludCB2c3RhcnR1cF9zdGFydDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdnVwZGF0ZV9v
ZmZzZXQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZ1cGRhdGVfd2lkdGg7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHZyZWFkeV9vZmZzZXQ7CjE0NDc0OiAgdW5zaWduZWQgY2hhciBpbnRlcmxhY2VkOwox
NDQ3NDogIHVuc2lnbmVkIGNoYXIgZW1iZWRkZWQ7CjE0NDc0OiAgZG91YmxlIHBpeGVsX3JhdGVf
bWh6OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgc3luY2hyb25pemVkX3ZibGFua19hbGxfcGxhbmVz
OwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgb3RnX2luc3Q7CjE0NDc0OiAgdW5zaWduZWQgaW50IG9k
bV9jb21iaW5lOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgdXNlX21heGltdW1fdnN0YXJ0dXA7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHZ0b3RhbF9tYXg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHZ0b3Rh
bF9taW47CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9w
aXBlX3BhcmFtc19zdCB7CjE0NDc0OiAgZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3Qgc3Jj
OwoxNDQ3NDogIGRpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCBkZXN0OwoxNDQ3NDogIHNjYWxl
cl9yYXRpb19kZXB0aF9zdCBzY2FsZV9yYXRpb19kZXB0aDsKMTQ0NzQ6ICBzY2FsZXJfdGFwc19z
dCBzY2FsZV90YXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92Y3NfZHBpX2Rp
c3BsYXlfY2xvY2tzX2FuZF9jZmdfc3QgewoxNDQ3NDogIGludCB2b2x0YWdlOwoxNDQ3NDogIGRv
dWJsZSBkcHBjbGtfbWh6OwoxNDQ3NDogIGRvdWJsZSByZWZjbGtfbWh6OwoxNDQ3NDogIGRvdWJs
ZSBkaXNwY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUgZGNmY2xrX21oejsKMTQ0NzQ6ICBkb3VibGUg
c29jY2xrX21oejsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9kaXNw
bGF5X2UyZV9waXBlX3BhcmFtc19zdCB7CjE0NDc0OiAgZGlzcGxheV9waXBlX3BhcmFtc19zdCBw
aXBlOwoxNDQ3NDogIGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCBkb3V0OwoxNDQ3NDogIGRpc3Bs
YXlfY2xvY2tzX2FuZF9jZmdfc3QgY2xrc19jZmc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0IHsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZnVsbF9zd2F0aF9ieXRlczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3RvcmVk
X3N3YXRoX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBibGsyNTZfaGVpZ2h0OwoxNDQ3NDog
IHVuc2lnbmVkIGludCBibGsyNTZfd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlcV9oZWln
aHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlcV93aWR0aDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCB7CjE0
NDc0OiAgdW5zaWduZWQgaW50IGNodW5rX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtaW5f
Y2h1bmtfYnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfY2h1bmtfYnl0ZXM7CjE0NDc0
OiAgdW5zaWduZWQgaW50IG1pbl9tZXRhX2NodW5rX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBtcHRlX2dyb3VwX2J5dGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX2dyb3VwX2J5dGVz
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9y
cV9kbGdfcGFyYW1zX3N0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3dhdGhfd2lkdGhfdWI7CjE0
NDc0OiAgdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVx
X3Blcl9zd2F0aF91YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2Zy
YW1lX3ViOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3JlcV9wZXJfcm93X3ViOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBkcHRlX2dyb3Vwc19wZXJfcm93X3ViOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBkcHRlX3Jvd19oZWlnaHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRwdGVfYnl0ZXNfcGVyX3Jv
d191YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9jaHVua3NfcGVyX3Jvd191YjsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgbWV0YV9yZXFfcGVyX3Jvd191YjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
bWV0YV9yb3dfaGVpZ2h0OwoxNDQ3NDogIHVuc2lnbmVkIGludCBtZXRhX2J5dGVzX3Blcl9yb3df
dWI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9k
bGdfcGFyYW1zX3N0IHsKMTQ0NzQ6ICBkaXNwbGF5X2RhdGFfcnFfZGxnX3BhcmFtc19zdCBycV9s
OwoxNDQ3NDogIGRpc3BsYXlfZGF0YV9ycV9kbGdfcGFyYW1zX3N0IHJxX2M7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0
IHsKMTQ0NzQ6ICBkaXNwbGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCBycV9sOwoxNDQ3NDog
IGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHJxX2M7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9taXNjX3BhcmFtc19zdCB7CjE0NDc0
OiAgZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0IHJxX2w7CjE0NDc0OiAgZGlzcGxheV9k
YXRhX3JxX21pc2NfcGFyYW1zX3N0IHJxX2M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9wYXJhbXNfc3QgewoxNDQ3NDogIHVuc2lnbmVkIGNoYXIg
eXV2NDIwOwoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgeXV2NDIwXzEwYnBjOwoxNDQ3NDogIHVuc2ln
bmVkIGNoYXIgcmdiZV9hbHBoYTsKMTQ0NzQ6ICBkaXNwbGF5X3JxX21pc2NfcGFyYW1zX3N0IG1p
c2M7CjE0NDc0OiAgZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0IHNpemluZzsKMTQ0NzQ6ICBk
aXNwbGF5X3JxX2RsZ19wYXJhbXNfc3QgZGxnOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxnX3JlZ3Nfc3QgewoxNDQ3NDogIHVuc2lnbmVkIGludCBy
ZWZjeWNfaF9ibGFua19lbmQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRsZ192YmxhbmtfZW5kOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtaW5fZHN0X3lfbmV4dF9zdGFydDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcmVmY3ljX3Blcl9odG90YWw7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y194X2Fm
dGVyX3NjYWxlcjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfYWZ0ZXJfc2NhbGVyOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBkc3RfeV9wcmVmZXRjaDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0
X3lfcGVyX3ZtX3ZibGFuazsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3Jvd192Ymxh
bms7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRzdF95X3Blcl92bV9mbGlwOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBkc3RfeV9wZXJfcm93X2ZsaXA7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZl9mcmVx
X3RvX3BpeF9mcmVxOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2cmF0aW9fcHJlZmV0Y2g7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHZyYXRpb19wcmVmZXRjaF9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBy
ZWZjeWNfcGVyX3B0ZV9ncm91cF92YmxhbmtfbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3lj
X3Blcl9wdGVfZ3JvdXBfdmJsYW5rX2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJf
bWV0YV9jaHVua192YmxhbmtfbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRh
X2NodW5rX3ZibGFua19jOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3B0ZV9ncm91
cF9mbGlwX2w7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcHRlX2dyb3VwX2ZsaXBf
YzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfbDsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRhX2NodW5rX2ZsaXBfYzsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2w7CjE0NDc0OiAgdW5zaWduZWQgaW50
IGRzdF95X3Blcl9wdGVfcm93X25vbV9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVy
X3B0ZV9ncm91cF9ub21fbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3Jv
dXBfbm9tX2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IGRzdF95X3Blcl9tZXRhX3Jvd19ub21fbDsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfcGVyX21ldGFfcm93X25vbV9jOwoxNDQ3NDogIHVu
c2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2w7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHJlZmN5Y19wZXJfbWV0YV9jaHVua19ub21fYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVm
Y3ljX3Blcl9saW5lX2RlbGl2ZXJ5X3ByZV9sOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNf
cGVyX2xpbmVfZGVsaXZlcnlfcHJlX2M7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJf
bGluZV9kZWxpdmVyeV9sOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX2xpbmVfZGVs
aXZlcnlfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2h1bmtfaGRsX2FkanVzdF9jdXIwOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBjaHVua19oZGxfYWRqdXN0X2N1cjE7CjE0NDc0OiAgdW5zaWduZWQg
aW50IHZyZWFkeV9hZnRlcl92Y291bnQwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkc3RfeV9vZmZz
ZXRfY3VyMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHN0X3lfb2Zmc2V0X2N1cjE7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHhmY19yZWdfdHJhbnNmZXJfZGVsYXk7CjE0NDc0OiAgdW5zaWduZWQgaW50
IHhmY19yZWdfcHJlY2hhcmdlX2RlbGF5OwoxNDQ3NDogIHVuc2lnbmVkIGludCB4ZmNfcmVnX3Jl
bW90ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgeGZjX3JlZ19w
cmVmZXRjaF9tYXJnaW47CjE0NDc0OiAgdW5zaWduZWQgaW50IGRzdF95X2RlbHRhX2RycV9saW1p
dDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl92bV9ncm91cF92Ymxhbms7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfdm1fZ3JvdXBfZmxpcDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcmVmY3ljX3Blcl92bV9yZXFfdmJsYW5rOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZj
eWNfcGVyX3ZtX3JlcV9mbGlwOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3ZtX2Rt
ZGF0YTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0
dV9yZWdzX3N0IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcW9zX2xldmVsX2xvd193bTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgcW9zX2xldmVsX2hpZ2hfd207CjE0NDc0OiAgdW5zaWduZWQgaW50IG1p
bl90dHVfdmJsYW5rOwoxNDQ3NDogIHVuc2lnbmVkIGludCBxb3NfbGV2ZWxfZmxpcDsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfbDsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVm
Y3ljX3Blcl9yZXFfZGVsaXZlcnlfY3VyMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Bl
cl9yZXFfZGVsaXZlcnlfY3VyMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFf
ZGVsaXZlcnlfcHJlX2w7CjE0NDc0OiAgdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2
ZXJ5X3ByZV9jOwoxNDQ3NDogIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9w
cmVfY3VyMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfcHJl
X2N1cjE7CjE0NDc0OiAgdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9sOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBxb3NfbGV2ZWxfZml4ZWRfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcW9zX2xl
dmVsX2ZpeGVkX2N1cjA7CjE0NDc0OiAgdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9jdXIx
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBxb3NfcmFtcF9kaXNhYmxlX2w7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHFvc19yYW1wX2Rpc2FibGVfYzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcW9zX3JhbXBf
ZGlzYWJsZV9jdXIwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBxb3NfcmFtcF9kaXNhYmxlX2N1cjE7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kYXRhX3Jx
X3JlZ3Nfc3QgewoxNDQ3NDogIHVuc2lnbmVkIGludCBjaHVua19zaXplOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBtaW5fY2h1bmtfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9jaHVua19z
aXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtaW5fbWV0YV9jaHVua19zaXplOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBkcHRlX2dyb3VwX3NpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1wdGVfZ3Jv
dXBfc2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3dhdGhfaGVpZ2h0OwoxNDQ3NDogIHVuc2ln
bmVkIGludCBwdGVfcm93X2hlaWdodF9saW5lYXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0IHsKMTQ0NzQ6ICBkaXNwbGF5X2RhdGFf
cnFfcmVnc19zdCBycV9yZWdzX2w7CjE0NDc0OiAgZGlzcGxheV9kYXRhX3JxX3JlZ3Nfc3QgcnFf
cmVnc19jOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcnFfZXhwYW5zaW9uX21vZGU7CjE0NDc0OiAg
dW5zaWduZWQgaW50IHBycV9leHBhbnNpb25fbW9kZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbXJx
X2V4cGFuc2lvbl9tb2RlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBjcnFfZXhwYW5zaW9uX21vZGU7
CjE0NDc0OiAgdW5zaWduZWQgaW50IHBsYW5lMV9iYXNlX2FkZHJlc3M7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfc3lzX3BhcmFtc19zdCB7CjE0
NDc0OiAgZG91YmxlIHRfbWNsa193bV91czsKMTQ0NzQ6ICBkb3VibGUgdF91cmdfd21fdXM7CjE0
NDc0OiAgZG91YmxlIHRfc3Jfd21fdXM7CjE0NDc0OiAgZG91YmxlIHRfZXh0cmFfdXM7CjE0NDc0
OiAgZG91YmxlIG1lbV90cmlwX3VzOwoxNDQ3NDogIGRvdWJsZSB0X3NyeF9kZWxheV91czsKMTQ0
NzQ6ICBkb3VibGUgZGVlcHNsZWVwX2RjZmNsa19taHo7CjE0NDc0OiAgZG91YmxlIHRvdGFsX2Zs
aXBfYnc7CjE0NDc0OiAgdW5zaWduZWQgaW50IHRvdGFsX2ZsaXBfYnl0ZXM7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9hcmJfcGFyYW1zX3N0IHsKMTQ0
NzQ6ICBpbnQgbWF4X3JlcV9vdXRzdGFuZGluZzsKMTQ0NzQ6ICBpbnQgbWluX3JlcV9vdXRzdGFu
ZGluZzsKMTQ0NzQ6ICBpbnQgc2F0X2xldmVsX3VzOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzIgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9k
ZWZzLmgiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfZW51bXMuaCIgMQoxNDQ3NDogIyAyOCAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfZW51bXMu
aCIKMTQ0NzQ6IGVudW0gb3V0cHV0X2VuY29kZXJfY2xhc3MgewoxNDQ3NDogIGRtX2RwID0gMCwg
ZG1faGRtaSA9IDEsIGRtX3diID0gMiwgZG1fZWRwCjE0NDc0OiB9OwoxNDQ3NDogZW51bSBvdXRw
dXRfZm9ybWF0X2NsYXNzIHsKMTQ0NzQ6ICBkbV80NDQgPSAwLCBkbV80MjAgPSAxLCBkbV9uNDIy
LCBkbV9zNDIyCjE0NDc0OiB9OwoxNDQ3NDogZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIHsKMTQ0
NzQ6ICBkbV80NDRfMTYgPSAwLAoxNDQ3NDogIGRtXzQ0NF8zMiA9IDEsCjE0NDc0OiAgZG1fNDQ0
XzY0ID0gMiwKMTQ0NzQ6ICBkbV80MjBfOCA9IDMsCjE0NDc0OiAgZG1fNDIwXzEwID0gNCwKMTQ0
NzQ6ICBkbV80MjBfMTIgPSA1LAoxNDQ3NDogIGRtXzQyMl84ID0gNiwKMTQ0NzQ6ICBkbV80MjJf
MTAgPSA3LAoxNDQ3NDogIGRtXzQ0NF84ID0gOCwKMTQ0NzQ6ICBkbV9tb25vXzggPSBkbV80NDRf
OCwKMTQ0NzQ6ICBkbV9tb25vXzE2ID0gZG1fNDQ0XzE2LAoxNDQ3NDogIGRtX3JnYmUgPSA5LAox
NDQ3NDogIGRtX3JnYmVfYWxwaGEgPSAxMCwKMTQ0NzQ6IH07CjE0NDc0OiBlbnVtIG91dHB1dF9i
cGNfY2xhc3MgewoxNDQ3NDogIGRtX291dF82ID0gMCwgZG1fb3V0XzggPSAxLCBkbV9vdXRfMTAg
PSAyLCBkbV9vdXRfMTIgPSAzLCBkbV9vdXRfMTYgPSA0CjE0NDc0OiB9OwoxNDQ3NDogZW51bSBz
Y2FuX2RpcmVjdGlvbl9jbGFzcyB7CjE0NDc0OiAgZG1faG9yeiA9IDAsIGRtX3ZlcnQgPSAxCjE0
NDc0OiB9OwoxNDQ3NDogZW51bSBkbV9zd2l6emxlX21vZGUgewoxNDQ3NDogIGRtX3N3X2xpbmVh
ciA9IDAsCjE0NDc0OiAgZG1fc3dfMjU2Yl9zID0gMSwKMTQ0NzQ6ICBkbV9zd18yNTZiX2QgPSAy
LAoxNDQ3NDogIGRtX3N3X1NQQVJFXzAgPSAzLAoxNDQ3NDogIGRtX3N3X1NQQVJFXzEgPSA0LAox
NDQ3NDogIGRtX3N3XzRrYl9zID0gNSwKMTQ0NzQ6ICBkbV9zd180a2JfZCA9IDYsCjE0NDc0OiAg
ZG1fc3dfU1BBUkVfMiA9IDcsCjE0NDc0OiAgZG1fc3dfU1BBUkVfMyA9IDgsCjE0NDc0OiAgZG1f
c3dfNjRrYl9zID0gOSwKMTQ0NzQ6ICBkbV9zd182NGtiX2QgPSAxMCwKMTQ0NzQ6ICBkbV9zd19T
UEFSRV80ID0gMTEsCjE0NDc0OiAgZG1fc3dfU1BBUkVfNSA9IDEyLAoxNDQ3NDogIGRtX3N3X3Zh
cl9zID0gMTMsCjE0NDc0OiAgZG1fc3dfdmFyX2QgPSAxNCwKMTQ0NzQ6ICBkbV9zd19TUEFSRV82
ID0gMTUsCjE0NDc0OiAgZG1fc3dfU1BBUkVfNyA9IDE2LAoxNDQ3NDogIGRtX3N3XzY0a2Jfc190
ID0gMTcsCjE0NDc0OiAgZG1fc3dfNjRrYl9kX3QgPSAxOCwKMTQ0NzQ6ICBkbV9zd19TUEFSRV8x
MCA9IDE5LAoxNDQ3NDogIGRtX3N3X1NQQVJFXzExID0gMjAsCjE0NDc0OiAgZG1fc3dfNGtiX3Nf
eCA9IDIxLAoxNDQ3NDogIGRtX3N3XzRrYl9kX3ggPSAyMiwKMTQ0NzQ6ICBkbV9zd19TUEFSRV8x
MiA9IDIzLAoxNDQ3NDogIGRtX3N3X1NQQVJFXzEzID0gMjQsCjE0NDc0OiAgZG1fc3dfNjRrYl9z
X3ggPSAyNSwKMTQ0NzQ6ICBkbV9zd182NGtiX2RfeCA9IDI2LAoxNDQ3NDogIGRtX3N3X1NQQVJF
XzE0ID0gMjcsCjE0NDc0OiAgZG1fc3dfU1BBUkVfMTUgPSAyOCwKMTQ0NzQ6ICBkbV9zd192YXJf
c194ID0gMjksCjE0NDc0OiAgZG1fc3dfdmFyX2RfeCA9IDMwLAoxNDQ3NDogIGRtX3N3XzY0a2Jf
cl94LAoxNDQ3NDogIGRtX3N3X2dmeDdfMmRfdGhpbl9sX3ZwLAoxNDQ3NDogIGRtX3N3X2dmeDdf
MmRfdGhpbl9nbCwKMTQ0NzQ6IH07CjE0NDc0OiBlbnVtIGxiX2RlcHRoIHsKMTQ0NzQ6ICBkbV9s
Yl8xMCA9IDAsIGRtX2xiXzggPSAxLCBkbV9sYl82ID0gMiwgZG1fbGJfMTIgPSAzLCBkbV9sYl8x
NiA9IDQsCjE0NDc0OiAgZG1fbGJfMTkgPSA1CjE0NDc0OiB9OwoxNDQ3NDogZW51bSB2b2x0YWdl
X3N0YXRlIHsKMTQ0NzQ6ICBkbV92bWluID0gMCwgZG1fdm1pZCA9IDEsIGRtX3Zub20gPSAyLCBk
bV92bWF4ID0gMwoxNDQ3NDogfTsKMTQ0NzQ6IGVudW0gc291cmNlX21hY3JvX3RpbGVfc2l6ZSB7
CjE0NDc0OiAgZG1fNGtfdGlsZSA9IDAsIGRtXzY0a190aWxlID0gMSwgZG1fMjU2a190aWxlID0g
MgoxNDQ3NDogfTsKMTQ0NzQ6IGVudW0gY3Vyc29yX2JwcCB7CjE0NDc0OiAgZG1fY3VyXzJiaXQg
PSAwLCBkbV9jdXJfMzJiaXQgPSAxLCBkbV9jdXJfNjRiaXQgPSAyCjE0NDc0OiB9OwoxNDQ3NDog
ZW51bSBjbG9ja19jaGFuZ2Vfc3VwcG9ydCB7CjE0NDc0OiAgZG1fZHJhbV9jbG9ja19jaGFuZ2Vf
dW5pbml0aWFsaXplZCA9IDAsCjE0NDc0OiAgZG1fZHJhbV9jbG9ja19jaGFuZ2VfdmFjdGl2ZSwK
MTQ0NzQ6ICBkbV9kcmFtX2Nsb2NrX2NoYW5nZV92YmxhbmssCjE0NDc0OiAgZG1fZHJhbV9jbG9j
a19jaGFuZ2VfdW5zdXBwb3J0ZWQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gb3V0cHV0
X3N0YW5kYXJkIHsKMTQ0NzQ6ICBkbV9zdGRfdW5pbml0aWFsaXplZCA9IDAsIGRtX3N0ZF9jdnRy
MiwgZG1fc3RkX2N2dAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBtcGNfY29tYmluZV9h
ZmZpbml0eSB7CjE0NDc0OiAgZG1fbXBjX2Fsd2F5c193aGVuX3Bvc3NpYmxlLAoxNDQ3NDogIGRt
X21wY19yZWR1Y2Vfdm9sdGFnZSwKMTQ0NzQ6ICBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2VfYW5kX2Ns
b2NrcywKMTQ0NzQ6ICBkbV9tcGNfbmV2ZXIKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0g
UmVxdWVzdFR5cGUgewoxNDQ3NDogIFJFUV8yNTZCeXRlcywgUkVRXzEyOEJ5dGVzTm9uQ29udGln
dW91cywgUkVRXzEyOEJ5dGVzQ29udGlndW91cywgUkVRX05BCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIHNlbGZfcmVmcmVzaF9hZmZpbml0eSB7CjE0NDc0OiAgZG1fdHJ5X3RvX2FsbG93
X3NlbGZfcmVmcmVzaF9hbmRfbWNsa19zd2l0Y2gsCjE0NDc0OiAgZG1fYWxsb3dfc2VsZl9yZWZy
ZXNoX2FuZF9tY2xrX3N3aXRjaCwKMTQ0NzQ6ICBkbV9hbGxvd19zZWxmX3JlZnJlc2gsCjE0NDc0
OiAgZG1fbmVpdGhlcl9zZWxmX3JlZnJlc2hfbm9yX21jbGtfc3dpdGNoCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGRtX3ZhbGlkYXRpb25fc3RhdHVzIHsKMTQ0NzQ6ICBETUxfVkFMSURB
VElPTl9PSywKMTQ0NzQ6ICBETUxfRkFJTF9TQ0FMRV9SQVRJT19UQVAsCjE0NDc0OiAgRE1MX0ZB
SUxfU09VUkNFX1BJWEVMX0ZPUk1BVCwKMTQ0NzQ6ICBETUxfRkFJTF9WSUVXUE9SVF9TSVpFLAox
NDQ3NDogIERNTF9GQUlMX1RPVEFMX1ZfQUNUSVZFX0JXLAoxNDQ3NDogIERNTF9GQUlMX0RJT19T
VVBQT1JULAoxNDQ3NDogIERNTF9GQUlMX05PVF9FTk9VR0hfRFNDLAoxNDQ3NDogIERNTF9GQUlM
X0RTQ19DTEtfUkVRVUlSRUQsCjE0NDc0OiAgRE1MX0ZBSUxfRFNDX1ZBTElEQVRJT05fRkFJTFVS
RSwKMTQ0NzQ6ICBETUxfRkFJTF9VUkdFTlRfTEFURU5DWSwKMTQ0NzQ6ICBETUxfRkFJTF9SRU9S
REVSSU5HX0JVRkZFUiwKMTQ0NzQ6ICBETUxfRkFJTF9ESVNQQ0xLX0RQUENMSywKMTQ0NzQ6ICBE
TUxfRkFJTF9UT1RBTF9BVkFJTEFCTEVfUElQRVMsCjE0NDc0OiAgRE1MX0ZBSUxfTlVNX09URywK
MTQ0NzQ6ICBETUxfRkFJTF9XUklURUJBQ0tfTU9ERSwKMTQ0NzQ6ICBETUxfRkFJTF9XUklURUJB
Q0tfTEFURU5DWSwKMTQ0NzQ6ICBETUxfRkFJTF9XUklURUJBQ0tfU0NBTEVfUkFUSU9fVEFQLAox
NDQ3NDogIERNTF9GQUlMX0NVUlNPUl9TVVBQT1JULAoxNDQ3NDogIERNTF9GQUlMX1BJVENIX1NV
UFBPUlQsCjE0NDc0OiAgRE1MX0ZBSUxfUFRFX0JVRkZFUl9TSVpFLAoxNDQ3NDogIERNTF9GQUlM
X0hPU1RfVk1fSU1NRURJQVRFX0ZMSVAsCjE0NDc0OiAgRE1MX0ZBSUxfRFNDX0lOUFVUX0JQQywK
MTQ0NzQ6ICBETUxfRkFJTF9QUkVGRVRDSF9TVVBQT1JULAoxNDQ3NDogIERNTF9GQUlMX1ZfUkFU
SU9fUFJFRkVUQ0gsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHdyaXRlYmFja19jb25m
aWcgewoxNDQ3NDogIGRtX25vcm1hbCwKMTQ0NzQ6ICBkbV93aG9sZV9idWZmZXJfZm9yX3Npbmds
ZV9zdHJlYW1fbm9faW50ZXJsZWF2ZSwKMTQ0NzQ6ICBkbV93aG9sZV9idWZmZXJfZm9yX3Npbmds
ZV9zdHJlYW1faW50ZXJsZWF2ZSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gb2RtX2Nv
bWJpbmVfbW9kZSB7CjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVfbW9kZV9kaXNhYmxlZCwKMTQ0NzQ6
ICBkbV9vZG1fY29tYmluZV9tb2RlXzJ0bzEsCjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVfbW9kZV80
dG8xLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBvZG1fY29tYmluZV9wb2xpY3kgewox
NDQ3NDogIGRtX29kbV9jb21iaW5lX3BvbGljeV9kYWwsCjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVf
cG9saWN5X25vbmUsCjE0NDc0OiAgZG1fb2RtX2NvbWJpbmVfcG9saWN5XzJ0bzEsCjE0NDc0OiAg
ZG1fb2RtX2NvbWJpbmVfcG9saWN5XzR0bzEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVt
IGltbWVkaWF0ZV9mbGlwX3JlcXVpcmVtZW50IHsKMTQ0NzQ6ICBkbV9pbW1lZGlhdGVfZmxpcF9u
b3RfcmVxdWlyZWQsCjE0NDc0OiAgZG1faW1tZWRpYXRlX2ZsaXBfcmVxdWlyZWQsCjE0NDc0OiB9
OwoxNDQ3NDogIyAzMyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtbC9kbWxfY29tbW9uX2RlZnMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGRvdWJsZSBk
bWxfcm91bmQoZG91YmxlIGEpOwoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgiIDIKMTQ0NzQ6ICMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21v
ZGVfdmJhLmgiIDEKMTQ0NzQ6ICMgMzIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5oIgoxNDQ3NDogc3RydWN0IGRpc3BsYXlf
bW9kZV9saWI7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1
cmF0aW9uKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBkb3VibGUgZ2V0X2Nsa19kY2ZfZGVlcHNsZWVwKHN0cnVjdCBkaXNw
bGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3Qg
KnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfd21fdXJn
ZW50KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVf
cGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRv
dWJsZSBnZXRfd21fbWVtb3J5X3RyaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGli
LCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBu
dW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF93bV93cml0ZWJhY2tfdXJnZW50KHN0cnVjdCBk
aXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNf
c3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfd21f
c3R1dHRlcl9leGl0KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlz
cGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsK
MTQ0NzQ6IGRvdWJsZSBnZXRfd21fc3R1dHRlcl9lbnRlcl9leGl0KHN0cnVjdCBkaXNwbGF5X21v
ZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVz
LCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfd21fZHJhbV9jbG9j
a19jaGFuZ2Uoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3
NDogZG91YmxlIGdldF93bV93cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2Uoc3RydWN0IGRpc3Bs
YXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAq
cGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF93bV94ZmNf
dW5kZXJmbG93KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxh
eV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0
NzQ6IGRvdWJsZSBnZXRfc3R1dHRlcl9lZmZpY2llbmN5X25vX3ZibGFuayhzdHJ1Y3QgZGlzcGxh
eV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpw
aXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CjE0NDc0OiBkb3VibGUgZ2V0X3N0dXR0ZXJf
ZWZmaWNpZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3Bs
YXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CjE0
NDc0OiBkb3VibGUgZ2V0X3VyZ2VudF9sYXRlbmN5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICpt
b2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25l
ZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfdXJnZW50X2V4dHJhX2xhdGVuY3ko
c3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBl
X3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91Ymxl
IGdldF9ub251cmdlbnRfbGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIs
IGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51
bV9waXBlcyk7CjE0NDc0OiBkb3VibGUgZ2V0X2RyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3koc3Ry
dWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3Bh
cmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdl
dF9kaXNwY2xrX2NhbGN1bGF0ZWQoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBj
b25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1f
cGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF90b3RhbF9kYXRhX3JlYWRfYncoc3RydWN0IGRpc3Bs
YXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAq
cGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF9yZXR1cm5f
Yncoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91
YmxlIGdldF90Y2FsYyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRp
c3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7
CjE0NDc0OiBkb3VibGUgZ2V0X2ZyYWN0aW9uX29mX3VyZ2VudF9iYW5kd2lkdGgoc3RydWN0IGRp
c3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19z
dCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoxNDQ3NDogZG91YmxlIGdldF9mcmFj
dGlvbl9vZl91cmdlbnRfYmFuZHdpZHRoX2ltbV9mbGlwKHN0cnVjdCBkaXNwbGF5X21vZGVfbGli
ICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGRvdWJs
ZSBnZXRfZHNjX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3Qg
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
LCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X2RwcGNsa19jYWxj
dWxhdGVkKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25l
ZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X2RzY2Nsa19jYWxjdWxhdGVkKHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9w
YXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hp
Y2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X21pbl90dHVfdmJsYW5rKHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBp
cGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0
NDc0OiBkb3VibGUgZ2V0X3ZyYXRpb19wcmVmZXRjaF9sKHN0cnVjdCBkaXNwbGF5X21vZGVfbGli
ICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3Vi
bGUgZ2V0X3ZyYXRpb19wcmVmZXRjaF9jKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xp
YiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQg
bnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X2Rz
dF94X2FmdGVyX3NjYWxlcihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0
IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBl
cywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9kc3RfeV9hZnRl
cl9zY2FsZXIoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2ln
bmVkIGludCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfZHN0X3lfcGVyX3ZtX3ZibGFu
ayhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3Bp
cGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50
IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9kc3RfeV9wZXJfcm93X3ZibGFuayhzdHJ1
Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFy
YW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNo
X3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9kc3RfeV9wcmVmZXRjaChzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBl
cywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3
NDogZG91YmxlIGdldF9kc3RfeV9wZXJfdm1fZmxpcChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAq
bW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWdu
ZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91Ymxl
IGdldF9kc3RfeV9wZXJfcm93X2ZsaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGli
LCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBu
dW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfeGZj
X3RyYW5zZmVyX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3Qg
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
LCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X3hmY19wcmVjaGFy
Z2VfZGVsYXkoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2ln
bmVkIGludCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfeGZjX3JlbW90ZV9zdXJmYWNl
X2ZsaXBfbGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRp
c3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywg
dW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF94ZmNfcHJlZmV0Y2hf
bWFyZ2luKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25l
ZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBf
dmJsYW5rKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzLCB1bnNpZ25l
ZCBpbnQgd2hpY2hfcGlwZSk7CjE0NDc0OiBkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBf
ZmxpcChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJl
X3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQg
aW50IHdoaWNoX3BpcGUpOwoxNDQ3NDogZG91YmxlIGdldF9yZWZjeWNfcGVyX3ZtX3JlcV92Ymxh
bmsoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGlu
dCB3aGljaF9waXBlKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfcmVmY3ljX3Blcl92bV9yZXFfZmxpcChz
dHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVf
cGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdo
aWNoX3BpcGUpOwoxNDQ3NDogCjE0NDc0OiB1bnNpZ25lZCBpbnQgZ2V0X3ZzdGFydHVwX2NhbGN1
bGF0ZWQoCjE0NDc0OiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6
ICAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CjE0
NDc0OiAKMTQ0NzQ6IGRvdWJsZSBnZXRfdG90YWxfaW1tZWRpYXRlX2ZsaXBfYnl0ZXMoCjE0NDc0
OiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlz
cGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVt
X3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfdG90YWxfaW1tZWRpYXRlX2ZsaXBfYncoCjE0NDc0
OiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlz
cGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVt
X3BpcGVzKTsKMTQ0NzQ6IGRvdWJsZSBnZXRfdG90YWxfcHJlZmV0Y2hfYncoCjE0NDc0OiAgIHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
KTsKMTQ0NzQ6IHVuc2lnbmVkIGludCBkbWxfZ2V0X3ZvbHRhZ2VfbGV2ZWwoCjE0NDc0OiAgIHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBQaXhlbENsb2NrQWRqdXN0bWVudEZvclByb2dyZXNzaXZl
VG9JbnRlcmxhY2VVbml0KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYik7CjE0NDc0
OiAKMTQ0NzQ6IGJvb2wgQ2FsY3VsYXRlMjU2QkJsb2NrU2l6ZXMoCjE0NDc0OiAgIGVudW0gc291
cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKMTQ0NzQ6ICAgZW51bSBkbV9zd2l6
emxlX21vZGUgU3VyZmFjZVRpbGluZywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IEJ5dGVQZXJQaXhl
bFksCjE0NDc0OiAgIHVuc2lnbmVkIGludCBCeXRlUGVyUGl4ZWxDLAoxNDQ3NDogICB1bnNpZ25l
ZCBpbnQgKkJsb2NrSGVpZ2h0MjU2Qnl0ZXNZLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgKkJsb2Nr
SGVpZ2h0MjU2Qnl0ZXNDLAoxNDQ3NDogICB1bnNpZ25lZCBpbnQgKkJsb2NrV2lkdGgyNTZCeXRl
c1ksCjE0NDc0OiAgIHVuc2lnbmVkIGludCAqQmxvY2tXaWR0aDI1NkJ5dGVzQyk7CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCB2YmFfdmFyc19zdCB7CjE0NDc0OiAgaXBfcGFyYW1zX3N0IGlwOwoxNDQ3
NDogIHNvY19ib3VuZGluZ19ib3hfc3Qgc29jOwoxNDQ3NDogCjE0NDc0OiAgaW50IG1heE1wY0Nv
bWI7CjE0NDc0OiAgYm9vbCBVc2VNYXhpbXVtVlN0YXJ0dXA7CjE0NDc0OiAKMTQ0NzQ6ICBkb3Vi
bGUgV3JpdGViYWNrRElTUENMSzsKMTQ0NzQ6ICBkb3VibGUgRFBQQ0xLVXNpbmdTaW5nbGVEUFBM
dW1hOwoxNDQ3NDogIGRvdWJsZSBEUFBDTEtVc2luZ1NpbmdsZURQUENocm9tYTsKMTQ0NzQ6ICBk
b3VibGUgRElTUENMS1dpdGhSYW1waW5nOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLV2l0aG91dFJh
bXBpbmc7CjE0NDc0OiAgZG91YmxlIEdsb2JhbERQUENMSzsKMTQ0NzQ6ICBkb3VibGUgRElTUENM
S1dpdGhSYW1waW5nUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CjE0NDc0OiAgZG91YmxlIERJU1BD
TEtXaXRob3V0UmFtcGluZ1JvdW5kZWRUb0RGU0dyYW51bGFyaXR5OwoxNDQ3NDogIGRvdWJsZSBN
YXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CjE0NDc0OiAgYm9vbCBEQ0NFbmFibGVk
QW55UGxhbmU7CjE0NDc0OiAgZG91YmxlIFJldHVybkJhbmR3aWR0aFRvRENOOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBUb3RhbEFjdGl2ZURQUDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgVG90YWxEQ0NB
Y3RpdmVEUFA7CjE0NDc0OiAgZG91YmxlIFVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3JkZXJMYXRl
bmN5OwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyUGVyaW9kOwoxNDQ3NDogIGRvdWJsZSBGcmFtZVRp
bWVGb3JNaW5GdWxsREVUQnVmZmVyaW5nVGltZTsKMTQ0NzQ6ICBkb3VibGUgQXZlcmFnZVJlYWRC
YW5kd2lkdGg7CjE0NDc0OiAgZG91YmxlIFRvdGFsUm93UmVhZEJhbmR3aWR0aDsKMTQ0NzQ6ICBk
b3VibGUgUGFydE9mQnVyc3RUaGF0Rml0c0luUk9COwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyQnVy
c3RUaW1lOwoxNDQ3NDogIHVuc2lnbmVkIGludCBOZXh0UHJlZmV0Y2hNb2RlOwoxNDQ3NDogIGRv
dWJsZSBOZXh0TWF4VlN0YXJ0dXA7CjE0NDc0OiAgZG91YmxlIFZCbGFua1RpbWU7CjE0NDc0OiAg
ZG91YmxlIFNtYWxsZXN0VkJsYW5rOwoxNDQ3NDogIGRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXBQZXJQ
bGFuZVs4XTsKMTQ0NzQ6ICBkb3VibGUgRWZmZWN0aXZlREVUUGx1c0xCTGluZXNMdW1hOwoxNDQ3
NDogIGRvdWJsZSBFZmZlY3RpdmVERVRQbHVzTEJMaW5lc0Nocm9tYTsKMTQ0NzQ6ICBkb3VibGUg
VXJnZW50TGF0ZW5jeVN1cHBvcnRVc0x1bWE7CjE0NDc0OiAgZG91YmxlIFVyZ2VudExhdGVuY3lT
dXBwb3J0VXNDaHJvbWE7CjE0NDc0OiAgdW5zaWduZWQgaW50IERTQ0Zvcm1hdEZhY3RvcjsKMTQ0
NzQ6IAoxNDQ3NDogIGJvb2wgRHVtbXlQU3RhdGVDaGVjazsKMTQ0NzQ6ICBib29sIERSQU1DbG9j
a0NoYW5nZVN1cHBvcnRzVkFjdGl2ZTsKMTQ0NzQ6ICBib29sIFByZWZldGNoTW9kZVN1cHBvcnRl
ZDsKMTQ0NzQ6ICBib29sIFByZWZldGNoQW5kSW1tZWRpYXRlRmxpcFN1cHBvcnRlZDsKMTQ0NzQ6
ICBlbnVtIHNlbGZfcmVmcmVzaF9hZmZpbml0eSBBbGxvd0RSQU1TZWxmUmVmcmVzaE9yRFJBTUNs
b2NrQ2hhbmdlSW5WYmxhbms7CjE0NDc0OiAgZG91YmxlIFhGQ1JlbW90ZVN1cmZhY2VGbGlwRGVs
YXk7CjE0NDc0OiAgZG91YmxlIFRJbml0WEZpbGw7CjE0NDc0OiAgZG91YmxlIFRzbHZDaGs7CjE0
NDc0OiAgZG91YmxlIFNyY0FjdGl2ZURyYWluUmF0ZTsKMTQ0NzQ6ICBib29sIEltbWVkaWF0ZUZs
aXBTdXBwb3J0ZWQ7CjE0NDc0OiAgZW51bSBtcGNfY29tYmluZV9hZmZpbml0eSBXaGVuVG9Eb01Q
Q0NvbWJpbmU7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIFByZWZldGNoRVJST1I7CjE0NDc0OiAKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgVlN0YXJ0dXBMaW5lczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgQWN0
aXZlRFBQczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNZ
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBMQkxhdGVuY3lIaWRpbmdTb3VyY2VMaW5lc0M7CjE0NDc0
OiAgZG91YmxlIEFjdGl2ZURSQU1DbG9ja0NoYW5nZUxhdGVuY3lNYXJnaW5bOF07CjE0NDc0OiAg
ZG91YmxlIE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbjsKMTQ0NzQ6ICBkb3VibGUgSW5p
dEZpbGxMZXZlbDsKMTQ0NzQ6ICBkb3VibGUgRmluYWxGaWxsTWFyZ2luOwoxNDQ3NDogIGRvdWJs
ZSBGaW5hbEZpbGxMZXZlbDsKMTQ0NzQ6ICBkb3VibGUgUmVtYWluaW5nRmlsbExldmVsOwoxNDQ3
NDogIGRvdWJsZSBURmluYWx4RmlsbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGRvdWJsZSBTUkV4aXRUaW1lOwoxNDQ3NDogIGRvdWJsZSBTUkVudGVyUGx1c0V4aXRU
aW1lOwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRMYXRlbmN5UGl4ZWxEYXRhT25seTsKMTQ0NzQ6ICBk
b3VibGUgVXJnZW50TGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhOwoxNDQ3NDogIGRvdWJsZSBV
cmdlbnRMYXRlbmN5Vk1EYXRhT25seTsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50TGF0ZW5jeTsKMTQ0
NzQ6ICBkb3VibGUgV3JpdGViYWNrTGF0ZW5jeTsKMTQ0NzQ6ICBkb3VibGUgUGVyY2VudE9mSWRl
YWxEUkFNRmFicmljQW5kU0RQUG9ydEJXUmVjZWl2ZWRBZnRlclVyZ0xhdGVuY3lQaXhlbERhdGFP
bmx5OwoxNDQ3NDogIGRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldS
ZWNlaXZlZEFmdGVyVXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhOwoxNDQ3NDogIGRvdWJs
ZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVyVXJnTGF0
ZW5jeVZNRGF0YU9ubHk7CjE0NDc0OiAgZG91YmxlIE1heEF2ZXJhZ2VQZXJjZW50T2ZJZGVhbFNE
UFBvcnRCV0Rpc3BsYXlDYW5Vc2VJbk5vcm1hbFN5c3RlbU9wZXJhdGlvbjsKMTQ0NzQ6ICBkb3Vi
bGUgTWF4QXZlcmFnZVBlcmNlbnRPZklkZWFsRFJBTUJXRGlzcGxheUNhblVzZUluTm9ybWFsU3lz
dGVtT3BlcmF0aW9uOwoxNDQ3NDogIGRvdWJsZSBOdW1iZXJPZkNoYW5uZWxzOwoxNDQ3NDogIGRv
dWJsZSBEUkFNQ2hhbm5lbFdpZHRoOwoxNDQ3NDogIGRvdWJsZSBGYWJyaWNEYXRhcGF0aFRvRENO
RGF0YVJldHVybjsKMTQ0NzQ6ICBkb3VibGUgUmV0dXJuQnVzV2lkdGg7CjE0NDc0OiAgZG91Ymxl
IERvd25zcHJlYWRpbmc7CjE0NDc0OiAgZG91YmxlIERJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3By
ZWFkaW5nOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLRFBQQ0xLVkNPU3BlZWQ7CjE0NDc0OiAgZG91
YmxlIFJvdW5kVHJpcFBpbmdMYXRlbmN5Q3ljbGVzOwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRPdXRP
Zk9yZGVyUmV0dXJuUGVyQ2hhbm5lbDsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50T3V0T2ZPcmRlclJl
dHVyblBlckNoYW5uZWxQaXhlbERhdGFPbmx5OwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRPdXRPZk9y
ZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsTWl4ZWRXaXRoVk1EYXRhOwoxNDQ3NDogIGRvdWJsZSBV
cmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFZNRGF0YU9ubHk7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IFZNTVBhZ2VTaXplOwoxNDQ3NDogIGRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5
OwoxNDQ3NDogIGRvdWJsZSBYRkNCdXNUcmFuc3BvcnRUaW1lOwoxNDQ3NDogIGJvb2wgVXNlVXJn
ZW50QnVyc3RCYW5kd2lkdGg7CjE0NDc0OiAgZG91YmxlIFhGQ1hCVUZMYXRlbmN5VG9sZXJhbmNl
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IFJP
QkJ1ZmZlclNpemVJbktCeXRlOwoxNDQ3NDogIGRvdWJsZSBERVRCdWZmZXJTaXplSW5LQnl0ZTsK
MTQ0NzQ6ICBkb3VibGUgREVUQnVmZmVyU2l6ZUluVGltZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
RFBQT3V0cHV0QnVmZmVyUGl4ZWxzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBPUFBPdXRwdXRCdWZm
ZXJMaW5lczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUGl4ZWxDaHVua1NpemVJbktCeXRlOwoxNDQ3
NDogIGRvdWJsZSBSZXR1cm5CVzsKMTQ0NzQ6ICBib29sIEdQVVZNRW5hYmxlOwoxNDQ3NDogIGJv
b2wgSG9zdFZNRW5hYmxlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBHUFVWTU1heFBhZ2VUYWJsZUxl
dmVsczsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgSG9zdFZNTWF4UGFnZVRhYmxlTGV2ZWxzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFibGVMZXZlbHM7CjE0NDc0OiAgdW5z
aWduZWQgaW50IE92ZXJyaWRlR1BVVk1QYWdlVGFibGVMZXZlbHM7CjE0NDc0OiAgdW5zaWduZWQg
aW50IE92ZXJyaWRlSG9zdFZNUGFnZVRhYmxlTGV2ZWxzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBN
ZXRhQ2h1bmtTaXplOwoxNDQ3NDogIGRvdWJsZSBNaW5QaXhlbENodW5rU2l6ZUJ5dGVzOwoxNDQ3
NDogIGRvdWJsZSBNaW5NZXRhQ2h1bmtTaXplQnl0ZXM7CjE0NDc0OiAgdW5zaWduZWQgaW50IFdy
aXRlYmFja0NodW5rU2l6ZTsKMTQ0NzQ6ICBib29sIE9ETUNhcGFiaWxpdHk7CjE0NDc0OiAgdW5z
aWduZWQgaW50IE51bWJlck9mRFNDOwoxNDQ3NDogIHVuc2lnbmVkIGludCBMaW5lQnVmZmVyU2l6
ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWF4TGluZUJ1ZmZlckxpbmVzOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBXcml0ZWJhY2tJbnRlcmZhY2VMdW1hQnVmZmVyU2l6ZTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgV3JpdGViYWNrSW50ZXJmYWNlQ2hyb21hQnVmZmVyU2l6ZTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgV3JpdGViYWNrQ2hyb21hTGluZUJ1ZmZlcldpZHRoOwoxNDQ3NDogIGVudW0gd3JpdGVi
YWNrX2NvbmZpZyBXcml0ZWJhY2tDb25maWd1cmF0aW9uOwoxNDQ3NDogIGRvdWJsZSBNYXhEQ0hV
QlRvUFNDTFRocm91Z2hwdXQ7CjE0NDc0OiAgZG91YmxlIE1heFBTQ0xUb0xCVGhyb3VnaHB1dDsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNMdW1hOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Nocm9tYTsKMTQ0NzQ6ICBkb3Vi
bGUgRElTUENMS1JhbXBpbmdNYXJnaW47CjE0NDc0OiAgdW5zaWduZWQgaW50IE1heEludGVyRENO
VGlsZVJlcGVhdGVyczsKMTQ0NzQ6ICBib29sIFhGQ1N1cHBvcnRlZDsKMTQ0NzQ6ICBkb3VibGUg
WEZDU2x2Q2h1bmtTaXplOwoxNDQ3NDogIGRvdWJsZSBYRkNGaWxsQldPdmVyaGVhZDsKMTQ0NzQ6
ICBkb3VibGUgWEZDRmlsbENvbnN0YW50OwoxNDQ3NDogIGRvdWJsZSBYRkNUU2x2VnVwZGF0ZU9m
ZnNldDsKMTQ0NzQ6ICBkb3VibGUgWEZDVFNsdlZ1cGRhdGVXaWR0aDsKMTQ0NzQ6ICBkb3VibGUg
WEZDVFNsdlZyZWFkeU9mZnNldDsKMTQ0NzQ6ICBkb3VibGUgRFBQQ0xLRGVsYXlTdWJ0b3RhbDsK
MTQ0NzQ6ICBkb3VibGUgRFBQQ0xLRGVsYXlTQ0w7CjE0NDc0OiAgZG91YmxlIERQUENMS0RlbGF5
U0NMTEJPbmx5OwoxNDQ3NDogIGRvdWJsZSBEUFBDTEtEZWxheUNOVkNGb3JtYXRlcjsKMTQ0NzQ6
ICBkb3VibGUgRFBQQ0xLRGVsYXlDTlZDQ3Vyc29yOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLRGVs
YXlTdWJ0b3RhbDsKMTQ0NzQ6ICBib29sIFByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0SW5PUFA7
CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgVm9sdGFnZUxldmVsOwoxNDQ3NDogIGRvdWJsZSBGYWJyaWND
bG9jazsKMTQ0NzQ6ICBkb3VibGUgRFJBTVNwZWVkOwoxNDQ3NDogIGRvdWJsZSBESVNQQ0xLOwox
NDQ3NDogIGRvdWJsZSBTT0NDTEs7CjE0NDc0OiAgZG91YmxlIERDRkNMSzsKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGludCBOdW1iZXJPZkFjdGl2ZVBsYW5lczsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgTnVtYmVyT2ZEU0NTbGljZXNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZpZXdwb3J0V2lk
dGhbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZpZXdwb3J0SGVpZ2h0WzhdOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBWaWV3cG9ydFlTdGFydFlbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZpZXdw
b3J0WVN0YXJ0Q1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUGl0Y2hZWzhdOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBQaXRjaENbOF07CjE0NDc0OiAgZG91YmxlIEhSYXRpb1s4XTsKMTQ0NzQ6ICBk
b3VibGUgVlJhdGlvWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBodGFwc1s4XTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgdnRhcHNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEhUQVBzQ2hyb21hWzhd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBWVEFQc0Nocm9tYVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgSFRvdGFsWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBWVG90YWxbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFZUb3RhbF9NYXhbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFZUb3RhbF9NaW5b
OF07CjE0NDc0OiAgaW50IERQUFBlclBsYW5lWzhdOwoxNDQ3NDogIGRvdWJsZSBQaXhlbENsb2Nr
WzhdOwoxNDQ3NDogIGRvdWJsZSBQaXhlbENsb2NrQmFja0VuZFs4XTsKMTQ0NzQ6ICBib29sIERD
Q0VuYWJsZVs4XTsKMTQ0NzQ6ICBib29sIEZFQ0VuYWJsZVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgRENDTWV0YVBpdGNoWVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgRENDTWV0YVBpdGNoQ1s4
XTsKMTQ0NzQ6ICBlbnVtIHNjYW5fZGlyZWN0aW9uX2NsYXNzIFNvdXJjZVNjYW5bOF07CjE0NDc0
OiAgZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFNvdXJjZVBpeGVsRm9ybWF0WzhdOwoxNDQ3NDog
IGJvb2wgV3JpdGViYWNrRW5hYmxlWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBBY3RpdmVXcml0
ZWJhY2tzUGVyUGxhbmVbOF07CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lk
dGhbOF07CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0Rlc3RpbmF0aW9uSGVpZ2h0WzhdOwoxNDQ3
NDogIGRvdWJsZSBXcml0ZWJhY2tTb3VyY2VIZWlnaHRbOF07CjE0NDc0OiAgZW51bSBzb3VyY2Vf
Zm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0WzhdOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBXcml0ZWJhY2tMdW1hSFRhcHNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0x1
bWFWVGFwc1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHNbOF07
CjE0NDc0OiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYVZUYXBzWzhdOwoxNDQ3NDogIGRv
dWJsZSBXcml0ZWJhY2tIUmF0aW9bOF07CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja1ZSYXRpb1s4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgSEFjdGl2ZVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
VkFjdGl2ZVs4XTsKMTQ0NzQ6ICBib29sIEludGVybGFjZVs4XTsKMTQ0NzQ6ICBlbnVtIGRtX3N3
aXp6bGVfbW9kZSBTdXJmYWNlVGlsaW5nWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTY2FsZXJS
ZWNvdXRXaWR0aFs4XTsKMTQ0NzQ6ICBib29sIER5bmFtaWNNZXRhZGF0YUVuYWJsZVs4XTsKMTQ0
NzQ6ICBpbnQgRHluYW1pY01ldGFkYXRhTGluZXNCZWZvcmVBY3RpdmVSZXF1aXJlZFs4XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgRHluYW1pY01ldGFkYXRhVHJhbnNtaXR0ZWRCeXRlc1s4XTsKMTQ0
NzQ6ICBkb3VibGUgRENDUmF0ZVs4XTsKMTQ0NzQ6ICBkb3VibGUgQXZlcmFnZURDQ0NvbXByZXNz
aW9uUmF0ZTsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVuYWJsZWRb
OF07CjE0NDc0OiAgZG91YmxlIE91dHB1dEJwcFs4XTsKMTQ0NzQ6ICBib29sIERTQ0VuYWJsZWRb
OF07CjE0NDc0OiAgdW5zaWduZWQgaW50IERTQ0lucHV0Qml0UGVyQ29tcG9uZW50WzhdOwoxNDQ3
NDogIGVudW0gb3V0cHV0X2Zvcm1hdF9jbGFzcyBPdXRwdXRGb3JtYXRbOF07CjE0NDc0OiAgZW51
bSBvdXRwdXRfZW5jb2Rlcl9jbGFzcyBPdXRwdXRbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEJs
ZW5kaW5nQW5kVGltaW5nWzhdOwoxNDQ3NDogIGJvb2wgU3luY2hyb25pemVkVkJsYW5rOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBOdW1iZXJPZkN1cnNvcnNbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50
IEN1cnNvcldpZHRoWzhdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBDdXJzb3JCUFBbOF1bMl07
CjE0NDc0OiAgYm9vbCBYRkNFbmFibGVkWzhdOwoxNDQ3NDogIGJvb2wgU2NhbGVyRW5hYmxlZFs4
XTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBJbW1lZGlhdGVGbGlwU3VwcG9ydDsKMTQ0
NzQ6ICBkb3VibGUgREVUQnVmZmVyU2l6ZVlbOF07CjE0NDc0OiAgZG91YmxlIERFVEJ1ZmZlclNp
emVDWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTd2F0aEhlaWdodFlbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFN3YXRoSGVpZ2h0Q1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTEJCaXRQZXJQ
aXhlbFs4XTsKMTQ0NzQ6ICBkb3VibGUgTGFzdFBpeGVsT2ZMaW5lRXh0cmFXYXRlcm1hcms7CjE0
NDc0OiAgZG91YmxlIFRvdGFsRGF0YVJlYWRCYW5kd2lkdGg7CjE0NDc0OiAgdW5zaWduZWQgaW50
IFRvdGFsQWN0aXZlV3JpdGViYWNrOwoxNDQ3NDogIHVuc2lnbmVkIGludCBFZmZlY3RpdmVMQkxh
dGVuY3lIaWRpbmdTb3VyY2VMaW5lc0x1bWE7CjE0NDc0OiAgdW5zaWduZWQgaW50IEVmZmVjdGl2
ZUxCTGF0ZW5jeUhpZGluZ1NvdXJjZUxpbmVzQ2hyb21hOwoxNDQ3NDogIGRvdWJsZSBCYW5kd2lk
dGhBdmFpbGFibGVGb3JJbW1lZGlhdGVGbGlwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBQcmVmZXRj
aE1vZGVbNyArIDFdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBQcmVmZXRjaE1vZGVQZXJTdGF0
ZVs3ICsgMV1bMl07CjE0NDc0OiAgdW5zaWduZWQgaW50IE1pblByZWZldGNoTW9kZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgTWF4UHJlZmV0Y2hNb2RlOwoxNDQ3NDogIGJvb2wgQW55TGluZXNGb3JW
TU9yUm93VG9vTGFyZ2U7CjE0NDc0OiAgZG91YmxlIE1heFZTdGFydHVwOwoxNDQ3NDogIGJvb2wg
SWdub3JlVmlld3BvcnRQb3NpdGlvbmluZzsKMTQ0NzQ6ICBib29sIEVycm9yUmVzdWx0WzhdOwox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBEQ0ZDTEtEZWVwU2xlZXA7CjE0
NDc0OiAgZG91YmxlIFVyZ2VudFdhdGVybWFyazsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50RXh0cmFM
YXRlbmN5OwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tVcmdlbnRXYXRlcm1hcms7CjE0NDc0OiAg
ZG91YmxlIFN0dXR0ZXJFeGl0V2F0ZXJtYXJrOwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyRW50ZXJQ
bHVzRXhpdFdhdGVybWFyazsKMTQ0NzQ6ICBkb3VibGUgRFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJr
OwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CjE0NDc0
OiAgZG91YmxlIFN0dXR0ZXJFZmZpY2llbmN5OwoxNDQ3NDogIGRvdWJsZSBTdHV0dGVyRWZmaWNp
ZW5jeU5vdEluY2x1ZGluZ1ZCbGFuazsKMTQ0NzQ6ICBkb3VibGUgTm9uVXJnZW50TGF0ZW5jeVRv
bGVyYW5jZTsKMTQ0NzQ6ICBkb3VibGUgTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeVN1
cHBvcnRlZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBE
SVNQQ0xLX2NhbGN1bGF0ZWQ7CjE0NDc0OiAgZG91YmxlIERQUENMS19jYWxjdWxhdGVkWzhdOwox
NDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IFZVcGRhdGVPZmZzZXRQaXhbOF07CjE0NDc0OiAg
ZG91YmxlIFZVcGRhdGVXaWR0aFBpeFs4XTsKMTQ0NzQ6ICBkb3VibGUgVlJlYWR5T2Zmc2V0UGl4
WzhdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IFRvdEltbWVkaWF0ZUZsaXBCeXRlczsK
MTQ0NzQ6ICBkb3VibGUgVENhbGM7CjE0NDc0OiAKMTQ0NzQ6ICBkaXNwbGF5X2UyZV9waXBlX3Bh
cmFtc19zdCBjYWNoZV9waXBlc1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2FjaGVfbnVtX3Bp
cGVzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBwaXBlX3BsYW5lWzhdOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIGJvb2wgRW1iZWRkZWRQYW5lbFs4XTsKMTQ0NzQ6ICBib29sIFN1cHBv
cnRHRlg3Q29tcGF0aWJsZVRpbGluZ0luMzJicHBBbmQ2NGJwcDsKMTQ0NzQ6ICBkb3VibGUgTWF4
SFNDTFJhdGlvOwoxNDQ3NDogIGRvdWJsZSBNYXhWU0NMUmF0aW87CjE0NDc0OiAgdW5zaWduZWQg
aW50IE1heE51bVdyaXRlYmFjazsKMTQ0NzQ6ICBib29sIFdyaXRlYmFja0x1bWFBbmRDaHJvbWFT
Y2FsaW5nU3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgQ3Vyc29yNjRCcHBTdXBwb3J0OwoxNDQ3NDog
IGRvdWJsZSBEQ0ZDTEtQZXJTdGF0ZVs3ICsgMV07CjE0NDc0OiAgZG91YmxlIERDRkNMS1N0YXRl
WzcgKyAxXVsyXTsKMTQ0NzQ6ICBkb3VibGUgRmFicmljQ2xvY2tQZXJTdGF0ZVs3ICsgMV07CjE0
NDc0OiAgZG91YmxlIFNPQ0NMS1BlclN0YXRlWzcgKyAxXTsKMTQ0NzQ6ICBkb3VibGUgUEhZQ0xL
UGVyU3RhdGVbNyArIDFdOwoxNDQ3NDogIGRvdWJsZSBEVEJDTEtQZXJTdGF0ZVs3ICsgMV07CjE0
NDc0OiAgZG91YmxlIE1heERwcGNsa1s3ICsgMV07CjE0NDc0OiAgZG91YmxlIE1heERTQ0NMS1s3
ICsgMV07CjE0NDc0OiAgZG91YmxlIERSQU1TcGVlZFBlclN0YXRlWzcgKyAxXTsKMTQ0NzQ6ICBk
b3VibGUgTWF4RGlzcGNsa1s3ICsgMV07CjE0NDc0OiAgaW50IFZvbHRhZ2VPdmVycmlkZUxldmVs
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIFNjYWxlUmF0aW9BbmRUYXBzU3VwcG9ydDsK
MTQ0NzQ6ICBib29sIFNvdXJjZUZvcm1hdFBpeGVsQW5kU2NhblN1cHBvcnQ7CjE0NDc0OiAgZG91
YmxlIFRvdGFsQmFuZHdpZHRoQ29uc3VtZWRHQnl0ZVBlclNlY29uZDsKMTQ0NzQ6ICBib29sIERD
Q0VuYWJsZWRJbkFueVBsYW5lOwoxNDQ3NDogIGJvb2wgV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQ7
CjE0NDc0OiAgYm9vbCBXcml0ZWJhY2tNb2RlU3VwcG9ydDsKMTQ0NzQ6ICBib29sIFdyaXRlYmFj
azEwYnBjNDIwU3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgQmFuZHdpZHRoU3VwcG9ydFs3ICsgMV07
CjE0NDc0OiAgdW5zaWduZWQgaW50IFRvdGFsTnVtYmVyT2ZBY3RpdmVXcml0ZWJhY2s7CjE0NDc0
OiAgZG91YmxlIENyaXRpY2FsUG9pbnQ7CjE0NDc0OiAgZG91YmxlIFJldHVybkJXVG9EQ05QZXJT
dGF0ZTsKMTQ0NzQ6ICBib29sIElzRXJyb3JSZXN1bHRbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGJv
b2wgcHJlZmV0Y2hfdm1fYndfdmFsaWQ7CjE0NDc0OiAgYm9vbCBwcmVmZXRjaF9yb3dfYndfdmFs
aWQ7CjE0NDc0OiAgYm9vbCBOdW1iZXJPZk9UR1N1cHBvcnQ7CjE0NDc0OiAgYm9vbCBOb25zdXBw
b3J0ZWREU0NJbnB1dEJQQzsKMTQ0NzQ6ICBib29sIFdyaXRlYmFja1NjYWxlUmF0aW9BbmRUYXBz
U3VwcG9ydDsKMTQ0NzQ6ICBib29sIEN1cnNvclN1cHBvcnQ7CjE0NDc0OiAgYm9vbCBQaXRjaFN1
cHBvcnQ7CjE0NDc0OiAgZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBWYWxpZGF0aW9uU3RhdHVz
WzcgKyAxXTsKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tMaW5lQnVmZmVyTHVtYUJ1
ZmZlclNpemU7CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0xpbmVCdWZmZXJDaHJvbWFCdWZmZXJT
aXplOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tNaW5IU0NMUmF0aW87CjE0NDc0OiAgZG91Ymxl
IFdyaXRlYmFja01pblZTQ0xSYXRpbzsKMTQ0NzQ6ICBkb3VibGUgV3JpdGViYWNrTWF4SFNDTFJh
dGlvOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tNYXhWU0NMUmF0aW87CjE0NDc0OiAgZG91Ymxl
IFdyaXRlYmFja01heEhTQ0xUYXBzOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tNYXhWU0NMVGFw
czsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWF4TnVtRFBQOwoxNDQ3NDogIHVuc2lnbmVkIGludCBN
YXhOdW1PVEc7CjE0NDc0OiAgZG91YmxlIEN1cnNvckJ1ZmZlclNpemU7CjE0NDc0OiAgZG91Ymxl
IEN1cnNvckNodW5rU2l6ZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTW9kZTsKMTQ0NzQ6ICBkb3Vi
bGUgT3V0cHV0TGlua0RQTGFuZXNbOF07CjE0NDc0OiAgZG91YmxlIEZvcmNlZE91dHB1dExpbmtC
UFBbOF07CjE0NDc0OiAgZG91YmxlIEltbWVkaWF0ZUZsaXBCV1s4XTsKMTQ0NzQ6ICBkb3VibGUg
TWF4TWF4VlN0YXJ0dXBbNyArIDFdWzJdOwoxNDQ3NDogCjE0NDc0OiAgZG91YmxlIFdyaXRlYmFj
a0x1bWFWRXh0cmE7CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0Nocm9tYVZFeHRyYTsKMTQ0NzQ6
ICBkb3VibGUgV3JpdGViYWNrUmVxdWlyZWRESVNQQ0xLOwoxNDQ3NDogIGRvdWJsZSBNYXhpbXVt
U3dhdGhXaWR0aFN1cHBvcnQ7CjE0NDc0OiAgZG91YmxlIE1heGltdW1Td2F0aFdpZHRoSW5ERVRC
dWZmZXI7CjE0NDc0OiAgZG91YmxlIE1heGltdW1Td2F0aFdpZHRoSW5MaW5lQnVmZmVyOwoxNDQ3
NDogIGRvdWJsZSBNYXhEaXNwY2xrUm91bmRlZERvd25Ub0RGU0dyYW51bGFyaXR5OwoxNDQ3NDog
IGRvdWJsZSBNYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3JhbnVsYXJpdHk7CjE0NDc0OiAgZG91
YmxlIFBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aG91dE9ETUNvbWJpbmU7CjE0NDc0OiAgZG91Ymxl
IFBsYW5lUmVxdWlyZWRESVNQQ0xLV2l0aE9ETUNvbWJpbmU7CjE0NDc0OiAgZG91YmxlIFBsYW5l
UmVxdWlyZWRESVNQQ0xLOwoxNDQ3NDogIGRvdWJsZSBUb3RhbE51bWJlck9mQWN0aXZlT1RHOwox
NDQ3NDogIGRvdWJsZSBGRUNPdmVyaGVhZDsKMTQ0NzQ6ICBkb3VibGUgRWZmZWN0aXZlRkVDT3Zl
cmhlYWQ7CjE0NDc0OiAgZG91YmxlIE91dGJwcDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgT3V0YnBw
RFNDOwoxNDQ3NDogIGRvdWJsZSBUb3RhbERTQ1VuaXRzUmVxdWlyZWQ7CjE0NDc0OiAgZG91Ymxl
IGJwcDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc2xpY2VzOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdp
ZHRoR3JhbnVsYXJpdHlZOwoxNDQ3NDogIGRvdWJsZSBSb3VuZGVkVXBNYXhTd2F0aFNpemVCeXRl
c1k7CjE0NDc0OiAgZG91YmxlIFN3YXRoV2lkdGhHcmFudWxhcml0eUM7CjE0NDc0OiAgZG91Ymxl
IFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzQzsKMTQ0NzQ6ICBkb3VibGUgRWZmZWN0aXZlREVU
TEJMaW5lc0x1bWE7CjE0NDc0OiAgZG91YmxlIEVmZmVjdGl2ZURFVExCTGluZXNDaHJvbWE7CjE0
NDc0OiAgZG91YmxlIFByb2plY3RlZERDRkNMS0RlZXBTbGVlcFs3ICsgMV1bMl07CjE0NDc0OiAg
ZG91YmxlIFBERUFuZE1ldGFQVEVCeXRlc1BlckZyYW1lWTsKMTQ0NzQ6ICBkb3VibGUgUERFQW5k
TWV0YVBURUJ5dGVzUGVyRnJhbWVDOwoxNDQ3NDogIHVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZXNZ
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZXNDOwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBEUFRFQnl0ZXNQZXJSb3dDOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEUFRFQnl0ZXNQZXJSb3dZ
OwoxNDQ3NDogIGRvdWJsZSBFeHRyYUxhdGVuY3k7CjE0NDc0OiAgZG91YmxlIFRpbWVDYWxjOwox
NDQ3NDogIGRvdWJsZSBUV2FpdDsKMTQ0NzQ6ICBkb3VibGUgTWF4aW11bVJlYWRCYW5kd2lkdGhX
aXRoUHJlZmV0Y2g7CjE0NDc0OiAgZG91YmxlIE1heGltdW1SZWFkQmFuZHdpZHRoV2l0aG91dFBy
ZWZldGNoOwoxNDQ3NDogIGRvdWJsZSB0b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXA7CjE0NDc0
OiAgZG91YmxlIHRvdGFsX2Rjbl9yZWFkX2J3X3dpdGhfZmxpcF9ub191cmdlbnRfYnVyc3Q7CjE0
NDc0OiAgZG91YmxlIEZyYWN0aW9uT2ZVcmdlbnRCYW5kd2lkdGg7CjE0NDc0OiAgZG91YmxlIEZy
YWN0aW9uT2ZVcmdlbnRCYW5kd2lkdGhJbW1lZGlhdGVGbGlwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBkb3VibGUgSWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbNyArIDFdWzJdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBOb09mRFBQWzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBpbnQgTm9PZkRQ
UFRoaXNTdGF0ZVs4XTsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVu
YWJsZVBlclN0YXRlWzcgKyAxXVs4XTsKMTQ0NzQ6ICBkb3VibGUgU3dhdGhXaWR0aFlUaGlzU3Rh
dGVbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q1BlclN0YXRlWzcgKyAxXVsy
XVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZVGhpc1N0YXRlWzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBTd2F0aEhlaWdodENUaGlzU3RhdGVbOF07CjE0NDc0OiAgZG91Ymxl
IFZSYXRpb1ByZVlbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBWUmF0aW9QcmVDWzcgKyAx
XVsyXVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVxdWlyZWRQcmVmZXRjaFBpeGVsRGF0YUJXTHVtYVs3
ICsgMV1bMl1bOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVkUHJlZmV0Y2hQaXhlbERhdGFCV0No
cm9tYVs3ICsgMV1bMl1bOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVkRFBQQ0xLWzcgKyAxXVsy
XVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVxdWlyZWREUFBDTEtUaGlzU3RhdGVbOF07CjE0NDc0OiAg
Ym9vbCBQVEVCdWZmZXJTaXplTm90RXhjZWVkZWRZWzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBib29s
IFBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGJvb2wgQmFu
ZHdpZHRoV2l0aG91dFByZWZldGNoU3VwcG9ydGVkWzcgKyAxXVsyXTsKMTQ0NzQ6ICBib29sIFBy
ZWZldGNoU3VwcG9ydGVkWzcgKyAxXVsyXTsKMTQ0NzQ6ICBib29sIFZSYXRpb0luUHJlZmV0Y2hT
dXBwb3J0ZWRbNyArIDFdWzJdOwoxNDQ3NDogIGRvdWJsZSBSZXF1aXJlZERJU1BDTEtbNyArIDFd
WzJdOwoxNDQ3NDogIGJvb2wgRElTUENMS19EUFBDTEtfU3VwcG9ydFs3ICsgMV1bMl07CjE0NDc0
OiAgYm9vbCBUb3RhbEF2YWlsYWJsZVBpcGVzU3VwcG9ydFs3ICsgMV1bMl07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFRvdGFsTnVtYmVyT2ZBY3RpdmVEUFBbNyArIDFdWzJdOwoxNDQ3NDogIHVuc2ln
bmVkIGludCBUb3RhbE51bWJlck9mRENDQWN0aXZlRFBQWzcgKyAxXVsyXTsKMTQ0NzQ6ICBib29s
IE1vZGVTdXBwb3J0WzcgKyAxXVsyXTsKMTQ0NzQ6ICBkb3VibGUgUmV0dXJuQldQZXJTdGF0ZVs3
ICsgMV1bMl07CjE0NDc0OiAgYm9vbCBESU9TdXBwb3J0WzcgKyAxXTsKMTQ0NzQ6ICBib29sIE5v
dEVub3VnaERTQ1VuaXRzWzcgKyAxXTsKMTQ0NzQ6ICBib29sIERTQ0NMS1JlcXVpcmVkTW9yZVRo
YW5TdXBwb3J0ZWRbNyArIDFdOwoxNDQ3NDogIGJvb2wgRFRCQ0xLUmVxdWlyZWRNb3JlVGhhblN1
cHBvcnRlZFs3ICsgMV07CjE0NDc0OiAgZG91YmxlIFVyZ2VudFJvdW5kVHJpcEFuZE91dE9mT3Jk
ZXJMYXRlbmN5UGVyU3RhdGVbNyArIDFdOwoxNDQ3NDogIGJvb2wgUk9CU3VwcG9ydFs3ICsgMV1b
Ml07CjE0NDc0OiAgYm9vbCBQVEVCdWZmZXJTaXplTm90RXhjZWVkZWRbNyArIDFdWzJdOwoxNDQ3
NDogIGJvb2wgVG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbNyArIDFdWzJdOwox
NDQ3NDogIGRvdWJsZSBNYXhUb3RhbFZlcnRpY2FsQWN0aXZlQXZhaWxhYmxlQmFuZHdpZHRoWzcg
KyAxXVsyXTsKMTQ0NzQ6ICBkb3VibGUgUHJlZmV0Y2hCV1s4XTsKMTQ0NzQ6ICBkb3VibGUgUERF
QW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBNZXRh
Um93Qnl0ZXNbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBEUFRFQnl0ZXNQZXJSb3dbNyAr
IDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBQcmVmZXRjaExpbmVzWVs3ICsgMV1bMl1bOF07CjE0
NDc0OiAgZG91YmxlIFByZWZldGNoTGluZXNDWzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgTWF4TnVtU3dZWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBNYXhOdW1Td0NbOF07CjE0
NDc0OiAgZG91YmxlIFByZWZpbGxZWzhdOwoxNDQ3NDogIGRvdWJsZSBQcmVmaWxsQ1s4XTsKMTQ0
NzQ6ICBkb3VibGUgTGluZVRpbWVzRm9yUHJlZmV0Y2hbOF07CjE0NDc0OiAgZG91YmxlIExpbmVz
Rm9yTWV0YVBURVs4XTsKMTQ0NzQ6ICBkb3VibGUgTGluZXNGb3JNZXRhQW5kRFBURVJvd1s4XTsK
MTQ0NzQ6ICBkb3VibGUgTWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBbOF07CjE0NDc0OiAgZG91Ymxl
IFN3YXRoV2lkdGhZU2luZ2xlRFBQWzhdOwoxNDQ3NDogIGRvdWJsZSBCeXRlUGVyUGl4ZWxJbkRF
VFlbOF07CjE0NDc0OiAgZG91YmxlIEJ5dGVQZXJQaXhlbEluREVUQ1s4XTsKMTQ0NzQ6ICBib29s
IFJlcXVpcmVzRFNDWzcgKyAxXVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTnVtYmVyT2ZEU0NT
bGljZVs3ICsgMV1bOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVzRkVDWzcgKyAxXVs4XTsKMTQ0
NzQ6ICBkb3VibGUgT3V0cHV0QnBwUGVyU3RhdGVbNyArIDFdWzhdOwoxNDQ3NDogIGRvdWJsZSBE
U0NEZWxheVBlclN0YXRlWzcgKyAxXVs4XTsKMTQ0NzQ6ICBib29sIFZpZXdwb3J0U2l6ZVN1cHBv
cnRbNyArIDFdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBSZWFkMjU2QmxvY2tIZWlnaHRZWzhd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBSZWFkMjU2QmxvY2tXaWR0aFlbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IFJlYWQyNTZCbG9ja0hlaWdodENbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFJl
YWQyNTZCbG9ja1dpZHRoQ1s4XTsKMTQ0NzQ6ICBkb3VibGUgTWF4U3dhdGhIZWlnaHRZWzhdOwox
NDQ3NDogIGRvdWJsZSBNYXhTd2F0aEhlaWdodENbOF07CjE0NDc0OiAgZG91YmxlIE1pblN3YXRo
SGVpZ2h0WVs4XTsKMTQ0NzQ6ICBkb3VibGUgTWluU3dhdGhIZWlnaHRDWzhdOwoxNDQ3NDogIGRv
dWJsZSBSZWFkQmFuZHdpZHRoTHVtYVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVhZEJhbmR3aWR0aENo
cm9tYVs4XTsKMTQ0NzQ6ICBkb3VibGUgUmVhZEJhbmR3aWR0aFs4XTsKMTQ0NzQ6ICBkb3VibGUg
V3JpdGVCYW5kd2lkdGhbOF07CjE0NDc0OiAgZG91YmxlIFBTQ0xfRkFDVE9SWzhdOwoxNDQ3NDog
IGRvdWJsZSBQU0NMX0ZBQ1RPUl9DSFJPTUFbOF07CjE0NDc0OiAgZG91YmxlIE1heGltdW1WU3Rh
cnR1cFs3ICsgMV1bMl1bOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IE1hY3JvVGlsZVdpZHRoWVs4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWFjcm9UaWxlV2lkdGhDWzhdOwoxNDQ3NDogIGRvdWJs
ZSBBbGlnbmVkRENDTWV0YVBpdGNoWzhdOwoxNDQ3NDogIGRvdWJsZSBBbGlnbmVkWVBpdGNoWzhd
OwoxNDQ3NDogIGRvdWJsZSBBbGlnbmVkQ1BpdGNoWzhdOwoxNDQ3NDogIGRvdWJsZSBNYXhpbXVt
U3dhdGhXaWR0aFs4XTsKMTQ0NzQ6ICBkb3VibGUgY3Vyc29yX2J3WzhdOwoxNDQ3NDogIGRvdWJs
ZSBjdXJzb3JfYndfcHJlWzhdOwoxNDQ3NDogIGRvdWJsZSBUbm9fYndbOF07CjE0NDc0OiAgZG91
YmxlIHByZWZldGNoX3Ztcm93X2J3WzhdOwoxNDQ3NDogIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVz
VG9SZXF1ZXN0Vk1JbkltbWVkaWF0ZUZsaXBbOF07CjE0NDc0OiAgZG91YmxlIERlc3RpbmF0aW9u
TGluZXNUb1JlcXVlc3RSb3dJbkltbWVkaWF0ZUZsaXBbOF07CjE0NDc0OiAgZG91YmxlIGZpbmFs
X2ZsaXBfYndbOF07CjE0NDc0OiAgYm9vbCBJbW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yU3RhdGVb
NyArIDFdWzJdOwoxNDQ3NDogIGRvdWJsZSBXcml0ZWJhY2tEZWxheVs3ICsgMV1bOF07CjE0NDc0
OiAgdW5zaWduZWQgaW50IHZtX2dyb3VwX2J5dGVzWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
cHRlX2dyb3VwX2J5dGVzWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRb
OF07CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfcmVxX2hlaWdodFs4XTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbWV0YV9yZXFfd2lkdGhbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IG1ldGFfcm93
X2hlaWdodFs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfd2lkdGhbOF07CjE0NDc0
OiAgdW5zaWduZWQgaW50IGRwdGVfcm93X2hlaWdodF9jaHJvbWFbOF07CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG1ldGFfcmVxX2hlaWdodF9jaHJvbWFbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IG1l
dGFfcmVxX3dpZHRoX2Nocm9tYVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVp
Z2h0X2Nocm9tYVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfd2lkdGhfY2hyb21h
WzhdOwoxNDQ3NDogIGJvb2wgSW1tZWRpYXRlRmxpcFN1cHBvcnRlZEZvclBpcGVbOF07CjE0NDc0
OiAgZG91YmxlIG1ldGFfcm93X2J3WzhdOwoxNDQ3NDogIGRvdWJsZSBkcHRlX3Jvd19id1s4XTsK
MTQ0NzQ6ICBkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lTHVtYVs4XTsKMTQ0NzQ6
ICBkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hWzhdOwoxNDQ3NDogIGRv
dWJsZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hWzhdOwoxNDQ3NDogIGRvdWJs
ZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVDaHJvbWFbOF07CjE0NDc0OiAgZW51bSBj
bG9ja19jaGFuZ2Vfc3VwcG9ydCBEUkFNQ2xvY2tDaGFuZ2VTdXBwb3J0WzcgKyAxXVsyXTsKMTQ0
NzQ6ICBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JDdXJzb3JbOF07CjE0NDc0OiAgZG91YmxlIFVy
Z2VudEJ1cnN0RmFjdG9yQ3Vyc29yUHJlWzhdOwoxNDQ3NDogIGRvdWJsZSBVcmdlbnRCdXJzdEZh
Y3Rvckx1bWFbOF07CjE0NDc0OiAgZG91YmxlIFVyZ2VudEJ1cnN0RmFjdG9yTHVtYVByZVs4XTsK
MTQ0NzQ6ICBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JDaHJvbWFbOF07CjE0NDc0OiAgZG91Ymxl
IFVyZ2VudEJ1cnN0RmFjdG9yQ2hyb21hUHJlWzhdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBi
b29sIE1QQ0NvbWJpbmVbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdpZHRoQ1Np
bmdsZURQUFs4XTsKMTQ0NzQ6ICBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXJM
dW1hOwoxNDQ3NDogIGRvdWJsZSBNYXhpbXVtU3dhdGhXaWR0aEluTGluZUJ1ZmZlckNocm9tYTsK
MTQ0NzQ6ICBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhMdW1hWzhdOwoxNDQ3NDogIGRvdWJsZSBN
YXhpbXVtU3dhdGhXaWR0aENocm9tYVs4XTsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX21vZGUg
b2RtX2NvbWJpbmVfZHVtbXlbOF07CjE0NDc0OiAgZG91YmxlIGR1bW15MVs4XTsKMTQ0NzQ6ICBk
b3VibGUgZHVtbXkyWzhdOwoxNDQ3NDogIGRvdWJsZSBkdW1teTNbOF07CjE0NDc0OiAgZG91Ymxl
IGR1bW15NFs4XTsKMTQ0NzQ6ICBkb3VibGUgZHVtbXk1OwoxNDQ3NDogIGRvdWJsZSBkdW1teTY7
CjE0NDc0OiAgZG91YmxlIGR1bW15N1s4XTsKMTQ0NzQ6ICBkb3VibGUgZHVtbXk4WzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxbXNbOF07CjE0NDc0OiAgZG91YmxlIGR1bW15
aW50ZWdlcjJtc1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyM1s4XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNFs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZHVtbXlpbnRlZ2VyNTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNjsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlp
bnRlZ2VyODsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyOTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgZHVtbXlpbnRlZ2VyMTA7CjE0NDc0OiAgdW5zaWduZWQgaW50IGR1bW15aW50ZWdl
cjExOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxMjsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgZHVtbXlpbnRlZ2VyYXJyMVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRl
Z2VyYXJyMls4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyYXJyM1s4XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyYXJyNFs4XTsKMTQ0NzQ6ICBib29sIGR1bW15
c2luZ2xlc3RyaW5nOwoxNDQ3NDogIGJvb2wgU2luZ2xlRFBQVmlld3BvcnRTaXplU3VwcG9ydFBl
clBsYW5lWzhdOwoxNDQ3NDogIGRvdWJsZSBQbGFuZVJlcXVpcmVkRElTUENMS1dpdGhPRE1Db21i
aW5lMlRvMTsKMTQ0NzQ6ICBkb3VibGUgUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmlu
ZTRUbzE7CjE0NDc0OiAgdW5zaWduZWQgaW50IFRvdGFsTnVtYmVyT2ZTaW5nbGVEUFBQbGFuZXNb
NyArIDFdWzJdOwoxNDQ3NDogIGJvb2wgTGlua0RTQ0VuYWJsZTsKMTQ0NzQ6ICBib29sIE9ETUNv
bWJpbmU0VG8xU3VwcG9ydENoZWNrT0tbNyArIDFdOwoxNDQ3NDogIGVudW0gb2RtX2NvbWJpbmVf
bW9kZSBPRE1Db21iaW5lRW5hYmxlVGhpc1N0YXRlWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdp
ZHRoQ1RoaXNTdGF0ZVs4XTsKMTQ0NzQ6ICBib29sIFZpZXdwb3J0U2l6ZVN1cHBvcnRQZXJQbGFu
ZVs4XTsKMTQ0NzQ6ICBkb3VibGUgQWxpZ25lZERDQ01ldGFQaXRjaFlbOF07CjE0NDc0OiAgZG91
YmxlIEFsaWduZWREQ0NNZXRhUGl0Y2hDWzhdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50
IE5vdEVub3VnaFVyZ2VudExhdGVuY3lIaWRpbmc7CjE0NDc0OiAgdW5zaWduZWQgaW50IE5vdEVu
b3VnaFVyZ2VudExhdGVuY3lIaWRpbmdQcmU7CjE0NDc0OiAgaW50IFBURUJ1ZmZlclNpemVJblJl
cXVlc3RzRm9yTHVtYTsKMTQ0NzQ6ICBpbnQgUFRFQnVmZmVyU2l6ZUluUmVxdWVzdHNGb3JDaHJv
bWE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBkcHRlX2dyb3VwX2J5dGVzX2Nocm9tYTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdm1fZ3JvdXBfYnl0ZXNfY2hyb21hOwoxNDQ3NDogIGRvdWJs
ZSBkc3RfeF9hZnRlcl9zY2FsZXI7CjE0NDc0OiAgZG91YmxlIGRzdF95X2FmdGVyX3NjYWxlcjsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgVlN0YXJ0dXBSZXF1aXJlZFdoZW5Ob3RFbm91Z2hUaW1lRm9y
RHluYW1pY01ldGFkYXRhOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBkb3VibGUgUHJlZmV0Y2hC
YW5kd2lkdGhbOF07CjE0NDc0OiAgZG91YmxlIFZJbml0UHJlRmlsbFlbOF07CjE0NDc0OiAgZG91
YmxlIFZJbml0UHJlRmlsbENbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IE1heE51bVN3YXRoWVs4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTWF4TnVtU3dhdGhDWzhdOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBWU3RhcnR1cFs4XTsKMTQ0NzQ6ICBkb3VibGUgRFNUWUFmdGVyU2NhbGVyWzhdOwoxNDQ3
NDogIGRvdWJsZSBEU1RYQWZ0ZXJTY2FsZXJbOF07CjE0NDc0OiAgYm9vbCBBbGxvd0RSQU1DbG9j
a0NoYW5nZUR1cmluZ1ZCbGFua1s4XTsKMTQ0NzQ6ICBib29sIEFsbG93RFJBTVNlbGZSZWZyZXNo
RHVyaW5nVkJsYW5rWzhdOwoxNDQ3NDogIGRvdWJsZSBWUmF0aW9QcmVmZXRjaFlbOF07CjE0NDc0
OiAgZG91YmxlIFZSYXRpb1ByZWZldGNoQ1s4XTsKMTQ0NzQ6ICBkb3VibGUgRGVzdGluYXRpb25M
aW5lc0ZvclByZWZldGNoWzhdOwoxNDQ3NDogIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1
ZXN0Vk1JblZCbGFua1s4XTsKMTQ0NzQ6ICBkb3VibGUgRGVzdGluYXRpb25MaW5lc1RvUmVxdWVz
dFJvd0luVkJsYW5rWzhdOwoxNDQ3NDogIGRvdWJsZSBNaW5UVFVWQmxhbmtbOF07CjE0NDc0OiAg
ZG91YmxlIEJ5dGVQZXJQaXhlbERFVFlbOF07CjE0NDc0OiAgZG91YmxlIEJ5dGVQZXJQaXhlbERF
VENbOF07CjE0NDc0OiAgZG91YmxlIFN3YXRoV2lkdGhZWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0
aFdpZHRoU2luZ2xlRFBQWVs4XTsKMTQ0NzQ6ICBkb3VibGUgQ3Vyc29yUmVxdWVzdERlbGl2ZXJ5
VGltZVs4XTsKMTQ0NzQ6ICBkb3VibGUgQ3Vyc29yUmVxdWVzdERlbGl2ZXJ5VGltZVByZWZldGNo
WzhdOwoxNDQ3NDogIGRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hWzhdOwoxNDQ3NDogIGRv
dWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVDaHJvbWFbOF07CjE0NDc0OiAgZG91YmxlIERpc3BsYXlQ
aXBlTGluZURlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFs4XTsKMTQ0NzQ6ICBkb3VibGUgRGlzcGxh
eVBpcGVMaW5lRGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2hbOF07CjE0NDc0OiAgZG91YmxlIERp
c3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUx1bWFQcmVmZXRjaFs4XTsKMTQ0NzQ6ICBkb3Vi
bGUgRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1lQ2hyb21hUHJlZmV0Y2hbOF07CjE0NDc0
OiAgZG91YmxlIFBpeGVsUFRFQnl0ZXNQZXJSb3dbOF07CjE0NDc0OiAgZG91YmxlIFBERUFuZE1l
dGFQVEVCeXRlc0ZyYW1lWzhdOwoxNDQ3NDogIGRvdWJsZSBNZXRhUm93Qnl0ZVs4XTsKMTQ0NzQ6
ICBkb3VibGUgUHJlZmV0Y2hTb3VyY2VMaW5lc1lbOF07CjE0NDc0OiAgZG91YmxlIFJlcXVpcmVk
UHJlZmV0Y2hQaXhEYXRhQldMdW1hWzhdOwoxNDQ3NDogIGRvdWJsZSBSZXF1aXJlZFByZWZldGNo
UGl4RGF0YUJXQ2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSBQcmVmZXRjaFNvdXJjZUxpbmVzQ1s4
XTsKMTQ0NzQ6ICBkb3VibGUgUFNDTF9USFJPVUdIUFVUX0xVTUFbOF07CjE0NDc0OiAgZG91Ymxl
IFBTQ0xfVEhST1VHSFBVVF9DSFJPTUFbOF07CjE0NDc0OiAgZG91YmxlIERTQ0NMS19jYWxjdWxh
dGVkWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEU0NEZWxheVs4XTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgTWF4VlN0YXJ0dXBMaW5lc1s4XTsKMTQ0NzQ6ICBkb3VibGUgRFBQQ0xLVXNpbmdTaW5n
bGVEUFBbOF07CjE0NDc0OiAgZG91YmxlIERQUENMS1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
RENDWU1heFVuY29tcHJlc3NlZEJsb2NrWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEQ0NZTWF4
Q29tcHJlc3NlZEJsb2NrWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEQ0NZSW5kZXBlbmRlbnQ2
NEJ5dGVCbG9ja1s4XTsKMTQ0NzQ6ICBkb3VibGUgTWF4aW11bURDQ0NvbXByZXNzaW9uWVN1cmZh
Y2VbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNZWzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBCbG9ja0hlaWdodDI1NkJ5dGVzQ1s4XTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzWVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgQmxvY2tX
aWR0aDI1NkJ5dGVzQ1s4XTsKMTQ0NzQ6ICBkb3VibGUgWEZDU2xhdmVWVXBkYXRlT2Zmc2V0Wzhd
OwoxNDQ3NDogIGRvdWJsZSBYRkNTbGF2ZVZ1cGRhdGVXaWR0aFs4XTsKMTQ0NzQ6ICBkb3VibGUg
WEZDU2xhdmVWUmVhZHlPZmZzZXRbOF07CjE0NDc0OiAgZG91YmxlIFhGQ1RyYW5zZmVyRGVsYXlb
OF07CjE0NDc0OiAgZG91YmxlIFhGQ1ByZWNoYXJnZURlbGF5WzhdOwoxNDQ3NDogIGRvdWJsZSBY
RkNSZW1vdGVTdXJmYWNlRmxpcExhdGVuY3lbOF07CjE0NDc0OiAgZG91YmxlIFhGQ1ByZWZldGNo
TWFyZ2luWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3Jvd193aWR0aF9sdW1hX3ViWzhd
OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkcHRlX3Jvd193aWR0aF9jaHJvbWFfdWJbOF07CjE0NDc0
OiAgZG91YmxlIEZ1bGxERVRCdWZmZXJpbmdUaW1lWVs4XTsKMTQ0NzQ6ICBkb3VibGUgRnVsbERF
VEJ1ZmZlcmluZ1RpbWVDWzhdOwoxNDQ3NDogIGRvdWJsZSBEU1RfWV9QRVJfUFRFX1JPV19OT01f
TFs4XTsKMTQ0NzQ6ICBkb3VibGUgRFNUX1lfUEVSX1BURV9ST1dfTk9NX0NbOF07CjE0NDc0OiAg
ZG91YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fTFs4XTsKMTQ0NzQ6ICBkb3VibGUgVGltZVBl
ck1ldGFDaHVua05vbWluYWxbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJNZXRhQ2h1bmtWQmxh
bmtbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJNZXRhQ2h1bmtGbGlwWzhdOwoxNDQ3NDogIHVu
c2lnbmVkIGludCBzd2F0aF93aWR0aF9sdW1hX3ViWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBz
d2F0aF93aWR0aF9jaHJvbWFfdWJbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFBpeGVsUFRFUmVx
V2lkdGhZWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBQaXhlbFBURVJlcUhlaWdodFlbOF07CjE0
NDc0OiAgdW5zaWduZWQgaW50IFBURVJlcXVlc3RTaXplWVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgUGl4ZWxQVEVSZXFXaWR0aENbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFBpeGVsUFRFUmVx
SGVpZ2h0Q1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgUFRFUmVxdWVzdFNpemVDWzhdOwoxNDQ3
NDogIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBfbm9tX2x1bWFbOF07CjE0NDc0OiAgZG91Ymxl
IHRpbWVfcGVyX3B0ZV9ncm91cF9ub21fY2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSB0aW1lX3Bl
cl9wdGVfZ3JvdXBfdmJsYW5rX2x1bWFbOF07CjE0NDc0OiAgZG91YmxlIHRpbWVfcGVyX3B0ZV9n
cm91cF92YmxhbmtfY2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBf
ZmxpcF9sdW1hWzhdOwoxNDQ3NDogIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBfZmxpcF9jaHJv
bWFbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJWTUdyb3VwVkJsYW5rWzhdOwoxNDQ3NDogIGRv
dWJsZSBUaW1lUGVyVk1Hcm91cEZsaXBbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJWTVJlcXVl
c3RWQmxhbmtbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJWTVJlcXVlc3RGbGlwWzhdOwoxNDQ3
NDogIHVuc2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfbFs4XTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1lX3ViX2xbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IGRwZGUwX2J5dGVzX3Blcl9mcmFtZV91Yl9jWzhdOwoxNDQ3NDogIHVuc2lnbmVk
IGludCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfY1s4XTsKMTQ0NzQ6ICBkb3VibGUgTGlu
ZXNUb0ZpbmlzaFN3YXRoVHJhbnNmZXJTdHV0dGVyQ3JpdGljYWxQbGFuZTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgQnl0ZVBlclBpeGVsWUNyaXRpY2FsUGxhbmU7CjE0NDc0OiAgZG91YmxlIFN3YXRo
V2lkdGhZQ3JpdGljYWxQbGFuZTsKMTQ0NzQ6ICBkb3VibGUgTGluZXNJbkRFVFlbOF07CjE0NDc0
OiAgZG91YmxlIExpbmVzSW5ERVRZUm91bmRlZERvd25Ub1N3YXRoWzhdOwoxNDQ3NDogCjE0NDc0
OiAgZG91YmxlIFN3YXRoV2lkdGhTaW5nbGVEUFBDWzhdOwoxNDQ3NDogIGRvdWJsZSBTd2F0aFdp
ZHRoQ1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsWVs4XTsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsQ1s4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlp
bnRlZ2VyMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjsKMTQ0NzQ6ICBkb3Vi
bGUgRmluYWxEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5OwoxNDQ3NDogIGRvdWJsZSBUZG1kbF92bVs4
XTsKMTQ0NzQ6ICBkb3VibGUgVGRtZGxbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFRoaXNWU3Rh
cnR1cDsKMTQ0NzQ6ICBib29sIFdyaXRlYmFja0FsbG93RFJBTUNsb2NrQ2hhbmdlRW5kUG9zaXRp
b25bOF07CjE0NDc0OiAgZG91YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ1s4XTsKMTQ0NzQ6
ICBkb3VibGUgVGltZVBlckNocm9tYU1ldGFDaHVua05vbWluYWxbOF07CjE0NDc0OiAgZG91Ymxl
IFRpbWVQZXJDaHJvbWFNZXRhQ2h1bmtWQmxhbmtbOF07CjE0NDc0OiAgZG91YmxlIFRpbWVQZXJD
aHJvbWFNZXRhQ2h1bmtGbGlwWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBEQ0NDTWF4VW5jb21w
cmVzc2VkQmxvY2tbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IERDQ0NNYXhDb21wcmVzc2VkQmxv
Y2tbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IERDQ0NJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrWzhd
OwoxNDQ3NDogIGRvdWJsZSBWU3RhcnR1cE1hcmdpbjsKMTQ0NzQ6ICBib29sIE5vdEVub3VnaFRp
bWVGb3JEeW5hbWljTWV0YWRhdGE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBNYXhpbXVtTWF4VlN0YXJ0dXBMaW5lczsKMTQ0NzQ6ICBkb3VibGUgRmFicmljQW5kRFJBTUJh
bmR3aWR0aDsKMTQ0NzQ6ICBkb3VibGUgTGluZXNJbkRFVEx1bWE7CjE0NDc0OiAgZG91YmxlIExp
bmVzSW5ERVRDaHJvbWE7CjE0NDc0OiAgdW5zaWduZWQgaW50IEltbWVkaWF0ZUZsaXBCeXRlc1s4
XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgTGluZXNJbkRFVENbOF07CjE0NDc0OiAgdW5zaWduZWQg
aW50IExpbmVzSW5ERVRDUm91bmRlZERvd25Ub1N3YXRoWzhdOwoxNDQ3NDogIGRvdWJsZSBVcmdl
bnRMYXRlbmN5U3VwcG9ydFVzUGVyU3RhdGVbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBV
cmdlbnRMYXRlbmN5U3VwcG9ydFVzWzhdOwoxNDQ3NDogIGRvdWJsZSBGYWJyaWNBbmREUkFNQmFu
ZHdpZHRoUGVyU3RhdGVbNyArIDFdOwoxNDQ3NDogIGJvb2wgVXJnZW50TGF0ZW5jeVN1cHBvcnRb
NyArIDFdWzJdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTd2F0aFdpZHRoWVBlclN0YXRlWzcgKyAx
XVsyXVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZUGVyU3RhdGVbNyArIDFd
WzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBxdWFsX3Jvd19id1s4XTsKMTQ0NzQ6ICBkb3VibGUgcHJl
ZmV0Y2hfcm93X2J3WzhdOwoxNDQ3NDogIGRvdWJsZSBwcmVmZXRjaF92bV9id1s4XTsKMTQ0NzQ6
IAoxNDQ3NDogIGRvdWJsZSBQVEVHcm91cFNpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IFBERVBy
b2Nlc3NpbmdCdWZJbjY0S0JSZXFzOwoxNDQ3NDogCjE0NDc0OiAgZG91YmxlIE1heFRvdGFsVkFj
dGl2ZVJEQmFuZHdpZHRoOwoxNDQ3NDogIGJvb2wgRG9VcmdlbnRMYXRlbmN5QWRqdXN0bWVudDsK
MTQ0NzQ6ICBkb3VibGUgVXJnZW50TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja0NvbXBvbmVu
dDsKMTQ0NzQ6ICBkb3VibGUgVXJnZW50TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja1JlZmVy
ZW5jZTsKMTQ0NzQ6ICBkb3VibGUgTWluVXJnZW50TGF0ZW5jeVN1cHBvcnRVczsKMTQ0NzQ6ICBk
b3VibGUgTWluRnVsbERFVEJ1ZmZlcmluZ1RpbWU7CjE0NDc0OiAgZG91YmxlIEF2ZXJhZ2VSZWFk
QmFuZHdpZHRoR0J5dGVQZXJTZWNvbmQ7CjE0NDc0OiAgYm9vbCBGaXJzdE1haW5QbGFuZTsKMTQ0
NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBWaWV3cG9ydFdpZHRoQ2hyb21hWzhdOwoxNDQ3NDog
IHVuc2lnbmVkIGludCBWaWV3cG9ydEhlaWdodENocm9tYVs4XTsKMTQ0NzQ6ICBkb3VibGUgSFJh
dGlvQ2hyb21hWzhdOwoxNDQ3NDogIGRvdWJsZSBWUmF0aW9DaHJvbWFbOF07CjE0NDc0OiAgaW50
IFdyaXRlYmFja1NvdXJjZVdpZHRoWzhdOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBNb2RlSXNTdXBw
b3J0ZWQ7CjE0NDc0OiAgYm9vbCBPRE1Db21iaW5lNFRvMVN1cHBvcnRlZDsKMTQ0NzQ6IAoxNDQ3
NDogIHVuc2lnbmVkIGludCBTdXJmYWNlV2lkdGhZWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBT
dXJmYWNlV2lkdGhDWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBTdXJmYWNlSGVpZ2h0WVs4XTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3VyZmFjZUhlaWdodENbOF07CjE0NDc0OiAgdW5zaWduZWQg
aW50IFdyaXRlYmFja0hUYXBzWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBXcml0ZWJhY2tWVGFw
c1s4XTsKMTQ0NzQ6ICBib29sIERTQ0VuYWJsZVs4XTsKMTQ0NzQ6IAoxNDQ3NDogIGRvdWJsZSBE
UkFNQ2xvY2tDaGFuZ2VMYXRlbmN5T3ZlcnJpZGU7CjE0NDc0OiAKMTQ0NzQ6ICBkb3VibGUgR1BV
Vk1NaW5QYWdlU2l6ZTsKMTQ0NzQ6ICBkb3VibGUgSG9zdFZNTWluUGFnZVNpemU7CjE0NDc0OiAK
MTQ0NzQ6ICBib29sIE1QQ0NvbWJpbmVFbmFibGVbOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IEhv
c3RWTU1heE5vbkNhY2hlZFBhZ2VUYWJsZUxldmVsczsKMTQ0NzQ6ICBib29sIER5bmFtaWNNZXRh
ZGF0YVZNRW5hYmxlZDsKMTQ0NzQ6ICBkb3VibGUgV3JpdGViYWNrSW50ZXJmYWNlQnVmZmVyU2l6
ZTsKMTQ0NzQ6ICBkb3VibGUgV3JpdGViYWNrTGluZUJ1ZmZlclNpemU7CjE0NDc0OiAKMTQ0NzQ6
ICBkb3VibGUgRENDUmF0ZUx1bWFbOF07CjE0NDc0OiAgZG91YmxlIERDQ1JhdGVDaHJvbWFbOF07
CjE0NDc0OiAKMTQ0NzQ6ICBkb3VibGUgUEhZQ0xLRDE4UGVyU3RhdGVbNyArIDFdOwoxNDQ3NDog
IGludCBNaW5Wb2x0YWdlTGV2ZWw7CjE0NDc0OiAgaW50IE1heFZvbHRhZ2VMZXZlbDsKMTQ0NzQ6
IAoxNDQ3NDogIGJvb2wgV3JpdGViYWNrU3VwcG9ydEludGVybGVhdmVBbmRVc2luZ1dob2xlQnVm
ZmVyRm9yQVNpbmdsZVN0cmVhbTsKMTQ0NzQ6ICBib29sIE51bWJlck9mSERNSUZSTFN1cHBvcnQ7
CjE0NDc0OiAgdW5zaWduZWQgaW50IE1heE51bUhETUlGUkxPdXRwdXRzOwoxNDQ3NDogIGludCBB
dWRpb1NhbXBsZVJhdGVbOF07CjE0NDc0OiAgaW50IEF1ZGlvU2FtcGxlTGF5b3V0WzhdOwoxNDQ3
NDogCjE0NDc0OiAgaW50IFBlcmNlbnRNYXJnaW5PdmVyTWluaW11bVJlcXVpcmVkRENGQ0xLOwox
NDQ3NDogIGJvb2wgRHluYW1pY01ldGFkYXRhU3VwcG9ydGVkWzcgKyAxXVsyXTsKMTQ0NzQ6ICBl
bnVtIGltbWVkaWF0ZV9mbGlwX3JlcXVpcmVtZW50IEltbWVkaWF0ZUZsaXBSZXF1aXJlbWVudDsK
MTQ0NzQ6ICBkb3VibGUgREVUQnVmZmVyU2l6ZVlUaGlzU3RhdGVbOF07CjE0NDc0OiAgZG91Ymxl
IERFVEJ1ZmZlclNpemVDVGhpc1N0YXRlWzhdOwoxNDQ3NDogIGJvb2wgTm9VcmdlbnRMYXRlbmN5
SGlkaW5nWzhdOwoxNDQ3NDogIGJvb2wgTm9VcmdlbnRMYXRlbmN5SGlkaW5nUHJlWzhdOwoxNDQ3
NDogIGludCBzd2F0aF93aWR0aF9sdW1hX3ViX3RoaXNfc3RhdGVbOF07CjE0NDc0OiAgaW50IHN3
YXRoX3dpZHRoX2Nocm9tYV91Yl90aGlzX3N0YXRlWzhdOwoxNDQ3NDogIGRvdWJsZSBVcmdMYXRl
bmN5WzcgKyAxXTsKMTQ0NzQ6ICBkb3VibGUgVkFjdGl2ZUN1cnNvckJhbmR3aWR0aFs3ICsgMV1b
Ml1bOF07CjE0NDc0OiAgZG91YmxlIFZBY3RpdmVQaXhlbEJhbmR3aWR0aFs3ICsgMV1bMl1bOF07
CjE0NDc0OiAgYm9vbCBOb1RpbWVGb3JQcmVmZXRjaFs3ICsgMV1bMl1bOF07CjE0NDc0OiAgYm9v
bCBOb1RpbWVGb3JEeW5hbWljTWV0YWRhdGFbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBk
cHRlX3Jvd19iYW5kd2lkdGhbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBtZXRhX3Jvd19i
YW5kd2lkdGhbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGRvdWJsZSBERVRCdWZmZXJTaXplWUFsbFN0
YXRlc1s3ICsgMV1bMl1bOF07CjE0NDc0OiAgZG91YmxlIERFVEJ1ZmZlclNpemVDQWxsU3RhdGVz
WzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBpbnQgc3dhdGhfd2lkdGhfbHVtYV91Yl9hbGxfc3RhdGVz
WzcgKyAxXVsyXVs4XTsKMTQ0NzQ6ICBpbnQgc3dhdGhfd2lkdGhfY2hyb21hX3ViX2FsbF9zdGF0
ZXNbNyArIDFdWzJdWzhdOwoxNDQ3NDogIGJvb2wgTm90VXJnZW50TGF0ZW5jeUhpZGluZ1s3ICsg
MV1bMl07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WUFsbFN0YXRlc1s3ICsgMV1b
Ml1bOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q0FsbFN0YXRlc1s3ICsgMV1b
Ml1bOF07CjE0NDc0OiAgdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZQWxsU3RhdGVzWzcgKyAxXVsy
XVs4XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aENBbGxTdGF0ZXNbNyArIDFdWzJd
WzhdOwoxNDQ3NDogIGRvdWJsZSBUb3RhbERQVEVSb3dCYW5kd2lkdGhbNyArIDFdWzJdOwoxNDQ3
NDogIGRvdWJsZSBUb3RhbE1ldGFSb3dCYW5kd2lkdGhbNyArIDFdWzJdOwoxNDQ3NDogIGRvdWJs
ZSBUb3RhbFZBY3RpdmVDdXJzb3JCYW5kd2lkdGhbNyArIDFdWzJdOwoxNDQ3NDogIGRvdWJsZSBU
b3RhbFZBY3RpdmVQaXhlbEJhbmR3aWR0aFs3ICsgMV1bMl07CjE0NDc0OiAgYm9vbCBVc2VNaW5p
bXVtUmVxdWlyZWREQ0ZDTEs7CjE0NDc0OiAgZG91YmxlIFdyaXRlYmFja0RlbGF5VGltZVs4XTsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgRENDWUluZGVwZW5kZW50QmxvY2tbOF07CjE0NDc0OiAgdW5z
aWduZWQgaW50IERDQ0NJbmRlcGVuZGVudEJsb2NrWzhdOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
dW1teWludGVnZXIxNTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMTY7CjE0NDc0
OiAgdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjE3OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1t
eWludGVnZXIxODsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMTk7CjE0NDc0OiAg
dW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjIwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWlu
dGVnZXIyMTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjI7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGR1bW15aW50ZWdlcjIzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWludGVn
ZXIyNDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjU7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGR1bW15aW50ZWdlcjI2OwoxNDQ3NDogIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIy
NzsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyMjg7CjE0NDc0OiAgdW5zaWduZWQg
aW50IGR1bW15aW50ZWdlcjI5OwoxNDQ3NDogIGJvb2wgZHVtbXlzdHJpbmdbOF07CjE0NDc0OiAg
ZG91YmxlIEJQUDsKMTQ0NzQ6ICBlbnVtIG9kbV9jb21iaW5lX3BvbGljeSBPRE1Db21iaW5lUG9s
aWN5OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBDYWxjdWxhdGVNaW5BbmRNYXhQcmVm
ZXRjaE1vZGUoCjE0NDc0OiAgIGVudW0gc2VsZl9yZWZyZXNoX2FmZmluaXR5IEFsbG93RFJBTVNl
bGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywKMTQ0NzQ6ICAgdW5zaWduZWQgaW50
ICpNaW5QcmVmZXRjaE1vZGUsCjE0NDc0OiAgIHVuc2lnbmVkIGludCAqTWF4UHJlZmV0Y2hNb2Rl
KTsKMTQ0NzQ6IAoxNDQ3NDogZG91YmxlIENhbGN1bGF0ZVdyaXRlQmFja0RJU1BDTEsoCjE0NDc0
OiAgIGVudW0gc291cmNlX2Zvcm1hdF9jbGFzcyBXcml0ZWJhY2tQaXhlbEZvcm1hdCwKMTQ0NzQ6
ICAgZG91YmxlIFBpeGVsQ2xvY2ssCjE0NDc0OiAgIGRvdWJsZSBXcml0ZWJhY2tIUmF0aW8sCjE0
NDc0OiAgIGRvdWJsZSBXcml0ZWJhY2tWUmF0aW8sCjE0NDc0OiAgIHVuc2lnbmVkIGludCBXcml0
ZWJhY2tMdW1hSFRhcHMsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBXcml0ZWJhY2tMdW1hVlRhcHMs
CjE0NDc0OiAgIHVuc2lnbmVkIGludCBXcml0ZWJhY2tDaHJvbWFIVGFwcywKMTQ0NzQ6ICAgdW5z
aWduZWQgaW50IFdyaXRlYmFja0Nocm9tYVZUYXBzLAoxNDQ3NDogICBkb3VibGUgV3JpdGViYWNr
RGVzdGluYXRpb25XaWR0aCwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IEhUb3RhbCwKMTQ0NzQ6ICAg
dW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYUxpbmVCdWZmZXJXaWR0aCk7CjE0NDc0OiAjIDMx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlf
bW9kZV9saWIuaCIgMgoxNDQ3NDogCjE0NDc0OiBlbnVtIGRtbF9wcm9qZWN0IHsKMTQ0NzQ6ICBE
TUxfUFJPSkVDVF9VTkRFRklORUQsCjE0NDc0OiAgRE1MX1BST0pFQ1RfUkFWRU4xLAoxNDQ3NDog
IERNTF9QUk9KRUNUX05BVkkxMCwKMTQ0NzQ6ICBETUxfUFJPSkVDVF9OQVZJMTB2MiwKMTQ0NzQ6
ICBETUxfUFJPSkVDVF9EQ04yMSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaXNw
bGF5X21vZGVfbGliOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZG1sX2Z1bmNzIHsKMTQ0NzQ6ICB2
b2lkICgqcnFfZGxnX2dldF9kbGdfcmVnKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkaXNwbGF5X21vZGVf
bGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgIGRpc3BsYXlfZGxnX3JlZ3Nfc3QgKmRsZ19yZWdzLAox
NDQ3NDogICAgZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X3JlZ3MsCjE0NDc0OiAgICBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCjE0NDc0OiAgICBjb25zdCB1bnNp
Z25lZCBpbnQgbnVtX3BpcGVzLAoxNDQ3NDogICAgY29uc3QgdW5zaWduZWQgaW50IHBpcGVfaWR4
LAoxNDQ3NDogICAgY29uc3QgYm9vbCBjc3RhdGVfZW4sCjE0NDc0OiAgICBjb25zdCBib29sIHBz
dGF0ZV9lbiwKMTQ0NzQ6ICAgIGNvbnN0IGJvb2wgdm1fZW4sCjE0NDc0OiAgICBjb25zdCBib29s
IGlnbm9yZV92aWV3cG9ydF9wb3MsCjE0NDc0OiAgICBjb25zdCBib29sIGltbWVkaWF0ZV9mbGlw
X3N1cHBvcnQpOwoxNDQ3NDogIHZvaWQgKCpycV9kbGdfZ2V0X3JxX3JlZykoCjE0NDc0OiAgIHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKMTQ0NzQ6ICAgZGlzcGxheV9ycV9yZWdz
X3N0ICpycV9yZWdzLAoxNDQ3NDogICBjb25zdCBkaXNwbGF5X3BpcGVfcGFyYW1zX3N0IHBpcGVf
cGFyYW0pOwoxNDQ3NDogIHZvaWQgKCpyZWNhbGN1bGF0ZSkoc3RydWN0IGRpc3BsYXlfbW9kZV9s
aWIgKm1vZGVfbGliKTsKMTQ0NzQ6ICB2b2lkICgqdmFsaWRhdGUpKHN0cnVjdCBkaXNwbGF5X21v
ZGVfbGliICptb2RlX2xpYik7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGlzcGxh
eV9tb2RlX2xpYiB7CjE0NDc0OiAgc3RydWN0IF92Y3NfZHBpX2lwX3BhcmFtc19zdCBpcDsKMTQ0
NzQ6ICBzdHJ1Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF9zdCBzb2M7CjE0NDc0OiAgZW51
bSBkbWxfcHJvamVjdCBwcm9qZWN0OwoxNDQ3NDogIHN0cnVjdCB2YmFfdmFyc19zdCB2YmE7CjE0
NDc0OiAgc3RydWN0IGRhbF9sb2dnZXIgKmxvZ2dlcjsKMTQ0NzQ6ICBzdHJ1Y3QgZG1sX2Z1bmNz
IGZ1bmNzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkbWxfaW5pdF9pbnN0YW5jZShz
dHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbGliLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgX3Zjc19k
cGlfc29jX2JvdW5kaW5nX2JveF9zdCAqc29jX2JiLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgX3Zj
c19kcGlfaXBfcGFyYW1zX3N0ICppcF9wYXJhbXMsCjE0NDc0OiAgIGVudW0gZG1sX3Byb2plY3Qg
cHJvamVjdCk7CjE0NDc0OiAKMTQ0NzQ6IGNvbnN0IGNoYXIgKmRtbF9nZXRfc3RhdHVzX21lc3Nh
Z2UoZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBzdGF0dXMpOwoxNDQ3NDogIyA0MSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKMTQ0NzQ6ICMgNTIg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIgoxNDQ3NDog
c3RydWN0IGRjX3ZlcnNpb25zIHsKMTQ0NzQ6ICBjb25zdCBjaGFyICpkY192ZXI7CjE0NDc0OiAg
c3RydWN0IGRtY3VfdmVyc2lvbiBkbWN1X3ZlcnNpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBlbnVtIGRwX3Byb3RvY29sX3ZlcnNpb24gewoxNDQ3NDogIERQX1ZFUlNJT05fMV80LAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19wbGFuZV90eXBlIHsKMTQ0NzQ6ICBEQ19QTEFO
RV9UWVBFX0lOVkFMSUQsCjE0NDc0OiAgRENfUExBTkVfVFlQRV9EQ0VfUkdCLAoxNDQ3NDogIERD
X1BMQU5FX1RZUEVfRENFX1VOREVSTEFZLAoxNDQ3NDogIERDX1BMQU5FX1RZUEVfRENOX1VOSVZF
UlNBTCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19wbGFuZV9jYXAgewoxNDQ3
NDogIGVudW0gZGNfcGxhbmVfdHlwZSB0eXBlOwoxNDQ3NDogIHVpbnQzMl90IGJsZW5kc193aXRo
X2Fib3ZlIDogMTsKMTQ0NzQ6ICB1aW50MzJfdCBibGVuZHNfd2l0aF9iZWxvdyA6IDE7CjE0NDc0
OiAgdWludDMyX3QgcGVyX3BpeGVsX2FscGhhIDogMTsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDog
ICB1aW50MzJfdCBhcmdiODg4OCA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IG52MTIgOiAxOwoxNDQ3
NDogICB1aW50MzJfdCBmcDE2IDogMTsKMTQ0NzQ6ICAgdWludDMyX3QgcDAxMCA6IDE7CjE0NDc0
OiAgIHVpbnQzMl90IGF5dXYgOiAxOwoxNDQ3NDogIH0gcGl4ZWxfZm9ybWF0X3N1cHBvcnQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDMyX3Qg
YXJnYjg4ODg7CjE0NDc0OiAgIHVpbnQzMl90IG52MTI7CjE0NDc0OiAgIHVpbnQzMl90IGZwMTY7
CjE0NDc0OiAgfSBtYXhfdXBzY2FsZV9mYWN0b3I7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDMyX3QgYXJnYjg4ODg7CjE0NDc0OiAgIHVpbnQz
Ml90IG52MTI7CjE0NDc0OiAgIHVpbnQzMl90IGZwMTY7CjE0NDc0OiAgfSBtYXhfZG93bnNjYWxl
X2ZhY3RvcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jYXBzIHsKMTQ0NzQ6
ICB1aW50MzJfdCBtYXhfc3RyZWFtczsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfbGlua3M7CjE0NDc0
OiAgdWludDMyX3QgbWF4X2F1ZGlvczsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfc2xhdmVfcGxhbmVz
OwoxNDQ3NDogIHVpbnQzMl90IG1heF9wbGFuZXM7CjE0NDc0OiAgdWludDMyX3QgbWF4X2Rvd25z
Y2FsZV9yYXRpbzsKMTQ0NzQ6ICB1aW50MzJfdCBpMmNfc3BlZWRfaW5fa2h6OwoxNDQ3NDogIHVp
bnQzMl90IGRtZGF0YV9hbGxvY19zaXplOwoxNDQ3NDogIHVuc2lnbmVkIGludCBtYXhfY3Vyc29y
X3NpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF92aWRlb193aWR0aDsKMTQ0NzQ6ICBpbnQg
bGluZWFyX3BpdGNoX2FsaWdubWVudDsKMTQ0NzQ6ICBib29sIGRjY19jb25zdF9jb2xvcjsKMTQ0
NzQ6ICBib29sIGR5bmFtaWNfYXVkaW87CjE0NDc0OiAgYm9vbCBpc19hcHU7CjE0NDc0OiAgYm9v
bCBkdWFsX2xpbmtfZHZpOwoxNDQ3NDogIGJvb2wgcG9zdF9ibGVuZF9jb2xvcl9wcm9jZXNzaW5n
OwoxNDQ3NDogIGJvb2wgZm9yY2VfZHBfdHBzNF9mb3JfY3AyNTIwOwoxNDQ3NDogIGJvb2wgZGlz
YWJsZV9kcF9jbGtfc2hhcmU7CjE0NDc0OiAgYm9vbCBwc3Bfc2V0dXBfcGFuZWxfbW9kZTsKMTQ0
NzQ6ICBib29sIGV4dGVuZGVkX2F1eF90aW1lb3V0X3N1cHBvcnQ7CjE0NDc0OiAgYm9vbCBkbWN1
Yl9zdXBwb3J0OwoxNDQ3NDogIGJvb2wgaHdfM2RfbHV0OwoxNDQ3NDogIGVudW0gZHBfcHJvdG9j
b2xfdmVyc2lvbiBtYXhfZHBfcHJvdG9jb2xfdmVyc2lvbjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxh
bmVfY2FwIHBsYW5lc1s2XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19idWdf
d2EgewoxNDQ3NDogIGJvb2wgbm9fY29ubmVjdF9waHlfY29uZmlnOwoxNDQ3NDogIGJvb2wgZGVk
Y24yMF8zMDVfd2E7CjE0NDc0OiAgYm9vbCBza2lwX2Nsb2NrX3VwZGF0ZTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kY2Nfc3VyZmFjZV9wYXJhbSB7CjE0NDc0OiAgc3RydWN0
IGRjX3NpemUgc3VyZmFjZV9zaXplOwoxNDQ3NDogIGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQg
Zm9ybWF0OwoxNDQ3NDogIGVudW0gc3dpenpsZV9tb2RlX3ZhbHVlcyBzd2l6emxlX21vZGU7CjE0
NDc0OiAgZW51bSBkY19zY2FuX2RpcmVjdGlvbiBzY2FuOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGRjX2RjY19zZXR0aW5nIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbWF4X2NvbXBy
ZXNzZWRfYmxrX3NpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IG1heF91bmNvbXByZXNzZWRfYmxr
X3NpemU7CjE0NDc0OiAgYm9vbCBpbmRlcGVuZGVudF82NGJfYmxrczsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdXJmYWNlX2RjY19jYXAgewoxNDQ3NDogIHVuaW9uIHsKMTQ0
NzQ6ICAgc3RydWN0IHsKMTQ0NzQ6ICAgIHN0cnVjdCBkY19kY2Nfc2V0dGluZyByZ2I7CjE0NDc0
OiAgIH0gZ3JwaDsKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgc3RydWN0IGRj
X2RjY19zZXR0aW5nIGx1bWE7CjE0NDc0OiAgICBzdHJ1Y3QgZGNfZGNjX3NldHRpbmcgY2hyb21h
OwoxNDQ3NDogICB9IHZpZGVvOwoxNDQ3NDogIH07CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGNhcGFi
bGU7CjE0NDc0OiAgYm9vbCBjb25zdF9jb2xvcl9zdXBwb3J0OwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGRjX3N0YXRpY19zY3JlZW5fcGFyYW1zIHsKMTQ0NzQ6ICBzdHJ1Y3Qgewox
NDQ3NDogICBib29sIGZvcmNlX3RyaWdnZXI7CjE0NDc0OiAgIGJvb2wgY3Vyc29yX3VwZGF0ZTsK
MTQ0NzQ6ICAgYm9vbCBzdXJmYWNlX3VwZGF0ZTsKMTQ0NzQ6ICAgYm9vbCBvdmVybGF5X3VwZGF0
ZTsKMTQ0NzQ6ICB9IHRyaWdnZXJzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fZnJhbWVzOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMTk3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZGMuaCIKMTQ0NzQ6IGVudW0gc3VyZmFjZV91cGRhdGVfdHlwZSB7CjE0NDc0OiAg
VVBEQVRFX1RZUEVfRkFTVCwKMTQ0NzQ6ICBVUERBVEVfVFlQRV9NRUQsCjE0NDc0OiAgVVBEQVRF
X1RZUEVfRlVMTCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjOwox
NDQ3NDogc3RydWN0IGRjX3BsYW5lX3N0YXRlOwoxNDQ3NDogc3RydWN0IGRjX3N0YXRlOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19jYXBfZnVuY3MgewoxNDQ3NDogIGJvb2wgKCpn
ZXRfZGNjX2NvbXByZXNzaW9uX2NhcCkoY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgIGNv
bnN0IHN0cnVjdCBkY19kY2Nfc3VyZmFjZV9wYXJhbSAqaW5wdXQsCjE0NDc0OiAgICBzdHJ1Y3Qg
ZGNfc3VyZmFjZV9kY2NfY2FwICpvdXRwdXQpOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3M7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZGNfY29uZmlnIHsKMTQ0NzQ6ICBib29sIGdwdV92bV9zdXBwb3J0OwoxNDQ3NDog
IGJvb2wgZGlzYWJsZV9kaXNwX3BsbF9zaGFyaW5nOwoxNDQ3NDogIGJvb2wgZmJjX3N1cHBvcnQ7
CjE0NDc0OiAgYm9vbCBvcHRpbWl6ZV9lZHBfbGlua19yYXRlOwoxNDQ3NDogIGJvb2wgZGlzYWJs
ZV9mcmFjdGlvbmFsX3B3bTsKMTQ0NzQ6ICBib29sIGFsbG93X3NlYW1sZXNzX2Jvb3Rfb3B0aW1p
emF0aW9uOwoxNDQ3NDogIGJvb2wgcG93ZXJfZG93bl9kaXNwbGF5X29uX2Jvb3Q7CjE0NDc0OiAg
Ym9vbCBlZHBfbm90X2Nvbm5lY3RlZDsKMTQ0NzQ6ICBib29sIGZvcmNlX2VudW1fZWRwOwoxNDQ3
NDogIGJvb2wgZm9yY2VkX2Nsb2NrczsKMTQ0NzQ6ICBib29sIGRpc2FibGVfZXh0ZW5kZWRfdGlt
ZW91dF9zdXBwb3J0OwoxNDQ3NDogIGJvb2wgbXVsdGlfbW9uX3BwX21jbGtfc3dpdGNoOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB2aXN1YWxfY29uZmlybSB7CjE0NDc0OiAgVklTVUFM
X0NPTkZJUk1fRElTQUJMRSA9IDAsCjE0NDc0OiAgVklTVUFMX0NPTkZJUk1fU1VSRkFDRSA9IDEs
CjE0NDc0OiAgVklTVUFMX0NPTkZJUk1fSERSID0gMiwKMTQ0NzQ6ICBWSVNVQUxfQ09ORklSTV9N
UENUUkVFID0gNCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNjX29wdGlvbiB7CjE0
NDc0OiAgRENDX0VOQUJMRSA9IDAsCjE0NDc0OiAgRENDX0RJU0FCTEUgPSAxLAoxNDQ3NDogIERD
Q19IQUxGX1JFUV9ESVNBTEJFID0gMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gcGlw
ZV9zcGxpdF9wb2xpY3kgewoxNDQ3NDogIE1QQ19TUExJVF9EWU5BTUlDID0gMCwKMTQ0NzQ6ICBN
UENfU1BMSVRfQVZPSUQgPSAxLAoxNDQ3NDogIE1QQ19TUExJVF9BVk9JRF9NVUxUX0RJU1AgPSAy
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSB3bV9yZXBvcnRfbW9kZSB7CjE0NDc0OiAg
V01fUkVQT1JUX0RFRkFVTFQgPSAwLAoxNDQ3NDogIFdNX1JFUE9SVF9PVkVSUklERSA9IDEsCjE0
NDc0OiB9OwoxNDQ3NDogZW51bSBkdG1fcHN0YXRlewoxNDQ3NDogIGR0bV9sZXZlbF9wMCA9IDAs
CjE0NDc0OiAgZHRtX2xldmVsX3AxLAoxNDQ3NDogIGR0bV9sZXZlbF9wMiwKMTQ0NzQ6ICBkdG1f
bGV2ZWxfcDMsCjE0NDc0OiAgZHRtX2xldmVsX3A0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBkY25fcHdyX3N0YXRlIHsKMTQ0NzQ6ICBEQ05fUFdSX1NUQVRFX1VOS05PV04gPSAtMSwK
MTQ0NzQ6ICBEQ05fUFdSX1NUQVRFX01JU1NJT05fTU9ERSA9IDAsCjE0NDc0OiAgRENOX1BXUl9T
VEFURV9MT1dfUE9XRVIgPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY2xvY2tzIHsKMTQ0NzQ6ICBpbnQgZGlzcGNs
a19raHo7CjE0NDc0OiAgaW50IGRwcGNsa19raHo7CjE0NDc0OiAgaW50IGRjZmNsa19raHo7CjE0
NDc0OiAgaW50IHNvY2Nsa19raHo7CjE0NDc0OiAgaW50IGRjZmNsa19kZWVwX3NsZWVwX2toejsK
MTQ0NzQ6ICBpbnQgZmNsa19raHo7CjE0NDc0OiAgaW50IHBoeWNsa19raHo7CjE0NDc0OiAgaW50
IGRyYW1jbGtfa2h6OwoxNDQ3NDogIGJvb2wgcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydDsKMTQ0NzQ6
ICBlbnVtIGRjbl9wd3Jfc3RhdGUgcHdyX3N0YXRlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgYm9vbCBwcmV2X3Bfc3RhdGVfY2hhbmdlX3N1cHBvcnQ7CjE0NDc0OiAg
ZW51bSBkdG1fcHN0YXRlIGR0bV9sZXZlbDsKMTQ0NzQ6ICBpbnQgbWF4X3N1cHBvcnRlZF9kcHBj
bGtfa2h6OwoxNDQ3NDogIGludCBtYXhfc3VwcG9ydGVkX2Rpc3BjbGtfa2h6OwoxNDQ3NDogIGlu
dCBid19kcHBjbGtfa2h6OwoxNDQ3NDogIGludCBid19kaXNwY2xrX2toejsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19id192YWxpZGF0aW9uX3Byb2ZpbGUgewoxNDQ3NDogIGJv
b2wgZW5hYmxlOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX3RpY2tz
OwoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyB2b2x0YWdlX2xldmVsX3RpY2tzOwoxNDQ3NDog
IHVuc2lnbmVkIGxvbmcgbG9uZyB3YXRlcm1hcmtfdGlja3M7CjE0NDc0OiAgdW5zaWduZWQgbG9u
ZyBsb25nIHJxX2RsZ190aWNrczsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyB0
b3RhbF9jb3VudDsKMTQ0NzQ6ICB1bnNpZ25lZCBsb25nIGxvbmcgc2tpcF9mYXN0X2NvdW50Owox
NDQ3NDogIHVuc2lnbmVkIGxvbmcgbG9uZyBza2lwX3Bhc3NfY291bnQ7CjE0NDc0OiAgdW5zaWdu
ZWQgbG9uZyBsb25nIHNraXBfZmFpbF9jb3VudDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDM0OSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiCjE0NDc0OiBzdHJ1
Y3QgZGNfZGVidWdfb3B0aW9ucyB7CjE0NDc0OiAgZW51bSB2aXN1YWxfY29uZmlybSB2aXN1YWxf
Y29uZmlybTsKMTQ0NzQ6ICBib29sIHNhbml0eV9jaGVja3M7CjE0NDc0OiAgYm9vbCBtYXhfZGlz
cF9jbGs7CjE0NDc0OiAgYm9vbCBzdXJmYWNlX3RyYWNlOwoxNDQ3NDogIGJvb2wgdGltaW5nX3Ry
YWNlOwoxNDQ3NDogIGJvb2wgY2xvY2tfdHJhY2U7CjE0NDc0OiAgYm9vbCB2YWxpZGF0aW9uX3Ry
YWNlOwoxNDQ3NDogIGJvb2wgYmFuZHdpZHRoX2NhbGNzX3RyYWNlOwoxNDQ3NDogIGludCBtYXhf
ZG93bnNjYWxlX3NyY193aWR0aDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBkaXNhYmxl
X3N0dXR0ZXI7CjE0NDc0OiAgYm9vbCB1c2VfbWF4X2xiOwoxNDQ3NDogIGVudW0gZGNjX29wdGlv
biBkaXNhYmxlX2RjYzsKMTQ0NzQ6ICBlbnVtIHBpcGVfc3BsaXRfcG9saWN5IHBpcGVfc3BsaXRf
cG9saWN5OwoxNDQ3NDogIGJvb2wgZm9yY2Vfc2luZ2xlX2Rpc3BfcGlwZV9zcGxpdDsKMTQ0NzQ6
ICBib29sIHZvbHRhZ2VfYWxpZ25fZmNsazsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgZGlzYWJsZV9k
ZnNfYnlwYXNzOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kcHBfcG93ZXJfZ2F0ZTsKMTQ0NzQ6ICBi
b29sIGRpc2FibGVfaHVicF9wb3dlcl9nYXRlOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kc2NfcG93
ZXJfZ2F0ZTsKMTQ0NzQ6ICBpbnQgZHNjX21pbl9zbGljZV9oZWlnaHRfb3ZlcnJpZGU7CjE0NDc0
OiAgaW50IGRzY19icHBfaW5jcmVtZW50X2RpdjsKMTQ0NzQ6ICBib29sIG5hdGl2ZTQyMl9zdXBw
b3J0OwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9wcGxpYl93bV9yYW5nZTsKMTQ0NzQ6ICBlbnVtIHdt
X3JlcG9ydF9tb2RlIHBwbGliX3dtX3JlcG9ydF9tb2RlOwoxNDQ3NDogIHVuc2lnbmVkIGludCBt
aW5fZGlzcF9jbGtfa2h6OwoxNDQ3NDogIHVuc2lnbmVkIGludCBtaW5fZHBwX2Nsa19raHo7CjE0
NDc0OiAgaW50IHNyX2V4aXRfdGltZV9kcG0wX25zOwoxNDQ3NDogIGludCBzcl9lbnRlcl9wbHVz
X2V4aXRfdGltZV9kcG0wX25zOwoxNDQ3NDogIGludCBzcl9leGl0X3RpbWVfbnM7CjE0NDc0OiAg
aW50IHNyX2VudGVyX3BsdXNfZXhpdF90aW1lX25zOwoxNDQ3NDogIGludCB1cmdlbnRfbGF0ZW5j
eV9uczsKMTQ0NzQ6ICB1aW50MzJfdCB1bmRlcmZsb3dfYXNzZXJ0X2RlbGF5X3VzOwoxNDQ3NDog
IGludCBwZXJjZW50X29mX2lkZWFsX2RyYW1idzsKMTQ0NzQ6ICBpbnQgZHJhbV9jbG9ja19jaGFu
Z2VfbGF0ZW5jeV9uczsKMTQ0NzQ6ICBib29sIG9wdGltaXplZF93YXRlcm1hcms7CjE0NDc0OiAg
aW50IGFsd2F5c19zY2FsZTsKMTQ0NzQ6ICBib29sIGRpc2FibGVfcHBsaWJfY2xvY2tfcmVxdWVz
dDsKMTQ0NzQ6ICBib29sIGRpc2FibGVfY2xvY2tfZ2F0ZTsKMTQ0NzQ6ICBib29sIGRpc2FibGVf
ZG1jdTsKMTQ0NzQ6ICBib29sIGRpc2FibGVfcHNyOwoxNDQ3NDogIGJvb2wgZm9yY2VfYWJtX2Vu
YWJsZTsKMTQ0NzQ6ICBib29sIGRpc2FibGVfc3RlcmVvX3N1cHBvcnQ7CjE0NDc0OiAgYm9vbCB2
c3Jfc3VwcG9ydDsKMTQ0NzQ6ICBib29sIHBlcmZvcm1hbmNlX3RyYWNlOwoxNDQ3NDogIGJvb2wg
YXpfZW5kcG9pbnRfbXV0ZV9vbmx5OwoxNDQ3NDogIGJvb2wgYWx3YXlzX3VzZV9yZWdhbW1hOwox
NDQ3NDogIGJvb2wgcDAxMF9tcG9fc3VwcG9ydDsKMTQ0NzQ6ICBib29sIHJlY292ZXJ5X2VuYWJs
ZWQ7CjE0NDc0OiAgYm9vbCBhdm9pZF92Ymlvc19leGVjX3RhYmxlOwoxNDQ3NDogIGJvb2wgc2Ns
X3Jlc2V0X2xlbmd0aDEwOwoxNDQ3NDogIGJvb2wgaGRtaTIwX2Rpc2FibGU7CjE0NDc0OiAgYm9v
bCBza2lwX2RldGVjdGlvbl9saW5rX3RyYWluaW5nOwoxNDQ3NDogIGJvb2wgcmVtb3ZlX2Rpc2Nv
bm5lY3RfZWRwOwoxNDQ3NDogIHVuc2lnbmVkIGludCBmb3JjZV9vZG1fY29tYmluZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZm9yY2VfZmNsa19raHo7CjE0NDc0OiAgYm9vbCBkaXNhYmxlX3RyaV9i
dWY7CjE0NDc0OiAgYm9vbCBkbXViX29mZmxvYWRfZW5hYmxlZDsKMTQ0NzQ6ICBib29sIGRtY3Vi
X2VtdWxhdGlvbjsKMTQ0NzQ6ICBib29sIGRtdWJfY29tbWFuZF90YWJsZTsKMTQ0NzQ6ICBzdHJ1
Y3QgZGNfYndfdmFsaWRhdGlvbl9wcm9maWxlIGJ3X3ZhbF9wcm9maWxlOwoxNDQ3NDogIGJvb2wg
ZGlzYWJsZV9mZWM7CjE0NDc0OiAgYm9vbCBkaXNhYmxlXzQ4bWh6X3B3cmR3bjsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZm9yY2VfbWluX2RjZmNsa19taHo7
CjE0NDc0OiAgYm9vbCBkaXNhYmxlX3RpbWluZ19zeW5jOwoxNDQ3NDogIGJvb2wgY21faW5fYnlw
YXNzOwoxNDQ3NDogIGludCBmb3JjZV9jbG9ja19tb2RlOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBu
djEyX2lmbGlwX3ZtX3dhOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kcmFtX2Nsb2NrX2NoYW5nZV92
YWN0aXZlX3N1cHBvcnQ7CjE0NDc0OiAgYm9vbCB2YWxpZGF0ZV9kbWxfb3V0cHV0OwoxNDQ3NDog
IGJvb2wgZW5hYmxlX2RtY3ViX3N1cmZhY2VfZmxpcDsKMTQ0NzQ6ICBib29sIHVzYmNfY29tYm9f
cGh5X3Jlc2V0X3dhOwoxNDQ3NDogIGJvb2wgZGlzYWJsZV9kc2M7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZGNfZGVidWdfZGF0YSB7CjE0NDc0OiAgdWludDMyX3QgbHRGYWlsQ291
bnQ7CjE0NDc0OiAgdWludDMyX3QgaTJjRXJyb3JDb3VudDsKMTQ0NzQ6ICB1aW50MzJfdCBhdXhF
cnJvckNvdW50OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3BoeV9hZGRyX3Nw
YWNlX2NvbmZpZyB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6ICAgdWludDY0X3Qgc3RhcnRfYWRk
cjsKMTQ0NzQ6ICAgdWludDY0X3QgZW5kX2FkZHI7CjE0NDc0OiAgIHVpbnQ2NF90IGZiX3RvcDsK
MTQ0NzQ6ICAgdWludDY0X3QgZmJfb2Zmc2V0OwoxNDQ3NDogICB1aW50NjRfdCBmYl9iYXNlOwox
NDQ3NDogICB1aW50NjRfdCBhZ3BfdG9wOwoxNDQ3NDogICB1aW50NjRfdCBhZ3BfYm90OwoxNDQ3
NDogICB1aW50NjRfdCBhZ3BfYmFzZTsKMTQ0NzQ6ICB9IHN5c3RlbV9hcGVydHVyZTsKMTQ0NzQ6
IAoxNDQ3NDogIHN0cnVjdCB7CjE0NDc0OiAgIHVpbnQ2NF90IHBhZ2VfdGFibGVfc3RhcnRfYWRk
cjsKMTQ0NzQ6ICAgdWludDY0X3QgcGFnZV90YWJsZV9lbmRfYWRkcjsKMTQ0NzQ6ICAgdWludDY0
X3QgcGFnZV90YWJsZV9iYXNlX2FkZHI7CjE0NDc0OiAgfSBnYXJ0X2NvbmZpZzsKMTQ0NzQ6IAox
NDQ3NDogIGJvb2wgdmFsaWQ7CjE0NDc0OiAgdWludDY0X3QgcGFnZV90YWJsZV9kZWZhdWx0X3Bh
Z2VfYWRkcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY192aXJ0dWFsX2FkZHJf
c3BhY2VfY29uZmlnIHsKMTQ0NzQ6ICB1aW50NjRfdCBwYWdlX3RhYmxlX2Jhc2VfYWRkcjsKMTQ0
NzQ6ICB1aW50NjRfdCBwYWdlX3RhYmxlX3N0YXJ0X2FkZHI7CjE0NDc0OiAgdWludDY0X3QgcGFn
ZV90YWJsZV9lbmRfYWRkcjsKMTQ0NzQ6ICB1aW50MzJfdCBwYWdlX3RhYmxlX2Jsb2NrX3NpemVf
aW5fYnl0ZXM7CjE0NDc0OiAgdWludDhfdCBwYWdlX3RhYmxlX2RlcHRoOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgewoxNDQ3NDogIGlu
dCBzcl9leGl0X3RpbWVfbnM7CjE0NDc0OiAgaW50IHNyX2VudGVyX3BsdXNfZXhpdF90aW1lX25z
OwoxNDQ3NDogIGludCB1cmdlbnRfbGF0ZW5jeV9uczsKMTQ0NzQ6ICBpbnQgcGVyY2VudF9vZl9p
ZGVhbF9kcmFtYnc7CjE0NDc0OiAgaW50IGRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3lfbnM7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBpbnQgbWluX2RjZmNsa19taHo7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0OiBzdHJ1Y3Qg
cmVzb3VyY2VfcG9vbDsKMTQ0NzQ6IHN0cnVjdCBkY2VfaHdzZXE7CjE0NDc0OiBzdHJ1Y3QgZ3B1
X2luZm9fc29jX2JvdW5kaW5nX2JveF92MV8wOwoxNDQ3NDogc3RydWN0IGRjIHsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfdmVyc2lvbnMgdmVyc2lvbnM7CjE0NDc0OiAgc3RydWN0IGRjX2NhcHMgY2FwczsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfY2FwX2Z1bmNzIGNhcF9mdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
Y29uZmlnIGNvbmZpZzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZGVidWdfb3B0aW9ucyBkZWJ1ZzsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfYm91bmRpbmdfYm94X292ZXJyaWRlcyBiYl9vdmVycmlkZXM7CjE0NDc0
OiAgc3RydWN0IGRjX2J1Z193YSB3b3JrX2Fyb3VuZHM7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnIHZtX3BhX2Nv
bmZpZzsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3QgbGlua19jb3VudDsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfbGluayAqbGlua3NbNiAqIDJdOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3N0YXRlICpj
dXJyZW50X3N0YXRlOwoxNDQ3NDogIHN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9vbDsKMTQ0
NzQ6IAoxNDQ3NDogIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzIHNjbGtfbHZsczsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGJ3X2NhbGNzX2RjZWlwICpid19kY2VpcDsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfY2FsY3NfdmJpb3MgKmJ3X3ZiaW9zOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjbl9zb2Nf
Ym91bmRpbmdfYm94ICpkY25fc29jOwoxNDQ3NDogIHN0cnVjdCBkY25faXBfcGFyYW1zICpkY25f
aXA7CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgZG1sOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBod19zZXF1ZW5jZXJfZnVuY3MgaHdzczsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNlX2h3c2VxICpod3NlcTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBvcHRp
bWl6ZWRfcmVxdWlyZWQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBvcHRpbWl6ZV9zZWFt
bGVzc19ib290X3N0cmVhbXM7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjb21wcmVz
c29yICpmYmNfY29tcHJlc3NvcjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19kZWJ1Z19kYXRh
IGRlYnVnX2RhdGE7CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBjaGFyICpidWlsZF9pZDsKMTQ0NzQ6
ICBzdHJ1Y3Qgdm1faGVscGVyICp2bV9oZWxwZXI7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGdwdV9p
bmZvX3NvY19ib3VuZGluZ19ib3hfdjFfMCAqc29jX2JvdW5kaW5nX2JveDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZnJhbWVfYnVmZmVyX21vZGUgewoxNDQ3NDogIEZSQU1FX0JVRkZF
Ul9NT0RFX0xPQ0FMX09OTFkgPSAwLAoxNDQ3NDogIEZSQU1FX0JVRkZFUl9NT0RFX1pGQl9PTkxZ
LAoxNDQ3NDogIEZSQU1FX0JVRkZFUl9NT0RFX01JWEVEX1pGQl9BTkRfTE9DQUwsCjE0NDc0OiB9
IDsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjaHViX2luaXRfZGF0YSB7CjE0NDc0OiAgaW50NjRf
dCB6ZmJfcGh5c19hZGRyX2Jhc2U7CjE0NDc0OiAgaW50NjRfdCB6ZmJfbWNfYmFzZV9hZGRyOwox
NDQ3NDogIHVpbnQ2NF90IHpmYl9zaXplX2luX2J5dGU7CjE0NDc0OiAgZW51bSBmcmFtZV9idWZm
ZXJfbW9kZSBmYl9tb2RlOwoxNDQ3NDogIGJvb2wgZGNodWJfaW5pdGlhbHppZWQ7CjE0NDc0OiAg
Ym9vbCBkY2h1Yl9pbmZvX3ZhbGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2luaXRfZGF0YSB7CjE0NDc0OiAgc3RydWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKMTQ0NzQ6ICB2
b2lkICpkcml2ZXI7CjE0NDc0OiAgc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZpY2U7CjE0NDc0
OiAgc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgYmJfb3ZlcnJpZGVzOwoxNDQ3NDog
CjE0NDc0OiAgaW50IG51bV92aXJ0dWFsX2xpbmtzOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2Jpb3MgKnZiaW9zX292ZXJyaWRlOwoxNDQ3NDogIGVu
dW0gZGNlX2Vudmlyb25tZW50IGRjZV9lbnZpcm9ubWVudDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBkbXViX29mZmxvYWRfZnVuY3MgKmRtdWJfaWY7CjE0NDc0OiAgc3RydWN0IGRjX3JlZ19oZWxw
ZXJfc3RhdGUgKmRtdWJfb2ZmbG9hZDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19jb25maWcg
ZmxhZ3M7CjE0NDc0OiAgdWludDMyX3QgbG9nX21hc2s7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZ3B1X2luZm9fc29jX2JvdW5kaW5nX2JveF92
MV8wICpzb2NfYm91bmRpbmdfYm94OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
X2NhbGxiYWNrX2luaXQgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQ4X3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkYyAqZGNf
Y3JlYXRlKGNvbnN0IHN0cnVjdCBkY19pbml0X2RhdGEgKmluaXRfcGFyYW1zKTsKMTQ0NzQ6IHZv
aWQgZGNfaGFyZHdhcmVfaW5pdChzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGRj
X2dldF92bWlkX3VzZV92ZWN0b3Ioc3RydWN0IGRjICpkYyk7CjE0NDc0OiB2b2lkIGRjX3NldHVw
X3ZtX2NvbnRleHQoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3ZpcnR1YWxfYWRkcl9zcGFjZV9j
b25maWcgKnZhX2NvbmZpZywgaW50IHZtaWQpOwoxNDQ3NDogCjE0NDc0OiBpbnQgZGNfc2V0dXBf
c3lzdGVtX2NvbnRleHQoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2Nv
bmZpZyAqcGFfY29uZmlnKTsKMTQ0NzQ6IHZvaWQgZGNfaW5pdF9jYWxsYmFja3Moc3RydWN0IGRj
ICpkYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX2NhbGxiYWNrX2luaXQgKmluaXRfcGFyYW1z
KTsKMTQ0NzQ6IHZvaWQgZGNfZGVpbml0X2NhbGxiYWNrcyhzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6
IHZvaWQgZGNfZGVzdHJveShzdHJ1Y3QgZGMgKipkYyk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSB7CjE0NDc0OiAgVFJBTlNGRVJfRlVOQ19QT0lO
VFMgPSAxMDI1CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfaGRyX3N0YXRpY19t
ZXRhZGF0YSB7CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2hyb21hdGljaXR5X2dyZWVu
X3g7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9ncmVlbl95OwoxNDQ3NDogIHVu
c2lnbmVkIGludCBjaHJvbWF0aWNpdHlfYmx1ZV94OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjaHJv
bWF0aWNpdHlfYmx1ZV95OwoxNDQ3NDogIHVuc2lnbmVkIGludCBjaHJvbWF0aWNpdHlfcmVkX3g7
CjE0NDc0OiAgdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9yZWRfeTsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgY2hyb21hdGljaXR5X3doaXRlX3BvaW50X3g7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNo
cm9tYXRpY2l0eV93aGl0ZV9wb2ludF95OwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgbWluX2x1
bWluYW5jZTsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfbHVtaW5hbmNlOwoxNDQ3NDogIHVpbnQzMl90
IG1heGltdW1fY29udGVudF9saWdodF9sZXZlbDsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhpbXVtX2Zy
YW1lX2F2ZXJhZ2VfbGlnaHRfbGV2ZWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRj
X3RyYW5zZmVyX2Z1bmNfdHlwZSB7CjE0NDc0OiAgVEZfVFlQRV9QUkVERUZJTkVELAoxNDQ3NDog
IFRGX1RZUEVfRElTVFJJQlVURURfUE9JTlRTLAoxNDQ3NDogIFRGX1RZUEVfQllQQVNTLAoxNDQ3
NDogIFRGX1RZUEVfSFdQV0wKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY190cmFu
c2Zlcl9mdW5jX2Rpc3RyaWJ1dGVkX3BvaW50cyB7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIg
cmVkW1RSQU5TRkVSX0ZVTkNfUE9JTlRTXTsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBncmVl
bltUUkFOU0ZFUl9GVU5DX1BPSU5UU107CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgYmx1ZVtU
UkFOU0ZFUl9GVU5DX1BPSU5UU107CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MTZfdCBlbmRfZXhwb25l
bnQ7CjE0NDc0OiAgdWludDE2X3QgeF9wb2ludF9hdF95MV9yZWQ7CjE0NDc0OiAgdWludDE2X3Qg
eF9wb2ludF9hdF95MV9ncmVlbjsKMTQ0NzQ6ICB1aW50MTZfdCB4X3BvaW50X2F0X3kxX2JsdWU7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5l
ZCB7CjE0NDc0OiAgVFJBTlNGRVJfRlVOQ1RJT05fU1JHQiwKMTQ0NzQ6ICBUUkFOU0ZFUl9GVU5D
VElPTl9CVDcwOSwKMTQ0NzQ6ICBUUkFOU0ZFUl9GVU5DVElPTl9QUSwKMTQ0NzQ6ICBUUkFOU0ZF
Ul9GVU5DVElPTl9MSU5FQVIsCjE0NDc0OiAgVFJBTlNGRVJfRlVOQ1RJT05fVU5JVFksCjE0NDc0
OiAgVFJBTlNGRVJfRlVOQ1RJT05fSExHLAoxNDQ3NDogIFRSQU5TRkVSX0ZVTkNUSU9OX0hMRzEy
LAoxNDQ3NDogIFRSQU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIsCjE0NDc0OiAgVFJBTlNGRVJfRlVO
Q1RJT05fR0FNTUEyNCwKMTQ0NzQ6ICBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI2CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jIHsKMTQ0NzQ6
ICBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKMTQ0NzQ6ICBlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfdHlw
ZSB0eXBlOwoxNDQ3NDogIGVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHRmOwoxNDQ3
NDogCjE0NDc0OiAgdWludDMyX3Qgc2RyX3JlZl93aGl0ZV9sZXZlbDsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVuaW9uIHsKMTQ0NzQ6ICAgc3RydWN0IHB3bF9wYXJh
bXMgcHdsOwoxNDQ3NDogICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuY19kaXN0cmlidXRlZF9wb2lu
dHMgdGZfcHRzOwoxNDQ3NDogIH07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHVu
aW9uIGRjXzNkbHV0X3N0YXRlIHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50MzJfdCBp
bml0aWFsaXplZDoxOwoxNDQ3NDogICB1aW50MzJfdCBybXVfaWR4X3ZhbGlkOjE7CjE0NDc0OiAg
IHVpbnQzMl90IHJtdV9tdXhfbnVtOjM7CjE0NDc0OiAgIHVpbnQzMl90IG1wY19ybXUwX211eDo0
OwoxNDQ3NDogICB1aW50MzJfdCBtcGNfcm11MV9tdXg6NDsKMTQ0NzQ6ICAgdWludDMyX3QgbXBj
X3JtdTJfbXV4OjQ7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkOjE1OwoxNDQ3NDogIH0gYml0
czsKMTQ0NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY18zZGx1dCB7CjE0NDc0OiAgc3RydWN0IGtyZWYgcmVmY291bnQ7CjE0NDc0OiAg
c3RydWN0IHRldHJhaGVkcmFsX3BhcmFtcyBsdXRfM2Q7CjE0NDc0OiAgc3RydWN0IGZpeGVkMzFf
MzIgaGRyX211bHRpcGxpZXI7CjE0NDc0OiAgYm9vbCBpbml0aWFsaXplZDsKMTQ0NzQ6ICB1bmlv
biBkY18zZGx1dF9zdGF0ZSBzdGF0ZTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgZGNfcGxhbmVfc3RhdHVzIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBy
ZXF1ZXN0ZWRfYWRkcmVzczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBjdXJyZW50
X2FkZHJlc3M7CjE0NDc0OiAgYm9vbCBpc19mbGlwX3BlbmRpbmc7CjE0NDc0OiAgYm9vbCBpc19y
aWdodF9leWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBzdXJmYWNlX3VwZGF0ZV9m
bGFncyB7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50MzJfdCBhZGRyX3Vw
ZGF0ZToxOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IGRjY19jaGFuZ2U6MTsKMTQ0NzQ6ICAg
dWludDMyX3QgY29sb3Jfc3BhY2VfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IGhvcml6b250
YWxfbWlycm9yX2NoYW5nZToxOwoxNDQ3NDogICB1aW50MzJfdCBwZXJfcGl4ZWxfYWxwaGFfY2hh
bmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IGdsb2JhbF9hbHBoYV9jaGFuZ2U6MTsKMTQ0NzQ6ICAg
dWludDMyX3QgaGRyX211bHQ6MTsKMTQ0NzQ6ICAgdWludDMyX3Qgcm90YXRpb25fY2hhbmdlOjE7
CjE0NDc0OiAgIHVpbnQzMl90IHN3aXp6bGVfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IHNj
YWxpbmdfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IHBvc2l0aW9uX2NoYW5nZToxOwoxNDQ3
NDogICB1aW50MzJfdCBpbl90cmFuc2Zlcl9mdW5jX2NoYW5nZToxOwoxNDQ3NDogICB1aW50MzJf
dCBpbnB1dF9jc2NfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IGNvZWZmX3JlZHVjdGlvbl9j
aGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3Qgb3V0cHV0X3RmX2NoYW5nZToxOwoxNDQ3NDogICB1
aW50MzJfdCBwaXhlbF9mb3JtYXRfY2hhbmdlOjE7CjE0NDc0OiAgIHVpbnQzMl90IHBsYW5lX3Np
emVfY2hhbmdlOjE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBuZXdfcGxhbmU6
MTsKMTQ0NzQ6ICAgdWludDMyX3QgYnBwX2NoYW5nZToxOwoxNDQ3NDogICB1aW50MzJfdCBnYW1t
YV9jaGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3QgYmFuZHdpZHRoX2NoYW5nZToxOwoxNDQ3NDog
ICB1aW50MzJfdCBjbG9ja19jaGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3Qgc3RlcmVvX2Zvcm1h
dF9jaGFuZ2U6MTsKMTQ0NzQ6ICAgdWludDMyX3QgZnVsbF91cGRhdGU6MTsKMTQ0NzQ6ICB9IGJp
dHM7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgewoxNDQ3NDogIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNz
IGFkZHJlc3M7CjE0NDc0OiAgc3RydWN0IGRjX3BsYW5lX2ZsaXBfdGltZSB0aW1lOwoxNDQ3NDog
IGJvb2wgdHJpcGxlYnVmZmVyX2ZsaXBzOwoxNDQ3NDogIHN0cnVjdCBzY2FsaW5nX3RhcHMgc2Nh
bGluZ19xdWFsaXR5OwoxNDQ3NDogIHN0cnVjdCByZWN0IHNyY19yZWN0OwoxNDQ3NDogIHN0cnVj
dCByZWN0IGRzdF9yZWN0OwoxNDQ3NDogIHN0cnVjdCByZWN0IGNsaXBfcmVjdDsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBwbGFuZV9zaXplIHBsYW5lX3NpemU7CjE0NDc0OiAgdW5pb24gZGNfdGls
aW5nX2luZm8gdGlsaW5nX2luZm87CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfZGNj
X3BhcmFtIGRjYzsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19nYW1tYSAqZ2FtbWFfY29ycmVj
dGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqaW5fdHJhbnNmZXJfZnVuYzsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgKmJpYXNfYW5kX3NjYWxlOwoxNDQ3NDog
IHN0cnVjdCBkY19jc2NfdHJhbnNmb3JtIGlucHV0X2NzY19jb2xvcl9tYXRyaXg7CjE0NDc0OiAg
c3RydWN0IGZpeGVkMzFfMzIgY29lZmZfcmVkdWN0aW9uX2ZhY3RvcjsKMTQ0NzQ6ICBzdHJ1Y3Qg
Zml4ZWQzMV8zMiBoZHJfbXVsdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2hk
cl9zdGF0aWNfbWV0YWRhdGEgaGRyX3N0YXRpY19jdHg7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRj
X2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjXzNkbHV0
ICpsdXQzZF9mdW5jOwoxNDQ3NDogIHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICppbl9zaGFwZXJf
ZnVuYzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqYmxlbmRfdGY7CjE0NDc0OiAK
MTQ0NzQ6ICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdDsKMTQ0NzQ6ICBlbnVtIGRj
X3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwoxNDQ3NDogIGVudW0gcGxhbmVfc3RlcmVvX2Zvcm1h
dCBzdGVyZW9fZm9ybWF0OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBpc190aWxpbmdfcm90YXRlZDsK
MTQ0NzQ6ICBib29sIHBlcl9waXhlbF9hbHBoYTsKMTQ0NzQ6ICBib29sIGdsb2JhbF9hbHBoYTsK
MTQ0NzQ6ICBpbnQgZ2xvYmFsX2FscGhhX3ZhbHVlOwoxNDQ3NDogIGJvb2wgdmlzaWJsZTsKMTQ0
NzQ6ICBib29sIGZsaXBfaW1tZWRpYXRlOwoxNDQ3NDogIGJvb2wgaG9yaXpvbnRhbF9taXJyb3I7
CjE0NDc0OiAgaW50IGxheWVyX2luZGV4OwoxNDQ3NDogCjE0NDc0OiAgdW5pb24gc3VyZmFjZV91
cGRhdGVfZmxhZ3MgdXBkYXRlX2ZsYWdzOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3BsYW5l
X3N0YXR1cyBzdGF0dXM7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgYm9vbCBmb3JjZV9mdWxsX3VwZGF0ZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgZW51bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2U7CjE0NDc0OiAgc3RydWN0IGtyZWYg
cmVmY291bnQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxhbmVfaW5mbyB7
CjE0NDc0OiAgc3RydWN0IHBsYW5lX3NpemUgcGxhbmVfc2l6ZTsKMTQ0NzQ6ICB1bmlvbiBkY190
aWxpbmdfaW5mbyB0aWxpbmdfaW5mbzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFt
IGRjYzsKMTQ0NzQ6ICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdDsKMTQ0NzQ6ICBl
bnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwoxNDQ3NDogIGVudW0gcGxhbmVfc3RlcmVv
X2Zvcm1hdCBzdGVyZW9fZm9ybWF0OwoxNDQ3NDogIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3Jf
c3BhY2U7CjE0NDc0OiAgYm9vbCBob3Jpem9udGFsX21pcnJvcjsKMTQ0NzQ6ICBib29sIHZpc2li
bGU7CjE0NDc0OiAgYm9vbCBwZXJfcGl4ZWxfYWxwaGE7CjE0NDc0OiAgYm9vbCBnbG9iYWxfYWxw
aGE7CjE0NDc0OiAgaW50IGdsb2JhbF9hbHBoYV92YWx1ZTsKMTQ0NzQ6ICBib29sIGlucHV0X2Nz
Y19lbmFibGVkOwoxNDQ3NDogIGludCBsYXllcl9pbmRleDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY19zY2FsaW5nX2luZm8gewoxNDQ3NDogIHN0cnVjdCByZWN0IHNyY19yZWN0
OwoxNDQ3NDogIHN0cnVjdCByZWN0IGRzdF9yZWN0OwoxNDQ3NDogIHN0cnVjdCByZWN0IGNsaXBf
cmVjdDsKMTQ0NzQ6ICBzdHJ1Y3Qgc2NhbGluZ190YXBzIHNjYWxpbmdfcXVhbGl0eTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdXJmYWNlX3VwZGF0ZSB7CjE0NDc0OiAgc3Ry
dWN0IGRjX3BsYW5lX3N0YXRlICpzdXJmYWNlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjb25z
dCBzdHJ1Y3QgZGNfZmxpcF9hZGRycyAqZmxpcF9hZGRyOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBk
Y19wbGFuZV9pbmZvICpwbGFuZV9pbmZvOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19zY2FsaW5n
X2luZm8gKnNjYWxpbmdfaW5mbzsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiBoZHJfbXVsdDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdh
bW1hOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICppbl90cmFuc2Zlcl9m
dW5jOwoxNDQ3NDogCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gKmlucHV0
X2NzY19jb2xvcl9tYXRyaXg7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgKmNvZWZm
X3JlZHVjdGlvbl9mYWN0b3I7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMg
KmZ1bmNfc2hhcGVyOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY18zZGx1dCAqbHV0M2RfZnVuYzsK
MTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqYmxlbmRfdGY7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfcGxhbmVf
c3RhdGUgKmRjX2NyZWF0ZV9wbGFuZV9zdGF0ZShzdHJ1Y3QgZGMgKmRjKTsKMTQ0NzQ6IGNvbnN0
IHN0cnVjdCBkY19wbGFuZV9zdGF0dXMgKmRjX3BsYW5lX2dldF9zdGF0dXMoCjE0NDc0OiAgIGNv
bnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIGRjX3BsYW5lX3N0YXRlX3JldGFpbihzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0
YXRlKTsKMTQ0NzQ6IHZvaWQgZGNfcGxhbmVfc3RhdGVfcmVsZWFzZShzdHJ1Y3QgZGNfcGxhbmVf
c3RhdGUgKnBsYW5lX3N0YXRlKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19nYW1tYV9yZXRhaW4o
c3RydWN0IGRjX2dhbW1hICpkY19nYW1tYSk7CjE0NDc0OiB2b2lkIGRjX2dhbW1hX3JlbGVhc2Uo
c3RydWN0IGRjX2dhbW1hICoqZGNfZ2FtbWEpOwoxNDQ3NDogc3RydWN0IGRjX2dhbW1hICpkY19j
cmVhdGVfZ2FtbWEodm9pZCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfdHJhbnNmZXJfZnVuY19y
ZXRhaW4oc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmRjX3RmKTsKMTQ0NzQ6IHZvaWQgZGNfdHJh
bnNmZXJfZnVuY19yZWxlYXNlKHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpkY190Zik7CjE0NDc0
OiBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuYyAqZGNfY3JlYXRlX3RyYW5zZmVyX2Z1bmModm9pZCk7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY18zZGx1dCAqZGNfY3JlYXRlXzNkbHV0X2Z1bmModm9p
ZCk7CjE0NDc0OiB2b2lkIGRjXzNkbHV0X2Z1bmNfcmVsZWFzZShzdHJ1Y3QgZGNfM2RsdXQgKmx1
dCk7CjE0NDc0OiB2b2lkIGRjXzNkbHV0X2Z1bmNfcmV0YWluKHN0cnVjdCBkY18zZGx1dCAqbHV0
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGNfZmxpcF9hZGRycyB7CjE0NDc0OiAgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgYWRkcmVzczsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmxpcF90aW1lc3RhbXBfaW5fdXM7CjE0NDc0OiAgYm9vbCBm
bGlwX2ltbWVkaWF0ZTsKMTQ0NzQ6IAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19w
b3N0X3VwZGF0ZV9zdXJmYWNlc190b19zdHJlYW0oCjE0NDc0OiAgIHN0cnVjdCBkYyAqZGMpOwox
NDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kY19zdHJlYW0uaCIgMQoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX3N0cmVhbS5oIgoxNDQ3NDogc3RydWN0IHRpbWluZ19zeW5j
X2luZm8gewoxNDQ3NDogIGludCBncm91cF9pZDsKMTQ0NzQ6ICBpbnQgZ3JvdXBfc2l6ZTsKMTQ0
NzQ6ICBib29sIG1hc3RlcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdHJl
YW1fc3RhdHVzIHsKMTQ0NzQ6ICBpbnQgcHJpbWFyeV9vdGdfaW5zdDsKMTQ0NzQ6ICBpbnQgc3Ry
ZWFtX2VuY19pbnN0OwoxNDQ3NDogIGludCBwbGFuZV9jb3VudDsKMTQ0NzQ6ICBpbnQgYXVkaW9f
aW5zdDsKMTQ0NzQ6ICBzdHJ1Y3QgdGltaW5nX3N5bmNfaW5mbyB0aW1pbmdfc3luY19pbmZvOwox
NDQ3NDogIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGVzWzRdOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZnJlZXN5bmNfY29udGV4dCB7CjE0NDc0OiAg
Ym9vbCBkdW1teTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gaHVicF9kbWRhdGFfbW9k
ZSB7CjE0NDc0OiAgRE1EQVRBX1NXX01PREUsCjE0NDc0OiAgRE1EQVRBX0hXX01PREUKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19kbWRhdGFfYXR0cmlidXRlcyB7CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZW51bSBodWJwX2RtZGF0YV9tb2RlIGRtZGF0YV9tb2Rl
OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBkbWRhdGFfcmVwZWF0OwoxNDQ3NDogCjE0NDc0OiAgdWlu
dDMyX3QgZG1kYXRhX3NpemU7CjE0NDc0OiAKMTQ0NzQ6ICBib29sIGRtZGF0YV91cGRhdGVkOwox
NDQ3NDogCjE0NDc0OiAgdW5pb24gbGFyZ2VfaW50ZWdlciBhZGRyZXNzOwoxNDQ3NDogCjE0NDc0
OiAgYm9vbCBkbWRhdGFfcW9zX21vZGU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkbWRhdGFf
cW9zX2xldmVsOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IGRtZGF0
YV9kbF9kZWx0YTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90ICpkbWRhdGFfc3dfZGF0YTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbyB7CjE0NDc0OiAg
Ym9vbCB3Yl9lbmFibGVkOwoxNDQ3NDogIGludCBkd2JfcGlwZV9pbnN0OwoxNDQ3NDogIHN0cnVj
dCBkY19kd2JfcGFyYW1zIGR3Yl9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IG1jaWZfYnVmX3BhcmFt
cyBtY2lmX2J1Zl9wYXJhbXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfd3Jp
dGViYWNrX3VwZGF0ZSB7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bV93Yl9pbmZvOwoxNDQ3NDog
IHN0cnVjdCBkY193cml0ZWJhY2tfaW5mbyB3cml0ZWJhY2tfaW5mb1sxXTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gdmVydGljYWxfaW50ZXJydXB0X3JlZl9wb2ludCB7CjE0NDc0OiAg
U1RBUlRfVl9VUERBVEUgPSAwLAoxNDQ3NDogIFNUQVJUX1ZfU1lOQywKMTQ0NzQ6ICBJTlZBTElE
X1BPSU5UCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnIHsKMTQ0NzQ6ICBlbnVtIHZl
cnRpY2FsX2ludGVycnVwdF9yZWZfcG9pbnQgcmVmX3BvaW50OwoxNDQ3NDogIGludCBsaW5lc19v
ZmZzZXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBzdHJlYW1fdXBkYXRlX2ZsYWdz
IHsKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1aW50MzJfdCBzY2FsaW5nOjE7CjE0NDc0OiAg
IHVpbnQzMl90IG91dF90ZjoxOwoxNDQ3NDogICB1aW50MzJfdCBvdXRfY3NjOjE7CjE0NDc0OiAg
IHVpbnQzMl90IGFibV9sZXZlbDoxOwoxNDQ3NDogICB1aW50MzJfdCBkcG1zX29mZjoxOwoxNDQ3
NDogICB1aW50MzJfdCBnYW11dF9yZW1hcDoxOwoxNDQ3NDogICB1aW50MzJfdCB3Yl91cGRhdGU6
MTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCByYXc7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlIHsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRjX3NpbmsgKnNpbms7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
bGluayAqbGluazsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGFuZWxfcGF0Y2ggc2lua19wYXRjaGVzOwox
NDQ3NDogIHVuaW9uIGRpc3BsYXlfY29udGVudF9zdXBwb3J0IGNvbnRlbnRfc3VwcG9ydDsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgdGltaW5nOwoxNDQ3NDogIHN0cnVjdCBkY19jcnRj
X3RpbWluZ19hZGp1c3QgYWRqdXN0OwoxNDQ3NDogIHN0cnVjdCBkY19pbmZvX3BhY2tldCB2cnJf
aW5mb3BhY2tldDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgdnNjX2luZm9wYWNrZXQ7
CjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0IHZzcF9pbmZvcGFja2V0OwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHJlY3Qgc3JjOwoxNDQ3NDogIHN0cnVjdCByZWN0IGRzdDsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGZyZWVzeW5jX2NvbnRleHQgZnJlZXN5bmNfY3R4OwoxNDQ3
NDogCjE0NDc0OiAgc3RydWN0IGF1ZGlvX2luZm8gYXVkaW9faW5mbzsKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBkY19pbmZvX3BhY2tldCBoZHJfc3RhdGljX21ldGFkYXRhOwoxNDQ3NDogIHVuaW9u
IGxhcmdlX2ludGVnZXIgZG1kYXRhX2FkZHJlc3M7CjE0NDc0OiAgYm9vbCB1c2VfZHluYW1pY19t
ZXRhOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKm91dF90cmFuc2Zl
cl9mdW5jOwoxNDQ3NDogIHN0cnVjdCBjb2xvcnNwYWNlX3RyYW5zZm9ybSBnYW11dF9yZW1hcF9t
YXRyaXg7CjE0NDc0OiAgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gY3NjX2NvbG9yX21hdHJpeDsK
MTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNfY29sb3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlOwox
NDQ3NDogIGVudW0gZGNfZGl0aGVyX29wdGlvbiBkaXRoZXJfb3B0aW9uOwoxNDQ3NDogCjE0NDc0
OiAgZW51bSB2aWV3XzNkX2Zvcm1hdCB2aWV3X2Zvcm1hdDsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wg
dXNlX3ZzY19zZHBfZm9yX2NvbG9yaW1ldHJ5OwoxNDQ3NDogIGJvb2wgaWdub3JlX21zYV90aW1p
bmdfcGFyYW07CjE0NDc0OiAgYm9vbCBjb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbzsKMTQ0NzQ6ICB1
aW50OF90IHFzX2JpdDsKMTQ0NzQ6ICB1aW50OF90IHF5X2JpdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGNoYXIgcHNyX3ZlcnNpb247CjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IGFibV9sZXZlbDsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnIHBlcmlvZGljX2ludGVycnVw
dDA7CjE0NDc0OiAgc3RydWN0IHBlcmlvZGljX2ludGVycnVwdF9jb25maWcgcGVyaW9kaWNfaW50
ZXJydXB0MTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eDsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1z
IGJpdF9kZXB0aF9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IGNsYW1waW5nX2FuZF9waXhlbF9lbmNv
ZGluZ19wYXJhbXMgY2xhbXBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgcGh5X3BpeF9jbGs7CjE0
NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CjE0NDc0OiAgYm9vbCBkcG1zX29mZjsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKmRtX3N0cmVhbV9jb250ZXh0OwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzIGN1cnNvcl9hdHRyaWJ1dGVzOwoxNDQ3NDogIHN0cnVj
dCBkY19jdXJzb3JfcG9zaXRpb24gY3Vyc29yX3Bvc2l0aW9uOwoxNDQ3NDogIHVpbnQzMl90IHNk
cl93aGl0ZV9sZXZlbDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGtyZWYgcmVmY291
bnQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gdHJpZ2dlcmVkX2Ny
dGNfcmVzZXQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fd2JfaW5m
bzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gd3JpdGViYWNrX2luZm9bMV07CjE0
NDc0OiAKMTQ0NzQ6ICBib29sIG1vZGVfY2hhbmdlZCA6IDE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgIHVpbnQ4X3Qgb3RnX29mZnNldDsKMTQ0NzQ6ICB9IG91dDsKMTQ0NzQ6IAox
NDQ3NDogIGJvb2wgYXBwbHlfZWRwX2Zhc3RfYm9vdF9vcHRpbWl6YXRpb247CjE0NDc0OiAgYm9v
bCBhcHBseV9zZWFtbGVzc19ib290X29wdGltaXphdGlvbjsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IHN0cmVhbV9pZDsKMTQ0NzQ6ICBib29sIGlzX2RzY19lbmFibGVkOwoxNDQ3NDogIHVuaW9u
IHN0cmVhbV91cGRhdGVfZmxhZ3MgdXBkYXRlX2ZsYWdzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdHJlYW1fdXBkYXRlIHsKMTQ0NzQ6ICBzdHJ1
Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW07CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcmVjdCBz
cmM7CjE0NDc0OiAgc3RydWN0IHJlY3QgZHN0OwoxNDQ3NDogIHN0cnVjdCBkY190cmFuc2Zlcl9m
dW5jICpvdXRfdHJhbnNmZXJfZnVuYzsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKmhk
cl9zdGF0aWNfbWV0YWRhdGE7CjE0NDc0OiAgdW5zaWduZWQgaW50ICphYm1fbGV2ZWw7CjE0NDc0
OiAKMTQ0NzQ6ICBzdHJ1Y3QgcGVyaW9kaWNfaW50ZXJydXB0X2NvbmZpZyAqcGVyaW9kaWNfaW50
ZXJydXB0MDsKMTQ0NzQ6ICBzdHJ1Y3QgcGVyaW9kaWNfaW50ZXJydXB0X2NvbmZpZyAqcGVyaW9k
aWNfaW50ZXJydXB0MTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19pbmZvX3BhY2tldCAqdnJy
X2luZm9wYWNrZXQ7CjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0ICp2c2NfaW5mb3BhY2tl
dDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKnZzcF9pbmZvcGFja2V0OwoxNDQ3NDog
CjE0NDc0OiAgYm9vbCAqZHBtc19vZmY7CjE0NDc0OiAgYm9vbCBpbnRlZ2VyX3NjYWxpbmdfdXBk
YXRlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGNvbG9yc3BhY2VfdHJhbnNmb3JtICpnYW11dF9y
ZW1hcDsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX3NwYWNlICpvdXRwdXRfY29sb3Jfc3BhY2U7CjE0
NDc0OiAgZW51bSBkY19kaXRoZXJfb3B0aW9uICpkaXRoZXJfb3B0aW9uOwoxNDQ3NDogCjE0NDc0
OiAgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gKm91dHB1dF9jc2NfdHJhbnNmb3JtOwoxNDQ3NDog
CjE0NDc0OiAgc3RydWN0IGRjX3dyaXRlYmFja191cGRhdGUgKndiX3VwZGF0ZTsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfZHNjX2NvbmZpZyAqZHNjX2NvbmZpZzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGJvb2wgZGNfaXNfc3RyZWFtX3VuY2hhbmdlZCgKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpvbGRfc3RyZWFtLCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoxNDQ3NDog
Ym9vbCBkY19pc19zdHJlYW1fc2NhbGluZ191bmNoYW5nZWQoCjE0NDc0OiAgc3RydWN0IGRjX3N0
cmVhbV9zdGF0ZSAqb2xkX3N0cmVhbSwgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsK
MTQ0NzQ6ICMgMjczICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
ZGNfc3RyZWFtLmgiCjE0NDc0OiB2b2lkIGRjX2NvbW1pdF91cGRhdGVzX2Zvcl9zdHJlYW0oc3Ry
dWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlICpzcmZfdXBkYXRl
cywKMTQ0NzQ6ICAgaW50IHN1cmZhY2VfY291bnQsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV91cGRhdGUgKnN0cmVhbV91
cGRhdGUsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqc3RhdGUpOwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19zdHJlYW1fbG9nKGNvbnN0IHN0cnVjdCBkYyAqZGMsIGNv
bnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IHVpbnQ4
X3QgZGNfZ2V0X2N1cnJlbnRfc3RyZWFtX2NvdW50KHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNfZ2V0X3N0cmVhbV9hdF9pbmRleChzdHJ1Y3QgZGMgKmRj
LCB1aW50OF90IGkpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB1aW50
MzJfdCBkY19zdHJlYW1fZ2V0X3ZibGFua19jb3VudGVyKGNvbnN0IHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGJv
b2wgZGNfc3RyZWFtX3NlbmRfZHBfc2RwKGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0
cmVhbSwKMTQ0NzQ6ICAgY29uc3QgdWludDhfdCAqY3VzdG9tX3NkcF9tZXNzYWdlLAoxNDQ3NDog
ICB1bnNpZ25lZCBpbnQgc2RwX21lc3NhZ2Vfc2l6ZSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fZ2V0X3NjYW5vdXRwb3MoY29u
c3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAoxNDQ3NDogICAgICAgdWludDMyX3Qg
KnZfYmxhbmtfc3RhcnQsCjE0NDc0OiAgICAgICB1aW50MzJfdCAqdl9ibGFua19lbmQsCjE0NDc0
OiAgICAgICB1aW50MzJfdCAqaF9wb3NpdGlvbiwKMTQ0NzQ6ICAgICAgIHVpbnQzMl90ICp2X3Bv
c2l0aW9uKTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19zdGF0dXMgZGNfYWRkX3N0cmVhbV90b19j
dHgoCjE0NDc0OiAgICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKm5l
d19jdHgsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX3JlbW92ZV9zdHJlYW1fZnJvbV9jdHgoCjE0NDc0OiAg
IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfc3RhdGUgKm5ld19jdHgsCjE0NDc0
OiAgICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGJvb2wgZGNfYWRkX3BsYW5lX3RvX2NvbnRleHQoCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBk
YyAqZGMsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAg
c3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0
YXRlICpjb250ZXh0KTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19yZW1vdmVfcGxhbmVfZnJvbV9j
b250ZXh0KAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh
bmVfc3RhdGUsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0
NzQ6IGJvb2wgZGNfcmVtX2FsbF9wbGFuZXNfZm9yX3N0cmVhbSgKMTQ0NzQ6ICAgY29uc3Qgc3Ry
dWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX2Fk
ZF9hbGxfcGxhbmVzX2Zvcl9zdHJlYW0oCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0
NDc0OiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAgc3RydWN0IGRj
X3BsYW5lX3N0YXRlICogY29uc3QgKnBsYW5lX3N0YXRlcywKMTQ0NzQ6ICAgaW50IHBsYW5lX2Nv
dW50LAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiBi
b29sIGRjX3N0cmVhbV9hZGRfd3JpdGViYWNrKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIHN0cnVj
dCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3dyaXRlYmFja19p
bmZvICp3Yl9pbmZvKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fcmVtb3ZlX3dyaXRl
YmFjayhzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl
YW0sCjE0NDc0OiAgIHVpbnQzMl90IGR3Yl9waXBlX2luc3QpOwoxNDQ3NDogCjE0NDc0OiBib29s
IGRjX3N0cmVhbV93YXJtdXBfd3JpdGViYWNrKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIGludCBu
dW1fZHdiLAoxNDQ3NDogICBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gKndiX2luZm8pOwoxNDQ3
NDogCjE0NDc0OiBib29sIGRjX3N0cmVhbV9kbWRhdGFfc3RhdHVzX2RvbmUoc3RydWN0IGRjICpk
Yywgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBk
Y19zdHJlYW1fc2V0X2R5bmFtaWNfbWV0YWRhdGEoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZG1kYXRhX2F0
dHJpYnV0ZXMgKmRtZGF0YV9hdHRyKTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19zdGF0dXMgZGNf
dmFsaWRhdGVfc3RyZWFtKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0
cmVhbSk7CjE0NDc0OiAjIDM3NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjX3N0cmVhbS5oIgoxNDQ3NDogYm9vbCBkY19lbmFibGVfc3RlcmVvKAoxNDQ3NDog
IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDog
IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbXNbXSwKMTQ0NzQ6ICB1aW50OF90IHN0cmVh
bV9jb3VudCk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzdXJmYWNlX3VwZGF0ZV90eXBl
IGRjX2NoZWNrX3VwZGF0ZV9zdXJmYWNlc19mb3Jfc3RyZWFtKAoxNDQ3NDogICBzdHJ1Y3QgZGMg
KmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3VyZmFjZV91cGRhdGUgKnVwZGF0ZXMsCjE0NDc0OiAg
IGludCBzdXJmYWNlX2NvdW50LAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RyZWFtX3VwZGF0ZSAqc3Ry
ZWFtX3VwZGF0ZSwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0dXMgKnN0cmVh
bV9zdGF0dXMpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpkY19jcmVhdGVfc3RyZWFtX2Zvcl9zaW5rKHN0cnVjdCBkY19zaW5r
ICpkY19zaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNfY29w
eV9zdHJlYW0oY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCB1cGRhdGVfc3RyZWFtX3NpZ25hbChzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpz
dHJlYW0sIHN0cnVjdCBkY19zaW5rICpzaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19zdHJl
YW1fcmV0YWluKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX3N0cmVhbSk7CjE0NDc0OiB2b2lk
IGRjX3N0cmVhbV9yZWxlYXNlKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX3N0cmVhbSk7CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zdHJlYW1fc3RhdHVzICpkY19zdHJlYW1fZ2V0X3N0YXR1
c19mcm9tX3N0YXRlKAoxNDQ3NDogIHN0cnVjdCBkY19zdGF0ZSAqc3RhdGUsCjE0NDc0OiAgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IHN0cnVjdCBkY19zdHJlYW1fc3Rh
dHVzICpkY19zdHJlYW1fZ2V0X3N0YXR1cygKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpkY19zdHJlYW0pOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGJvb2wgZGNfc3RyZWFtX3NldF9jdXJzb3JfYXR0cmlidXRlcygKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9h
dHRyaWJ1dGVzICphdHRyaWJ1dGVzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fc2V0
X2N1cnNvcl9wb3NpdGlvbigKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0s
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zaXRpb24pOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3RyZWFtX2FkanVzdF92bWluX3ZtYXgoc3RydWN0
IGRjICpkYywKMTQ0NzQ6ICAgICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0
OiAgICAgc3RydWN0IGRjX2NydGNfdGltaW5nX2FkanVzdCAqYWRqdXN0KTsKMTQ0NzQ6IAoxNDQ3
NDogYm9vbCBkY19zdHJlYW1fZ2V0X2NydGNfcG9zaXRpb24oc3RydWN0IGRjICpkYywKMTQ0NzQ6
ICAgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqKnN0cmVhbSwKMTQ0NzQ6ICAgICAgaW50IG51
bV9zdHJlYW1zLAoxNDQ3NDogICAgICB1bnNpZ25lZCBpbnQgKnZfcG9zLAoxNDQ3NDogICAgICB1
bnNpZ25lZCBpbnQgKm5vbV92X3Bvcyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3RyZWFtX2Nv
bmZpZ3VyZV9jcmMoc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgICAgICAgc3RydWN0IGRjX3N0cmVh
bV9zdGF0ZSAqc3RyZWFtLAoxNDQ3NDogICAgICAgICBib29sIGVuYWJsZSwKMTQ0NzQ6ICAgICAg
ICAgYm9vbCBjb250aW51b3VzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19zdHJlYW1fZ2V0X2Ny
YyhzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgICAgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAq
c3RyZWFtLAoxNDQ3NDogICAgICAgICAgdWludDMyX3QgKnJfY3IsCjE0NDc0OiAgICAgICAgICB1
aW50MzJfdCAqZ195LAoxNDQ3NDogICAgICAgICAgdWludDMyX3QgKmJfY2IpOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3N0cmVhbV9zZXRfc3RhdGljX3NjcmVlbl9wYXJhbXMoc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqKnN0cmVhbSwKMTQ0NzQ6ICAg
ICAgaW50IG51bV9zdHJlYW1zLAoxNDQ3NDogICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RhdGljX3Nj
cmVlbl9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfc3RyZWFtX3NldF9k
eW5fZXhwYW5zaW9uKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVh
bSwKMTQ0NzQ6ICAgZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiBvcHRpb24pOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3N0cmVhbV9zZXRfZGl0aGVyX29wdGlvbihzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpzdHJlYW0sCjE0NDc0OiAgICAgIGVudW0gZGNfZGl0aGVyX29wdGlvbiBvcHRpb24pOwox
NDQ3NDogCjE0NDc0OiBib29sIGRjX3N0cmVhbV9zZXRfZ2FtdXRfcmVtYXAoc3RydWN0IGRjICpk
YywKMTQ0NzQ6ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0p
OwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX3N0cmVhbV9wcm9ncmFtX2NzY19tYXRyaXgoc3RydWN0
IGRjICpkYywKMTQ0NzQ6ICAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0
NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3RyZWFtX2dldF9jcnRjX3Bvc2l0aW9uKHN0cnVjdCBkYyAq
ZGMsCjE0NDc0OiAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKipzdHJlYW0sCjE0NDc0OiAg
ICAgIGludCBudW1fc3RyZWFtcywKMTQ0NzQ6ICAgICAgdW5zaWduZWQgaW50ICp2X3BvcywKMTQ0
NzQ6ICAgICAgdW5zaWduZWQgaW50ICpub21fdl9wb3MpOwoxNDQ3NDogIyA4NzQgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY192YWxpZGF0aW9uX3NldCB7CjE0NDc0
OiAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtOwoxNDQ3NDogIHN0cnVjdCBkY19wbGFu
ZV9zdGF0ZSAqcGxhbmVfc3RhdGVzWzNdOwoxNDQ3NDogIHVpbnQ4X3QgcGxhbmVfY291bnQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX3ZhbGlkYXRlX3NlYW1sZXNzX2Jvb3RfdGlt
aW5nKGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICAgY29uc3Qgc3RydWN0IGRjX3Npbmsg
KnNpbmssCjE0NDc0OiAgICAgc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZyk7CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX3BsYW5lKHN0cnVjdCBkYyAq
ZGMsIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGdldF9jbG9ja19yZXF1aXJlbWVudHNfZm9yX3N0YXRlKHN0cnVjdCBkY19zdGF0
ZSAqc3RhdGUsIHN0cnVjdCBBc2ljU3RhdGVFeCAqaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wg
ZGNfc2V0X2dlbmVyaWNfZ3Bpb19mb3Jfc3RlcmVvKGJvb2wgZW5hYmxlLAoxNDQ3NDogICBzdHJ1
Y3QgZ3Bpb19zZXJ2aWNlICpncGlvX3NlcnZpY2UpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX2dsb2JhbF9z
dGF0ZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpu
ZXdfY3R4LAoxNDQ3NDogICBib29sIGZhc3RfdmFsaWRhdGUpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVfY29uc3RydWN0KAoxNDQ3NDogICBjb25zdCBzdHJ1
Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmRzdF9jdHgpOwoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3Jlc291cmNlX3N0YXRlX2NvcHlfY29uc3RydWN0KAoxNDQ3NDogICBjb25z
dCBzdHJ1Y3QgZGNfc3RhdGUgKnNyY19jdHgsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqZHN0
X2N0eCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVfY29weV9jb25zdHJ1
Y3RfY3VycmVudCgKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0
IGRjX3N0YXRlICpkc3RfY3R4KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19yZXNvdXJjZV9zdGF0
ZV9kZXN0cnVjdChzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiBib29s
IGRjX3Jlc291cmNlX2lzX2RzY19lbmNvZGluZ19zdXBwb3J0ZWQoY29uc3Qgc3RydWN0IGRjICpk
Yyk7CjE0NDc0OiAjIDkzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RjLmgiCjE0NDc0OiBib29sIGRjX2NvbW1pdF9zdGF0ZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1
Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19z
dGF0ZSAqZGNfY3JlYXRlX3N0YXRlKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogc3RydWN0IGRjX3N0
YXRlICpkY19jb3B5X3N0YXRlKHN0cnVjdCBkY19zdGF0ZSAqc3JjX2N0eCk7CjE0NDc0OiB2b2lk
IGRjX3JldGFpbl9zdGF0ZShzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogdm9pZCBk
Y19yZWxlYXNlX3N0YXRlKHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwY2RfY2FwcyB7CjE0NDc0
OiAgdW5pb24gZHBjZF9yZXYgZHBjZF9yZXY7CjE0NDc0OiAgdW5pb24gbWF4X2xhbmVfY291bnQg
bWF4X2xuX2NvdW50OwoxNDQ3NDogIHVuaW9uIG1heF9kb3duX3NwcmVhZCBtYXhfZG93bl9zcHJl
YWQ7CjE0NDc0OiAgdW5pb24gZHByeF9mZWF0dXJlIGRwcnhfZmVhdHVyZTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgdWludDhfdCBlZHBfc3VwcG9ydGVkX2xpbmtfcmF0ZXNfY291bnQ7CjE0NDc0
OiAgZW51bSBkY19saW5rX3JhdGUgZWRwX3N1cHBvcnRlZF9saW5rX3JhdGVzWzhdOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9uZ2xlX3R5cGU7CjE0
NDc0OiAKMTQ0NzQ6ICBib29sIGlzX2JyYW5jaF9kZXY7CjE0NDc0OiAKMTQ0NzQ6ICB1bmlvbiBz
aW5rX2NvdW50IHNpbmtfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY19k
b25nbGVfY2FwcyBkb25nbGVfY2FwczsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNpbmtfZGV2
X2lkOwoxNDQ3NDogIGludDhfdCBzaW5rX2Rldl9pZF9zdHJbNl07CjE0NDc0OiAgaW50OF90IHNp
bmtfaHdfcmV2aXNpb247CjE0NDc0OiAgaW50OF90IHNpbmtfZndfcmV2aXNpb25bMl07CjE0NDc0
OiAKMTQ0NzQ6ICB1aW50MzJfdCBicmFuY2hfZGV2X2lkOwoxNDQ3NDogIGludDhfdCBicmFuY2hf
ZGV2X25hbWVbNl07CjE0NDc0OiAgaW50OF90IGJyYW5jaF9od19yZXZpc2lvbjsKMTQ0NzQ6ICBp
bnQ4X3QgYnJhbmNoX2Z3X3JldmlzaW9uWzJdOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBhbGxvd19p
bnZhbGlkX01TQV90aW1pbmdfcGFyYW07CjE0NDc0OiAgYm9vbCBwYW5lbF9tb2RlX2VkcDsKMTQ0
NzQ6ICBib29sIGRwY2RfZGlzcGxheV9jb250cm9sX2NhcGFibGU7CjE0NDc0OiAgYm9vbCBleHRf
cmVjZWl2ZXJfY2FwX2ZpZWxkX3ByZXNlbnQ7CjE0NDc0OiAgdW5pb24gZHBjZF9mZWNfY2FwYWJp
bGl0eSBmZWNfY2FwOwoxNDQ3NDogIHN0cnVjdCBkcGNkX2RzY19jYXBhYmlsaXRpZXMgZHNjX2Nh
cHM7CjE0NDc0OiAgc3RydWN0IGRjX2x0dHByX2NhcHMgbHR0cHJfY2FwczsKMTQ0NzQ6IAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZGNfbGluay5oIiAxCjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfbGluay5oIgoxNDQ3NDogZW51bSBkY19saW5rX2Zl
Y19zdGF0ZSB7CjE0NDc0OiAgZGNfbGlua19mZWNfbm90X3JlYWR5LAoxNDQ3NDogIGRjX2xpbmtf
ZmVjX3JlYWR5LAoxNDQ3NDogIGRjX2xpbmtfZmVjX2VuYWJsZWQKMTQ0NzQ6IH07CjE0NDc0OiBz
dHJ1Y3QgZGNfbGlua19zdGF0dXMgewoxNDQ3NDogIGJvb2wgbGlua19hY3RpdmU7CjE0NDc0OiAg
c3RydWN0IGRwY2RfY2FwcyAqZHBjZF9jYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgbGlua19tc3Rfc3RyZWFtX2FsbG9jYXRpb24gewoxNDQ3NDogCjE0NDc0OiAg
Y29uc3Qgc3RydWN0IHN0cmVhbV9lbmNvZGVyICpzdHJlYW1fZW5jOwoxNDQ3NDogCjE0NDc0OiAg
dWludDhfdCB2Y3BfaWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHNsb3RfY291bnQ7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2Nh
dGlvbl90YWJsZSB7CjE0NDc0OiAKMTQ0NzQ6ICBpbnQgc3RyZWFtX2NvdW50OwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IGxpbmtfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHN0cmVhbV9hbGxvY2F0aW9u
c1tNQVhfQ09OVFJPTExFUl9OVU1dOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHRp
bWVfc3RhbXAgewoxNDQ3NDogIHVpbnQ2NF90IGVkcF9wb3dlcm9mZjsKMTQ0NzQ6ICB1aW50NjRf
dCBlZHBfcG93ZXJvbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBsaW5rX3RyYWNl
IHsKMTQ0NzQ6ICBzdHJ1Y3QgdGltZV9zdGFtcCB0aW1lX3N0YW1wOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX2xpbmsgewoxNDQ3NDog
IHN0cnVjdCBkY19zaW5rICpyZW1vdGVfc2lua3NbNF07CjE0NDc0OiAgdW5zaWduZWQgaW50IHNp
bmtfY291bnQ7CjE0NDc0OiAgc3RydWN0IGRjX3NpbmsgKmxvY2FsX3Npbms7CjE0NDc0OiAgdW5z
aWduZWQgaW50IGxpbmtfaW5kZXg7CjE0NDc0OiAgZW51bSBkY19jb25uZWN0aW9uX3R5cGUgdHlw
ZTsKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlIGNvbm5lY3Rvcl9zaWduYWw7CjE0NDc0OiAgZW51
bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2VfaHBkOwoxNDQ3NDogIGVudW0gZGNfaXJxX3NvdXJj
ZSBpcnFfc291cmNlX2hwZF9yeDsKMTQ0NzQ6ICBib29sIGlzX2hwZF9maWx0ZXJfZGlzYWJsZWQ7
CjE0NDc0OiAgYm9vbCBkcF9zc19vZmY7CjE0NDc0OiAgYm9vbCBsaW5rX3N0YXRlX3ZhbGlkOwox
NDQ3NDogIGJvb2wgYXV4X2FjY2Vzc19kaXNhYmxlZDsKMTQ0NzQ6ICBib29sIHN5bmNfbHRfaW5f
cHJvZ3Jlc3M7CjE0NDc0OiAgYm9vbCBpc19sdHRwcl9tb2RlX3RyYW5zcGFyZW50OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3Mg
cmVwb3J0ZWRfbGlua19jYXA7CjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgdmVyaWZp
ZWRfbGlua19jYXA7CjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgY3VyX2xpbmtfc2V0
dGluZ3M7CjE0NDc0OiAgc3RydWN0IGRjX2xhbmVfc2V0dGluZ3MgY3VyX2xhbmVfc2V0dGluZzsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBwcmVmZXJyZWRfbGlua19zZXR0aW5nOwox
NDQ3NDogIHN0cnVjdCBkY19saW5rX3RyYWluaW5nX292ZXJyaWRlcyBwcmVmZXJyZWRfdHJhaW5p
bmdfc2V0dGluZ3M7CjE0NDc0OiAgc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YSBhdWRpb190ZXN0
X2RhdGE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IGRkY19od19pbnN0OwoxNDQ3NDogCjE0NDc0
OiAgdWludDhfdCBocGRfc3JjOwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCBsaW5rX2VuY19od19p
bnN0OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCB0ZXN0X3BhdHRlcm5fZW5hYmxlZDsKMTQ0NzQ6ICB1
bmlvbiBjb21wbGlhbmNlX3Rlc3Rfc3RhdGUgY29tcGxpYW5jZV90ZXN0X3N0YXRlOwoxNDQ3NDog
CjE0NDc0OiAgdm9pZCAqcHJpdjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkZGNfc2VydmljZSAq
ZGRjOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCBhdXhfbW9kZTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGMgKmRjOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaW5rX2VuY29kZXIgKmxpbmtf
ZW5jOwoxNDQ3NDogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgbGlua19pZDsKMTQ0NzQ6ICB1
bmlvbiBkZGlfY2hhbm5lbF9tYXBwaW5nIGRkaV9jaGFubmVsX21hcHBpbmc7CjE0NDc0OiAgc3Ry
dWN0IGNvbm5lY3Rvcl9kZXZpY2VfdGFnX2luZm8gZGV2aWNlX3RhZzsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZHBjZF9jYXBzIGRwY2RfY2FwczsKMTQ0NzQ6ICB1aW50MzJfdCBkb25nbGVfbWF4X3BpeF9jbGs7
CjE0NDc0OiAgdW5zaWduZWQgc2hvcnQgY2hpcF9jYXBzOwoxNDQ3NDogIHVuc2lnbmVkIGludCBk
cGNkX3NpbmtfY291bnQ7CjE0NDc0OiAgZW51bSBlZHBfcmV2aXNpb24gZWRwX3JldmlzaW9uOwox
NDQ3NDogIGJvb2wgcHNyX2ZlYXR1cmVfZW5hYmxlZDsKMTQ0NzQ6ICBib29sIHBzcl9hbGxvd19h
Y3RpdmU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBsaW5rX2ZsYWdzIHsKMTQ0NzQ6
ICAgYm9vbCBkcF9rZWVwX3JlY2VpdmVyX3Bvd2VyZWQ7CjE0NDc0OiAgIGJvb2wgZHBfc2tpcF9E
SUQyOwoxNDQ3NDogICBib29sIGRwX3NraXBfcmVzZXRfc2VnbWVudDsKMTQ0NzQ6ICB9IHdhX2Zs
YWdzOwoxNDQ3NDogIHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSBtc3Rf
c3RyZWFtX2FsbG9jX3RhYmxlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc3RhdHVz
IGxpbmtfc3RhdHVzOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGxpbmtfdHJhY2UgbGlua190cmFj
ZTsKMTQ0NzQ6ICBzdHJ1Y3QgZ3BpbyAqaHBkX2dwaW87CjE0NDc0OiAgZW51bSBkY19saW5rX2Zl
Y19zdGF0ZSBmZWNfc3RhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBjb25zdCBzdHJ1Y3Qg
ZGNfbGlua19zdGF0dXMgKmRjX2xpbmtfZ2V0X3N0YXR1cyhjb25zdCBzdHJ1Y3QgZGNfbGluayAq
ZGNfbGluayk7CjE0NDc0OiAjIDE1NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RjX2xpbmsuaCIKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkY19saW5rICpkY19nZXRfbGlua19h
dF9pbmRleChzdHJ1Y3QgZGMgKmRjLCB1aW50MzJfdCBsaW5rX2luZGV4KQoxNDQ3NDogewoxNDQ3
NDogIHJldHVybiBkYy0+bGlua3NbbGlua19pbmRleF07CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBkY19saW5rICpnZXRfZWRwX2xpbmsoY29uc3Qgc3RydWN0IGRjICpkYykKMTQ0NzQ6
IHsKMTQ0NzQ6ICBpbnQgaTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8
IGRjLT5saW5rX2NvdW50OyBpKyspIHsKMTQ0NzQ6ICAgaWYgKGRjLT5saW5rc1tpXS0+Y29ubmVj
dG9yX3NpZ25hbCA9PSBTSUdOQUxfVFlQRV9FRFApCjE0NDc0OiAgICByZXR1cm4gZGMtPmxpbmtz
W2ldOwoxNDQ3NDogIH0KMTQ0NzQ6ICByZXR1cm4gKCh2b2lkICopMCk7CjE0NDc0OiB9CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19saW5rX3Nl
dF9iYWNrbGlnaHRfbGV2ZWwoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssCjE0NDc0OiAg
IHVpbnQzMl90IGJhY2tsaWdodF9wd21fdTE2XzE2LAoxNDQ3NDogICB1aW50MzJfdCBmcmFtZV9y
YW1wKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGRjX2xpbmtfZ2V0X2JhY2tsaWdodF9sZXZlbChjb25z
dCBzdHJ1Y3QgZGNfbGluayAqZGNfbGluayk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfbGlua19z
ZXRfYWJtX2Rpc2FibGUoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmspOwoxNDQ3NDogCjE0
NDc0OiBib29sIGRjX2xpbmtfc2V0X3Bzcl9hbGxvd19hY3RpdmUoc3RydWN0IGRjX2xpbmsgKmRj
X2xpbmssIGJvb2wgZW5hYmxlLCBib29sIHdhaXQpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX2xp
bmtfZ2V0X3Bzcl9zdGF0ZShjb25zdCBzdHJ1Y3QgZGNfbGluayAqZGNfbGluaywgdWludDMyX3Qg
KnBzcl9zdGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfbGlua19zZXR1cF9wc3Ioc3RydWN0
IGRjX2xpbmsgKmRjX2xpbmssCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg
KnN0cmVhbSwgc3RydWN0IHBzcl9jb25maWcgKnBzcl9jb25maWcsCjE0NDc0OiAgIHN0cnVjdCBw
c3JfY29udGV4dCAqcHNyX2NvbnRleHQpOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2RldGVjdF9yZWFzb24gewox
NDQ3NDogIERFVEVDVF9SRUFTT05fQk9PVCwKMTQ0NzQ6ICBERVRFQ1RfUkVBU09OX0hQRCwKMTQ0
NzQ6ICBERVRFQ1RfUkVBU09OX0hQRFJYLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBk
Y19saW5rX2RldGVjdChzdHJ1Y3QgZGNfbGluayAqZGNfbGluaywgZW51bSBkY19kZXRlY3RfcmVh
c29uIHJlYXNvbik7CjE0NDc0OiBib29sIGRjX2xpbmtfZ2V0X2hwZF9zdGF0ZShzdHJ1Y3QgZGNf
bGluayAqZGNfbGluayk7CjE0NDc0OiBlbnVtIGRjX3N0YXR1cyBkY19saW5rX2FsbG9jYXRlX21z
dF9wYXlsb2FkKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogZW51bSBkY19zdGF0
dXMgZGNfbGlua19yZWFsbG9jYXRlX21zdF9wYXlsb2FkKHN0cnVjdCBkY19saW5rICpsaW5rKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogYm9vbCBkY19saW5rX2hhbmRsZV9ocGRfcnhfaXJxKHN0cnVjdCBkY19saW5rICpkY19s
aW5rLAoxNDQ3NDogICB1bmlvbiBocGRfaXJxX2RhdGEgKmhwZF9pcnFfZHBjZF9kYXRhLCBib29s
ICpvdXRfbGlua19sb3NzKTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRjX3NpbmtfaW5pdF9kYXRh
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfc2luayAqZGNfbGlua19hZGRfcmVtb3RlX3Npbmso
CjE0NDc0OiAgIHN0cnVjdCBkY19saW5rICpkY19saW5rLAoxNDQ3NDogICBjb25zdCB1aW50OF90
ICplZGlkLAoxNDQ3NDogICBpbnQgbGVuLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc2lua19pbml0X2Rh
dGEgKmluaXRfZGF0YSk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfbGlua19yZW1vdmVfcmVtb3Rl
X3NpbmsoCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAgc3RydWN0IGRjX3Np
bmsgKnNpbmspOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX2Rw
X3NldF9kcml2ZV9zZXR0aW5ncygKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6
ICBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqbHRfc2V0dGluZ3MpOwoxNDQ3NDogCjE0
NDc0OiBib29sIGRjX2xpbmtfZHBfcGVyZm9ybV9saW5rX3RyYWluaW5nX3NraXBfYXV4KAoxNDQ3
NDogIHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19saW5rX3Nl
dHRpbmdzICpsaW5rX3NldHRpbmcpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGxpbmtfdHJhaW5pbmdf
cmVzdWx0IGRjX2xpbmtfZHBfcGVyZm9ybV9saW5rX3RyYWluaW5nKAoxNDQ3NDogIHN0cnVjdCBk
Y19saW5rICpsaW5rLAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5r
X3NldHRpbmcsCjE0NDc0OiAgYm9vbCBza2lwX3ZpZGVvX3BhdHRlcm4pOwoxNDQ3NDogCjE0NDc0
OiBib29sIGRjX2xpbmtfZHBfc3luY19sdF9iZWdpbihzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9zeW5jX2x0
X2F0dGVtcHQoCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKMTQ0NzQ6ICBzdHJ1Y3QgZGNfbGlua190cmFp
bmluZ19vdmVycmlkZXMgKmx0X3NldHRpbmdzKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19saW5r
X2RwX3N5bmNfbHRfZW5kKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIGxpbmtfZG93bik7CjE0
NDc0OiAKMTQ0NzQ6IHZvaWQgZGNfbGlua19kcF9lbmFibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19s
aW5rICpsaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX2RwX2Rpc2FibGVfaHBkKGNv
bnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19saW5rX2Rw
X3NldF90ZXN0X3BhdHRlcm4oCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAg
ZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAoxNDQ3NDogIGVudW0gZHBfdGVzdF9w
YXR0ZXJuX2NvbG9yX3NwYWNlIHRlc3RfcGF0dGVybl9jb2xvcl9zcGFjZSwKMTQ0NzQ6ICBjb25z
dCBzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqcF9saW5rX3NldHRpbmdzLAoxNDQ3NDog
IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCjE0NDc0OiAgdW5zaWduZWQg
aW50IGN1c3RfcGF0dGVybl9zaXplKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX2VuYWJs
ZV9ocGRfZmlsdGVyKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIGVuYWJsZSk7CjE0NDc0OiAK
MTQ0NzQ6IGJvb2wgZGNfbGlua19pc19kcF9zaW5rX3ByZXNlbnQoc3RydWN0IGRjX2xpbmsgKmxp
bmspOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX2xpbmtfZGV0ZWN0X3Npbmsoc3RydWN0IGRjX2xp
bmsgKmxpbmssIGVudW0gZGNfY29ubmVjdGlvbl90eXBlICp0eXBlKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19saW5rX3NldF9kcml2ZV9zZXR0aW5ncyhz
dHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgIHN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICps
dF9zZXR0aW5ncywKMTQ0NzQ6ICAgICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0
OiB2b2lkIGRjX2xpbmtfcGVyZm9ybV9saW5rX3RyYWluaW5nKHN0cnVjdCBkYyAqZGMsCjE0NDc0
OiAgICAgICAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKMTQ0NzQ6ICAg
ICAgICBib29sIHNraXBfdmlkZW9fcGF0dGVybik7CjE0NDc0OiB2b2lkIGRjX2xpbmtfc2V0X3By
ZWZlcnJlZF9saW5rX3NldHRpbmdzKHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgICAgICBzdHJ1Y3Qg
ZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nLAoxNDQ3NDogICAgICAgc3RydWN0IGRjX2xp
bmsgKmxpbmspOwoxNDQ3NDogdm9pZCBkY19saW5rX3NldF9wcmVmZXJyZWRfdHJhaW5pbmdfc2V0
dGluZ3Moc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgICAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3Mg
Kmxpbmtfc2V0dGluZywKMTQ0NzQ6ICAgICAgc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJp
ZGVzICpsdF9vdmVycmlkZXMsCjE0NDc0OiAgICAgIHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3
NDogICAgICBib29sIHNraXBfaW1tZWRpYXRlX3JldHJhaW4pOwoxNDQ3NDogdm9pZCBkY19saW5r
X2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoxNDQ3NDogdm9pZCBkY19s
aW5rX2Rpc2FibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6IHZvaWQg
ZGNfbGlua19zZXRfdGVzdF9wYXR0ZXJuKHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3NDogICAg
ZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAoxNDQ3NDogICAgZW51bSBkcF90ZXN0
X3BhdHRlcm5fY29sb3Jfc3BhY2UgdGVzdF9wYXR0ZXJuX2NvbG9yX3NwYWNlLAoxNDQ3NDogICAg
Y29uc3Qgc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgKnBfbGlua19zZXR0aW5ncywKMTQ0
NzQ6ICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCjE0NDc0OiAgICB1
bnNpZ25lZCBpbnQgY3VzdF9wYXR0ZXJuX3NpemUpOwoxNDQ3NDogdWludDMyX3QgZGNfbGlua19i
YW5kd2lkdGhfa2JwcygKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6
ICBjb25zdCBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5nKTsKMTQ0NzQ6IAox
NDQ3NDogY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmRjX2xpbmtfZ2V0X2xpbmtfY2Fw
KAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0NzQ6IHZv
aWQgZGNfbGlua19vdmVyd3JpdGVfZXh0ZW5kZWRfcmVjZWl2ZXJfY2FwKAoxNDQ3NDogICBzdHJ1
Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfc3VibWl0X2kyYygKMTQ0
NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0NzQ6ICAgdWludDMyX3QgbGlua19pbmRleCwKMTQ0NzQ6
ICAgc3RydWN0IGkyY19jb21tYW5kICpjbWQpOwoxNDQ3NDogCjE0NDc0OiBib29sIGRjX3N1Ym1p
dF9pMmNfb2VtKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgaTJjX2Nv
bW1hbmQgKmNtZCk7CjE0NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGRjX2JhbmR3aWR0aF9pbl9rYnBz
X2Zyb21fdGltaW5nKAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5n
KTsKMTQ0NzQ6ICMgOTgzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGMuaCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19jb250YWluZXJfaWQgewoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgY2hhciBn
dWlkWzE2XTsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCBwb3J0SWRbMl07CjE0NDc0OiAK
MTQ0NzQ6ICB1bnNpZ25lZCBzaG9ydCBtYW51ZmFjdHVyZXJOYW1lOwoxNDQ3NDogCjE0NDc0OiAg
dW5zaWduZWQgc2hvcnQgcHJvZHVjdENvZGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBkY19zaW5rX2RzY19jYXBzIHsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9v
bCBpc192aXJ0dWFsX2RwY2RfZHNjOwoxNDQ3NDogIHN0cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyBk
c2NfZGVjX2NhcHM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGNfc2luayB7CjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaW5rX3NpZ25h
bDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZWRpZCBkY19lZGlkOwoxNDQ3NDogIHN0cnVjdCBkY19lZGlk
X2NhcHMgZWRpZF9jYXBzOwoxNDQ3NDogIHN0cnVjdCBkY19jb250YWluZXJfaWQgKmRjX2NvbnRh
aW5lcl9pZDsKMTQ0NzQ6ICB1aW50MzJfdCBkb25nbGVfbWF4X3BpeF9jbGs7CjE0NDc0OiAgdm9p
ZCAqcHJpdjsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RlcmVvXzNkX2ZlYXR1cmVzIGZlYXR1cmVzXzNkW1RJ
TUlOR18zRF9GT1JNQVRfTUFYXTsKMTQ0NzQ6ICBib29sIGNvbnZlcnRlcl9kaXNhYmxlX2F1ZGlv
OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX3NpbmtfZHNjX2NhcHMgc2lua19kc2NfY2FwczsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2xpbmsgKmxpbms7CjE0NDc0OiAgc3Ry
dWN0IGRjX2NvbnRleHQgKmN0eDsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHNpbmtfaWQ7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBrcmVm
IHJlZmNvdW50OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19zaW5rX3JldGFpbihz
dHJ1Y3QgZGNfc2luayAqc2luayk7CjE0NDc0OiB2b2lkIGRjX3NpbmtfcmVsZWFzZShzdHJ1Y3Qg
ZGNfc2luayAqc2luayk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY19zaW5rX2luaXRfZGF0YSB7
CjE0NDc0OiAgZW51bSBzaWduYWxfdHlwZSBzaW5rX3NpZ25hbDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNf
bGluayAqbGluazsKMTQ0NzQ6ICB1aW50MzJfdCBkb25nbGVfbWF4X3BpeF9jbGs7CjE0NDc0OiAg
Ym9vbCBjb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBkY19zaW5rICpkY19zaW5rX2NyZWF0ZShjb25zdCBzdHJ1Y3QgZGNfc2lua19pbml0X2Rh
dGEgKmluaXRfcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNfY3Vyc29y
IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBhZGRyZXNzOwoxNDQ3NDogIHN0cnVj
dCBkY19jdXJzb3JfYXR0cmlidXRlcyBhdHRyaWJ1dGVzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2lycV9zb3VyY2UgZGNf
aW50ZXJydXB0X3RvX2lycV9zb3VyY2UoCjE0NDc0OiAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAg
IHVpbnQzMl90IHNyY19pZCwKMTQ0NzQ6ICAgdWludDMyX3QgZXh0X2lkKTsKMTQ0NzQ6IGJvb2wg
ZGNfaW50ZXJydXB0X3NldChzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2lycV9zb3VyY2Ugc3JjLCBi
b29sIGVuYWJsZSk7CjE0NDc0OiB2b2lkIGRjX2ludGVycnVwdF9hY2soc3RydWN0IGRjICpkYywg
ZW51bSBkY19pcnFfc291cmNlIHNyYyk7CjE0NDc0OiBlbnVtIGRjX2lycV9zb3VyY2UgZGNfZ2V0
X2hwZF9pcnFfc291cmNlX2F0X2luZGV4KAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLCB1aW50MzJf
dCBsaW5rX2luZGV4KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiB2b2lkIGRjX3NldF9wb3dlcl9zdGF0ZSgKMTQ0NzQ6ICAgc3RydWN0IGRjICpkYywKMTQ0
NzQ6ICAgZW51bSBkY19hY3BpX2NtX3Bvd2VyX3N0YXRlIHBvd2VyX3N0YXRlKTsKMTQ0NzQ6IHZv
aWQgZGNfcmVzdW1lKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogdW5zaWduZWQgaW50IGRjX2dldF9j
dXJyZW50X2JhY2tsaWdodF9wd20oc3RydWN0IGRjICpkYyk7CjE0NDc0OiB1bnNpZ25lZCBpbnQg
ZGNfZ2V0X3RhcmdldF9iYWNrbGlnaHRfcHdtKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0NDc0
OiBib29sIGRjX2lzX2RtY3VfaW5pdGlhbGl6ZWQoc3RydWN0IGRjICpkYyk7CjE0NDc0OiBib29s
IGRjX2lzX2h3X2luaXRpYWxpemVkKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0NDc0OiBlbnVt
IGRjX3N0YXR1cyBkY19zZXRfY2xvY2soc3RydWN0IGRjICpkYywgZW51bSBkY19jbG9ja190eXBl
IGNsb2NrX3R5cGUsIHVpbnQzMl90IGNsa19raHosIHVpbnQzMl90IHN0ZXBwaW5nKTsKMTQ0NzQ6
IHZvaWQgZGNfZ2V0X2Nsb2NrKHN0cnVjdCBkYyAqZGMsIGVudW0gZGNfY2xvY2tfdHlwZSBjbG9j
a190eXBlLCBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZGNfZHNjLmgiIDEKMTQ0NzQ6ICMgMzQgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9kY19kc2MuaCIKMTQ0NzQ6IHN0cnVjdCBkY19kc2NfYndfcmFu
Z2UgewoxNDQ3NDogIHVpbnQzMl90IG1pbl9rYnBzOwoxNDQ3NDogIHVpbnQzMl90IG1pbl90YXJn
ZXRfYnBwX3gxNjsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfa2JwczsKMTQ0NzQ6ICB1aW50MzJfdCBt
YXhfdGFyZ2V0X2JwcF94MTY7CjE0NDc0OiAgdWludDMyX3Qgc3RyZWFtX2ticHM7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGlzcGxheV9zdHJlYW1fY29tcHJlc3NvciB7CjE0NDc0
OiAgY29uc3Qgc3RydWN0IGRzY19mdW5jcyAqZnVuY3M7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eDsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBkY19kc2NfcG9saWN5IHsKMTQ0NzQ6ICBib29sIHVzZV9taW5fc2xpY2VzX2g7CjE0NDc0OiAg
aW50IG1heF9zbGljZXNfaDsKMTQ0NzQ6ICBpbnQgbWluX3NsaWNlX2hlaWdodDsKMTQ0NzQ6ICB1
aW50MzJfdCBtYXhfdGFyZ2V0X2JwcDsKMTQ0NzQ6ICB1aW50MzJfdCBtaW5fdGFyZ2V0X2JwcDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZGNfZHNjX3BhcnNlX2RzY19kcGNkKGNvbnN0
IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIGNvbnN0IHVpbnQ4X3QgKmRwY2RfZHNjX2Jhc2ljX2Rh
dGEsCjE0NDc0OiAgIGNvbnN0IHVpbnQ4X3QgKmRwY2RfZHNjX2V4dF9kYXRhLAoxNDQ3NDogICBz
dHJ1Y3QgZHNjX2RlY19kcGNkX2NhcHMgKmRzY19zaW5rX2NhcHMpOwoxNDQ3NDogCjE0NDc0OiBi
b29sIGRjX2RzY19jb21wdXRlX2JhbmR3aWR0aF9yYW5nZSgKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0
IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYywKMTQ0NzQ6ICAgY29uc3QgdWludDMyX3Qg
ZHNjX21pbl9zbGljZV9oZWlnaHRfb3ZlcnJpZGUsCjE0NDc0OiAgIGNvbnN0IHVpbnQzMl90IG1p
bl9icHAsCjE0NDc0OiAgIGNvbnN0IHVpbnQzMl90IG1heF9icHAsCjE0NDc0OiAgIGNvbnN0IHN0
cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyAqZHNjX3NpbmtfY2FwcywKMTQ0NzQ6ICAgY29uc3Qgc3Ry
dWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsCjE0NDc0OiAgIHN0cnVjdCBkY19kc2NfYndfcmFu
Z2UgKnJhbmdlKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY19kc2NfY29tcHV0ZV9jb25maWcoCjE0
NDc0OiAgIGNvbnN0IHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsCjE0NDc0
OiAgIGNvbnN0IHN0cnVjdCBkc2NfZGVjX2RwY2RfY2FwcyAqZHNjX3NpbmtfY2FwcywKMTQ0NzQ6
ICAgY29uc3QgdWludDMyX3QgZHNjX21pbl9zbGljZV9oZWlnaHRfb3ZlcnJpZGUsCjE0NDc0OiAg
IHVpbnQzMl90IHRhcmdldF9iYW5kd2lkdGhfa2JwcywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRj
X2NydGNfdGltaW5nICp0aW1pbmcsCjE0NDc0OiAgIHN0cnVjdCBkY19kc2NfY29uZmlnICpkc2Nf
Y2ZnKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19kc2NfZ2V0X3BvbGljeV9mb3JfdGltaW5nKGNv
bnN0IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZHNj
X3BvbGljeSAqcG9saWN5KTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBkY19kc2NfcG9saWN5X3NldF9t
YXhfdGFyZ2V0X2JwcF9saW1pdCh1aW50MzJfdCBsaW1pdCk7CjE0NDc0OiAjIDEwODYgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCjE0NDc0OiAjIDMw
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19t
Z3IuaCIgMgoxNDQ3NDogIyA1MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9ody9jbGtfbWdyLmgiCjE0NDc0OiBzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlX2Vu
dHJ5IHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdm9sdGFnZTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
ZGNmY2xrX21oejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmNsa19taHo7CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IG1lbWNsa19taHo7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNvY2Nsa19taHo7CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfbGltaXRfdGFibGUgewoxNDQ3
NDogIHN0cnVjdCBjbGtfbGltaXRfdGFibGVfZW50cnkgZW50cmllc1s4XTsKMTQ0NzQ6ICB1bnNp
Z25lZCBpbnQgbnVtX2VudHJpZXM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd21f
cmFuZ2VfdGFibGVfZW50cnkgewoxNDQ3NDogIHVuc2lnbmVkIGludCB3bV9pbnN0OwoxNDQ3NDog
IHVuc2lnbmVkIGludCB3bV90eXBlOwoxNDQ3NDogIGRvdWJsZSBwc3RhdGVfbGF0ZW5jeV91czsK
MTQ0NzQ6ICBkb3VibGUgc3JfZXhpdF90aW1lX3VzOwoxNDQ3NDogIGRvdWJsZSBzcl9lbnRlcl9w
bHVzX2V4aXRfdGltZV91czsKMTQ0NzQ6ICBib29sIHZhbGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY2xrX2xvZ19pbmZvIHsKMTQ0NzQ6ICBib29sIGVuYWJsZWQ7
CjE0NDc0OiAgY2hhciAqcEJ1ZjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYnVmU2l6ZTsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgKnN1bV9jaGFyc19wcmludGVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5cGFzcyB7CjE0NDc0OiAgdWludDMy
X3QgZGNmY2xrOwoxNDQ3NDogIHVpbnQzMl90IGRjZl9kZWVwX3NsZWVwX2RpdmlkZXI7CjE0NDc0
OiAgdWludDMyX3QgZGNmX2RlZXBfc2xlZXBfYWxsb3c7CjE0NDc0OiAgdWludDMyX3QgZHByZWZj
bGs7CjE0NDc0OiAgdWludDMyX3QgZGlzcGNsazsKMTQ0NzQ6ICB1aW50MzJfdCBkcHBjbGs7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkcHBjbGtfYnlwYXNzOwoxNDQ3NDogIHVpbnQzMl90IGRj
ZmNsa19ieXBhc3M7CjE0NDc0OiAgdWludDMyX3QgZHByZWZjbGtfYnlwYXNzOwoxNDQ3NDogIHVp
bnQzMl90IGRpc3BjbGtfYnlwYXNzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJ2
MV9jbGtfaW50ZXJuYWwgewoxNDQ3NDogIHVpbnQzMl90IENMSzBfQ0xLOF9DVVJSRU5UX0NOVDsK
MTQ0NzQ6ICB1aW50MzJfdCBDTEswX0NMSzhfRFNfQ05UTDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsw
X0NMSzhfQUxMT1dfRFM7CjE0NDc0OiAgdWludDMyX3QgQ0xLMF9DTEsxMF9DVVJSRU5UX0NOVDsK
MTQ0NzQ6ICB1aW50MzJfdCBDTEswX0NMSzExX0NVUlJFTlRfQ05UOwoxNDQ3NDogCjE0NDc0OiAg
dWludDMyX3QgQ0xLMF9DTEs4X0JZUEFTU19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IENMSzBfQ0xL
MTBfQllQQVNTX0NOVEw7CjE0NDc0OiAgdWludDMyX3QgQ0xLMF9DTEsxMV9CWVBBU1NfQ05UTDsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBybl9jbGtfaW50ZXJuYWwgewoxNDQ3NDog
IHVpbnQzMl90IENMSzFfQ0xLMF9DVVJSRU5UX0NOVDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NM
SzFfQ1VSUkVOVF9DTlQ7CjE0NDc0OiAgdWludDMyX3QgQ0xLMV9DTEsyX0NVUlJFTlRfQ05UOwox
NDQ3NDogIHVpbnQzMl90IENMSzFfQ0xLM19DVVJSRU5UX0NOVDsKMTQ0NzQ6ICB1aW50MzJfdCBD
TEsxX0NMSzNfRFNfQ05UTDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzNfQUxMT1dfRFM7CjE0
NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzBfQllQQVNTX0NOVEw7CjE0NDc0OiAgdWlu
dDMyX3QgQ0xLMV9DTEsxX0JZUEFTU19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IENMSzFfQ0xLMl9C
WVBBU1NfQ05UTDsKMTQ0NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzNfQllQQVNTX0NOVEw7CjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19zdGF0ZV9yZWdp
c3RlcnMgewoxNDQ3NDogICB1aW50MzJfdCBDTEswX0NMSzhfQ1VSUkVOVF9DTlQ7CjE0NDc0OiAg
IHVpbnQzMl90IENMSzBfQ0xLOF9EU19DTlRMOwoxNDQ3NDogICB1aW50MzJfdCBDTEswX0NMSzhf
QUxMT1dfRFM7CjE0NDc0OiAgIHVpbnQzMl90IENMSzBfQ0xLMTBfQ1VSUkVOVF9DTlQ7CjE0NDc0
OiAgIHVpbnQzMl90IENMSzBfQ0xLMTFfQ1VSUkVOVF9DTlQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfYnlwYXNzIHsKMTQ0NzQ6ICB1aW50MzJfdCBkY2ZjbGtf
YnlwYXNzOwoxNDQ3NDogIHVpbnQzMl90IGRpc3BjbGtfcHlwYXNzOwoxNDQ3NDogIHVpbnQzMl90
IGRwcmVmY2xrX2J5cGFzczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd21fdGFibGUgewoxNDQ3NDogIHN0cnVj
dCB3bV9yYW5nZV90YWJsZV9lbnRyeSBlbnRyaWVzWzRdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogc3RydWN0IGNsa19id19wYXJhbXMgewoxNDQ3NDogIHVuc2lnbmVkIGludCB2cmFtX3R5cGU7
CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bV9jaGFubmVsczsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX2xp
bWl0X3RhYmxlIGNsa190YWJsZTsKMTQ0NzQ6ICBzdHJ1Y3Qgd21fdGFibGUgd21fdGFibGU7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfc3RhdGVzIHsKMTQ0NzQ6
ICB1aW50MzJfdCBkcHJlZmNsa19raHo7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
Y2xrX21ncl9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqdXBkYXRlX2Nsb2Nrcykoc3RydWN0IGNsa19t
Z3IgKmNsa19tZ3IsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAg
ICBib29sIHNhZmVfdG9fbG93ZXIpOwoxNDQ3NDogCjE0NDc0OiAgaW50ICgqZ2V0X2RwX3JlZl9j
bGtfZnJlcXVlbmN5KShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqaW5pdF9jbG9ja3MpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKMTQ0NzQ6IAoxNDQ3
NDogIHZvaWQgKCplbmFibGVfcG1lX3dhKSAoc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOwoxNDQ3
NDogIHZvaWQgKCpnZXRfY2xvY2spKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAoxNDQ3NDogICAg
c3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDogICAgZW51bSBkY19jbG9ja190eXBlIGNs
b2NrX3R5cGUsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwox
NDQ3NDogCjE0NDc0OiAgYm9vbCAoKmFyZV9jbG9ja19zdGF0ZXNfZXF1YWwpIChzdHJ1Y3QgZGNf
Y2xvY2tzICphLAoxNDQ3NDogICAgc3RydWN0IGRjX2Nsb2NrcyAqYik7CjE0NDc0OiAgdm9pZCAo
Km5vdGlmeV93bV9yYW5nZXMpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbGtfbWdyIHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAq
Y3R4OwoxNDQ3NDogIHN0cnVjdCBjbGtfbWdyX2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3Qg
ZGNfY2xvY2tzIGNsa3M7CjE0NDc0OiAgYm9vbCBwc3JfYWxsb3dfYWN0aXZlX2NhY2hlOwoxNDQ3
NDogIGludCBkcHJlZmNsa19raHo7CjE0NDc0OiAgaW50IGRlbnRpc3RfdmNvX2ZyZXFfa2h6Owox
NDQ3NDogIHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0ZXJzX2FuZF9ieXBhc3MgYm9vdF9zbmFwc2hv
dDsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX2J3X3BhcmFtcyAqYndfcGFyYW1zOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNjZzsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNs
a19tZ3IgKmRjX2Nsa19tZ3JfY3JlYXRlKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHN0cnVjdCBw
cF9zbXVfZnVuY3MgKnBwX3NtdSwgc3RydWN0IGRjY2cgKmRjY2cpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIGRjX2Rlc3Ryb3lfY2xrX21ncihzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CjE0NDc0OiAK
MTQ0NzQ6IHZvaWQgY2xrX21ncl9leGl0X29wdGltaXplZF9wd3Jfc3RhdGUoY29uc3Qgc3RydWN0
IGRjICpkYywgc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGNs
a19tZ3Jfb3B0aW1pemVfcHdyX3N0YXRlKGNvbnN0IHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBjbGtf
bWdyICpjbGtfbWdyKTsKMTQ0NzQ6ICMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvcmVzb3VyY2UuaCIgMQoxNDQ3NDog
IyAyOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9yZXNv
dXJjZS5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMQoxNDQ3NDogIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiCjE0NDc0OiAjIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNlX2NhbGNzLmgi
IDEKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvZGNlX2NhbGNzLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvYndfZml4ZWQuaCIgMQoxNDQ3NDogIyAzMiAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9id19maXhlZC5oIgoxNDQ3NDog
c3RydWN0IGJ3X2ZpeGVkIHsKMTQ0NzQ6ICBpbnQ2NF90IHZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGJ3X2ZpeGVkIGJ3X21pbjIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCjE0NDc0
OiAgICAgICAgICAgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCjE0NDc0OiB7CjE0NDc0OiAg
cmV0dXJuIChhcmcxLnZhbHVlIDw9IGFyZzIudmFsdWUpID8gYXJnMSA6IGFyZzI7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19tYXgyKGNvbnN0IHN0cnVjdCBid19m
aXhlZCBhcmcxLAoxNDQ3NDogICAgICAgICAgIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiAoYXJnMi52YWx1ZSA8PSBhcmcxLnZhbHVlKSA/IGFyZzEg
OiBhcmcyOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfbWluMyhz
dHJ1Y3QgYndfZml4ZWQgdjEsCjE0NDc0OiAgICAgICAgICAgc3RydWN0IGJ3X2ZpeGVkIHYyLAox
NDQ3NDogICAgICAgICAgIHN0cnVjdCBid19maXhlZCB2MykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYndfbWluMihid19taW4yKHYxLCB2MiksIHYzKTsKMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGJ3X2ZpeGVkIGJ3X21heDMoc3RydWN0IGJ3X2ZpeGVkIHYxLAoxNDQ3NDogICAgICAg
ICAgIHN0cnVjdCBid19maXhlZCB2MiwKMTQ0NzQ6ICAgICAgICAgICBzdHJ1Y3QgYndfZml4ZWQg
djMpCjE0NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGJ3X21heDIoYndfbWF4Mih2MSwgdjIpLCB2Myk7
CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBid19maXhlZCBid19pbnRfdG9fZml4ZWRf
bm9uY29uc3QoaW50NjRfdCB2YWx1ZSk7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfaW50X3Rv
X2ZpeGVkKGludDY0X3QgdmFsdWUpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKF9fYnVpbHRpbl9jb25z
dGFudF9wKHZhbHVlKSkgewoxNDQ3NDogICBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoxNDQ3NDogICBk
byB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzczKHZvaWQpIF9fYXR0cmlidXRl
X18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAidmFsdWUgPiBCV19GSVhFRF9N
QVhfSTMyIHx8IHZhbHVlIDwgQldfRklYRURfTUlOX0kzMiIpKSk7IGlmICghKCEodmFsdWUgPiAo
aW50NjRfdCkoKDFVTEwgPDwgKDYzIC0gMjQpKSAtIDEpIHx8IHZhbHVlIDwgKGludDY0X3QpKC0o
MUxMIDw8ICg2MyAtIDI0KSkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzczKCk7IH0gd2hpbGUg
KDApOwoxNDQ3NDogICByZXMudmFsdWUgPSB2YWx1ZSA8PCAyNDsKMTQ0NzQ6ICAgcmV0dXJuIHJl
czsKMTQ0NzQ6ICB9IGVsc2UKMTQ0NzQ6ICAgcmV0dXJuIGJ3X2ludF90b19maXhlZF9ub25jb25z
dCh2YWx1ZSk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludDMyX3QgYndfZml4ZWRfdG9faW50
KHN0cnVjdCBid19maXhlZCB2YWx1ZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKCh2YWx1ZS52
YWx1ZSkgPj4gMjQpOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYndfZml4ZWQgYndf
ZnJjX3RvX2ZpeGVkKGludDY0X3QgbnVtLCBpbnQ2NF90IGRlbnVtKTsKMTQ0NzQ6IAoxNDQ3NDog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGJ3X2ZpeGVkIGZpeGVkMzFfMzJfdG9fYndfZml4ZWQoaW50NjRfdCByYXcpCjE0NDc0
OiB7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHJlc3VsdCA9IHsgMCB9OwoxNDQ3NDogCjE0NDc0
OiAgaWYgKHJhdyA8IDApIHsKMTQ0NzQ6ICAgcmF3ID0gLXJhdzsKMTQ0NzQ6ICAgcmVzdWx0LnZh
bHVlID0gLShyYXcgPj4gKDMyIC0gMjQpKTsKMTQ0NzQ6ICB9IGVsc2UgewoxNDQ3NDogICByZXN1
bHQudmFsdWUgPSByYXcgPj4gKDMyIC0gMjQpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIHJl
dHVybiByZXN1bHQ7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19h
ZGQoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCjE0NDc0OiAgICAgICAgICBjb25zdCBzdHJ1
Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVzOwox
NDQ3NDogCjE0NDc0OiAgcmVzLnZhbHVlID0gYXJnMS52YWx1ZSArIGFyZzIudmFsdWU7CjE0NDc0
OiAKMTQ0NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndf
Zml4ZWQgYndfc3ViKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndf
Zml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoxNDQ3NDog
CjE0NDc0OiAgcmVzLnZhbHVlID0gYXJnMS52YWx1ZSAtIGFyZzIudmFsdWU7CjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gcmVzOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYndfZml4ZWQg
YndfbXVsKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQg
YXJnMik7CjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfZGl2KGNvbnN0IHN0cnVjdCBid19maXhl
ZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1
cm4gYndfZnJjX3RvX2ZpeGVkKGFyZzEudmFsdWUsIGFyZzIudmFsdWUpOwoxNDQ3NDogfQoxNDQ3
NDogCjE0NDc0OiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfbW9kKGNvbnN0IHN0cnVjdCBid19maXhlZCBh
cmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgcmVzOwoxNDQ3NDogIGRpdjY0X3U2NF9yZW0oYXJnMS52YWx1ZSwgYXJnMi52YWx1
ZSwgKHVpbnQ2NF90ICopJnJlcy52YWx1ZSk7CjE0NDc0OiAgcmV0dXJuIHJlczsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGJ3X2ZpeGVkIGJ3X2Zsb29yMihjb25zdCBzdHJ1Y3QgYndf
Zml4ZWQgYXJnLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgc2lnbmlmaWNhbmNlKTsKMTQ0NzQ6IHN0
cnVjdCBid19maXhlZCBid19jZWlsMihjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnLCBjb25zdCBz
dHJ1Y3QgYndfZml4ZWQgc2lnbmlmaWNhbmNlKTsKMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBid19lcXUo
Y29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQox
NDQ3NDogewoxNDQ3NDogIHJldHVybiBhcmcxLnZhbHVlID09IGFyZzIudmFsdWU7CjE0NDc0OiB9
CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgYndfbmVxKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBj
b25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52
YWx1ZSAhPSBhcmcyLnZhbHVlOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGJ3X2xlcShj
b25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMSwgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCjE0
NDc0OiB7CjE0NDc0OiAgcmV0dXJuIGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZTsKMTQ0NzQ6IH0K
MTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBid19tZXEoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQoxNDQ3NDogewoxNDQ3NDogIHJldHVybiBhcmcxLnZh
bHVlID49IGFyZzIudmFsdWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYndfbHRuKGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0
NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1ZSA8IGFyZzIudmFsdWU7CjE0NDc0OiB9CjE0
NDc0OiAKMTQ0NzQ6IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgYndfbXRuKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25z
dCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gYXJnMS52YWx1
ZSA+IGFyZzIudmFsdWU7CjE0NDc0OiB9CjE0NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2RjZV9jYWxjcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwaXBlX2N0eDsKMTQ0NzQ6IHN0cnVjdCBkYzsKMTQ0NzQ6IHN0cnVjdCBkY19zdGF0
ZTsKMTQ0NzQ6IHN0cnVjdCBkY2VfYndfb3V0cHV0OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGJ3X2Nh
bGNzX3ZlcnNpb24gewoxNDQ3NDogIEJXX0NBTENTX1ZFUlNJT05fSU5WQUxJRCwKMTQ0NzQ6ICBC
V19DQUxDU19WRVJTSU9OX0NBUlJJWk8sCjE0NDc0OiAgQldfQ0FMQ1NfVkVSU0lPTl9QT0xBUklT
MTAsCjE0NDc0OiAgQldfQ0FMQ1NfVkVSU0lPTl9QT0xBUklTMTEsCjE0NDc0OiAgQldfQ0FMQ1Nf
VkVSU0lPTl9QT0xBUklTMTIsCjE0NDc0OiAgQldfQ0FMQ1NfVkVSU0lPTl9WRUdBTSwKMTQ0NzQ6
ICBCV19DQUxDU19WRVJTSU9OX1NUT05FWSwKMTQ0NzQ6ICBCV19DQUxDU19WRVJTSU9OX1ZFR0Ex
MAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9pbmMvZGNlX2NhbGNzLmgiCjE0NDc0OiBlbnVtIGJ3X2RlZmluZXMgewoxNDQ3
NDogCjE0NDc0OiAgYndfZGVmX25vID0gMCwKMTQ0NzQ6ICBid19kZWZfbm9uZSA9IDAsCjE0NDc0
OiAgYndfZGVmX3llcyA9IDEsCjE0NDc0OiAgYndfZGVmX29rID0gMSwKMTQ0NzQ6ICBid19kZWZf
aGlnaCA9IDIsCjE0NDc0OiAgYndfZGVmX21pZCA9IDEsCjE0NDc0OiAgYndfZGVmX2xvdyA9IDAs
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJ3X2RlZnNfc3RhcnQgPSAyNTUsCjE0NDc0OiAgYndf
ZGVmX3VuZGVybGF5NDIyLAoxNDQ3NDogIGJ3X2RlZl91bmRlcmxheTQyMF9sdW1hLAoxNDQ3NDog
IGJ3X2RlZl91bmRlcmxheTQyMF9jaHJvbWEsCjE0NDc0OiAgYndfZGVmX3VuZGVybGF5NDQ0LAox
NDQ3NDogIGJ3X2RlZl9ncmFwaGljcywKMTQ0NzQ6ICBid19kZWZfZGlzcGxheV93cml0ZV9iYWNr
NDIwX2x1bWEsCjE0NDc0OiAgYndfZGVmX2Rpc3BsYXlfd3JpdGVfYmFjazQyMF9jaHJvbWEsCjE0
NDc0OiAgYndfZGVmX3BvcnRyYWl0LAoxNDQ3NDogIGJ3X2RlZl9oc3JfbXRuXzQsCjE0NDc0OiAg
YndfZGVmX2hzcl9tdG5faF90YXBzLAoxNDQ3NDogIGJ3X2RlZl9jZWlsaW5nX19oX3RhcHNfZGl2
XzRfX19tZXFfaHNyLAoxNDQ3NDogIGJ3X2RlZl9pbnZhbGlkX2xpbmVhcl9vcl9zdGVyZW9fbW9k
ZSwKMTQ0NzQ6ICBid19kZWZfaW52YWxpZF9yb3RhdGlvbl9vcl9icHBfb3Jfc3RlcmVvLAoxNDQ3
NDogIGJ3X2RlZl92c3JfbXRuX3ZfdGFwcywKMTQ0NzQ6ICBid19kZWZfdnNyX210bl80LAoxNDQ3
NDogIGJ3X2RlZl9hdXRvLAoxNDQ3NDogIGJ3X2RlZl9tYW51YWwsCjE0NDc0OiAgYndfZGVmX2V4
Y2VlZGVkX2FsbG93ZWRfbWF4aW11bV9zY2xrLAoxNDQ3NDogIGJ3X2RlZl9leGNlZWRlZF9hbGxv
d2VkX3BhZ2VfY2xvc2Vfb3BlbiwKMTQ0NzQ6ICBid19kZWZfZXhjZWVkZWRfYWxsb3dlZF9vdXRz
dGFuZGluZ19wdGVfcmVxX3F1ZXVlX3NpemUsCjE0NDc0OiAgYndfZGVmX2V4Y2VlZGVkX2FsbG93
ZWRfbWF4aW11bV9idywKMTQ0NzQ6ICBid19kZWZfbGFuZHNjYXBlLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBid19kZWZfYW55X2xpbmVzLAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBid19kZWZf
dW5kZXJsYXlfb25seSwKMTQ0NzQ6ICBid19kZWZfYmxlbmRlZCwKMTQ0NzQ6ICBid19kZWZfYmxl
bmQsCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJ3X2RlZl9tb25vLAoxNDQ3NDogIGJ3X2RlZl9z
aWRlX2J5X3NpZGUsCjE0NDc0OiAgYndfZGVmX3RvcF9ib3R0b20sCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGJ3X2RlZl80MjAsCjE0NDc0OiAgYndfZGVmXzQyMiwKMTQ0NzQ6ICBid19kZWZfNDQ0
LAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBid19kZWZfbGluZWFyLAoxNDQ3NDogIGJ3X2RlZl90
aWxlZCwKMTQ0NzQ6ICBid19kZWZfYXJyYXlfbGluZWFyX2dlbmVyYWwsCjE0NDc0OiAgYndfZGVm
X2FycmF5X2xpbmVhcl9hbGlnbmVkLAoxNDQ3NDogIGJ3X2RlZl9yb3RhdGVkX21pY3JvX3RpbGlu
ZywKMTQ0NzQ6ICBid19kZWZfZGlzcGxheV9taWNyb190aWxpbmcsCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIGJ3X2RlZl9nZGRyNSwKMTQ0NzQ6ICBid19kZWZfaGJtLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6ICBid19kZWZfaGlnaF9ub19uYnBfc3RhdGVfY2hhbmdlLAoxNDQ3NDogIGJ3X2RlZl8w
XzcyLAoxNDQ3NDogIGJ3X2RlZl8wXzgsCjE0NDc0OiAgYndfZGVmXzBfOSwKMTQ0NzQ6IAoxNDQ3
NDogIGJ3X2RlZl9ub3RvayA9IC0xLAoxNDQ3NDogIGJ3X2RlZl9uYSA9IC0xCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgewoxNDQ3NDogIGVudW0gYndfY2Fs
Y3NfdmVyc2lvbiB2ZXJzaW9uOwoxNDQ3NDogIHVpbnQzMl90IHBlcmNlbnRfb2ZfaWRlYWxfcG9y
dF9id19yZWNlaXZlZF9hZnRlcl91cmdlbnRfbGF0ZW5jeTsKMTQ0NzQ6ICB1aW50MzJfdCBtYXhf
YXZlcmFnZV9wZXJjZW50X29mX2lkZWFsX3BvcnRfYndfZGlzcGxheV9jYW5fdXNlX2luX25vcm1h
bF9zeXN0ZW1fb3BlcmF0aW9uOwoxNDQ3NDogIHVpbnQzMl90IG1heF9hdmVyYWdlX3BlcmNlbnRf
b2ZfaWRlYWxfZHJhbWJ3X2Rpc3BsYXlfY2FuX3VzZV9pbl9ub3JtYWxfc3lzdGVtX29wZXJhdGlv
bjsKMTQ0NzQ6ICBib29sIGxhcmdlX2N1cnNvcjsKMTQ0NzQ6ICB1aW50MzJfdCBjdXJzb3JfbWF4
X291dHN0YW5kaW5nX2dyb3VwX251bTsKMTQ0NzQ6ICBib29sIGRtaWZfcGlwZV9lbl9mYmNfY2h1
bmtfdHJhY2tlcjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZG1pZl9yZXF1ZXN0X2J1ZmZlcl9z
aXplOwoxNDQ3NDogIHVpbnQzMl90IGxpbmVzX2ludGVybGVhdmVkX2ludG9fbGI7CjE0NDc0OiAg
dWludDMyX3QgbG93X3Bvd2VyX3RpbGluZ19tb2RlOwoxNDQ3NDogIHVpbnQzMl90IGNodW5rX3dp
ZHRoOwoxNDQ3NDogIHVpbnQzMl90IG51bWJlcl9vZl9ncmFwaGljc19waXBlczsKMTQ0NzQ6ICB1
aW50MzJfdCBudW1iZXJfb2ZfdW5kZXJsYXlfcGlwZXM7CjE0NDc0OiAgYm9vbCBkaXNwbGF5X3dy
aXRlX2JhY2tfc3VwcG9ydGVkOwoxNDQ3NDogIGJvb2wgYXJnYl9jb21wcmVzc2lvbl9zdXBwb3J0
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV92c2NhbGVyX2VmZmljaWVuY3k2X2Jp
dF9wZXJfY29tcG9uZW50OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV92c2NhbGVy
X2VmZmljaWVuY3k4X2JpdF9wZXJfY29tcG9uZW50OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1
bmRlcmxheV92c2NhbGVyX2VmZmljaWVuY3kxMF9iaXRfcGVyX2NvbXBvbmVudDsKMTQ0NzQ6ICBz
dHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXlfdnNjYWxlcl9lZmZpY2llbmN5MTJfYml0X3Blcl9jb21w
b25lbnQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGdyYXBoaWNzX3ZzY2FsZXJfZWZmaWNpZW5j
eTZfYml0X3Blcl9jb21wb25lbnQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGdyYXBoaWNzX3Zz
Y2FsZXJfZWZmaWNpZW5jeThfYml0X3Blcl9jb21wb25lbnQ7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIGdyYXBoaWNzX3ZzY2FsZXJfZWZmaWNpZW5jeTEwX2JpdF9wZXJfY29tcG9uZW50OwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBncmFwaGljc192c2NhbGVyX2VmZmljaWVuY3kxMl9iaXRfcGVy
X2NvbXBvbmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYWxwaGFfdnNjYWxlcl9lZmZpY2ll
bmN5OwoxNDQ3NDogIHVpbnQzMl90IG1heF9kbWlmX2J1ZmZlcl9hbGxvY2F0ZWQ7CjE0NDc0OiAg
dWludDMyX3QgZ3JhcGhpY3NfZG1pZl9zaXplOwoxNDQ3NDogIHVpbnQzMl90IHVuZGVybGF5X2x1
bWFfZG1pZl9zaXplOwoxNDQ3NDogIHVpbnQzMl90IHVuZGVybGF5X2Nocm9tYV9kbWlmX3NpemU7
CjE0NDc0OiAgYm9vbCBwcmVfZG93bnNjYWxlcl9lbmFibGVkOwoxNDQ3NDogIGJvb2wgdW5kZXJs
YXlfZG93bnNjYWxlX3ByZWZldGNoX2VuYWJsZWQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxi
X3dyaXRlX3BpeGVsc19wZXJfZGlzcGNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbGJfc2l6
ZV9wZXJfY29tcG9uZW50NDQ0OwoxNDQ3NDogIGJvb2wgZ3JhcGhpY3NfbGJfbm9kb3duc2NhbGlu
Z19tdWx0aV9saW5lX3ByZWZldGNoaW5nOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzdHV0dGVy
X2FuZF9kcmFtX2Nsb2NrX3N0YXRlX2NoYW5nZV9nYXRlZF9iZWZvcmVfY3Vyc29yOwoxNDQ3NDog
IHN0cnVjdCBid19maXhlZCB1bmRlcmxheTQyMF9sdW1hX2xiX3NpemVfcGVyX2NvbXBvbmVudDsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXk0MjBfY2hyb21hX2xiX3NpemVfcGVyX2Nv
bXBvbmVudDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXk0MjJfbGJfc2l6ZV9wZXJf
Y29tcG9uZW50OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBjdXJzb3JfY2h1bmtfd2lkdGg7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9kY3BfYnVmZmVyX2xpbmVzOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX3dpZHRoX2VmZmljaWVudF9mb3JfdGlsaW5n
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX2hlaWdodF9lZmZpY2ll
bnRfZm9yX3RpbGluZzsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcGVha19wdGVfcmVxdWVzdF90
b19ldmljdGlvbl9yYXRpb19saW1pdGluZ19tdWx0aXBsZV9kaXNwbGF5c19vcl9zaW5nbGVfcm90
YXRlZF9kaXNwbGF5OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBwZWFrX3B0ZV9yZXF1ZXN0X3Rv
X2V2aWN0aW9uX3JhdGlvX2xpbWl0aW5nX3NpbmdsZV9kaXNwbGF5X25vX3JvdGF0aW9uOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBtaW5pbXVtX291dHN0YW5kaW5nX3B0ZV9yZXF1ZXN0X2xpbWl0
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtYXhpbXVtX3RvdGFsX291dHN0YW5kaW5nX3B0ZV9y
ZXF1ZXN0c19hbGxvd2VkX2J5X3NhdzsKMTQ0NzQ6ICBib29sIGxpbWl0X2V4Y2Vzc2l2ZV9vdXRz
dGFuZGluZ19kbWlmX3JlcXVlc3RzOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsaW5lYXJfbW9k
ZV9saW5lX3JlcXVlc3RfYWx0ZXJuYXRpb25fc2xpY2U7CjE0NDc0OiAgdWludDMyX3Qgc2NhdHRl
cl9nYXRoZXJfbGluZXNfb2ZfcHRlX3ByZWZldGNoaW5nX2luX2xpbmVhcl9tb2RlOwoxNDQ3NDog
IHVpbnQzMl90IGRpc3BsYXlfd3JpdGVfYmFjazQyMF9sdW1hX21jaWZ3cl9idWZmZXJfc2l6ZTsK
MTQ0NzQ6ICB1aW50MzJfdCBkaXNwbGF5X3dyaXRlX2JhY2s0MjBfY2hyb21hX21jaWZ3cl9idWZm
ZXJfc2l6ZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVxdWVzdF9lZmZpY2llbmN5OwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBkaXNwY2xrX3Blcl9yZXF1ZXN0OwoxNDQ3NDogIHN0cnVjdCBi
d19maXhlZCBkaXNwY2xrX3JhbXBpbmdfZmFjdG9yOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBk
aXNwbGF5X3BpcGVfdGhyb3VnaHB1dF9mYWN0b3I7CjE0NDc0OiAgdWludDMyX3Qgc2NhdHRlcl9n
YXRoZXJfcHRlX3JlcXVlc3Rfcm93c19pbl90aWxpbmdfbW9kZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgbWNpZndyX2FsbF9zdXJmYWNlc19idXJzdF90aW1lOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGJ3X2NhbGNzX3ZiaW9zIHsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgbWVt
b3J5X3R5cGU7CjE0NDc0OiAgdWludDMyX3QgZHJhbV9jaGFubmVsX3dpZHRoX2luX2JpdHM7CjE0
NDc0OiAgdWludDMyX3QgbnVtYmVyX29mX2RyYW1fY2hhbm5lbHM7CjE0NDc0OiAgdWludDMyX3Qg
bnVtYmVyX29mX2RyYW1fYmFua3M7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxvd195Y2xrOwox
NDQ3NDogIHN0cnVjdCBid19maXhlZCBtaWRfeWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
aGlnaF95Y2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsb3dfc2NsazsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgbWlkMV9zY2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtaWQyX3NjbGs7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1pZDNfc2NsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgbWlkNF9zY2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtaWQ1X3NjbGs7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIG1pZDZfc2NsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaGlnaF9z
Y2xrOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsb3dfdm9sdGFnZV9tYXhfZGlzcGNsazsKMTQ0
NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWlkX3ZvbHRhZ2VfbWF4X2Rpc3BjbGs7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIGhpZ2hfdm9sdGFnZV9tYXhfZGlzcGNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgbG93X3ZvbHRhZ2VfbWF4X3BoeWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWlk
X3ZvbHRhZ2VfbWF4X3BoeWNsazsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaGlnaF92b2x0YWdl
X21heF9waHljbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRhdGFfcmV0dXJuX2J1c193aWR0
aDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdHJjOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBk
bWlmbWNfdXJnZW50X2xhdGVuY3k7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfc2Vs
Zl9yZWZyZXNoX2V4aXRfbGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9z
ZWxmX3JlZnJlc2hfZW50cnlfbGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0
YXRlX2NoYW5nZV9sYXRlbmN5OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtY2lmd3JtY191cmdl
bnRfbGF0ZW5jeTsKMTQ0NzQ6ICBib29sIHNjYXR0ZXJfZ2F0aGVyX2VuYWJsZTsKMTQ0NzQ6ICBz
dHJ1Y3QgYndfZml4ZWQgZG93bl9zcHJlYWRfcGVyY2VudGFnZTsKMTQ0NzQ6ICB1aW50MzJfdCBj
dXJzb3Jfd2lkdGg7CjE0NDc0OiAgdWludDMyX3QgYXZlcmFnZV9jb21wcmVzc2lvbl9yYXRlOwox
NDQ3NDogIHVpbnQzMl90IG51bWJlcl9vZl9yZXF1ZXN0X3Nsb3RzX2dtY19yZXNlcnZlc19mb3Jf
ZG1pZl9wZXJfY2hhbm5lbDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYmxhY2tvdXRfZHVyYXRp
b247CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1heGltdW1fYmxhY2tvdXRfcmVjb3ZlcnlfdGlt
ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBid19jYWxjc19kYXRhIHsKMTQ0NzQ6IAoxNDQ3NDog
IGJvb2wgZGlzcGxheV9zeW5jaHJvbml6YXRpb25fZW5hYmxlZDsKMTQ0NzQ6ICB1aW50MzJfdCBu
dW1iZXJfb2ZfZGlzcGxheXM7CjE0NDc0OiAgZW51bSBid19kZWZpbmVzIHVuZGVybGF5X3N1cmZh
Y2VfdHlwZTsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgcGFubmluZ19hbmRfYmV6ZWxfYWRqdXN0
bWVudDsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgZ3JhcGhpY3NfdGlsaW5nX21vZGU7CjE0NDc0
OiAgdWludDMyX3QgZ3JhcGhpY3NfbGJfYnBjOwoxNDQ3NDogIHVpbnQzMl90IHVuZGVybGF5X2xi
X2JwYzsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgdW5kZXJsYXlfdGlsaW5nX21vZGU7CjE0NDc0
OiAgZW51bSBid19kZWZpbmVzIGQwX3VuZGVybGF5X21vZGU7CjE0NDc0OiAgYm9vbCBkMV9kaXNw
bGF5X3dyaXRlX2JhY2tfZHdiX2VuYWJsZTsKMTQ0NzQ6ICBlbnVtIGJ3X2RlZmluZXMgZDFfdW5k
ZXJsYXlfbW9kZTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgaW5jcmVhc2Vfdm9sdGFnZV90b19zdXBw
b3J0X21jbGtfc3dpdGNoOwoxNDQ3NDogIGJvb2wgY3B1cF9zdGF0ZV9jaGFuZ2VfZW5hYmxlOwox
NDQ3NDogIGJvb2wgY3B1Y19zdGF0ZV9jaGFuZ2VfZW5hYmxlOwoxNDQ3NDogIGJvb2wgbmJwX3N0
YXRlX2NoYW5nZV9lbmFibGU7CjE0NDc0OiAgYm9vbCBzdHV0dGVyX21vZGVfZW5hYmxlOwoxNDQ3
NDogIHVpbnQzMl90IHlfY2xrX2xldmVsOwoxNDQ3NDogIHVpbnQzMl90IHNjbGtfbGV2ZWw7CjE0
NDc0OiAgdWludDMyX3QgbnVtYmVyX29mX3VuZGVybGF5X3N1cmZhY2VzOwoxNDQ3NDogIHVpbnQz
Ml90IG51bWJlcl9vZl9kcmFtX3dyY2hhbm5lbHM7CjE0NDc0OiAgdWludDMyX3QgY2h1bmtfcmVx
dWVzdF9kZWxheTsKMTQ0NzQ6ICB1aW50MzJfdCBudW1iZXJfb2ZfZHJhbV9jaGFubmVsczsKMTQ0
NzQ6ICBlbnVtIGJ3X2RlZmluZXMgdW5kZXJsYXlfbWljcm9fdGlsZV9tb2RlOwoxNDQ3NDogIGVu
dW0gYndfZGVmaW5lcyBncmFwaGljc19taWNyb190aWxlX21vZGU7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIG1heF9waHljbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRyYW1fZWZmaWNpZW5j
eTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3JjX3dpZHRoX2FmdGVyX3N1cmZhY2VfdHlwZTsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3JjX2hlaWdodF9hZnRlcl9zdXJmYWNlX3R5cGU7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhzcl9hZnRlcl9zdXJmYWNlX3R5cGU7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIHZzcl9hZnRlcl9zdXJmYWNlX3R5cGU7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIHNyY193aWR0aF9hZnRlcl9yb3RhdGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3Jj
X2hlaWdodF9hZnRlcl9yb3RhdGlvbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaHNyX2FmdGVy
X3JvdGF0aW9uOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2c3JfYWZ0ZXJfcm90YXRpb247CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNvdXJjZV9oZWlnaHRfcGl4ZWxzOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBoc3JfYWZ0ZXJfc3RlcmVvOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2c3Jf
YWZ0ZXJfc3RlcmVvOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzb3VyY2Vfd2lkdGhfaW5fbGI7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxiX2xpbmVfcGl0Y2g7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIHVuZGVybGF5X21heGltdW1fc291cmNlX2VmZmljaWVudF9mb3JfdGlsaW5nOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBudW1fbGluZXNfYXRfZnJhbWVfc3RhcnQ7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIG1pbl9kbWlmX3NpemVfaW5fdGltZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgbWluX21jaWZ3cl9zaXplX2luX3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFs
X3JlcXVlc3RzX2Zvcl9kbWlmX3NpemU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHBlYWtfcHRl
X3JlcXVlc3RfdG9fZXZpY3Rpb25fcmF0aW9fbGltaXRpbmc7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIHVzZWZ1bF9wdGVfcGVyX3B0ZV9yZXF1ZXN0OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBz
Y2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVzdF9yb3dzOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBz
Y2F0dGVyX2dhdGhlcl9yb3dfaGVpZ2h0OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2F0dGVy
X2dhdGhlcl9wdGVfcmVxdWVzdHNfaW5fdmJsYW5rOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBp
bmVmZmljaWVudF9saW5lYXJfcGl0Y2hfaW5fYnl0ZXM7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGN1cnNvcl90b3RhbF9kYXRhOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBjdXJzb3JfdG90YWxf
cmVxdWVzdF9ncm91cHM7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3Rv
dGFsX3B0ZV9yZXF1ZXN0czsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc2NhdHRlcl9nYXRoZXJf
dG90YWxfcHRlX3JlcXVlc3RfZ3JvdXBzOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB0aWxlX3dp
ZHRoX2luX3BpeGVsczsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZG1pZl90b3RhbF9udW1iZXJf
b2ZfZGF0YV9yZXF1ZXN0X3BhZ2VfY2xvc2Vfb3BlbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
bWNpZndyX3RvdGFsX251bWJlcl9vZl9kYXRhX3JlcXVlc3RfcGFnZV9jbG9zZV9vcGVuOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBieXRlc19wZXJfcGFnZV9jbG9zZV9vcGVuOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBtY2lmd3JfdG90YWxfcGFnZV9jbG9zZV9vcGVuX3RpbWU7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHRvdGFsX3JlcXVlc3RzX2Zvcl9hZGp1c3RlZF9kbWlmX3NpemU7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2RtaWZtY191cmdlbnRfdHJpcHM7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2RtaWZtY191cmdlbnRfbGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgdG90YWxfZGlzcGxheV9yZWFkc19yZXF1aXJlZF9kYXRhOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCB0b3RhbF9kaXNwbGF5X3JlYWRzX3JlcXVpcmVkX2RyYW1fYWNjZXNzX2Rh
dGE7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BsYXlfd3JpdGVzX3JlcXVpcmVk
X2RhdGE7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BsYXlfd3JpdGVzX3JlcXVp
cmVkX2RyYW1fYWNjZXNzX2RhdGE7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BsYXlfcmVh
ZHNfcmVxdWlyZWRfZGF0YTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9yZWFkc19y
ZXF1aXJlZF9kcmFtX2FjY2Vzc19kYXRhOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBkbWlmX3Rv
dGFsX3BhZ2VfY2xvc2Vfb3Blbl90aW1lOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBtaW5fY3Vy
c29yX21lbW9yeV9pbnRlcmZhY2VfYnVmZmVyX3NpemVfaW5fdGltZTsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgbWluX3JlYWRfYnVmZmVyX3NpemVfaW5fdGltZTsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgZGlzcGxheV9yZWFkc190aW1lX2Zvcl9kYXRhX3RyYW5zZmVyOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBkaXNwbGF5X3dyaXRlc190aW1lX2Zvcl9kYXRhX3RyYW5zZmVyOwoxNDQ3NDog
IHN0cnVjdCBid19maXhlZCBkbWlmX3JlcXVpcmVkX2RyYW1fYmFuZHdpZHRoOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBtY2lmd3JfcmVxdWlyZWRfZHJhbV9iYW5kd2lkdGg7CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIHJlcXVpcmVkX2RtaWZtY191cmdlbnRfbGF0ZW5jeV9mb3JfcGFnZV9jbG9z
ZV9vcGVuOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCByZXF1aXJlZF9tY2lmbWN3cl91cmdlbnRf
bGF0ZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcmVxdWlyZWRfZHJhbV9iYW5kd2lkdGhf
Z2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZHJhbV9iYW5kd2lkdGg7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRtaWZfcmVxdWlyZWRfc2NsazsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgbWNpZndyX3JlcXVpcmVkX3NjbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IHJlcXVpcmVkX3NjbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRvd25zcHJlYWRfZmFjdG9y
OwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2X3NjYWxlcl9lZmZpY2llbmN5OwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBzY2FsZXJfbGltaXRzX2ZhY3RvcjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgZGlzcGxheV9waXBlX3BpeGVsX3Rocm91Z2hwdXQ7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IHRvdGFsX2Rpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1waW5nOwoxNDQ3NDogIHN0cnVjdCBid19m
aXhlZCB0b3RhbF9kaXNwY2xrX3JlcXVpcmVkX3dpdGhvdXRfcmFtcGluZzsKMTQ0NzQ6ICBzdHJ1
Y3QgYndfZml4ZWQgdG90YWxfcmVhZF9yZXF1ZXN0X2JhbmR3aWR0aDsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgdG90YWxfd3JpdGVfcmVxdWVzdF9iYW5kd2lkdGg7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfZm9yX3RvdGFsX3JlYWRfcmVxdWVzdF9iYW5kd2lkdGg7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1w
aW5nX3dpdGhfcmVxdWVzdF9iYW5kd2lkdGg7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRvdGFs
X2Rpc3BjbGtfcmVxdWlyZWRfd2l0aG91dF9yYW1waW5nX3dpdGhfcmVxdWVzdF9iYW5kd2lkdGg7
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGs7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGJsYWNrb3V0X3JlY292ZXJ5X3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1pbl9waXhl
bHNfcGVyX2RhdGFfZmlmb19lbnRyeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc2Nsa19kZWVw
X3NsZWVwOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBjaHVua19yZXF1ZXN0X3RpbWU7CjE0NDc0
OiAgc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9yZXF1ZXN0X3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIGxpbmVfc291cmNlX3BpeGVsc190cmFuc2Zlcl90aW1lOwoxNDQ3NDogIHN0cnVjdCBi
d19maXhlZCBkbWlmZHJhbV9hY2Nlc3NfZWZmaWNpZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4
ZWQgbWNpZndyZHJhbV9hY2Nlc3NfZWZmaWNpZW5jeTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
dG90YWxfYXZlcmFnZV9iYW5kd2lkdGhfbm9fY29tcHJlc3Npb247CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIHRvdGFsX2F2ZXJhZ2VfYmFuZHdpZHRoOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB0
b3RhbF9zdHV0dGVyX2N5Y2xlX2R1cmF0aW9uOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzdHV0
dGVyX2J1cnN0X3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHRpbWVfaW5fc2VsZl9yZWZy
ZXNoOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzdHV0dGVyX2VmZmljaWVuY3k7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHdvcnN0X251bWJlcl9vZl90cmlwc190b19tZW1vcnk7CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIGltbWVkaWF0ZV9mbGlwX3RpbWU7CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIGxhdGVuY3lfZm9yX25vbl9kbWlmX2NsaWVudHM7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGxhdGVuY3lfZm9yX25vbl9tY2lmd3JfY2xpZW50czsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
ZG1pZm1jX3VyZ2VudF9sYXRlbmN5X3N1cHBvcnRlZF9pbl9oaWdoX3NjbGtfYW5kX3ljbGs7CjE0
NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG5icF9zdGF0ZV9kcmFtX3NwZWVkX2NoYW5nZV9tYXJnaW47
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BsYXlfcmVhZHNfdGltZV9mb3JfZGF0YV90cmFu
c2Zlcl9hbmRfdXJnZW50X2xhdGVuY3k7CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRyYW1fc3Bl
ZWRfY2hhbmdlX21hcmdpbjsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWluX3ZibGFua19kcmFt
X3NwZWVkX2NoYW5nZV9tYXJnaW47CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1pbl9zdHV0dGVy
X3JlZnJlc2hfZHVyYXRpb247CjE0NDc0OiAgdWludDMyX3QgdG90YWxfc3R1dHRlcl9kbWlmX2J1
ZmZlcl9zaXplOwoxNDQ3NDogIHVpbnQzMl90IHRvdGFsX2J5dGVzX3JlcXVlc3RlZDsKMTQ0NzQ6
ICB1aW50MzJfdCBtaW5fc3R1dHRlcl9kbWlmX2J1ZmZlcl9zaXplOwoxNDQ3NDogIHVpbnQzMl90
IG51bV9zdHV0dGVyX2J1cnN0czsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdl9ibGFua19uYnBf
c3RhdGVfZHJhbV9zcGVlZF9jaGFuZ2VfbGF0ZW5jeV9zdXBwb3J0ZWQ7CjE0NDc0OiAgc3RydWN0
IGJ3X2ZpeGVkIG5icF9zdGF0ZV9kcmFtX3NwZWVkX2NoYW5nZV9sYXRlbmN5X3N1cHBvcnRlZDsK
MTQ0NzQ6ICBib29sIGZiY19lblsxMl07CjE0NDc0OiAgYm9vbCBscHRfZW5bMTJdOwoxNDQ3NDog
IGJvb2wgZGlzcGxheXNfbWF0Y2hfZmxhZ1sxMl07CjE0NDc0OiAgYm9vbCB1c2VfYWxwaGFbMTJd
OwoxNDQ3NDogIGJvb2wgb3J0aG9nb25hbF9yb3RhdGlvblsxMl07CjE0NDc0OiAgYm9vbCBlbmFi
bGVbMTJdOwoxNDQ3NDogIGJvb2wgYWNjZXNzX29uZV9jaGFubmVsX29ubHlbMTJdOwoxNDQ3NDog
IGJvb2wgc2NhdHRlcl9nYXRoZXJfZW5hYmxlX2Zvcl9waXBlWzEyXTsKMTQ0NzQ6ICBib29sIGlu
dGVybGFjZV9tb2RlWzEyXTsKMTQ0NzQ6ICBib29sIGRpc3BsYXlfcHN0YXRlX2NoYW5nZV9lbmFi
bGVbMTJdOwoxNDQ3NDogIGJvb2wgbGluZV9idWZmZXJfcHJlZmV0Y2hbMTJdOwoxNDQ3NDogIHVp
bnQzMl90IGJ5dGVzX3Blcl9waXhlbFsxMl07CjE0NDc0OiAgdWludDMyX3QgbWF4X2NodW5rc19u
b25fZmJjX21vZGVbMTJdOwoxNDQ3NDogIHVpbnQzMl90IGxiX2JwY1sxMl07CjE0NDc0OiAgdWlu
dDMyX3Qgb3V0cHV0X2JwcGhkbWlbMTJdOwoxNDQ3NDogIHVpbnQzMl90IG91dHB1dF9icHBkcDRf
bGFuZV9oYnJbMTJdOwoxNDQ3NDogIHVpbnQzMl90IG91dHB1dF9icHBkcDRfbGFuZV9oYnIyWzEy
XTsKMTQ0NzQ6ICB1aW50MzJfdCBvdXRwdXRfYnBwZHA0X2xhbmVfaGJyM1sxMl07CjE0NDc0OiAg
ZW51bSBid19kZWZpbmVzIHN0ZXJlb19tb2RlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
ZG1pZl9idWZmZXJfdHJhbnNmZXJfdGltZVsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRp
c3BsYXlzX3dpdGhfc2FtZV9tb2RlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRl
cl9kbWlmX2J1ZmZlcl9zaXplWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9y
ZWZyZXNoX2R1cmF0aW9uWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9leGl0
X3dhdGVybWFya1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZW50cnlfd2F0
ZXJtYXJrWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgaF90b3RhbFsxMl07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHZfdG90YWxbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBwaXhl
bF9yYXRlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3JjX3dpZHRoWzEyXTsKMTQ0NzQ6
ICBzdHJ1Y3QgYndfZml4ZWQgcGl0Y2hfaW5fcGl4ZWxzWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndf
Zml4ZWQgcGl0Y2hfaW5fcGl4ZWxzX2FmdGVyX3N1cmZhY2VfdHlwZVsxMl07CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIHNyY19oZWlnaHRbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2Fs
ZV9yYXRpb1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhfdGFwc1sxMl07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIHZfdGFwc1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhfc2Nh
bGVfcmF0aW9bMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2X3NjYWxlX3JhdGlvWzEyXTsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcm90YXRpb25fYW5nbGVbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBjb21wcmVzc2lvbl9yYXRlWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
aHNyWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgdnNyWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgc291cmNlX3dpZHRoX3JvdW5kZWRfdXBfdG9fY2h1bmtzWzEyXTsKMTQ0NzQ6ICBz
dHJ1Y3QgYndfZml4ZWQgc291cmNlX3dpZHRoX3BpeGVsc1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIHNvdXJjZV9oZWlnaHRfcm91bmRlZF91cF90b19jaHVua3NbMTJdOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBkaXNwbGF5X2JhbmR3aWR0aFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2Zp
eGVkIHJlcXVlc3RfYmFuZHdpZHRoWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYnl0ZXNf
cGVyX3JlcXVlc3RbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB1c2VmdWxfYnl0ZXNfcGVy
X3JlcXVlc3RbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsaW5lc19pbnRlcmxlYXZlZF9p
bl9tZW1fYWNjZXNzWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbGF0ZW5jeV9oaWRpbmdf
bGluZXNbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBsYl9wYXJ0aXRpb25zWzEyXTsKMTQ0
NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbGJfcGFydGl0aW9uc19tYXhbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBkaXNwY2xrX3JlcXVpcmVkX3dpdGhfcmFtcGluZ1sxMl07CjE0NDc0OiAgc3Ry
dWN0IGJ3X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfd2l0aG91dF9yYW1waW5nWzEyXTsKMTQ0NzQ6
ICBzdHJ1Y3QgYndfZml4ZWQgZGF0YV9idWZmZXJfc2l6ZVsxMl07CjE0NDc0OiAgc3RydWN0IGJ3
X2ZpeGVkIG91dHN0YW5kaW5nX2NodW5rX3JlcXVlc3RfbGltaXRbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCB1cmdlbnRfd2F0ZXJtYXJrWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQg
bmJwX3N0YXRlX2NoYW5nZV93YXRlcm1hcmtbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCB2
X2ZpbHRlcl9pbml0WzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9jeWNsZV9k
dXJhdGlvblsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGF2ZXJhZ2VfYmFuZHdpZHRoWzEy
XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgYXZlcmFnZV9iYW5kd2lkdGhfbm9fY29tcHJlc3Np
b25bMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVz
dF9saW1pdFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxiX3NpemVfcGVyX2NvbXBvbmVu
dFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIG1lbW9yeV9jaHVua19zaXplX2luX2J5dGVz
WzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgcGlwZV9jaHVua19zaXplX2luX2J5dGVzWzEy
XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbnVtYmVyX29mX3RyaXBzX3RvX21lbW9yeV9mb3Jf
Z2V0dGluZ19hcHRlX3Jvd1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGFkanVzdGVkX2Rh
dGFfYnVmZmVyX3NpemVbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBhZGp1c3RlZF9kYXRh
X2J1ZmZlcl9zaXplX2luX21lbW9yeVsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHBpeGVs
c19wZXJfZGF0YV9maWZvX2VudHJ5WzEyXTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgc2NhdHRl
cl9nYXRoZXJfcHRlX3JlcXVlc3RzX2luX3Jvd1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IHB0ZV9yZXF1ZXN0X3Blcl9jaHVua1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNjYXR0
ZXJfZ2F0aGVyX3BhZ2Vfd2lkdGhbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzY2F0dGVy
X2dhdGhlcl9wYWdlX2hlaWdodFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGxiX2xpbmVz
X2luX3Blcl9saW5lX291dF9pbl9iZWdpbm5pbmdfb2ZfZnJhbWVbMTJdOwoxNDQ3NDogIHN0cnVj
dCBid19maXhlZCBsYl9saW5lc19pbl9wZXJfbGluZV9vdXRfaW5fbWlkZGxlX29mX2ZyYW1lWzEy
XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3dpZHRoX3BpeGVsc1sxMl07CjE0NDc0
OiAgc3RydWN0IGJ3X2ZpeGVkIG1pbmltdW1fbGF0ZW5jeV9oaWRpbmdbMTJdOwoxNDQ3NDogIHN0
cnVjdCBid19maXhlZCBtYXhpbXVtX2xhdGVuY3lfaGlkaW5nWzEyXTsKMTQ0NzQ6ICBzdHJ1Y3Qg
YndfZml4ZWQgbWluaW11bV9sYXRlbmN5X2hpZGluZ193aXRoX2N1cnNvclsxMl07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIG1heGltdW1fbGF0ZW5jeV9oaWRpbmdfd2l0aF9jdXJzb3JbMTJdOwox
NDQ3NDogIHN0cnVjdCBid19maXhlZCBzcmNfcGl4ZWxzX2Zvcl9maXJzdF9vdXRwdXRfcGl4ZWxb
MTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzcmNfcGl4ZWxzX2Zvcl9sYXN0X291dHB1dF9w
aXhlbFsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHNyY19kYXRhX2Zvcl9maXJzdF9vdXRw
dXRfcGl4ZWxbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBzcmNfZGF0YV9mb3JfbGFzdF9v
dXRwdXRfcGl4ZWxbMTJdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBhY3RpdmVfdGltZVsxMl07
CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGhvcml6b250YWxfYmxhbmtfYW5kX2NodW5rX2dyYW51
bGFyaXR5X2ZhY3RvclsxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9sYXRlbmN5
X2hpZGluZ1sxMl07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIHZfYmxhbmtfZHJhbV9zcGVlZF9j
aGFuZ2VfbWFyZ2luWzEyXTsKMTQ0NzQ6ICB1aW50MzJfdCBudW1fZGlzcGxheXNfd2l0aF9tYXJn
aW5bM11bOF07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRtaWZfYnVyc3RfdGltZVszXVs4XTsK
MTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWNpZndyX2J1cnN0X3RpbWVbM11bOF07CjE0NDc0OiAg
c3RydWN0IGJ3X2ZpeGVkIGxpbmVfc291cmNlX3RyYW5zZmVyX3RpbWVbMTJdWzNdWzhdOwoxNDQ3
NDogIHN0cnVjdCBid19maXhlZCBkcmFtX3NwZWVkX2NoYW5nZV9saW5lX3NvdXJjZV90cmFuc2Zl
cl90aW1lWzEyXVszXVs4XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgbWluX2RyYW1fc3BlZWRf
Y2hhbmdlX21hcmdpblszXVs4XTsKMTQ0NzQ6ICBzdHJ1Y3QgYndfZml4ZWQgZGlzcGNsa19yZXF1
aXJlZF9mb3JfZHJhbV9zcGVlZF9jaGFuZ2VbM11bOF07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVk
IGRpc3BjbGtfcmVxdWlyZWRfZm9yX2RyYW1fc3BlZWRfY2hhbmdlX3BpcGVbM11bOF07CjE0NDc0
OiAgc3RydWN0IGJ3X2ZpeGVkIGJsYWNrb3V0X2R1cmF0aW9uX21hcmdpblszXVs4XTsKMTQ0NzQ6
ICBzdHJ1Y3QgYndfZml4ZWQgZGlzcGNsa19yZXF1aXJlZF9mb3JfYmxhY2tvdXRfZHVyYXRpb25b
M11bOF07CjE0NDc0OiAgc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfZm9yX2JsYWNr
b3V0X3JlY292ZXJ5WzNdWzhdOwoxNDQ3NDogIHN0cnVjdCBid19maXhlZCBkbWlmX3JlcXVpcmVk
X3NjbGtfZm9yX3VyZ2VudF9sYXRlbmN5WzZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBid19jYWxjc19pbml0KAoxNDQ3NDogIHN0cnVjdCBi
d19jYWxjc19kY2VpcCAqYndfZGNlaXAsCjE0NDc0OiAgc3RydWN0IGJ3X2NhbGNzX3ZiaW9zICpi
d192YmlvcywKMTQ0NzQ6ICBzdHJ1Y3QgaHdfYXNpY19pZCBhc2ljX2lkKTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBi
d19jYWxjcygKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogIGNvbnN0IHN0
cnVjdCBid19jYWxjc19kY2VpcCAqZGNlaXAsCjE0NDc0OiAgY29uc3Qgc3RydWN0IGJ3X2NhbGNz
X3ZiaW9zICp2YmlvcywKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGUsCjE0NDc0
OiAgaW50IHBpcGVfY291bnQsCjE0NDc0OiAgc3RydWN0IGRjZV9id19vdXRwdXQgKmNhbGNzX291
dHB1dCk7CjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rjbl9jYWxjcy5oIiAxCjE0NDc0OiAjIDM0ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rjbl9jYWxjcy5o
IgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
aW5jLy4uL2RtbC9kaXNwbGF5X21vZGVfbGliLmgiIDEKMTQ0NzQ6ICMgMzUgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNuX2NhbGNzLmgiIDIKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGM7CjE0NDc0OiBzdHJ1Y3QgZGNfc3RhdGU7CjE0NDc0
OiAjIDUxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rj
bl9jYWxjcy5oIgoxNDQ3NDogZW51bSBkY25fYndfZGVmcyB7CjE0NDc0OiAgZGNuX2J3X3ZfbWlu
MHA2NSwKMTQ0NzQ6ICBkY25fYndfdl9taWQwcDcyLAoxNDQ3NDogIGRjbl9id192X25vbTBwOCwK
MTQ0NzQ6ICBkY25fYndfdl9tYXgwcDksCjE0NDc0OiAgZGNuX2J3X3ZfbWF4MHA5MSwKMTQ0NzQ6
ICBkY25fYndfbm9fc3VwcG9ydCA9IDUsCjE0NDc0OiAgZGNuX2J3X3llcywKMTQ0NzQ6ICBkY25f
YndfaG9yLAoxNDQ3NDogIGRjbl9id192ZXJ0LAoxNDQ3NDogIGRjbl9id19vdmVycmlkZSwKMTQ0
NzQ6ICBkY25fYndfcmdiX3N1Yl82NCwKMTQ0NzQ6ICBkY25fYndfcmdiX3N1Yl8zMiwKMTQ0NzQ6
ICBkY25fYndfcmdiX3N1Yl8xNiwKMTQ0NzQ6ICBkY25fYndfbm8sCjE0NDc0OiAgZGNuX2J3X3N3
X2xpbmVhciwKMTQ0NzQ6ICBkY25fYndfc3dfNF9rYl9kLAoxNDQ3NDogIGRjbl9id19zd180X2ti
X2RfeCwKMTQ0NzQ6ICBkY25fYndfc3dfNjRfa2JfZCwKMTQ0NzQ6ICBkY25fYndfc3dfNjRfa2Jf
ZF90LAoxNDQ3NDogIGRjbl9id19zd182NF9rYl9kX3gsCjE0NDc0OiAgZGNuX2J3X3N3X3Zhcl9k
LAoxNDQ3NDogIGRjbl9id19zd192YXJfZF94LAoxNDQ3NDogIGRjbl9id195dXY0MjBfc3ViXzgs
CjE0NDc0OiAgZGNuX2J3X3N3XzRfa2JfcywKMTQ0NzQ6ICBkY25fYndfc3dfNF9rYl9zX3gsCjE0
NDc0OiAgZGNuX2J3X3N3XzY0X2tiX3MsCjE0NDc0OiAgZGNuX2J3X3N3XzY0X2tiX3NfdCwKMTQ0
NzQ6ICBkY25fYndfc3dfNjRfa2Jfc194LAoxNDQ3NDogIGRjbl9id193cml0ZWJhY2ssCjE0NDc0
OiAgZGNuX2J3XzQ0NCwKMTQ0NzQ6ICBkY25fYndfZHAsCjE0NDc0OiAgZGNuX2J3XzQyMCwKMTQ0
NzQ6ICBkY25fYndfaGRtaSwKMTQ0NzQ6ICBkY25fYndfc3dfdmFyX3MsCjE0NDc0OiAgZGNuX2J3
X3N3X3Zhcl9zX3gsCjE0NDc0OiAgZGNuX2J3X3l1djQyMF9zdWJfMTAsCjE0NDc0OiAgZGNuX2J3
X3N1cHBvcnRlZF9pbl92X2FjdGl2ZSwKMTQ0NzQ6ICBkY25fYndfc3VwcG9ydGVkX2luX3ZfYmxh
bmssCjE0NDc0OiAgZGNuX2J3X25vdF9zdXBwb3J0ZWQsCjE0NDc0OiAgZGNuX2J3X25hLAoxNDQ3
NDogIGRjbl9id19lbmNvZGVyXzhicGMsCjE0NDc0OiAgZGNuX2J3X2VuY29kZXJfMTBicGMsCjE0
NDc0OiAgZGNuX2J3X2VuY29kZXJfMTJicGMsCjE0NDc0OiAgZGNuX2J3X2VuY29kZXJfMTZicGMs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY25fYndfaW50ZXJuYWxfdmFycyB7CjE0NDc0OiAgZmxvYXQgdm9sdGFnZVs1ICsg
MV07CjE0NDc0OiAgZmxvYXQgbWF4X2Rpc3BjbGtbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1heF9k
cHBjbGtbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRjZmNsa19wZXJfc3RhdGVbNSArIDFdOwoxNDQ3
NDogIGZsb2F0IHBoeWNsa19wZXJfc3RhdGVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGZhYnJpY19h
bmRfZHJhbV9iYW5kd2lkdGhfcGVyX3N0YXRlWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBzcl9leGl0
X3RpbWU7CjE0NDc0OiAgZmxvYXQgc3JfZW50ZXJfcGx1c19leGl0X3RpbWU7CjE0NDc0OiAgZmxv
YXQgZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeTsKMTQ0NzQ6ICBmbG9hdCB1cmdlbnRfbGF0ZW5j
eTsKMTQ0NzQ6ICBmbG9hdCB3cml0ZV9iYWNrX2xhdGVuY3k7CjE0NDc0OiAgZmxvYXQgcGVyY2Vu
dF9vZl9pZGVhbF9kcmFtYndfcmVjZWl2ZWRfYWZ0ZXJfdXJnX2xhdGVuY3k7CjE0NDc0OiAgZmxv
YXQgZGNmY2xrdl9tYXgwcDk7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9ub20wcDg7CjE0NDc0OiAg
ZmxvYXQgZGNmY2xrdl9taWQwcDcyOwoxNDQ3NDogIGZsb2F0IGRjZmNsa3ZfbWluMHA2NTsKMTQ0
NzQ6ICBmbG9hdCBtYXhfZGlzcGNsa192bWF4MHA5OwoxNDQ3NDogIGZsb2F0IG1heF9kcHBjbGtf
dm1heDBwOTsKMTQ0NzQ6ICBmbG9hdCBtYXhfZGlzcGNsa192bm9tMHA4OwoxNDQ3NDogIGZsb2F0
IG1heF9kcHBjbGtfdm5vbTBwODsKMTQ0NzQ6ICBmbG9hdCBtYXhfZGlzcGNsa192bWlkMHA3MjsK
MTQ0NzQ6ICBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwoxNDQ3NDogIGZsb2F0IG1heF9kaXNw
Y2xrX3ZtaW4wcDY1OwoxNDQ3NDogIGZsb2F0IG1heF9kcHBjbGtfdm1pbjBwNjU7CjE0NDc0OiAg
ZmxvYXQgc29jY2xrOwoxNDQ3NDogIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm1h
eDBwOTsKMTQ0NzQ6ICBmbG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3Zub20wcDg7CjE0
NDc0OiAgZmxvYXQgZmFicmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bWlkMHA3MjsKMTQ0NzQ6ICBm
bG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3ZtaW4wcDY1OwoxNDQ3NDogIGZsb2F0IHJv
dW5kX3RyaXBfcGluZ19sYXRlbmN5X2N5Y2xlczsKMTQ0NzQ6ICBmbG9hdCB1cmdlbnRfb3V0X29m
X29yZGVyX3JldHVybl9wZXJfY2hhbm5lbDsKMTQ0NzQ6ICBmbG9hdCBudW1iZXJfb2ZfY2hhbm5l
bHM7CjE0NDc0OiAgZmxvYXQgdm1tX3BhZ2Vfc2l6ZTsKMTQ0NzQ6ICBmbG9hdCByZXR1cm5fYnVz
X3dpZHRoOwoxNDQ3NDogIGZsb2F0IHJvYl9idWZmZXJfc2l6ZV9pbl9rYnl0ZTsKMTQ0NzQ6ICBm
bG9hdCBkZXRfYnVmZmVyX3NpemVfaW5fa2J5dGU7CjE0NDc0OiAgZmxvYXQgZHBwX291dHB1dF9i
dWZmZXJfcGl4ZWxzOwoxNDQ3NDogIGZsb2F0IG9wcF9vdXRwdXRfYnVmZmVyX2xpbmVzOwoxNDQ3
NDogIGZsb2F0IHBpeGVsX2NodW5rX3NpemVfaW5fa2J5dGU7CjE0NDc0OiAgZmxvYXQgcHRlX2No
dW5rX3NpemU7CjE0NDc0OiAgZmxvYXQgbWV0YV9jaHVua19zaXplOwoxNDQ3NDogIGZsb2F0IHdy
aXRlYmFja19jaHVua19zaXplOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgb2RtX2NhcGFiaWxp
dHk7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBkc2NfY2FwYWJpbGl0eTsKMTQ0NzQ6ICBmbG9h
dCBsaW5lX2J1ZmZlcl9zaXplOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgaXNfbGluZV9idWZm
ZXJfYnBwX2ZpeGVkOwoxNDQ3NDogIGZsb2F0IGxpbmVfYnVmZmVyX2ZpeGVkX2JwcDsKMTQ0NzQ6
ICBmbG9hdCBtYXhfbGluZV9idWZmZXJfbGluZXM7CjE0NDc0OiAgZmxvYXQgd3JpdGViYWNrX2x1
bWFfYnVmZmVyX3NpemU7CjE0NDc0OiAgZmxvYXQgd3JpdGViYWNrX2Nocm9tYV9idWZmZXJfc2l6
ZTsKMTQ0NzQ6ICBmbG9hdCBtYXhfbnVtX2RwcDsKMTQ0NzQ6ICBmbG9hdCBtYXhfbnVtX3dyaXRl
YmFjazsKMTQ0NzQ6ICBmbG9hdCBtYXhfZGNodWJfdG9wc2NsX3Rocm91Z2hwdXQ7CjE0NDc0OiAg
ZmxvYXQgbWF4X3BzY2xfdG9sYl90aHJvdWdocHV0OwoxNDQ3NDogIGZsb2F0IG1heF9sYl90b3Zz
Y2xfdGhyb3VnaHB1dDsKMTQ0NzQ6ICBmbG9hdCBtYXhfdnNjbF90b2hzY2xfdGhyb3VnaHB1dDsK
MTQ0NzQ6ICBmbG9hdCBtYXhfaHNjbF9yYXRpbzsKMTQ0NzQ6ICBmbG9hdCBtYXhfdnNjbF9yYXRp
bzsKMTQ0NzQ6ICBmbG9hdCBtYXhfaHNjbF90YXBzOwoxNDQ3NDogIGZsb2F0IG1heF92c2NsX3Rh
cHM7CjE0NDc0OiAgZmxvYXQgdW5kZXJfc2Nhbl9mYWN0b3I7CjE0NDc0OiAgZmxvYXQgcGh5Y2xr
dl9tYXgwcDk7CjE0NDc0OiAgZmxvYXQgcGh5Y2xrdl9ub20wcDg7CjE0NDc0OiAgZmxvYXQgcGh5
Y2xrdl9taWQwcDcyOwoxNDQ3NDogIGZsb2F0IHBoeWNsa3ZfbWluMHA2NTsKMTQ0NzQ6ICBmbG9h
dCBwdGVfYnVmZmVyX3NpemVfaW5fcmVxdWVzdHM7CjE0NDc0OiAgZmxvYXQgZGlzcGNsa19yYW1w
aW5nX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBkb3duc3ByZWFkaW5nOwoxNDQ3NDogIGZsb2F0IG1h
eF9pbnRlcl9kY25fdGlsZV9yZXBlYXRlcnM7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBjYW5f
dnN0YXJ0dXBfbGluZXNfZXhjZWVkX3ZzeW5jX3BsdXNfYmFja19wb3JjaF9saW5lc19taW51c19v
bmU7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBidWdfZm9yY2luZ19sdW1hX2FuZF9jaHJvbWFf
cmVxdWVzdF90b19zYW1lX3NpemVfZml4ZWQ7CjE0NDc0OiAgaW50IG1vZGU7CjE0NDc0OiAgZmxv
YXQgdmlld3BvcnRfd2lkdGhbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGh0b3RhbFs1ICsgMV07CjE0
NDc0OiAgZmxvYXQgdnRvdGFsWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2X3N5bmNfcGx1c19iYWNr
X3BvcmNoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2YWN0aXZlWzUgKyAxXTsKMTQ0NzQ6ICBmbG9h
dCBwaXhlbF9jbG9ja1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgdmlld3BvcnRfaGVpZ2h0WzUgKyAx
XTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGRjY19lbmFibGVbNSArIDFdOwoxNDQ3NDogIGZs
b2F0IGRjY19yYXRlWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIHNvdXJjZV9zY2Fu
WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBsYl9iaXRfcGVyX3BpeGVsWzUgKyAxXTsKMTQ0NzQ6ICBl
bnVtIGRjbl9id19kZWZzIHNvdXJjZV9waXhlbF9mb3JtYXRbNSArIDFdOwoxNDQ3NDogIGVudW0g
ZGNuX2J3X2RlZnMgc291cmNlX3N1cmZhY2VfbW9kZVs1ICsgMV07CjE0NDc0OiAgZW51bSBkY25f
YndfZGVmcyBvdXRwdXRfZm9ybWF0WzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIG91
dHB1dF9kZWVwX2NvbG9yWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIG91dHB1dFs1
ICsgMV07CjE0NDc0OiAgZmxvYXQgc2NhbGVyX3JlY19vdXRfd2lkdGhbNSArIDFdOwoxNDQ3NDog
IGZsb2F0IHNjYWxlcl9yZWNvdXRfaGVpZ2h0WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB1bmRlcnNj
YW5fb3V0cHV0WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBpbnRlcmxhY2Vfb3V0cHV0WzUgKyAxXTsK
MTQ0NzQ6ICBmbG9hdCBvdmVycmlkZV9odGFfcHNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG92ZXJy
aWRlX3Z0YV9wc1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgb3ZlcnJpZGVfaHRhX3BzY2hyb21hWzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCBvdmVycmlkZV92dGFfcHNjaHJvbWFbNSArIDFdOwoxNDQ3NDog
IGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGhf
cmF0aW9bNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfcmF0aW9bNSArIDFdOwoxNDQ3NDogIGZsb2F0
IGh0YXBzWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2dGFwc1s1ICsgMV07CjE0NDc0OiAgZmxvYXQg
aHRhX3BzY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2dGFfcHNjaHJvbWFbNSArIDFdOwox
NDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcHRlX2VuYWJsZTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHN5bmNocm9uaXplZF92Ymxhbms7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyB0YV9wc2Nh
bGN1bGF0aW9uOwoxNDQ3NDogIGludCB2b2x0YWdlX292ZXJyaWRlX2xldmVsOwoxNDQ3NDogIGlu
dCBudW1iZXJfb2ZfYWN0aXZlX3BsYW5lczsKMTQ0NzQ6ICBpbnQgdm9sdGFnZV9sZXZlbDsKMTQ0
NzQ6ICBlbnVtIGRjbl9id19kZWZzIGltbWVkaWF0ZV9mbGlwX3N1cHBvcnRlZDsKMTQ0NzQ6ICBm
bG9hdCBkY2ZjbGs7CjE0NDc0OiAgZmxvYXQgbWF4X3BoeWNsazsKMTQ0NzQ6ICBmbG9hdCBmYWJy
aWNfYW5kX2RyYW1fYmFuZHdpZHRoOwoxNDQ3NDogIGZsb2F0IGRwcF9wZXJfcGxhbmVfcGVyX3Jh
dGlvWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBkaXNwY2xrX2RwcGNs
a19zdXBwb3J0X3Blcl9yYXRpb1sxICsgMV07CjE0NDc0OiAgZmxvYXQgcmVxdWlyZWRfZGlzcGNs
a19wZXJfcmF0aW9bMSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgZXJyb3JfbWVzc2Fn
ZVsxICsgMV07CjE0NDc0OiAgaW50IGRpc3BjbGtfZHBwY2xrX3JhdGlvOwoxNDQ3NDogIGZsb2F0
IGRwcF9wZXJfcGxhbmVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRldF9idWZmZXJfc2l6ZV95WzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCBkZXRfYnVmZmVyX3NpemVfY1s1ICsgMV07CjE0NDc0OiAgZmxv
YXQgc3dhdGhfaGVpZ2h0X3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHN3YXRoX2hlaWdodF9jWzUg
KyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGZpbmFsX2Vycm9yX21lc3NhZ2U7CjE0NDc0
OiAgZmxvYXQgZnJlcXVlbmN5OwoxNDQ3NDogIGZsb2F0IGhlYWRlcl9saW5lOwoxNDQ3NDogIGZs
b2F0IGhlYWRlcjsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIHZvbHRhZ2Vfb3ZlcnJpZGU7CjE0
NDc0OiAgZW51bSBkY25fYndfZGVmcyBhbGxvd19kaWZmZXJlbnRfaHJhdGlvX3ZyYXRpbzsKMTQ0
NzQ6ICBmbG9hdCBhY2NlcHRhYmxlX3F1YWxpdHlfaHRhX3BzOwoxNDQ3NDogIGZsb2F0IGFjY2Vw
dGFibGVfcXVhbGl0eV92dGFfcHM7CjE0NDc0OiAgZmxvYXQgbm9fb2ZfZHBwWzUgKyAxXVsxICsg
MV1bNSArIDFdOwoxNDQ3NDogIGZsb2F0IHN3YXRoX3dpZHRoX3lwZXJfc3RhdGVbNSArIDFdWzEg
KyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgc3dhdGhfaGVpZ2h0X3lwZXJfc3RhdGVbNSArIDFd
WzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgc3dhdGhfaGVpZ2h0X2NwZXJfc3RhdGVbNSAr
IDFdWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgdXJnZW50X2xhdGVuY3lfc3VwcG9ydF91
c19wZXJfc3RhdGVbNSArIDFdWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgdl9yYXRpb19w
cmVfeXdpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXVs1ICsgMV07CjE0NDc0OiAgZmxv
YXQgdl9yYXRpb19wcmVfY3dpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXVs1ICsgMV07
CjE0NDc0OiAgZmxvYXQgcmVxdWlyZWRfcHJlZmV0Y2hfcGl4ZWxfZGF0YV9id193aXRoX2ltbWVk
aWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfcmF0aW9fcHJl
X3l3aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSArIDFdOwoxNDQ3NDogIGZs
b2F0IHZfcmF0aW9fcHJlX2N3aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSAr
IDFdOwoxNDQ3NDogIGZsb2F0IHJlcXVpcmVkX3ByZWZldGNoX3BpeGVsX2RhdGFfYndfd2l0aG91
dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9i
d19kZWZzIHByZWZldGNoX3N1cHBvcnRlZF93aXRoX2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsg
MV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBwcmVmZXRjaF9zdXBwb3J0ZWRfd2l0aG91dF9p
bW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgdl9y
YXRpb19pbl9wcmVmZXRjaF9zdXBwb3J0ZWRfd2l0aF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSAr
IDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgdl9yYXRpb19pbl9wcmVmZXRjaF9zdXBwb3J0
ZWRfd2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwoxNDQ3NDogIGZsb2F0IHJl
cXVpcmVkX2Rpc3BjbGtbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGRp
c3BjbGtfZHBwY2xrX3N1cHBvcnRbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHRvdGFsX2F2YWlsYWJsZV9waXBlc19zdXBwb3J0WzUgKyAxXVsxICsgMV07CjE0NDc0OiAg
ZmxvYXQgdG90YWxfbnVtYmVyX29mX2FjdGl2ZV9kcHBbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6ICBm
bG9hdCB0b3RhbF9udW1iZXJfb2ZfZGNjX2FjdGl2ZV9kcHBbNSArIDFdWzEgKyAxXTsKMTQ0NzQ6
ICBlbnVtIGRjbl9id19kZWZzIHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRbNSArIDFdWzEgKyAxXTsK
MTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIG1vZGVfc3VwcG9ydF93aXRoX2ltbWVkaWF0ZV9mbGlw
WzUgKyAxXVsxICsgMV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBtb2RlX3N1cHBvcnRfd2l0
aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwoxNDQ3NDogIGZsb2F0IHJldHVybl9i
d19wZXJfc3RhdGVbNSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgZGlvX3N1cHBvcnRb
NSArIDFdOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9yb3VuZF90cmlwX2FuZF9vdXRfb2Zfb3JkZXJf
bGF0ZW5jeV9wZXJfc3RhdGVbNSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcm9iX3N1
cHBvcnRbNSArIDFdOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgYmFuZHdpZHRoX3N1cHBvcnRb
NSArIDFdOwoxNDQ3NDogIGZsb2F0IHByZWZldGNoX2J3WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBt
ZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1ldGFfcm93X2J5
dGVzWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3dbNSArIDFdOwoxNDQ3
NDogIGZsb2F0IHByZWZldGNoX2xpbmVzX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHByZWZldGNo
X2xpbmVzX2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1heF9udW1fc3dfeVs1ICsgMV07CjE0NDc0
OiAgZmxvYXQgbWF4X251bV9zd19jWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBsaW5lX3RpbWVzX2Zv
cl9wcmVmZXRjaFs1ICsgMV07CjE0NDc0OiAgZmxvYXQgbGluZXNfZm9yX21ldGFfcHRlX3dpdGhf
aW1tZWRpYXRlX2ZsaXBbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGxpbmVzX2Zvcl9tZXRhX3B0ZV93
aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBsaW5lc19mb3JfbWV0
YV9hbmRfZHB0ZV9yb3dfd2l0aF9pbW1lZGlhdGVfZmxpcFs1ICsgMV07CjE0NDc0OiAgZmxvYXQg
bGluZXNfZm9yX21ldGFfYW5kX2RwdGVfcm93X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFd
OwoxNDQ3NDogIGZsb2F0IG1pbl9kcHBjbGtfdXNpbmdfc2luZ2xlX2RwcFs1ICsgMV07CjE0NDc0
OiAgZmxvYXQgc3dhdGhfd2lkdGhfeXNpbmdsZV9kcHBbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGJ5
dGVfcGVyX3BpeGVsX2luX2RldHlbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGJ5dGVfcGVyX3BpeGVs
X2luX2RldGNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG51bWJlcl9vZl9kcHBfcmVxdWlyZWRfZm9y
X2RldF9hbmRfbGJfc2l6ZVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgcmVxdWlyZWRfcGh5Y2xrWzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCByZWFkMjU2X2Jsb2NrX2hlaWdodF95WzUgKyAxXTsKMTQ0NzQ6
ICBmbG9hdCByZWFkMjU2X2Jsb2NrX3dpZHRoX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHJlYWQy
NTZfYmxvY2tfaGVpZ2h0X2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHJlYWQyNTZfYmxvY2tfd2lk
dGhfY1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgbWF4X3N3YXRoX2hlaWdodF95WzUgKyAxXTsKMTQ0
NzQ6ICBmbG9hdCBtYXhfc3dhdGhfaGVpZ2h0X2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG1pbl9z
d2F0aF9oZWlnaHRfeVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgbWluX3N3YXRoX2hlaWdodF9jWzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCByZWFkX2JhbmR3aWR0aFs1ICsgMV07CjE0NDc0OiAgZmxvYXQg
d3JpdGVfYmFuZHdpZHRoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwc2NsX2ZhY3Rvcls1ICsgMV07
CjE0NDc0OiAgZmxvYXQgcHNjbF9mYWN0b3JfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBlbnVtIGRj
bl9id19kZWZzIHNjYWxlX3JhdGlvX3N1cHBvcnQ7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBz
b3VyY2VfZm9ybWF0X3BpeGVsX2FuZF9zY2FuX3N1cHBvcnQ7CjE0NDc0OiAgZmxvYXQgdG90YWxf
cmVhZF9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBmbG9hdCB0
b3RhbF93cml0ZV9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBm
bG9hdCB0b3RhbF9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29uZDsKMTQ0NzQ6ICBl
bnVtIGRjbl9id19kZWZzIGRjY19lbmFibGVkX2luX2FueV9wbGFuZTsKMTQ0NzQ6ICBmbG9hdCBy
ZXR1cm5fYndfdG9kY25fcGVyX3N0YXRlOwoxNDQ3NDogIGZsb2F0IGNyaXRpY2FsX3BvaW50Owox
NDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgd3JpdGViYWNrX2xhdGVuY3lfc3VwcG9ydDsKMTQ0NzQ6
ICBmbG9hdCByZXF1aXJlZF9vdXRwdXRfYnc7CjE0NDc0OiAgZmxvYXQgdG90YWxfbnVtYmVyX29m
X2FjdGl2ZV93cml0ZWJhY2s7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyB0b3RhbF9hdmFpbGFi
bGVfd3JpdGViYWNrX3N1cHBvcnQ7CjE0NDc0OiAgZmxvYXQgbWF4aW11bV9zd2F0aF93aWR0aDsK
MTQ0NzQ6ICBmbG9hdCBudW1iZXJfb2ZfZHBwX3JlcXVpcmVkX2Zvcl9kZXRfc2l6ZTsKMTQ0NzQ6
ICBmbG9hdCBudW1iZXJfb2ZfZHBwX3JlcXVpcmVkX2Zvcl9sYl9zaXplOwoxNDQ3NDogIGZsb2F0
IG1pbl9kaXNwY2xrX3VzaW5nX3NpbmdsZV9kcHA7CjE0NDc0OiAgZmxvYXQgbWluX2Rpc3BjbGtf
dXNpbmdfZHVhbF9kcHA7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyB2aWV3cG9ydF9zaXplX3N1
cHBvcnQ7CjE0NDc0OiAgZmxvYXQgc3dhdGhfd2lkdGhfZ3JhbnVsYXJpdHlfeTsKMTQ0NzQ6ICBm
bG9hdCByb3VuZGVkX3VwX21heF9zd2F0aF9zaXplX2J5dGVzX3k7CjE0NDc0OiAgZmxvYXQgc3dh
dGhfd2lkdGhfZ3JhbnVsYXJpdHlfYzsKMTQ0NzQ6ICBmbG9hdCByb3VuZGVkX3VwX21heF9zd2F0
aF9zaXplX2J5dGVzX2M7CjE0NDc0OiAgZmxvYXQgbGluZXNfaW5fZGV0X2x1bWE7CjE0NDc0OiAg
ZmxvYXQgbGluZXNfaW5fZGV0X2Nocm9tYTsKMTQ0NzQ6ICBmbG9hdCBlZmZlY3RpdmVfbGJfbGF0
ZW5jeV9oaWRpbmdfc291cmNlX2xpbmVzX2x1bWE7CjE0NDc0OiAgZmxvYXQgZWZmZWN0aXZlX2xi
X2xhdGVuY3lfaGlkaW5nX3NvdXJjZV9saW5lc19jaHJvbWE7CjE0NDc0OiAgZmxvYXQgZWZmZWN0
aXZlX2RldGxiX2xpbmVzX2x1bWE7CjE0NDc0OiAgZmxvYXQgZWZmZWN0aXZlX2RldGxiX2xpbmVz
X2Nocm9tYTsKMTQ0NzQ6ICBmbG9hdCBwcm9qZWN0ZWRfZGNmY2xrX2RlZXBfc2xlZXA7CjE0NDc0
OiAgZmxvYXQgbWV0YV9yZXFfaGVpZ2h0X3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9yZXFfd2lkdGhf
eTsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3N1cmZhY2Vfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCBtZXRh
X3N1cmZhY2VfaGVpZ2h0X3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9wdGVfYnl0ZXNfcGVyX2ZyYW1l
X3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9yb3dfYnl0ZXNfeTsKMTQ0NzQ6ICBmbG9hdCBtYWNyb190
aWxlX2Jsb2NrX3NpemVfYnl0ZXNfeTsKMTQ0NzQ6ICBmbG9hdCBtYWNyb190aWxlX2Jsb2NrX2hl
aWdodF95OwoxNDQ3NDogIGZsb2F0IGRhdGFfcHRlX3JlcV9oZWlnaHRfeTsKMTQ0NzQ6ICBmbG9h
dCBkYXRhX3B0ZV9yZXFfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3df
eTsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3JlcV9oZWlnaHRfYzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3Jl
cV93aWR0aF9jOwoxNDQ3NDogIGZsb2F0IG1ldGFfc3VyZmFjZV93aWR0aF9jOwoxNDQ3NDogIGZs
b2F0IG1ldGFfc3VyZmFjZV9oZWlnaHRfYzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3B0ZV9ieXRlc19w
ZXJfZnJhbWVfYzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3Jvd19ieXRlc19jOwoxNDQ3NDogIGZsb2F0
IG1hY3JvX3RpbGVfYmxvY2tfc2l6ZV9ieXRlc19jOwoxNDQ3NDogIGZsb2F0IG1hY3JvX3RpbGVf
YmxvY2tfaGVpZ2h0X2M7CjE0NDc0OiAgZmxvYXQgbWFjcm9fdGlsZV9ibG9ja193aWR0aF9jOwox
NDQ3NDogIGZsb2F0IGRhdGFfcHRlX3JlcV9oZWlnaHRfYzsKMTQ0NzQ6ICBmbG9hdCBkYXRhX3B0
ZV9yZXFfd2lkdGhfYzsKMTQ0NzQ6ICBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3dfYzsKMTQ0NzQ6
ICBmbG9hdCB2X2luaXRfeTsKMTQ0NzQ6ICBmbG9hdCBtYXhfcGFydGlhbF9zd195OwoxNDQ3NDog
IGZsb2F0IHZfaW5pdF9jOwoxNDQ3NDogIGZsb2F0IG1heF9wYXJ0aWFsX3N3X2M7CjE0NDc0OiAg
ZmxvYXQgZHN0X3hfYWZ0ZXJfc2NhbGVyOwoxNDQ3NDogIGZsb2F0IGRzdF95X2FmdGVyX3NjYWxl
cjsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2NhbGM7CjE0NDc0OiAgZmxvYXQgdl91cGRhdGVfb2Zmc2V0
WzUgKyAxXVsyXTsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9yZXBlYXRlcl9kZWxheTsKMTQ0NzQ6ICBm
bG9hdCB2X3VwZGF0ZV93aWR0aFs1ICsgMV1bMl07CjE0NDc0OiAgZmxvYXQgdl9yZWFkeV9vZmZz
ZXRbNSArIDFdWzJdOwoxNDQ3NDogIGZsb2F0IHRpbWVfc2V0dXA7CjE0NDc0OiAgZmxvYXQgZXh0
cmFfbGF0ZW5jeTsKMTQ0NzQ6ICBmbG9hdCBtYXhpbXVtX3ZzdGFydHVwOwoxNDQ3NDogIGZsb2F0
IGJ3X2F2YWlsYWJsZV9mb3JfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgdG90YWxfaW1t
ZWRpYXRlX2ZsaXBfYnl0ZXNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHRpbWVfZm9yX21ldGFfcHRl
X3dpdGhfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgdGltZV9mb3JfbWV0YV9wdGVfd2l0
aG91dF9pbW1lZGlhdGVfZmxpcDsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2Zvcl9tZXRhX2FuZF9kcHRl
X3Jvd193aXRoX2ltbWVkaWF0ZV9mbGlwOwoxNDQ3NDogIGZsb2F0IHRpbWVfZm9yX21ldGFfYW5k
X2RwdGVfcm93X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgbGluZV90aW1l
c190b19yZXF1ZXN0X3ByZWZldGNoX3BpeGVsX2RhdGFfd2l0aF9pbW1lZGlhdGVfZmxpcDsKMTQ0
NzQ6ICBmbG9hdCBsaW5lX3RpbWVzX3RvX3JlcXVlc3RfcHJlZmV0Y2hfcGl4ZWxfZGF0YV93aXRo
b3V0X2ltbWVkaWF0ZV9mbGlwOwoxNDQ3NDogIGZsb2F0IG1heGltdW1fcmVhZF9iYW5kd2lkdGhf
d2l0aF9wcmVmZXRjaF93aXRoX2ltbWVkaWF0ZV9mbGlwOwoxNDQ3NDogIGZsb2F0IG1heGltdW1f
cmVhZF9iYW5kd2lkdGhfd2l0aF9wcmVmZXRjaF93aXRob3V0X2ltbWVkaWF0ZV9mbGlwOwoxNDQ3
NDogIGZsb2F0IHZvbHRhZ2VfbGV2ZWxfd2l0aF9pbW1lZGlhdGVfZmxpcDsKMTQ0NzQ6ICBmbG9h
dCB2b2x0YWdlX2xldmVsX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CjE0NDc0OiAgZmxvYXQgdG90
YWxfbnVtYmVyX29mX2FjdGl2ZV9kcHBfcGVyX3JhdGlvWzEgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBi
eXRlX3Blcl9waXhfZGV0eTsKMTQ0NzQ6ICBmbG9hdCBieXRlX3Blcl9waXhfZGV0YzsKMTQ0NzQ6
ICBmbG9hdCByZWFkMjU2X2J5dGVzX2Jsb2NrX2hlaWdodF95OwoxNDQ3NDogIGZsb2F0IHJlYWQy
NTZfYnl0ZXNfYmxvY2tfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCByZWFkMjU2X2J5dGVzX2Jsb2Nr
X2hlaWdodF9jOwoxNDQ3NDogIGZsb2F0IHJlYWQyNTZfYnl0ZXNfYmxvY2tfd2lkdGhfYzsKMTQ0
NzQ6ICBmbG9hdCBtYXhpbXVtX3N3YXRoX2hlaWdodF95OwoxNDQ3NDogIGZsb2F0IG1heGltdW1f
c3dhdGhfaGVpZ2h0X2M7CjE0NDc0OiAgZmxvYXQgbWluaW11bV9zd2F0aF9oZWlnaHRfeTsKMTQ0
NzQ6ICBmbG9hdCBtaW5pbXVtX3N3YXRoX2hlaWdodF9jOwoxNDQ3NDogIGZsb2F0IHN3YXRoX3dp
ZHRoOwoxNDQ3NDogIGZsb2F0IHByZWZldGNoX2JhbmR3aWR0aFs1ICsgMV07CjE0NDc0OiAgZmxv
YXQgdl9pbml0X3ByZV9maWxsX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfaW5pdF9wcmVfZmls
bF9jWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBtYXhfbnVtX3N3YXRoX3lbNSArIDFdOwoxNDQ3NDog
IGZsb2F0IG1heF9udW1fc3dhdGhfY1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgcHJlZmlsbF95WzUg
KyAxXTsKMTQ0NzQ6ICBmbG9hdCBwcmVmaWxsX2NbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfc3Rh
cnR1cFs1ICsgMV07CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBhbGxvd19kcmFtX2Nsb2NrX2No
YW5nZV9kdXJpbmdfdmJsYW5rWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBhbGxvd19kcmFtX3NlbGZf
cmVmcmVzaF9kdXJpbmdfdmJsYW5rWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB2X3JhdGlvX3ByZWZl
dGNoX3lbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHZfcmF0aW9fcHJlZmV0Y2hfY1s1ICsgMV07CjE0
NDc0OiAgZmxvYXQgZGVzdGluYXRpb25fbGluZXNfZm9yX3ByZWZldGNoWzUgKyAxXTsKMTQ0NzQ6
ICBmbG9hdCBkZXN0aW5hdGlvbl9saW5lc190b19yZXF1ZXN0X3ZtX2ludl9ibGFua1s1ICsgMV07
CjE0NDc0OiAgZmxvYXQgZGVzdGluYXRpb25fbGluZXNfdG9fcmVxdWVzdF9yb3dfaW5fdmJsYW5r
WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBtaW5fdHR1dl9ibGFua1s1ICsgMV07CjE0NDc0OiAgZmxv
YXQgYnl0ZV9wZXJfcGl4ZWxfZGV0eVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgYnl0ZV9wZXJfcGl4
ZWxfZGV0Y1s1ICsgMV07CjE0NDc0OiAgZmxvYXQgc3dhdGhfd2lkdGhfeVs1ICsgMV07CjE0NDc0
OiAgZmxvYXQgbGluZXNfaW5fZGV0eVs1ICsgMV07CjE0NDc0OiAgZmxvYXQgbGluZXNfaW5fZGV0
eV9yb3VuZGVkX2Rvd25fdG9fc3dhdGhbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGxpbmVzX2luX2Rl
dGNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGxpbmVzX2luX2RldGNfcm91bmRlZF9kb3duX3RvX3N3
YXRoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBmdWxsX2RldF9idWZmZXJpbmdfdGltZV95WzUgKyAx
XTsKMTQ0NzQ6ICBmbG9hdCBmdWxsX2RldF9idWZmZXJpbmdfdGltZV9jWzUgKyAxXTsKMTQ0NzQ6
ICBmbG9hdCBhY3RpdmVfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9tYXJnaW5bNSArIDFdOwox
NDQ3NDogIGZsb2F0IHZfYmxhbmtfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9tYXJnaW5bNSAr
IDFdOwoxNDQ3NDogIGZsb2F0IGRjZmNsa19kZWVwX3NsZWVwX3Blcl9wbGFuZVs1ICsgMV07CjE0
NDc0OiAgZmxvYXQgcmVhZF9iYW5kd2lkdGhfcGxhbmVfbHVtYVs1ICsgMV07CjE0NDc0OiAgZmxv
YXQgcmVhZF9iYW5kd2lkdGhfcGxhbmVfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBkaXNw
bGF5X3BpcGVfbGluZV9kZWxpdmVyeV90aW1lX2x1bWFbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRp
c3BsYXlfcGlwZV9saW5lX2RlbGl2ZXJ5X3RpbWVfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9h
dCBkaXNwbGF5X3BpcGVfbGluZV9kZWxpdmVyeV90aW1lX2x1bWFfcHJlZmV0Y2hbNSArIDFdOwox
NDQ3NDogIGZsb2F0IGRpc3BsYXlfcGlwZV9saW5lX2RlbGl2ZXJ5X3RpbWVfY2hyb21hX3ByZWZl
dGNoWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwaXhlbF9wdGVfYnl0ZXNfcGVyX3Jvd1s1ICsgMV07
CjE0NDc0OiAgZmxvYXQgbWV0YV9wdGVfYnl0ZXNfZnJhbWVbNSArIDFdOwoxNDQ3NDogIGZsb2F0
IG1ldGFfcm93X2J5dGVbNSArIDFdOwoxNDQ3NDogIGZsb2F0IHByZWZldGNoX3NvdXJjZV9saW5l
c195WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwcmVmZXRjaF9zb3VyY2VfbGluZXNfY1s1ICsgMV07
CjE0NDc0OiAgZmxvYXQgcHNjbF90aHJvdWdocHV0WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBwc2Ns
X3Rocm91Z2hwdXRfY2hyb21hWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBvdXRwdXRfYnBwaGRtaVs1
ICsgMV07CjE0NDc0OiAgZmxvYXQgb3V0cHV0X2JwcGRwNF9sYW5lX2hicls1ICsgMV07CjE0NDc0
OiAgZmxvYXQgb3V0cHV0X2JwcGRwNF9sYW5lX2hicjJbNSArIDFdOwoxNDQ3NDogIGZsb2F0IG91
dHB1dF9icHBkcDRfbGFuZV9oYnIzWzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCBtYXhfdnN0YXJ0dXBf
bGluZXNbNSArIDFdOwoxNDQ3NDogIGZsb2F0IGRpc3BjbGtfd2l0aF9yYW1waW5nOwoxNDQ3NDog
IGZsb2F0IGRpc3BjbGtfd2l0aG91dF9yYW1waW5nOwoxNDQ3NDogIGZsb2F0IGRwcGNsa191c2lu
Z19zaW5nbGVfZHBwX2x1bWE7CjE0NDc0OiAgZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9kcHA7
CjE0NDc0OiAgZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9kcHBfY2hyb21hOwoxNDQ3NDogIGVu
dW0gZGNuX2J3X2RlZnMgb2RtX2NhcGFibGU7CjE0NDc0OiAgZmxvYXQgZGlzcGNsazsKMTQ0NzQ6
ICBmbG9hdCBkcHBjbGs7CjE0NDc0OiAgZmxvYXQgcmV0dXJuX2JhbmR3aWR0aF90b19kY247CjE0
NDc0OiAgZW51bSBkY25fYndfZGVmcyBkY2NfZW5hYmxlZF9hbnlfcGxhbmU7CjE0NDc0OiAgZmxv
YXQgcmV0dXJuX2J3OwoxNDQ3NDogIGZsb2F0IGNyaXRpY2FsX2NvbXByZXNzaW9uOwoxNDQ3NDog
IGZsb2F0IHRvdGFsX2RhdGFfcmVhZF9iYW5kd2lkdGg7CjE0NDc0OiAgZmxvYXQgdG90YWxfYWN0
aXZlX2RwcDsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9kY2NfYWN0aXZlX2RwcDsKMTQ0NzQ6ICBmbG9h
dCB1cmdlbnRfcm91bmRfdHJpcF9hbmRfb3V0X29mX29yZGVyX2xhdGVuY3k7CjE0NDc0OiAgZmxv
YXQgbGFzdF9waXhlbF9vZl9saW5lX2V4dHJhX3dhdGVybWFyazsKMTQ0NzQ6ICBmbG9hdCBkYXRh
X2ZhYnJpY19saW5lX2RlbGl2ZXJ5X3RpbWVfbHVtYTsKMTQ0NzQ6ICBmbG9hdCBkYXRhX2ZhYnJp
Y19saW5lX2RlbGl2ZXJ5X3RpbWVfY2hyb21hOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9leHRyYV9s
YXRlbmN5OwoxNDQ3NDogIGZsb2F0IHVyZ2VudF93YXRlcm1hcms7CjE0NDc0OiAgZmxvYXQgcHRl
bWV0YV91cmdlbnRfd2F0ZXJtYXJrOwoxNDQ3NDogIGZsb2F0IGRyYW1fY2xvY2tfY2hhbmdlX3dh
dGVybWFyazsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9hY3RpdmVfd3JpdGViYWNrOwoxNDQ3NDogIGZs
b2F0IHdyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZV93YXRlcm1hcms7CjE0NDc0OiAgZmxvYXQg
bWluX2Z1bGxfZGV0X2J1ZmZlcmluZ190aW1lOwoxNDQ3NDogIGZsb2F0IGZyYW1lX3RpbWVfZm9y
X21pbl9mdWxsX2RldF9idWZmZXJpbmdfdGltZTsKMTQ0NzQ6ICBmbG9hdCBhdmVyYWdlX3JlYWRf
YmFuZHdpZHRoX2dieXRlX3Blcl9zZWNvbmQ7CjE0NDc0OiAgZmxvYXQgcGFydF9vZl9idXJzdF90
aGF0X2ZpdHNfaW5fcm9iOwoxNDQ3NDogIGZsb2F0IHN0dXR0ZXJfYnVyc3RfdGltZTsKMTQ0NzQ6
ICBmbG9hdCBzdHV0dGVyX2VmZmljaWVuY3lfbm90X2luY2x1ZGluZ192Ymxhbms7CjE0NDc0OiAg
ZmxvYXQgc21hbGxlc3RfdmJsYW5rOwoxNDQ3NDogIGZsb2F0IHZfYmxhbmtfdGltZTsKMTQ0NzQ6
ICBmbG9hdCBzdHV0dGVyX2VmZmljaWVuY3k7CjE0NDc0OiAgZmxvYXQgZGNmX2Nsa19kZWVwX3Ns
ZWVwOwoxNDQ3NDogIGZsb2F0IHN0dXR0ZXJfZXhpdF93YXRlcm1hcms7CjE0NDc0OiAgZmxvYXQg
c3R1dHRlcl9lbnRlcl9wbHVzX2V4aXRfd2F0ZXJtYXJrOwoxNDQ3NDogIGZsb2F0IGVmZmVjdGl2
ZV9kZXRfcGx1c19sYl9saW5lc19sdW1hOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1
cHBvcnRfdXNfbHVtYTsKMTQ0NzQ6ICBmbG9hdCBlZmZlY3RpdmVfZGV0X3BsdXNfbGJfbGluZXNf
Y2hyb21hOwoxNDQ3NDogIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNfY2hyb21hOwox
NDQ3NDogIGZsb2F0IG1pbl91cmdlbnRfbGF0ZW5jeV9zdXBwb3J0X3VzOwoxNDQ3NDogIGZsb2F0
IG5vbl91cmdlbnRfbGF0ZW5jeV90b2xlcmFuY2U7CjE0NDc0OiAgZmxvYXQgYmxvY2tfaGVpZ2h0
MjU2X2J5dGVzX3k7CjE0NDc0OiAgZmxvYXQgYmxvY2tfaGVpZ2h0MjU2X2J5dGVzX2M7CjE0NDc0
OiAgZmxvYXQgbWV0YV9yZXF1ZXN0X3dpZHRoX3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9zdXJmX3dp
ZHRoX3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9zdXJmX2hlaWdodF95OwoxNDQ3NDogIGZsb2F0IG1l
dGFfcHRlX2J5dGVzX2ZyYW1lX3k7CjE0NDc0OiAgZmxvYXQgbWV0YV9yb3dfYnl0ZV95OwoxNDQ3
NDogIGZsb2F0IG1hY3JvX3RpbGVfc2l6ZV9ieXRlX3k7CjE0NDc0OiAgZmxvYXQgbWFjcm9fdGls
ZV9oZWlnaHRfeTsKMTQ0NzQ6ICBmbG9hdCBwaXhlbF9wdGVfcmVxX2hlaWdodF95OwoxNDQ3NDog
IGZsb2F0IHBpeGVsX3B0ZV9yZXFfd2lkdGhfeTsKMTQ0NzQ6ICBmbG9hdCBwaXhlbF9wdGVfYnl0
ZXNfcGVyX3Jvd195OwoxNDQ3NDogIGZsb2F0IG1ldGFfcmVxdWVzdF93aWR0aF9jOwoxNDQ3NDog
IGZsb2F0IG1ldGFfc3VyZl93aWR0aF9jOwoxNDQ3NDogIGZsb2F0IG1ldGFfc3VyZl9oZWlnaHRf
YzsKMTQ0NzQ6ICBmbG9hdCBtZXRhX3B0ZV9ieXRlc19mcmFtZV9jOwoxNDQ3NDogIGZsb2F0IG1l
dGFfcm93X2J5dGVfYzsKMTQ0NzQ6ICBmbG9hdCBtYWNyb190aWxlX3NpemVfYnl0ZXNfYzsKMTQ0
NzQ6ICBmbG9hdCBtYWNyb190aWxlX2hlaWdodF9jOwoxNDQ3NDogIGZsb2F0IHBpeGVsX3B0ZV9y
ZXFfaGVpZ2h0X2M7CjE0NDc0OiAgZmxvYXQgcGl4ZWxfcHRlX3JlcV93aWR0aF9jOwoxNDQ3NDog
IGZsb2F0IHBpeGVsX3B0ZV9ieXRlc19wZXJfcm93X2M7CjE0NDc0OiAgZmxvYXQgbWF4X3BhcnRp
YWxfc3dhdGhfeTsKMTQ0NzQ6ICBmbG9hdCBtYXhfcGFydGlhbF9zd2F0aF9jOwoxNDQ3NDogIGZs
b2F0IHRfY2FsYzsKMTQ0NzQ6ICBmbG9hdCBuZXh0X3ByZWZldGNoX21vZGU7CjE0NDc0OiAgZmxv
YXQgdl9zdGFydHVwX2xpbmVzOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcGxhbmVzX3dpdGhf
cm9vbV90b19pbmNyZWFzZV92c3RhcnR1cF9wcmVmZXRjaF9id19sZXNzX3RoYW5fYWN0aXZlX2J3
OwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgcGxhbmVzX3dpdGhfcm9vbV90b19pbmNyZWFzZV92
c3RhcnR1cF92cmF0aW9fcHJlZmV0Y2hfbW9yZV90aGFuNDsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHBsYW5lc193aXRoX3Jvb21fdG9faW5jcmVhc2VfdnN0YXJ0dXBfZGVzdGluYXRpb25fbGlu
ZV90aW1lc19mb3JfcHJlZmV0Y2hfbGVzc190aGFuMjsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZz
IHZfcmF0aW9fcHJlZmV0Y2hfbW9yZV90aGFuNDsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGRl
c3RpbmF0aW9uX2xpbmVfdGltZXNfZm9yX3ByZWZldGNoX2xlc3NfdGhhbjI7CjE0NDc0OiAgZmxv
YXQgcHJlZmV0Y2hfbW9kZTsKMTQ0NzQ6ICBmbG9hdCBkc3R4X2FmdGVyX3NjYWxlcjsKMTQ0NzQ6
ICBmbG9hdCBkc3R5X2FmdGVyX3NjYWxlcjsKMTQ0NzQ6ICBmbG9hdCB2X3VwZGF0ZV9vZmZzZXRf
cGl4WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB0b3RhbF9yZXBlYXRlcl9kZWxheV90aW1lOwoxNDQ3
NDogIGZsb2F0IHZfdXBkYXRlX3dpZHRoX3BpeFs1ICsgMV07CjE0NDc0OiAgZmxvYXQgdl9yZWFk
eV9vZmZzZXRfcGl4WzUgKyAxXTsKMTQ0NzQ6ICBmbG9hdCB0X3NldHVwOwoxNDQ3NDogIGZsb2F0
IHRfd2FpdDsKMTQ0NzQ6ICBmbG9hdCBiYW5kd2lkdGhfYXZhaWxhYmxlX2Zvcl9pbW1lZGlhdGVf
ZmxpcDsKMTQ0NzQ6ICBmbG9hdCB0b3RfaW1tZWRpYXRlX2ZsaXBfYnl0ZXM7CjE0NDc0OiAgZmxv
YXQgbWF4X3JkX2JhbmR3aWR0aDsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2Zvcl9mZXRjaGluZ19tZXRh
X3B0ZTsKMTQ0NzQ6ICBmbG9hdCB0aW1lX2Zvcl9mZXRjaGluZ19yb3dfaW5fdmJsYW5rOwoxNDQ3
NDogIGZsb2F0IGxpbmVzX3RvX3JlcXVlc3RfcHJlZmV0Y2hfcGl4ZWxfZGF0YTsKMTQ0NzQ6ICBm
bG9hdCByZXF1aXJlZF9wcmVmZXRjaF9waXhfZGF0YV9idzsKMTQ0NzQ6ICBlbnVtIGRjbl9id19k
ZWZzIHByZWZldGNoX21vZGVfc3VwcG9ydGVkOwoxNDQ3NDogIGZsb2F0IGFjdGl2ZV9kcF9wczsK
MTQ0NzQ6ICBmbG9hdCBsYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNfeTsKMTQ0NzQ6ICBm
bG9hdCBsYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNfYzsKMTQ0NzQ6ICBmbG9hdCBlZmZl
Y3RpdmVfbGJfbGF0ZW5jeV9oaWRpbmdfeTsKMTQ0NzQ6ICBmbG9hdCBlZmZlY3RpdmVfbGJfbGF0
ZW5jeV9oaWRpbmdfYzsKMTQ0NzQ6ICBmbG9hdCBkcHBfb3V0cHV0X2J1ZmZlcl9saW5lc195Owox
NDQ3NDogIGZsb2F0IGRwcF9vdXRwdXRfYnVmZmVyX2xpbmVzX2M7CjE0NDc0OiAgZmxvYXQgZHBw
b3BwX2J1ZmZlcmluZ195OwoxNDQ3NDogIGZsb2F0IG1heF9kZXRfYnVmZmVyaW5nX3RpbWVfeTsK
MTQ0NzQ6ICBmbG9hdCBhY3RpdmVfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV9tYXJnaW5feTsK
MTQ0NzQ6ICBmbG9hdCBkcHBvcHBfYnVmZmVyaW5nX2M7CjE0NDc0OiAgZmxvYXQgbWF4X2RldF9i
dWZmZXJpbmdfdGltZV9jOwoxNDQ3NDogIGZsb2F0IGFjdGl2ZV9kcmFtX2Nsb2NrX2NoYW5nZV9s
YXRlbmN5X21hcmdpbl9jOwoxNDQ3NDogIGZsb2F0IHdyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5n
ZV9sYXRlbmN5X21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBtaW5fYWN0aXZlX2RyYW1fY2xvY2tfY2hh
bmdlX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCB2X2JsYW5rX29mX21pbl9hY3RpdmVfZHJhbV9jbG9j
a19jaGFuZ2VfbWFyZ2luOwoxNDQ3NDogIGZsb2F0IHNlY29uZF9taW5fYWN0aXZlX2RyYW1fY2xv
Y2tfY2hhbmdlX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBtaW5fdmJsYW5rX2RyYW1fY2xvY2tfY2hh
bmdlX21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCBkcmFtX2Nsb2NrX2NoYW5nZV9tYXJnaW47CjE0NDc0
OiAgZmxvYXQgZHJhbV9jbG9ja19jaGFuZ2Vfc3VwcG9ydDsKMTQ0NzQ6ICBmbG9hdCB3cl9iYW5k
d2lkdGg7CjE0NDc0OiAgZmxvYXQgbWF4X3VzZWRfYnc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZGNuX3NvY19ib3VuZGluZ19ib3ggewoxNDQ3NDogIGZsb2F0IHNyX2V4aXRfdGlt
ZTsKMTQ0NzQ6ICBmbG9hdCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZTsKMTQ0NzQ6ICBmbG9hdCB1
cmdlbnRfbGF0ZW5jeTsKMTQ0NzQ6ICBmbG9hdCB3cml0ZV9iYWNrX2xhdGVuY3k7CjE0NDc0OiAg
ZmxvYXQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYndfcmVjZWl2ZWRfYWZ0ZXJfdXJnX2xhdGVuY3k7
CjE0NDc0OiAgaW50IG1heF9yZXF1ZXN0X3NpemU7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9tYXgw
cDk7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9ub20wcDg7CjE0NDc0OiAgZmxvYXQgZGNmY2xrdl9t
aWQwcDcyOwoxNDQ3NDogIGZsb2F0IGRjZmNsa3ZfbWluMHA2NTsKMTQ0NzQ6ICBmbG9hdCBtYXhf
ZGlzcGNsa192bWF4MHA5OwoxNDQ3NDogIGZsb2F0IG1heF9kaXNwY2xrX3ZtaWQwcDcyOwoxNDQ3
NDogIGZsb2F0IG1heF9kaXNwY2xrX3Zub20wcDg7CjE0NDc0OiAgZmxvYXQgbWF4X2Rpc3BjbGtf
dm1pbjBwNjU7CjE0NDc0OiAgZmxvYXQgbWF4X2RwcGNsa192bWF4MHA5OwoxNDQ3NDogIGZsb2F0
IG1heF9kcHBjbGtfdm5vbTBwODsKMTQ0NzQ6ICBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwox
NDQ3NDogIGZsb2F0IG1heF9kcHBjbGtfdm1pbjBwNjU7CjE0NDc0OiAgZmxvYXQgc29jY2xrOwox
NDQ3NDogIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm1heDBwOTsKMTQ0NzQ6ICBm
bG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3Zub20wcDg7CjE0NDc0OiAgZmxvYXQgZmFi
cmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bWlkMHA3MjsKMTQ0NzQ6ICBmbG9hdCBmYWJyaWNfYW5k
X2RyYW1fYmFuZHdpZHRoX3ZtaW4wcDY1OwoxNDQ3NDogIGZsb2F0IHBoeWNsa3ZfbWF4MHA5Owox
NDQ3NDogIGZsb2F0IHBoeWNsa3Zfbm9tMHA4OwoxNDQ3NDogIGZsb2F0IHBoeWNsa3ZfbWlkMHA3
MjsKMTQ0NzQ6ICBmbG9hdCBwaHljbGt2X21pbjBwNjU7CjE0NDc0OiAgZmxvYXQgZG93bnNwcmVh
ZGluZzsKMTQ0NzQ6ICBpbnQgcm91bmRfdHJpcF9waW5nX2xhdGVuY3lfY3ljbGVzOwoxNDQ3NDog
IGludCB1cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbDsKMTQ0NzQ6ICBpbnQg
bnVtYmVyX29mX2NoYW5uZWxzOwoxNDQ3NDogIGludCB2bW1fcGFnZV9zaXplOwoxNDQ3NDogIGZs
b2F0IGRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3k7CjE0NDc0OiAgaW50IHJldHVybl9idXNfd2lk
dGg7CjE0NDc0OiAgZmxvYXQgcGVyY2VudF9kaXNwX2J3X2xpbWl0OwoxNDQ3NDogfTsKMTQ0NzQ6
IGV4dGVybiBjb25zdCBzdHJ1Y3QgZGNuX3NvY19ib3VuZGluZ19ib3ggZGNuMTBfc29jX2RlZmF1
bHRzOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNuX2lwX3BhcmFtcyB7CjE0NDc0OiAgZmxvYXQg
cm9iX2J1ZmZlcl9zaXplX2luX2tieXRlOwoxNDQ3NDogIGZsb2F0IGRldF9idWZmZXJfc2l6ZV9p
bl9rYnl0ZTsKMTQ0NzQ6ICBmbG9hdCBkcHBfb3V0cHV0X2J1ZmZlcl9waXhlbHM7CjE0NDc0OiAg
ZmxvYXQgb3BwX291dHB1dF9idWZmZXJfbGluZXM7CjE0NDc0OiAgZmxvYXQgcGl4ZWxfY2h1bmtf
c2l6ZV9pbl9rYnl0ZTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIHB0ZV9lbmFibGU7CjE0NDc0
OiAgaW50IHB0ZV9jaHVua19zaXplOwoxNDQ3NDogIGludCBtZXRhX2NodW5rX3NpemU7CjE0NDc0
OiAgaW50IHdyaXRlYmFja19jaHVua19zaXplOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgb2Rt
X2NhcGFiaWxpdHk7CjE0NDc0OiAgZW51bSBkY25fYndfZGVmcyBkc2NfY2FwYWJpbGl0eTsKMTQ0
NzQ6ICBpbnQgbGluZV9idWZmZXJfc2l6ZTsKMTQ0NzQ6ICBpbnQgbWF4X2xpbmVfYnVmZmVyX2xp
bmVzOwoxNDQ3NDogIGVudW0gZGNuX2J3X2RlZnMgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwox
NDQ3NDogIGludCBsaW5lX2J1ZmZlcl9maXhlZF9icHA7CjE0NDc0OiAgaW50IHdyaXRlYmFja19s
dW1hX2J1ZmZlcl9zaXplOwoxNDQ3NDogIGludCB3cml0ZWJhY2tfY2hyb21hX2J1ZmZlcl9zaXpl
OwoxNDQ3NDogIGludCBtYXhfbnVtX2RwcDsKMTQ0NzQ6ICBpbnQgbWF4X251bV93cml0ZWJhY2s7
CjE0NDc0OiAgaW50IG1heF9kY2h1Yl90b3BzY2xfdGhyb3VnaHB1dDsKMTQ0NzQ6ICBpbnQgbWF4
X3BzY2xfdG9sYl90aHJvdWdocHV0OwoxNDQ3NDogIGludCBtYXhfbGJfdG92c2NsX3Rocm91Z2hw
dXQ7CjE0NDc0OiAgaW50IG1heF92c2NsX3RvaHNjbF90aHJvdWdocHV0OwoxNDQ3NDogIGZsb2F0
IG1heF9oc2NsX3JhdGlvOwoxNDQ3NDogIGZsb2F0IG1heF92c2NsX3JhdGlvOwoxNDQ3NDogIGlu
dCBtYXhfaHNjbF90YXBzOwoxNDQ3NDogIGludCBtYXhfdnNjbF90YXBzOwoxNDQ3NDogIGludCBw
dGVfYnVmZmVyX3NpemVfaW5fcmVxdWVzdHM7CjE0NDc0OiAgZmxvYXQgZGlzcGNsa19yYW1waW5n
X21hcmdpbjsKMTQ0NzQ6ICBmbG9hdCB1bmRlcl9zY2FuX2ZhY3RvcjsKMTQ0NzQ6ICBpbnQgbWF4
X2ludGVyX2Rjbl90aWxlX3JlcGVhdGVyczsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGNhbl92
c3RhcnR1cF9saW5lc19leGNlZWRfdnN5bmNfcGx1c19iYWNrX3BvcmNoX2xpbmVzX21pbnVzX29u
ZTsKMTQ0NzQ6ICBlbnVtIGRjbl9id19kZWZzIGJ1Z19mb3JjaW5nX2x1bWFfYW5kX2Nocm9tYV9y
ZXF1ZXN0X3RvX3NhbWVfc2l6ZV9maXhlZDsKMTQ0NzQ6ICBpbnQgZGNmY2xrX2NzdGF0ZV9sYXRl
bmN5OwoxNDQ3NDogfTsKMTQ0NzQ6IGV4dGVybiBjb25zdCBzdHJ1Y3QgZGNuX2lwX3BhcmFtcyBk
Y24xMF9pcF9kZWZhdWx0czsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkY25fdmFsaWRhdGVfYmFuZHdp
ZHRoKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNv
bnRleHQsCjE0NDc0OiAgIGJvb2wgZmFzdF92YWxpZGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6IHVuc2ln
bmVkIGludCBkY25fZmluZF9kY2ZjbGtfc3VpdHNfYWxsKAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBk
YyAqZGMsCjE0NDc0OiAgc3RydWN0IGRjX2Nsb2NrcyAqY2xvY2tzKTsKMTQ0NzQ6IAoxNDQ3NDog
dm9pZCBkY25fYndfdXBkYXRlX2Zyb21fcHBsaWIoc3RydWN0IGRjICpkYyk7CjE0NDc0OiB2b2lk
IGRjbl9id19ub3RpZnlfcHBsaWJfb2Zfd21fcmFuZ2VzKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDog
dm9pZCBkY25fYndfc3luY19jYWxjc19hbmRfZG1sKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDogCjE0
NDc0OiBlbnVtIHNvdXJjZV9tYWNyb190aWxlX3NpemUgc3dpenpsZV9tb2RlX3RvX21hY3JvX3Rp
bGVfc2l6ZShlbnVtIHN3aXp6bGVfbW9kZV92YWx1ZXMgc3dfbW9kZSk7CjE0NDc0OiAjIDMyICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMu
aCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIiAxCjE0NDc0OiAjIDM3ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIgox
NDQ3NDogZW51bSBkZGNfcmVzdWx0IHsKMTQ0NzQ6ICBERENfUkVTVUxUX1VOS05PV04gPSAwLAox
NDQ3NDogIEREQ19SRVNVTFRfU1VDRVNTRlVMTCwKMTQ0NzQ6ICBERENfUkVTVUxUX0ZBSUxFRF9D
SEFOTkVMX0JVU1ksCjE0NDc0OiAgRERDX1JFU1VMVF9GQUlMRURfVElNRU9VVCwKMTQ0NzQ6ICBE
RENfUkVTVUxUX0ZBSUxFRF9QUk9UT0NPTF9FUlJPUiwKMTQ0NzQ6ICBERENfUkVTVUxUX0ZBSUxF
RF9OQUNLLAoxNDQ3NDogIEREQ19SRVNVTFRfRkFJTEVEX0lOQ09NUExFVEUsCjE0NDc0OiAgRERD
X1JFU1VMVF9GQUlMRURfT1BFUkFUSU9OLAoxNDQ3NDogIEREQ19SRVNVTFRfRkFJTEVEX0lOVkFM
SURfT1BFUkFUSU9OLAoxNDQ3NDogIEREQ19SRVNVTFRfRkFJTEVEX0JVRkZFUl9PVkVSRkxPVywK
MTQ0NzQ6ICBERENfUkVTVUxUX0ZBSUxFRF9IUERfRElTQ09OCjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBlbnVtIGRkY19zZXJ2aWNlX3R5cGUgewoxNDQ3NDogIEREQ19TRVJWSUNFX1RZUEVfQ09O
TkVDVE9SLAoxNDQ3NDogIEREQ19TRVJWSUNFX1RZUEVfRElTUExBWV9QT1JUX01TVCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaXNwbGF5
X3NpbmtfY2FwYWJpbGl0eSB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5
cGUgZG9uZ2xlX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogIHVpbnQzMl90IGRvd25zdHJtX3NpbmtfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGJvb2wgZG93bnN0cm1fc2lua19jb3VudF92YWxpZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgdWludDMyX3QgYWRkaXRpb25hbF9hdWRpb19kZWxheTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQz
Ml90IGF1ZGlvX2xhdGVuY3k7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCB2aWRlb19sYXRlbmN5
X2ludGVybGFjZTsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IHZpZGVvX2xhdGVuY3lfcHJvZ3Jl
c3NpdmU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBtYXhfaGRtaV9waXhlbF9jbG9jazsKMTQ0
NzQ6IAoxNDQ3NDogIGVudW0gZGNfY29sb3JfZGVwdGggbWF4X2hkbWlfZGVlcF9jb2xvcjsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBzc19zdXBw
b3J0ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBkcF9saW5rX2xhbmVfY291bnQ7CjE0NDc0
OiAgdWludDMyX3QgZHBfbGlua19yYXRlOwoxNDQ3NDogIHVpbnQzMl90IGRwX2xpbmtfc3BlYWQ7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBpc19kcF9oZG1pX3MzZF9jb252
ZXJ0ZXI7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgaXNfZWRwX3NpbmtfY2FwX3ZhbGlk
OwoxNDQ3NDogCjE0NDc0OiAgZW51bSBkZGNfdHJhbnNhY3Rpb25fdHlwZSB0cmFuc2FjdGlvbl90
eXBlOwoxNDQ3NDogIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGF2X3N5bmNfZGF0YSB7CjE0NDc0OiAgdWludDhfdCBhdl9ncmFudWxhcml0
eTsKMTQ0NzQ6ICB1aW50OF90IGF1ZF9kZWNfbGF0MTsKMTQ0NzQ6ICB1aW50OF90IGF1ZF9kZWNf
bGF0MjsKMTQ0NzQ6ICB1aW50OF90IGF1ZF9wcF9sYXQxOwoxNDQ3NDogIHVpbnQ4X3QgYXVkX3Bw
X2xhdDI7CjE0NDc0OiAgdWludDhfdCB2aWRfaW50ZXJfbGF0OwoxNDQ3NDogIHVpbnQ4X3Qgdmlk
X3Byb2dfbGF0OwoxNDQ3NDogIHVpbnQ4X3QgYXVkX2RlbF9pbnMxOwoxNDQ3NDogIHVpbnQ4X3Qg
YXVkX2RlbF9pbnMyOwoxNDQ3NDogIHVpbnQ4X3QgYXVkX2RlbF9pbnMzOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgY29uc3QgdWludDhfdCBEUF9WR0FfTFZEU19DT05W
RVJURVJfSURfMltdID0gInNpdmFyVCI7CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyBjb25zdCB1aW50
OF90IERQX1ZHQV9MVkRTX0NPTlZFUlRFUl9JRF8zW10gPSAiZG5vbWxBIjsKMTQ0NzQ6IAoxNDQ3
NDogc3RhdGljIGNvbnN0IHVpbnQ4X3QgRFBfRFZJX0NPTlZFUlRFUl9JRF80W10gPSAibTJEVklh
IjsKMTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvY29yZV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaCIgMQoxNDQ3NDog
IyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9t
ZW1faW5wdXQuaCIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfc3RydWN0cy5oIiAxCjE0NDc0OiAjIDMyICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5o
IiAyCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY2h1Yl9pbml0X2RhdGE7CjE0NDc0OiBzdHJ1Y3Qg
Y3N0YXRlX3BzdGF0ZV93YXRlcm1hcmtzX3N0IHsKMTQ0NzQ6ICB1aW50MzJfdCBjc3RhdGVfZXhp
dF9uczsKMTQ0NzQ6ICB1aW50MzJfdCBjc3RhdGVfZW50ZXJfcGx1c19leGl0X25zOwoxNDQ3NDog
IHVpbnQzMl90IHBzdGF0ZV9jaGFuZ2VfbnM7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgZGNuX3dhdGVybWFya3MgewoxNDQ3NDogIHVpbnQzMl90IHB0ZV9tZXRhX3VyZ2VudF9uczsK
MTQ0NzQ6ICB1aW50MzJfdCB1cmdlbnRfbnM7CjE0NDc0OiAgdWludDMyX3QgZnJhY191cmdfYndf
bm9tOwoxNDQ3NDogIHVpbnQzMl90IGZyYWNfdXJnX2J3X2ZsaXA7CjE0NDc0OiAgaW50MzJfdCB1
cmdlbnRfbGF0ZW5jeV9uczsKMTQ0NzQ6ICBzdHJ1Y3QgY3N0YXRlX3BzdGF0ZV93YXRlcm1hcmtz
X3N0IGNzdGF0ZV9wc3RhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNuX3dh
dGVybWFya19zZXQgewoxNDQ3NDogIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBhOwoxNDQ3NDogIHN0
cnVjdCBkY25fd2F0ZXJtYXJrcyBiOwoxNDQ3NDogIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBjOwox
NDQ3NDogIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
c3RydWN0IGRjZV93YXRlcm1hcmtzIHsKMTQ0NzQ6ICBpbnQgYV9tYXJrOwoxNDQ3NDogIGludCBi
X21hcms7CjE0NDc0OiAgaW50IGNfbWFyazsKMTQ0NzQ6ICBpbnQgZF9tYXJrOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN0dXR0ZXJfbW9kZXMgewoxNDQ3NDogIGJvb2wgZW5oYW5j
ZWQ7CjE0NDc0OiAgYm9vbCBxdWFkX2RtaWZfYnVmZmVyOwoxNDQ3NDogIGJvb2wgd2F0ZXJtYXJr
X25iX3BzdGF0ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtZW1faW5wdXQgewox
NDQ3NDogIGNvbnN0IHN0cnVjdCBtZW1faW5wdXRfZnVuY3MgKmZ1bmNzOwoxNDQ3NDogIHN0cnVj
dCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgcmVxdWVz
dF9hZGRyZXNzOwoxNDQ3NDogIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIGN1cnJlbnRfYWRkcmVz
czsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6ICBzdHJ1Y3Qgc3R1dHRlcl9tb2RlcyBzdHV0dGVy
X21vZGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJl
X3BhcmFtIHsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2VyIHN5c19kZWZhdWx0OwoxNDQ3NDog
IHVuaW9uIGxhcmdlX2ludGVnZXIgc3lzX2xvdzsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2Vy
IHN5c19oaWdoOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHZtX2NvbnRleHQwX3Bh
cmFtIHsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2VyIHB0ZV9iYXNlOwoxNDQ3NDogIHVuaW9u
IGxhcmdlX2ludGVnZXIgcHRlX3N0YXJ0OwoxNDQ3NDogIHVuaW9uIGxhcmdlX2ludGVnZXIgcHRl
X2VuZDsKMTQ0NzQ6ICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGZhdWx0X2RlZmF1bHQ7CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbWVtX2lucHV0X2Z1bmNzIHsKMTQ0NzQ6ICB2b2lkICgq
bWVtX2lucHV0X3NldHVwKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwK
MTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywK
MTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywK
MTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3JlZ3MsCjE0
NDc0OiAgICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpwaXBl
X2Rlc3QpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRjY19jb250cm9sKShzdHJ1Y3QgbWVtX2lu
cHV0ICptZW1faW5wdXQsIGJvb2wgZW5hYmxlLAoxNDQ3NDogICAgYm9vbCBpbmRlcGVuZGVudF82
NGJfYmxrcyk7CjE0NDc0OiAgdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKMTQ0NzQ6ICAg
IHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCByZWN0
ICp2aWV3cG9ydCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCByZWN0ICp2aWV3cG9ydF9jKTsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKCptZW1faW5wdXRfcHJvZ3JhbV9kaXNwbGF5X21hcmtzKSgKMTQ0
NzQ6ICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAoxNDQ3NDogICBzdHJ1Y3QgZGNlX3dh
dGVybWFya3MgbmJwLAoxNDQ3NDogICBzdHJ1Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlciwKMTQ0
NzQ6ICAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJfZW50ZXIsCjE0NDc0OiAgIHN0cnVj
dCBkY2Vfd2F0ZXJtYXJrcyB1cmdlbnQsCjE0NDc0OiAgIHVpbnQzMl90IHRvdGFsX2Rlc3RfbGlu
ZV90aW1lX25zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCptZW1faW5wdXRfcHJvZ3JhbV9jaHJv
bWFfZGlzcGxheV9tYXJrcykoCjE0NDc0OiAgICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQs
CjE0NDc0OiAgICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgbmJwLAoxNDQ3NDogICAgc3RydWN0IGRj
ZV93YXRlcm1hcmtzIHN0dXR0ZXIsCjE0NDc0OiAgICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgdXJn
ZW50LAoxNDQ3NDogICAgdWludDMyX3QgdG90YWxfZGVzdF9saW5lX3RpbWVfbnMpOwoxNDQ3NDog
CjE0NDc0OiAgdm9pZCAoKmFsbG9jYXRlX21lbV9pbnB1dCkoCjE0NDc0OiAgIHN0cnVjdCBtZW1f
aW5wdXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAgdWludDMyX3QgaF90b3RhbCwKMTQ0NzQ6ICAgdWlu
dDMyX3Qgdl90b3RhbCwKMTQ0NzQ6ICAgdWludDMyX3QgcGl4X2Nsa19raHosCjE0NDc0OiAgIHVp
bnQzMl90IHRvdGFsX3N0cmVhbXNfbnVtKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpmcmVlX21l
bV9pbnB1dCkoCjE0NDc0OiAgIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAg
dWludDMyX3QgcGF0aHNfbnVtKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCptZW1faW5wdXRfcHJv
Z3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIpKAoxNDQ3NDogICBzdHJ1Y3QgbWVtX2lucHV0ICpt
ZW1faW5wdXQsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNz
LAoxNDQ3NDogICBib29sIGZsaXBfaW1tZWRpYXRlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpt
ZW1faW5wdXRfcHJvZ3JhbV9wdGVfdm0pKAoxNDQ3NDogICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1f
aW5wdXQsCjE0NDc0OiAgIGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0LAoxNDQ3NDog
ICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCjE0NDc0OiAgIGVudW0gZGNfcm90
YXRpb25fYW5nbGUgcm90YXRpb24pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKm1lbV9pbnB1dF9z
ZXRfdm1fc3lzdGVtX2FwZXJ0dXJlX3NldHRpbmdzKSgKMTQ0NzQ6ICAgIHN0cnVjdCBtZW1faW5w
dXQgKm1lbV9pbnB1dCwKMTQ0NzQ6ICAgIHN0cnVjdCB2bV9zeXN0ZW1fYXBlcnR1cmVfcGFyYW0g
KmFwdCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqbWVtX2lucHV0X3NldF92bV9jb250ZXh0MF9z
ZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQsCjE0NDc0OiAg
ICBjb25zdCBzdHJ1Y3Qgdm1fY29udGV4dDBfcGFyYW0gKnZtMCk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqbWVtX2lucHV0X3Byb2dyYW1fc3VyZmFjZV9jb25maWcpKAoxNDQ3NDogICBzdHJ1Y3Qg
bWVtX2lucHV0ICptZW1faW5wdXQsCjE0NDc0OiAgIGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQg
Zm9ybWF0LAoxNDQ3NDogICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCjE0NDc0
OiAgIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAoxNDQ3NDogICBlbnVtIGRjX3JvdGF0
aW9uX2FuZ2xlIHJvdGF0aW9uLAoxNDQ3NDogICBzdHJ1Y3QgZGNfcGxhbmVfZGNjX3BhcmFtICpk
Y2MsCjE0NDc0OiAgIGJvb2wgaG9yaXpvbnRhbF9taXJyb3IpOwoxNDQ3NDogCjE0NDc0OiAgYm9v
bCAoKm1lbV9pbnB1dF9pc19mbGlwX3BlbmRpbmcpKHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1
dCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqbWVtX2lucHV0X3VwZGF0ZV9kY2h1Yikoc3RydWN0
IG1lbV9pbnB1dCAqbWVtX2lucHV0LAoxNDQ3NDogICAgIHN0cnVjdCBkY2h1Yl9pbml0X2RhdGEg
KmRoX2RhdGEpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9ibGFuaykoc3RydWN0IG1lbV9p
bnB1dCAqbWksIGJvb2wgYmxhbmspOwoxNDQ3NDogIHZvaWQgKCpzZXRfaHVicF9ibGFua19lbiko
c3RydWN0IG1lbV9pbnB1dCAqbWksIGJvb2wgYmxhbmspOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KnNldF9jdXJzb3JfYXR0cmlidXRlcykoCjE0NDc0OiAgICBzdHJ1Y3QgbWVtX2lucHV0ICptZW1f
aW5wdXQsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgKmF0dHIp
OwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9jdXJzb3JfcG9zaXRpb24pKAoxNDQ3NDogICAg
c3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IGRjX2N1
cnNvcl9wb3NpdGlvbiAqcG9zLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9taV9w
YXJhbSAqcGFyYW0pOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiIDIKMTQ0NzQ6
ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9o
dWJwLmgiIDEKMTQ0NzQ6ICMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvaHcvaHVicC5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21lbV9pbnB1dC5oIiAxCjE0NDc0OiAjIDMwICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h1YnAuaCIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGN1cnNvcl9waXRj
aCB7CjE0NDc0OiAgQ1VSU09SX1BJVENIXzY0X1BJWEVMUyA9IDAsCjE0NDc0OiAgQ1VSU09SX1BJ
VENIXzEyOF9QSVhFTFMsCjE0NDc0OiAgQ1VSU09SX1BJVENIXzI1Nl9QSVhFTFMKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gY3Vyc29yX2xpbmVzX3Blcl9jaHVuayB7CjE0NDc0OiAgQ1VS
U09SX0xJTkVfUEVSX0NIVU5LXzEgPSAwLAoxNDQ3NDogIENVUlNPUl9MSU5FX1BFUl9DSFVOS18y
ID0gMSwKMTQ0NzQ6ICBDVVJTT1JfTElORV9QRVJfQ0hVTktfNCwKMTQ0NzQ6ICBDVVJTT1JfTElO
RV9QRVJfQ0hVTktfOCwKMTQ0NzQ6ICBDVVJTT1JfTElORV9QRVJfQ0hVTktfMTYKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gaHVicF9pbmRfYmxvY2tfc2l6ZSB7CjE0NDc0OiAgaHVicF9p
bmRfYmxvY2tfdW5jb25zdHJhaW5lZCA9IDAsCjE0NDc0OiAgaHVicF9pbmRfYmxvY2tfNjRiLAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGh1YnAgewoxNDQ3NDogIGNvbnN0IHN0cnVj
dCBodWJwX2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3
NDogIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIHJlcXVlc3RfYWRkcmVzczsKMTQ0NzQ6ICBpbnQg
aW5zdDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgaW50IG9wcF9pZDsKMTQ0NzQ6ICBpbnQgbXBj
Y19pZDsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgY3Vyc19hdHRyOwoxNDQ3
NDogIGJvb2wgcG93ZXJfZ2F0ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgc3Vy
ZmFjZV9mbGlwX3JlZ2lzdGVycyB7CjE0NDc0OiAgdWludDMyX3QgRENTVVJGX1NVUkZBQ0VfQ09O
VFJPTDsKMTQ0NzQ6ICB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVT
U19ISUdIOwoxNDQ3NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERS
RVNTOwoxNDQ3NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdI
OwoxNDQ3NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUzsKMTQ0NzQ6
ICB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9NRVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIX0M7CjE0
NDc0OiAgdWludDMyX3QgRENTVVJGX1BSSU1BUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfQzsKMTQ0
NzQ6ICB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DOwoxNDQ3
NDogIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19DOwoxNDQ3NDogIHVp
bnQzMl90IERDU1VSRl9TRUNPTkRBUllfTUVUQV9TVVJGQUNFX0FERFJFU1NfSElHSDsKMTQ0NzQ6
ICB1aW50MzJfdCBEQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTOwoxNDQ3NDog
IHVpbnQzMl90IERDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0g7CjE0NDc0OiAg
dWludDMyX3QgRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1M7CjE0NDc0OiAgYm9vbCB0
bXpfc3VyZmFjZTsKMTQ0NzQ6ICBib29sIGltbWVkaWF0ZTsKMTQ0NzQ6ICB1aW50OF90IHZtaWQ7
CjE0NDc0OiAgYm9vbCBncnBoX3N0ZXJlbzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBodWJwX2Z1bmNzIHsKMTQ0NzQ6ICB2b2lkICgqaHVicF9zZXR1cCkoCjE0NDc0OiAgICBzdHJ1
Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdz
X3N0ICpkbGdfcmVncywKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdz
X3N0ICp0dHVfcmVncywKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nf
c3QgKnJxX3JlZ3MsCjE0NDc0OiAgICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3Rf
cGFyYW1zX3N0ICpwaXBlX2Rlc3QpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmh1YnBfc2V0dXBf
aW50ZXJkZXBlbmRlbnQpKAoxNDQ3NDogICAgc3RydWN0IGh1YnAgKmh1YnAsCjE0NDc0OiAgICBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX3JlZ3MsCjE0NDc0OiAgICBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCAqdHR1X3JlZ3MpOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKmRjY19jb250cm9sKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBlbmFibGUs
CjE0NDc0OiAgICBlbnVtIGh1YnBfaW5kX2Jsb2NrX3NpemUgYmxrX3NpemUpOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBodWJw
ICpodWJwLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0LAoxNDQ3NDogICAg
Y29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0X2MpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmFw
cGx5X1BMQVRfNTQxODZfd2EpKHN0cnVjdCBodWJwICpodWJwLAoxNDQ3NDogICAgY29uc3Qgc3Ry
dWN0IGRjX3BsYW5lX2FkZHJlc3MgKmFkZHJlc3MpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmh1
YnBfcHJvZ3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIpKAoxNDQ3NDogICBzdHJ1Y3QgaHVicCAq
aHVicCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgKmFkZHJlc3MsCjE0
NDc0OiAgIGJvb2wgZmxpcF9pbW1lZGlhdGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmh1YnBf
cHJvZ3JhbV9wdGVfdm0pKAoxNDQ3NDogICBzdHJ1Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgZW51
bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCjE0NDc0OiAgIHVuaW9uIGRjX3RpbGluZ19p
bmZvICp0aWxpbmdfaW5mbywKMTQ0NzQ6ICAgZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlv
bik7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaHVicF9zZXRfdm1fc3lzdGVtX2FwZXJ0dXJlX3Nl
dHRpbmdzKSgKMTQ0NzQ6ICAgIHN0cnVjdCBodWJwICpodWJwLAoxNDQ3NDogICAgc3RydWN0IHZt
X3N5c3RlbV9hcGVydHVyZV9wYXJhbSAqYXB0KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpodWJw
X3NldF92bV9jb250ZXh0MF9zZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgaHVicCAqaHVicCwK
MTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCB2bV9jb250ZXh0MF9wYXJhbSAqdm0wKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpodWJwX3Byb2dyYW1fc3VyZmFjZV9jb25maWcpKAoxNDQ3NDogICBzdHJ1
Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQs
CjE0NDc0OiAgIHVuaW9uIGRjX3RpbGluZ19pbmZvICp0aWxpbmdfaW5mbywKMTQ0NzQ6ICAgc3Ry
dWN0IHBsYW5lX3NpemUgKnBsYW5lX3NpemUsCjE0NDc0OiAgIGVudW0gZGNfcm90YXRpb25fYW5n
bGUgcm90YXRpb24sCjE0NDc0OiAgIHN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gKmRjYywKMTQ0
NzQ6ICAgYm9vbCBob3Jpem9udGFsX21pcnJvciwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IGNvbXBh
X2xldmVsKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpodWJwX2lzX2ZsaXBfcGVuZGluZykoc3Ry
dWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9ibGFuaykoc3RydWN0
IGh1YnAgKmh1YnAsIGJvb2wgYmxhbmspOwoxNDQ3NDogIHZvaWQgKCpzZXRfaHVicF9ibGFua19l
bikoc3RydWN0IGh1YnAgKmh1YnAsIGJvb2wgYmxhbmspOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KnNldF9jdXJzb3JfYXR0cmlidXRlcykoCjE0NDc0OiAgICBzdHJ1Y3QgaHVicCAqaHVicCwKMTQ0
NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyAqYXR0cik7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqc2V0X2N1cnNvcl9wb3NpdGlvbikoCjE0NDc0OiAgICBzdHJ1Y3QgaHVi
cCAqaHVicCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfcG9zaXRpb24gKnBvcywK
MTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfbWlfcGFyYW0gKnBhcmFtKTsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCpodWJwX2Rpc2Nvbm5lY3QpKHN0cnVjdCBodWJwICpodWJwKTsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKCpodWJwX2Nsa19jbnRsKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9v
bCBlbmFibGUpOwoxNDQ3NDogIHZvaWQgKCpodWJwX3Z0Z19zZWwpKHN0cnVjdCBodWJwICpodWJw
LCB1aW50MzJfdCBvdGdfaW5zdCk7CjE0NDc0OiAgdm9pZCAoKmh1YnBfcmVhZF9zdGF0ZSkoc3Ry
dWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogIHZvaWQgKCpodWJwX2NsZWFyX3VuZGVyZmxvdykoc3Ry
dWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogIHZvaWQgKCpodWJwX2Rpc2FibGVfY29udHJvbCkoc3Ry
dWN0IGh1YnAgKmh1YnAsIGJvb2wgZGlzYWJsZV9odWJwKTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQg
KCpodWJwX2dldF91bmRlcmZsb3dfc3RhdHVzKShzdHJ1Y3QgaHVicCAqaHVicCk7CjE0NDc0OiAg
dm9pZCAoKmh1YnBfaW5pdCkoc3RydWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogCjE0NDc0OiAgdm9p
ZCAoKmRtZGF0YV9zZXRfYXR0cmlidXRlcykoCjE0NDc0OiAgICBzdHJ1Y3QgaHVicCAqaHVicCwK
MTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkY19kbWRhdGFfYXR0cmlidXRlcyAqYXR0cik7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqZG1kYXRhX2xvYWQpKAoxNDQ3NDogICAgc3RydWN0IGh1YnAgKmh1
YnAsCjE0NDc0OiAgICB1aW50MzJfdCBkbWRhdGFfc3dfc2l6ZSwKMTQ0NzQ6ICAgIGNvbnN0IHVp
bnQzMl90ICpkbWRhdGFfc3dfZGF0YSk7CjE0NDc0OiAgYm9vbCAoKmRtZGF0YV9zdGF0dXNfZG9u
ZSkoc3RydWN0IGh1YnAgKmh1YnApOwoxNDQ3NDogIHZvaWQgKCpodWJwX2VuYWJsZV90cmlwbGVC
dWZmZXIpKAoxNDQ3NDogICBzdHJ1Y3QgaHVicCAqaHVicCwKMTQ0NzQ6ICAgYm9vbCBlbmFibGUp
OwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmh1YnBfaXNfdHJpcGxlYnVmZmVyX2VuYWJsZWQpKAox
NDQ3NDogICBzdHJ1Y3QgaHVicCAqaHVicCk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaHVicF9z
ZXRfZmxpcF9jb250cm9sX3N1cmZhY2VfZ3NsKSgKMTQ0NzQ6ICAgc3RydWN0IGh1YnAgKmh1YnAs
CjE0NDc0OiAgIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCp2YWxpZGF0ZV9k
bWxfb3V0cHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBodWJwICpodWJwLAoxNDQ3NDogICAgc3RydWN0
IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3Jl
Z3Nfc3QgKmRtbF9ycV9yZWdzLAoxNDQ3NDogICAgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGxn
X3JlZ3Nfc3QgKmRtbF9kbGdfYXR0ciwKMTQ0NzQ6ICAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5
X3R0dV9yZWdzX3N0ICpkbWxfdHR1X2F0dHIpOwoxNDQ3NDogCjE0NDc0OiB9OwoxNDQ3NDogIyAz
NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5
cGVzLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIiAxCjE0NDc0OiAjIDM4ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDog
CjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9p
bmMvaHcvZHdiLmgiIDEKMTQ0NzQ6ICMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9pbmMvaHcvZHdiLmgiCjE0NDc0OiBzdHJ1Y3QgbWNpZl93YjsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBkY2VfdmVyc2lvbjsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkd2Jfc3dfdmVy
c2lvbiB7CjE0NDc0OiAgZHdiX3Zlcl8xXzAgPSAxLAoxNDQ3NDogIGR3Yl92ZXJfMl8wID0gMiwK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHdiX3NvdXJjZSB7CjE0NDc0OiAgZHdiX3Ny
Y19zY2wgPSAwLAoxNDQ3NDogIGR3Yl9zcmNfYmxuZCwKMTQ0NzQ6ICBkd2Jfc3JjX2ZtdCwKMTQ0
NzQ6ICBkd2Jfc3JjX290ZzAgPSAweDEwMCwKMTQ0NzQ6ICBkd2Jfc3JjX290ZzEsCjE0NDc0OiAg
ZHdiX3NyY19vdGcyLAoxNDQ3NDogIGR3Yl9zcmNfb3RnMywKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogZW51bSBkd2JfcGlwZSB7CjE0NDc0OiAgZHdiX3BpcGUwID0gMCwKMTQ0NzQ6
IAoxNDQ3NDogIGR3Yl9waXBlMSwKMTQ0NzQ6IAoxNDQ3NDogIGR3Yl9waXBlX21heF9udW0sCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGR3Yl9mcmFtZV9jYXB0dXJlX2VuYWJsZSB7CjE0
NDc0OiAgRFdCX0ZSQU1FX0NBUFRVUkVfRElTQUJMRSA9IDAsCjE0NDc0OiAgRFdCX0ZSQU1FX0NB
UFRVUkVfRU5BQkxFID0gMSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gd2JzY2xfY29l
Zl9maWx0ZXJfdHlwZV9zZWwgewoxNDQ3NDogIFdCU0NMX0NPRUZfTFVNQV9WRVJUX0ZJTFRFUiA9
IDAsCjE0NDc0OiAgV0JTQ0xfQ09FRl9DSFJPTUFfVkVSVF9GSUxURVIgPSAxLAoxNDQ3NDogIFdC
U0NMX0NPRUZfTFVNQV9IT1JaX0ZJTFRFUiA9IDIsCjE0NDc0OiAgV0JTQ0xfQ09FRl9DSFJPTUFf
SE9SWl9GSUxURVIgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
d2Jfd2FybXVwX3BhcmFtcyB7CjE0NDc0OiAgYm9vbCB3YXJtdXBfZW47CjE0NDc0OiAgYm9vbCB3
YXJtdXBfbW9kZTsKMTQ0NzQ6ICBib29sIHdhcm11cF9kZXB0aDsKMTQ0NzQ6ICBpbnQgd2FybXVw
X2RhdGE7CjE0NDc0OiAgaW50IHdhcm11cF93aWR0aDsKMTQ0NzQ6ICBpbnQgd2FybXVwX2hlaWdo
dDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkd2JfY2FwcyB7CjE0NDc0OiAgZW51
bSBkY2VfdmVyc2lvbiBod192ZXJzaW9uOwoxNDQ3NDogIGVudW0gZHdiX3N3X3ZlcnNpb24gc3df
dmVyc2lvbjsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWRbNl07CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IGFkYXB0ZXJfaWQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IG51bV9waXBlczsKMTQ0NzQ6
ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9kd2IgOjE7CjE0NDc0OiAg
IHVuc2lnbmVkIGludCBzdXBwb3J0X29nYW0gOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBzdXBw
b3J0X3dic2NsIDoxOwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9vY3NjIDoxOwoxNDQ3
NDogICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9zdGVyZW8gOjE7CjE0NDc0OiAgfSBjYXBzOwoxNDQ3
NDogIHVuc2lnbmVkIGludCByZXNlcnZlZDJbOV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgZHdiYyB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGR3YmNfZnVuY3MgKmZ1bmNzOwoxNDQ3
NDogIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgaW50IGluc3Q7CjE0NDc0OiAgc3Ry
dWN0IG1jaWZfd2IgKm1jaWY7CjE0NDc0OiAgYm9vbCBzdGF0dXM7CjE0NDc0OiAgaW50IGlucHV0
U3JjU2VsZWN0OwoxNDQ3NDogIGJvb2wgZHdiX291dHB1dF9ibGFjazsKMTQ0NzQ6ICBlbnVtIGRj
X3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0ZjsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX3NwYWNl
IG91dHB1dF9jb2xvcl9zcGFjZTsKMTQ0NzQ6ICBib29sIGR3Yl9pc19lZmNfdHJhbnNpdGlvbjsK
MTQ0NzQ6ICBib29sIGR3Yl9pc19kcmM7CjE0NDc0OiAgaW50IHdiX3NyY19wbGFuZV9pbnN0Owox
NDQ3NDogIGJvb2wgdXBkYXRlX3ByaXZhY3ltYXNrOwoxNDQ3NDogIHVpbnQzMl90IG1hc2tfaWQ7
CjE0NDc0OiAgICAgICAgIGludCBvdGdfaW5zdDsKMTQ0NzQ6ICAgICAgICAgYm9vbCBtdmNfY2Zn
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGR3YmNfZnVuY3MgewoxNDQ3NDogIGJv
b2wgKCpnZXRfY2FwcykoCjE0NDc0OiAgIHN0cnVjdCBkd2JjICpkd2JjLAoxNDQ3NDogICBzdHJ1
Y3QgZHdiX2NhcHMgKmNhcHMpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmVuYWJsZSkoCjE0NDc0
OiAgIHN0cnVjdCBkd2JjICpkd2JjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyAqcGFy
YW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIGJvb2wgKCpkaXNhYmxlKShzdHJ1Y3QgZHdiYyAqZHdiYyk7
CjE0NDc0OiAKMTQ0NzQ6ICBib29sICgqdXBkYXRlKSgKMTQ0NzQ6ICAgc3RydWN0IGR3YmMgKmR3
YmMsCjE0NDc0OiAgIHN0cnVjdCBkY19kd2JfcGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogCjE0NDc0
OiAgYm9vbCAoKmlzX2VuYWJsZWQpKAoxNDQ3NDogICBzdHJ1Y3QgZHdiYyAqZHdiYyk7CjE0NDc0
OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X3N0ZXJlbykoCjE0NDc0OiAgIHN0cnVjdCBkd2JjICpkd2Jj
LAoxNDQ3NDogICBzdHJ1Y3QgZHdiX3N0ZXJlb19wYXJhbXMgKnN0ZXJlb19wYXJhbXMpOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKnNldF9uZXdfY29udGVudCkoCjE0NDc0OiAgIHN0cnVjdCBkd2Jj
ICpkd2JjLAoxNDQ3NDogICBib29sIGlzX25ld19jb250ZW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKnNldF93YXJtdXApKAoxNDQ3NDogICBzdHJ1Y3QgZHdiYyAqZHdiYywKMTQ0
NzQ6ICAgc3RydWN0IGR3Yl93YXJtdXBfcGFyYW1zICp3YXJtdXBfcGFyYW1zKTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAgYm9vbCAoKmdldF9kd2Jfc3RhdHVzKSgKMTQ0NzQ6ICAgc3RydWN0IGR3
YmMgKmR3YmMpOwoxNDQ3NDogIHZvaWQgKCpkd2Jfc2V0X3NjYWxlcikoCjE0NDc0OiAgIHN0cnVj
dCBkd2JjICpkd2JjLAoxNDQ3NDogICBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyAqcGFyYW1zKTsKMTQ0
NzQ6IH07CjE0NDc0OiAjIDQwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21jaWZfd2IuaCIgMQoxNDQ3NDogIyAzMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tY2lmX3di
LmgiCjE0NDc0OiBlbnVtIG1taHViYnViX3diaWZfbW9kZSB7CjE0NDc0OiAgUEFDS0VEXzQ0NCA9
IDAsCjE0NDc0OiAgUEFDS0VEXzQ0NF9GUDE2ID0gMSwKMTQ0NzQ6ICBQTEFOQVJfNDIwXzhCUEMg
PSAyLAoxNDQ3NDogIFBMQU5BUl80MjBfMTBCUEMgPSAzCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgbWNpZl9hcmJfcGFyYW1zIHsKMTQ0NzQ6IAoxNDQ3NDogIHVuc2lnbmVkIGludCB0
aW1lX3Blcl9waXhlbDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgY2xpX3dhdGVybWFya1s0XTsKMTQ0
NzQ6ICB1bnNpZ25lZCBpbnQgcHN0YXRlX3dhdGVybWFya1s0XTsKMTQ0NzQ6ICB1bnNpZ25lZCBp
bnQgYXJiaXRyYXRpb25fc2xpY2U7CjE0NDc0OiAgdW5zaWduZWQgaW50IHNsaWNlX2xpbmVzOwox
NDQ3NDogIHVuc2lnbmVkIGludCBtYXhfc2NhbGVkX3RpbWU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgbWNpZl9pcnFfcGFyYW1zIHsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc3dfaW50
X2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCBzd19zbGljZV9pbnRfZW47CjE0NDc0OiAgdW5zaWdu
ZWQgaW50IHN3X292ZXJydW5faW50X2VuOwoxNDQ3NDogIHVuc2lnbmVkIGludCB2Y2VfaW50X2Vu
OwoxNDQ3NDogIHVuc2lnbmVkIGludCB2Y2Vfc2xpY2VfaW50X2VuOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBtY2lmX3diX2ZyYW1lX2R1bXBfaW5mbyB7
CjE0NDc0OiAgdW5zaWduZWQgaW50IHNpemU7CjE0NDc0OiAgdW5zaWduZWQgaW50IHdpZHRoOwox
NDQ3NDogIHVuc2lnbmVkIGludCBoZWlnaHQ7CjE0NDc0OiAgdW5zaWduZWQgaW50IGx1bWFfcGl0
Y2g7CjE0NDc0OiAgdW5zaWduZWQgaW50IGNocm9tYV9waXRjaDsKMTQ0NzQ6ICBlbnVtIGR3Yl9z
Y2FsZXJfbW9kZSBmb3JtYXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgbWNpZl93
YiB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IG1jaWZfd2JfZnVuY3MgKmZ1bmNzOwoxNDQ3NDogIHN0
cnVjdCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgaW50IGluc3Q7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgbWNpZl93Yl9mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZW5h
YmxlX21jaWYpKHN0cnVjdCBtY2lmX3diICptY2lmX3diKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpkaXNhYmxlX21jaWYpKHN0cnVjdCBtY2lmX3diICptY2lmX3diKTsKMTQ0NzQ6IAoxNDQ3NDog
IHZvaWQgKCpjb25maWdfbWNpZl9idWYpKAoxNDQ3NDogICBzdHJ1Y3QgbWNpZl93YiAqbWNpZl93
YiwKMTQ0NzQ6ICAgc3RydWN0IG1jaWZfYnVmX3BhcmFtcyAqcGFyYW1zLAoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgZGVzdF9oZWlnaHQpOwoxNDQ3NDogCjE0NDc0OiAgIHZvaWQgKCpjb25maWdfbWNp
Zl9hcmIpKAoxNDQ3NDogICBzdHJ1Y3QgbWNpZl93YiAqbWNpZl93YiwKMTQ0NzQ6ICAgc3RydWN0
IG1jaWZfYXJiX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogICB2b2lkICgqY29uZmln
X21jaWZfaXJxKSgKMTQ0NzQ6ICAgc3RydWN0IG1jaWZfd2IgKm1jaWZfd2IsCjE0NDc0OiAgIHN0
cnVjdCBtY2lmX2lycV9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHVt
cF9mcmFtZSkoCjE0NDc0OiAgIHN0cnVjdCBtY2lmX3diICptY2lmX3diLAoxNDQ3NDogICBzdHJ1
Y3QgbWNpZl9idWZfcGFyYW1zICptY2lmX3BhcmFtcywKMTQ0NzQ6ICAgZW51bSBkd2Jfc2NhbGVy
X21vZGUgb3V0X2Zvcm1hdCwKMTQ0NzQ6ICAgdW5zaWduZWQgaW50IGRlc3Rfd2lkdGgsCjE0NDc0
OiAgIHVuc2lnbmVkIGludCBkZXN0X2hlaWdodCwKMTQ0NzQ6ICAgc3RydWN0IG1jaWZfd2JfZnJh
bWVfZHVtcF9pbmZvICpkdW1wX2luZm8sCjE0NDc0OiAgIHVuc2lnbmVkIGNoYXIgKmx1bWFfYnVm
ZmVyLAoxNDQ3NDogICB1bnNpZ25lZCBjaGFyICpjaHJvbWFfYnVmZmVyLAoxNDQ3NDogICB1bnNp
Z25lZCBjaGFyICpkZXN0X2x1bWFfYnVmZmVyLAoxNDQ3NDogICB1bnNpZ25lZCBjaGFyICpkZXN0
X2Nocm9tYV9idWZmZXIpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGVuYWJsZV9zdXJmYWNlX2ZsaXBfcmVwb3J0aW5nKHN0
cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCjE0NDc0OiAgIHVpbnQzMl90IGNvbnRy
b2xsZXJfaWQpOwoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiIDEKMTQ0NzQ6ICMgNDggIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5o
IiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9pbmMvaHcvbGlua19lbmNvZGVyLmgiIDEKMTQ0NzQ6ICMgNDkgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCjE0NDc0OiAjIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvc3RyZWFt
X2VuY29kZXIuaCIgMQoxNDQ3NDogIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oIgoxNDQ3NDogIyAxICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9hdWRpb190eXBlcy5oIiAx
CjE0NDc0OiAjIDM2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5j
bHVkZS9hdWRpb190eXBlcy5oIgoxNDQ3NDogc3RydWN0IGF1ZGlvX2NydGNfaW5mbyB7CjE0NDc0
OiAgdWludDMyX3QgaF90b3RhbDsKMTQ0NzQ6ICB1aW50MzJfdCBoX2FjdGl2ZTsKMTQ0NzQ6ICB1
aW50MzJfdCB2X2FjdGl2ZTsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9yZXBldGl0aW9uOwoxNDQ3
NDogIHVpbnQzMl90IHJlcXVlc3RlZF9waXhlbF9jbG9ja18xMDBIejsKMTQ0NzQ6ICB1aW50MzJf
dCBjYWxjdWxhdGVkX3BpeGVsX2Nsb2NrXzEwMEh6OwoxNDQ3NDogIHVpbnQzMl90IHJlZnJlc2hf
cmF0ZTsKMTQ0NzQ6ICBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoOwoxNDQ3NDogIGJv
b2wgaW50ZXJsYWNlZDsKMTQ0NzQ6IH07CjE0NDc0OiBzdHJ1Y3QgYXphbGlhX2Nsb2NrX2luZm8g
ewoxNDQ3NDogIHVpbnQzMl90IHBpeGVsX2Nsb2NrX2luXzEwa2h6OwoxNDQ3NDogIHVpbnQzMl90
IGF1ZGlvX2R0b19waGFzZTsKMTQ0NzQ6ICB1aW50MzJfdCBhdWRpb19kdG9fbW9kdWxlOwoxNDQ3
NDogIHVpbnQzMl90IGF1ZGlvX2R0b193YWxsX2Nsb2NrX3JhdGlvOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBhdWRpb19kdG9fc291cmNlIHsKMTQ0NzQ6ICBEVE9fU09VUkNFX1VOS05P
V04gPSAwLAoxNDQ3NDogIERUT19TT1VSQ0VfSUQwLAoxNDQ3NDogIERUT19TT1VSQ0VfSUQxLAox
NDQ3NDogIERUT19TT1VSQ0VfSUQyLAoxNDQ3NDogIERUT19TT1VSQ0VfSUQzLAoxNDQ3NDogIERU
T19TT1VSQ0VfSUQ0LAoxNDQ3NDogIERUT19TT1VSQ0VfSUQ1CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF1ZGlvX3BsbF9pbmZvIHsKMTQ0NzQ6ICB1aW50
MzJfdCBkcF9kdG9fc291cmNlX2Nsb2NrX2luX2toejsKMTQ0NzQ6ICB1aW50MzJfdCBmZWVkX2Jh
Y2tfZGl2aWRlcjsKMTQ0NzQ6ICBlbnVtIGF1ZGlvX2R0b19zb3VyY2UgZHRvX3NvdXJjZTsKMTQ0
NzQ6ICBib29sIHNzX2VuYWJsZWQ7CjE0NDc0OiAgdWludDMyX3Qgc3NfcGVyY2VudGFnZTsKMTQ0
NzQ6ICB1aW50MzJfdCBzc19wZXJjZW50YWdlX2RpdmlkZXI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgYXVkaW9fY2hhbm5lbF9hc3NvY2lhdGVfaW5mbyB7CjE0NDc0OiAgdW5pb24g
ewoxNDQ3NDogICBzdHJ1Y3QgewoxNDQ3NDogICAgdWludDMyX3QgQUxMX0NIQU5ORUxfRkw6NDsK
MTQ0NzQ6ICAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0ZSOjQ7CjE0NDc0OiAgICB1aW50MzJfdCBB
TExfQ0hBTk5FTF9GQzo0OwoxNDQ3NDogICAgdWludDMyX3QgQUxMX0NIQU5ORUxfU3ViOjQ7CjE0
NDc0OiAgICB1aW50MzJfdCBBTExfQ0hBTk5FTF9TTDo0OwoxNDQ3NDogICAgdWludDMyX3QgQUxM
X0NIQU5ORUxfU1I6NDsKMTQ0NzQ6ICAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0JMOjQ7CjE0NDc0
OiAgICB1aW50MzJfdCBBTExfQ0hBTk5FTF9CUjo0OwoxNDQ3NDogICB9IGJpdHM7CjE0NDc0OiAg
IHVpbnQzMl90IHUzMmFsbDsKMTQ0NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGF1ZGlvX291dHB1dCB7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGVuZ2luZV9pZCBlbmdpbmVf
aWQ7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKMTQ0NzQ6IAoxNDQ3
NDogIHN0cnVjdCBhdWRpb19jcnRjX2luZm8gY3J0Y19pbmZvOwoxNDQ3NDogCjE0NDc0OiAgc3Ry
dWN0IGF1ZGlvX3BsbF9pbmZvIHBsbF9pbmZvOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBhdWRpb19wYXlsb2FkIHsKMTQ0NzQ6ICBDSEFOTkVMX1NQTElUX01BUFBJTkdDSEFORyA9IDB4
OSwKMTQ0NzQ6IH07CjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3L3N0cmVhbV9lbmNvZGVyLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgZGNfYmlvczsKMTQ0NzQ6IHN0cnVjdCBkY19jb250ZXh0OwoxNDQ3NDogc3Ry
dWN0IGRjX2NydGNfdGltaW5nOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRwX3BpeGVsX2VuY29kaW5n
X3R5cGUgewoxNDQ3NDogIERQX1BJWEVMX0VOQ09ESU5HX1RZUEVfUkdCNDQ0ID0gMHgwMDAwMDAw
MCwKMTQ0NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lDQkNSNDIyID0gMHgwMDAwMDAwMSwK
MTQ0NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lDQkNSNDQ0ID0gMHgwMDAwMDAwMiwKMTQ0
NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1JHQl9XSURFX0dBTVVUID0gMHgwMDAwMDAwMywK
MTQ0NzQ6ICBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lfT05MWSA9IDB4MDAwMDAwMDQsCjE0NDc0
OiAgRFBfUElYRUxfRU5DT0RJTkdfVFlQRV9ZQ0JDUjQyMCA9IDB4MDAwMDAwMDUKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZHBfY29tcG9uZW50X2RlcHRoIHsKMTQ0NzQ6ICBEUF9DT01Q
T05FTlRfUElYRUxfREVQVEhfNkJQQyA9IDB4MDAwMDAwMDAsCjE0NDc0OiAgRFBfQ09NUE9ORU5U
X1BJWEVMX0RFUFRIXzhCUEMgPSAweDAwMDAwMDAxLAoxNDQ3NDogIERQX0NPTVBPTkVOVF9QSVhF
TF9ERVBUSF8xMEJQQyA9IDB4MDAwMDAwMDIsCjE0NDc0OiAgRFBfQ09NUE9ORU5UX1BJWEVMX0RF
UFRIXzEyQlBDID0gMHgwMDAwMDAwMywKMTQ0NzQ6ICBEUF9DT01QT05FTlRfUElYRUxfREVQVEhf
MTZCUEMgPSAweDAwMDAwMDA0CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXVkaW9f
Y2xvY2tfaW5mbyB7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50MzJfdCBwaXhlbF9jbG9ja19pbl8xMGto
ejsKMTQ0NzQ6IAoxNDQ3NDogIHVpbnQzMl90IG5fMzJraHo7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MzJfdCBjdHNfMzJraHo7CjE0NDc0OiAgdWludDMyX3Qgbl80NGtoejsKMTQ0NzQ6ICB1aW50MzJf
dCBjdHNfNDRraHo7CjE0NDc0OiAgdWludDMyX3Qgbl80OGtoejsKMTQ0NzQ6ICB1aW50MzJfdCBj
dHNfNDhraHo7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGR5bmFtaWNfbWV0YWRhdGFf
bW9kZSB7CjE0NDc0OiAgZG1kYXRhX2RwLAoxNDQ3NDogIGRtZGF0YV9oZG1pLAoxNDQ3NDogIGRt
ZGF0YV9kb2xieV92aXNpb24KMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBlbmNvZGVy
X2luZm9fZnJhbWUgewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0IGF2aTsK
MTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgZ2FtdXQ7CjE0NDc0OiAgc3RydWN0IGRjX2lu
Zm9fcGFja2V0IHZlbmRvcjsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgaGZ2c2lmOwox
NDQ3NDogCjE0NDc0OiAgc3RydWN0IGRjX2luZm9fcGFja2V0IHNwZDsKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBkY19pbmZvX3BhY2tldCB2c2M7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNfaW5m
b19wYWNrZXQgaGRyc21kOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVuY29kZXJf
dW5ibGFua19wYXJhbSB7CjE0NDc0OiAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgbGlua19zZXR0
aW5nczsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgdGltaW5nOwoxNDQ3NDogIGludCBv
cHBfY250OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVuY29kZXJfc2V0X2RwX3Bo
eV9wYXR0ZXJuX3BhcmFtIHsKMTQ0NzQ6ICBlbnVtIGRwX3Rlc3RfcGF0dGVybiBkcF9waHlfcGF0
dGVybjsKMTQ0NzQ6ICBjb25zdCB1aW50OF90ICpjdXN0b21fcGF0dGVybjsKMTQ0NzQ6ICB1aW50
MzJfdCBjdXN0b21fcGF0dGVybl9zaXplOwoxNDQ3NDogIGVudW0gZHBfcGFuZWxfbW9kZSBkcF9w
YW5lbF9tb2RlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHN0cmVhbV9lbmNvZGVy
IHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXJfZnVuY3MgKmZ1bmNzOwoxNDQ3
NDogIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgc3RydWN0IGRjX2Jpb3MgKmJwOwox
NDQ3NDogIGVudW0gZW5naW5lX2lkIGlkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGVuY19zdGF0ZSB7CjE0NDc0OiAgdWludDMyX3QgZHNjX21vZGU7CjE0NDc0OiAgdWludDMyX3Qg
ZHNjX3NsaWNlX3dpZHRoOwoxNDQ3NDogIHVpbnQzMl90IHNlY19nc3BfcHBzX2xpbmVfbnVtOwox
NDQ3NDogIHVpbnQzMl90IHZiaWQ2X2xpbmVfcmVmZXJlbmNlOwoxNDQ3NDogIHVpbnQzMl90IHZi
aWQ2X2xpbmVfbnVtOwoxNDQ3NDogIHVpbnQzMl90IHNlY19nc3BfcHBzX2VuYWJsZTsKMTQ0NzQ6
ICB1aW50MzJfdCBzZWNfc3RyZWFtX2VuYWJsZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyB7CjE0NDc0OiAgdm9pZCAoKmRwX3NldF9zdHJlYW1f
YXR0cmlidXRlKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAg
IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqY3J0Y190aW1pbmcsCjE0NDc0OiAgIGVudW0gZGNfY29s
b3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlLAoxNDQ3NDogICBib29sIHVzZV92c2Nfc2RwX2Zv
cl9jb2xvcmltZXRyeSwKMTQ0NzQ6ICAgdWludDMyX3QgZW5hYmxlX3NkcF9zcGxpdHRpbmcpOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKmhkbWlfc2V0X3N0cmVhbV9hdHRyaWJ1dGUpKAoxNDQ3NDog
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgc3RydWN0IGRjX2NydGNfdGlt
aW5nICpjcnRjX3RpbWluZywKMTQ0NzQ6ICAgaW50IGFjdHVhbF9waXhfY2xrX2toeiwKMTQ0NzQ6
ICAgYm9vbCBlbmFibGVfYXVkaW8pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmR2aV9zZXRfc3Ry
ZWFtX2F0dHJpYnV0ZSkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLAoxNDQ3NDogICBib29sIGlz
X2R1YWxfbGluayk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqbHZkc19zZXRfc3RyZWFtX2F0dHJp
YnV0ZSkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3NDogICBzdHJ1
Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpz
ZXRfbXN0X2JhbmR3aWR0aCkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAox
NDQ3NDogICBzdHJ1Y3QgZml4ZWQzMV8zMiBhdmdfdGltZV9zbG90c19wZXJfbXRwKTsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCp1cGRhdGVfaGRtaV9pbmZvX3BhY2tldHMpKAoxNDQ3NDogICBzdHJ1
Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGVuY29kZXJfaW5m
b19mcmFtZSAqaW5mb19mcmFtZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc3RvcF9oZG1pX2lu
Zm9fcGFja2V0cykoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKTsKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCp1cGRhdGVfZHBfaW5mb19wYWNrZXRzKSgKMTQ0NzQ6ICAgc3RydWN0
IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBlbmNvZGVyX2luZm9f
ZnJhbWUgKmluZm9fZnJhbWUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNlbmRfaW1tZWRpYXRl
X3NkcF9tZXNzYWdlKSgKMTQ0NzQ6ICAgICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0
NzQ6ICAgICBjb25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCjE0NDc0OiAgICAgdW5z
aWduZWQgaW50IHNkcF9tZXNzYWdlX3NpemUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnN0b3Bf
ZHBfaW5mb19wYWNrZXRzKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwX2JsYW5rKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9l
bmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwX3VuYmxhbmspKAoxNDQ3NDog
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGVuY29k
ZXJfdW5ibGFua19wYXJhbSAqcGFyYW0pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmF1ZGlvX211
dGVfY29udHJvbCkoCjE0NDc0OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLCBib29sIG11
dGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwX2F1ZGlvX3NldHVwKSgKMTQ0NzQ6ICAgc3Ry
dWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAgIHVuc2lnbmVkIGludCBhel9pbnN0LAox
NDQ3NDogICBzdHJ1Y3QgYXVkaW9faW5mbyAqaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgq
ZHBfYXVkaW9fZW5hYmxlKSAoCjE0NDc0OiAgICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7
CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBfYXVkaW9fZGlzYWJsZSkgKAoxNDQ3NDogICAgc3Ry
dWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmhkbWlfYXVk
aW9fc2V0dXApKAoxNDQ3NDogICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAg
dW5zaWduZWQgaW50IGF6X2luc3QsCjE0NDc0OiAgIHN0cnVjdCBhdWRpb19pbmZvICppbmZvLAox
NDQ3NDogICBzdHJ1Y3QgYXVkaW9fY3J0Y19pbmZvICphdWRpb19jcnRjX2luZm8pOwoxNDQ3NDog
CjE0NDc0OiAgdm9pZCAoKmhkbWlfYXVkaW9fZGlzYWJsZSkgKAoxNDQ3NDogICAgc3RydWN0IHN0
cmVhbV9lbmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldHVwX3N0ZXJlb19z
eW5jKSAoCjE0NDc0OiAgICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgIGlu
dCB0Z19pbnN0LAoxNDQ3NDogICAgYm9vbCBlbmFibGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAo
KnNldF9hdm11dGUpKAoxNDQ3NDogICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywgYm9vbCBl
bmFibGUpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRpZ19jb25uZWN0X3RvX290ZykoCjE0NDc0
OiAgIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3NDogICBpbnQgdGdfaW5zdCk7CjE0
NDc0OiAKMTQ0NzQ6ICB2b2lkICgqaGRtaV9yZXNldF9zdHJlYW1fYXR0cmlidXRlKSgKMTQ0NzQ6
ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQg
aW50ICgqZGlnX3NvdXJjZV9vdGcpKAoxNDQ3NDogICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVu
Yyk7CjE0NDc0OiAKMTQ0NzQ6ICBib29sICgqZHBfZ2V0X3BpeGVsX2Zvcm1hdCkoCjE0NDc0OiAg
IHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAoxNDQ3NDogICBlbnVtIGRjX3BpeGVsX2VuY29k
aW5nICplbmNvZGluZywKMTQ0NzQ6ICAgZW51bSBkY19jb2xvcl9kZXB0aCAqZGVwdGgpOwoxNDQ3
NDogCjE0NDc0OiAgdm9pZCAoKmVuY19yZWFkX3N0YXRlKShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIg
KmVuYywgc3RydWN0IGVuY19zdGF0ZSAqcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBfc2V0
X2RzY19jb25maWcpKAoxNDQ3NDogICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0
OiAgICBlbnVtIG9wdGNfZHNjX21vZGUgZHNjX21vZGUsCjE0NDc0OiAgICB1aW50MzJfdCBkc2Nf
Ynl0ZXNfcGVyX3BpeGVsLAoxNDQ3NDogICAgdWludDMyX3QgZHNjX3NsaWNlX3dpZHRoKTsKMTQ0
NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcF9zZXRfZHNjX3Bwc19pbmZvX3BhY2tldCkoc3RydWN0IHN0
cmVhbV9lbmNvZGVyICplbmMsCjE0NDc0OiAgICAgYm9vbCBlbmFibGUsCjE0NDc0OiAgICAgdWlu
dDhfdCAqZHNjX3BhY2tlZF9wcHMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9keW5hbWlj
X21ldGFkYXRhKShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKMTQ0NzQ6ICAgIGJvb2wgZW5h
YmxlLAoxNDQ3NDogICAgdWludDMyX3QgaHVicF9yZXF1ZXN0b3JfaWQsCjE0NDc0OiAgICBlbnVt
IGR5bmFtaWNfbWV0YWRhdGFfbW9kZSBkbWRhdGFfbW9kZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lk
ICgqZHBfc2V0X29kbV9jb21iaW5lKSgKMTQ0NzQ6ICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICpl
bmMsCjE0NDc0OiAgIGJvb2wgb2RtX2NvbWJpbmUpOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5o
IiAyCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2luYy9ody9hdWRpby5oIiAxCjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2F1ZGlvLmgiCjE0NDc0OiBzdHJ1Y3Qg
YXVkaW87CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19mdW5jcyB7CjE0NDc0OiAKMTQ0NzQ6
ICBib29sICgqZW5kcG9pbnRfdmFsaWQpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoxNDQ3NDogCjE0
NDc0OiAgdm9pZCAoKmh3X2luaXQpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKmF6X2VuYWJsZSkoc3RydWN0IGF1ZGlvICphdWRpbyk7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqYXpfZGlzYWJsZSkoc3RydWN0IGF1ZGlvICphdWRpbyk7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqYXpfY29uZmlndXJlKShzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAoxNDQ3NDogICBlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGF1ZGlvX2NydGNfaW5m
byAqY3J0Y19pbmZvLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgYXVkaW9faW5mbyAqYXVkaW9faW5m
byk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqd2FsbF9kdG9fc2V0dXApKHN0cnVjdCBhdWRpbyAq
YXVkaW8sCjE0NDc0OiAgIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsLAoxNDQ3NDogICBjb25zdCBz
dHJ1Y3QgYXVkaW9fY3J0Y19pbmZvICpjcnRjX2luZm8sCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBh
dWRpb19wbGxfaW5mbyAqcGxsX2luZm8pOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRlc3Ryb3kp
KHN0cnVjdCBhdWRpbyAqKmF1ZGlvKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBh
dWRpbyB7CjE0NDc0OiAgY29uc3Qgc3RydWN0IGF1ZGlvX2Z1bmNzICpmdW5jczsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoxNDQ3NDogIHVuc2lnbmVkIGludCBpbnN0OwoxNDQ3NDog
IGJvb2wgZW5hYmxlZDsKMTQ0NzQ6IH07CjE0NDc0OiAjIDUyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoxNDQ3NDogIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fcHBfc211LmgiIDEK
MTQ0NzQ6ICMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9k
bV9wcF9zbXUuaCIKMTQ0NzQ6IHR5cGVkZWYgYm9vbCBCT09MRUFOOwoxNDQ3NDogCjE0NDc0OiBl
bnVtIHBwX3NtdV92ZXIgewoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIFBQX1NNVV9VTlNVUFBPUlRFRCwKMTQ0NzQ6ICBQUF9TTVVfVkVSX1JW
LAoxNDQ3NDogIFBQX1NNVV9WRVJfTlYsCjE0NDc0OiAgUFBfU01VX1ZFUl9STiwKMTQ0NzQ6IAox
NDQ3NDogIFBQX1NNVV9WRVJfTUFYCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBf
c211IHsKMTQ0NzQ6ICBlbnVtIHBwX3NtdV92ZXIgdmVyOwoxNDQ3NDogIGNvbnN0IHZvaWQgKnBw
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGNvbnN0IHZvaWQgKmRtOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwcF9zbXVfc3Rh
dHVzIHsKMTQ0NzQ6ICBQUF9TTVVfUkVTVUxUX1VOREVGSU5FRCA9IDAsCjE0NDc0OiAgUFBfU01V
X1JFU1VMVF9PSyA9IDEsCjE0NDc0OiAgUFBfU01VX1JFU1VMVF9GQUlMLAoxNDQ3NDogIFBQX1NN
VV9SRVNVTFRfVU5TVVBQT1JURUQKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gd21fdHlwZSB7CjE0NDc0OiAgV01fVFlQRV9QU1RBVEVfQ0hHID0g
MCwKMTQ0NzQ6ICBXTV9UWVBFX1JFVFJBSU5JTkcgPSAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgcHBfc211X3dtX3NldF9yYW5nZSB7CjE0NDc0OiAgdWludDE2X3Qg
bWluX2ZpbGxfY2xrX21oejsKMTQ0NzQ6ICB1aW50MTZfdCBtYXhfZmlsbF9jbGtfbWh6OwoxNDQ3
NDogIHVpbnQxNl90IG1pbl9kcmFpbl9jbGtfbWh6OwoxNDQ3NDogIHVpbnQxNl90IG1heF9kcmFp
bl9jbGtfbWh6OwoxNDQ3NDogCjE0NDc0OiAgdWludDhfdCB3bV9pbnN0OwoxNDQ3NDogIHVpbnQ4
X3Qgd21fdHlwZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgcHBfc211X3dtX3JhbmdlX3NldHMgewoxNDQ3NDogIHVuc2lnbmVkIGludCBudW1fcmVhZGVy
X3dtX3NldHM7CjE0NDc0OiAgc3RydWN0IHBwX3NtdV93bV9zZXRfcmFuZ2UgcmVhZGVyX3dtX3Nl
dHNbNF07CjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgbnVtX3dyaXRlcl93bV9zZXRzOwox
NDQ3NDogIHN0cnVjdCBwcF9zbXVfd21fc2V0X3JhbmdlIHdyaXRlcl93bV9zZXRzWzRdOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBwX3NtdV9mdW5jc19ydiB7CjE0NDc0OiAgc3Ry
dWN0IHBwX3NtdSBwcF9zbXU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIHZvaWQgKCpzZXRfZGlzcGxheV9jb3VudCkoc3RydWN0IHBwX3NtdSAqcHAsIGlu
dCBjb3VudCk7CjE0NDc0OiAjIDExNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtX3BwX3NtdS5oIgoxNDQ3NDogIHZvaWQgKCpzZXRfd21fcmFuZ2VzKShzdHJ1
Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyAqcmFu
Z2VzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRf
aGFyZF9taW5fZGNmY2xrX2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKnNldF9t
aW5fZGVlcF9zbGVlcF9kY2ZjbGspKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfaGFyZF9taW5fZmNs
a19ieV9mcmVxKShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IG1oeik7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqc2V0X2hhcmRfbWluX3NvY2Nsa19ieV9mcmVx
KShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IG1oeik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHZv
aWQgKCpzZXRfcG1lX3dhX2VuYWJsZSkoc3RydWN0IHBwX3NtdSAqcHApOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBwcF9zbXVfbnZfY2xvY2tf
aWQgewoxNDQ3NDogIFBQX1NNVV9OVl9ESVNQQ0xLLAoxNDQ3NDogIFBQX1NNVV9OVl9QSFlDTEss
CjE0NDc0OiAgUFBfU01VX05WX1BJWEVMQ0xLCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBfc211X252X2Nsb2NrX3RhYmxlIHsKMTQ0NzQ6
IAoxNDQ3NDogIHVuc2lnbmVkIGludCBkaXNwbGF5Q2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25l
ZCBpbnQgZHBwQ2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcGh5Q2xvY2tJbktoejsK
MTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcGl4ZWxDbG9ja0luS2h6OwoxNDQ3NDogIHVuc2lnbmVkIGlu
dCBkc2NDbG9ja0luS2h6OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmFi
cmljQ2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgc29jQ2xvY2tJbktoejsKMTQ0NzQ6
ICB1bnNpZ25lZCBpbnQgZGNmQ2xvY2tJbktoejsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgdUNsb2Nr
SW5LaHo7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBfc211X2Z1bmNzX252IHsK
MTQ0NzQ6ICBzdHJ1Y3QgcHBfc211IHBwX3NtdTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF9kaXNwbGF5X2NvdW50KShzdHJ1
Y3QgcHBfc211ICpwcCwgaW50IGNvdW50KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF9oYXJkX21pbl9kY2ZjbGtfYnlfZnJl
cSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBNaHopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfbWluX2RlZXBf
c2xlZXBfZGNmY2xrKShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IE1oeik7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfaGFyZF9t
aW5fdWNsa19ieV9mcmVxKShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IE1oeik7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfaGFy
ZF9taW5fc29jY2xrX2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgTWh6KTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3BtZV93YV9lbmFibGUp
KHN0cnVjdCBwcF9zbXUgKnBwKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF92b2x0YWdlX2J5X2ZyZXEpKHN0cnVjdCBwcF9z
bXUgKnBwLAoxNDQ3NDogICAgZW51bSBwcF9zbXVfbnZfY2xvY2tfaWQgY2xvY2tfaWQsIGludCBN
aHopOwoxNDQ3NDogIyAyMTkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9wcF9zbXUuaCIKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfd21fcmFu
Z2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vf
c2V0cyAqcmFuZ2VzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGVu
dW0gcHBfc211X3N0YXR1cyAoKmdldF9tYXhpbXVtX3N1c3RhaW5hYmxlX2Nsb2Nrcykoc3RydWN0
IHBwX3NtdSAqcHAsCjE0NDc0OiAgICBzdHJ1Y3QgcHBfc211X252X2Nsb2NrX3RhYmxlICptYXhf
Y2xvY2tzKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0
dXMgKCpnZXRfdWNsa19kcG1fc3RhdGVzKShzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHVu
c2lnbmVkIGludCAqY2xvY2tfdmFsdWVzX2luX2toeiwgdW5zaWduZWQgaW50ICpudW1fc3RhdGVz
KTsKMTQ0NzQ6ICMgMjQyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZG1fcHBfc211LmgiCjE0NDc0OiAgZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3BzdGF0ZV9o
YW5kc2hha2Vfc3VwcG9ydCkoc3RydWN0IHBwX3NtdSAqcHAsCjE0NDc0OiAgICBCT09MRUFOIHBz
dGF0ZV9oYW5kc2hha2Vfc3VwcG9ydGVkKTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBtX2Nsb2NrIHsKMTQ0
NzQ6ICAgdWludDMyX3QgRnJlcTsKMTQ0NzQ6ICAgdWludDMyX3QgVm9sOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkcG1fY2xvY2tzIHsKMTQ0NzQ6ICBz
dHJ1Y3QgZHBtX2Nsb2NrIERjZkNsb2Nrc1s4XTsKMTQ0NzQ6ICBzdHJ1Y3QgZHBtX2Nsb2NrIFNv
Y0Nsb2Nrc1s4XTsKMTQ0NzQ6ICBzdHJ1Y3QgZHBtX2Nsb2NrIEZDbG9ja3NbNF07CjE0NDc0OiAg
c3RydWN0IGRwbV9jbG9jayBNZW1DbG9ja3NbNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBwcF9zbXVfZnVuY3Nfcm4gewoxNDQ3NDogIHN0cnVjdCBwcF9zbXUgcHBf
c211OwoxNDQ3NDogIyAyNzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9wcF9zbXUuaCIKMTQ0NzQ6ICBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfd21fcmFu
Z2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vf
c2V0cyAqcmFuZ2VzKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gcHBfc211X3N0YXR1cyAoKmdldF9k
cG1fY2xvY2tfdGFibGUpIChzdHJ1Y3QgcHBfc211ICpwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBkcG1f
Y2xvY2tzICpjbG9ja190YWJsZSk7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHBf
c211X2Z1bmNzIHsKMTQ0NzQ6ICBzdHJ1Y3QgcHBfc211IGN0eDsKMTQ0NzQ6ICB1bmlvbiB7CjE0
NDc0OiAgIHN0cnVjdCBwcF9zbXVfZnVuY3NfcnYgcnZfZnVuY3M7CjE0NDc0OiAgIHN0cnVjdCBw
cF9zbXVfZnVuY3NfbnYgbnZfZnVuY3M7CjE0NDc0OiAgIHN0cnVjdCBwcF9zbXVfZnVuY3Nfcm4g
cm5fZnVuY3M7CjE0NDc0OiAKMTQ0NzQ6ICB9OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTMgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAy
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxp
bmtfaW5pdF9kYXRhIHsKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGMgKmRjOwoxNDQ3NDogIHN0cnVj
dCBkY19jb250ZXh0ICpjdHg7CjE0NDc0OiAgdWludDMyX3QgY29ubmVjdG9yX2luZGV4OwoxNDQ3
NDogIHVpbnQzMl90IGxpbmtfaW5kZXg7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkY19saW5rICpsaW5rX2NyZWF0ZShjb25zdCBzdHJ1Y3QgbGlua19pbml0X2RhdGEg
KmluaXRfcGFyYW1zKTsKMTQ0NzQ6IHZvaWQgbGlua19kZXN0cm95KHN0cnVjdCBkY19saW5rICoq
bGluayk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIGRjX2xpbmtfdmFsaWRhdGVfbW9k
ZV90aW1pbmcoCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwK
MTQ0NzQ6ICAgc3RydWN0IGRjX2xpbmsgKmxpbmssCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19j
cnRjX3RpbWluZyAqdGltaW5nKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBjb3JlX2xpbmtfcmVzdW1l
KHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCBjb3JlX2xpbmtfZW5h
YmxlX3N0cmVhbSgKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpzdGF0ZSwKMTQ0NzQ6ICAgc3Ry
dWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgY29yZV9saW5rX2Rp
c2FibGVfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogCjE0NDc0OiB2
b2lkIGNvcmVfbGlua19zZXRfYXZtdXRlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wg
ZW5hYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIiAxCjE0NDc0OiAjIDg1ICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgox
NDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2h3L2RwcC5oIiAxCjE0NDc0OiAjIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3L2RwcC5oIgoxNDQ3NDogc3RydWN0IGRwcCB7CjE0NDc0OiAgY29u
c3Qgc3RydWN0IGRwcF9mdW5jcyAqZnVuY3M7CjE0NDc0OiAgc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKMTQ0NzQ6ICBpbnQgaW5zdDsKMTQ0NzQ6ICBzdHJ1Y3QgZHBwX2NhcHMgKmNhcHM7CjE0NDc0
OiAgc3RydWN0IHB3bF9wYXJhbXMgcmVnYW1tYV9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IHB3bF9w
YXJhbXMgZGVnYW1tYV9wYXJhbXM7CjE0NDc0OiAgc3RydWN0IGRwcF9jdXJzb3JfYXR0cmlidXRl
cyBjdXJfYXR0cjsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwd2xfcGFyYW1zIHNoYXBlcl9wYXJh
bXM7CjE0NDc0OiAgYm9vbCBjbV9ieXBhc3NfbW9kZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBkcHBfaW5wdXRfY3NjX21hdHJpeCB7CjE0NDc0OiAgZW51bSBkY19jb2xvcl9zcGFj
ZSBjb2xvcl9zcGFjZTsKMTQ0NzQ6ICB1aW50MTZfdCByZWd2YWxbMTJdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBkcHBfaW5wdXRfY3NjX21hdHJpeCBkcHBf
aW5wdXRfY3NjX21hdHJpeFtdID0gewoxNDQ3NDogIHtDT0xPUl9TUEFDRV9TUkdCLAoxNDQ3NDog
ICB7MHgyMDAwLCAwLCAwLCAwLCAwLCAweDIwMDAsIDAsIDAsIDAsIDAsIDB4MjAwMCwgMH0gfSwK
MTQ0NzQ6ICB7Q09MT1JfU1BBQ0VfU1JHQl9MSU1JVEVELAoxNDQ3NDogICB7MHgyMDAwLCAwLCAw
LCAwLCAwLCAweDIwMDAsIDAsIDAsIDAsIDAsIDB4MjAwMCwgMH0gfSwKMTQ0NzQ6ICB7Q09MT1Jf
U1BBQ0VfWUNCQ1I2MDEsCjE0NDc0OiAgIHsweDJjZGQsIDB4MjAwMCwgMCwgMHhlOTkxLCAweGU5
MjYsIDB4MjAwMCwgMHhmNGZkLCAweDEwZWYsCjE0NDc0OiAgICAgICAwLCAweDIwMDAsIDB4Mzhi
NCwgMHhlM2E2fSB9LAoxNDQ3NDogIHtDT0xPUl9TUEFDRV9ZQ0JDUjYwMV9MSU1JVEVELAoxNDQ3
NDogICB7MHgzMzUzLCAweDI1NjgsIDAsIDB4ZTQwMCwgMHhlNWRjLCAweDI1NjgsIDB4ZjM2Nywg
MHgxMTA4LAoxNDQ3NDogICAgICAgMCwgMHgyNTY4LCAweDQwZGUsIDB4ZGQzYX0gfSwKMTQ0NzQ6
ICB7Q09MT1JfU1BBQ0VfWUNCQ1I3MDksCjE0NDc0OiAgIHsweDMyNjUsIDB4MjAwMCwgMCwgMHhl
NmNlLCAweGYxMDUsIDB4MjAwMCwgMHhmYTAxLCAweGE3ZCwgMCwKMTQ0NzQ6ICAgICAgIDB4MjAw
MCwgMHgzYjYxLCAweGUyNGZ9IH0sCjE0NDc0OiAKMTQ0NzQ6ICB7Q09MT1JfU1BBQ0VfWUNCQ1I3
MDlfTElNSVRFRCwKMTQ0NzQ6ICAgezB4MzlhNiwgMHgyNTY4LCAwLCAweGUwZDYsIDB4ZWVkZCwg
MHgyNTY4LCAweGY5MjUsIDB4OWE4LCAwLAoxNDQ3NDogICAgICAgMHgyNTY4LCAweDQzZWUsIDB4
ZGJiMn0gfQoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRwcF9ncnBoX2NzY19hZGp1
c3RtZW50IHsKMTQ0NzQ6ICBzdHJ1Y3QgZml4ZWQzMV8zMiB0ZW1wZXJhdHVyZV9tYXRyaXhbMTJd
OwoxNDQ3NDogIGVudW0gZ3JhcGhpY3NfZ2FtdXRfYWRqdXN0X3R5cGUgZ2FtdXRfYWRqdXN0X3R5
cGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY252X2NvbG9yX2tleWVyX3BhcmFt
cyB7CjE0NDc0OiAgaW50IGNvbG9yX2tleWVyX2VuOwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9t
b2RlOwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9hbHBoYV9sb3c7CjE0NDc0OiAgaW50IGNvbG9y
X2tleWVyX2FscGhhX2hpZ2g7CjE0NDc0OiAgaW50IGNvbG9yX2tleWVyX3JlZF9sb3c7CjE0NDc0
OiAgaW50IGNvbG9yX2tleWVyX3JlZF9oaWdoOwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9ncmVl
bl9sb3c7CjE0NDc0OiAgaW50IGNvbG9yX2tleWVyX2dyZWVuX2hpZ2g7CjE0NDc0OiAgaW50IGNv
bG9yX2tleWVyX2JsdWVfbG93OwoxNDQ3NDogIGludCBjb2xvcl9rZXllcl9ibHVlX2hpZ2g7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgY252X2FscGhhXzJiaXRfbHV0IHsKMTQ0NzQ6ICBpbnQgbHV0
MDsKMTQ0NzQ6ICBpbnQgbHV0MTsKMTQ0NzQ6ICBpbnQgbHV0MjsKMTQ0NzQ6ICBpbnQgbHV0MzsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkY25fZHBwX3N0YXRlIHsKMTQ0NzQ6ICB1
aW50MzJfdCBpc19lbmFibGVkOwoxNDQ3NDogIHVpbnQzMl90IGlnYW1fbHV0X21vZGU7CjE0NDc0
OiAgdWludDMyX3QgaWdhbV9pbnB1dF9mb3JtYXQ7CjE0NDc0OiAgdWludDMyX3QgZGdhbV9sdXRf
bW9kZTsKMTQ0NzQ6ICB1aW50MzJfdCByZ2FtX2x1dF9tb2RlOwoxNDQ3NDogIHVpbnQzMl90IGdh
bXV0X3JlbWFwX21vZGU7CjE0NDc0OiAgdWludDMyX3QgZ2FtdXRfcmVtYXBfYzExX2MxMjsKMTQ0
NzQ6ICB1aW50MzJfdCBnYW11dF9yZW1hcF9jMTNfYzE0OwoxNDQ3NDogIHVpbnQzMl90IGdhbXV0
X3JlbWFwX2MyMV9jMjI7CjE0NDc0OiAgdWludDMyX3QgZ2FtdXRfcmVtYXBfYzIzX2MyNDsKMTQ0
NzQ6ICB1aW50MzJfdCBnYW11dF9yZW1hcF9jMzFfYzMyOwoxNDQ3NDogIHVpbnQzMl90IGdhbXV0
X3JlbWFwX2MzM19jMzQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgQ01fYmlhc19w
YXJhbXMgewoxNDQ3NDogIHVpbnQzMl90IGNtX2JpYXNfY3JfcjsKMTQ0NzQ6ICB1aW50MzJfdCBj
bV9iaWFzX3lfZzsKMTQ0NzQ6ICB1aW50MzJfdCBjbV9iaWFzX2NiX2I7CjE0NDc0OiAgdWludDMy
X3QgY21fYmlhc19mb3JtYXQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBwX2Z1
bmNzIHsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcHJvZ3JhbV9jbV9kZWFscGhhKShzdHJ1
Y3QgZHBwICpkcHBfYmFzZSwKMTQ0NzQ6ICAgdWludDMyX3QgZW5hYmxlLCB1aW50MzJfdCBhZGRp
dGl2ZV9ibGVuZGluZyk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBwX3Byb2dyYW1fY21fYmlh
cykoCjE0NDc0OiAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDogICBzdHJ1Y3QgQ01fYmlh
c19wYXJhbXMgKmJpYXNfcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcmVhZF9z
dGF0ZSkoc3RydWN0IGRwcCAqZHBwLCBzdHJ1Y3QgZGNuX2RwcF9zdGF0ZSAqcyk7CjE0NDc0OiAK
MTQ0NzQ6ICB2b2lkICgqZHBwX3Jlc2V0KShzdHJ1Y3QgZHBwICpkcHApOwoxNDQ3NDogCjE0NDc0
OiAgdm9pZCAoKmRwcF9zZXRfc2NhbGVyKShzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgICBjb25z
dCBzdHJ1Y3Qgc2NhbGVyX2RhdGEgKnNjbF9kYXRhKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpk
cHBfc2V0X3BpeGVsX3N0b3JhZ2VfZGVwdGgpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwLAox
NDQ3NDogICAgZW51bSBsYl9waXhlbF9kZXB0aCBkZXB0aCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVj
dCBiaXRfZGVwdGhfcmVkdWN0aW9uX3BhcmFtcyAqYml0X2RlcHRoX3BhcmFtcyk7CjE0NDc0OiAK
MTQ0NzQ6ICBib29sICgqZHBwX2dldF9vcHRpbWFsX251bWJlcl9vZl90YXBzKSgKMTQ0NzQ6ICAg
IHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIHN0cnVjdCBzY2FsZXJfZGF0YSAqc2NsX2RhdGEs
CjE0NDc0OiAgICBjb25zdCBzdHJ1Y3Qgc2NhbGluZ190YXBzICppbl90YXBzKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpkcHBfc2V0X2dhbXV0X3JlbWFwKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAg
KmRwcCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCBkcHBfZ3JwaF9jc2NfYWRqdXN0bWVudCAqYWRq
dXN0KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfc2V0X2NzY19kZWZhdWx0KSgKMTQ0NzQ6
ICAgc3RydWN0IGRwcCAqZHBwLAoxNDQ3NDogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yc3Bh
Y2UpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9zZXRfY3NjX2FkanVzdG1lbnQpKAoxNDQ3
NDogICBzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgIGNvbnN0IHVpbnQxNl90ICpyZWd2YWwpOwox
NDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9wb3dlcl9vbl9yZWdhbW1hX2x1dCkoCjE0NDc0OiAg
IHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgYm9vbCBwb3dlcl9vbik7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9sdXQpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAq
ZHBwLAoxNDQ3NDogICAgY29uc3Qgc3RydWN0IHB3bF9yZXN1bHRfZGF0YSAqcmdiLAoxNDQ3NDog
ICAgdWludDMyX3QgbnVtKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfY29uZmlndXJlX3Jl
Z2FtbWFfbHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIGJvb2wgaXNf
cmFtX2EpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9wcm9ncmFtX3JlZ2FtbWFfbHV0Yl9z
ZXR0aW5ncykoCjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgICBjb25zdCBzdHJ1
Y3QgcHdsX3BhcmFtcyAqcGFyYW1zKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcHJvZ3Jh
bV9yZWdhbW1hX2x1dGFfc2V0dGluZ3MpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwLAoxNDQ3
NDogICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9wd2wpKAoxNDQ3NDogICBzdHJ1Y3QgZHBwICpkcHAs
CjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMsCjE0NDc0OiAgIGVudW0g
b3BwX3JlZ2FtbWEgbW9kZSk7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBwX3Byb2dyYW1fYmlh
c19hbmRfc2NhbGUpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwLAoxNDQ3NDogICAgc3RydWN0
IGRjX2JpYXNfYW5kX3NjYWxlICpwYXJhbXMpOwoxNDQ3NDogCjE0NDc0OiAgdm9pZCAoKmRwcF9z
ZXRfZGVnYW1tYSkoCjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKMTQ0NzQ6ICAgIGVu
dW0gaXBwX2RlZ2FtbWFfbW9kZSBtb2RlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfcHJv
Z3JhbV9pbnB1dF9sdXQpKAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwX2Jhc2UsCjE0NDc0OiAg
ICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1hKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpk
cHBfcHJvZ3JhbV9kZWdhbW1hX3B3bCkoc3RydWN0IGRwcCAqZHBwX2Jhc2UsCjE0NDc0OiAgICAg
ICAgICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6ICB2
b2lkICgqZHBwX3NldHVwKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDog
ICAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCjE0NDc0OiAgICBlbnVtIGV4cGFu
c2lvbl9tb2RlIG1vZGUsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY3NjX3RyYW5zZm9ybSBpbnB1dF9j
c2NfY29sb3JfbWF0cml4LAoxNDQ3NDogICAgZW51bSBkY19jb2xvcl9zcGFjZSBpbnB1dF9jb2xv
cl9zcGFjZSwKMTQ0NzQ6ICAgIHN0cnVjdCBjbnZfYWxwaGFfMmJpdF9sdXQgKmFscGhhXzJiaXRf
bHV0KTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpkcHBfZnVsbF9ieXBhc3MpKHN0cnVjdCBkcHAg
KmRwcF9iYXNlKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZXMp
KAoxNDQ3NDogICAgc3RydWN0IGRwcCAqZHBwX2Jhc2UsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY3Vy
c29yX2F0dHJpYnV0ZXMgKmN1cnNvcl9hdHRyaWJ1dGVzKTsKMTQ0NzQ6IAoxNDQ3NDogIHZvaWQg
KCpzZXRfY3Vyc29yX3Bvc2l0aW9uKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAox
NDQ3NDogICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zLAoxNDQ3NDogICAg
Y29uc3Qgc3RydWN0IGRjX2N1cnNvcl9taV9wYXJhbSAqcGFyYW0sCjE0NDc0OiAgICB1aW50MzJf
dCB3aWR0aCwKMTQ0NzQ6ICAgIHVpbnQzMl90IGhlaWdodAoxNDQ3NDogICAgKTsKMTQ0NzQ6IAox
NDQ3NDogIHZvaWQgKCpkcHBfc2V0X2hkcl9tdWx0aXBsaWVyKSgKMTQ0NzQ6ICAgIHN0cnVjdCBk
cHAgKmRwcF9iYXNlLAoxNDQ3NDogICAgdWludDMyX3QgbXVsdGlwbGllcik7CjE0NDc0OiAKMTQ0
NzQ6ICB2b2lkICgqc2V0X29wdGlvbmFsX2N1cnNvcl9hdHRyaWJ1dGVzKSgKMTQ0NzQ6ICAgIHN0
cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDogICAgc3RydWN0IGRwcF9jdXJzb3JfYXR0cmlidXRl
cyAqYXR0cik7CjE0NDc0OiAKMTQ0NzQ6ICB2b2lkICgqZHBwX2RwcGNsa19jb250cm9sKSgKMTQ0
NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAoxNDQ3NDogICAgYm9vbCBkcHBjbGtfZGl2LAox
NDQ3NDogICAgYm9vbCBlbmFibGUpOwoxNDQ3NDogCjE0NDc0OiAgYm9vbCAoKmRwcF9wcm9ncmFt
X2JsbmRfbHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIGNvbnN0IHN0
cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogIGJvb2wgKCpkcHBfcHJvZ3JhbV9zaGFw
ZXJfbHV0KSgKMTQ0NzQ6ICAgIHN0cnVjdCBkcHAgKmRwcCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVj
dCBwd2xfcGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogIGJvb2wgKCpkcHBfcHJvZ3JhbV8zZGx1dCko
CjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHAsCjE0NDc0OiAgICBzdHJ1Y3QgdGV0cmFoZWRyYWxf
cGFyYW1zICpwYXJhbXMpOwoxNDQ3NDogIHZvaWQgKCpkcHBfY252X3NldF9hbHBoYV9rZXllciko
CjE0NDc0OiAgICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKMTQ0NzQ6ICAgIHN0cnVjdCBjbnZfY29s
b3Jfa2V5ZXJfcGFyYW1zICpjb2xvcl9rZXllcik7CjE0NDc0OiB9OwoxNDQ3NDogIyA4NiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgi
IDIKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJlc291cmNlX3Bvb2w7CjE0NDc0OiBzdHJ1Y3QgZGNf
c3RhdGU7CjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dDsKMTQ0NzQ6IHN0cnVjdCBjbGtf
YndfcGFyYW1zOwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgewoxNDQ3NDog
IHZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqKnBvb2wpOwoxNDQ3NDogIHZv
aWQgKCpsaW5rX2luaXQpKHN0cnVjdCBkY19saW5rICpsaW5rKTsKMTQ0NzQ6ICBzdHJ1Y3QgbGlu
a19lbmNvZGVyICooKmxpbmtfZW5jX2NyZWF0ZSkoCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgZW5j
b2Rlcl9pbml0X2RhdGEgKmluaXQpOwoxNDQ3NDogIGJvb2wgKCp2YWxpZGF0ZV9iYW5kd2lkdGgp
KAoxNDQ3NDogICAgICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3NDogICAgICBzdHJ1Y3QgZGNfc3RhdGUg
KmNvbnRleHQsCjE0NDc0OiAgICAgIGJvb2wgZmFzdF92YWxpZGF0ZSk7CjE0NDc0OiAKMTQ0NzQ6
ICBpbnQgKCpwb3B1bGF0ZV9kbWxfcGlwZXMpKAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgIGRpc3BsYXlfZTJlX3BpcGVf
cGFyYW1zX3N0ICpwaXBlcyk7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX3N0YXR1cyAoKnZhbGlk
YXRlX2dsb2JhbCkoCjE0NDc0OiAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9jdHggKigqYWNxdWly
ZV9pZGxlX3BpcGVfZm9yX2xheWVyKSgKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4
dCwKMTQ0NzQ6ICAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDogICAg
c3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNf
c3RhdHVzICgqdmFsaWRhdGVfcGxhbmUpKGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh
bmVfc3RhdGUsIHN0cnVjdCBkY19jYXBzICpjYXBzKTsKMTQ0NzQ6IAoxNDQ3NDogIGVudW0gZGNf
c3RhdHVzICgqYWRkX3N0cmVhbV90b19jdHgpKAoxNDQ3NDogICAgc3RydWN0IGRjICpkYywKMTQ0
NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqbmV3X2N0eCwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKmRjX3N0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6ICBlbnVtIGRjX3N0YXR1cyAoKnJl
bW92ZV9zdHJlYW1fZnJvbV9jdHgpKAoxNDQ3NDogICAgIHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAg
ICAgc3RydWN0IGRjX3N0YXRlICpuZXdfY3R4LAoxNDQ3NDogICAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAgZW51bSBkY19zdGF0dXMgKCpnZXRfZGVmYXVsdF9zd2l6
emxlX21vZGUpKAoxNDQ3NDogICAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7
CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKigqZmluZF9maXJzdF9mcmVl
X21hdGNoX3N0cmVhbV9lbmNfZm9yX2xpbmspKAoxNDQ3NDogICAgc3RydWN0IHJlc291cmNlX2Nv
bnRleHQgKnJlc19jdHgsCjE0NDc0OiAgICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9v
bCwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAgdm9p
ZCAoKnBvcHVsYXRlX2RtbF93cml0ZWJhY2tfZnJvbV9jb250ZXh0KSgKMTQ0NzQ6ICAgIHN0cnVj
dCBkYyAqZGMsCjE0NDc0OiAgICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0
NzQ6ICAgIGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcyk7CjE0NDc0OiAKMTQ0NzQ6
ICB2b2lkICgqc2V0X21jaWZfYXJiX3BhcmFtcykoCjE0NDc0OiAgICBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDogICAgZGlzcGxheV9lMmVf
cGlwZV9wYXJhbXNfc3QgKnBpcGVzLAoxNDQ3NDogICAgaW50IHBpcGVfY250KTsKMTQ0NzQ6ICB2
b2lkICgqdXBkYXRlX2J3X2JvdW5kaW5nX2JveCkoCjE0NDc0OiAgICBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICAgc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFtcyk7CjE0NDc0OiAKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdWRpb19zdXBwb3J0ewoxNDQ3NDogIGJvb2wgZHBf
YXVkaW87CjE0NDc0OiAgYm9vbCBoZG1pX2F1ZGlvX29uX2RvbmdsZTsKMTQ0NzQ6ICBib29sIGhk
bWlfYXVkaW9fbmF0aXZlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCByZXNvdXJjZV9wb29sIHsKMTQ0NzQ6ICBzdHJ1Y3QgbWVtX2lucHV0ICptaXNbNl07
CjE0NDc0OiAgc3RydWN0IGh1YnAgKmh1YnBzWzZdOwoxNDQ3NDogIHN0cnVjdCBpbnB1dF9waXhl
bF9wcm9jZXNzb3IgKmlwcHNbNl07CjE0NDc0OiAgc3RydWN0IHRyYW5zZm9ybSAqdHJhbnNmb3Jt
c1s2XTsKMTQ0NzQ6ICBzdHJ1Y3QgZHBwICpkcHBzWzZdOwoxNDQ3NDogIHN0cnVjdCBvdXRwdXRf
cGl4ZWxfcHJvY2Vzc29yICpvcHBzWzZdOwoxNDQ3NDogIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9y
ICp0aW1pbmdfZ2VuZXJhdG9yc1s2XTsKMTQ0NzQ6ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKnN0
cmVhbV9lbmNbNiAqIDJdOwoxNDQ3NDogIHN0cnVjdCBodWJidWIgKmh1YmJ1YjsKMTQ0NzQ6ICBz
dHJ1Y3QgbXBjICptcGM7CjE0NDc0OiAgc3RydWN0IHBwX3NtdV9mdW5jcyAqcHBfc211OwoxNDQ3
NDogIHN0cnVjdCBkY2VfYXV4ICplbmdpbmVzWzZdOwoxNDQ3NDogIHN0cnVjdCBkY2VfaTJjX2h3
ICpod19pMmNzWzZdOwoxNDQ3NDogIHN0cnVjdCBkY2VfaTJjX3N3ICpzd19pMmNzWzZdOwoxNDQ3
NDogIGJvb2wgaTJjX2h3X2J1ZmZlcl9pbl91c2U7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZHdi
YyAqZHdiY1sxXTsKMTQ0NzQ6ICBzdHJ1Y3QgbWNpZl93YiAqbWNpZl93YlsxXTsKMTQ0NzQ6ICBz
dHJ1Y3QgewoxNDQ3NDogICB1bnNpZ25lZCBpbnQgZ3NsXzA6MTsKMTQ0NzQ6ICAgdW5zaWduZWQg
aW50IGdzbF8xOjE7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBnc2xfMjoxOwoxNDQ3NDogIH0gZ3Ns
X2dyb3VwczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29y
ICpkc2NzWzZdOwoxNDQ3NDogCjE0NDc0OiAgdW5zaWduZWQgaW50IHBpcGVfY291bnQ7CjE0NDc0
OiAgdW5zaWduZWQgaW50IHVuZGVybGF5X3BpcGVfaW5kZXg7CjE0NDc0OiAgdW5zaWduZWQgaW50
IHN0cmVhbV9lbmNfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgewoxNDQ3NDogICB1bnNp
Z25lZCBpbnQgeHRhbGluX2Nsb2NrX2luS2h6OwoxNDQ3NDogICB1bnNpZ25lZCBpbnQgZGNjZ19y
ZWZfY2xvY2tfaW5LaHo7CjE0NDc0OiAgIHVuc2lnbmVkIGludCBkY2h1Yl9yZWZfY2xvY2tfaW5L
aHo7CjE0NDc0OiAgfSByZWZfY2xvY2tzOwoxNDQ3NDogIHVuc2lnbmVkIGludCB0aW1pbmdfZ2Vu
ZXJhdG9yX2NvdW50OwoxNDQ3NDogIHVuc2lnbmVkIGludCBtcGNjX2NvdW50OwoxNDQ3NDogCjE0
NDc0OiAgdW5zaWduZWQgaW50IHdyaXRlYmFja19waXBlX2NvdW50OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBjbG9ja19zb3VyY2UgKmRwX2Nsb2NrX3NvdXJjZTsKMTQ0
NzQ6IAoxNDQ3NDogIHN0cnVjdCBjbG9ja19zb3VyY2UgKmNsb2NrX3NvdXJjZXNbN107CjE0NDc0
OiAgdW5zaWduZWQgaW50IGNsa19zcmNfY291bnQ7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgYXVk
aW8gKmF1ZGlvc1s3XTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgYXVkaW9fY291bnQ7CjE0NDc0OiAg
c3RydWN0IGF1ZGlvX3N1cHBvcnQgYXVkaW9fc3VwcG9ydDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVj
dCBkY2NnICpkY2NnOwoxNDQ3NDogIHN0cnVjdCBpcnFfc2VydmljZSAqaXJxczsKMTQ0NzQ6IAox
NDQ3NDogIHN0cnVjdCBhYm0gKmFibTsKMTQ0NzQ6ICBzdHJ1Y3QgZG1jdSAqZG1jdTsKMTQ0NzQ6
ICBzdHJ1Y3QgZG11Yl9wc3IgKnBzcjsKMTQ0NzQ6IAoxNDQ3NDogIGNvbnN0IHN0cnVjdCByZXNv
dXJjZV9mdW5jcyAqZnVuY3M7CjE0NDc0OiAgY29uc3Qgc3RydWN0IHJlc291cmNlX2NhcHMgKnJl
c19jYXA7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGRjX3NlcnZpY2UgKm9lbV9kZXZpY2U7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGNuX2ZlX2JhbmR3aWR0aCB7CjE0NDc0OiAg
aW50IGRwcGNsa19raHo7CjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBz
dHJlYW1fcmVzb3VyY2UgewoxNDQ3NDogIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpv
cHA7CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYzsKMTQ0NzQ6
ICBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGc7CjE0NDc0OiAgc3RydWN0IHN0cmVhbV9lbmNv
ZGVyICpzdHJlYW1fZW5jOwoxNDQ3NDogIHN0cnVjdCBhdWRpbyAqYXVkaW87CjE0NDc0OiAKMTQ0
NzQ6ICBzdHJ1Y3QgcGl4ZWxfY2xrX3BhcmFtcyBwaXhfY2xrX3BhcmFtczsKMTQ0NzQ6ICBzdHJ1
Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lIGVuY29kZXJfaW5mb19mcmFtZTsKMTQ0NzQ6IAoxNDQ3NDog
IHN0cnVjdCBhYm0gKmFibTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90
IGdzbF9ncm91cDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBwbGFuZV9yZXNvdXJj
ZSB7CjE0NDc0OiAgc3RydWN0IHNjYWxlcl9kYXRhIHNjbF9kYXRhOwoxNDQ3NDogIHN0cnVjdCBo
dWJwICpodWJwOwoxNDQ3NDogIHN0cnVjdCBtZW1faW5wdXQgKm1pOwoxNDQ3NDogIHN0cnVjdCBp
bnB1dF9waXhlbF9wcm9jZXNzb3IgKmlwcDsKMTQ0NzQ6ICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm07
CjE0NDc0OiAgc3RydWN0IGRwcCAqZHBwOwoxNDQ3NDogIHVpbnQ4X3QgbXBjY19pbnN0OwoxNDQ3
NDogCjE0NDc0OiAgc3RydWN0IGRjbl9mZV9iYW5kd2lkdGggYnc7CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiB1bmlvbiBwaXBlX3VwZGF0ZV9mbGFncyB7CjE0NDc0OiAgc3RydWN0IHsKMTQ0NzQ6
ICAgdWludDMyX3QgZW5hYmxlIDogMTsKMTQ0NzQ6ICAgdWludDMyX3QgZGlzYWJsZSA6IDE7CjE0
NDc0OiAgIHVpbnQzMl90IG9kbSA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IGdsb2JhbF9zeW5jIDog
MTsKMTQ0NzQ6ICAgdWludDMyX3Qgb3BwX2NoYW5nZWQgOiAxOwoxNDQ3NDogICB1aW50MzJfdCB0
Z19jaGFuZ2VkIDogMTsKMTQ0NzQ6ICAgdWludDMyX3QgbXBjYyA6IDE7CjE0NDc0OiAgIHVpbnQz
Ml90IGRwcGNsayA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IGh1YnBfaW50ZXJkZXBlbmRlbnQgOiAx
OwoxNDQ3NDogICB1aW50MzJfdCBodWJwX3JxX2RsZ190dHUgOiAxOwoxNDQ3NDogICB1aW50MzJf
dCBnYW11dF9yZW1hcCA6IDE7CjE0NDc0OiAgIHVpbnQzMl90IHNjYWxlciA6IDE7CjE0NDc0OiAg
IHVpbnQzMl90IHZpZXdwb3J0IDogMTsKMTQ0NzQ6ICB9IGJpdHM7CjE0NDc0OiAgdWludDMyX3Qg
cmF3OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHBpcGVfY3R4IHsKMTQ0NzQ6ICBz
dHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwoxNDQ3NDogIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbTsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBwbGFuZV9yZXNvdXJjZSBw
bGFuZV9yZXM7CjE0NDc0OiAgc3RydWN0IHN0cmVhbV9yZXNvdXJjZSBzdHJlYW1fcmVzOwoxNDQ3
NDogCjE0NDc0OiAgc3RydWN0IGNsb2NrX3NvdXJjZSAqY2xvY2tfc291cmNlOwoxNDQ3NDogCjE0
NDc0OiAgc3RydWN0IHBsbF9zZXR0aW5ncyBwbGxfc2V0dGluZ3M7CjE0NDc0OiAKMTQ0NzQ6ICB1
aW50OF90IHBpcGVfaWR4OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHBpcGVfY3R4ICp0b3BfcGlw
ZTsKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9jdHggKmJvdHRvbV9waXBlOwoxNDQ3NDogIHN0cnVjdCBw
aXBlX2N0eCAqbmV4dF9vZG1fcGlwZTsKMTQ0NzQ6ICBzdHJ1Y3QgcGlwZV9jdHggKnByZXZfb2Rt
X3BpcGU7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2Rs
Z19yZWdzX3N0IGRsZ19yZWdzOwoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9y
ZWdzX3N0IHR0dV9yZWdzOwoxNDQ3NDogIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX3JlZ3Nf
c3QgcnFfcmVnczsKMTQ0NzQ6ICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX2Rlc3RfcGFy
YW1zX3N0IHBpcGVfZGxnX3BhcmFtOwoxNDQ3NDogCjE0NDc0OiAgdW5pb24gcGlwZV91cGRhdGVf
ZmxhZ3MgdXBkYXRlX2ZsYWdzOwoxNDQ3NDogIHN0cnVjdCBkd2JjICpkd2JjOwoxNDQ3NDogIHN0
cnVjdCBtY2lmX3diICptY2lmX3diOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJl
c291cmNlX2NvbnRleHQgewoxNDQ3NDogIHN0cnVjdCBwaXBlX2N0eCBwaXBlX2N0eFs2XTsKMTQ0
NzQ6ICBib29sIGlzX3N0cmVhbV9lbmNfYWNxdWlyZWRbNiAqIDJdOwoxNDQ3NDogIGJvb2wgaXNf
YXVkaW9fYWNxdWlyZWRbNl07CjE0NDc0OiAgdWludDhfdCBjbG9ja19zb3VyY2VfcmVmX2NvdW50
WzddOwoxNDQ3NDogIHVpbnQ4X3QgZHBfY2xvY2tfc291cmNlX3JlZl9jb3VudDsKMTQ0NzQ6ICBi
b29sIGlzX2RzY19hY3F1aXJlZFs2XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
Y2VfYndfb3V0cHV0IHsKMTQ0NzQ6ICBib29sIGNwdWNfc3RhdGVfY2hhbmdlX2VuYWJsZTsKMTQ0
NzQ6ICBib29sIGNwdXBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKMTQ0NzQ6ICBib29sIHN0dXR0ZXJf
bW9kZV9lbmFibGU7CjE0NDc0OiAgYm9vbCBuYnBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKMTQ0NzQ6
ICBib29sIGFsbF9kaXNwbGF5c19pbl9zeW5jOwoxNDQ3NDogIHN0cnVjdCBkY2Vfd2F0ZXJtYXJr
cyB1cmdlbnRfd21fbnNbNl07CjE0NDc0OiAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJf
ZXhpdF93bV9uc1s2XTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlcl9lbnRy
eV93bV9uc1s2XTsKMTQ0NzQ6ICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgbmJwX3N0YXRlX2NoYW5n
ZV93bV9uc1s2XTsKMTQ0NzQ6ICBpbnQgc2Nsa19raHo7CjE0NDc0OiAgaW50IHNjbGtfZGVlcF9z
bGVlcF9raHo7CjE0NDc0OiAgaW50IHljbGtfa2h6OwoxNDQ3NDogIGludCBkaXNwY2xrX2toejsK
MTQ0NzQ6ICBpbnQgYmxhY2tvdXRfcmVjb3ZlcnlfdGltZV91czsKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IHN0cnVjdCBkY25fYndfd3JpdGViYWNrIHsKMTQ0NzQ6ICBzdHJ1Y3QgbWNpZl9hcmJf
cGFyYW1zIG1jaWZfd2JfYXJiWzFdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRj
bl9id19vdXRwdXQgewoxNDQ3NDogIHN0cnVjdCBkY19jbG9ja3MgY2xrOwoxNDQ3NDogIHN0cnVj
dCBkY25fd2F0ZXJtYXJrX3NldCB3YXRlcm1hcmtzOwoxNDQ3NDogIHN0cnVjdCBkY25fYndfd3Jp
dGViYWNrIGJ3X3dyaXRlYmFjazsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGJ3X291
dHB1dCB7CjE0NDc0OiAgc3RydWN0IGRjbl9id19vdXRwdXQgZGNuOwoxNDQ3NDogIHN0cnVjdCBk
Y2VfYndfb3V0cHV0IGRjZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBid19jb250
ZXh0IHsKMTQ0NzQ6ICB1bmlvbiBid19vdXRwdXQgYnc7CjE0NDc0OiAgc3RydWN0IGRpc3BsYXlf
bW9kZV9saWIgZG1sOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzYxICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIKMTQ0NzQ6IHN0cnVjdCBk
Y19zdGF0ZSB7CjE0NDc0OiAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtc1s2XTsKMTQ0
NzQ6ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXR1cyBzdHJlYW1fc3RhdHVzWzZdOwoxNDQ3NDogIHVp
bnQ4X3Qgc3RyZWFtX2NvdW50OwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IHJlc291cmNlX2NvbnRl
eHQgcmVzX2N0eDsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBid19jb250ZXh0IGJ3X2N0eDsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRtX3BwX2Rpc3BsYXlfY29uZmlndXJhdGlvbiBw
cF9kaXNwbGF5X2NmZzsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY25fYndfaW50ZXJuYWxfdmFy
cyBkY25fYndfdmFyczsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGNsa19tZ3IgKmNs
a19tZ3I7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKMTQ0NzQ6IH07CjE0
NDc0OiAjIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L3Jlc291cmNlLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kYWxfYXNpY19pZC5oIiAxCjE0NDc0OiAjIDE2OCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX2FzaWNf
aWQuaCIKMTQ0NzQ6IGVudW0gewoxNDQ3NDogIE5WX05BVkkxMF9QX0EwID0gMSwKMTQ0NzQ6ICBO
Vl9OQVZJMTJfUF9BMCA9IDEwLAoxNDQ3NDogIE5WX05BVkkxNF9NX0EwID0gMjAsCjE0NDc0OiAg
TlZfVU5LTk9XTiA9IDB4RkYKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL3Jlc291cmNlLmgiIDIKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNlX3ZlcnNp
b24gcmVzb3VyY2VfcGFyc2VfYXNpY19pZCgKMTQ0NzQ6ICAgc3RydWN0IGh3X2FzaWNfaWQgYXNp
Y19pZCk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCByZXNvdXJjZV9jYXBzIHsKMTQ0NzQ6ICBpbnQg
bnVtX3RpbWluZ19nZW5lcmF0b3I7CjE0NDc0OiAgaW50IG51bV9vcHA7CjE0NDc0OiAgaW50IG51
bV92aWRlb19wbGFuZTsKMTQ0NzQ6ICBpbnQgbnVtX2F1ZGlvOwoxNDQ3NDogIGludCBudW1fc3Ry
ZWFtX2VuY29kZXI7CjE0NDc0OiAgaW50IG51bV9wbGw7CjE0NDc0OiAgaW50IG51bV9kd2I7CjE0
NDc0OiAgaW50IG51bV9kZGM7CjE0NDc0OiAgaW50IG51bV92bWlkOwoxNDQ3NDogIGludCBudW1f
ZHNjOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJlc291cmNlX3N0cmFwcyB7CjE0
NDc0OiAgdWludDMyX3QgaGRtaV9kaXNhYmxlOwoxNDQ3NDogIHVpbnQzMl90IGRjX3BpbnN0cmFw
c19hdWRpbzsKMTQ0NzQ6ICB1aW50MzJfdCBhdWRpb19zdHJlYW1fbnVtYmVyOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHJlc291cmNlX2NyZWF0ZV9mdW5jcyB7CjE0NDc0OiAgdm9p
ZCAoKnJlYWRfZGNlX3N0cmFwcykoCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCBz
dHJ1Y3QgcmVzb3VyY2Vfc3RyYXBzICpzdHJhcHMpOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGF1
ZGlvICooKmNyZWF0ZV9hdWRpbykoCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1
bnNpZ25lZCBpbnQgaW5zdCk7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIg
KigqY3JlYXRlX3N0cmVhbV9lbmNvZGVyKSgKMTQ0NzQ6ICAgIGVudW0gZW5naW5lX2lkIGVuZ19p
ZCwgc3RydWN0IGRjX2NvbnRleHQgKmN0eCk7CjE0NDc0OiAKMTQ0NzQ6ICBzdHJ1Y3QgZGNlX2h3
c2VxICooKmNyZWF0ZV9od3NlcSkoCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcmVzb3VyY2VfY29uc3RydWN0KAoxNDQ3NDog
IHVuc2lnbmVkIGludCBudW1fdmlydHVhbF9saW5rcywKMTQ0NzQ6ICBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogIHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDogIGNvbnN0IHN0cnVjdCBy
ZXNvdXJjZV9jcmVhdGVfZnVuY3MgKmNyZWF0ZV9mdW5jcyk7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCByZXNvdXJjZV9wb29sICpkY19jcmVhdGVfcmVzb3VyY2VfcG9vbChzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfaW5pdF9kYXRhICppbml0X2RhdGEsCjE0
NDc0OiAgICAgICAgICAgIGVudW0gZGNlX3ZlcnNpb24gZGNfdmVyc2lvbik7CjE0NDc0OiAKMTQ0
NzQ6IHZvaWQgZGNfZGVzdHJveV9yZXNvdXJjZV9wb29sKHN0cnVjdCBkYyAqZGMpOwoxNDQ3NDog
CjE0NDc0OiBlbnVtIGRjX3N0YXR1cyByZXNvdXJjZV9tYXBfcG9vbF9yZXNvdXJjZXMoCjE0NDc0
OiAgIGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4
dCwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3
NDogYm9vbCByZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4KTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBkY19zdGF0dXMgcmVzb3VyY2VfYnVpbGRfc2Nh
bGluZ19wYXJhbXNfZm9yX2NvbnRleHQoCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkYyAqZGMsCjE0
NDc0OiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcmVz
b3VyY2VfYnVpbGRfaW5mb19mcmFtZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCByZXNvdXJjZV91bnJlZmVyZW5jZV9jbG9ja19zb3VyY2UoCjE0NDc0OiAg
IHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qg
cmVzb3VyY2VfcG9vbCAqcG9vbCwKMTQ0NzQ6ICAgc3RydWN0IGNsb2NrX3NvdXJjZSAqY2xvY2tf
c291cmNlKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCByZXNvdXJjZV9yZWZlcmVuY2VfY2xvY2tfc291
cmNlKAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0NzQ6ICAg
Y29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCjE0NDc0OiAgIHN0cnVjdCBjbG9ja19z
b3VyY2UgKmNsb2NrX3NvdXJjZSk7CjE0NDc0OiAKMTQ0NzQ6IGludCByZXNvdXJjZV9nZXRfY2xv
Y2tfc291cmNlX3JlZmVyZW5jZSgKMTQ0NzQ6ICAgc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJl
c19jdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDog
ICBzdHJ1Y3QgY2xvY2tfc291cmNlICpjbG9ja19zb3VyY2UpOwoxNDQ3NDogCjE0NDc0OiBib29s
IHJlc291cmNlX2FyZV9zdHJlYW1zX3RpbWluZ19zeW5jaHJvbml6YWJsZSgKMTQ0NzQ6ICAgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtMSwKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0cmVhbV9z
dGF0ZSAqc3RyZWFtMik7CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbG9ja19zb3VyY2UgKnJlc291
cmNlX2ZpbmRfdXNlZF9jbGtfc3JjX2Zvcl9zaGFyaW5nKAoxNDQ3NDogICBzdHJ1Y3QgcmVzb3Vy
Y2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBjbG9ja19zb3VyY2UgKmRjX3Jlc291cmNlX2ZpbmRfZmly
c3RfZnJlZV9wbGwoCjE0NDc0OiAgIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAox
NDQ3NDogICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCk7CjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBwaXBlX2N0eCAqcmVzb3VyY2VfZ2V0X2hlYWRfcGlwZV9mb3Jfc3RyZWFtKAoxNDQ3
NDogICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKMTQ0NzQ6ICAgc3RydWN0IGRj
X3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCByZXNvdXJjZV9hdHRh
Y2hfc3VyZmFjZXNfdG9fY29udGV4dCgKMTQ0NzQ6ICAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpj
b25zdCAqcGxhbmVfc3RhdGUsCjE0NDc0OiAgIGludCBzdXJmYWNlX2NvdW50LAoxNDQ3NDogICBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0sCjE0NDc0OiAgIHN0cnVjdCBkY19zdGF0
ZSAqY29udGV4dCwKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wpOwox
NDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcGlwZV9jdHggKmZpbmRfaWRsZV9zZWNvbmRhcnlfcGlwZSgK
MTQ0NzQ6ICAgc3RydWN0IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHgsCjE0NDc0OiAgIGNvbnN0
IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgcGlwZV9j
dHggKnByaW1hcnlfcGlwZSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcmVzb3VyY2VfaXNfc3RyZWFt
X3VuY2hhbmdlZCgKMTQ0NzQ6ICBzdHJ1Y3QgZGNfc3RhdGUgKm9sZF9jb250ZXh0LCBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoxNDQ3NDogCjE0NDc0OiBib29sIHJlc291cmNlX3Zh
bGlkYXRlX2F0dGFjaF9zdXJmYWNlcygKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3ZhbGlkYXRp
b25fc2V0IHNldFtdLAoxNDQ3NDogICBpbnQgc2V0X2NvdW50LAoxNDQ3NDogICBjb25zdCBzdHJ1
Y3QgZGNfc3RhdGUgKm9sZF9jb250ZXh0LAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRl
eHQsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCByZXNvdXJjZV92YWxpZGF0ZV9jdHhfdXBkYXRlX3BvaW50ZXJfYWZ0ZXJfY29w
eSgKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0IGRjX3N0YXRlICpzcmNfY3R4LAoxNDQ3NDogICBzdHJ1
Y3QgZGNfc3RhdGUgKmRzdF9jdHgpOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX3N0YXR1cyByZXNv
dXJjZV9tYXBfY2xvY2tfcmVzb3VyY2VzKAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGNfc3RhdHVzIHJlc291cmNl
X21hcF9waHlfY2xvY2tfcmVzb3VyY2VzKAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGMgKmRjLAox
NDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgIHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgcGlwZV9uZWVkX3JlcHJvZ3Jh
bSgKMTQ0NzQ6ICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eF9vbGQsCjE0NDc0OiAgIHN0cnVj
dCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIHJlc291cmNlX2J1aWxk
X2JpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVh
bSwKMTQ0NzQ6ICAgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpmbXRfYml0X2Rl
cHRoKTsKMTQ0NzQ6IAoxNDQ3NDogdm9pZCB1cGRhdGVfYXVkaW9fdXNhZ2UoCjE0NDc0OiAgIHN0
cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgcmVz
b3VyY2VfcG9vbCAqcG9vbCwKMTQ0NzQ6ICAgc3RydWN0IGF1ZGlvICphdWRpbywKMTQ0NzQ6ICAg
Ym9vbCBhY3F1aXJlZCk7CjE0NDc0OiAKMTQ0NzQ6IHVuc2lnbmVkIGludCByZXNvdXJjZV9waXhl
bF9mb3JtYXRfdG9fYnBwKGVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgZm9ybWF0KTsKMTQ0NzQ6
IAoxNDQ3NDogdm9pZCBnZXRfYXVkaW9fY2hlY2soc3RydWN0IGF1ZGlvX2luZm8gKmF1ZF9tb2Rl
cywKMTQ0NzQ6ICBzdHJ1Y3QgYXVkaW9fY2hlY2sgKmF1ZF9jaGspOwoxNDQ3NDogIyAzNyAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2lu
dGVybmFsLmgiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZGVudGlzdF9i
YXNlX2RpdmlkZXJfaWQgewoxNDQ3NDogIERFTlRJU1RfQkFTRV9ESURfMSA9IDB4MDgsCjE0NDc0
OiAgREVOVElTVF9CQVNFX0RJRF8yID0gMHg0MCwKMTQ0NzQ6ICBERU5USVNUX0JBU0VfRElEXzMg
PSAweDYwLAoxNDQ3NDogIERFTlRJU1RfQkFTRV9ESURfNCA9IDB4N2UsCjE0NDc0OiAgREVOVElT
VF9NQVhfRElEID0gMHg3ZgoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGRl
bnRpc3RfZGl2aWRlcl9yYW5nZSB7CjE0NDc0OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzFfU1RB
UlQgPSA4LAoxNDQ3NDogIERFTlRJU1RfRElWSURFUl9SQU5HRV8xX1NURVAgPSAxLAoxNDQ3NDog
IERFTlRJU1RfRElWSURFUl9SQU5HRV8yX1NUQVJUID0gNjQsCjE0NDc0OiAgREVOVElTVF9ESVZJ
REVSX1JBTkdFXzJfU1RFUCA9IDIsCjE0NDc0OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzNfU1RB
UlQgPSAxMjgsCjE0NDc0OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzNfU1RFUCA9IDQsCjE0NDc0
OiAgREVOVElTVF9ESVZJREVSX1JBTkdFXzRfU1RBUlQgPSAyNDgsCjE0NDc0OiAgREVOVElTVF9E
SVZJREVSX1JBTkdFXzRfU1RFUCA9IDI2NCwKMTQ0NzQ6ICBERU5USVNUX0RJVklERVJfUkFOR0Vf
U0NBTEVfRkFDVE9SID0gNAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTUxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3JfaW50ZXJuYWwuaCIKMTQ0
NzQ6IHN0cnVjdCBjbGtfbWdyX3NoaWZ0IHsKMTQ0NzQ6ICB1aW50OF90IERQUkVGQ0xLX1NSQ19T
RUw7IHVpbnQ4X3QgREVOVElTVF9EUFJFRkNMS19XRElWSURFUjsgdWludDhfdCBERU5USVNUX0RJ
U1BDTEtfV0RJVklERVI7IHVpbnQ4X3QgREVOVElTVF9ESVNQQ0xLX0NIR19ET05FOwoxNDQ3NDog
IHVpbnQ4X3QgREVOVElTVF9EUFBDTEtfV0RJVklERVI7IHVpbnQ4X3QgREVOVElTVF9EUFBDTEtf
Q0hHX0RPTkU7IHVpbnQ4X3QgRmJNdWx0X2ludDsgdWludDhfdCBGYk11bHRfZnJhYzsKMTQ0NzQ6
ICB1aW50MzJfdCBDT05URU5UOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19t
Z3JfbWFzayB7CjE0NDc0OiAgdWludDMyX3QgRFBSRUZDTEtfU1JDX1NFTDsgdWludDMyX3QgREVO
VElTVF9EUFJFRkNMS19XRElWSURFUjsgdWludDMyX3QgREVOVElTVF9ESVNQQ0xLX1dESVZJREVS
OyB1aW50MzJfdCBERU5USVNUX0RJU1BDTEtfQ0hHX0RPTkU7CjE0NDc0OiAgdWludDMyX3QgREVO
VElTVF9EUFBDTEtfV0RJVklERVI7IHVpbnQzMl90IERFTlRJU1RfRFBQQ0xLX0NIR19ET05FOyB1
aW50MzJfdCBGYk11bHRfaW50OyB1aW50MzJfdCBGYk11bHRfZnJhYzsKMTQ0NzQ6ICB1aW50MzJf
dCBDT05URU5UOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19tZ3JfcmVnaXN0
ZXJzIHsKMTQ0NzQ6ICB1aW50MzJfdCBEUFJFRkNMS19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IERF
TlRJU1RfRElTUENMS19DTlRMOwoxNDQ3NDogCjE0NDc0OiAgdWludDMyX3QgQ0xLM19DTEsyX0RG
U19DTlRMOwoxNDQ3NDogIHVpbnQzMl90IENMSzNfQ0xLX1BMTF9SRVE7CjE0NDc0OiAKMTQ0NzQ6
ICB1aW50MzJfdCBNUDFfU01OX0MyUE1TR182NzsKMTQ0NzQ6ICB1aW50MzJfdCBNUDFfU01OX0My
UE1TR184MzsKMTQ0NzQ6ICB1aW50MzJfdCBNUDFfU01OX0MyUE1TR185MTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gY2xvY2tfdHlwZSB7CjE0NDc0OiAgY2xvY2tfdHlwZV9kaXNwY2xr
ID0gMSwKMTQ0NzQ6ICBjbG9ja190eXBlX2RjZmNsaywKMTQ0NzQ6ICBjbG9ja190eXBlX3NvY2Ns
aywKMTQ0NzQ6ICBjbG9ja190eXBlX3BpeGVsY2xrLAoxNDQ3NDogIGNsb2NrX3R5cGVfcGh5Y2xr
LAoxNDQ3NDogIGNsb2NrX3R5cGVfZHBwY2xrLAoxNDQ3NDogIGNsb2NrX3R5cGVfZmNsaywKMTQ0
NzQ6ICBjbG9ja190eXBlX2RjZmRzY2xrLAoxNDQ3NDogIGNsb2NrX3R5cGVfZHNjY2xrLAoxNDQ3
NDogIGNsb2NrX3R5cGVfdWNsaywKMTQ0NzQ6ICBjbG9ja190eXBlX2RyYW1jbGssCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzdGF0ZV9kZXBlbmRlbnRfY2xvY2tzIHsK
MTQ0NzQ6ICBpbnQgZGlzcGxheV9jbGtfa2h6OwoxNDQ3NDogIGludCBwaXhlbF9jbGtfa2h6Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgewoxNDQ3NDog
IHN0cnVjdCBjbGtfbWdyIGJhc2U7CjE0NDc0OiAgaW50IHNtdV92ZXI7CjE0NDc0OiAgc3RydWN0
IHBwX3NtdV9mdW5jcyAqcHBfc211OwoxNDQ3NDogIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsX2Z1
bmNzICpmdW5jczsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBkY2NnICpkY2NnOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgY29u
c3Qgc3RydWN0IGNsa19tZ3JfcmVnaXN0ZXJzICpyZWdzOwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBj
bGtfbWdyX3NoaWZ0ICpjbGtfbWdyX3NoaWZ0OwoxNDQ3NDogIGNvbnN0IHN0cnVjdCBjbGtfbWdy
X21hc2sgKmNsa19tZ3JfbWFzazsKMTQ0NzQ6IAoxNDQ3NDogIHN0cnVjdCBzdGF0ZV9kZXBlbmRl
bnRfY2xvY2tzIG1heF9jbGtzX2J5X3N0YXRlW0RNX1BQX0NMT0NLU19NQVhfU1RBVEVTXTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBib29sIGRmc19ieXBhc3NfZW5hYmxlZDsKMTQ0
NzQ6IAoxNDQ3NDogIGJvb2wgZGZzX2J5cGFzc19hY3RpdmU7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50
MzJfdCBkZnNfcmVmX2ZyZXFfa2h6OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgaW50IGRmc19ieXBhc3NfZGlzcF9jbGs7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgYm9vbCBzc19vbl9kcHJlZmNsazsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
IGJvb2wgeGdtaV9lbmFibGVkOwoxNDQ3NDogIyAyNTIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5hbC5oIgoxNDQ3NDogIGlu
dCBkcHJlZmNsa19zc19wZXJjZW50YWdlOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGludCBkcHJlZmNsa19zc19kaXZpZGVyOwoxNDQ3NDog
CjE0NDc0OiAgZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgbWF4X2Nsa3Nfc3RhdGU7CjE0NDc0OiAg
ZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgY3VyX21pbl9jbGtzX3N0YXRlOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWxfZnVuY3MgewoxNDQ3NDogIGludCAo
KnNldF9kaXNwY2xrKShzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVl
c3RlZF9kaXNwY2xrX2toeik7CjE0NDc0OiAgaW50ICgqc2V0X2RwcmVmY2xrKShzdHJ1Y3QgY2xr
X21ncl9pbnRlcm5hbCAqY2xrX21ncik7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNzggIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5h
bC5oIgoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBzaG91bGRfc2V0X2Nsb2NrKGJvb2wgc2FmZV90b19sb3dlciwgaW50
IGNhbGNfY2xrLCBpbnQgY3VyX2NsaykKMTQ0NzQ6IHsKMTQ0NzQ6ICByZXR1cm4gKChzYWZlX3Rv
X2xvd2VyICYmIGNhbGNfY2xrIDwgY3VyX2NsaykgfHwgY2FsY19jbGsgPiBjdXJfY2xrKTsKMTQ0
NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBzaG91bGRfdXBkYXRlX3BzdGF0ZV9zdXBwb3J0KGJv
b2wgc2FmZV90b19sb3dlciwgYm9vbCBjYWxjX3N1cHBvcnQsIGJvb2wgY3VyX3N1cHBvcnQpCjE0
NDc0OiB7CjE0NDc0OiAgaWYgKGN1cl9zdXBwb3J0ICE9IGNhbGNfc3VwcG9ydCkgewoxNDQ3NDog
ICBpZiAoY2FsY19zdXBwb3J0ID09IHRydWUgJiYgc2FmZV90b19sb3dlcikKMTQ0NzQ6ICAgIHJl
dHVybiB0cnVlOwoxNDQ3NDogICBlbHNlIGlmIChjYWxjX3N1cHBvcnQgPT0gZmFsc2UgJiYgIXNh
ZmVfdG9fbG93ZXIpCjE0NDc0OiAgICByZXR1cm4gdHJ1ZTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0
NzQ6ICByZXR1cm4gZmFsc2U7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IGludCBjbGtfbWdyX2hl
bHBlcl9nZXRfYWN0aXZlX2Rpc3BsYXlfY250KAoxNDQ3NDogICBzdHJ1Y3QgZGMgKmRjLAoxNDQ3
NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoxNDQ3NDogIyAyOCAiZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIg
MgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5oIiAxCjE0NDc0OiAj
IDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9k
Y24yMC9kY24yMF9jbGtfbWdyLmgiCjE0NDc0OiB2b2lkIGRjbjJfdXBkYXRlX2Nsb2NrcyhzdHJ1
Y3QgY2xrX21nciAqZGNjZywKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKMTQ0
NzQ6ICAgIGJvb2wgc2FmZV90b19sb3dlcik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNuMl91cGRh
dGVfY2xvY2tzX2ZwZ2Eoc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IsCjE0NDc0OiAgICBzdHJ1Y3Qg
ZGNfc3RhdGUgKmNvbnRleHQsCjE0NDc0OiAgICBib29sIHNhZmVfdG9fbG93ZXIpOwoxNDQ3NDog
dm9pZCBkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kcHBfZHRvKHN0cnVjdCBjbGtfbWdyX2lu
dGVybmFsICpjbGtfbWdyLAoxNDQ3NDogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsIGJvb2wg
c2FmZV90b19sb3dlcik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNuMl9pbml0X2Nsb2NrcyhzdHJ1
Y3QgY2xrX21nciAqY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNuMjBfY2xrX21ncl9j
b25zdHJ1Y3Qoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgc3RydWN0IGNsa19tZ3Jf
aW50ZXJuYWwgKmNsa19tZ3IsCjE0NDc0OiAgIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwK
MTQ0NzQ6ICAgc3RydWN0IGRjY2cgKmRjY2cpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBkZW50
aXN0X2dldF9kaWRfZnJvbV9kaXZpZGVyKGludCBkaXZpZGVyKTsKMTQ0NzQ6IAoxNDQ3NDogdm9p
ZCBkY24yX2dldF9jbG9jayhzdHJ1Y3QgY2xrX21nciAqY2xrX21nciwKMTQ0NzQ6ICAgc3RydWN0
IGRjX3N0YXRlICpjb250ZXh0LAoxNDQ3NDogICAgZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5
cGUsCjE0NDc0OiAgICBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwoxNDQ3NDog
CjE0NDc0OiB2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2RlbnRpc3Qoc3RydWN0IGNs
a19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRjbjJfcmVhZF9j
bG9ja3NfZnJvbV9od19kZW50aXN0KHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpOwoxNDQ3
NDogIyAzMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdy
L2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgoxNDQ3NDogIyAxICJkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5oIiAxCjE0NDc0OiAj
IDI5ICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21nci5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIgMQoxNDQ3NDogIyAzMCAiZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3Iu
aCIgMgoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBybl9jbGtfcmVnaXN0ZXJzIHsKMTQ0
NzQ6ICB1aW50MzJfdCBDTEsxX0NMSzBfQ1VSUkVOVF9DTlQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiB2b2lkIHJuX2Nsa19tZ3JfY29uc3RydWN0KHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0
NDc0OiAgIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLAoxNDQ3NDogICBzdHJ1Y3Qg
cHBfc211X2Z1bmNzICpwcF9zbXUsCjE0NDc0OiAgIHN0cnVjdCBkY2NnICpkY2NnKTsKMTQ0NzQ6
ICMgMzIgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9k
Y24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAjIDEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEwMC9kY2VfY2xr
X21nci5oIiAxCjE0NDc0OiAjIDMzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvY2xrX21nci9kY2UxMDAvZGNlX2Nsa19tZ3IuaCIKMTQ0NzQ6IGludCBkY2VfYWRq
dXN0X2RwX3JlZl9mcmVxX2Zvcl9zcyhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncl9k
Y2UsIGludCBkcF9yZWZfY2xrX2toeik7CjE0NDc0OiBpbnQgZGNlX2dldF9kcF9yZWZfZnJlcV9r
aHooc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSk7CjE0NDc0OiBlbnVtIGRtX3BwX2Nsb2Nr
c19zdGF0ZSBkY2VfZ2V0X3JlcXVpcmVkX2Nsb2Nrc19zdGF0ZSgKMTQ0NzQ6ICBzdHJ1Y3QgY2xr
X21nciAqY2xrX21ncl9iYXNlLAoxNDQ3NDogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CjE0
NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGRjZV9nZXRfbWF4X3BpeGVsX2Nsb2NrX2Zvcl9hbGxfcGF0
aHMoc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lk
IGRjZV9jbGtfbWdyX2NvbnN0cnVjdCgKMTQ0NzQ6ICAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwK
MTQ0NzQ6ICAgc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3JfZGNlKTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBkY2VfY2xvY2tfcmVhZF9zc19pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFs
ICpkY2NnX2RjZSk7CjE0NDc0OiAKMTQ0NzQ6IGludCBkY2UxMl9nZXRfZHBfcmVmX2ZyZXFfa2h6
KHN0cnVjdCBjbGtfbWdyICpkY2NnKTsKMTQ0NzQ6IAoxNDQ3NDogaW50IGRjZV9zZXRfY2xvY2so
CjE0NDc0OiAgc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKMTQ0NzQ6ICBpbnQgcmVxdWVz
dGVkX2Nsa19raHopOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZGNlX2Nsa19tZ3JfZGVz
dHJveShzdHJ1Y3QgY2xrX21nciAqKmNsa19tZ3IpOwoxNDQ3NDogCjE0NDc0OiBpbnQgZGVudGlz
dF9nZXRfZGl2aWRlcl9mcm9tX2RpZChpbnQgZGlkKTsKMTQ0NzQ6ICMgMzUgImRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMi
IDIKMTQ0NzQ6ICMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9j
bGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3JfdmJpb3Nfc211LmgiIDEKMTQ0NzQ6ICMgMjkgImRyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtf
bWdyX3ZiaW9zX3NtdS5oIgoxNDQ3NDogaW50IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNpb24o
c3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwoxNDQ3NDogaW50IHJuX3ZiaW9zX3Nt
dV9zZXRfZGlzcGNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVl
c3RlZF9kaXNwY2xrX2toeik7CjE0NDc0OiBpbnQgcm5fdmJpb3Nfc211X3NldF9kcHJlZmNsayhz
dHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncik7CjE0NDc0OiBpbnQgcm5fdmJpb3Nfc211
X3NldF9oYXJkX21pbl9kY2ZjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGlu
dCByZXF1ZXN0ZWRfZGNmY2xrX2toeik7CjE0NDc0OiBpbnQgcm5fdmJpb3Nfc211X3NldF9taW5f
ZGVlcF9zbGVlcF9kY2ZjbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCBy
ZXF1ZXN0ZWRfbWluX2RzX2RjZmNsa19raHopOwoxNDQ3NDogdm9pZCBybl92Ymlvc19zbXVfc2V0
X3BoeWNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9w
aHljbGtfa2h6KTsKMTQ0NzQ6IGludCBybl92Ymlvc19zbXVfc2V0X2RwcGNsayhzdHJ1Y3QgY2xr
X21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9kcHBfa2h6KTsKMTQ0NzQ6IHZv
aWQgcm5fdmJpb3Nfc211X3NldF9kY25fbG93X3Bvd2VyX3N0YXRlKHN0cnVjdCBjbGtfbWdyX2lu
dGVybmFsICpjbGtfbWdyLCBpbnQgZGlzcGxheV9jb3VudCk7CjE0NDc0OiB2b2lkIHJuX3ZiaW9z
X3NtdV9lbmFibGVfNDhtaHpfdG1kcF9yZWZjbGtfcHdyZHduKHN0cnVjdCBjbGtfbWdyX2ludGVy
bmFsICpjbGtfbWdyLCBib29sIGVuYWJsZSk7CjE0NDc0OiB2b2lkIHJuX3ZiaW9zX3NtdV9lbmFi
bGVfcG1lX3dhKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKTsKMTQ0NzQ6ICMgMzYg
ImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9y
bl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9yZWdfaGVscGVyLmgiIDEKMTQ0NzQ6ICMgMzkxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL3JlZ19oZWxwZXIuaCIKMTQ0NzQ6
IHVpbnQzMl90IGdlbmVyaWNfcmVnX2dldChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1
aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0LCB1aW50MzJfdCBtYXNrLCB1aW50
MzJfdCAqZmllbGRfdmFsdWUpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19n
ZXQyKGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCjE0NDc0OiAg
IHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMSwK
MTQ0NzQ6ICAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRf
dmFsdWUyKTsKMTQ0NzQ6IAoxNDQ3NDogdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0Myhjb25zdCBz
dHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNo
aWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCjE0NDc0OiAgIHVp
bnQ4X3Qgc2hpZnQyLCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKMTQ0
NzQ6ICAgdWludDhfdCBzaGlmdDMsIHVpbnQzMl90IG1hc2szLCB1aW50MzJfdCAqZmllbGRfdmFs
dWUzKTsKMTQ0NzQ6IAoxNDQ3NDogdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0NChjb25zdCBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4LCB1aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0
MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCjE0NDc0OiAgIHVpbnQ4
X3Qgc2hpZnQyLCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKMTQ0NzQ6
ICAgdWludDhfdCBzaGlmdDMsIHVpbnQzMl90IG1hc2szLCB1aW50MzJfdCAqZmllbGRfdmFsdWUz
LAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVs
ZF92YWx1ZTQpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ1KGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCjE0NDc0OiAgIHVpbnQ4X3Qg
c2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMSwKMTQ0NzQ6ICAg
dWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFsdWUyLAox
NDQ3NDogICB1aW50OF90IHNoaWZ0MywgdWludDMyX3QgbWFzazMsIHVpbnQzMl90ICpmaWVsZF92
YWx1ZTMsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQ0LCB1aW50MzJfdCBtYXNrNCwgdWludDMyX3Qg
KmZpZWxkX3ZhbHVlNCwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1
aW50MzJfdCAqZmllbGRfdmFsdWU1KTsKMTQ0NzQ6IAoxNDQ3NDogdWludDMyX3QgZ2VuZXJpY19y
ZWdfZ2V0Nihjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LCB1aW50MzJfdCBhZGRyLAoxNDQ3
NDogICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1
ZTEsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQyLCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZp
ZWxkX3ZhbHVlMiwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDMsIHVpbnQzMl90IG1hc2szLCB1aW50
MzJfdCAqZmllbGRfdmFsdWUzLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFz
azQsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTQsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQ1LCB1aW50
MzJfdCBtYXNrNSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlNSwKMTQ0NzQ6ICAgdWludDhfdCBzaGlm
dDYsIHVpbnQzMl90IG1hc2s2LCB1aW50MzJfdCAqZmllbGRfdmFsdWU2KTsKMTQ0NzQ6IAoxNDQ3
NDogdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0Nyhjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4
LCB1aW50MzJfdCBhZGRyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEs
IHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQyLCB1aW50MzJf
dCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDMs
IHVpbnQzMl90IG1hc2szLCB1aW50MzJfdCAqZmllbGRfdmFsdWUzLAoxNDQ3NDogICB1aW50OF90
IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTQsCjE0NDc0OiAg
IHVpbnQ4X3Qgc2hpZnQ1LCB1aW50MzJfdCBtYXNrNSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlNSwK
MTQ0NzQ6ICAgdWludDhfdCBzaGlmdDYsIHVpbnQzMl90IG1hc2s2LCB1aW50MzJfdCAqZmllbGRf
dmFsdWU2LAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NywgdWludDMyX3QgbWFzazcsIHVpbnQzMl90
ICpmaWVsZF92YWx1ZTcpOwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ4
KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCjE0NDc0OiAgIHVp
bnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMSwKMTQ0
NzQ6ICAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFs
dWUyLAoxNDQ3NDogICB1aW50OF90IHNoaWZ0MywgdWludDMyX3QgbWFzazMsIHVpbnQzMl90ICpm
aWVsZF92YWx1ZTMsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQ0LCB1aW50MzJfdCBtYXNrNCwgdWlu
dDMyX3QgKmZpZWxkX3ZhbHVlNCwKMTQ0NzQ6ICAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1h
c2s1LCB1aW50MzJfdCAqZmllbGRfdmFsdWU1LAoxNDQ3NDogICB1aW50OF90IHNoaWZ0NiwgdWlu
dDMyX3QgbWFzazYsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTYsCjE0NDc0OiAgIHVpbnQ4X3Qgc2hp
ZnQ3LCB1aW50MzJfdCBtYXNrNywgdWludDMyX3QgKmZpZWxkX3ZhbHVlNywKMTQ0NzQ6ICAgdWlu
dDhfdCBzaGlmdDgsIHVpbnQzMl90IG1hc2s4LCB1aW50MzJfdCAqZmllbGRfdmFsdWU4KTsKMTQ0
NzQ6ICMgNDgxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L3JlZ19oZWxwZXIuaCIKMTQ0NzQ6IHZvaWQgZ2VuZXJpY193cml0ZV9pbmRpcmVjdF9yZWcoY29u
c3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkcl9pbmRleCwg
dWludDMyX3QgYWRkcl9kYXRhLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCwgdWludDMyX3QgZGF0
YSk7CjE0NDc0OiAKMTQ0NzQ6IHVpbnQzMl90IGdlbmVyaWNfcmVhZF9pbmRpcmVjdF9yZWcoY29u
c3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkcl9pbmRleCwg
dWludDMyX3QgYWRkcl9kYXRhLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCk7CjE0NDc0OiAKMTQ0
NzQ6IHVpbnQzMl90IGdlbmVyaWNfaW5kaXJlY3RfcmVnX2dldChjb25zdCBzdHJ1Y3QgZGNfY29u
dGV4dCAqY3R4LAoxNDQ3NDogICB1aW50MzJfdCBhZGRyX2luZGV4LCB1aW50MzJfdCBhZGRyX2Rh
dGEsCjE0NDc0OiAgIHVpbnQzMl90IGluZGV4LCBpbnQgbiwKMTQ0NzQ6ICAgdWludDhfdCBzaGlm
dDEsIHVpbnQzMl90IG1hc2sxLCB1aW50MzJfdCAqZmllbGRfdmFsdWUxLAoxNDQ3NDogICAuLi4p
OwoxNDQ3NDogCjE0NDc0OiB1aW50MzJfdCBnZW5lcmljX2luZGlyZWN0X3JlZ191cGRhdGVfZXgo
Y29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKMTQ0NzQ6ICAgdWludDMyX3QgYWRkcl9pbmRl
eCwgdWludDMyX3QgYWRkcl9kYXRhLAoxNDQ3NDogICB1aW50MzJfdCBpbmRleCwgdWludDMyX3Qg
cmVnX3ZhbCwgaW50IG4sCjE0NDc0OiAgIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwg
dWludDMyX3QgZmllbGRfdmFsdWUxLAoxNDQ3NDogICAuLi4pOwoxNDQ3NDogIyAzNyAiZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19t
Z3IuYyIgMgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMQoxNDQ3NDogIyAzOCAiZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgoxNDQ3
NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1faGVs
cGVycy5oIiAxCjE0NDc0OiAjIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZG1faGVscGVycy5oIgoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMQoxNDQ3NDogIyAzNSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX2hlbHBlcnMuaCIgMgoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uX3RhYmxlOwoxNDQ3NDogCjE0NDc0OiBl
bnVtIGRjX2VkaWRfc3RhdHVzIGRtX2hlbHBlcnNfcGFyc2VfZWRpZF9jYXBzKAoxNDQ3NDogIHN0
cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2VkaWQgKmVkaWQs
CjE0NDc0OiAgc3RydWN0IGRjX2VkaWRfY2FwcyAqZWRpZF9jYXBzKTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lkIGRtX2hlbHBlcnNfZHBfdXBkYXRl
X2JyYW5jaF9pbmZvKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBj
b25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGJvb2wgZG1faGVscGVyc19kcF9tc3Rfd3JpdGVfcGF5bG9hZF9hbGxvY2F0aW9u
X3RhYmxlKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBjb25zdCBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgIHN0cnVjdCBkcF9tc3Rfc3Ry
ZWFtX2FsbG9jYXRpb25fdGFibGUgKnByb3Bvc2VkX3RhYmxlLAoxNDQ3NDogICBib29sIGVuYWJs
ZSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZG1faGVscGVy
c19kcF9tc3RfcG9sbF9wZW5kaW5nX2Rvd25fcmVwbHkoCjE0NDc0OiAgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKMTQ0NzQ6ICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHZvaWQgZG1faGVscGVyc19kcF9tc3RfY2xlYXJf
cGF5bG9hZF9hbGxvY2F0aW9uX3RhYmxlKAoxNDQ3NDogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgs
CjE0NDc0OiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGFjdF9yZXR1cm5fc3RhdHVzIGRtX2hlbHBlcnNfZHBf
bXN0X3BvbGxfZm9yX2FsbG9jYXRpb25fY2hhbmdlX3RyaWdnZXIoCjE0NDc0OiAgIHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0
cmVhbSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBib29sIGRtX2hlbHBlcnNfZHBf
bXN0X3NlbmRfcGF5bG9hZF9hbGxvY2F0aW9uKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAq
Y3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0
OiAgIGJvb2wgZW5hYmxlKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9oZWxwZXJzX2RwX21zdF9z
dGFydF90b3BfbWdyKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBj
b25zdCBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6ICAgYm9vbCBib290KTsKMTQ0NzQ6IAox
NDQ3NDogdm9pZCBkbV9oZWxwZXJzX2RwX21zdF9zdG9wX3RvcF9tZ3IoCjE0NDc0OiAgIHN0cnVj
dCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1faGVscGVyc19kcF9yZWFkX2Rw
Y2QoCjE0NDc0OiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVj
dCBkY19saW5rICpsaW5rLAoxNDQ3NDogICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3NDogICB1aW50
OF90ICpkYXRhLAoxNDQ3NDogICB1aW50MzJfdCBzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9oZWxwZXJzX2RwX3dyaXRlX2RwY2QoCjE0NDc0OiAg
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAgIGNvbnN0IHN0cnVjdCBkY19saW5rICps
aW5rLAoxNDQ3NDogICB1aW50MzJfdCBhZGRyZXNzLAoxNDQ3NDogICBjb25zdCB1aW50OF90ICpk
YXRhLAoxNDQ3NDogICB1aW50MzJfdCBzaXplKTsKMTQ0NzQ6IAoxNDQ3NDogYm9vbCBkbV9oZWxw
ZXJzX3N1Ym1pdF9pMmMoCjE0NDc0OiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCjE0NDc0OiAg
IGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rLAoxNDQ3NDogICBzdHJ1Y3QgaTJjX2NvbW1hbmQg
KmNtZCk7CjE0NDc0OiAKMTQ0NzQ6IGJvb2wgZG1faGVscGVyc19kcF93cml0ZV9kc2NfZW5hYmxl
KAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBjb25zdCBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCjE0NDc0OiAgIGJvb2wgZW5hYmxlCjE0NDc0OiApOwox
NDQ3NDogYm9vbCBkbV9oZWxwZXJzX2lzX2RwX3NpbmtfcHJlc2VudCgKMTQ0NzQ6ICAgc3RydWN0
IGRjX2xpbmsgKmxpbmspOwoxNDQ3NDogCjE0NDc0OiBlbnVtIGRjX2VkaWRfc3RhdHVzIGRtX2hl
bHBlcnNfcmVhZF9sb2NhbF9lZGlkKAoxNDQ3NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAox
NDQ3NDogICBzdHJ1Y3QgZGNfbGluayAqbGluaywKMTQ0NzQ6ICAgc3RydWN0IGRjX3NpbmsgKnNp
bmspOwoxNDQ3NDogCjE0NDc0OiB2b2lkIGRtX3NldF9kY25fY2xvY2tzKAoxNDQ3NDogICBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBzdHJ1Y3QgZGNfY2xvY2tzICpjbGtzKTsKMTQ0
NzQ6ICMgMzkgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21n
ci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6IAoxNDQ3NDogIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiIDEKMTQ0NzQ6ICMgMzgg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIK
MTQ0NzQ6IGVudW0gYXRvbV9iaW9zX2hlYWRlcl92ZXJzaW9uX2RlZnsKMTQ0NzQ6ICAgQVRPTV9N
QUpPUl9WRVJTSU9OID0weDAwMDMsCjE0NDc0OiAgIEFUT01fTUlOT1JfVkVSU0lPTiA9MHgwMDAz
LAoxNDQ3NDogfTsKMTQ0NzQ6ICMgNTcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IGVudW0gYXRvbV9jcnRjX2RlZnsKMTQ0NzQ6
ICAgQVRPTV9DUlRDMSA9MCwKMTQ0NzQ6ICAgQVRPTV9DUlRDMiA9MSwKMTQ0NzQ6ICAgQVRPTV9D
UlRDMyA9MiwKMTQ0NzQ6ICAgQVRPTV9DUlRDNCA9MywKMTQ0NzQ6ICAgQVRPTV9DUlRDNSA9NCwK
MTQ0NzQ6ICAgQVRPTV9DUlRDNiA9NSwKMTQ0NzQ6ICAgQVRPTV9DUlRDX0lOVkFMSUQgPTB4ZmYs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fcHBsbF9kZWZ7CjE0NDc0OiAgIEFU
T01fUFBMTDAgPTIsCjE0NDc0OiAgIEFUT01fR0NLX0RGUyA9OCwKMTQ0NzQ6ICAgQVRPTV9GQ0hf
Q0xLID05LAoxNDQ3NDogICBBVE9NX0RQX0RUTyA9MTEsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlf
UExMMCA9MjAsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlfUExMMSA9MjEsCjE0NDc0OiAgIEFUT01f
Q09NQk9QSFlfUExMMiA9MjIsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlfUExMMyA9MjMsCjE0NDc0
OiAgIEFUT01fQ09NQk9QSFlfUExMNCA9MjQsCjE0NDc0OiAgIEFUT01fQ09NQk9QSFlfUExMNSA9
MjUsCjE0NDc0OiAgIEFUT01fUFBMTF9JTlZBTElEID0weGZmLAoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX2RlZnsKMTQ0NzQ6ICAgQVNJQ19JTlRfRElHMV9F
TkNPREVSX0lEID0weDAzLAoxNDQ3NDogICBBU0lDX0lOVF9ESUcyX0VOQ09ERVJfSUQgPTB4MDks
CjE0NDc0OiAgIEFTSUNfSU5UX0RJRzNfRU5DT0RFUl9JRCA9MHgwYSwKMTQ0NzQ6ICAgQVNJQ19J
TlRfRElHNF9FTkNPREVSX0lEID0weDBiLAoxNDQ3NDogICBBU0lDX0lOVF9ESUc1X0VOQ09ERVJf
SUQgPTB4MGMsCjE0NDc0OiAgIEFTSUNfSU5UX0RJRzZfRU5DT0RFUl9JRCA9MHgwZCwKMTQ0NzQ6
ICAgQVNJQ19JTlRfRElHN19FTkNPREVSX0lEID0weDBlLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiBlbnVtIGF0b21fZW5jb2RlX21vZGVfZGVmCjE0NDc0OiB7CjE0NDc0OiAgIEFU
T01fRU5DT0RFUl9NT0RFX0RQID0wLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfTU9ERV9EUF9TU1Qg
PTAsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9NT0RFX0xWRFMgPTEsCjE0NDc0OiAgIEFUT01fRU5D
T0RFUl9NT0RFX0RWSSA9MiwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfSERNSSA9MywKMTQ0
NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfRFBfQVVESU8gPTUsCjE0NDc0OiAgIEFUT01fRU5DT0RF
Ul9NT0RFX0RQX01TVCA9NSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfQ1JUID0xNSwKMTQ0
NzQ6ICAgQVRPTV9FTkNPREVSX01PREVfRFZPID0xNiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9lbmNvZGVyX3JlZmNsa19zcmNfZGVmewoxNDQ3NDogICBFTkNPREVSX1JFRkNM
S19TUkNfUDFQTEwgPTAsCjE0NDc0OiAgIEVOQ09ERVJfUkVGQ0xLX1NSQ19QMlBMTCA9MSwKMTQ0
NzQ6ICAgRU5DT0RFUl9SRUZDTEtfU1JDX1AzUExMID0yLAoxNDQ3NDogICBFTkNPREVSX1JFRkNM
S19TUkNfRVhUQ0xLID0zLAoxNDQ3NDogICBFTkNPREVSX1JFRkNMS19TUkNfSU5WQUxJRCA9MHhm
ZiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zY2FsZXJfZGVmewoxNDQ3NDog
ICBBVE9NX1NDQUxFUl9ESVNBQkxFID0wLAoxNDQ3NDogICBBVE9NX1NDQUxFUl9DRU5URVIgPTEs
CjE0NDc0OiAgIEFUT01fU0NBTEVSX0VYUEFOU0lPTiA9MiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IGVudW0gYXRvbV9vcGVyYXRpb25fZGVmewoxNDQ3NDogICBBVE9NX0RJU0FCTEUgPSAwLAox
NDQ3NDogICBBVE9NX0VOQUJMRSA9IDEsCjE0NDc0OiAgIEFUT01fSU5JVCA9IDcsCjE0NDc0OiAg
IEFUT01fR0VUX1NUQVRVUyA9IDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21f
ZW1iZWRkZWRfZGlzcGxheV9vcF9kZWZ7CjE0NDc0OiAgIEFUT01fTENEX0JMX09GRiA9IDIsCjE0
NDc0OiAgIEFUT01fTENEX0JMX09NID0gMywKMTQ0NzQ6ICAgQVRPTV9MQ0RfQkxfQlJJR0hUTkVT
U19DT05UUk9MID0gNCwKMTQ0NzQ6ICAgQVRPTV9MQ0RfU0VMRlRFU1RfU1RBUlQgPSA1LAoxNDQ3
NDogICBBVE9NX0xDRF9TRUxGVEVTVF9TVE9QID0gNiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9zcHJlYWRfc3BlY3RydW1fbW9kZXsKMTQ0NzQ6ICAgQVRPTV9TU19DRU5URVJf
T1JfRE9XTl9NT0RFX01BU0sgPSAweDAxLAoxNDQ3NDogICBBVE9NX1NTX0RPV05fU1BSRUFEX01P
REUgPSAweDAwLAoxNDQ3NDogICBBVE9NX1NTX0NFTlRSRV9TUFJFQURfTU9ERSA9IDB4MDEsCjE0
NDc0OiAgIEFUT01fSU5UX09SX0VYVF9TU19NQVNLID0gMHgwMiwKMTQ0NzQ6ICAgQVRPTV9JTlRF
Uk5BTF9TU19NQVNLID0gMHgwMCwKMTQ0NzQ6ICAgQVRPTV9FWFRFUk5BTF9TU19NQVNLID0gMHgw
MiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3BhbmVsX2JpdF9w
ZXJfY29sb3J7CjE0NDc0OiAgIFBBTkVMX0JQQ19VTkRFRklORSA9MHgwMCwKMTQ0NzQ6ICAgUEFO
RUxfNkJJVF9QRVJfQ09MT1IgPTB4MDEsCjE0NDc0OiAgIFBBTkVMXzhCSVRfUEVSX0NPTE9SID0w
eDAyLAoxNDQ3NDogICBQQU5FTF8xMEJJVF9QRVJfQ09MT1IgPTB4MDMsCjE0NDc0OiAgIFBBTkVM
XzEyQklUX1BFUl9DT0xPUiA9MHgwNCwKMTQ0NzQ6ICAgUEFORUxfMTZCSVRfUEVSX0NPTE9SID0w
eDA1LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fdm9sdGFnZV90
eXBlCjE0NDc0OiB7CjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9WRERDID0gMSwKMTQ0NzQ6ICAgVk9M
VEFHRV9UWVBFX01WRERDID0gMiwKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX01WRERRID0gMywKMTQ0
NzQ6ICAgVk9MVEFHRV9UWVBFX1ZERENJID0gNCwKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX1ZEREdG
WCA9IDUsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9QQ0MgPSA2LAoxNDQ3NDogICBWT0xUQUdFX1RZ
UEVfTVZQUCA9IDcsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9MRUREUE0gPSA4LAoxNDQ3NDogICBW
T0xUQUdFX1RZUEVfUENDX01WREQgPSA5LAoxNDQ3NDogICBWT0xUQUdFX1RZUEVfUENJRV9WRERD
ID0gMTAsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9QQ0lFX1ZERFIgPSAxMSwKMTQ0NzQ6ICAgVk9M
VEFHRV9UWVBFX0dFTkVSSUNfSTJDXzEgPSAweDExLAoxNDQ3NDogICBWT0xUQUdFX1RZUEVfR0VO
RVJJQ19JMkNfMiA9IDB4MTIsCjE0NDc0OiAgIFZPTFRBR0VfVFlQRV9HRU5FUklDX0kyQ18zID0g
MHgxMywKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzQgPSAweDE0LAoxNDQ3NDog
ICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfNSA9IDB4MTUsCjE0NDc0OiAgIFZPTFRBR0VfVFlQ
RV9HRU5FUklDX0kyQ182ID0gMHgxNiwKMTQ0NzQ6ICAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJD
XzcgPSAweDE3LAoxNDQ3NDogICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfOCA9IDB4MTgsCjE0
NDc0OiAgIFZPTFRBR0VfVFlQRV9HRU5FUklDX0kyQ185ID0gMHgxOSwKMTQ0NzQ6ICAgVk9MVEFH
RV9UWVBFX0dFTkVSSUNfSTJDXzEwID0gMHgxQSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gYXRvbV9kZ3B1X3ZyYW1fdHlwZSB7CjE0NDc0OiAgIEFUT01fREdQVV9WUkFNX1RZUEVfR0RE
UjUgPSAweDUwLAoxNDQ3NDogICBBVE9NX0RHUFVfVlJBTV9UWVBFX0hCTTIgPSAweDYwLAoxNDQ3
NDogICBBVE9NX0RHUFVfVlJBTV9UWVBFX0dERFI2ID0gMHg3MCwKMTQ0NzQ6IH07CjE0NDc0OiAK
MTQ0NzQ6IGVudW0gYXRvbV9kcF92c19wcmVlbXBoX2RlZnsKMTQ0NzQ6ICAgRFBfVlNfTEVWRUww
X1BSRUVNUEhfTEVWRUwwID0gMHgwMCwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwxX1BSRUVNUEhfTEVW
RUwwID0gMHgwMSwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwyX1BSRUVNUEhfTEVWRUwwID0gMHgwMiwK
MTQ0NzQ6ICAgRFBfVlNfTEVWRUwzX1BSRUVNUEhfTEVWRUwwID0gMHgwMywKMTQ0NzQ6ICAgRFBf
VlNfTEVWRUwwX1BSRUVNUEhfTEVWRUwxID0gMHgwOCwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwxX1BS
RUVNUEhfTEVWRUwxID0gMHgwOSwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwyX1BSRUVNUEhfTEVWRUwx
ID0gMHgwYSwKMTQ0NzQ6ICAgRFBfVlNfTEVWRUwwX1BSRUVNUEhfTEVWRUwyID0gMHgxMCwKMTQ0
NzQ6ICAgRFBfVlNfTEVWRUwxX1BSRUVNUEhfTEVWRUwyID0gMHgxMSwKMTQ0NzQ6ICAgRFBfVlNf
TEVWRUwwX1BSRUVNUEhfTEVWRUwzID0gMHgxOCwKMTQ0NzQ6IH07CjE0NDc0OiAjIDIwOCAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3
NDogI3ByYWdtYSBwYWNrKDEpCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbWJpb3NfaW1hZ2Vfb2Zm
c2V0ewoxNDQ3NDogT0ZGU0VUX1RPX0FUT01fUk9NX0hFQURFUl9QT0lOVEVSID0weDAwMDAwMDQ4
LAoxNDQ3NDogT0ZGU0VUX1RPX0FUT01fUk9NX0lNQUdFX1NJWkUgPTB4MDAwMDAwMDIsCjE0NDc0
OiBPRkZTRVRfVE9fQVRPTUJJT1NfQVNJQ19CVVNfTUVNX1RZUEUgPTB4OTQsCjE0NDc0OiBNQVhT
SVpFX09GX0FUT01CSU9TX0FTSUNfQlVTX01FTV9UWVBFID0yMCwKMTQ0NzQ6IE9GRlNFVF9UT19H
RVRfQVRPTUJJT1NfTlVNQkVSX09GX1NUUklOR1MgPTB4MmYsCjE0NDc0OiBPRkZTRVRfVE9fR0VU
X0FUT01CSU9TX1NUUklOR19TVEFSVCA9MHg2ZSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9t
X2NvbW1vbl90YWJsZV9oZWFkZXIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3Qgc3RydWN0dXJl
c2l6ZTsKMTQ0NzQ6ICAgdWludDhfdCBmb3JtYXRfcmV2aXNpb247CjE0NDc0OiAgIHVpbnQ4X3Qg
Y29udGVudF9yZXZpc2lvbjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3JvbV9oZWFkZXJfdjJfMgoxNDQ3NDogewoxNDQ3NDogICBz
dHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWlu
dDhfdCBhdG9tX2Jpb3Nfc3RyaW5nWzRdOwoxNDQ3NDogICB1aW50MTZfdCBiaW9zX3NlZ21lbnRf
YWRkcmVzczsKMTQ0NzQ6ICAgdWludDE2X3QgcHJvdGVjdGVkbW9kZW9mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3QgY29uZmlnZmlsZW5hbWVvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IGNyY19ibG9j
a19vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IHZiaW9zX2Jvb3R1cG1lc3NhZ2VvZmZzZXQ7CjE0
NDc0OiAgIHVpbnQxNl90IGludDEwX29mZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgcGNpYnVzZGV2
aW5pdGNvZGU7CjE0NDc0OiAgIHVpbnQxNl90IGlvYmFzZWFkZHJlc3M7CjE0NDc0OiAgIHVpbnQx
Nl90IHN1YnN5c3RlbV92ZW5kb3JfaWQ7CjE0NDc0OiAgIHVpbnQxNl90IHN1YnN5c3RlbV9pZDsK
MTQ0NzQ6ICAgdWludDE2X3QgcGNpX2luZm9fb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBtYXN0
ZXJod2Z1bmN0aW9uX29mZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgbWFzdGVyZGF0YXRhYmxlX29m
ZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2ZWQ7CjE0NDc0OiAgIHVpbnQzMl90IHBzcGRp
cnRhYmxlb2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjY0ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiBzdHJ1Y3QgYXRvbV9t
YXN0ZXJfbGlzdF9vZl9jb21tYW5kX2Z1bmN0aW9uc192Ml8xewoxNDQ3NDogICB1aW50MTZfdCBh
c2ljX2luaXQ7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjE7CjE0NDc0OiAgIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjI7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjM7CjE0NDc0
OiAgIHVpbnQxNl90IGRpZ3hlbmNvZGVyY29udHJvbDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1
bmN0aW9uNTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjsKMTQ0NzQ6ICAgdWludDE2
X3QgY21kX2Z1bmN0aW9uNzsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uODsKMTQ0NzQ6
ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uOTsKMTQ0NzQ6ICAgdWludDE2X3Qgc2V0ZW5naW5lY2xv
Y2s7CjE0NDc0OiAgIHVpbnQxNl90IHNldG1lbW9yeWNsb2NrOwoxNDQ3NDogICB1aW50MTZfdCBz
ZXRwaXhlbGNsb2NrOwoxNDQ3NDogICB1aW50MTZfdCBlbmFibGVkaXNwcG93ZXJnYXRpbmc7CjE0
NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjE0OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVu
Y3Rpb24xNTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMTY7CjE0NDc0OiAgIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjE3OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xODsKMTQ0
NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMTk7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5j
dGlvbjIwOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMTsKMTQ0NzQ6ICAgdWludDE2
X3QgY21kX2Z1bmN0aW9uMjI7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjIzOwoxNDQ3
NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yNDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0
aW9uMjU7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjI2OwoxNDQ3NDogICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24yNzsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMjg7CjE0NDc0
OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjI5OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rp
b24zMDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uMzE7CjE0NDc0OiAgIHVpbnQxNl90
IGNtZF9mdW5jdGlvbjMyOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zMzsKMTQ0NzQ6
ICAgdWludDE2X3QgYmxhbmtjcnRjOwoxNDQ3NDogICB1aW50MTZfdCBlbmFibGVjcnRjOwoxNDQ3
NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zNjsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0
aW9uMzc7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjM4OwoxNDQ3NDogICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24zOTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNDA7CjE0NDc0
OiAgIHVpbnQxNl90IGdldHNtdWNsb2NraW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qgc2VsZWN0Y3J0
Y19zb3VyY2U7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjQzOwoxNDQ3NDogICB1aW50
MTZfdCBjbWRfZnVuY3Rpb240NDsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNDU7CjE0
NDc0OiAgIHVpbnQxNl90IHNldGRjZWNsb2NrOwoxNDQ3NDogICB1aW50MTZfdCBnZXRtZW1vcnlj
bG9jazsKMTQ0NzQ6ICAgdWludDE2X3QgZ2V0ZW5naW5lY2xvY2s7CjE0NDc0OiAgIHVpbnQxNl90
IHNldGNydGNfdXNpbmdkdGR0aW1pbmc7CjE0NDc0OiAgIHVpbnQxNl90IGV4dGVybmFsZW5jb2Rl
cmNvbnRyb2w7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjUxOwoxNDQ3NDogICB1aW50
MTZfdCBjbWRfZnVuY3Rpb241MjsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTM7CjE0
NDc0OiAgIHVpbnQxNl90IHByb2Nlc3NpMmNjaGFubmVsdHJhbnNhY3Rpb247CjE0NDc0OiAgIHVp
bnQxNl90IGNtZF9mdW5jdGlvbjU1OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb241NjsK
MTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTc7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9m
dW5jdGlvbjU4OwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb241OTsKMTQ0NzQ6ICAgdWlu
dDE2X3QgY29tcHV0ZWdwdWNsb2NrcGFyYW07CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlv
bjYxOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb242MjsKMTQ0NzQ6ICAgdWludDE2X3Qg
ZHluYW1pY21lbW9yeXNldHRpbmdzOwoxNDQ3NDogICB1aW50MTZfdCBtZW1vcnl0cmFpbmluZzsK
MTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjU7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9m
dW5jdGlvbjY2OwoxNDQ3NDogICB1aW50MTZfdCBzZXR2b2x0YWdlOwoxNDQ3NDogICB1aW50MTZf
dCBjbWRfZnVuY3Rpb242ODsKMTQ0NzQ6ICAgdWludDE2X3QgcmVhZGVmdXNldmFsdWU7CjE0NDc0
OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjcwOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rp
b243MTsKMTQ0NzQ6ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzI7CjE0NDc0OiAgIHVpbnQxNl90
IGNtZF9mdW5jdGlvbjczOwoxNDQ3NDogICB1aW50MTZfdCBjbWRfZnVuY3Rpb243NDsKMTQ0NzQ6
ICAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzU7CjE0NDc0OiAgIHVpbnQxNl90IGRpZzF0cmFuc21p
dHRlcmNvbnRyb2w7CjE0NDc0OiAgIHVpbnQxNl90IGNtZF9mdW5jdGlvbjc3OwoxNDQ3NDogICB1
aW50MTZfdCBwcm9jZXNzYXV4Y2hhbm5lbHRyYW5zYWN0aW9uOwoxNDQ3NDogICB1aW50MTZfdCBj
bWRfZnVuY3Rpb243OTsKMTQ0NzQ6ICAgdWludDE2X3QgZ2V0dm9sdGFnZWluZm87CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9tYXN0ZXJfY29tbWFuZF9mdW5jdGlvbl92Ml8x
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVf
aGVhZGVyOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9tYXN0ZXJfbGlzdF9vZl9jb21tYW5kX2Z1bmN0
aW9uc192Ml8xIGxpc3RvZmNtZGZ1bmN0aW9uczsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Z1bmN0aW9uX2F0dHJpYnV0ZQoxNDQ3
NDogewoxNDQ3NDogICB1aW50MTZfdCB3c19pbl9ieXRlczo4OwoxNDQ3NDogICB1aW50MTZfdCBw
c19pbl9ieXRlczo3OwoxNDQ3NDogICB1aW50MTZfdCB1cGRhdGVkX2J5X3V0aWw6MTsKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3JvbV9od19mdW5jdGlvbl9oZWFkZXIKMTQ0NzQ6IHsKMTQ0
NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciBmdW5jX2hlYWRlcjsKMTQ0NzQ6
ICAgc3RydWN0IGF0b21fZnVuY3Rpb25fYXR0cmlidXRlIGZ1bmNfYXR0cmliOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IGF0b21fbWFzdGVyX2xpc3Rfb2ZfZGF0YV90YWJsZXNfdjJfMXsKMTQ0NzQ6
ICAgdWludDE2X3QgdXRpbGl0eXBpcGVsaW5lOwoxNDQ3NDogICB1aW50MTZfdCBtdWx0aW1lZGlh
X2luZm87CjE0NDc0OiAgIHVpbnQxNl90IHNtY19kcG1faW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qg
c3dfZGF0YXRhYmxlMzsKMTQ0NzQ6ICAgdWludDE2X3QgZmlybXdhcmVpbmZvOwoxNDQ3NDogICB1
aW50MTZfdCBzd19kYXRhdGFibGU1OwoxNDQ3NDogICB1aW50MTZfdCBsY2RfaW5mbzsKMTQ0NzQ6
ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlNzsKMTQ0NzQ6ICAgdWludDE2X3Qgc211X2luZm87CjE0
NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0YWJsZTk7CjE0NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0
YWJsZTEwOwoxNDQ3NDogICB1aW50MTZfdCB2cmFtX3VzYWdlYnlmaXJtd2FyZTsKMTQ0NzQ6ICAg
dWludDE2X3QgZ3Bpb19waW5fbHV0OwoxNDQ3NDogICB1aW50MTZfdCBzd19kYXRhdGFibGUxMzsK
MTQ0NzQ6ICAgdWludDE2X3QgZ2Z4X2luZm87CjE0NDc0OiAgIHVpbnQxNl90IHBvd2VycGxheWlu
Zm87CjE0NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0YWJsZTE2OwoxNDQ3NDogICB1aW50MTZfdCBz
d19kYXRhdGFibGUxNzsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMTg7CjE0NDc0OiAg
IHVpbnQxNl90IHN3X2RhdGF0YWJsZTE5OwoxNDQ3NDogICB1aW50MTZfdCBzd19kYXRhdGFibGUy
MDsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMjE7CjE0NDc0OiAgIHVpbnQxNl90IGRp
c3BsYXlvYmplY3RpbmZvOwoxNDQ3NDogICB1aW50MTZfdCBpbmRpcmVjdGlvYWNjZXNzOwoxNDQ3
NDogICB1aW50MTZfdCB1bWNfaW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMjU7
CjE0NDc0OiAgIHVpbnQxNl90IHN3X2RhdGF0YWJsZTI2OwoxNDQ3NDogICB1aW50MTZfdCBkY2Vf
aW5mbzsKMTQ0NzQ6ICAgdWludDE2X3QgdnJhbV9pbmZvOwoxNDQ3NDogICB1aW50MTZfdCBzd19k
YXRhdGFibGUyOTsKMTQ0NzQ6ICAgdWludDE2X3QgaW50ZWdyYXRlZHN5c3RlbWluZm87CjE0NDc0
OiAgIHVpbnQxNl90IGFzaWNfcHJvZmlsaW5nX2luZm87CjE0NDc0OiAgIHVpbnQxNl90IHZvbHRh
Z2VvYmplY3RfaW5mbzsKMTQ0NzQ6ICAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMzM7CjE0NDc0OiAg
IHVpbnQxNl90IHN3X2RhdGF0YWJsZTM0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgYXRvbV9tYXN0ZXJfZGF0YV90YWJsZV92Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0
cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICBzdHJ1
Y3QgYXRvbV9tYXN0ZXJfbGlzdF9vZl9kYXRhX3RhYmxlc192Ml8xIGxpc3RPZmRhdGF0YWJsZXM7
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2R0ZF9mb3JtYXQK
MTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3QgcGl4Y2xrOwoxNDQ3NDogICB1aW50MTZfdCBoX2Fj
dGl2ZTsKMTQ0NzQ6ICAgdWludDE2X3QgaF9ibGFua2luZ190aW1lOwoxNDQ3NDogICB1aW50MTZf
dCB2X2FjdGl2ZTsKMTQ0NzQ6ICAgdWludDE2X3Qgdl9ibGFua2luZ190aW1lOwoxNDQ3NDogICB1
aW50MTZfdCBoX3N5bmNfb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBoX3N5bmNfd2lkdGg7CjE0
NDc0OiAgIHVpbnQxNl90IHZfc3luY19vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IHZfc3luY3dp
ZHRoOwoxNDQ3NDogICB1aW50MTZfdCByZXNlcnZlZDsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2
ZWQwOwoxNDQ3NDogICB1aW50OF90IGhfYm9yZGVyOwoxNDQ3NDogICB1aW50OF90IHZfYm9yZGVy
OwoxNDQ3NDogICB1aW50MTZfdCBtaXNjaW5mbzsKMTQ0NzQ6ICAgdWludDhfdCBhdG9tX21vZGVf
aWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVmcmVzaHJhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGVudW0gYXRvbV9kdGRfZm9ybWF0X21vZGVtaXNjaW5mb3sKMTQ0NzQ6ICAgQVRP
TV9IU1lOQ19QT0xBUklUWSA9IDB4MDAwMiwKMTQ0NzQ6ICAgQVRPTV9WU1lOQ19QT0xBUklUWSA9
IDB4MDAwNCwKMTQ0NzQ6ICAgQVRPTV9IX1JFUExJQ0FUSU9OQlkyID0gMHgwMDEwLAoxNDQ3NDog
ICBBVE9NX1ZfUkVQTElDQVRJT05CWTIgPSAweDAwMjAsCjE0NDc0OiAgIEFUT01fSU5URVJMQUNF
ID0gMHgwMDgwLAoxNDQ3NDogICBBVE9NX0NPTVBPU0lURVNZTkMgPSAweDAwNDAsCjE0NDc0OiB9
OwoxNDQ3NDogIyA0NzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9h
dG9tZmlybXdhcmUuaCIKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Zpcm13YXJlX2luZm9fdjNfMQoxNDQ3
NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRl
cjsKMTQ0NzQ6ICAgdWludDMyX3QgZmlybXdhcmVfcmV2aXNpb247CjE0NDc0OiAgIHVpbnQzMl90
IGJvb3R1cF9zY2xrX2luMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90IGJvb3R1cF9tY2xrX2luMTBr
aHo7CjE0NDc0OiAgIHVpbnQzMl90IGZpcm13YXJlX2NhcGFiaWxpdHk7CjE0NDc0OiAgIHVpbnQz
Ml90IG1haW5fY2FsbF9wYXJzZXJfZW50cnk7CjE0NDc0OiAgIHVpbnQzMl90IGJpb3Nfc2NyYXRj
aF9yZWdfc3RhcnRhZGRyOwoxNDQ3NDogICB1aW50MTZfdCBib290dXBfdmRkY19tdjsKMTQ0NzQ6
ICAgdWludDE2X3QgYm9vdHVwX3ZkZGNpX212OwoxNDQ3NDogICB1aW50MTZfdCBib290dXBfbXZk
ZGNfbXY7CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1cF92ZGRnZnhfbXY7CjE0NDc0OiAgIHVpbnQ4
X3QgbWVtX21vZHVsZV9pZDsKMTQ0NzQ6ICAgdWludDhfdCBjb29saW5nc29sdXRpb25faWQ7CjE0
NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzJdOwoxNDQ3NDogICB1aW50MzJfdCBtY19iYXNlYWRk
cl9oaWdoOwoxNDQ3NDogICB1aW50MzJfdCBtY19iYXNlYWRkcl9sb3c7CjE0NDc0OiAgIHVpbnQz
Ml90IHJlc2VydmVkMls2XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBh
dG9tYmlvc19maXJtd2FyZV9jYXBhYmlsaXR5CjE0NDc0OiB7CjE0NDc0OiAgQVRPTV9GSVJNV0FS
RV9DQVBfRklSTVdBUkVfUE9TVEVEID0gMHgwMDAwMDAwMSwKMTQ0NzQ6ICBBVE9NX0ZJUk1XQVJF
X0NBUF9HUFVfVklSVFVBTElaQVRJT04gPSAweDAwMDAwMDAyLAoxNDQ3NDogIEFUT01fRklSTVdB
UkVfQ0FQX1dNSV9TVVBQT1JUID0gMHgwMDAwMDA0MCwKMTQ0NzQ6ICBBVE9NX0ZJUk1XQVJFX0NB
UF9IV0VNVV9FTkFCTEUgPSAweDAwMDAwMDgwLAoxNDQ3NDogIEFUT01fRklSTVdBUkVfQ0FQX0hX
RU1VX1VNQ19DRkcgPSAweDAwMDAwMTAwLAoxNDQ3NDogIEFUT01fRklSTVdBUkVfQ0FQX1NSQU1f
RUNDID0gMHgwMDAwMDIwMCwKMTQ0NzQ6ICBBVE9NX0ZJUk1XQVJFX0NBUF9FTkFCTEVfMlNUQUdF
X0JJU1RfVFJBSU5JTkcgPSAweDAwMDAwNDAwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBhdG9tX2Nvb2xpbmdfc29sdXRpb25faWR7CjE0NDc0OiAgIEFJUl9DT09MSU5HID0gMHgwMCwK
MTQ0NzQ6ICAgTElRVUlEX0NPT0xJTkcgPSAweDAxCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgYXRvbV9maXJtd2FyZV9pbmZvX3YzXzIgewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgZmlybXdhcmVf
cmV2aXNpb247CjE0NDc0OiAgIHVpbnQzMl90IGJvb3R1cF9zY2xrX2luMTBraHo7CjE0NDc0OiAg
IHVpbnQzMl90IGJvb3R1cF9tY2xrX2luMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90IGZpcm13YXJl
X2NhcGFiaWxpdHk7CjE0NDc0OiAgIHVpbnQzMl90IG1haW5fY2FsbF9wYXJzZXJfZW50cnk7CjE0
NDc0OiAgIHVpbnQzMl90IGJpb3Nfc2NyYXRjaF9yZWdfc3RhcnRhZGRyOwoxNDQ3NDogICB1aW50
MTZfdCBib290dXBfdmRkY19tdjsKMTQ0NzQ6ICAgdWludDE2X3QgYm9vdHVwX3ZkZGNpX212Owox
NDQ3NDogICB1aW50MTZfdCBib290dXBfbXZkZGNfbXY7CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1
cF92ZGRnZnhfbXY7CjE0NDc0OiAgIHVpbnQ4X3QgbWVtX21vZHVsZV9pZDsKMTQ0NzQ6ICAgdWlu
dDhfdCBjb29saW5nc29sdXRpb25faWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzJdOwox
NDQ3NDogICB1aW50MzJfdCBtY19iYXNlYWRkcl9oaWdoOwoxNDQ3NDogICB1aW50MzJfdCBtY19i
YXNlYWRkcl9sb3c7CjE0NDc0OiAgIHVpbnQ4X3QgYm9hcmRfaTJjX2ZlYXR1cmVfaWQ7CjE0NDc0
OiAgIHVpbnQ4X3QgYm9hcmRfaTJjX2ZlYXR1cmVfZ3Bpb19pZDsKMTQ0NzQ6ICAgdWludDhfdCBi
b2FyZF9pMmNfZmVhdHVyZV9zbGF2ZV9hZGRyOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkMzsK
MTQ0NzQ6ICAgdWludDE2X3QgYm9vdHVwX212ZGRxX212OwoxNDQ3NDogICB1aW50MTZfdCBib290
dXBfbXZwcF9tdjsKMTQ0NzQ6ICAgdWludDMyX3QgemZic3RhcnRhZGRyaW4xNm1iOwoxNDQ3NDog
ICB1aW50MzJfdCByZXNlcnZlZDJbM107CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9maXJtd2FyZV9pbmZvX3YzXzMKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29t
bW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQzMl90IGZpcm13YXJl
X3JldmlzaW9uOwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfc2Nsa19pbjEwa2h6OwoxNDQ3NDog
ICB1aW50MzJfdCBib290dXBfbWNsa19pbjEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBmaXJtd2Fy
ZV9jYXBhYmlsaXR5OwoxNDQ3NDogICB1aW50MzJfdCBtYWluX2NhbGxfcGFyc2VyX2VudHJ5Owox
NDQ3NDogICB1aW50MzJfdCBiaW9zX3NjcmF0Y2hfcmVnX3N0YXJ0YWRkcjsKMTQ0NzQ6ICAgdWlu
dDE2X3QgYm9vdHVwX3ZkZGNfbXY7CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1cF92ZGRjaV9tdjsK
MTQ0NzQ6ICAgdWludDE2X3QgYm9vdHVwX212ZGRjX212OwoxNDQ3NDogICB1aW50MTZfdCBib290
dXBfdmRkZ2Z4X212OwoxNDQ3NDogICB1aW50OF90IG1lbV9tb2R1bGVfaWQ7CjE0NDc0OiAgIHVp
bnQ4X3QgY29vbGluZ3NvbHV0aW9uX2lkOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkMVsyXTsK
MTQ0NzQ6ICAgdWludDMyX3QgbWNfYmFzZWFkZHJfaGlnaDsKMTQ0NzQ6ICAgdWludDMyX3QgbWNf
YmFzZWFkZHJfbG93OwoxNDQ3NDogICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX2lkOwoxNDQ3
NDogICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX2dwaW9faWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
Ym9hcmRfaTJjX2ZlYXR1cmVfc2xhdmVfYWRkcjsKMTQ0NzQ6ICAgdWludDhfdCByZXNlcnZlZDM7
CjE0NDc0OiAgIHVpbnQxNl90IGJvb3R1cF9tdmRkcV9tdjsKMTQ0NzQ6ICAgdWludDE2X3QgYm9v
dHVwX212cHBfbXY7CjE0NDc0OiAgIHVpbnQzMl90IHpmYnN0YXJ0YWRkcmluMTZtYjsKMTQ0NzQ6
ICAgdWludDMyX3QgcHBsaWJfcHB0YWJsZV9pZDsKMTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWQy
WzJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGxjZF9pbmZvX3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAg
IHN0cnVjdCBhdG9tX2R0ZF9mb3JtYXQgbGNkX3RpbWluZzsKMTQ0NzQ6ICAgdWludDE2X3QgYmFj
a2xpZ2h0X3B3bTsKMTQ0NzQ6ICAgdWludDE2X3Qgc3BlY2lhbF9oYW5kbGVfY2FwOwoxNDQ3NDog
ICB1aW50MTZfdCBwYW5lbF9taXNjOwoxNDQ3NDogICB1aW50MTZfdCBsdmRzX21heF9zbGlua19w
Y2xrOwoxNDQ3NDogICB1aW50MTZfdCBsdmRzX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQx
Nl90IGx2ZHNfc3NfcmF0ZV8xMGh6OwoxNDQ3NDogICB1aW50OF90IHB3cl9vbl9kaWdvbl90b19k
ZTsKMTQ0NzQ6ICAgdWludDhfdCBwd3Jfb25fZGVfdG9fdmFyeV9ibDsKMTQ0NzQ6ICAgdWludDhf
dCBwd3JfZG93bl92YXJ5X2Jsb2ZmX3RvX2RlOwoxNDQ3NDogICB1aW50OF90IHB3cl9kb3duX2Rl
X3RvX2RpZ29mZjsKMTQ0NzQ6ICAgdWludDhfdCBwd3Jfb2ZmX2RlbGF5OwoxNDQ3NDogICB1aW50
OF90IHB3cl9vbl92YXJ5X2JsX3RvX2Jsb247CjE0NDc0OiAgIHVpbnQ4X3QgcHdyX2Rvd25fYmxv
ZmZfdG9fdmFyeV9ibG9mZjsKMTQ0NzQ6ICAgdWludDhfdCBwYW5lbF9icGM7CjE0NDc0OiAgIHVp
bnQ4X3QgZHBjZF9lZHBfY29uZmlnX2NhcDsKMTQ0NzQ6ICAgdWludDhfdCBkcGNkX21heF9saW5r
X3JhdGU7CjE0NDc0OiAgIHVpbnQ4X3QgZHBjZF9tYXhfbGFuZV9jb3VudDsKMTQ0NzQ6ICAgdWlu
dDhfdCBkcGNkX21heF9kb3duc3ByZWFkOwoxNDQ3NDogICB1aW50OF90IG1pbl9hbGxvd2VkX2Js
X2xldmVsOwoxNDQ3NDogICB1aW50OF90IG1heF9hbGxvd2VkX2JsX2xldmVsOwoxNDQ3NDogICB1
aW50OF90IGJvb3R1cF9ibF9sZXZlbDsKMTQ0NzQ6ICAgdWludDhfdCBkcGx2ZHNyeGlkOwoxNDQ3
NDogICB1aW50MzJfdCByZXNlcnZlZDFbOF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IGVudW0gYXRvbV9sY2RfaW5mb19wYW5lbF9taXNjewoxNDQ3NDogICBBVE9NX1BBTkVMX01J
U0NfRlBESSA9MHgwMDAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0
b21fbGNkX2luZm9fZHB0b2x2ZHNfcnhfaWQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgZURQX1RPX0xWRFNf
UlhfRElTQUJMRSA9IDB4MDAsCjE0NDc0OiAgIGVEUF9UT19MVkRTX0NPTU1PTl9JRCA9IDB4MDEs
CjE0NDc0OiAgIGVEUF9UT19MVkRTX1JFQUxURUtfSUQgPSAweDAyLAoxNDQ3NDogfTsKMTQ0NzQ6
ICMgNjIwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13
YXJlLmgiCjE0NDc0OiBzdHJ1Y3QgYXRvbV9ncGlvX3Bpbl9hc3NpZ25tZW50CjE0NDc0OiB7CjE0
NDc0OiAgIHVpbnQzMl90IGRhdGFfYV9yZWdfaW5kZXg7CjE0NDc0OiAgIHVpbnQ4X3QgZ3Bpb19i
aXRzaGlmdDsKMTQ0NzQ6ICAgdWludDhfdCBncGlvX21hc2tfYml0c2hpZnQ7CjE0NDc0OiAgIHVp
bnQ4X3QgZ3Bpb19pZDsKMTQ0NzQ6ICAgdWludDhfdCByZXNlcnZlZDsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX2dwaW9fcGluX2Fzc2lnbm1lbnRfZ3Bpb19pZCB7
CjE0NDc0OiAgIEkyQ19IV19MQU5FX01VWCA9MHgwZiwKMTQ0NzQ6ICAgSTJDX0hXX0VOR0lORV9J
RF9NQVNLID0weDcwLAoxNDQ3NDogICBJMkNfSFdfQ0FQID0weDgwLAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogICBQQ0lFX1ZERENfQ09OVFJPTF9HUElPX1BJTklEID0gNTYsCjE0NDc0
OiAKMTQ0NzQ6ICAgUFBfQUNfRENfU1dJVENIX0dQSU9fUElOSUQgPSA2MCwKMTQ0NzQ6IAoxNDQ3
NDogICBWRERDX1ZSSE9UX0dQSU9fUElOSUQgPSA2MSwKMTQ0NzQ6IAoxNDQ3NDogICBWRERDX1BD
Q19HUElPX1BJTklEID0gNjIsCjE0NDc0OiAKMTQ0NzQ6ICAgRUZVU0VfQ1VUX0VOQUJMRV9HUElP
X1BJTklEID0gNjMsCjE0NDc0OiAKMTQ0NzQ6ICAgRFJBTV9TRUxGX1JFRlJFU0hfR1BJT19QSU5J
RCA9IDY0LAoxNDQ3NDogCjE0NDc0OiAgIFRIRVJNQUxfSU5UX09VVFBVVF9HUElPX1BJTklEID02
NSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fZ3Bpb19waW5f
bHV0X3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRl
ciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAKMTQ0NzQ6ICAgc3RydWN0IGF0b21fZ3Bpb19waW5fYXNz
aWdubWVudCBncGlvX3Bpbls4XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDY2NyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogc3RydWN0
IHZyYW1fdXNhZ2VieWZpcm13YXJlX3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21f
Y29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQzMl90IHN0YXJ0
X2FkZHJlc3NfaW5fa2I7CjE0NDc0OiAgIHVpbnQxNl90IHVzZWRfYnlfZmlybXdhcmVfaW5fa2I7
CjE0NDc0OiAgIHVpbnQxNl90IHVzZWRfYnlfZHJpdmVyX2luX2tiOwoxNDQ3NDogfTsKMTQ0NzQ6
ICMgNjgyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13
YXJlLmgiCjE0NDc0OiBlbnVtIGF0b21fb2JqZWN0X3JlY29yZF90eXBlX2lkCjE0NDc0OiB7CjE0
NDc0OiAgIEFUT01fSTJDX1JFQ09SRF9UWVBFID0xLAoxNDQ3NDogICBBVE9NX0hQRF9JTlRfUkVD
T1JEX1RZUEUgPTIsCjE0NDc0OiAgIEFUT01fT0JKRUNUX0dQSU9fQ05UTF9SRUNPUkRfVFlQRSA9
OSwKMTQ0NzQ6ICAgQVRPTV9DT05ORUNUT1JfSFBEUElOX0xVVF9SRUNPUkRfVFlQRSA9MTYsCjE0
NDc0OiAgIEFUT01fQ09OTkVDVE9SX0FVWEREQ19MVVRfUkVDT1JEX1RZUEUgPTE3LAoxNDQ3NDog
ICBBVE9NX0VOQ09ERVJfQ0FQX1JFQ09SRF9UWVBFPTIwLAoxNDQ3NDogICBBVE9NX0JSQUNLRVRf
TEFZT1VUX1JFQ09SRF9UWVBFPTIxLAoxNDQ3NDogICBBVE9NX0NPTk5FQ1RPUl9GT1JDRURfVE1E
U19DQVBfUkVDT1JEX1RZUEU9MjIsCjE0NDc0OiAgIEFUT01fUkVDT1JEX0VORF9UWVBFID0weEZG
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fY29tbW9uX3JlY29yZF9oZWFk
ZXIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCByZWNvcmRfdHlwZTsKMTQ0NzQ6ICAgdWludDhf
dCByZWNvcmRfc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2kyY19y
ZWNvcmQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3JlY29yZF9oZWFkZXIg
cmVjb3JkX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBpMmNfaWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
aTJjX3NsYXZlX2FkZHI7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9ocGRf
aW50X3JlY29yZAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hl
YWRlciByZWNvcmRfaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IHBpbl9pZDsKMTQ0NzQ6ICAgdWlu
dDhfdCBwbHVnaW5fcGluX3N0YXRlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBl
bnVtIGF0b21fZW5jb2Rlcl9jYXBzX2RlZgoxNDQ3NDogewoxNDQ3NDogICBBVE9NX0VOQ09ERVJf
Q0FQX1JFQ09SRF9IQlIyID0weDAxLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ0FQX1JFQ09SRF9N
U1RfRU4gPTB4MDEsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9DQVBfUkVDT1JEX0hCUjJfRU4gPTB4
MDIsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9DQVBfUkVDT1JEX0hETUk2R2Jwc19FTiA9MHgwNCwK
MTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSM19FTiA9MHgwOCwKMTQ0NzQ6ICAg
QVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfVVNCX0NfVFlQRSA9MHgxMDAsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9lbmNvZGVyX2NhcHNfcmVjb3JkCjE0NDc0OiB7CjE0NDc0
OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CjE0NDc0
OiAgIHVpbnQzMl90IGVuY29kZXJjYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBh
dG9tX2Nvbm5lY3Rvcl9jYXBzX2RlZgoxNDQ3NDogewoxNDQ3NDogICBBVE9NX0NPTk5FQ1RPUl9D
QVBfSU5URVJOQUxfRElTUExBWSA9IDB4MDEsCjE0NDc0OiAgIEFUT01fQ09OTkVDVE9SX0NBUF9J
TlRFUk5BTF9ESVNQTEFZX0JMID0gMHgwMiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBhdG9tX2Rpc3BfY29ubmVjdG9yX2NhcHNfcmVjb3JkCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVj
dCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CjE0NDc0OiAgIHVpbnQz
Ml90IGNvbm5lY3RjYXBzOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9ncGlvX3Bpbl9jb250cm9sX3BhaXIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCBncGlv
X2lkOwoxNDQ3NDogICB1aW50OF90IGdwaW9fcGluc3RhdGU7CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiBzdHJ1Y3QgYXRvbV9vYmplY3RfZ3Bpb19jbnRsX3JlY29yZAoxNDQ3NDogewoxNDQ3NDog
ICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hlYWRlciByZWNvcmRfaGVhZGVyOwoxNDQ3NDog
ICB1aW50OF90IGZsYWc7CjE0NDc0OiAgIHVpbnQ4X3QgbnVtYmVyX29mX3BpbnM7CjE0NDc0OiAg
IHN0cnVjdCBhdG9tX2dwaW9fcGluX2NvbnRyb2xfcGFpciBncGlvWzFdOwoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZ3Bpb19waW5fY29udHJvbF9waW5zdGF0ZV9k
ZWYKMTQ0NzQ6IHsKMTQ0NzQ6ICAgR1BJT19QSU5fVFlQRV9JTlBVVCA9IDB4MDAsCjE0NDc0OiAg
IEdQSU9fUElOX1RZUEVfT1VUUFVUID0gMHgxMCwKMTQ0NzQ6ICAgR1BJT19QSU5fVFlQRV9IV19D
T05UUk9MID0gMHgyMCwKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIEdQSU9fUElOX09VVFBVVF9T
VEFURV9NQVNLID0gMHgwMSwKMTQ0NzQ6ICAgR1BJT19QSU5fT1VUUFVUX1NUQVRFX1NISUZUID0g
MCwKMTQ0NzQ6ICAgR1BJT19QSU5fU1RBVEVfQUNUSVZFX0xPVyA9IDB4MCwKMTQ0NzQ6ICAgR1BJ
T19QSU5fU1RBVEVfQUNUSVZFX0hJR0ggPSAweDEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX2dsc3luY19yZWNvcmRfZ3Bpb19pbmRleF9kZWYKMTQ0
NzQ6IHsKMTQ0NzQ6ICAgQVRPTV9HUElPX0lOREVYX0dMU1lOQ19SRUZDTEsgPSAwLAoxNDQ3NDog
ICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX0hTWU5DID0gMSwKMTQ0NzQ6ICAgQVRPTV9HUElPX0lO
REVYX0dMU1lOQ19WU1lOQyA9IDIsCjE0NDc0OiAgIEFUT01fR1BJT19JTkRFWF9HTFNZTkNfU1dB
UF9SRVEgPSAzLAoxNDQ3NDogICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX1NXQVBfR05UID0gNCwK
MTQ0NzQ6ICAgQVRPTV9HUElPX0lOREVYX0dMU1lOQ19JTlRFUlJVUFQgPSA1LAoxNDQ3NDogICBB
VE9NX0dQSU9fSU5ERVhfR0xTWU5DX1ZfUkVTRVQgPSA2LAoxNDQ3NDogICBBVE9NX0dQSU9fSU5E
RVhfR0xTWU5DX1NXQVBfQ05UTCA9IDcsCjE0NDc0OiAgIEFUT01fR1BJT19JTkRFWF9HTFNZTkNf
U1dBUF9TRUwgPSA4LAoxNDQ3NDogICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX01BWCA9IDksCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9ocGRw
aW5fbHV0X3JlY29yZAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3Jk
X2hlYWRlciByZWNvcmRfaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IGhwZF9waW5fbWFwWzhdOwox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fY29ubmVjdG9yX2F1eGRkY19sdXRf
cmVjb3JkCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVy
IHJlY29yZF9oZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgYXV4X2RkY19tYXBbOF07CjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9jb25uZWN0b3JfZm9yY2VkX3RtZHNfY2FwX3Jl
Y29yZAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hlYWRlciBy
ZWNvcmRfaGVhZGVyOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbWF4dG1kc2Nsa3JhdGVfaW4y
XzVtaHo7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgYXRvbV9jb25uZWN0b3JfbGF5b3V0X2luZm8KMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWlu
dDE2X3QgY29ubmVjdG9yb2JqaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgY29ubmVjdG9yX3R5cGU7CjE0
NDc0OiAgIHVpbnQ4X3QgcG9zaXRpb247CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9jb25uZWN0b3JfbGF5b3V0X2luZm9fY29ubmVjdG9yX3R5cGVfZGVmCjE0NDc0
OiB7CjE0NDc0OiAgIENPTk5FQ1RPUl9UWVBFX0RWSV9EID0gMSwKMTQ0NzQ6IAoxNDQ3NDogICBD
T05ORUNUT1JfVFlQRV9IRE1JID0gNCwKMTQ0NzQ6ICAgQ09OTkVDVE9SX1RZUEVfRElTUExBWV9Q
T1JUID0gNSwKMTQ0NzQ6ICAgQ09OTkVDVE9SX1RZUEVfTUlOSV9ESVNQTEFZX1BPUlQgPSA2LAox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fYnJhY2tldF9sYXlvdXRfcmVjb3Jk
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29y
ZF9oZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgYnJhY2tldGxlbjsKMTQ0NzQ6ICAgdWludDhfdCBi
cmFja2V0d2lkdGg7CjE0NDc0OiAgIHVpbnQ4X3QgY29ubl9udW07CjE0NDc0OiAgIHVpbnQ4X3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9sYXlvdXRfaW5mbyBjb25u
X2luZm9bMV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlzcGxheV9kZXZp
Y2VfdGFnX2RlZnsKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0xDRDFfU1VQUE9SVCA9IDB4MDAwMiwK
MTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDFfU1VQUE9SVCA9IDB4MDAwOCwKMTQ0NzQ6ICAgQVRP
TV9ESVNQTEFZX0RGUDJfU1VQUE9SVCA9IDB4MDA4MCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RG
UDNfU1VQUE9SVCA9IDB4MDIwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDRfU1VQUE9SVCA9
IDB4MDQwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDVfU1VQUE9SVCA9IDB4MDgwMCwKMTQ0
NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDZfU1VQUE9SVCA9IDB4MDA0MCwKMTQ0NzQ6ICAgQVRPTV9E
SVNQTEFZX0RGUHhfU1VQUE9SVCA9IDB4MGVjOCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX2Rpc3BsYXlfb2JqZWN0X3BhdGhfdjIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2
X3QgZGlzcGxheV9vYmppZDsKMTQ0NzQ6ICAgdWludDE2X3QgZGlzcF9yZWNvcmRvZmZzZXQ7CjE0
NDc0OiAgIHVpbnQxNl90IGVuY29kZXJvYmppZDsKMTQ0NzQ6ICAgdWludDE2X3QgZXh0ZW5jb2Rl
cm9iamlkOwoxNDQ3NDogICB1aW50MTZfdCBlbmNvZGVyX3JlY29yZG9mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3QgZXh0ZW5jb2Rlcl9yZWNvcmRvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IGRldmlj
ZV90YWc7CjE0NDc0OiAgIHVpbnQ4X3QgcHJpb3JpdHlfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVz
ZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZGlzcGxheV9vYmplY3RfaW5m
b190YWJsZV92MV80CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9o
ZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50MTZfdCBzdXBwb3J0ZWRkZXZpY2VzOwox
NDQ3NDogICB1aW50OF90IG51bWJlcl9vZl9wYXRoOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVk
OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9kaXNwbGF5X29iamVjdF9wYXRoX3YyIGRpc3BsYXlfcGF0
aFs4XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2Rpc3BsYXlfY29udHJvbGxlcl9pbmZv
X3Y0XzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0
YWJsZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQzMl90IGRpc3BsYXlfY2FwczsKMTQ0NzQ6ICAgdWlu
dDMyX3QgYm9vdHVwX2Rpc3BjbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQxNl90IGRjZV9yZWZjbGtf
MTBraHo7CjE0NDc0OiAgIHVpbnQxNl90IGkyY19lbmdpbmVfcmVmY2xrXzEwa2h6OwoxNDQ3NDog
ICB1aW50MTZfdCBkdmlfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgZHZpX3NzX3Jh
dGVfMTBoejsKMTQ0NzQ6ICAgdWludDE2X3QgaGRtaV9zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1
aW50MTZfdCBoZG1pX3NzX3JhdGVfMTBoejsKMTQ0NzQ6ICAgdWludDE2X3QgZHBfc3NfcGVyY2Vu
dGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgZHBfc3NfcmF0ZV8xMGh6OwoxNDQ3NDogICB1aW50OF90
IGR2aV9zc19tb2RlOwoxNDQ3NDogICB1aW50OF90IGhkbWlfc3NfbW9kZTsKMTQ0NzQ6ICAgdWlu
dDhfdCBkcF9zc19tb2RlOwoxNDQ3NDogICB1aW50OF90IHNzX3Jlc2VydmVkOwoxNDQ3NDogICB1
aW50OF90IGhhcmRjb2RlX21vZGVfbnVtOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkMVszXTsK
MTQ0NzQ6ICAgdWludDE2X3QgZHBwaHlfcmVmY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MTZfdCBy
ZXNlcnZlZDI7CjE0NDc0OiAgIHVpbnQ4X3QgZGNlaXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhf
dCBkY2VpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50OF90IG1heF9kaXNwX3BpcGVfbnVtOwoxNDQ3
NDogICB1aW50OF90IG1heF92Ymlvc19hY3RpdmVfZGlzcF9waXBlX251bTsKMTQ0NzQ6ICAgdWlu
dDhfdCBtYXhfcHBsbF9udW07CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2Rpc3BfcGh5X251bTsKMTQ0
NzQ6ICAgdWludDhfdCBtYXhfYXV4X3BhaXJzOwoxNDQ3NDogICB1aW50OF90IHJlbW90ZWRpc3Bs
YXljb25maWc7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQzWzhdOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9kaXNwbGF5X2NvbnRyb2xsZXJfaW5mb192NF8y
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVf
aGVhZGVyOwoxNDQ3NDogICB1aW50MzJfdCBkaXNwbGF5X2NhcHM7CjE0NDc0OiAgIHVpbnQzMl90
IGJvb3R1cF9kaXNwY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MTZfdCBkY2VfcmVmY2xrXzEwa2h6
OwoxNDQ3NDogICB1aW50MTZfdCBpMmNfZW5naW5lX3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWlu
dDE2X3QgZHZpX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQxNl90IGR2aV9zc19yYXRlXzEw
aHo7CjE0NDc0OiAgIHVpbnQxNl90IGhkbWlfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2
X3QgaGRtaV9zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGRwX3NzX3BlcmNlbnRhZ2U7
CjE0NDc0OiAgIHVpbnQxNl90IGRwX3NzX3JhdGVfMTBoejsKMTQ0NzQ6ICAgdWludDhfdCBkdmlf
c3NfbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBoZG1pX3NzX21vZGU7CjE0NDc0OiAgIHVpbnQ4X3Qg
ZHBfc3NfbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBzc19yZXNlcnZlZDsKMTQ0NzQ6ICAgdWludDhf
dCBkZnBfaGFyZGNvZGVfbW9kZV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgZGZwX2hhcmRjb2RlX3Jl
ZnJlc2hyYXRlOwoxNDQ3NDogICB1aW50OF90IHZnYV9oYXJkY29kZV9tb2RlX251bTsKMTQ0NzQ6
ICAgdWludDhfdCB2Z2FfaGFyZGNvZGVfcmVmcmVzaHJhdGU7CjE0NDc0OiAgIHVpbnQxNl90IGRw
cGh5X3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2ZWQyOwoxNDQ3NDogICB1
aW50OF90IGRjbmlwX21pbl92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgZGNuaXBfbWF4X3ZlcjsKMTQ0
NzQ6ICAgdWludDhfdCBtYXhfZGlzcF9waXBlX251bTsKMTQ0NzQ6ICAgdWludDhfdCBtYXhfdmJp
b3NfYWN0aXZlX2Rpc3BfcGlwZV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3BwbGxfbnVtOwox
NDQ3NDogICB1aW50OF90IG1heF9kaXNwX3BoeV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2F1
eF9wYWlyczsKMTQ0NzQ6ICAgdWludDhfdCByZW1vdGVkaXNwbGF5Y29uZmlnOwoxNDQ3NDogICB1
aW50OF90IHJlc2VydmVkM1s4XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51
bSBkY2VfaW5mb19jYXBzX2RlZgoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgIERDRV9JTkZPX0NB
UFNfRk9SQ0VfRElTUERFVl9DT05ORUNURUQgPTB4MDIsCjE0NDc0OiAKMTQ0NzQ6ICAgRENFX0lO
Rk9fQ0FQU19ESVNBQkxFX0RGUF9EUF9IQlIyID0weDA0LAoxNDQ3NDogCjE0NDc0OiAgIERDRV9J
TkZPX0NBUFNfRU5BQkxFX0lOVEVSTEFDX1RJTUlORyA9MHgwOCwKMTQ0NzQ6IAoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX2V4dF9kaXNwbGF5X3BhdGgKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3QgZGV2
aWNlX3RhZzsKMTQ0NzQ6ICAgdWludDE2X3QgZGV2aWNlX2FjcGlfZW51bTsKMTQ0NzQ6ICAgdWlu
dDE2X3QgY29ubmVjdG9yb2JqaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgYXV4ZGRjbHV0X2luZGV4Owox
NDQ3NDogICB1aW50OF90IGhwZGx1dF9pbmRleDsKMTQ0NzQ6ICAgdWludDE2X3QgZXh0X2VuY29k
ZXJfb2JqaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5lbG1hcHBpbmc7CjE0NDc0OiAgIHVpbnQ4
X3QgY2hwbmludmVydDsKMTQ0NzQ6ICAgdWludDE2X3QgY2FwczsKMTQ0NzQ6ICAgdWludDE2X3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZXh0X2Rpc3Bs
YXlfcGF0aF9jYXBfZGVmCjE0NDc0OiB7CjE0NDc0OiAgIEVYVF9ESVNQTEFZX1BBVEhfQ0FQU19f
SEJSMl9ESVNBQkxFID0weDAwMDEsCjE0NDc0OiAgIEVYVF9ESVNQTEFZX1BBVEhfQ0FQU19fRFBf
RklYRURfVlNfRU4gPTB4MDAwMiwKMTQ0NzQ6ICAgRVhUX0RJU1BMQVlfUEFUSF9DQVBTX19FWFRf
Q0hJUF9NQVNLID0weDAwN0MsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9l
eHRlcm5hbF9kaXNwbGF5X2Nvbm5lY3Rpb25faW5mbwoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3Qg
YXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBn
dWlkWzE2XTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fZXh0X2Rpc3BsYXlfcGF0aCBwYXRoWzddOwox
NDQ3NDogICB1aW50OF90IGNoZWNrc3VtOwoxNDQ3NDogICB1aW50OF90IHN0ZXJlb3BpbmlkOwox
NDQ3NDogICB1aW50OF90IHJlbW90ZWRpc3BsYXljb25maWc7CjE0NDc0OiAgIHVpbnQ4X3QgZWRw
dG9sdmRzcnhpZDsKMTQ0NzQ6ICAgdWludDhfdCBmaXhkcHZvbHRhZ2Vzd2luZzsKMTQ0NzQ6ICAg
dWludDhfdCByZXNlcnZlZFszXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2NhbWVyYV9k
cGh5X3RpbWluZ19wYXJhbQoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IHByb2ZpbGVfaWQ7CjE0
NDc0OiAgIHVpbnQzMl90IHBhcmFtOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0
b21fY2FtZXJhX2RwaHlfZWxlY19wYXJhbQoxNDQ3NDogewoxNDQ3NDogICB1aW50MTZfdCBwYXJh
bVszXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2NhbWVyYV9tb2R1bGVf
aW5mbwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IG1vZHVsZV9pZDsKMTQ0NzQ6ICAgdWludDhf
dCBtb2R1bGVfbmFtZVs4XTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY2FtZXJhX2RwaHlfdGltaW5n
X3BhcmFtIHRpbWluZ3BhcmFtWzZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0
b21fY2FtZXJhX2ZsYXNobGlnaHRfaW5mbwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IGZsYXNo
bGlnaHRfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgbmFtZVs4XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBhdG9tX2NhbWVyYV9kYXRhCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHZl
cnNpb25Db2RlOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jYW1lcmFfbW9kdWxlX2luZm8gY2FtZXJh
SW5mb1szXTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY2FtZXJhX2ZsYXNobGlnaHRfaW5mbyBmbGFz
aEluZm87CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NhbWVyYV9kcGh5X2VsZWNfcGFyYW0gZHBoeV9w
YXJhbTsKMTQ0NzQ6ICAgdWludDMyX3QgY3JjX3ZhbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGF0b21fMTRubV9kcHBoeV9kdmloZG1pX3R1bmluZ3NldAoxNDQ3NDog
ewoxNDQ3NDogICB1aW50MzJfdCBtYXhfc3ltY2xrX2luMTBraHo7CjE0NDc0OiAgIHVpbnQ4X3Qg
ZW5jb2Rlcl9tb2RlOwoxNDQ3NDogICB1aW50OF90IHBoeV9zZWw7CjE0NDc0OiAgIHVpbnQxNl90
IG1hcmdpbmRlZW1waDsKMTQ0NzQ6ICAgdWludDhfdCBkZWVtcGhfNmRiXzQ7CjE0NDc0OiAgIHVp
bnQ4X3QgYm9vc3RhZGo7CjE0NDc0OiAgIHVpbnQ4X3QgdHhfZHJpdmVyX2ZpZnR5X29obXM7CjE0
NDc0OiAgIHVpbnQ4X3QgZGVlbXBoX3NlbDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBhdG9tXzE0bm1fZHBwaHlfZHBfc2V0dGluZ3sKMTQ0NzQ6ICAgdWludDhfdCBkcF92c19wZW1w
aF9sZXZlbDsKMTQ0NzQ6ICAgdWludDE2X3QgbWFyZ2luZGVlbXBoOwoxNDQ3NDogICB1aW50OF90
IGRlZW1waF82ZGJfNDsKMTQ0NzQ6ICAgdWludDhfdCBib29zdGFkajsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHBfdHVuaW5nc2V0ewoxNDQ3NDogICB1
aW50OF90IHBoeV9zZWw7CjE0NDc0OiAgIHVpbnQ4X3QgdmVyc2lvbjsKMTQ0NzQ6ICAgdWludDE2
X3QgdGFibGVfc2l6ZTsKMTQ0NzQ6ICAgdWludDE2X3QgcmVzZXJ2ZWQ7CjE0NDc0OiAgIHN0cnVj
dCBhdG9tXzE0bm1fZHBwaHlfZHBfc2V0dGluZyBkcHR1bmluZ1sxMF07CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV8xNG5tX2RpZ190cmFuc21pdHRlcl9pbmZvX2hlYWRlcl92
NF8wewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRl
cjsKMTQ0NzQ6ICAgdWludDE2X3QgcGNpZV9waHlfdG1kc19oZG1pX21hY3JvX3NldHRpbmdzX29m
ZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgdW5pcGh5X3ZzX2VtcGhfbG9va3VwX3RhYmxlX29mZnNl
dDsKMTQ0NzQ6ICAgdWludDE2X3QgdW5pcGh5X3hiYXJfc2V0dGluZ3NfdGFibGVfb2Zmc2V0Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fMTRubV9jb21icGh5X3RtZHNfdnNf
c2V0CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3Qgc3ltX2NsazsKMTQ0NzQ6ICAgdWludDhfdCBk
aWdfbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBwaHlfc2VsOwoxNDQ3NDogICB1aW50MTZfdCBjb21t
b25fbWFyX2RlZW1waF9ub21fX21hcmdpbl9kZWVtcGhfdmFsOwoxNDQ3NDogICB1aW50OF90IGNv
bW1vbl9zZWxkZWVtcGg2MF9fZGVlbXBoXzZkYl80X3ZhbDsKMTQ0NzQ6ICAgdWludDhfdCBjbWRf
YnVzX2dsb2JhbF9mb3JfdHhfbGFuZTBfX2Jvb3N0YWRqX3ZhbCA7CjE0NDc0OiAgIHVpbnQ4X3Qg
Y29tbW9uX3pjYWxjb2RlX2N0cmxfX3R4X2RyaXZlcl9maWZ0eV9vaG1zX3ZhbDsKMTQ0NzQ6ICAg
dWludDhfdCBtYXJnaW5fZGVlbXBoX2xhbmUwX19kZWVtcGhfc2VsX3ZhbDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2kyY19yZWdfaW5mbyB7CjE0NDc0OiAgIHVpbnQ4X3Qg
dWNJMmNSZWdJbmRleDsKMTQ0NzQ6ICAgdWludDhfdCB1Y0kyY1JlZ1ZhbDsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2hkbWlfcmV0aW1lcl9yZWRyaXZlcl9zZXQgewoxNDQ3
NDogICB1aW50OF90IEhkbWlTbHZBZGRyOwoxNDQ3NDogICB1aW50OF90IEhkbWlSZWdOdW07CjE0
NDc0OiAgIHVpbnQ4X3QgSGRtaTZHUmVnTnVtOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9pMmNfcmVn
X2luZm8gSGRtaVJlZ1NldHRpbmdbOV07CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2kyY19yZWdfaW5m
byBIZG1pNkdoelJlZ1NldHRpbmdbM107CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9pbnRlZ3JhdGVkX3N5c3RlbV9pbmZvX3YxXzExCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVj
dCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50MzJf
dCB2Ymlvc19taXNjOwoxNDQ3NDogICB1aW50MzJfdCBncHVjYXBpbmZvOwoxNDQ3NDogICB1aW50
MzJfdCBzeXN0ZW1fY29uZmlnOwoxNDQ3NDogICB1aW50MzJfdCBjcHVjYXBpbmZvOwoxNDQ3NDog
ICB1aW50MTZfdCBncHVjbGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgZ3B1Y2xr
X3NzX3R5cGU7CjE0NDc0OiAgIHVpbnQxNl90IGx2ZHNfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAg
dWludDE2X3QgbHZkc19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGhkbWlfc3NfcGVy
Y2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgaGRtaV9zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVp
bnQxNl90IGR2aV9zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBkdmlfc3NfcmF0ZV8x
MGh6OwoxNDQ3NDogICB1aW50MTZfdCBkcHBoeV9vdmVycmlkZTsKMTQ0NzQ6ICAgdWludDE2X3Qg
bHZkc19taXNjOwoxNDQ3NDogICB1aW50MTZfdCBiYWNrbGlnaHRfcHdtX2h6OwoxNDQ3NDogICB1
aW50OF90IG1lbW9yeXR5cGU7CjE0NDc0OiAgIHVpbnQ4X3QgdW1hY2hhbm5lbG51bWJlcjsKMTQ0
NzQ6ICAgdWludDhfdCBwd3Jfb25fZGlnb25fdG9fZGU7CjE0NDc0OiAgIHVpbnQ4X3QgcHdyX29u
X2RlX3RvX3ZhcnlfYmw7CjE0NDc0OiAgIHVpbnQ4X3QgcHdyX2Rvd25fdmFyeV9ibG9mZl90b19k
ZTsKMTQ0NzQ6ICAgdWludDhfdCBwd3JfZG93bl9kZV90b19kaWdvZmY7CjE0NDc0OiAgIHVpbnQ4
X3QgcHdyX29mZl9kZWxheTsKMTQ0NzQ6ICAgdWludDhfdCBwd3Jfb25fdmFyeV9ibF90b19ibG9u
OwoxNDQ3NDogICB1aW50OF90IHB3cl9kb3duX2Jsb2ZmX3RvX3ZhcnlfYmxvZmY7CjE0NDc0OiAg
IHVpbnQ4X3QgbWluX2FsbG93ZWRfYmxfbGV2ZWw7CjE0NDc0OiAgIHVpbnQ4X3QgaHRjX2h5c3Rf
bGltaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgaHRjX3RtcF9saW1pdDsKMTQ0NzQ6ICAgdWludDhfdCBy
ZXNlcnZlZDE7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQyOwoxNDQ3NDogICBzdHJ1Y3QgYXRv
bV9leHRlcm5hbF9kaXNwbGF5X2Nvbm5lY3Rpb25faW5mbyBleHRkaXNwY29ubmluZm87CjE0NDc0
OiAgIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHZpaGRtaV90dW5pbmdzZXQgZHZpX3R1bmluZ3Nl
dDsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kdmloZG1pX3R1bmluZ3NldCBoZG1p
X3R1bmluZ3NldDsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kdmloZG1pX3R1bmlu
Z3NldCBoZG1pNmdfdHVuaW5nc2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2Rw
X3R1bmluZ3NldCBkcF90dW5pbmdzZXQ7CjE0NDc0OiAgIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlf
ZHBfdHVuaW5nc2V0IGRwX2hicjNfdHVuaW5nc2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jYW1l
cmFfZGF0YSBjYW1lcmFfaW5mbzsKMTQ0NzQ6ICAgc3RydWN0IGF0b21faGRtaV9yZXRpbWVyX3Jl
ZHJpdmVyX3NldCBkcDBfcmV0aW1lcl9zZXQ7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2hkbWlfcmV0
aW1lcl9yZWRyaXZlcl9zZXQgZHAxX3JldGltZXJfc2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9o
ZG1pX3JldGltZXJfcmVkcml2ZXJfc2V0IGRwMl9yZXRpbWVyX3NldDsKMTQ0NzQ6ICAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDNfcmV0aW1lcl9zZXQ7CjE0NDc0OiAg
IHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHBfdHVuaW5nc2V0IGRwX2hicl90dW5pbmdzZXQ7CjE0
NDc0OiAgIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHBfdHVuaW5nc2V0IGRwX2hicjJfdHVuaW5n
c2V0OwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBlZHBfdHVu
aW5nc2V0OwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZlZFs2Nl07CjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3N5c3RlbV92Ymlvc21pc2NfZGVmewox
NDQ3NDogICBJTlRFR1JBVEVEX1NZU1RFTV9JTkZPX19HRVRfRURJRF9DQUxMQkFDS19GVU5DX1NV
UFBPUlQgPSAweDAxLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVu
dW0gYXRvbV9zeXN0ZW1fZ3B1Y2FwaW5mX2RlZnsKMTQ0NzQ6ICAgU1lTX0lORk9fR1BVQ0FQU19f
RU5BQkVMX0RGU19CWVBBU1MgPSAweDEwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBlbnVtIGF0b21fc3lzaW5mb19kcHBoeV9vdmVycmlkZV9kZWZ7CjE0NDc0OiAgIEFUT01fRU5B
QkxFX0RWSV9UVU5JTkdTRVQgPSAweDAxLAoxNDQ3NDogICBBVE9NX0VOQUJMRV9IRE1JX1RVTklO
R1NFVCA9IDB4MDIsCjE0NDc0OiAgIEFUT01fRU5BQkxFX0hETUk2R19UVU5JTkdTRVQgPSAweDA0
LAoxNDQ3NDogICBBVE9NX0VOQUJMRV9EUF9UVU5JTkdTRVQgPSAweDA4LAoxNDQ3NDogICBBVE9N
X0VOQUJMRV9EUF9IQlIzX1RVTklOR1NFVCA9IDB4MTAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGVudW0gYXRvbV9zeXNfaW5mb19sdmRzX21pc2NfZGVmCjE0NDc0OiB7CjE0NDc0
OiAgIFNZU19JTkZPX0xWRFNfTUlTQ184ODhfRlBESV9NT0RFID0weDAxLAoxNDQ3NDogICBTWVNf
SU5GT19MVkRTX01JU0NfODg4X0JQQ19NT0RFID0weDA0LAoxNDQ3NDogICBTWVNfSU5GT19MVkRT
X01JU0NfT1ZFUlJJREVfRU4gPTB4MDgsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogZW51bSBhdG9tX2RtaV90MTdfbWVtX3R5cGVfZGVmewoxNDQ3NDogICBPdGhlck1l
bVR5cGUgPSAweDAxLAoxNDQ3NDogICBVbmtub3duTWVtVHlwZSwKMTQ0NzQ6ICAgRHJhbU1lbVR5
cGUsCjE0NDc0OiAgIEVkcmFtTWVtVHlwZSwKMTQ0NzQ6ICAgVnJhbU1lbVR5cGUsCjE0NDc0OiAg
IFNyYW1NZW1UeXBlLAoxNDQ3NDogICBSYW1NZW1UeXBlLAoxNDQ3NDogICBSb21NZW1UeXBlLAox
NDQ3NDogICBGbGFzaE1lbVR5cGUsCjE0NDc0OiAgIEVlcHJvbU1lbVR5cGUsCjE0NDc0OiAgIEZl
cHJvbU1lbVR5cGUsCjE0NDc0OiAgIEVwcm9tTWVtVHlwZSwKMTQ0NzQ6ICAgQ2RyYW1NZW1UeXBl
LAoxNDQ3NDogICBUaHJlZURyYW1NZW1UeXBlLAoxNDQ3NDogICBTZHJhbU1lbVR5cGUsCjE0NDc0
OiAgIFNncmFtTWVtVHlwZSwKMTQ0NzQ6ICAgUmRyYW1NZW1UeXBlLAoxNDQ3NDogICBEZHJNZW1U
eXBlLAoxNDQ3NDogICBEZHIyTWVtVHlwZSwKMTQ0NzQ6ICAgRGRyMkZiZGltbU1lbVR5cGUsCjE0
NDc0OiAgIERkcjNNZW1UeXBlID0gMHgxOCwKMTQ0NzQ6ICAgRmJkMk1lbVR5cGUsCjE0NDc0OiAg
IERkcjRNZW1UeXBlLAoxNDQ3NDogICBMcERkck1lbVR5cGUsCjE0NDc0OiAgIExwRGRyMk1lbVR5
cGUsCjE0NDc0OiAgIExwRGRyM01lbVR5cGUsCjE0NDc0OiAgIExwRGRyNE1lbVR5cGUsCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fZnVzaW9uX3N5
c3RlbV9pbmZvX3Y0CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2ludGVncmF0ZWRfc3lz
dGVtX2luZm9fdjFfMTEgc3lzaW5mbzsKMTQ0NzQ6ICAgdWludDMyX3QgcG93ZXJwbGF5aW5mb1sy
NTZdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMTIxOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogc3RydWN0IGF0b21fZ2Z4X2luZm9f
djJfMgoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRh
YmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBnZnhpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50
OF90IGdmeGlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3NoYWRlcl9lbmdpbmVzOwox
NDQ3NDogICB1aW50OF90IG1heF90aWxlX3BpcGVzOwoxNDQ3NDogICB1aW50OF90IG1heF9jdV9w
ZXJfc2g7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3NoX3Blcl9zZTsKMTQ0NzQ6ICAgdWludDhfdCBt
YXhfYmFja2VuZHNfcGVyX3NlOwoxNDQ3NDogICB1aW50OF90IG1heF90ZXh0dXJlX2NoYW5uZWxf
Y2FjaGVzOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcjsKMTQ0NzQ6
ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfc3JjX2FkZHJfaGk7CjE0NDc0OiAgIHVpbnQzMl90
IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2NwX2Rt
YV9kc3RfYWRkcl9oaTsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfY29tbWFuZDsK
MTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9zdGF0dXM7CjE0NDc0OiAgIHVpbnQzMl90IHJl
Z2FkZHJfcmxjX2dwdV9jbG9ja18zMjsKMTQ0NzQ6ICAgdWludDMyX3QgcmxjX2dwdV90aW1lcl9y
ZWZjbGs7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9nZnhfaW5mb192Ml8z
IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7
CjE0NDc0OiAgIHVpbnQ4X3QgZ2Z4aXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCBnZnhpcF9t
YXhfdmVyOwoxNDQ3NDogICB1aW50OF90IG1heF9zaGFkZXJfZW5naW5lczsKMTQ0NzQ6ICAgdWlu
dDhfdCBtYXhfdGlsZV9waXBlczsKMTQ0NzQ6ICAgdWludDhfdCBtYXhfY3VfcGVyX3NoOwoxNDQ3
NDogICB1aW50OF90IG1heF9zaF9wZXJfc2U7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X2JhY2tlbmRz
X3Blcl9zZTsKMTQ0NzQ6ICAgdWludDhfdCBtYXhfdGV4dHVyZV9jaGFubmVsX2NhY2hlczsKMTQ0
NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfc3JjX2FkZHI7CjE0NDc0OiAgIHVpbnQzMl90
IHJlZ2FkZHJfY3BfZG1hX3NyY19hZGRyX2hpOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2Nw
X2RtYV9kc3RfYWRkcjsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfZHN0X2FkZHJf
aGk7CjE0NDc0OiAgIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1hX2NvbW1hbmQ7CjE0NDc0OiAgIHVp
bnQzMl90IHJlZ2FkZHJfY3Bfc3RhdHVzOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX3JsY19n
cHVfY2xvY2tfMzI7CjE0NDc0OiAgIHVpbnQzMl90IHJsY19ncHVfdGltZXJfcmVmY2xrOwoxNDQ3
NDogICB1aW50OF90IGFjdGl2ZV9jdV9wZXJfc2g7CjE0NDc0OiAgIHVpbnQ4X3QgYWN0aXZlX3Ji
X3Blcl9zZTsKMTQ0NzQ6ICAgdWludDE2X3QgZ2Nnb2xkZW5vZmZzZXQ7CjE0NDc0OiAgIHVpbnQz
Ml90IHJtMjFfc3JhbV92bWluX3ZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGF0b21fZ2Z4X2luZm9fdjJfNAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25f
dGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBnZnhpcF9taW5fdmVy
OwoxNDQ3NDogICB1aW50OF90IGdmeGlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3No
YWRlcl9lbmdpbmVzOwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkOwoxNDQ3NDogICB1aW50OF90
IG1heF9jdV9wZXJfc2g7CjE0NDc0OiAgIHVpbnQ4X3QgbWF4X3NoX3Blcl9zZTsKMTQ0NzQ6ICAg
dWludDhfdCBtYXhfYmFja2VuZHNfcGVyX3NlOwoxNDQ3NDogICB1aW50OF90IG1heF90ZXh0dXJl
X2NoYW5uZWxfY2FjaGVzOwoxNDQ3NDogICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRk
cjsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFfc3JjX2FkZHJfaGk7CjE0NDc0OiAg
IHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyOwoxNDQ3NDogICB1aW50MzJfdCByZWdh
ZGRyX2NwX2RtYV9kc3RfYWRkcl9oaTsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9kbWFf
Y29tbWFuZDsKMTQ0NzQ6ICAgdWludDMyX3QgcmVnYWRkcl9jcF9zdGF0dXM7CjE0NDc0OiAgIHVp
bnQzMl90IHJlZ2FkZHJfcmxjX2dwdV9jbG9ja18zMjsKMTQ0NzQ6ICAgdWludDMyX3QgcmxjX2dw
dV90aW1lcl9yZWZjbGs7CjE0NDc0OiAgIHVpbnQ4X3QgYWN0aXZlX2N1X3Blcl9zaDsKMTQ0NzQ6
ICAgdWludDhfdCBhY3RpdmVfcmJfcGVyX3NlOwoxNDQ3NDogICB1aW50MTZfdCBnY2dvbGRlbm9m
ZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgZ2NfbnVtX2dwcnM7CjE0NDc0OiAgIHVpbnQxNl90IGdj
X2dzcHJpbV9idWZmX2RlcHRoOwoxNDQ3NDogICB1aW50MTZfdCBnY19wYXJhbWV0ZXJfY2FjaGVf
ZGVwdGg7CjE0NDc0OiAgIHVpbnQxNl90IGdjX3dhdmVfc2l6ZTsKMTQ0NzQ6ICAgdWludDE2X3Qg
Z2NfbWF4X3dhdmVzX3Blcl9zaW1kOwoxNDQ3NDogICB1aW50MTZfdCBnY19sZHNfc2l6ZTsKMTQ0
NzQ6ICAgdWludDhfdCBnY19udW1fbWF4X2dzX3RoZHM7CjE0NDc0OiAgIHVpbnQ4X3QgZ2NfZ3Nf
dGFibGVfZGVwdGg7CjE0NDc0OiAgIHVpbnQ4X3QgZ2NfZG91YmxlX29mZmNoaXBfbGRzX2J1ZmZl
cjsKMTQ0NzQ6ICAgdWludDhfdCBnY19tYXhfc2NyYXRjaF9zbG90c19wZXJfY3U7CjE0NDc0OiAg
IHVpbnQzMl90IHNyYW1fcm1fZnVzZXNfdmFsOwoxNDQ3NDogICB1aW50MzJfdCBzcmFtX2N1c3Rv
bV9ybV9mdXNlc192YWw7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fc211X2luZm9fdjNfMQoxNDQ3NDog
ewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsK
MTQ0NzQ6ICAgdWludDhfdCBzbXVpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50OF90IHNtdWlwX21h
eF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3Qgc211X3JzZDE7CjE0NDc0OiAgIHVpbnQ4X3QgZ3B1Y2xr
X3NzX21vZGU7CjE0NDc0OiAgIHVpbnQxNl90IHNjbGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAg
dWludDE2X3Qgc2Nsa19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGdwdWNsa19zc19w
ZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBncHVjbGtfc3NfcmF0ZV8xMGh6OwoxNDQ3NDog
ICB1aW50MzJfdCBjb3JlX3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19ncGlv
X2JpdDsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19wb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCB2
cjBob3RfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5OwoxNDQ3NDog
ICB1aW50OF90IHZyMWhvdF9ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCB2cjFob3RfcG9sYXJp
dHk7CjE0NDc0OiAgIHVpbnQ4X3QgZndfY3RmX2dwaW9fYml0OwoxNDQ3NDogICB1aW50OF90IGZ3
X2N0Zl9wb2xhcml0eTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3NtdV9p
bmZvX3YzXzIgewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxl
X2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBzbXVpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50OF90
IHNtdWlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3Qgc211X3JzZDE7CjE0NDc0OiAgIHVpbnQ4
X3QgZ3B1Y2xrX3NzX21vZGU7CjE0NDc0OiAgIHVpbnQxNl90IHNjbGtfc3NfcGVyY2VudGFnZTsK
MTQ0NzQ6ICAgdWludDE2X3Qgc2Nsa19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQxNl90IGdw
dWNsa19zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBncHVjbGtfc3NfcmF0ZV8xMGh6
OwoxNDQ3NDogICB1aW50MzJfdCBjb3JlX3JlZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDhfdCBh
Y19kY19ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19wb2xhcml0eTsKMTQ0NzQ6ICAg
dWludDhfdCB2cjBob3RfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5
OwoxNDQ3NDogICB1aW50OF90IHZyMWhvdF9ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCB2cjFo
b3RfcG9sYXJpdHk7CjE0NDc0OiAgIHVpbnQ4X3QgZndfY3RmX2dwaW9fYml0OwoxNDQ3NDogICB1
aW50OF90IGZ3X2N0Zl9wb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBwY2NfZ3Bpb19iaXQ7CjE0
NDc0OiAgIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CjE0NDc0OiAgIHVpbnQxNl90IHNtdWdv
bGRlbm9mZnNldDsKMTQ0NzQ6ICAgdWludDMyX3QgZ3B1cGxsX3Zjb19mcmVxXzEwa2h6OwoxNDQ3
NDogICB1aW50MzJfdCBib290dXBfc21uY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290
dXBfc29jY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfbXAwY2xrXzEwa2h6Owox
NDQ3NDogICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBi
b290dXBfbGNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3QgYm9vdHVwX2RjZWZjbGtfMTBraHo7
CjE0NDc0OiAgIHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVfdmFsdWU7CjE0NDc0OiAg
IHVpbnQzMl90IHJlc2VydmVkWzVdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0
b21fc211X2luZm9fdjNfMyB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFk
ZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IHNtdWlwX21pbl92ZXI7CjE0NDc0OiAg
IHVpbnQ4X3Qgc211aXBfbWF4X3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB3YWZsY2xrX3NzX21vZGU7
CjE0NDc0OiAgIHVpbnQ4X3QgZ3B1Y2xrX3NzX21vZGU7CjE0NDc0OiAgIHVpbnQxNl90IHNjbGtf
c3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3Qgc2Nsa19zc19yYXRlXzEwaHo7CjE0NDc0
OiAgIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwoxNDQ3NDogICB1aW50MTZfdCBncHVj
bGtfc3NfcmF0ZV8xMGh6OwoxNDQ3NDogICB1aW50MzJfdCBjb3JlX3JlZmNsa18xMGtoejsKMTQ0
NzQ6ICAgdWludDhfdCBhY19kY19ncGlvX2JpdDsKMTQ0NzQ6ICAgdWludDhfdCBhY19kY19wb2xh
cml0eTsKMTQ0NzQ6ICAgdWludDhfdCB2cjBob3RfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
dnIwaG90X3BvbGFyaXR5OwoxNDQ3NDogICB1aW50OF90IHZyMWhvdF9ncGlvX2JpdDsKMTQ0NzQ6
ICAgdWludDhfdCB2cjFob3RfcG9sYXJpdHk7CjE0NDc0OiAgIHVpbnQ4X3QgZndfY3RmX2dwaW9f
Yml0OwoxNDQ3NDogICB1aW50OF90IGZ3X2N0Zl9wb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBw
Y2NfZ3Bpb19iaXQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CjE0NDc0OiAg
IHVpbnQxNl90IHNtdWdvbGRlbm9mZnNldDsKMTQ0NzQ6ICAgdWludDMyX3QgZ3B1cGxsX3Zjb19m
cmVxXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfc21uY2xrXzEwa2h6OwoxNDQ3NDog
ICB1aW50MzJfdCBib290dXBfc29jY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBf
bXAwY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEwa2h6OwoxNDQ3
NDogICB1aW50MzJfdCBib290dXBfbGNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3QgYm9vdHVw
X2RjZWZjbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVf
dmFsdWU7CjE0NDc0OiAgIHVpbnQzMl90IHN5c3BsbDNfMF92Y29fZnJlcV8xMGtoejsKMTQ0NzQ6
ICAgdWludDMyX3Qgc3lzcGxsM18xX3Zjb19mcmVxXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBi
b290dXBfZmNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3QgYm9vdHVwX3dhZmxjbGtfMTBraHo7
CjE0NDc0OiAgIHVpbnQzMl90IHNtdV9pbmZvX2NhcHM7CjE0NDc0OiAgIHVpbnQxNl90IHdhZmxj
bGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3Qgc211aW5pdG9mZnNldDsKMTQ0NzQ6
ICAgdWludDMyX3QgcmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0
XzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJs
ZV9oZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbGlxdWlkMV9pMmNfYWRkcmVzczsKMTQ0NzQ6ICAg
dWludDhfdCBsaXF1aWQyX2kyY19hZGRyZXNzOwoxNDQ3NDogICB1aW50OF90IHZyX2kyY19hZGRy
ZXNzOwoxNDQ3NDogICB1aW50OF90IHBseF9pMmNfYWRkcmVzczsKMTQ0NzQ6IAoxNDQ3NDogICB1
aW50OF90IGxpcXVpZF9pMmNfbGluZXNjbDsKMTQ0NzQ6ICAgdWludDhfdCBsaXF1aWRfaTJjX2xp
bmVzZGE7CjE0NDc0OiAgIHVpbnQ4X3QgdnJfaTJjX2xpbmVzY2w7CjE0NDc0OiAgIHVpbnQ4X3Qg
dnJfaTJjX2xpbmVzZGE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBwbHhfaTJjX2xpbmVzY2w7
CjE0NDc0OiAgIHVpbnQ4X3QgcGx4X2kyY19saW5lc2RhOwoxNDQ3NDogICB1aW50OF90IHZyc2Vu
c29ycHJlc2VudDsKMTQ0NzQ6ICAgdWludDhfdCBsaXF1aWRzZW5zb3JwcmVzZW50OwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwZ2Z4OwoxNDQ3NDogICB1aW50MTZfdCBt
YXh2b2x0YWdlc3RlcHNvYzsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IHZkZGdmeHZybWFwcGlu
ZzsKMTQ0NzQ6ICAgdWludDhfdCB2ZGRzb2N2cm1hcHBpbmc7CjE0NDc0OiAgIHVpbnQ4X3QgdmRk
bWVtMHZybWFwcGluZzsKMTQ0NzQ6ICAgdWludDhfdCB2ZGRtZW0xdnJtYXBwaW5nOwoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgZ2Z4dWx2cGhhc2VzaGVkZGluZ21hc2s7CjE0NDc0OiAgIHVpbnQ4
X3Qgc29jdWx2cGhhc2VzaGVkZGluZ21hc2s7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhfdlsy
XTsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBnZnhtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50
OF90IGdmeG9mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKMTQ0
NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IHNv
Y29mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKMTQ0NzQ6IAox
NDQ3NDogICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0wb2Zm
c2V0OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMDsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0xb2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMTsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50OF90IGFjZGNncGlvOwoxNDQ3NDogICB1aW50OF90IGFjZGNwb2xhcml0eTsKMTQ0NzQ6
ICAgdWludDhfdCB2cjBob3RncGlvOwoxNDQ3NDogICB1aW50OF90IHZyMGhvdHBvbGFyaXR5Owox
NDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgdnIxaG90Z3BpbzsKMTQ0NzQ6ICAgdWludDhfdCB2cjFo
b3Rwb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nMTsKMTQ0NzQ6ICAgdWludDhfdCBw
YWRkaW5nMjsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IGxlZHBpbjA7CjE0NDc0OiAgIHVpbnQ4
X3QgbGVkcGluMTsKMTQ0NzQ6ICAgdWludDhfdCBsZWRwaW4yOwoxNDQ3NDogICB1aW50OF90IHBh
ZGRpbmc4XzQ7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7
CjE0NDc0OiAgdWludDhfdCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50OwoxNDQ3NDogIHVpbnQxNl90
IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3ByZWFk
ZW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAgdWlu
dDE2X3QgdWNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBzb2NjbGtzcHJl
YWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHNvY2Nsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAg
IHVpbnQxNl90IHNvY2Nsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICB1aW50OF90IGFjZ2dm
eGNsa3NwcmVhZGVuYWJsZWQ7CjE0NDc0OiAgdWludDhfdCBhY2dnZnhjbGtzcHJlYWRwZXJjZW50
OwoxNDQ3NDogIHVpbnQxNl90IGFjZ2dmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICB1
aW50OF90IFZyMl9JMkNfYWRkcmVzczsKMTQ0NzQ6ICB1aW50OF90IHBhZGRpbmdfdnIyWzNdOwox
NDQ3NDogCjE0NDc0OiAgdWludDMyX3QgYm9hcmRyZXNlcnZlZFs5XTsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9zbWNfZHBtX2luZm9fdjRfMwoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCBsaXF1aWQxX2ky
Y19hZGRyZXNzOwoxNDQ3NDogICB1aW50OF90IGxpcXVpZDJfaTJjX2FkZHJlc3M7CjE0NDc0OiAg
IHVpbnQ4X3QgdnJfaTJjX2FkZHJlc3M7CjE0NDc0OiAgIHVpbnQ4X3QgcGx4X2kyY19hZGRyZXNz
OwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgbGlxdWlkX2kyY19saW5lc2NsOwoxNDQ3NDogICB1
aW50OF90IGxpcXVpZF9pMmNfbGluZXNkYTsKMTQ0NzQ6ICAgdWludDhfdCB2cl9pMmNfbGluZXNj
bDsKMTQ0NzQ6ICAgdWludDhfdCB2cl9pMmNfbGluZXNkYTsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50
OF90IHBseF9pMmNfbGluZXNjbDsKMTQ0NzQ6ICAgdWludDhfdCBwbHhfaTJjX2xpbmVzZGE7CjE0
NDc0OiAgIHVpbnQ4X3QgdnJzZW5zb3JwcmVzZW50OwoxNDQ3NDogICB1aW50OF90IGxpcXVpZHNl
bnNvcnByZXNlbnQ7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBnZng7
CjE0NDc0OiAgIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwc29jOwoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgdmRkZ2Z4dnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZHNvY3ZybWFwcGluZzsK
MTQ0NzQ6ICAgdWludDhfdCB2ZGRtZW0wdnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZG1l
bTF2cm1hcHBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBnZnh1bHZwaGFzZXNoZWRkaW5n
bWFzazsKMTQ0NzQ6ICAgdWludDhfdCBzb2N1bHZwaGFzZXNoZWRkaW5nbWFzazsKMTQ0NzQ6ICAg
dWludDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhf
djsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBnZnhtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50
OF90IGdmeG9mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKMTQ0
NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IHNv
Y29mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKMTQ0NzQ6IAox
NDQ3NDogICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0wb2Zm
c2V0OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMDsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0xb2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMTsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50OF90IGFjZGNncGlvOwoxNDQ3NDogICB1aW50OF90IGFjZGNwb2xhcml0eTsKMTQ0NzQ6
ICAgdWludDhfdCB2cjBob3RncGlvOwoxNDQ3NDogICB1aW50OF90IHZyMGhvdHBvbGFyaXR5Owox
NDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgdnIxaG90Z3BpbzsKMTQ0NzQ6ICAgdWludDhfdCB2cjFo
b3Rwb2xhcml0eTsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nMTsKMTQ0NzQ6ICAgdWludDhfdCBw
YWRkaW5nMjsKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IGxlZHBpbjA7CjE0NDc0OiAgIHVpbnQ4
X3QgbGVkcGluMTsKMTQ0NzQ6ICAgdWludDhfdCBsZWRwaW4yOwoxNDQ3NDogICB1aW50OF90IHBh
ZGRpbmc4XzQ7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBwbGxnZnhjbGtzcHJlYWRlbmFibGVk
OwoxNDQ3NDogICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVpbnQx
Nl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3By
ZWFkZW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAg
dWludDE2X3QgdWNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBmY2xrc3By
ZWFkZW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCBmY2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAg
dWludDE2X3QgZmNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBmbGxnZnhj
bGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7
CjE0NDc0OiAgIHVpbnQxNl90IGZsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6ICAg
dWludDMyX3QgYm9hcmRyZXNlcnZlZFsxMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3Qgc211ZHBtX2kyY2NvbnRyb2xsZXJjb25maWdfdCB7CjE0NDc0OiAgIHVpbnQzMl90IGVuYWJs
ZWQ7CjE0NDc0OiAgIHVpbnQzMl90IHNsYXZlYWRkcmVzczsKMTQ0NzQ6ICAgdWludDMyX3QgY29u
dHJvbGxlcnBvcnQ7CjE0NDc0OiAgIHVpbnQzMl90IGNvbnRyb2xsZXJuYW1lOwoxNDQ3NDogICB1
aW50MzJfdCB0aGVybWFsdGhyb3R0bGVyOwoxNDQ3NDogICB1aW50MzJfdCBpMmNwcm90b2NvbDsK
MTQ0NzQ6ICAgdWludDMyX3QgaTJjc3BlZWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1
Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfNAoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9j
b21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgaTJjX3Bh
ZGRpbmdbM107CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBnZng7CjE0
NDc0OiAgIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwc29jOwoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4
X3QgdmRkZ2Z4dnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZHNvY3ZybWFwcGluZzsKMTQ0
NzQ6ICAgdWludDhfdCB2ZGRtZW0wdnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZG1lbTF2
cm1hcHBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBnZnh1bHZwaGFzZXNoZWRkaW5nbWFz
azsKMTQ0NzQ6ICAgdWludDhfdCBzb2N1bHZwaGFzZXNoZWRkaW5nbWFzazsKMTQ0NzQ6ICAgdWlu
dDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhfdjsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MTZfdCBnZnhtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90
IGdmeG9mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKMTQ0NzQ6
IAoxNDQ3NDogICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IHNvY29m
ZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0wb2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMDsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW0xb2Zmc2V0Owox
NDQ3NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5bWVtMTsKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAgIHVpbnQ4X3QgYWNkY2dwaW87CjE0NDc0OiAgIHVpbnQ4X3QgYWNkY3BvbGFyaXR5Owox
NDQ3NDogICB1aW50OF90IHZyMGhvdGdwaW87CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90cG9sYXJp
dHk7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB2cjFob3RncGlvOwoxNDQ3NDogICB1aW50OF90
IHZyMWhvdHBvbGFyaXR5OwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmcxOwoxNDQ3NDogICB1aW50
OF90IHBhZGRpbmcyOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBsZWRwaW4wOwox
NDQ3NDogICB1aW50OF90IGxlZHBpbjE7CjE0NDc0OiAgIHVpbnQ4X3QgbGVkcGluMjsKMTQ0NzQ6
ICAgdWludDhfdCBwYWRkaW5nOF80OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBw
bGxnZnhjbGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBl
cmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogICB1aW50OF90IHVjbGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90
IHVjbGtzcHJlYWRwZXJjZW50OwoxNDQ3NDogICB1aW50MTZfdCB1Y2xrc3ByZWFkZnJlcTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgZmNsa3NwcmVhZGVuYWJsZWQ7CjE0NDc0OiAg
IHVpbnQ4X3QgZmNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IGZjbGtzcHJlYWRm
cmVxOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBmbGxnZnhjbGtzcHJlYWRlbmFi
bGVkOwoxNDQ3NDogICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVp
bnQxNl90IGZsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICBzdHJ1
Y3Qgc211ZHBtX2kyY2NvbnRyb2xsZXJjb25maWdfdCBpMmNjb250cm9sbGVyc1s3XTsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IGJvYXJkcmVzZXJ2ZWRbMTBdOwoxNDQ3NDogfTsK
MTQ0NzQ6IAoxNDQ3NDogZW51bSBzbXVkcG1fdjRfNV9pMmNjb250cm9sbGVybmFtZV9lewoxNDQ3
NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX05BTUVfVlJfR0ZYID0gMCwKMTQ0NzQ6ICAg
ICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9OQU1FX1ZSX1NPQywKMTQ0NzQ6ICAgICBTTUNfVjRf
NV9JMkNfQ09OVFJPTExFUl9OQU1FX1ZSX1ZERENJLAoxNDQ3NDogICAgIFNNQ19WNF81X0kyQ19D
T05UUk9MTEVSX05BTUVfVlJfTVZERCwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExF
Ul9OQU1FX0xJUVVJRDAsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9M
SVFVSUQxLAoxNDQ3NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX05BTUVfUExYLAoxNDQ3
NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX05BTUVfU1BBUkUsCjE0NDc0OiAgICAgU01D
X1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9DT1VOVCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gc211ZHBtX3Y0XzVfaTJjY29udHJvbGxlcnRocm90dGxlcl9lewoxNDQ3NDogICAgIFNN
Q19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9UWVBFX05PTkUgPSAwLAoxNDQ3NDogICAg
IFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9HRlgsCjE0NDc0OiAgICAgU01D
X1Y0XzVfSTJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1ZSX1NPQywKMTQ0NzQ6ICAgICBTTUNfVjRf
NV9JMkNfQ09OVFJPTExFUl9USFJPVFRMRVJfVlJfVkREQ0ksCjE0NDc0OiAgICAgU01DX1Y0XzVf
STJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1ZSX01WREQsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJD
X0NPTlRST0xMRVJfVEhST1RUTEVSX0xJUVVJRDAsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NP
TlRST0xMRVJfVEhST1RUTEVSX0xJUVVJRDEsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NPTlRS
T0xMRVJfVEhST1RUTEVSX1BMWCwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9U
SFJPVFRMRVJfQ09VTlQsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHNtdWRwbV92NF81
X2kyY2NvbnRyb2xsZXJwcm90b2NvbF9lewoxNDQ3NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9M
TEVSX1BST1RPQ09MX1ZSXzAsCjE0NDc0OiAgICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfUFJP
VE9DT0xfVlJfMSwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9U
TVBfMCwKMTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9UTVBfMSwK
MTQ0NzQ6ICAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9TUEFSRV8wLAoxNDQ3
NDogICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1BST1RPQ09MX1NQQVJFXzEsCjE0NDc0OiAg
ICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfUFJPVE9DT0xfQ09VTlQsCjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3Qgc211ZHBtX2kyY19jb250cm9sbGVyX2NvbmZpZ192MgoxNDQ3NDog
ewoxNDQ3NDogICAgIHVpbnQ4X3QgRW5hYmxlZDsKMTQ0NzQ6ICAgICB1aW50OF90IFNwZWVkOwox
NDQ3NDogICAgIHVpbnQ4X3QgUGFkZGluZ1syXTsKMTQ0NzQ6ICAgICB1aW50MzJfdCBTbGF2ZUFk
ZHJlc3M7CjE0NDc0OiAgICAgdWludDhfdCBDb250cm9sbGVyUG9ydDsKMTQ0NzQ6ICAgICB1aW50
OF90IENvbnRyb2xsZXJOYW1lOwoxNDQ3NDogICAgIHVpbnQ4X3QgVGhlcm1hbFRocm90dGVyOwox
NDQ3NDogICAgIHVpbnQ4X3QgSTJjUHJvdG9jb2w7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBz
dHJ1Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfNQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAgIHN0cnVjdCBzbXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyIEkyY0NvbnRyb2xsZXJz
WzhdOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgTWF4Vm9sdGFnZVN0ZXBHZng7
CjE0NDc0OiAgIHVpbnQxNl90IE1heFZvbHRhZ2VTdGVwU29jOwoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgVmRkR2Z4VnJNYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IFZkZFNvY1ZyTWFwcGluZzsK
MTQ0NzQ6ICAgdWludDhfdCBWZGRNZW0wVnJNYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IFZkZE1l
bTFWck1hcHBpbmc7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBHZnhVbHZQaGFzZVNoZWRkaW5n
TWFzazsKMTQ0NzQ6ICAgdWludDhfdCBTb2NVbHZQaGFzZVNoZWRkaW5nTWFzazsKMTQ0NzQ6ICAg
dWludDhfdCBFeHRlcm5hbFNlbnNvclByZXNlbnQ7CjE0NDc0OiAgIHVpbnQ4X3QgUGFkZGluZzhf
VjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQxNl90IEdmeE1heEN1cnJlbnQ7CjE0NDc0
OiAgIHVpbnQ4X3QgR2Z4T2Zmc2V0OwoxNDQ3NDogICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5
R2Z4OwoxNDQ3NDogICB1aW50MTZfdCBTb2NNYXhDdXJyZW50OwoxNDQ3NDogICB1aW50OF90IFNv
Y09mZnNldDsKMTQ0NzQ6ICAgdWludDhfdCBQYWRkaW5nX1RlbGVtZXRyeVNvYzsKMTQ0NzQ6IAox
NDQ3NDogICB1aW50MTZfdCBNZW0wTWF4Q3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBNZW0wT2Zm
c2V0OwoxNDQ3NDogICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5TWVtMDsKMTQ0NzQ6IAoxNDQ3
NDogICB1aW50MTZfdCBNZW0xTWF4Q3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBNZW0xT2Zmc2V0
OwoxNDQ3NDogICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5TWVtMTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgQWNEY0dwaW87CjE0NDc0OiAgIHVpbnQ4X3QgQWNEY1BvbGFyaXR5
OwoxNDQ3NDogICB1aW50OF90IFZSMEhvdEdwaW87CjE0NDc0OiAgIHVpbnQ4X3QgVlIwSG90UG9s
YXJpdHk7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBWUjFIb3RHcGlvOwoxNDQ3NDogICB1aW50
OF90IFZSMUhvdFBvbGFyaXR5OwoxNDQ3NDogICB1aW50OF90IEd0aHJHcGlvOwoxNDQ3NDogICB1
aW50OF90IEd0aHJQb2xhcml0eTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQ4X3QgTGVk
UGluMDsKMTQ0NzQ6ICAgdWludDhfdCBMZWRQaW4xOwoxNDQ3NDogICB1aW50OF90IExlZFBpbjI7
CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZzhfNDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgUGxsR2Z4Y2xrU3ByZWFkRW5hYmxlZDsKMTQ0NzQ6ICAgdWludDhfdCBQbGxHZnhjbGtT
cHJlYWRQZXJjZW50OwoxNDQ3NDogICB1aW50MTZfdCBQbGxHZnhjbGtTcHJlYWRGcmVxOwoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBEZmxsR2Z4Y2xrU3ByZWFkRW5hYmxlZDsKMTQ0
NzQ6ICAgdWludDhfdCBEZmxsR2Z4Y2xrU3ByZWFkUGVyY2VudDsKMTQ0NzQ6ICAgdWludDE2X3Qg
RGZsbEdmeGNsa1NwcmVhZEZyZXE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IFVj
bGtTcHJlYWRFbmFibGVkOwoxNDQ3NDogICB1aW50OF90IFVjbGtTcHJlYWRQZXJjZW50OwoxNDQ3
NDogICB1aW50MTZfdCBVY2xrU3ByZWFkRnJlcTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVp
bnQ4X3QgU29jbGtTcHJlYWRFbmFibGVkOwoxNDQ3NDogICB1aW50OF90IFNvY2Nsa1NwcmVhZFBl
cmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IFNvY2Nsa1NwcmVhZEZyZXE7CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogICB1aW50MTZfdCBUb3RhbEJvYXJkUG93ZXI7CjE0NDc0OiAgIHVpbnQxNl90IEJv
YXJkUGFkZGluZzsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IE12ZGRSYXRpbzsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBCb2FyZFJlc2VydmVkWzldOwoxNDQ3NDogCjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfNgoxNDQ3NDog
ewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsK
MTQ0NzQ6IAoxNDQ3NDogICB1aW50MzJfdCBpMmNfcGFkZGluZ1szXTsKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50MTZfdCBtYXh2b2x0YWdlc3RlcGdmeDsKMTQ0NzQ6ICAgdWludDE2X3QgbWF4dm9sdGFn
ZXN0ZXBzb2M7CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCB2ZGRnZnh2cm1hcHBpbmc7CjE0NDc0
OiAgIHVpbnQ4X3QgdmRkc29jdnJtYXBwaW5nOwoxNDQ3NDogICB1aW50OF90IHZkZG1lbXZybWFw
cGluZzsKMTQ0NzQ6ICAgdWludDhfdCBib2FyZHZybWFwcGluZzsKMTQ0NzQ6IAoxNDQ3NDogICB1
aW50OF90IGdmeHVsdnBoYXNlc2hlZGRpbmdtYXNrOwoxNDQ3NDogICB1aW50OF90IGV4dGVybmFs
c2Vuc29ycHJlc2VudDsKMTQ0NzQ6ICAgdWludDhfdCBwYWRkaW5nOF92WzJdOwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgZ2Z4bWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBn
ZnhvZmZzZXQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlnZng7CjE0NDc0OiAK
MTQ0NzQ6ICAgdWludDE2X3Qgc29jbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBzb2NvZmZz
ZXQ7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlzb2M7CjE0NDc0OiAKMTQ0NzQ6
ICAgdWludDE2X3QgbWVtbWF4Y3VycmVudDsKMTQ0NzQ6ICAgdWludDhfdCBtZW1vZmZzZXQ7CjE0
NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnltZW07CjE0NDc0OiAKMTQ0NzQ6ICAgdWlu
dDE2X3QgYm9hcmRtYXhjdXJyZW50OwoxNDQ3NDogICB1aW50OF90IGJvYXJkb2Zmc2V0OwoxNDQ3
NDogICB1aW50OF90IHBhZGRpbmdfdGVsZW1ldHJ5Ym9hcmRpbnB1dDsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgdnIwaG90Z3BpbzsKMTQ0NzQ6ICAgdWludDhfdCB2cjBob3Rwb2xh
cml0eTsKMTQ0NzQ6ICAgdWludDhfdCB2cjFob3RncGlvOwoxNDQ3NDogICB1aW50OF90IHZyMWhv
dHBvbGFyaXR5OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAgdWludDhfdCBwbGxnZnhjbGtzcHJl
YWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CjE0NDc0
OiAgIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
ICB1aW50OF90IHVjbGtzcHJlYWRlbmFibGVkOwoxNDQ3NDogICB1aW50OF90IHVjbGtzcHJlYWRw
ZXJjZW50OwoxNDQ3NDogICB1aW50MTZfdCB1Y2xrc3ByZWFkZnJlcTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAgIHVpbnQ4X3QgZmNsa3NwcmVhZGVuYWJsZWQ7CjE0NDc0OiAgIHVpbnQ4X3QgZmNs
a3NwcmVhZHBlcmNlbnQ7CjE0NDc0OiAgIHVpbnQxNl90IGZjbGtzcHJlYWRmcmVxOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7
CjE0NDc0OiAgIHVpbnQ4X3QgZmxsZ2Z4Y2xrc3ByZWFkcGVyY2VudDsKMTQ0NzQ6ICAgdWludDE2
X3QgZmxsZ2Z4Y2xrc3ByZWFkZnJlcTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHN0cnVjdCBz
bXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyIGkyY2NvbnRyb2xsZXJzWzhdOwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDMyX3QgbWVtb3J5Y2hhbm5lbGVuYWJsZWQ7CjE0NDc0OiAK
MTQ0NzQ6ICAgdWludDhfdCBkcmFtYml0d2lkdGg7CjE0NDc0OiAgIHVpbnQ4X3QgcGFkZGluZ21l
bVszXTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQxNl90IHRvdGFsYm9hcmRwb3dlcjsK
MTQ0NzQ6ICAgdWludDE2X3QgYm9hcmRwYWRkaW5nOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICAg
dWludDhfdCB4Z21pbGlua3NwZWVkWzRdOwoxNDQ3NDogICB1aW50OF90IHhnbWlsaW5rd2lkdGhb
NF07CjE0NDc0OiAKMTQ0NzQ6ICAgdWludDE2X3QgeGdtaWZjbGtmcmVxWzRdOwoxNDQ3NDogICB1
aW50MTZfdCB4Z21pc29jdm9sdGFnZVs0XTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIHVpbnQz
Ml90IGJvYXJkcmVzZXJ2ZWRbMTBdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2FzaWNfcHJvZmlsaW5n
X2luZm9fdjRfMQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVh
ZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgbWF4dmRkYzsKMTQ0NzQ6ICAgdWlu
dDMyX3QgbWludmRkYzsKMTQ0NzQ6ICAgdWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250YW50
MDsKMTQ0NzQ6ICAgdWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250YW50MTsKMTQ0NzQ6ICAg
dWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250YW50MjsKMTQ0NzQ6ICAgdWludDE2X3QgYXZm
c19tZWFubnNpZ21hX2RjX3RvbF9zaWdtYTsKMTQ0NzQ6ICAgdWludDE2X3QgYXZmc19tZWFubnNp
Z21hX3BsYXRmb3JtX21lYW47CjE0NDc0OiAgIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9wbGF0
Zm9ybV9zaWdtYTsKMTQ0NzQ6ICAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29mZl9hMDsK
MTQ0NzQ6ICAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29mZl9hMTsKMTQ0NzQ6ICAgdWlu
dDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29mZl9hMjsKMTQ0NzQ6ICAgdWludDMyX3QgZ2JfdmRy
b29wX3RhYmxlX2Nrc29uX2EwOwoxNDQ3NDogICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tz
b25fYTE7CjE0NDc0OiAgIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMjsKMTQ0NzQ6
ICAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb2ZmX20xOwoxNDQ3NDogICB1aW50MzJf
dCBhdmZzZ2JfZnVzZV90YWJsZV9ja3NvZmZfbTI7CjE0NDc0OiAgIHVpbnQzMl90IGF2ZnNnYl9m
dXNlX3RhYmxlX2Nrc29mZl9iOwoxNDQ3NDogICB1aW50MzJfdCBhdmZzZ2JfZnVzZV90YWJsZV9j
a3Nvbl9tMTsKMTQ0NzQ6ICAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25fbTI7CjE0
NDc0OiAgIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29uX2I7CjE0NDc0OiAgIHVpbnQx
Nl90IG1heF92b2x0YWdlXzBfMjVtdjsKMTQ0NzQ6ICAgdWludDhfdCBlbmFibGVfZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZjsKMTQ0NzQ6ICAgdWludDhfdCBlbmFibGVfZ2JfdmRyb29wX3RhYmxlX2Nr
c29uOwoxNDQ3NDogICB1aW50OF90IGVuYWJsZV9nYl9mdXNlX3RhYmxlX2Nrc29mZjsKMTQ0NzQ6
ICAgdWludDhfdCBlbmFibGVfZ2JfZnVzZV90YWJsZV9ja3NvbjsKMTQ0NzQ6ICAgdWludDE2X3Qg
cHNtX2FnZV9jb21mYWN0b3I7CjE0NDc0OiAgIHVpbnQ4X3QgZW5hYmxlX2FwcGx5X2F2ZnNfY2tz
b2ZmX3ZvbHRhZ2U7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7CjE0NDc0OiAgIHVpbnQzMl90
IGRpc3BjbGsyZ2Z4Y2xrX2E7CjE0NDc0OiAgIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2I7CjE0
NDc0OiAgIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2M7CjE0NDc0OiAgIHVpbnQzMl90IHBpeGNs
azJnZnhjbGtfYTsKMTQ0NzQ6ICAgdWludDMyX3QgcGl4Y2xrMmdmeGNsa19iOwoxNDQ3NDogICB1
aW50MzJfdCBwaXhjbGsyZ2Z4Y2xrX2M7CjE0NDc0OiAgIHVpbnQzMl90IGRjZWZjbGsyZ2Z4Y2xr
X2E7CjE0NDc0OiAgIHVpbnQzMl90IGRjZWZjbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgIHVpbnQzMl90
IGRjZWZjbGsyZ2Z4Y2xrX2M7CjE0NDc0OiAgIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYTsKMTQ0
NzQ6ICAgdWludDMyX3QgcGh5Y2xrMmdmeGNsa19iOwoxNDQ3NDogICB1aW50MzJfdCBwaHljbGsy
Z2Z4Y2xrX2M7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9hc2ljX3Byb2Zp
bGluZ19pbmZvX3Y0XzIgewoxNDQ3NDogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIg
dGFibGVfaGVhZGVyOwoxNDQ3NDogIHVpbnQzMl90IG1heHZkZGM7CjE0NDc0OiAgdWludDMyX3Qg
bWludmRkYzsKMTQ0NzQ6ICB1aW50MzJfdCBhdmZzX21lYW5uc2lnbWFfYWNvbnRhbnQwOwoxNDQ3
NDogIHVpbnQzMl90IGF2ZnNfbWVhbm5zaWdtYV9hY29udGFudDE7CjE0NDc0OiAgdWludDMyX3Qg
YXZmc19tZWFubnNpZ21hX2Fjb250YW50MjsKMTQ0NzQ6ICB1aW50MTZfdCBhdmZzX21lYW5uc2ln
bWFfZGNfdG9sX3NpZ21hOwoxNDQ3NDogIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9wbGF0Zm9y
bV9tZWFuOwoxNDQ3NDogIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9wbGF0Zm9ybV9zaWdtYTsK
MTQ0NzQ6ICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb2ZmX2EwOwoxNDQ3NDogIHVpbnQz
Ml90IGdiX3Zkcm9vcF90YWJsZV9ja3NvZmZfYTE7CjE0NDc0OiAgdWludDMyX3QgZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZl9hMjsKMTQ0NzQ6ICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb25f
YTA7CjE0NDc0OiAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29uX2ExOwoxNDQ3NDogIHVp
bnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMjsKMTQ0NzQ6ICB1aW50MzJfdCBhdmZzZ2Jf
ZnVzZV90YWJsZV9ja3NvZmZfbTE7CjE0NDc0OiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVf
Y2tzb2ZmX20yOwoxNDQ3NDogIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9iOwox
NDQ3NDogIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29uX20xOwoxNDQ3NDogIHVpbnQz
Ml90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29uX20yOwoxNDQ3NDogIHVpbnQzMl90IGF2ZnNnYl9m
dXNlX3RhYmxlX2Nrc29uX2I7CjE0NDc0OiAgdWludDE2X3QgbWF4X3ZvbHRhZ2VfMF8yNW12Owox
NDQ3NDogIHVpbnQ4X3QgZW5hYmxlX2diX3Zkcm9vcF90YWJsZV9ja3NvZmY7CjE0NDc0OiAgdWlu
dDhfdCBlbmFibGVfZ2JfdmRyb29wX3RhYmxlX2Nrc29uOwoxNDQ3NDogIHVpbnQ4X3QgZW5hYmxl
X2diX2Z1c2VfdGFibGVfY2tzb2ZmOwoxNDQ3NDogIHVpbnQ4X3QgZW5hYmxlX2diX2Z1c2VfdGFi
bGVfY2tzb247CjE0NDc0OiAgdWludDE2X3QgcHNtX2FnZV9jb21mYWN0b3I7CjE0NDc0OiAgdWlu
dDhfdCBlbmFibGVfYXBwbHlfYXZmc19ja3NvZmZfdm9sdGFnZTsKMTQ0NzQ6ICB1aW50OF90IHJl
c2VydmVkOwoxNDQ3NDogIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2E7CjE0NDc0OiAgdWludDMy
X3QgZGlzcGNsazJnZnhjbGtfYjsKMTQ0NzQ6ICB1aW50MzJfdCBkaXNwY2xrMmdmeGNsa19jOwox
NDQ3NDogIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYTsKMTQ0NzQ6ICB1aW50MzJfdCBwaXhjbGsy
Z2Z4Y2xrX2I7CjE0NDc0OiAgdWludDMyX3QgcGl4Y2xrMmdmeGNsa19jOwoxNDQ3NDogIHVpbnQz
Ml90IGRjZWZjbGsyZ2Z4Y2xrX2E7CjE0NDc0OiAgdWludDMyX3QgZGNlZmNsazJnZnhjbGtfYjsK
MTQ0NzQ6ICB1aW50MzJfdCBkY2VmY2xrMmdmeGNsa19jOwoxNDQ3NDogIHVpbnQzMl90IHBoeWNs
azJnZnhjbGtfYTsKMTQ0NzQ6ICB1aW50MzJfdCBwaHljbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgdWlu
dDMyX3QgcGh5Y2xrMmdmeGNsa19jOwoxNDQ3NDogIHVpbnQzMl90IGFjZ19nYl92ZHJvb3BfdGFi
bGVfYTA7CjE0NDc0OiAgdWludDMyX3QgYWNnX2diX3Zkcm9vcF90YWJsZV9hMTsKMTQ0NzQ6ICB1
aW50MzJfdCBhY2dfZ2JfdmRyb29wX3RhYmxlX2EyOwoxNDQ3NDogIHVpbnQzMl90IGFjZ19hdmZz
Z2JfZnVzZV90YWJsZV9tMTsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfYXZmc2diX2Z1c2VfdGFibGVf
bTI7CjE0NDc0OiAgdWludDMyX3QgYWNnX2F2ZnNnYl9mdXNlX3RhYmxlX2I7CjE0NDc0OiAgdWlu
dDhfdCBlbmFibGVfYWNnX2diX3Zkcm9vcF90YWJsZTsKMTQ0NzQ6ICB1aW50OF90IGVuYWJsZV9h
Y2dfZ2JfZnVzZV90YWJsZTsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGlzcGNsazJnZnhjbGtfYTsK
MTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGlzcGNsazJnZnhjbGtfYjsKMTQ0NzQ6ICB1aW50MzJfdCBh
Y2dfZGlzcGNsazJnZnhjbGtfYzsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfcGl4Y2xrMmdmeGNsa19h
OwoxNDQ3NDogIHVpbnQzMl90IGFjZ19waXhjbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgdWludDMyX3Qg
YWNnX3BpeGNsazJnZnhjbGtfYzsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGNlZmNsazJnZnhjbGtf
YTsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfZGNlZmNsazJnZnhjbGtfYjsKMTQ0NzQ6ICB1aW50MzJf
dCBhY2dfZGNlZmNsazJnZnhjbGtfYzsKMTQ0NzQ6ICB1aW50MzJfdCBhY2dfcGh5Y2xrMmdmeGNs
a19hOwoxNDQ3NDogIHVpbnQzMl90IGFjZ19waHljbGsyZ2Z4Y2xrX2I7CjE0NDc0OiAgdWludDMy
X3QgYWNnX3BoeWNsazJnZnhjbGtfYzsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9tdWx0aW1lZGlhX2lu
Zm9fdjJfMQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVy
IHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCB1dmRpcF9taW5fdmVyOwoxNDQ3NDogICB1
aW50OF90IHV2ZGlwX21heF92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgdmNlaXBfbWluX3ZlcjsKMTQ0
NzQ6ICAgdWludDhfdCB2Y2VpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50MTZfdCB1dmRfZW5jX21h
eF9pbnB1dF93aWR0aF9waXhlbHM7CjE0NDc0OiAgIHVpbnQxNl90IHV2ZF9lbmNfbWF4X2lucHV0
X2hlaWdodF9waXhlbHM7CjE0NDc0OiAgIHVpbnQxNl90IHZjZV9lbmNfbWF4X2lucHV0X3dpZHRo
X3BpeGVsczsKMTQ0NzQ6ICAgdWludDE2X3QgdmNlX2VuY19tYXhfaW5wdXRfaGVpZ2h0X3BpeGVs
czsKMTQ0NzQ6ICAgdWludDMyX3QgdXZkX2VuY19tYXhfYmFuZHdpZHRoOwoxNDQ3NDogICB1aW50
MzJfdCB2Y2VfZW5jX21heF9iYW5kd2lkdGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV91
bWNfaW5mb192M18xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9o
ZWFkZXIgdGFibGVfaGVhZGVyOwoxNDQ3NDogICB1aW50MzJfdCB1Y29kZV92ZXJzaW9uOwoxNDQ3
NDogICB1aW50MzJfdCB1Y29kZV9yb21fc3RhcnRhZGRyOwoxNDQ3NDogICB1aW50MzJfdCB1Y29k
ZV9sZW5ndGg7CjE0NDc0OiAgIHVpbnQxNl90IHVtY19yZWdfaW5pdF9vZmZzZXQ7CjE0NDc0OiAg
IHVpbnQxNl90IGN1c3RvbWVyX3Vjb2RlX25hbWVfb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBt
Y2xrX3NzX3BlcmNlbnRhZ2U7CjE0NDc0OiAgIHVpbnQxNl90IG1jbGtfc3NfcmF0ZV8xMGh6Owox
NDQ3NDogICB1aW50OF90IHVtY2lwX21pbl92ZXI7CjE0NDc0OiAgIHVpbnQ4X3QgdW1jaXBfbWF4
X3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB2cmFtX3R5cGU7CjE0NDc0OiAgIHVpbnQ4X3QgdW1jX2Nv
bmZpZzsKMTQ0NzQ6ICAgdWludDMyX3QgbWVtX3JlZmNsa18xMGtoejsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3VtY19jb25maWdfZGVmIHsKMTQ0NzQ6ICAgVU1D
X0NPTkZJR19fRU5BQkxFXzFLQl9JTlRFUkxFQVZFX01PREUgPSAweDAwMDAwMDAxLAoxNDQ3NDog
ICBVTUNfQ09ORklHX19ERUZBVUxUX01FTV9FQ0NfRU5BQkxFID0gMHgwMDAwMDAwMiwKMTQ0NzQ6
ICAgVU1DX0NPTkZJR19fRU5BQkxFX0hCTV9MQU5FX1JFUEFJUiA9IDB4MDAwMDAwMDQsCjE0NDc0
OiAgIFVNQ19DT05GSUdfX0VOQUJMRV9CQU5LX0hBUlZFU1RJTkcgPSAweDAwMDAwMDA4LAoxNDQ3
NDogICBVTUNfQ09ORklHX19FTkFCTEVfUEhZX1JFSU5JVCA9IDB4MDAwMDAwMTAsCjE0NDc0OiAg
IFVNQ19DT05GSUdfX0RJU0FCTEVfVUNPREVfQ0hLU1RBVFVTID0gMHgwMDAwMDAyMCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3VtY19pbmZvX3YzXzIKMTQ0NzQ6IHsKMTQ0
NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0NDc0
OiAgIHVpbnQzMl90IHVjb2RlX3ZlcnNpb247CjE0NDc0OiAgIHVpbnQzMl90IHVjb2RlX3JvbV9z
dGFydGFkZHI7CjE0NDc0OiAgIHVpbnQzMl90IHVjb2RlX2xlbmd0aDsKMTQ0NzQ6ICAgdWludDE2
X3QgdW1jX3JlZ19pbml0X29mZnNldDsKMTQ0NzQ6ICAgdWludDE2X3QgY3VzdG9tZXJfdWNvZGVf
bmFtZV9vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1jbGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6
ICAgdWludDE2X3QgbWNsa19zc19yYXRlXzEwaHo7CjE0NDc0OiAgIHVpbnQ4X3QgdW1jaXBfbWlu
X3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB1bWNpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50OF90IHZy
YW1fdHlwZTsKMTQ0NzQ6ICAgdWludDhfdCB1bWNfY29uZmlnOwoxNDQ3NDogICB1aW50MzJfdCBt
ZW1fcmVmY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJfdCBwc3RhdGVfdWNsa18xMGtoels0XTsK
MTQ0NzQ6ICAgdWludDE2X3QgdW1jZ29sZGVub2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBkZW5z
aXR5Z29sZGVub2Zmc2V0OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fdW1j
X2luZm9fdjNfMwoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVh
ZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDMyX3QgdWNvZGVfcmVzZXJ2ZWQ7CjE0NDc0
OiAgIHVpbnQzMl90IHVjb2RlX3JvbV9zdGFydGFkZHI7CjE0NDc0OiAgIHVpbnQzMl90IHVjb2Rl
X2xlbmd0aDsKMTQ0NzQ6ICAgdWludDE2X3QgdW1jX3JlZ19pbml0X29mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3QgY3VzdG9tZXJfdWNvZGVfbmFtZV9vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1j
bGtfc3NfcGVyY2VudGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgbWNsa19zc19yYXRlXzEwaHo7CjE0
NDc0OiAgIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB1bWNpcF9tYXhf
dmVyOwoxNDQ3NDogICB1aW50OF90IHZyYW1fdHlwZTsKMTQ0NzQ6ICAgdWludDhfdCB1bWNfY29u
ZmlnOwoxNDQ3NDogICB1aW50MzJfdCBtZW1fcmVmY2xrXzEwa2h6OwoxNDQ3NDogICB1aW50MzJf
dCBwc3RhdGVfdWNsa18xMGtoels0XTsKMTQ0NzQ6ICAgdWludDE2X3QgdW1jZ29sZGVub2Zmc2V0
OwoxNDQ3NDogICB1aW50MTZfdCBkZW5zaXR5Z29sZGVub2Zmc2V0OwoxNDQ3NDogICB1aW50MzJf
dCByZXNlcnZlZFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92cmFtX21vZHVsZV92OSB7CjE0NDc0
OiAKMTQ0NzQ6ICAgdWludDMyX3QgbWVtb3J5X3NpemU7CjE0NDc0OiAgIHVpbnQzMl90IGNoYW5u
ZWxfZW5hYmxlOwoxNDQ3NDogICB1aW50MzJfdCBtYXhfbWVtX2NsazsKMTQ0NzQ6ICAgdWludDE2
X3QgcmVzZXJ2ZWRbM107CjE0NDc0OiAgIHVpbnQxNl90IG1lbV92b2x0YWdlOwoxNDQ3NDogICB1
aW50MTZfdCB2cmFtX21vZHVsZV9zaXplOwoxNDQ3NDogICB1aW50OF90IGV4dF9tZW1vcnlfaWQ7
CjE0NDc0OiAgIHVpbnQ4X3QgbWVtb3J5X3R5cGU7CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5lbF9u
dW07CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5lbF93aWR0aDsKMTQ0NzQ6ICAgdWludDhfdCBkZW5z
aXR5OwoxNDQ3NDogICB1aW50OF90IHR1bm5pbmdzZXRfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgdmVu
ZGVyX3Jldl9pZDsKMTQ0NzQ6ICAgdWludDhfdCByZWZyZXNocmF0ZTsKMTQ0NzQ6ICAgdWludDhf
dCBoYm1fdmVuX3Jldl9pZDsKMTQ0NzQ6ICAgdWludDhfdCB2cmFtX3JzZDI7CjE0NDc0OiAgIGNo
YXIgZHJhbV9wbnN0cmluZ1syMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRv
bV92cmFtX2luZm9faGVhZGVyX3YyXzMgewoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFi
bGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWludDE2X3QgbWVtX2FkanVzdF90Ymxv
ZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1lbV9jbGtfcGF0Y2hfdGJsb2Zmc2V0OwoxNDQ3NDog
ICB1aW50MTZfdCBtY19hZGp1c3RfcGVydGlsZV90YmxvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90
IG1jX3BoeWluaXRfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBkcmFtX2RhdGFfcmVtYXBf
dGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCB0bXJzX3NlcV9vZmZzZXQ7CjE0NDc0OiAgIHVp
bnQxNl90IHBvc3RfdWNvZGVfaW5pdF9vZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IHZyYW1fcnNk
MjsKMTQ0NzQ6ICAgdWludDhfdCB2cmFtX21vZHVsZV9udW07CjE0NDc0OiAgIHVpbnQ4X3QgdW1j
aXBfbWluX3ZlcjsKMTQ0NzQ6ICAgdWludDhfdCB1bWNpcF9tYXhfdmVyOwoxNDQ3NDogICB1aW50
OF90IG1jX3BoeV90aWxlX251bTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fdnJhbV9tb2R1bGVfdjkg
dnJhbV9tb2R1bGVbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fdW1j
X3JlZ2lzdGVyX2FkZHJfaW5mb3sKMTQ0NzQ6ICAgdWludDMyX3QgdW1jX3JlZ2lzdGVyX2FkZHI6
MjQ7CjE0NDc0OiAgIHVpbnQzMl90IHVtY19yZWdfdHlwZV9pbmQ6MTsKMTQ0NzQ6ICAgdWludDMy
X3QgdW1jX3JlZ19yc3ZkOjc7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0g
YXRvbV91bWNfcmVnaXN0ZXJfYWRkcl9pbmZvX2ZsYWd7CjE0NDc0OiAgIGIzQVRPTV9VTUNfUkVH
X0FERF9JTkZPX0lORElSRUNUX0FDQ0VTUyA9MHgwMSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IHVuaW9uIGF0b21fdW1jX3JlZ2lzdGVyX2FkZHJfaW5mb19hY2Nlc3MKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IGF0b21fdW1jX3JlZ2lzdGVyX2FkZHJfaW5mbyB1bWNfcmVnX2FkZHI7CjE0NDc0
OiAgIHVpbnQzMl90IHUzMnVtY19yZWdfYWRkcjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX3VtY19yZWdfc2V0dGluZ19pZF9jb25maWd7CjE0NDc0OiAgIHVpbnQzMl90IG1l
bWNsb2NrcmFuZ2U6MjQ7CjE0NDc0OiAgIHVpbnQzMl90IG1lbV9ibGtfaWQ6ODsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHVuaW9uIGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZpZ19hY2Nl
c3MKMTQ0NzQ6IHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZp
ZyB1bWNfaWRfYWNjZXNzOwoxNDQ3NDogICB1aW50MzJfdCB1MzJ1bWNfaWRfYWNjZXNzOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2RhdGFfYmxv
Y2t7CjE0NDc0OiAgIHVuaW9uIGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZpZ19hY2Nlc3Mg
YmxvY2tfaWQ7CjE0NDc0OiAgIHVpbnQzMl90IHUzMnVtY19yZWdfZGF0YVsxXTsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3VtY19pbml0X3JlZ19ibG9ja3sKMTQ0NzQ6ICAg
dWludDE2X3QgdW1jX3JlZ19udW07CjE0NDc0OiAgIHVpbnQxNl90IHJlc2VydmVkOwoxNDQ3NDog
ICB1bmlvbiBhdG9tX3VtY19yZWdpc3Rlcl9hZGRyX2luZm9fYWNjZXNzIHVtY19yZWdfbGlzdFsx
XTsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2RhdGFfYmxvY2sgdW1jX3Jl
Z19zZXR0aW5nX2xpc3RbMV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92
cmFtX21vZHVsZV92MTAgewoxNDQ3NDogCjE0NDc0OiAgIHVpbnQzMl90IG1lbW9yeV9zaXplOwox
NDQ3NDogICB1aW50MzJfdCBjaGFubmVsX2VuYWJsZTsKMTQ0NzQ6ICAgdWludDMyX3QgbWF4X21l
bV9jbGs7CjE0NDc0OiAgIHVpbnQxNl90IHJlc2VydmVkWzNdOwoxNDQ3NDogICB1aW50MTZfdCBt
ZW1fdm9sdGFnZTsKMTQ0NzQ6ICAgdWludDE2X3QgdnJhbV9tb2R1bGVfc2l6ZTsKMTQ0NzQ6ICAg
dWludDhfdCBleHRfbWVtb3J5X2lkOwoxNDQ3NDogICB1aW50OF90IG1lbW9yeV90eXBlOwoxNDQ3
NDogICB1aW50OF90IGNoYW5uZWxfbnVtOwoxNDQ3NDogICB1aW50OF90IGNoYW5uZWxfd2lkdGg7
CjE0NDc0OiAgIHVpbnQ4X3QgZGVuc2l0eTsKMTQ0NzQ6ICAgdWludDhfdCB0dW5uaW5nc2V0X2lk
OwoxNDQ3NDogICB1aW50OF90IHZlbmRlcl9yZXZfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVmcmVz
aHJhdGU7CjE0NDc0OiAgIHVpbnQ4X3QgdnJhbV9mbGFnczsKMTQ0NzQ6ICAgdWludDhfdCB2cmFt
X3JzZDI7CjE0NDc0OiAgIHVpbnQxNl90IGdkZHI2X21yMTA7CjE0NDc0OiAgIHVpbnQxNl90IGdk
ZHI2X21yMTsKMTQ0NzQ6ICAgdWludDE2X3QgZ2RkcjZfbXIyOwoxNDQ3NDogICB1aW50MTZfdCBn
ZGRyNl9tcjc7CjE0NDc0OiAgIGNoYXIgZHJhbV9wbnN0cmluZ1syMF07CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92cmFtX2luZm9faGVhZGVyX3YyXzQgewoxNDQ3NDogICBz
dHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKMTQ0NzQ6ICAgdWlu
dDE2X3QgbWVtX2FkanVzdF90YmxvZmZzZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1lbV9jbGtfcGF0
Y2hfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCBtY19hZGp1c3RfcGVydGlsZV90YmxvZmZz
ZXQ7CjE0NDc0OiAgIHVpbnQxNl90IG1jX3BoeWluaXRfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50
MTZfdCBkcmFtX2RhdGFfcmVtYXBfdGJsb2Zmc2V0OwoxNDQ3NDogICB1aW50MTZfdCByZXNlcnZl
ZDsKMTQ0NzQ6ICAgdWludDE2X3QgcG9zdF91Y29kZV9pbml0X29mZnNldDsKMTQ0NzQ6ICAgdWlu
dDE2X3QgdnJhbV9yc2QyOwoxNDQ3NDogICB1aW50OF90IHZyYW1fbW9kdWxlX251bTsKMTQ0NzQ6
ICAgdWludDhfdCB1bWNpcF9taW5fdmVyOwoxNDQ3NDogICB1aW50OF90IHVtY2lwX21heF92ZXI7
CjE0NDc0OiAgIHVpbnQ4X3QgbWNfcGh5X3RpbGVfbnVtOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV92
cmFtX21vZHVsZV92MTAgdnJhbV9tb2R1bGVbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX2kyY19k
YXRhX2VudHJ5CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQxNl90IGkyY19yZWdfaW5kZXg7CjE0NDc0
OiAgIHVpbnQxNl90IGkyY19yZWdfZGF0YTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVj
dCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NHsKMTQ0NzQ6ICAgdWludDhfdCB2b2x0YWdl
X3R5cGU7CjE0NDc0OiAgIHVpbnQ4X3Qgdm9sdGFnZV9tb2RlOwoxNDQ3NDogICB1aW50MTZfdCBv
YmplY3Rfc2l6ZTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3Zv
bHRhZ2Vfb2JqZWN0X21vZGUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIFZPTFRBR0VfT0JKX0dQSU9fTFVU
ID0gMCwKMTQ0NzQ6ICAgIFZPTFRBR0VfT0JKX1ZSX0kyQ19JTklUX1NFUSA9IDMsCjE0NDc0OiAg
ICBWT0xUQUdFX09CSl9QSEFTRV9MVVQgPSA0LAoxNDQ3NDogICAgVk9MVEFHRV9PQkpfU1ZJRDIg
PSA3LAoxNDQ3NDogICAgVk9MVEFHRV9PQkpfRVZWID0gOCwKMTQ0NzQ6ICAgIFZPTFRBR0VfT0JK
X01FUkdFRF9QT1dFUiA9IDksCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV9p
MmNfdm9sdGFnZV9vYmplY3RfdjQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIHN0cnVjdCBhdG9tX3ZvbHRh
Z2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7CjE0NDc0OiAgICB1aW50OF90IHJlZ3VsYXRvcl9p
ZDsKMTQ0NzQ6ICAgIHVpbnQ4X3QgaTJjX2lkOwoxNDQ3NDogICAgdWludDhfdCBpMmNfc2xhdmVf
YWRkcjsKMTQ0NzQ6ICAgIHVpbnQ4X3QgaTJjX2NvbnRyb2xfb2Zmc2V0OwoxNDQ3NDogICAgdWlu
dDhfdCBpMmNfZmxhZzsKMTQ0NzQ6ICAgIHVpbnQ4X3QgaTJjX3NwZWVkOwoxNDQ3NDogICAgdWlu
dDhfdCByZXNlcnZlZFsyXTsKMTQ0NzQ6ICAgIHN0cnVjdCBhdG9tX2kyY19kYXRhX2VudHJ5IGky
Y2RhdGFsdXRbMV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9p
MmNfdm9sdGFnZV9jb250cm9sX2ZsYWcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIFZPTFRBR0VfREFUQV9P
TkVfQllURSA9IDAsCjE0NDc0OiAgICBWT0xUQUdFX0RBVEFfVFdPX0JZVEUgPSAxLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXRvbV92b2x0YWdlX2dwaW9fbWFwX2x1
dAoxNDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCB2b2x0YWdlX2dwaW9fcmVnX3ZhbDsKMTQ0NzQ6
ICAgdWludDE2X3Qgdm9sdGFnZV9sZXZlbF9tdjsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0
cnVjdCBhdG9tX2dwaW9fdm9sdGFnZV9vYmplY3RfdjQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgIHN0cnVj
dCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7CjE0NDc0OiAgICB1aW50OF90
IGdwaW9fY29udHJvbF9pZDsKMTQ0NzQ6ICAgIHVpbnQ4X3QgZ3Bpb19lbnRyeV9udW07CjE0NDc0
OiAgICB1aW50OF90IHBoYXNlX2RlbGF5X3VzOwoxNDQ3NDogICAgdWludDhfdCByZXNlcnZlZDsK
MTQ0NzQ6ICAgIHVpbnQzMl90IGdwaW9fbWFza192YWw7CjE0NDc0OiAgICBzdHJ1Y3QgYXRvbV92
b2x0YWdlX2dwaW9fbWFwX2x1dCB2b2x0YWdlX2dwaW9fbHV0WzFdOwoxNDQ3NDogfTsKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGF0b21fc3ZpZDJfdm9sdGFnZV9vYmplY3RfdjQKMTQ0NzQ6IHsKMTQ0
NzQ6ICAgIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7CjE0NDc0
OiAgICB1aW50OF90IGxvYWRsaW5lX3BzaTE7CjE0NDc0OiAgICB1aW50OF90IHBzaTBfbF92aWRf
dGhyZXNkOwoxNDQ3NDogICAgdWludDhfdCBwc2kwX2VuYWJsZTsKMTQ0NzQ6ICAgIHVpbnQ4X3Qg
bWF4dnN0ZXA7CjE0NDc0OiAgICB1aW50OF90IHRlbGVtZXRyeV9vZmZzZXQ7CjE0NDc0OiAgICB1
aW50OF90IHRlbGVtZXRyeV9nYWluOwoxNDQ3NDogICAgdWludDE2X3QgcmVzZXJ2ZWQxOwoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGF0b21fbWVyZ2VkX3ZvbHRhZ2Vfb2JqZWN0X3Y0
CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBo
ZWFkZXI7CjE0NDc0OiAgIHVpbnQ4X3QgbWVyZ2VkX3Bvd2VycmFpbF90eXBlOwoxNDQ3NDogICB1
aW50OF90IHJlc2VydmVkWzNdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gYXRvbV92
b2x0YWdlX29iamVjdF92NHsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fZ3Bpb192b2x0YWdlX29iamVj
dF92NCBncGlvX3ZvbHRhZ2Vfb2JqOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9pMmNfdm9sdGFnZV9v
YmplY3RfdjQgaTJjX3ZvbHRhZ2Vfb2JqOwoxNDQ3NDogICBzdHJ1Y3QgYXRvbV9zdmlkMl92b2x0
YWdlX29iamVjdF92NCBzdmlkMl92b2x0YWdlX29iajsKMTQ0NzQ6ICAgc3RydWN0IGF0b21fbWVy
Z2VkX3ZvbHRhZ2Vfb2JqZWN0X3Y0IG1lcmdlZF92b2x0YWdlX29iajsKMTQ0NzQ6IH07CjE0NDc0
OiAKMTQ0NzQ6IHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0c19pbmZvX3Y0XzEKMTQ0NzQ6IHsK
MTQ0NzQ6ICAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CjE0
NDc0OiAgIHVuaW9uIGF0b21fdm9sdGFnZV9vYmplY3RfdjQgdm9sdGFnZV9vYmplY3RbMV07CjE0
NDc0OiB9OwoxNDQ3NDogIyAyMzIzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2lu
Y2x1ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiBzdHJ1Y3QgYXNpY19pbml0X2VuZ2luZV9wYXJh
bWV0ZXJzCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHNjbGtmcmVxaW4xMGtoejoyNDsKMTQ0
NzQ6ICAgdWludDMyX3QgZW5naW5lZmxhZzo4OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGFzaWNfaW5pdF9tZW1fcGFyYW1ldGVycwoxNDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCBt
Y2xrZnJlcWluMTBraHo6MjQ7CjE0NDc0OiAgIHVpbnQzMl90IG1lbWZsYWc6ODsKMTQ0NzQ6IH07
CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBhc2ljX2luaXRfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7
CjE0NDc0OiAgIHN0cnVjdCBhc2ljX2luaXRfZW5naW5lX3BhcmFtZXRlcnMgZW5naW5lcGFyYW07
CjE0NDc0OiAgIHN0cnVjdCBhc2ljX2luaXRfbWVtX3BhcmFtZXRlcnMgbWVtcGFyYW07CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgYXNpY19pbml0X3BzX2FsbG9jYXRpb25fdjJfMQox
NDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgYXNpY19pbml0X3BhcmFtZXRlcnNfdjJfMSBwYXJhbTsK
MTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWRbMTZdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBlbnVtIGF0b21fYXNpY19pbml0X2VuZ2luZV9mbGFnCjE0NDc0OiB7CjE0NDc0OiAg
IGIzTk9STUFMX0VOR0lORV9JTklUID0gMCwKMTQ0NzQ6ICAgYjNTUklPVl9TS0lQX0FTSUNfSU5J
VCA9IDB4MDIsCjE0NDc0OiAgIGIzU1JJT1ZfTE9BRF9VQ09ERSA9IDB4NDAsCjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fYXNpY19pbml0X21lbV9mbGFnCjE0NDc0OiB7CjE0NDc0
OiAgIGIzTk9STUFMX01FTV9JTklUID0gMCwKMTQ0NzQ6ICAgYjNEUkFNX1NFTEZfUkVGUkVTSF9F
WElUID0weDIwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNldF9lbmdpbmVfY2xvY2tfcGFyYW1l
dGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHNjbGtmcmVxaW4xMGtoejoyNDsK
MTQ0NzQ6ICAgdWludDMyX3Qgc2Nsa2ZsYWc6ODsKMTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWRb
MTBdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNldF9lbmdpbmVfY2xvY2tfcHNf
YWxsb2NhdGlvbl92Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBzZXRfZW5naW5lX2Nsb2Nr
X3BhcmFtZXRlcnNfdjJfMSBjbG9ja2luZm87CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkWzEw
XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NldF9lbmdpbmVf
bWVtX2Nsb2NrX2ZsYWcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgYjNOT1JNQUxfQ0hBTkdFX0NMT0NLID0g
MCwKMTQ0NzQ6ICAgYjNGSVJTVF9USU1FX0NIQU5HRV9DTE9DSyA9IDB4MDgsCjE0NDc0OiAgIGIz
U1RPUkVfRFBNX1RSQUlOR0lORyA9IDB4NDAsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGdldF9lbmdpbmVfY2xv
Y2tfcGFyYW1ldGVyCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQzMl90IHNjbGtfMTBraHo7CjE0NDc0
OiAgIHVpbnQzMl90IHJlc2VydmVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXRfbWVtb3J5X2Nsb2NrX3Bh
cmFtZXRlcnNfdjJfMQoxNDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCBtY2xrZnJlcWluMTBraHo6
MjQ7CjE0NDc0OiAgIHVpbnQzMl90IG1jbGtmbGFnOjg7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2Vy
dmVkWzEwXTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBzZXRfbWVtb3J5X2Nsb2Nr
X3BzX2FsbG9jYXRpb25fdjJfMQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3Qgc2V0X21lbW9yeV9j
bG9ja19wYXJhbWV0ZXJzX3YyXzEgY2xvY2tpbmZvOwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZl
ZFsxMF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ2V0X21lbW9yeV9jbG9ja19wYXJhbWV0ZXIK
MTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDMyX3QgbWNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDMyX3Qg
cmVzZXJ2ZWQ7CjE0NDc0OiB9OwoxNDQ3NDogIyAyNDM3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiBzdHJ1Y3Qgc2V0X3ZvbHRh
Z2VfcGFyYW1ldGVyc192MV80CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3Qgdm9sdGFnZXR5cGU7
CjE0NDc0OiAgIHVpbnQ4X3QgY29tbWFuZDsKMTQ0NzQ6ICAgdWludDE2X3QgdmxldmVsX212Owox
NDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc2V0X3ZvbHRhZ2VfY29t
bWFuZHsKMTQ0NzQ6ICAgQVRPTV9TRVRfVk9MVEFHRSA9IDAsCjE0NDc0OiAgIEFUT01fSU5JVF9W
T0xUQUdFX1JFR1VMQVRPUiA9IDMsCjE0NDc0OiAgIEFUT01fU0VUX1ZPTFRBR0VfUEhBU0UgPSA0
LAoxNDQ3NDogICBBVE9NX0dFVF9MRUFLQUdFX0lEID0gOCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0
NzQ6IHN0cnVjdCBzZXRfdm9sdGFnZV9wc19hbGxvY2F0aW9uX3YxXzQKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IHNldF92b2x0YWdlX3BhcmFtZXRlcnNfdjFfNCBzZXR2b2x0YWdlcGFyYW07CjE0
NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkWzEwXTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI0NjYgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0
NzQ6IGVudW0gYXRvbV9ncHVfY2xvY2tfdHlwZQoxNDQ3NDogewoxNDQ3NDogICBDT01QVVRFX0dQ
VUNMS19JTlBVVF9GTEFHX0RFRkFVTFRfR1BVQ0xLID0weDAwLAoxNDQ3NDogICBDT01QVVRFX0dQ
VUNMS19JTlBVVF9GTEFHX0dGWENMSyA9MHgwMSwKMTQ0NzQ6ICAgQ09NUFVURV9HUFVDTEtfSU5Q
VVRfRkxBR19VQ0xLID0weDAyLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNvbXB1
dGVfZ3B1X2Nsb2NrX2lucHV0X3BhcmFtZXRlcl92MV84CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQz
Ml90IGdwdWNsb2NrXzEwa2h6OjI0OwoxNDQ3NDogICB1aW50MzJfdCBncHVfY2xvY2tfdHlwZTo4
OwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZlZFs1XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RydWN0IGNvbXB1dGVfZ3B1X2Nsb2NrX291dHB1dF9wYXJhbWV0ZXJfdjFfOAox
NDQ3NDogewoxNDQ3NDogICB1aW50MzJfdCBncHVjbG9ja18xMGtoejoyNDsKMTQ0NzQ6ICAgdWlu
dDMyX3QgZGZzX2RpZDo4OwoxNDQ3NDogICB1aW50MzJfdCBwbGxfZmJfbXVsdDsKMTQ0NzQ6ICAg
dWludDMyX3QgcGxsX3NzX2Zic211bHQ7CjE0NDc0OiAgIHVpbnQxNl90IHBsbF9zc19zbGV3X2Zy
YWM7CjE0NDc0OiAgIHVpbnQ4X3QgcGxsX3NzX2VuYWJsZTsKMTQ0NzQ6ICAgdWludDhfdCByZXNl
cnZlZDsKMTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWQxWzJdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMg
MjUwMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2Fy
ZS5oIgoxNDQ3NDogc3RydWN0IHJlYWRfZWZ1c2VfaW5wdXRfcGFyYW1ldGVyc192M18xCjE0NDc0
OiB7CjE0NDc0OiAgIHVpbnQxNl90IGVmdXNlX3N0YXJ0X2luZGV4OwoxNDQ3NDogICB1aW50OF90
IHJlc2VydmVkOwoxNDQ3NDogICB1aW50OF90IGJpdHNsZW47CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IHVuaW9uIHJlYWRfZWZ1c2VfdmFsdWVfcGFyYW1ldGVyc192M18xCjE0NDc0
OiB7CjE0NDc0OiAgIHN0cnVjdCByZWFkX2VmdXNlX2lucHV0X3BhcmFtZXRlcnNfdjNfMSBlZnVz
ZV9pbmZvOwoxNDQ3NDogICB1aW50MzJfdCBlZnVzZXZhbHVlOwoxNDQ3NDogfTsKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGF0b21fZ2V0X3NtdV9jbG9ja19pbmZvX3BhcmFtZXRlcnNfdjNfMQoxNDQ3NDogewoxNDQ3
NDogICB1aW50OF90IHN5c3BsbF9pZDsKMTQ0NzQ6ICAgdWludDhfdCBjbGtfaWQ7CjE0NDc0OiAg
IHVpbnQ4X3QgY29tbWFuZDsKMTQ0NzQ6ICAgdWludDhfdCBkZnNkaWQ7CjE0NDc0OiB9OwoxNDQ3
NDogCjE0NDc0OiBlbnVtIGF0b21fZ2V0X3NtdV9jbG9ja19pbmZvX2NvbW1hbmQKMTQ0NzQ6IHsK
MTQ0NzQ6ICAgR0VUX1NNVV9DTE9DS19JTkZPX1YzXzFfR0VUX0NMT0NLX0ZSRVEgPSAwLAoxNDQ3
NDogICBHRVRfU01VX0NMT0NLX0lORk9fVjNfMV9HRVRfUExMVkNPX0ZSRVEgPSAxLAoxNDQ3NDog
ICBHRVRfU01VX0NMT0NLX0lORk9fVjNfMV9HRVRfUExMUkVGQ0xLX0ZSRVEgPSAyLAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NtdTlfc3lzcGxsMF9jbG9ja19pZAoxNDQ3NDog
ewoxNDQ3NDogICBTTVU5X1NZU1BMTDBfU01OQ0xLX0lEID0gMCwKMTQ0NzQ6ICAgU01VOV9TWVNQ
TEwwX1NPQ0NMS19JRCA9IDEsCjE0NDc0OiAgIFNNVTlfU1lTUExMMF9NUDBDTEtfSUQgPSAyLAox
NDQ3NDogICBTTVU5X1NZU1BMTDBfTVAxQ0xLX0lEID0gMywKMTQ0NzQ6ICAgU01VOV9TWVNQTEww
X0xDTEtfSUQgPSA0LAoxNDQ3NDogICBTTVU5X1NZU1BMTDBfRENMS19JRCA9IDUsCjE0NDc0OiAg
IFNNVTlfU1lTUExMMF9WQ0xLX0lEID0gNiwKMTQ0NzQ6ICAgU01VOV9TWVNQTEwwX0VDTEtfSUQg
PSA3LAoxNDQ3NDogICBTTVU5X1NZU1BMTDBfRENFRkNMS19JRCA9IDgsCjE0NDc0OiAgIFNNVTlf
U1lTUExMMF9EUFJFRkNMS19JRCA9IDEwLAoxNDQ3NDogICBTTVU5X1NZU1BMTDBfRElTUENMS19J
RCA9IDExLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NtdTExX3N5c3BsbF9p
ZCB7CjE0NDc0OiAgIFNNVTExX1NZU1BMTDBfSUQgPSAwLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwx
XzBfSUQgPSAxLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwxXzFfSUQgPSAyLAoxNDQ3NDogICBTTVUx
MV9TWVNQTEwxXzJfSUQgPSAzLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwyX0lEID0gNCwKMTQ0NzQ6
ICAgU01VMTFfU1lTUExMM18wX0lEID0gNSwKMTQ0NzQ6ICAgU01VMTFfU1lTUExMM18xX0lEID0g
NiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zbXUxMV9zeXNwbGwwX2Nsb2Nr
X2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMMF9FQ0xLX0lEID0gMCwKMTQ0NzQ6ICAgU01VMTFf
U1lTUExMMF9TT0NDTEtfSUQgPSAxLAoxNDQ3NDogICBTTVUxMV9TWVNQTEwwX01QMENMS19JRCA9
IDIsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDBfRENMS19JRCA9IDMsCjE0NDc0OiAgIFNNVTExX1NZ
U1BMTDBfVkNMS19JRCA9IDQsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDBfRENFRkNMS19JRCA9IDUs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc211MTFfc3lzcGxsMV8wX2Nsb2Nr
X2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMMV8wX1VDTEtBX0lEID0gMCwKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zbXUxMV9zeXNwbGwxXzFfY2xvY2tfaWQgewoxNDQ3NDog
ICBTTVUxMV9TWVNQTEwxXzBfVUNMS0JfSUQgPSAwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
ZW51bSBhdG9tX3NtdTExX3N5c3BsbDFfMl9jbG9ja19pZCB7CjE0NDc0OiAgIFNNVTExX1NZU1BM
TDFfMF9GQ0xLX0lEID0gMCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zbXUx
MV9zeXNwbGwyX2Nsb2NrX2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMMl9HRlhDTEtfSUQgPSAw
LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3NtdTExX3N5c3BsbDNfMF9jbG9j
a19pZCB7CjE0NDc0OiAgIFNNVTExX1NZU1BMTDNfMF9XQUZDTEtfSUQgPSAwLAoxNDQ3NDogICBT
TVUxMV9TWVNQTEwzXzBfRElTUENMS19JRCA9IDEsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDNfMF9E
UFJFRkNMS19JRCA9IDIsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc211MTFf
c3lzcGxsM18xX2Nsb2NrX2lkIHsKMTQ0NzQ6ICAgU01VMTFfU1lTUExMM18xX01QMUNMS19JRCA9
IDAsCjE0NDc0OiAgIFNNVTExX1NZU1BMTDNfMV9TTU5DTEtfSUQgPSAxLAoxNDQ3NDogICBTTVUx
MV9TWVNQTEwzXzFfTENMS19JRCA9IDIsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qg
YXRvbV9nZXRfc211X2Nsb2NrX2luZm9fb3V0cHV0X3BhcmFtZXRlcnNfdjNfMQoxNDQ3NDogewox
NDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICAgdWludDMyX3Qgc211X2Nsb2NrX2ZyZXFfaHo7CjE0
NDc0OiAgICAgdWludDMyX3Qgc3lzcGxsdmNvZnJlcV8xMGtoejsKMTQ0NzQ6ICAgICB1aW50MzJf
dCBzeXNzcGxscmVmY2xrXzEwa2h6OwoxNDQ3NDogICB9YXRvbV9zbXVfb3V0cHV0Y2xrZnJlcTsK
MTQ0NzQ6IH07CjE0NDc0OiAjIDI2MTUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IGVudW0gYXRvbV9keW5hbWljX21lbW9yeV9z
ZXR0aW5nX2NvbW1hbmQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgQ09NUFVURV9NRU1PUllfUExMX1BBUkFN
ID0gMSwKMTQ0NzQ6ICAgQ09NUFVURV9FTkdJTkVfUExMX1BBUkFNID0gMiwKMTQ0NzQ6ICAgQURK
VVNUX01DX1NFVFRJTkdfUEFSQU0gPSAzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiBzdHJ1Y3QgZHluYW1pY19tY2xrX3NldHRpbmdzX3BhcmFtZXRlcnNfdjJfMQoxNDQ3NDogewox
NDQ3NDogICB1aW50MzJfdCBtY2xrXzEwa2h6OjI0OwoxNDQ3NDogICB1aW50MzJfdCBjb21tYW5k
Ojg7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDog
CjE0NDc0OiBzdHJ1Y3QgZHluYW1pY19zY2xrX3NldHRpbmdzX3BhcmFtZXRlcnNfdjJfMQoxNDQ3
NDogewoxNDQ3NDogICB1aW50MzJfdCBzY2xrXzEwa2h6OjI0OwoxNDQ3NDogICB1aW50MzJfdCBj
b21tYW5kOjg7CjE0NDc0OiAgIHVpbnQzMl90IG1jbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQzMl90
IHJlc2VydmVkOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogdW5pb24gZHluYW1pY19tZW1vcnlf
c2V0dGluZ3NfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBkeW5hbWlj
X21jbGtfc2V0dGluZ3NfcGFyYW1ldGVyc192Ml8xIG1jbGtfc2V0dGluZzsKMTQ0NzQ6ICAgc3Ry
dWN0IGR5bmFtaWNfc2Nsa19zZXR0aW5nc19wYXJhbWV0ZXJzX3YyXzEgc2Nsa19zZXR0aW5nOwox
NDQ3NDogfTsKMTQ0NzQ6ICMgMjY1MyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9p
bmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogZW51bSBhdG9tX3VtYzZfMF91Y29kZV9mdW5j
dGlvbl9jYWxsX2VudW1faWQKMTQ0NzQ6IHsKMTQ0NzQ6ICAgVU1DNjBfVUNPREVfRlVOQ19JRF9S
RUlOSVQgPSAwLAoxNDQ3NDogICBVTUM2MF9VQ09ERV9GVU5DX0lEX0VOVEVSX1NFTEZSRUZSRVNI
ID0gMSwKMTQ0NzQ6ICAgVU1DNjBfVUNPREVfRlVOQ19JRF9FWElUX1NFTEZSRUZSRVNIID0gMiwK
MTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IG1lbW9yeV90cmFpbmluZ19w
YXJhbWV0ZXJzX3YyXzEKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCB1Y29kZV9mdW5jX2lkOwox
NDQ3NDogICB1aW50OF90IHVjb2RlX3Jlc2VydmVkWzNdOwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZFs1XTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDI2NzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IHN0cnVjdCBzZXRfcGl4ZWxf
Y2xvY2tfcGFyYW1ldGVyX3YxXzcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgICB1aW50MzJfdCBwaXhjbGtf
MTAwaHo7CjE0NDc0OiAKMTQ0NzQ6ICAgICB1aW50OF90IHBsbF9pZDsKMTQ0NzQ6ICAgICB1aW50
OF90IGVuY29kZXJvYmppZDsKMTQ0NzQ6IAoxNDQ3NDogICAgIHVpbnQ4X3QgZW5jb2Rlcl9tb2Rl
OwoxNDQ3NDogICAgIHVpbnQ4X3QgbWlzY2luZm87CjE0NDc0OiAgICAgdWludDhfdCBjcnRjX2lk
OwoxNDQ3NDogICAgIHVpbnQ4X3QgZGVlcF9jb2xvcl9yYXRpbzsKMTQ0NzQ6ICAgICB1aW50OF90
IHJlc2VydmVkMVsyXTsKMTQ0NzQ6ICAgICB1aW50MzJfdCByZXNlcnZlZDI7CjE0NDc0OiB9Owox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zZXRfcGl4ZWxfY2xvY2tfdjFfN19taXNj
X2luZm8KMTQ0NzQ6IHsKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19GT1JDRV9QUk9HX1BQ
TEwgPSAweDAxLAoxNDQ3NDogICBQSVhFTF9DTE9DS19WN19NSVNDX1BST0dfUEhZUExMID0gMHgw
MiwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19ZVVY0MjBfTU9ERSA9IDB4MDQsCjE0NDc0
OiAgIFBJWEVMX0NMT0NLX1Y3X01JU0NfRFZJX0RVQUxMSU5LX0VOID0gMHgwOCwKMTQ0NzQ6ICAg
UElYRUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElWX1NSQyA9IDB4MzAsCjE0NDc0OiAgIFBJWEVMX0NM
T0NLX1Y3X01JU0NfUkVGX0RJVl9TUkNfWFRBTElOID0gMHgwMCwKMTQ0NzQ6ICAgUElYRUxfQ0xP
Q0tfVjdfTUlTQ19SRUZfRElWX1NSQ19QQ0lFID0gMHgxMCwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tf
VjdfTUlTQ19SRUZfRElWX1NSQ19HRU5MSyA9IDB4MjAsCjE0NDc0OiAgIFBJWEVMX0NMT0NLX1Y3
X01JU0NfUkVGX0RJVl9TUkNfUkVGUEFEID0gMHgzMCwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdf
TUlTQ19BVE9NSUNfVVBEQVRFID0gMHg0MCwKMTQ0NzQ6ICAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19G
T1JDRV9TU19ESVMgPSAweDgwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVt
IGF0b21fc2V0X3BpeGVsX2Nsb2NrX3YxXzdfZGVlcGNvbG9yX3JhdGlvCjE0NDc0OiB7CjE0NDc0
OiAgIFBJWEVMX0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJT19ESVMgPSAweDAwLAoxNDQ3NDogICBQ
SVhFTF9DTE9DS19WN19ERUVQQ09MT1JfUkFUSU9fNV80ID0gMHgwMSwKMTQ0NzQ6ICAgUElYRUxf
Q0xPQ0tfVjdfREVFUENPTE9SX1JBVElPXzNfMiA9IDB4MDIsCjE0NDc0OiAgIFBJWEVMX0NMT0NL
X1Y3X0RFRVBDT0xPUl9SQVRJT18yXzEgPSAweDAzLAoxNDQ3NDogfTsKMTQ0NzQ6ICMgMjcyMiAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgox
NDQ3NDogc3RydWN0IHNldF9kY2VfY2xvY2tfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0
OiAgIHVpbnQzMl90IGRjZWNsa18xMGtoejsKMTQ0NzQ6ICAgdWludDhfdCBkY2VjbGt0eXBlOwox
NDQ3NDogICB1aW50OF90IGRjZWNsa3NyYzsKMTQ0NzQ6ICAgdWludDhfdCBkY2VjbGtmbGFnOwox
NDQ3NDogICB1aW50OF90IGNydGNfaWQ7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IGVudW0gYXRvbV9zZXRfZGNlX2Nsb2NrX2Nsb2NrX3R5cGUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgRENF
X0NMT0NLX1RZUEVfRElTUENMSyA9IDAsCjE0NDc0OiAgIERDRV9DTE9DS19UWVBFX0RQUkVGQ0xL
ID0gMSwKMTQ0NzQ6ICAgRENFX0NMT0NLX1RZUEVfUElYRUxDTEsgPSAyLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fc2V0X2RjZV9jbG9ja19kcHJlZmNsa19mbGFn
CjE0NDc0OiB7CjE0NDc0OiAgIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX01BU0sgPSAw
eDAzLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QTExfUkVGQ0xLX1NSQ19HRU5FUklDQSA9IDB4
MDAsCjE0NDc0OiAgIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX0dFTkxLID0gMHgwMSwK
MTQ0NzQ6ICAgRENFX0NMT0NLX0ZMQUdfUExMX1JFRkNMS19TUkNfUENJRSA9IDB4MDIsCjE0NDc0
OiAgIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX1hUQUxJTiA9IDB4MDMsCjE0NDc0OiB9
OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9zZXRfZGNlX2Nsb2NrX3BpeGNsa19m
bGFnCjE0NDc0OiB7CjE0NDc0OiAgIERDRV9DTE9DS19GTEFHX1BDTEtfREVFUENPTE9SX1JBVElP
X01BU0sgPSAweDAzLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T19ESVMgPSAweDAwLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T181XzQgPSAweDAxLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T18zXzIgPSAweDAyLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QQ0xLX0RFRVBDT0xPUl9SQVRJ
T18yXzEgPSAweDAzLAoxNDQ3NDogICBEQ0VfQ0xPQ0tfRkxBR19QSVhDTEtfWVVWNDIwX01PREUg
PSAweDA0LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHNldF9kY2VfY2xvY2tfcHNf
YWxsb2NhdGlvbl92Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBzZXRfZGNlX2Nsb2NrX3Bh
cmFtZXRlcnNfdjJfMSBwYXJhbTsKMTQ0NzQ6ICAgdWludDMyX3QgdWxSZXNlcnZlZFsyXTsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogc3Ry
dWN0IGJsYW5rX2NydGNfcGFyYW1ldGVycwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IGNydGNf
aWQ7CjE0NDc0OiAgIHVpbnQ4X3QgYmxhbmtpbmc7CjE0NDc0OiAgIHVpbnQxNl90IHJlc2VydmVk
OwoxNDQ3NDogICB1aW50MzJfdCByZXNlcnZlZDE7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBl
bnVtIGF0b21fYmxhbmtfY3J0Y19jb21tYW5kCjE0NDc0OiB7CjE0NDc0OiAgIEFUT01fQkxBTktJ
TkcgPSAxLAoxNDQ3NDogICBBVE9NX0JMQU5LSU5HX09GRiA9IDAsCjE0NDc0OiB9OwoxNDQ3NDog
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZW5hYmxlX2NydGNfcGFyYW1l
dGVycwoxNDQ3NDogewoxNDQ3NDogICB1aW50OF90IGNydGNfaWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
ZW5hYmxlOwoxNDQ3NDogICB1aW50OF90IHBhZGRpbmdbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBlbmFibGVfZGlzcF9w
b3dlcl9nYXRpbmdfcGFyYW1ldGVyc192Ml8xCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgZGlz
cF9waXBlX2lkOwoxNDQ3NDogICB1aW50OF90IGVuYWJsZTsKMTQ0NzQ6ICAgdWludDhfdCBwYWRk
aW5nWzJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGVuYWJsZV9kaXNwX3Bvd2Vy
X2dhdGluZ19wc19hbGxvY2F0aW9uCjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBlbmFibGVfZGlz
cF9wb3dlcl9nYXRpbmdfcGFyYW1ldGVyc192Ml8xIHBhcmFtOwoxNDQ3NDogICB1aW50MzJfdCB1
bFJlc2VydmVkWzRdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNldF9jcnRjX3VzaW5nX2R0ZF90aW1pbmdfcGFyYW1ldGVycwoxNDQ3NDog
ewoxNDQ3NDogICB1aW50MTZfdCBoX3NpemU7CjE0NDc0OiAgIHVpbnQxNl90IGhfYmxhbmtpbmdf
dGltZTsKMTQ0NzQ6ICAgdWludDE2X3Qgdl9zaXplOwoxNDQ3NDogICB1aW50MTZfdCB2X2JsYW5r
aW5nX3RpbWU7CjE0NDc0OiAgIHVpbnQxNl90IGhfc3luY29mZnNldDsKMTQ0NzQ6ICAgdWludDE2
X3QgaF9zeW5jd2lkdGg7CjE0NDc0OiAgIHVpbnQxNl90IHZfc3luY29mZnNldDsKMTQ0NzQ6ICAg
dWludDE2X3Qgdl9zeW5jd2lkdGg7CjE0NDc0OiAgIHVpbnQxNl90IG1vZGVtaXNjaW5mbzsKMTQ0
NzQ6ICAgdWludDhfdCBoX2JvcmRlcjsKMTQ0NzQ6ICAgdWludDhfdCB2X2JvcmRlcjsKMTQ0NzQ6
ICAgdWludDhfdCBjcnRjX2lkOwoxNDQ3NDogICB1aW50OF90IGVuY29kZXJfbW9kZTsKMTQ0NzQ6
ICAgdWludDhfdCBwYWRkaW5nWzJdOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHJvY2Vzc19pMmNfY2hhbm5lbF90cmFuc2Fj
dGlvbl9wYXJhbWV0ZXJzCjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgaTJjc3BlZWRfa2h6Owox
NDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICAgdWludDhfdCByZWdpbmRleDsKMTQ0NzQ6ICAgICB1
aW50OF90IHN0YXR1czsKMTQ0NzQ6ICAgfSByZWdpbmRfc3RhdHVzOwoxNDQ3NDogICB1aW50MTZf
dCBpMmNfZGF0YV9vdXQ7CjE0NDc0OiAgIHVpbnQ4X3QgZmxhZzsKMTQ0NzQ6ICAgdWludDhfdCB0
cmFuc19ieXRlczsKMTQ0NzQ6ICAgdWludDhfdCBzbGF2ZV9hZGRyOwoxNDQ3NDogICB1aW50OF90
IGkyY19pZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX3Byb2Nl
c3NfaTJjX2ZsYWcKMTQ0NzQ6IHsKMTQ0NzQ6ICAgSFdfSTJDX1dSSVRFID0gMSwKMTQ0NzQ6ICAg
SFdfSTJDX1JFQUQgPSAwLAoxNDQ3NDogICBJMkNfMkJZVEVfQUREUiA9IDB4MDIsCjE0NDc0OiAg
IEhXX0kyQ19TTUJVU19CWVRFX1dSID0gMHgwNCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogZW51bSBhdG9tX3Byb2Nlc3NfaTJjX3N0YXR1cwoxNDQ3NDogewoxNDQ3NDogICBIV19B
U1NJU1RFRF9JMkNfU1RBVFVTX0ZBSUxVUkUgPTIsCjE0NDc0OiAgIEhXX0FTU0lTVEVEX0kyQ19T
VEFUVVNfU1VDQ0VTUyA9MSwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgcHJvY2Vzc19hdXhfY2hhbm5lbF90cmFu
c2FjdGlvbl9wYXJhbWV0ZXJzX3YxXzIKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDE2X3QgYXV4X3Jl
cXVlc3Q7CjE0NDc0OiAgIHVpbnQxNl90IGRhdGFvdXQ7CjE0NDc0OiAgIHVpbnQ4X3QgY2hhbm5l
bGlkOwoxNDQ3NDogICB1bmlvbiB7CjE0NDc0OiAgICAgdWludDhfdCByZXBseV9zdGF0dXM7CjE0
NDc0OiAgICAgdWludDhfdCBhdXhfZGVsYXk7CjE0NDc0OiAgIH0gYXV4X3N0YXR1c19kZWxheTsK
MTQ0NzQ6ICAgdWludDhfdCBkYXRhb3V0X2xlbjsKMTQ0NzQ6ICAgdWludDhfdCBocGRfaWQ7CjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogc3RydWN0IHNlbGVjdF9jcnRjX3NvdXJjZV9wYXJhbWV0ZXJzX3YyXzMKMTQ0NzQ6IHsK
MTQ0NzQ6ICAgdWludDhfdCBjcnRjX2lkOwoxNDQ3NDogICB1aW50OF90IGVuY29kZXJfaWQ7CjE0
NDc0OiAgIHVpbnQ4X3QgZW5jb2RlX21vZGU7CjE0NDc0OiAgIHVpbnQ4X3QgZHN0X2JwYzsKMTQ0
NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IGVudW0gYXRvbV9kaWdfZW5jb2Rlcl9jb250cm9sX2FjdGlvbgoxNDQ3NDog
ewoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ01EX0RJU0FCTEVfRElHID0gMCwKMTQ0NzQ6ICAgQVRP
TV9FTkNPREVSX0NNRF9FTkFCTEVfRElHID0gMSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9E
UF9MSU5LX1RSQUlOSU5HX1NUQVJUID0gMHgwOCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9E
UF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4xID0gMHgwOSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NN
RF9EUF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4yID0gMHgwYSwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVS
X0NNRF9EUF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4zID0gMHgxMywKMTQ0NzQ6ICAgQVRPTV9FTkNP
REVSX0NNRF9EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFID0gMHgwYiwKMTQ0NzQ6ICAgQVRPTV9F
TkNPREVSX0NNRF9EUF9WSURFT19PRkYgPSAweDBjLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ01E
X0RQX1ZJREVPX09OID0gMHgwZCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9TRVRVUF9QQU5F
TF9NT0RFID0gMHgxMCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9EUF9MSU5LX1RSQUlOSU5H
X1BBVFRFUk40ID0gMHgxNCwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NNRF9TVFJFQU1fU0VUVVAg
PSAweDBGLAoxNDQ3NDogICBBVE9NX0VOQ09ERVJfQ01EX0xJTktfU0VUVVAgPSAweDExLAoxNDQ3
NDogICBBVE9NX0VOQ09ERVJfQ01EX0VOQ09ERVJfQkxBTksgPSAweDEyLAoxNDQ3NDogfTsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX2VuY29kZXJfY29udHJvbF9wYW5lbG1v
ZGUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgRFBfUEFORUxfTU9ERV9ESVNBQkxFID0gMHgwMCwKMTQ0NzQ6
ICAgRFBfUEFORUxfTU9ERV9FTkFCTEVfZURQX01PREUgPSAweDAxLAoxNDQ3NDogICBEUF9QQU5F
TF9NT0RFX0VOQUJMRV9MVkxJTktfTU9ERSA9IDB4MTEsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6IGVudW0gYXRvbV9kaWdfZW5jb2Rlcl9jb250cm9sX3Y1X2RpZ2lkCjE0NDc0OiB7
CjE0NDc0OiAgIEFUT01fRU5DT0RFUl9DT05GSUdfVjVfRElHMF9FTkNPREVSID0gMHgwMCwKMTQ0
NzQ6ICAgQVRPTV9FTkNPREVSX0NPTkZJR19WNV9ESUcxX0VOQ09ERVIgPSAweDAxLAoxNDQ3NDog
ICBBVE9NX0VOQ09ERVJfQ09ORklHX1Y1X0RJRzJfRU5DT0RFUiA9IDB4MDIsCjE0NDc0OiAgIEFU
T01fRU5DT0RFUl9DT05GSUdfVjVfRElHM19FTkNPREVSID0gMHgwMywKMTQ0NzQ6ICAgQVRPTV9F
TkNPREVSX0NPTkZJR19WNV9ESUc0X0VOQ09ERVIgPSAweDA0LAoxNDQ3NDogICBBVE9NX0VOQ09E
RVJfQ09ORklHX1Y1X0RJRzVfRU5DT0RFUiA9IDB4MDUsCjE0NDc0OiAgIEFUT01fRU5DT0RFUl9D
T05GSUdfVjVfRElHNl9FTkNPREVSID0gMHgwNiwKMTQ0NzQ6ICAgQVRPTV9FTkNPREVSX0NPTkZJ
R19WNV9ESUc3X0VOQ09ERVIgPSAweDA3LAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0
IGRpZ19lbmNvZGVyX3N0cmVhbV9zZXR1cF9wYXJhbWV0ZXJzX3YxXzUKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgdWludDhfdCBkaWdpZDsKMTQ0NzQ6ICAgdWludDhfdCBhY3Rpb247CjE0NDc0OiAgIHVpbnQ4
X3QgZGlnbW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBsYW5lbnVtOwoxNDQ3NDogICB1aW50MzJfdCBw
Y2xrXzEwa2h6OwoxNDQ3NDogICB1aW50OF90IGJpdHBlcmNvbG9yOwoxNDQ3NDogICB1aW50OF90
IGRwbGlua3JhdGVfMjcwbWh6OwoxNDQ3NDogICB1aW50OF90IHJlc2VydmVkWzJdOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGRpZ19lbmNvZGVyX2xpbmtfc2V0dXBfcGFyYW1ldGVy
c192MV81CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgZGlnaWQ7CjE0NDc0OiAgIHVpbnQ4X3Qg
YWN0aW9uOwoxNDQ3NDogICB1aW50OF90IGRpZ21vZGU7CjE0NDc0OiAgIHVpbnQ4X3QgbGFuZW51
bTsKMTQ0NzQ6ICAgdWludDhfdCBzeW1jbGtfMTBraHo7CjE0NDc0OiAgIHVpbnQ4X3QgaHBkX3Nl
bDsKMTQ0NzQ6ICAgdWludDhfdCBkaWdmZV9zZWw7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWRb
Ml07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZHBfcGFuZWxfbW9kZV9zZXRfcGFy
YW1ldGVyc192MV81CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQ4X3QgZGlnaWQ7CjE0NDc0OiAgIHVp
bnQ4X3QgYWN0aW9uOwoxNDQ3NDogICB1aW50OF90IHBhbmVsbW9kZTsKMTQ0NzQ6ICAgdWludDhf
dCByZXNlcnZlZDE7CjE0NDc0OiAgIHVpbnQzMl90IHJlc2VydmVkMlsyXTsKMTQ0NzQ6IH07CjE0
NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaWdfZW5jb2Rlcl9nZW5lcmljX2NtZF9wYXJhbWV0ZXJzX3Yx
XzUKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCBkaWdpZDsKMTQ0NzQ6ICAgdWludDhfdCBhY3Rp
b247CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzJdOwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZDJbMl07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiB1bmlvbiBkaWdfZW5jb2Rlcl9jb250
cm9sX3BhcmFtZXRlcnNfdjFfNQoxNDQ3NDogewoxNDQ3NDogICBzdHJ1Y3QgZGlnX2VuY29kZXJf
Z2VuZXJpY19jbWRfcGFyYW1ldGVyc192MV81IGNtZF9wYXJhbTsKMTQ0NzQ6ICAgc3RydWN0IGRp
Z19lbmNvZGVyX3N0cmVhbV9zZXR1cF9wYXJhbWV0ZXJzX3YxXzUgc3RyZWFtX3BhcmFtOwoxNDQ3
NDogICBzdHJ1Y3QgZGlnX2VuY29kZXJfbGlua19zZXR1cF9wYXJhbWV0ZXJzX3YxXzUgbGlua19w
YXJhbTsKMTQ0NzQ6ICAgc3RydWN0IGRwX3BhbmVsX21vZGVfc2V0X3BhcmFtZXRlcnNfdjFfNSBk
cHBhbmVsX3BhcmFtOwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBkaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9wYXJh
bWV0ZXJzX3YxXzYKMTQ0NzQ6IHsKMTQ0NzQ6ICAgdWludDhfdCBwaHlpZDsKMTQ0NzQ6ICAgdWlu
dDhfdCBhY3Rpb247CjE0NDc0OiAgIHVuaW9uIHsKMTQ0NzQ6ICAgICB1aW50OF90IGRpZ21vZGU7
CjE0NDc0OiAgICAgdWludDhfdCBkcGxhbmVzZXQ7CjE0NDc0OiAgIH0gbW9kZV9sYW5lc2V0Owox
NDQ3NDogICB1aW50OF90IGxhbmVudW07CjE0NDc0OiAgIHVpbnQzMl90IHN5bWNsa18xMGtoejsK
MTQ0NzQ6ICAgdWludDhfdCBocGRzZWw7CjE0NDc0OiAgIHVpbnQ4X3QgZGlnZmVfc2VsOwoxNDQ3
NDogICB1aW50OF90IGNvbm5vYmpfaWQ7CjE0NDc0OiAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7CjE0NDc0
OiAgIHVpbnQzMl90IHJlc2VydmVkMTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBk
aWdfdHJhbnNtaXR0ZXJfY29udHJvbF9wc19hbGxvY2F0aW9uX3YxXzYKMTQ0NzQ6IHsKMTQ0NzQ6
ICAgc3RydWN0IGRpZ190cmFuc21pdHRlcl9jb250cm9sX3BhcmFtZXRlcnNfdjFfNiBwYXJhbTsK
MTQ0NzQ6ICAgdWludDMyX3QgcmVzZXJ2ZWRbNF07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAK
MTQ0NzQ6IGVudW0gYXRvbV9kaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9hY3Rpb24KMTQ0NzQ6IHsK
MTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fRElTQUJMRSA9IDAsCjE0NDc0OiAgIEFU
T01fVFJBTlNNSVRURVJfQUNUSU9OX0VOQUJMRSA9IDEsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRU
RVJfQUNUSU9OX0xDRF9CTE9GRiA9IDIsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRURVJfQUNUSU9O
X0xDRF9CTE9OID0gMywKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fQkxfQlJJR0hU
TkVTU19DT05UUk9MID0gNCwKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fTENEX1NF
TEZURVNUX1NUQVJUID0gNSwKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fTENEX1NF
TEZURVNUX1NUT1AgPSA2LAoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9JTklUID0g
NywKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fRElTQUJMRV9PVVRQVVQgPSA4LAox
NDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9FTkFCTEVfT1VUUFVUID0gOSwKMTQ0NzQ6
ICAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fU0VUVVAgPSAxMCwKMTQ0NzQ6ICAgQVRPTV9UUkFO
U01JVFRFUl9BQ1RJT05fU0VUVVBfVlNFTVBIID0gMTEsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRU
RVJfQUNUSU9OX1BPV0VSX09OID0gMTIsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRURVJfQUNUSU9O
X1BPV0VSX09GRiA9IDEzLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0
b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRyb2xfZGlnZmVfc2VsCjE0NDc0OiB7CjE0NDc0OiAgIEFU
T01fVFJBTk1TSVRURVJfVjZfX0RJR0FfU0VMID0gMHgwMSwKMTQ0NzQ6ICAgQVRPTV9UUkFOTVNJ
VFRFUl9WNl9fRElHQl9TRUwgPSAweDAyLAoxNDQ3NDogICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19E
SUdDX1NFTCA9IDB4MDQsCjE0NDc0OiAgIEFUT01fVFJBTk1TSVRURVJfVjZfX0RJR0RfU0VMID0g
MHgwOCwKMTQ0NzQ6ICAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRV9TRUwgPSAweDEwLAoxNDQ3
NDogICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdGX1NFTCA9IDB4MjAsCjE0NDc0OiAgIEFUT01f
VFJBTk1TSVRURVJfVjZfX0RJR0dfU0VMID0gMHg0MCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRyb2xfaHBkX3Nl
bAoxNDQ3NDogewoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX1Y2X05PX0hQRF9TRUwgPSAweDAw
LAoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDFfU0VMID0gMHgwMSwKMTQ0NzQ6ICAg
QVRPTV9UUkFOU01JVFRFUl9WNl9IUEQyX1NFTCA9IDB4MDIsCjE0NDc0OiAgIEFUT01fVFJBTlNN
SVRURVJfVjZfSFBEM19TRUwgPSAweDAzLAoxNDQ3NDogICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQ
RDRfU0VMID0gMHgwNCwKMTQ0NzQ6ICAgQVRPTV9UUkFOU01JVFRFUl9WNl9IUEQ1X1NFTCA9IDB4
MDUsCjE0NDc0OiAgIEFUT01fVFJBTlNNSVRURVJfVjZfSFBENl9TRUwgPSAweDA2LAoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGF0b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRy
b2xfZHBsYW5lc2V0CjE0NDc0OiB7CjE0NDc0OiAgIERQX0xBTkVfU0VUX18wREJfMF80ViA9IDB4
MDAsCjE0NDc0OiAgIERQX0xBTkVfU0VUX18wREJfMF82ViA9IDB4MDEsCjE0NDc0OiAgIERQX0xB
TkVfU0VUX18wREJfMF84ViA9IDB4MDIsCjE0NDc0OiAgIERQX0xBTkVfU0VUX18wREJfMV8yViA9
IDB4MDMsCjE0NDc0OiAgIERQX0xBTkVfU0VUX18zXzVEQl8wXzRWID0gMHgwOCwKMTQ0NzQ6ICAg
RFBfTEFORV9TRVRfXzNfNURCXzBfNlYgPSAweDA5LAoxNDQ3NDogICBEUF9MQU5FX1NFVF9fM181
REJfMF84ViA9IDB4MGEsCjE0NDc0OiAgIERQX0xBTkVfU0VUX182REJfMF80ViA9IDB4MTAsCjE0
NDc0OiAgIERQX0xBTkVfU0VUX182REJfMF82ViA9IDB4MTEsCjE0NDc0OiAgIERQX0xBTkVfU0VU
X185XzVEQl8wXzRWID0gMHgxOCwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBleHRlcm5hbF9lbmNv
ZGVyX2NvbnRyb2xfcGFyYW1ldGVyc192Ml80CjE0NDc0OiB7CjE0NDc0OiAgIHVpbnQxNl90IHBp
eGVsY2xvY2tfMTBraHo7CjE0NDc0OiAgIHVpbnQ4X3QgY29uZmlnOwoxNDQ3NDogICB1aW50OF90
IGFjdGlvbjsKMTQ0NzQ6ICAgdWludDhfdCBlbmNvZGVybW9kZTsKMTQ0NzQ6ICAgdWludDhfdCBs
YW5lbnVtOwoxNDQ3NDogICB1aW50OF90IGJpdHBlcmNvbG9yOwoxNDQ3NDogICB1aW50OF90IGhw
ZF9pZDsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBlbnVtIGV4dGVy
bmFsX2VuY29kZXJfY29udHJvbF9hY3Rpb25fZGVmCjE0NDc0OiB7CjE0NDc0OiAgIEVYVEVSTkFM
X0VOQ09ERVJfQUNUSU9OX1YzX0RJU0FCTEVfT1VUUFVUID0gMHgwMCwKMTQ0NzQ6ICAgRVhURVJO
QUxfRU5DT0RFUl9BQ1RJT05fVjNfRU5BQkxFX09VVFBVVCA9IDB4MDEsCjE0NDc0OiAgIEVYVEVS
TkFMX0VOQ09ERVJfQUNUSU9OX1YzX0VOQ09ERVJfSU5JVCA9IDB4MDcsCjE0NDc0OiAgIEVYVEVS
TkFMX0VOQ09ERVJfQUNUSU9OX1YzX0VOQ09ERVJfU0VUVVAgPSAweDBmLAoxNDQ3NDogICBFWFRF
Uk5BTF9FTkNPREVSX0FDVElPTl9WM19FTkNPREVSX0JMQU5LSU5HX09GRiA9IDB4MTAsCjE0NDc0
OiAgIEVYVEVSTkFMX0VOQ09ERVJfQUNUSU9OX1YzX0VOQ09ERVJfQkxBTktJTkcgPSAweDExLAox
NDQ3NDogICBFWFRFUk5BTF9FTkNPREVSX0FDVElPTl9WM19EQUNMT0FEX0RFVEVDVElPTiA9IDB4
MTIsCjE0NDc0OiAgIEVYVEVSTkFMX0VOQ09ERVJfQUNUSU9OX1YzX0REQ19TRVRVUCA9IDB4MTQs
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IGVudW0gZXh0ZXJuYWxfZW5jb2Rlcl9j
b250cm9sX3YyXzRfY29uZmlnX2RlZgoxNDQ3NDogewoxNDQ3NDogICBFWFRFUk5BTF9FTkNPREVS
X0NPTkZJR19WM19EUExJTktSQVRFX01BU0sgPSAweDAzLAoxNDQ3NDogICBFWFRFUk5BTF9FTkNP
REVSX0NPTkZJR19WM19EUExJTktSQVRFXzFfNjJHSFogPSAweDAwLAoxNDQ3NDogICBFWFRFUk5B
TF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzJfNzBHSFogPSAweDAxLAoxNDQ3NDogICBF
WFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzVfNDBHSFogPSAweDAyLAoxNDQ3
NDogICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzNfMjRHSFogPSAweDAz
LAoxNDQ3NDogICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19FTkNPREVSX1NFTF9NQUtTID0g
MHg3MCwKMTQ0NzQ6ICAgRVhURVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRU5DT0RFUjEgPSAweDAw
LAoxNDQ3NDogICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19FTkNPREVSMiA9IDB4MTAsCjE0
NDc0OiAgIEVYVEVSTkFMX0VOQ09ERVJfQ09ORklHX1YzX0VOQ09ERVIzID0gMHgyMCwKMTQ0NzQ6
IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCBleHRlcm5hbF9lbmNvZGVyX2NvbnRyb2xfcHNfYWxs
b2NhdGlvbl92Ml80CjE0NDc0OiB7CjE0NDc0OiAgIHN0cnVjdCBleHRlcm5hbF9lbmNvZGVyX2Nv
bnRyb2xfcGFyYW1ldGVyc192Ml80IHNFeHRFbmNvZGVyOwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZFsyXTsKMTQ0NzQ6IH07CjE0NDc0OiAjIDMxMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKMTQ0NzQ6IHN0cnVjdCBhbWRfYWNwaV9k
ZXNjcmlwdGlvbl9oZWFkZXJ7CjE0NDc0OiAgIHVpbnQzMl90IHNpZ25hdHVyZTsKMTQ0NzQ6ICAg
dWludDMyX3QgdGFibGVMZW5ndGg7CjE0NDc0OiAgIHVpbnQ4X3QgcmV2aXNpb247CjE0NDc0OiAg
IHVpbnQ4X3QgY2hlY2tzdW07CjE0NDc0OiAgIHVpbnQ4X3Qgb2VtSWRbNl07CjE0NDc0OiAgIHVp
bnQ4X3Qgb2VtVGFibGVJZFs4XTsKMTQ0NzQ6ICAgdWludDMyX3Qgb2VtUmV2aXNpb247CjE0NDc0
OiAgIHVpbnQzMl90IGNyZWF0b3JJZDsKMTQ0NzQ6ICAgdWludDMyX3QgY3JlYXRvclJldmlzaW9u
OwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IHVlZmlfYWNwaV92ZmN0ewoxNDQ3NDog
ICBzdHJ1Y3QgYW1kX2FjcGlfZGVzY3JpcHRpb25faGVhZGVyIHNoZWFkZXI7CjE0NDc0OiAgIHVp
bnQ4X3QgdGFibGVVVUlEWzE2XTsKMTQ0NzQ6ICAgdWludDMyX3QgdmJpb3NpbWFnZW9mZnNldDsK
MTQ0NzQ6ICAgdWludDMyX3QgbGliMUltYWdlb2Zmc2V0OwoxNDQ3NDogICB1aW50MzJfdCByZXNl
cnZlZFs0XTsKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB2ZmN0X2ltYWdlX2hlYWRl
cnsKMTQ0NzQ6ICAgdWludDMyX3QgcGNpYnVzOwoxNDQ3NDogICB1aW50MzJfdCBwY2lkZXZpY2U7
CjE0NDc0OiAgIHVpbnQzMl90IHBjaWZ1bmN0aW9uOwoxNDQ3NDogICB1aW50MTZfdCB2ZW5kb3Jp
ZDsKMTQ0NzQ6ICAgdWludDE2X3QgZGV2aWNlaWQ7CjE0NDc0OiAgIHVpbnQxNl90IHNzdmlkOwox
NDQ3NDogICB1aW50MTZfdCBzc2lkOwoxNDQ3NDogICB1aW50MzJfdCByZXZpc2lvbjsKMTQ0NzQ6
ICAgdWludDMyX3QgaW1hZ2VsZW5ndGg7CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6
IHN0cnVjdCBnb3BfdmJpb3NfY29udGVudCB7CjE0NDc0OiAgIHN0cnVjdCB2ZmN0X2ltYWdlX2hl
YWRlciB2Ymlvc2hlYWRlcjsKMTQ0NzQ6ICAgdWludDhfdCB2Ymlvc2NvbnRlbnRbMV07CjE0NDc0
OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgZ29wX2xpYjFfY29udGVudCB7CjE0NDc0OiAgIHN0
cnVjdCB2ZmN0X2ltYWdlX2hlYWRlciBsaWIxaGVhZGVyOwoxNDQ3NDogICB1aW50OF90IGxpYjFj
b250ZW50WzFdOwoxNDQ3NDogfTsKMTQ0NzQ6ICMgMzE5MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgoxNDQ3NDogZW51bSBzY3JhdGNoX3Jl
Z2lzdGVyX2RlZnsKMTQ0NzQ6ICAgQVRPTV9ERVZJQ0VfQ09OTkVDVF9JTkZPX0RFRiA9IDAsCjE0
NDc0OiAgIEFUT01fQkxfQlJJX0xFVkVMX0lORk9fREVGID0gMiwKMTQ0NzQ6ICAgQVRPTV9BQ1RJ
VkVfSU5GT19ERUYgPSAzLAoxNDQ3NDogICBBVE9NX0xDRF9JTkZPX0RFRiA9IDQsCjE0NDc0OiAg
IEFUT01fREVWSUNFX1JFUV9JTkZPX0RFRiA9IDUsCjE0NDc0OiAgIEFUT01fQUNDX0NIQU5HRV9J
TkZPX0RFRiA9IDYsCjE0NDc0OiAgIEFUT01fUFJFX09TX01PREVfSU5GT19ERUYgPSA3LAoxNDQ3
NDogICBBVE9NX1BSRV9PU19BU1NFUlRJT05fREVGID0gOCwKMTQ0NzQ6ICAgQVRPTV9JTlRFUk5B
TF9USU1FUl9JTkZPX0RFRiA9IDEwLAoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBzY3Jh
dGNoX2RldmljZV9jb25uZWN0X2luZm9fYml0X2RlZnsKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0xD
RDFfQ09OTkVDVCA9MHgwMDAyLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQMV9DT05ORUNUID0w
eDAwMDgsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlAyX0NPTk5FQ1QgPTB4MDA4MCwKMTQ0NzQ6
ICAgQVRPTV9ESVNQTEFZX0RGUDNfQ09OTkVDVCA9MHgwMjAwLAoxNDQ3NDogICBBVE9NX0RJU1BM
QVlfREZQNF9DT05ORUNUID0weDA0MDAsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlA1X0NPTk5F
Q1QgPTB4MDgwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDZfQ09OTkVDVCA9MHgwMDQwLAox
NDQ3NDogICBBVE9NX0RJU1BMQVlfREZQeF9DT05ORUNUID0weDBlYzgsCjE0NDc0OiAgIEFUT01f
Q09OTkVDVF9JTkZPX0RFVklDRV9NQVNLID0weDBmZmYsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0
OiBlbnVtIHNjcmF0Y2hfYmxfYnJpX2xldmVsX2luZm9fYml0X2RlZnsKMTQ0NzQ6ICAgQVRPTV9D
VVJSRU5UX0JMX0xFVkVMX1NISUZUID0weDgsCjE0NDc0OiAKMTQ0NzQ6ICAgQVRPTV9DVVJSRU5U
X0JMX0xFVkVMX01BU0sgPTB4MDAwMGZmMDAsCjE0NDc0OiAgIEFUT01fREVWSUNFX0RQTVNfU1RB
VEUgPTB4MDAwMTAwMDAsCjE0NDc0OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gc2Ny
YXRjaF9hY3RpdmVfaW5mb19iaXRzX2RlZnsKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0xDRDFfQUNU
SVZFID0weDAwMDIsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlAxX0FDVElWRSA9MHgwMDA4LAox
NDQ3NDogICBBVE9NX0RJU1BMQVlfREZQMl9BQ1RJVkUgPTB4MDA4MCwKMTQ0NzQ6ICAgQVRPTV9E
SVNQTEFZX0RGUDNfQUNUSVZFID0weDAyMDAsCjE0NDc0OiAgIEFUT01fRElTUExBWV9ERlA0X0FD
VElWRSA9MHgwNDAwLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQNV9BQ1RJVkUgPTB4MDgwMCwK
MTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDZfQUNUSVZFID0weDAwNDAsCjE0NDc0OiAgIEFUT01f
QUNUSVZFX0lORk9fREVWSUNFX01BU0sgPTB4MGZmZiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6
IGVudW0gc2NyYXRjaF9kZXZpY2VfcmVxX2luZm9fYml0c19kZWZ7CjE0NDc0OiAgIEFUT01fRElT
UExBWV9MQ0QxX1JFUSA9MHgwMDAyLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQMV9SRVEgPTB4
MDAwOCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDJfUkVRID0weDAwODAsCjE0NDc0OiAgIEFU
T01fRElTUExBWV9ERlAzX1JFUSA9MHgwMjAwLAoxNDQ3NDogICBBVE9NX0RJU1BMQVlfREZQNF9S
RVEgPTB4MDQwMCwKMTQ0NzQ6ICAgQVRPTV9ESVNQTEFZX0RGUDVfUkVRID0weDA4MDAsCjE0NDc0
OiAgIEFUT01fRElTUExBWV9ERlA2X1JFUSA9MHgwMDQwLAoxNDQ3NDogICBBVE9NX1JFUV9JTkZP
X0RFVklDRV9NQVNLID0weDBmZmYsCjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHNjcmF0
Y2hfYWNjX2NoYW5nZV9pbmZvX2JpdHNoaWZ0X2RlZnsKMTQ0NzQ6ICAgQVRPTV9BQ0NfQ0hBTkdF
X0FDQ19NT0RFX1NISUZUID00LAoxNDQ3NDogICBBVE9NX0FDQ19DSEFOR0VfTElEX1NUQVRVU19T
SElGVCA9NiwKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IGVudW0gc2NyYXRjaF9hY2NfY2hhbmdl
X2luZm9fYml0c19kZWZ7CjE0NDc0OiAgIEFUT01fQUNDX0NIQU5HRV9BQ0NfTU9ERSA9MHgwMDAw
MDAxMCwKMTQ0NzQ6ICAgQVRPTV9BQ0NfQ0hBTkdFX0xJRF9TVEFUVVMgPTB4MDAwMDAwNDAsCjE0
NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBlbnVtIHNjcmF0Y2hfcHJlX29zX21vZGVfaW5mb19iaXRz
X2RlZnsKMTQ0NzQ6ICAgQVRPTV9QUkVfT1NfTU9ERV9NQVNLID0weDAwMDAwMDAzLAoxNDQ3NDog
ICBBVE9NX1BSRV9PU19NT0RFX1ZHQSA9MHgwMDAwMDAwMCwKMTQ0NzQ6ICAgQVRPTV9QUkVfT1Nf
TU9ERV9WRVNBID0weDAwMDAwMDAxLAoxNDQ3NDogICBBVE9NX1BSRV9PU19NT0RFX0dPUCA9MHgw
MDAwMDAwMiwKMTQ0NzQ6ICAgQVRPTV9QUkVfT1NfTU9ERV9QSVhFTF9ERVBUSCA9MHgwMDAwMDAw
QywKMTQ0NzQ6ICAgQVRPTV9QUkVfT1NfTU9ERV9QSVhFTF9GT1JNQVRfTUFTSz0weDAwMDAwMEYw
LAoxNDQ3NDogICBBVE9NX1BSRV9PU19NT0RFXzhCSVRfUEFMX0VOID0weDAwMDAwMTAwLAoxNDQ3
NDogICBBVE9NX0FTSUNfSU5JVF9DT01QTEVURSA9MHgwMDAwMDIwMCwKMTQ0NzQ6IAoxNDQ3NDog
ICBBVE9NX1BSRV9PU19NT0RFX05VTUJFUl9NQVNLID0weEZGRkYwMDAwLAoxNDQ3NDogCjE0NDc0
OiB9OwoxNDQ3NDogIyAzMjc2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1
ZGUvYXRvbWZpcm13YXJlLmgiCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmVpZC5oIiAxCjE0NDc0OiAjIDMxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlaWQuaCIKMTQ0NzQ6IGVu
dW0gYXRvbV9tYXN0ZXJfZGF0YV90YWJsZV9pZAoxNDQ3NDogewoxNDQ3NDogICAgIFZCSU9TX0RB
VEFfVEJMX0lEX19VVElMSVRZX1BJUEVMSU5FLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lE
X19NVUxUSU1FRElBX0lORiwKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fRklSTVdBUkVf
SU5GLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19MQ0RfSU5GLAoxNDQ3NDogICAgIFZC
SU9TX0RBVEFfVEJMX0lEX19TTVVfSU5GLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19W
UkFNX1VTQUdFX0JZX0ZJUk1XQVJFLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19HUElP
X1BJTl9MVVQsCjE0NDc0OiAgICAgVkJJT1NfREFUQV9UQkxfSURfX0dGWF9JTkYsCjE0NDc0OiAg
ICAgVkJJT1NfREFUQV9UQkxfSURfX1BPV0VSX1BMQVlfSU5GLAoxNDQ3NDogICAgIFZCSU9TX0RB
VEFfVEJMX0lEX19ESVNQTEFZX09CSkVDVF9JTkYsCjE0NDc0OiAgICAgVkJJT1NfREFUQV9UQkxf
SURfX0lORElSRUNUX0lPX0FDQ0VTUywKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fVU1D
X0lORiwKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fRENFX0lORiwKMTQ0NzQ6ICAgICBW
QklPU19EQVRBX1RCTF9JRF9fVlJBTV9JTkYsCjE0NDc0OiAgICAgVkJJT1NfREFUQV9UQkxfSURf
X0lOVEVHUkFURURfU1lTX0lORiwKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fQVNJQ19Q
Uk9GSUxJTkdfSU5GLAoxNDQ3NDogICAgIFZCSU9TX0RBVEFfVEJMX0lEX19WT0xUQUdFX09CSl9J
TkYsCjE0NDc0OiAKMTQ0NzQ6ICAgICBWQklPU19EQVRBX1RCTF9JRF9fVU5ERUZJTkVELAoxNDQ3
NDogfTsKMTQ0NzQ6IAoxNDQ3NDogZW51bSBhdG9tX21hc3Rlcl9jb21tYW5kX3RhYmxlX2lkCjE0
NDc0OiB7CjE0NDc0OiAgICAgVkJJT1NfQ01EX1RCTF9JRF9fQVNJQ19JTklULAoxNDQ3NDogICAg
IFZCSU9TX0NNRF9UQkxfSURfX0RJR1hfRU5DT0RFUl9DT05UUk9MLAoxNDQ3NDogICAgIFZCSU9T
X0NNRF9UQkxfSURfX1NFVF9FTkdJTkVfQ0xPQ0ssCjE0NDc0OiAgICAgVkJJT1NfQ01EX1RCTF9J
RF9fU0VUX01FTU9SWV9DTE9DSywKMTQ0NzQ6ICAgICBWQklPU19DTURfVEJMX0lEX19TRVRfUElY
RUxfQ0xPQ0ssCjE0NDc0OiAgICAgVkJJT1NfQ01EX1RCTF9JRF9fRU5BQkxFX0RJU1BfUE9XRVJf
R0FUSU5HLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0JMQU5LX0NSVEMsCjE0NDc0OiAg
ICAgVkJJT1NfQ01EX1RCTF9JRF9fRU5BQkxFX0NSVEMsCjE0NDc0OiAgICAgVkJJT1NfQ01EX1RC
TF9JRF9fR0VUX1NNVV9DTE9DS19JTkZPLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX1NF
TEVDVF9DUlRDX1NPVVJDRSwKMTQ0NzQ6ICAgICBWQklPU19DTURfVEJMX0lEX19TRVRfRENFX0NM
T0NLLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0dFVF9NRU1PUllfQ0xPQ0ssCjE0NDc0
OiAgICAgVkJJT1NfQ01EX1RCTF9JRF9fR0VUX0VOR0lORV9DTE9DSywKMTQ0NzQ6ICAgICBWQklP
U19DTURfVEJMX0lEX19TRVRfQ1JUQ19VU0lOR19EVERfVElNSU5HLAoxNDQ3NDogICAgIFZCSU9T
X0NNRF9UQkxfSURfX0VYVEVOQUxfRU5DT0RFUl9DT05UUk9MLAoxNDQ3NDogICAgIFZCSU9TX0NN
RF9UQkxfSURfX1BST0NFU1NfSTJDX0NIQU5ORUxfVFJBTlNBQ1RJT04sCjE0NDc0OiAgICAgVkJJ
T1NfQ01EX1RCTF9JRF9fQ09NUFVURV9HUFVfQ0xPQ0tfUEFSQU0sCjE0NDc0OiAgICAgVkJJT1Nf
Q01EX1RCTF9JRF9fRFlOQU1JQ19NRU1PUllfU0VUVElOR1MsCjE0NDc0OiAgICAgVkJJT1NfQ01E
X1RCTF9JRF9fTUVNT1JZX1RSQUlOSU5HLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX1NF
VF9WT0xUQUdFLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0RJRzFfVFJBTlNNSVRURVJf
Q09OVFJPTCwKMTQ0NzQ6ICAgICBWQklPU19DTURfVEJMX0lEX19QUk9DRVNTX0FVWF9DSEFOTkVM
X1RSQU5TQUNUSU9OLAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX0dFVF9WT0xUQUdFX0lO
RiwKMTQ0NzQ6IAoxNDQ3NDogICAgIFZCSU9TX0NNRF9UQkxfSURfX1VOREVGSU5FRCwKMTQ0NzQ6
IH07CjE0NDc0OiAjIDMyNzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVk
ZS9hdG9tZmlybXdhcmUuaCIgMgoxNDQ3NDogI3ByYWdtYSBwYWNrKCkKMTQ0NzQ6ICMgNDEgImRy
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9j
bGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9p
bmNsdWRlL2FzaWNfcmVnL2Nsay9jbGtfMTBfMF8yX29mZnNldC5oIiAxCjE0NDc0OiAjIDQyICJk
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5f
Y2xrX21nci5jIiAyCjE0NDc0OiAjIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xrXzEwXzBfMl9zaF9tYXNrLmgiIDEKMTQ0NzQ6ICMgNDMg
ImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9y
bl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaCIgMQoxNDQ3NDogIyAyOCAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaCIKMTQ0NzQ6IHN0
cnVjdCBJUF9CQVNFX0lOU1RBTkNFCjE0NDc0OiB7CjE0NDc0OiAgICAgdW5zaWduZWQgaW50IHNl
Z21lbnRbNV07CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3QgSVBfQkFTRQoxNDQ3NDog
ewoxNDQ3NDogICAgIHN0cnVjdCBJUF9CQVNFX0lOU1RBTkNFIGluc3RhbmNlWzddOwoxNDQ3NDog
fTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgQUNQ
X0JBU0UgPXsgeyB7IHsgMHgwMjQwMzgwMCwgMHgwMDQ4MDAwMCwgMCwgMCwgMCB9IH0sCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIEFU
SFVCX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEMyMCwgMHgwMjQwOEMwMCwgMCwgMCwgMCB9IH0sCjE0
NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNF
IENMS19CQVNFID17IHsgeyB7IDB4MDAwMTZDMDAsIDB4MDAwMTZFMDAsIDB4MDAwMTcwMDAsIDB4
MDAwMTdFMDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBj
b25zdCBzdHJ1Y3QgSVBfQkFTRSBEQkdVX0lPMF9CQVNFID17IHsgeyB7IDB4MDAwMDAxRTAsIDB4
MDI0MEI0MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0
YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBERl9CQVNFID17IHsgeyB7IDB4MDAwMDcwMDAsIDB4
MDI0MEI4MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0
YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBESU9fQkFTRSA9eyB7IHsgeyAweDAyNDA0MDAwLCAw
LCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29u
c3Qgc3RydWN0IElQX0JBU0UgRE1VX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBD
MCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIERQQ1NfQkFTRSA9
eyB7IHsgeyAweDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAweDAwMDA5MDAwLCAw
eDAyNDAzQzAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29u
c3Qgc3RydWN0IElQX0JBU0UgRlVTRV9CQVNFID17IHsgeyB7IDB4MDAwMTc0MDAsIDB4MDI0MDE0
MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBj
b25zdCBzdHJ1Y3QgSVBfQkFTRSBHQ19CQVNFID17IHsgeyB7IDB4MDAwMDIwMDAsIDB4MDAwMEEw
MDAsIDB4MDI0MDJDMDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0
OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBIREFfQkFTRSA9eyB7IHsgeyAweDAyNDA0ODAw
LCAweDAwNEMwMDAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0
OiBzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERQX0JBU0UgPXsgeyB7IHsgMHgwMDAwMEYy
MCwgMHgwMjQwQTQwMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3
NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIElPSEMwX0JBU0UgPXsgeyB7IHsgMHgwMDAx
MDAwMCwgMHgwMjQwNjAwMCwgMHgwNEVDMDAwMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIElTUF9CQVNFID17IHsg
eyB7IDB4MDAwMTgwMDAsIDB4MDI0MEIwMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBMMklNVTBfQkFTRSA9
eyB7IHsgeyAweDAwMDA3REMwLCAweDAyNDA3MDAwLCAweDAwOTAwMDAwLCAweDA0RkMwMDAwLCAw
eDA1NUMwMDAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29u
c3Qgc3RydWN0IElQX0JBU0UgTU1IVUJfQkFTRSA9eyB7IHsgeyAweDAwMDFBMDAwLCAweDAyNDA4
ODAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMg
Y29uc3Qgc3RydWN0IElQX0JBU0UgTVAwX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjAwMCwgMHgwMjQz
RkMwMCwgMHgwMERDMDAwMCwgMHgwMEUwMDAwMCwgMHgwMEU0MDAwMCB9IH0sCjE0NDc0OiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAw
LCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0gfSB9OwoxNDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1QMV9CQVNF
ID17IHsgeyB7IDB4MDAwMTYwMDAsIDB4MDI0MDA0MDAsIDB4MDBFODAwMDAsIDB4MDBFQzAwMDAs
IDB4MDBGMDAwMDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAox
NDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBj
b25zdCBzdHJ1Y3QgSVBfQkFTRSBOQklGMF9CQVNFID17IHsgeyB7IDB4MDAwMDAwMDAsIDB4MDAw
MDAwMTQsIDB4MDAwMDBEMjAsIDB4MDAwMTA0MDAsIDB4MDI0MUIwMDAgfSB9LAoxNDQ3NDogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0
NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBEQ05fQkFT
RSA9eyB7IHsgeyAweDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAwLCAwIH0gfSwK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9Owox
NDQ3NDogc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE9TU1NZU19CQVNFID17IHsgeyB7IDB4
MDAwMDEwQTAsIDB4MDI0MEEwMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0g
fTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBQQ0lFMF9CQVNFID17IHsgeyB7
IDB4MDI0MTE4MDAsIDB4MDQ0NDAwMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMF9CQVNFID17IHsg
eyB7IDB4MDAwMDEyNjAsIDB4MDI0MEE4MDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0
NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTTVVJT19CQVNFID17
IHsgeyB7IDB4MDAwMTY4MDAsIDB4MDAwMTZBMDAsIDB4MDI0MDEwMDAsIDB4MDA0NDAwMDAsIDAg
fSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
MTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKMTQ0NzQ6IHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
SVBfQkFTRSBUSE1fQkFTRSA9eyB7IHsgeyAweDAwMDE2NjAwLCAweDAyNDAwQzAwLCAwLCAwLCAw
IH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0s
CjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0OiBzdGF0aWMgY29uc3Qgc3RydWN0
IElQX0JBU0UgVU1DX0JBU0UgPXsgeyB7IHsgMHgwMDAxNDAwMCwgMHgwMjQyNTgwMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDB4MDAwNTQwMDAsIDB4MDI0MjVDMDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwoxNDQ3NDog
c3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFVTQjBfQkFTRSA9eyB7IHsgeyAweDAyNDJBODAw
LCAweDA1QjAwMDAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3
NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CjE0NDc0
OiBzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVVZEMF9CQVNFID17IHsgeyB7IDB4MDAwMDc4
MDAsIDB4MDAwMDdFMDAsIDB4MDI0MDMwMDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCjE0NDc0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAoxNDQ3NDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKMTQ0NzQ6ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCjE0NDc0OiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
IH0gfTsKMTQ0NzQ6ICMgNDQgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKMTQ0NzQ6ICMgNTcgImRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMi
CjE0NDc0OiBpbnQgcm5fZ2V0X2FjdGl2ZV9kaXNwbGF5X2NudF93YSgKMTQ0NzQ6ICAgc3RydWN0
IGRjICpkYywKMTQ0NzQ6ICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQoxNDQ3NDogewoxNDQ3
NDogIGludCBpLCBkaXNwbGF5X2NvdW50OwoxNDQ3NDogIGJvb2wgdG1kc19wcmVzZW50ID0gZmFs
c2U7CjE0NDc0OiAKMTQ0NzQ6ICBkaXNwbGF5X2NvdW50ID0gMDsKMTQ0NzQ6ICBmb3IgKGkgPSAw
OyBpIDwgY29udGV4dC0+c3RyZWFtX2NvdW50OyBpKyspIHsKMTQ0NzQ6ICAgY29uc3Qgc3RydWN0
IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtID0gY29udGV4dC0+c3RyZWFtc1tpXTsKMTQ0NzQ6IAox
NDQ3NDogICBpZiAoc3RyZWFtLT5zaWduYWwgPT0gU0lHTkFMX1RZUEVfSERNSV9UWVBFX0EgfHwK
MTQ0NzQ6ICAgICBzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTksg
fHwKMTQ0NzQ6ICAgICBzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5L
KQoxNDQ3NDogICAgdG1kc19wcmVzZW50ID0gdHJ1ZTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6
ICBmb3IgKGkgPSAwOyBpIDwgZGMtPmxpbmtfY291bnQ7IGkrKykgewoxNDQ3NDogICBjb25zdCBz
dHJ1Y3QgZGNfbGluayAqbGluayA9IGRjLT5saW5rc1tpXTsKMTQ0NzQ6ICMgODQgImRyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdy
LmMiCjE0NDc0OiAgIGlmIChsaW5rLT5jb25uZWN0b3Jfc2lnbmFsID09IFNJR05BTF9UWVBFX1ZJ
UlRVQUwgfHwKMTQ0NzQ6ICAgICBsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmlzX2RpZ19lbmFibGVk
KGxpbmstPmxpbmtfZW5jKSkKMTQ0NzQ6ICAgIGRpc3BsYXlfY291bnQrKzsKMTQ0NzQ6ICB9CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmIChkaXNwbGF5X2NvdW50ID09IDAgJiYgdG1kc19wcmVz
ZW50KQoxNDQ3NDogICBkaXNwbGF5X2NvdW50ID0gMTsKMTQ0NzQ6IAoxNDQ3NDogIHJldHVybiBk
aXNwbGF5X2NvdW50OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIHJuX3VwZGF0ZV9jbG9j
a3Moc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKMTQ0NzQ6ICAgIHN0cnVjdCBkY19zdGF0
ZSAqY29udGV4dCwKMTQ0NzQ6ICAgIGJvb2wgc2FmZV90b19sb3dlcikKMTQ0NzQ6IHsKMTQ0NzQ6
ICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciA9ICh7IHZvaWQgKl9fbXB0ciA9ICh2
b2lkICopKGNsa19tZ3JfYmFzZSk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3Nl
cnRfMTAwKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21h
dGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBh
dGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKCgoc3RydWN0IGNsa19tZ3Jf
aW50ZXJuYWwgKikwKS0+YmFzZSkpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5
cGVvZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0XzEwMCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKShfX21w
dHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwsIGJhc2UpKSk7
IH0pOwoxNDQ3NDogIHN0cnVjdCBkY19jbG9ja3MgKm5ld19jbG9ja3MgPSAmY29udGV4dC0+Yndf
Y3R4LmJ3LmRjbi5jbGs7CjE0NDc0OiAgc3RydWN0IGRjICpkYyA9IGNsa19tZ3JfYmFzZS0+Y3R4
LT5kYzsKMTQ0NzQ6ICBpbnQgZGlzcGxheV9jb3VudDsKMTQ0NzQ6ICBib29sIHVwZGF0ZV9kcHBj
bGsgPSBmYWxzZTsKMTQ0NzQ6ICBib29sIHVwZGF0ZV9kaXNwY2xrID0gZmFsc2U7CjE0NDc0OiAg
Ym9vbCBkcHBfY2xvY2tfbG93ZXJlZCA9IGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGRt
Y3UgKmRtY3UgPSBjbGtfbWdyX2Jhc2UtPmN0eC0+ZGMtPnJlc19wb29sLT5kbWN1OwoxNDQ3NDog
CjE0NDc0OiAgaWYgKGRjLT53b3JrX2Fyb3VuZHMuc2tpcF9jbG9ja191cGRhdGUpCjE0NDc0OiAg
IHJldHVybjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAg
aWYgKHNhZmVfdG9fbG93ZXIpIHsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAoY2xrX21ncl9iYXNlLT5j
bGtzLnB3cl9zdGF0ZSAhPSBEQ05fUFdSX1NUQVRFX0xPV19QT1dFUikgewoxNDQ3NDogCjE0NDc0
OiAgICBkaXNwbGF5X2NvdW50ID0gcm5fZ2V0X2FjdGl2ZV9kaXNwbGF5X2NudF93YShkYywgY29u
dGV4dCk7CjE0NDc0OiAKMTQ0NzQ6ICAgIGlmIChkaXNwbGF5X2NvdW50ID09IDApIHsKMTQ0NzQ6
ICAgICBybl92Ymlvc19zbXVfc2V0X2Rjbl9sb3dfcG93ZXJfc3RhdGUoY2xrX21nciwgRENOX1BX
Ul9TVEFURV9MT1dfUE9XRVIpOwoxNDQ3NDogCjE0NDc0OiAgICAgY2xrX21ncl9iYXNlLT5jbGtz
LnB3cl9zdGF0ZSA9IERDTl9QV1JfU1RBVEVfTE9XX1BPV0VSOwoxNDQ3NDogICAgfQoxNDQ3NDog
ICB9CjE0NDc0OiAgfSBlbHNlIHsKMTQ0NzQ6IAoxNDQ3NDogICBpZiAoY2xrX21ncl9iYXNlLT5j
bGtzLnB3cl9zdGF0ZSAhPSBEQ05fUFdSX1NUQVRFX01JU1NJT05fTU9ERSkgewoxNDQ3NDogICAg
cm5fdmJpb3Nfc211X3NldF9kY25fbG93X3Bvd2VyX3N0YXRlKGNsa19tZ3IsIERDTl9QV1JfU1RB
VEVfTUlTU0lPTl9NT0RFKTsKMTQ0NzQ6IAoxNDQ3NDogICAgY2xrX21ncl9iYXNlLT5jbGtzLnB3
cl9zdGF0ZSA9IERDTl9QV1JfU1RBVEVfTUlTU0lPTl9NT0RFOwoxNDQ3NDogICB9CjE0NDc0OiAg
fQoxNDQ3NDogCjE0NDc0OiAgaWYgKHNob3VsZF9zZXRfY2xvY2soc2FmZV90b19sb3dlciwgbmV3
X2Nsb2Nrcy0+cGh5Y2xrX2toeiwgY2xrX21ncl9iYXNlLT5jbGtzLnBoeWNsa19raHopKSB7CjE0
NDc0OiAgIGNsa19tZ3JfYmFzZS0+Y2xrcy5waHljbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+cGh5Y2xr
X2toejsKMTQ0NzQ6ICAgcm5fdmJpb3Nfc211X3NldF9waHljbGsoY2xrX21nciwgY2xrX21ncl9i
YXNlLT5jbGtzLnBoeWNsa19raHopOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGlmIChzaG91
bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRjZmNsa19raHosIGNsa19t
Z3JfYmFzZS0+Y2xrcy5kY2ZjbGtfa2h6KSkgewoxNDQ3NDogICBjbGtfbWdyX2Jhc2UtPmNsa3Mu
ZGNmY2xrX2toeiA9IG5ld19jbG9ja3MtPmRjZmNsa19raHo7CjE0NDc0OiAgIHJuX3ZiaW9zX3Nt
dV9zZXRfaGFyZF9taW5fZGNmY2xrKGNsa19tZ3IsIGNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtf
a2h6KTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZl
X3RvX2xvd2VyLAoxNDQ3NDogICAgbmV3X2Nsb2Nrcy0+ZGNmY2xrX2RlZXBfc2xlZXBfa2h6LCBj
bGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6KSkgewoxNDQ3NDogICBjbGtf
bWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6ID0gbmV3X2Nsb2Nrcy0+ZGNmY2xr
X2RlZXBfc2xlZXBfa2h6OwoxNDQ3NDogICBybl92Ymlvc19zbXVfc2V0X21pbl9kZWVwX3NsZWVw
X2RjZmNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6
KTsKMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGlmICghKChkYy0+Y3R4LT5kY2Vf
ZW52aXJvbm1lbnQgPT0gRENFX0VOVl9GUEdBX01BWElNVVMpIHx8IChkYy0+Y3R4LT5kY2VfZW52
aXJvbm1lbnQgPT0gRENFX0VOVl9ESUFHKSkpIHsKMTQ0NzQ6ICAgaWYgKG5ld19jbG9ja3MtPmRw
cGNsa19raHogPCAxMDAwMDApCjE0NDc0OiAgICBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6ID0gMTAw
MDAwOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVf
dG9fbG93ZXIsIG5ld19jbG9ja3MtPmRwcGNsa19raHosIGNsa19tZ3ItPmJhc2UuY2xrcy5kcHBj
bGtfa2h6KSkgewoxNDQ3NDogICBpZiAoY2xrX21nci0+YmFzZS5jbGtzLmRwcGNsa19raHogPiBu
ZXdfY2xvY2tzLT5kcHBjbGtfa2h6KQoxNDQ3NDogICAgZHBwX2Nsb2NrX2xvd2VyZWQgPSB0cnVl
OwoxNDQ3NDogICBjbGtfbWdyX2Jhc2UtPmNsa3MuZHBwY2xrX2toeiA9IG5ld19jbG9ja3MtPmRw
cGNsa19raHo7CjE0NDc0OiAgIHVwZGF0ZV9kcHBjbGsgPSB0cnVlOwoxNDQ3NDogIH0KMTQ0NzQ6
IAoxNDQ3NDogIGlmIChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3Mt
PmRpc3BjbGtfa2h6LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHopKSB7CjE0NDc0OiAg
IGNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeiA9IG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6
OwoxNDQ3NDogICBybl92Ymlvc19zbXVfc2V0X2Rpc3BjbGsoY2xrX21nciwgY2xrX21ncl9iYXNl
LT5jbGtzLmRpc3BjbGtfa2h6KTsKMTQ0NzQ6IAoxNDQ3NDogICB1cGRhdGVfZGlzcGNsayA9IHRy
dWU7CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgaWYgKGRwcF9jbG9ja19sb3dlcmVkKSB7CjE0
NDc0OiAKMTQ0NzQ6ICAgZGNuMjBfdXBkYXRlX2Nsb2Nrc191cGRhdGVfZHBwX2R0byhjbGtfbWdy
LCBjb250ZXh0LCBzYWZlX3RvX2xvd2VyKTsKMTQ0NzQ6ICAgcm5fdmJpb3Nfc211X3NldF9kcHBj
bGsoY2xrX21nciwgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHopOwoxNDQ3NDogIH0gZWxz
ZSB7CjE0NDc0OiAKMTQ0NzQ6ICAgaWYgKHVwZGF0ZV9kcHBjbGsgfHwgdXBkYXRlX2Rpc3BjbGsp
CjE0NDc0OiAgICBybl92Ymlvc19zbXVfc2V0X2RwcGNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2Ut
PmNsa3MuZHBwY2xrX2toeik7CjE0NDc0OiAKMTQ0NzQ6ICAgaWYgKG5ld19jbG9ja3MtPmRwcGNs
a19raHogPj0gZGMtPmN1cnJlbnRfc3RhdGUtPmJ3X2N0eC5idy5kY24uY2xrLmRwcGNsa19raHop
CjE0NDc0OiAgICBkY24yMF91cGRhdGVfY2xvY2tzX3VwZGF0ZV9kcHBfZHRvKGNsa19tZ3IsIGNv
bnRleHQsIHNhZmVfdG9fbG93ZXIpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGlmICh1cGRh
dGVfZGlzcGNsayAmJgoxNDQ3NDogICAgZG1jdSAmJiBkbWN1LT5mdW5jcy0+aXNfZG1jdV9pbml0
aWFsaXplZChkbWN1KSkgewoxNDQ3NDogCjE0NDc0OiAgIGRtY3UtPmZ1bmNzLT5zZXRfcHNyX3dh
aXRfbG9vcChkbWN1LAoxNDQ3NDogICAgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6IC8g
MTAwMCAvIDcpOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiBzdGF0
aWMgaW50IGdldF92Y29fZnJlcXVlbmN5X2Zyb21fcmVnKHN0cnVjdCBjbGtfbWdyX2ludGVybmFs
ICpjbGtfbWdyKQoxNDQ3NDogewoxNDQ3NDogCjE0NDc0OiAgc3RydWN0IGZpeGVkMzFfMzIgcGxs
X3JlcTsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgZmJtdWx0X2ZyYWNfdmFsID0gMDsKMTQ0NzQ6ICB1
bnNpZ25lZCBpbnQgZmJtdWx0X2ludF92YWwgPSAwOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgZ2VuZXJpY19yZWdfZ2V0KGNs
a19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDAw
ZiksIDB4MTAsIDB4RkZGRjAwMDBMLCAmZmJtdWx0X2ZyYWNfdmFsKTsKMTQ0NzQ6ICBnZW5lcmlj
X3JlZ19nZXQoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50
WzFdICsgMHgwMDBmKSwgMHgwLCAweDAwMDAwMUZGTCwgJmZibXVsdF9pbnRfdmFsKTsKMTQ0NzQ6
IAoxNDQ3NDogIHBsbF9yZXEgPSBkY19maXhwdF9mcm9tX2ludChmYm11bHRfaW50X3ZhbCk7CjE0
NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIHBsbF9yZXEudmFs
dWUgfD0gZmJtdWx0X2ZyYWNfdmFsIDw8IDE2OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICBwbGxf
cmVxID0gZGNfZml4cHRfbXVsX2ludChwbGxfcmVxLCBjbGtfbWdyLT5kZnNfcmVmX2ZyZXFfa2h6
KTsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIGRjX2ZpeHB0X2Zsb29yKHBsbF9yZXEp
OwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiBzdGF0aWMgdm9pZCBybl9kdW1wX2Nsa19yZWdpc3Rl
cnNfaW50ZXJuYWwoc3RydWN0IHJuX2Nsa19pbnRlcm5hbCAqaW50ZXJuYWwsIHN0cnVjdCBjbGtf
bWdyICpjbGtfbWdyX2Jhc2UpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGNsa19tZ3JfaW50ZXJu
YWwgKmNsa19tZ3IgPSAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKShjbGtfbWdyX2Jhc2UpOyBk
byB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzIyOSh2b2lkKSBfX2F0dHJpYnV0
ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIp
KSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooY2xrX21n
cl9iYXNlKSksIHR5cGVvZigoKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICopMCktPmJhc2UpKSAm
JiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwg
dHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMjkoKTsgfSB3aGlsZSAoMCk7
ICgoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKikoX19tcHRyIC0gX19idWlsdGluX29mZnNldG9m
KHN0cnVjdCBjbGtfbWdyX2ludGVybmFsLCBiYXNlKSkpOyB9KTsKMTQ0NzQ6IAoxNDQ3NDogIGlu
dGVybmFsLT5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3It
PmJhc2UuY3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA4ZCksIF9f
ZnVuY19fKTsKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xLMV9DTEszX0JZUEFTU19DTlRMID0gZG1fcmVh
ZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21l
bnRbMV0gKyAweDAwNjcpLCBfX2Z1bmNfXyk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xL
MV9DTEszX0RTX0NOVEwgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xL
X0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA2MCksIF9fZnVuY19fKTsKMTQ0NzQ6
ICBpbnRlcm5hbC0+Q0xLMV9DTEszX0FMTE9XX0RTID0gZG1fcmVhZF9yZWdfZnVuYyhjbGtfbWdy
LT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbMV0gKyAweDAwNjEpLCBf
X2Z1bmNfXyk7CjE0NDc0OiAKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xLMV9DTEsxX0NVUlJFTlRfQ05U
ID0gZG1fcmVhZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNl
WzBdLnNlZ21lbnRbMV0gKyAweDAwOGIpLCBfX2Z1bmNfXyk7CjE0NDc0OiAgaW50ZXJuYWwtPkNM
SzFfQ0xLMV9CWVBBU1NfQ05UTCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgs
IChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDUzKSwgX19mdW5jX18pOwox
NDQ3NDogCjE0NDc0OiAgaW50ZXJuYWwtPkNMSzFfQ0xLMl9DVVJSRU5UX0NOVCA9IGRtX3JlYWRf
cmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50
WzFdICsgMHgwMDhjKSwgX19mdW5jX18pOwoxNDQ3NDogIGludGVybmFsLT5DTEsxX0NMSzJfQllQ
QVNTX0NOVEwgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JBU0Uu
aW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA1ZCksIF9fZnVuY19fKTsKMTQ0NzQ6IAoxNDQ3
NDogIGludGVybmFsLT5DTEsxX0NMSzBfQ1VSUkVOVF9DTlQgPSBkbV9yZWFkX3JlZ19mdW5jKGNs
a19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA4
YSksIF9fZnVuY19fKTsKMTQ0NzQ6ICBpbnRlcm5hbC0+Q0xLMV9DTEswX0JZUEFTU19DTlRMID0g
ZG1fcmVhZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBd
LnNlZ21lbnRbMV0gKyAweDAwNDkpLCBfX2Z1bmNfXyk7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6
IAoxNDQ3NDogc3RhdGljIHZvaWQgcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKHN0cnVjdCBjbGtfc3Rh
dGVfcmVnaXN0ZXJzX2FuZF9ieXBhc3MgKnJlZ3NfYW5kX2J5cGFzcywKMTQ0NzQ6ICAgc3RydWN0
IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwgc3RydWN0IGNsa19sb2dfaW5mbyAqbG9nX2luZm8pCjE0
NDc0OiB7CjE0NDc0OiAgc3RydWN0IHJuX2Nsa19pbnRlcm5hbCBpbnRlcm5hbCA9IHswfTsKMTQ0
NzQ6ICBjaGFyICpieXBhc3NfY2xrc1s1XSA9IHsiMHgwIERGUyIsICIweDEgUkVGQ0xLIiwgIjB4
MiBFUlJPUiIsICIweDMgNDAwIEZDSCIsICIweDQgNjAwIEZDSCJ9OwoxNDQ3NDogIHVuc2lnbmVk
IGludCBjaGFyc19wcmludGVkID0gMDsKMTQ0NzQ6ICB1bnNpZ25lZCBpbnQgcmVtYWluaW5nX2J1
ZmZlciA9IGxvZ19pbmZvLT5idWZTaXplOwoxNDQ3NDogCjE0NDc0OiAgcm5fZHVtcF9jbGtfcmVn
aXN0ZXJzX2ludGVybmFsKCZpbnRlcm5hbCwgY2xrX21ncl9iYXNlKTsKMTQ0NzQ6IAoxNDQ3NDog
IHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrID0gaW50ZXJuYWwuQ0xLMV9DTEszX0NVUlJFTlRfQ05U
IC8gMTA7CjE0NDc0OiAgcmVnc19hbmRfYnlwYXNzLT5kY2ZfZGVlcF9zbGVlcF9kaXZpZGVyID0g
aW50ZXJuYWwuQ0xLMV9DTEszX0RTX0NOVEwgLyAxMDsKMTQ0NzQ6ICByZWdzX2FuZF9ieXBhc3Mt
PmRjZl9kZWVwX3NsZWVwX2FsbG93ID0gaW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RTOwoxNDQ3
NDogIHJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGsgPSBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVO
VF9DTlQgLyAxMDsKMTQ0NzQ6ICByZWdzX2FuZF9ieXBhc3MtPmRpc3BjbGsgPSBpbnRlcm5hbC5D
TEsxX0NMSzBfQ1VSUkVOVF9DTlQgLyAxMDsKMTQ0NzQ6ICByZWdzX2FuZF9ieXBhc3MtPmRwcGNs
ayA9IGludGVybmFsLkNMSzFfQ0xLMV9DVVJSRU5UX0NOVCAvIDEwOwoxNDQ3NDogCjE0NDc0OiAg
cmVnc19hbmRfYnlwYXNzLT5kcHBjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEsxX0JZUEFT
U19DTlRMICYgMHgwMDA3OwoxNDQ3NDogIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcGNsa19ieXBh
c3MgPCAwIHx8IHJlZ3NfYW5kX2J5cGFzcy0+ZHBwY2xrX2J5cGFzcyA+IDQpCjE0NDc0OiAgIHJl
Z3NfYW5kX2J5cGFzcy0+ZHBwY2xrX2J5cGFzcyA9IDA7CjE0NDc0OiAgcmVnc19hbmRfYnlwYXNz
LT5kY2ZjbGtfYnlwYXNzID0gaW50ZXJuYWwuQ0xLMV9DTEszX0JZUEFTU19DTlRMICYgMHgwMDA3
OwoxNDQ3NDogIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBhc3MgPCAwIHx8IHJlZ3Nf
YW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA+IDQpCjE0NDc0OiAgIHJlZ3NfYW5kX2J5cGFzcy0+
ZGNmY2xrX2J5cGFzcyA9IDA7CjE0NDc0OiAgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFz
cyA9IGludGVybmFsLkNMSzFfQ0xLMF9CWVBBU1NfQ05UTCAmIDB4MDAwNzsKMTQ0NzQ6ICBpZiAo
cmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5k
aXNwY2xrX2J5cGFzcyA+IDQpCjE0NDc0OiAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGlzcGNsa19ieXBh
c3MgPSAwOwoxNDQ3NDogIHJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGtfYnlwYXNzID0gaW50ZXJu
YWwuQ0xLMV9DTEsyX0JZUEFTU19DTlRMICYgMHgwMDA3OwoxNDQ3NDogIGlmIChyZWdzX2FuZF9i
eXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsa19i
eXBhc3MgPiA0KQoxNDQ3NDogICByZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA9IDA7
CjE0NDc0OiAKMTQ0NzQ6ICBpZiAobG9nX2luZm8tPmVuYWJsZWQpIHsKMTQ0NzQ6ICAgY2hhcnNf
cHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVy
LCAiY2xrX3R5cGUsY2xrX3ZhbHVlLGRlZXBzbGVlcF9jbnRsLGRlZXBzbGVlcF9hbGxvdyxieXBh
c3NcbiIpOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0
OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6
ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6IAoxNDQ3NDogICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJkY2ZjbGssJWQsJWQsJWQsJXNcbiIsCjE0NDc0OiAgICByZWdzX2FuZF9ieXBhc3MtPmRj
ZmNsaywKMTQ0NzQ6ICAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfZGl2aWRlciwK
MTQ0NzQ6ICAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfYWxsb3csCjE0NDc0OiAg
ICBieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBhc3NdKTsKMTQ0
NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICAqbG9nX2lu
Zm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgIGxvZ19pbmZv
LT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9
IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiZHByZWZj
bGssJWQsTi9BLE4vQSwlc1xuIiwKMTQ0NzQ6ICAgIHJlZ3NfYW5kX2J5cGFzcy0+ZHByZWZjbGss
CjE0NDc0OiAgICBieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5
cGFzc10pOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0
OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6
ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6IAoxNDQ3NDogICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJkaXNwY2xrLCVkLE4vQSxOL0EsJXNcbiIsCjE0NDc0OiAgICByZWdzX2FuZF9ieXBhc3Mt
PmRpc3BjbGssCjE0NDc0OiAgICBieXBhc3NfY2xrc1soaW50KSByZWdzX2FuZF9ieXBhc3MtPmRp
c3BjbGtfYnlwYXNzXSk7CjE0NDc0OiAgIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRl
ZDsKMTQ0NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVk
OwoxNDQ3NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogCjE0NDc0
OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVm
LCByZW1haW5pbmdfYnVmZmVyLCAiU1BMSVRcbiIpOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVy
IC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQg
Kz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRl
ZDsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3Vu
dChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgInJlZ19uYW1lLHZhbHVlLGNsa190
eXBlXG4iKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwoxNDQ3
NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0
OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgY2hh
cnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVm
ZmVyLCAiQ0xLMV9DTEszX0NVUlJFTlRfQ05ULCVkLGRjZmNsa1xuIiwKMTQ0NzQ6ICAgICBpbnRl
cm5hbC5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQpOwoxNDQ3NDogICByZW1haW5pbmdfYnVmZmVyIC09
IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0g
Y2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsK
MTQ0NzQ6IAoxNDQ3NDogICBjaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8t
PnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzNfRFNfQ05UTCwlZCxkY2ZfZGVlcF9z
bGVlcF9kaXZpZGVyXG4iLAoxNDQ3NDogICAgICBpbnRlcm5hbC5DTEsxX0NMSzNfRFNfQ05UTCk7
CjE0NDc0OiAgIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgKmxv
Z19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICBsb2df
aW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogCjE0NDc0OiAgIGNoYXJzX3ByaW50
ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNM
SzFfQ0xLM19BTExPV19EUywlZCxkY2ZfZGVlcF9zbGVlcF9hbGxvd1xuIiwKMTQ0NzQ6ICAgICAg
aW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RTKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAt
PSBjaGFyc19wcmludGVkOwoxNDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9
IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7
CjE0NDc0OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZv
LT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsyX0NVUlJFTlRfQ05ULCVkLGRwcmVm
Y2xrXG4iLAoxNDQ3NDogICAgICBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVOVF9DTlQpOwoxNDQ3
NDogICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgICpsb2dfaW5m
by0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgbG9nX2luZm8t
PnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6IAoxNDQ3NDogICBjaGFyc19wcmludGVkID0g
c25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NM
SzBfQ1VSUkVOVF9DTlQsJWQsZGlzcGNsa1xuIiwKMTQ0NzQ6ICAgICAgaW50ZXJuYWwuQ0xLMV9D
TEswX0NVUlJFTlRfQ05UKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmlu
dGVkOwoxNDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50
ZWQ7CjE0NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0
NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1h
aW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsxX0NVUlJFTlRfQ05ULCVkLGRwcGNsa1xuIiwKMTQ0NzQ6
ICAgICAgaW50ZXJuYWwuQ0xLMV9DTEsxX0NVUlJFTlRfQ05UKTsKMTQ0NzQ6ICAgcmVtYWluaW5n
X2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19w
cmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJz
X3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50
KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEszX0JZUEFTU19DTlRM
LCVkLGRjZmNsa19ieXBhc3NcbiIsCjE0NDc0OiAgICAgIGludGVybmFsLkNMSzFfQ0xLM19CWVBB
U1NfQ05UTCk7CjE0NDc0OiAgIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0
NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3
NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogCjE0NDc0OiAgIGNo
YXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1
ZmZlciwgIkNMSzFfQ0xLMl9CWVBBU1NfQ05UTCwlZCxkcHJlZmNsa19ieXBhc3NcbiIsCjE0NDc0
OiAgICAgIGludGVybmFsLkNMSzFfQ0xLMl9CWVBBU1NfQ05UTCk7CjE0NDc0OiAgIHJlbWFpbmlu
Z19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNf
cHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFy
c19wcmludGVkOwoxNDQ3NDogCjE0NDc0OiAgIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3Vu
dChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMF9CWVBBU1NfQ05U
TCwlZCxkaXNwY2xrX2J5cGFzc1xuIiwKMTQ0NzQ6ICAgICAgaW50ZXJuYWwuQ0xLMV9DTEswX0JZ
UEFTU19DTlRMKTsKMTQ0NzQ6ICAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwox
NDQ3NDogICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CjE0
NDc0OiAgIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CjE0NDc0OiAKMTQ0NzQ6ICAg
Y2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdf
YnVmZmVyLCAiQ0xLMV9DTEsxX0JZUEFTU19DTlRMLCVkLGRwcGNsa19ieXBhc3NcbiIsCjE0NDc0
OiAgICAgIGludGVybmFsLkNMSzFfQ0xLMV9CWVBBU1NfQ05UTCk7CjE0NDc0OiAgIHJlbWFpbmlu
Z19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKMTQ0NzQ6ICAgKmxvZ19pbmZvLT5zdW1fY2hhcnNf
cHJpbnRlZCArPSBjaGFyc19wcmludGVkOwoxNDQ3NDogICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFy
c19wcmludGVkOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiB2b2lk
IHJuX2dldF9jbGtfc3RhdGVzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsIHN0cnVjdCBj
bGtfc3RhdGVzICpzKQoxNDQ3NDogewoxNDQ3NDogIHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0ZXJz
X2FuZF9ieXBhc3Mgc2IgPSB7IDAgfTsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX2xvZ19pbmZvIGxvZ19p
bmZvID0geyAwIH07CjE0NDc0OiAKMTQ0NzQ6ICBybl9kdW1wX2Nsa19yZWdpc3RlcnMoJnNiLCBj
bGtfbWdyX2Jhc2UsICZsb2dfaW5mbyk7CjE0NDc0OiAKMTQ0NzQ6ICBzLT5kcHJlZmNsa19raHog
PSBzYi5kcHJlZmNsayAqIDEwMDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHZvaWQgcm5fZW5h
YmxlX3BtZV93YShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKQoxNDQ3NDogewoxNDQ3NDog
IHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyID0gKHsgdm9pZCAqX19tcHRyID0gKHZv
aWQgKikoY2xrX21ncl9iYXNlKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8zOTQodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0
Y2ggaW4gY29udGFpbmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0
aWJsZV9wKHR5cGVvZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBlb2YoKChzdHJ1Y3QgY2xrX21ncl9p
bnRlcm5hbCAqKTApLT5iYXNlKSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlw
ZW9mKCooY2xrX21ncl9iYXNlKSksIHR5cGVvZih2b2lkKSkpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfMzk0KCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICopKF9fbXB0
ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCwgYmFzZSkpKTsg
fSk7CjE0NDc0OiAKMTQ0NzQ6ICBybl92Ymlvc19zbXVfZW5hYmxlX3BtZV93YShjbGtfbWdyKTsK
MTQ0NzQ6IH0KMTQ0NzQ6IAoxNDQ3NDogdm9pZCBybl9pbml0X2Nsb2NrcyhzdHJ1Y3QgY2xrX21n
ciAqY2xrX21ncikKMTQ0NzQ6IHsKMTQ0NzQ6ICBtZW1zZXQoJihjbGtfbWdyLT5jbGtzKSwgMCwg
c2l6ZW9mKHN0cnVjdCBkY19jbG9ja3MpKTsKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmNsa3Mu
cF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydCA9IHRydWU7CjE0NDc0OiAgY2xrX21nci0+Y2xrcy5wcmV2
X3Bfc3RhdGVfY2hhbmdlX3N1cHBvcnQgPSB0cnVlOwoxNDQ3NDogIGNsa19tZ3ItPmNsa3MucHdy
X3N0YXRlID0gRENOX1BXUl9TVEFURV9VTktOT1dOOwoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2
b2lkIGJ1aWxkX3dhdGVybWFya19yYW5nZXMoc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFt
cywgc3RydWN0IHBwX3NtdV93bV9yYW5nZV9zZXRzICpyYW5nZXMpCjE0NDc0OiB7CjE0NDc0OiAg
aW50IGksIG51bV92YWxpZF9zZXRzOwoxNDQ3NDogCjE0NDc0OiAgbnVtX3ZhbGlkX3NldHMgPSAw
OwoxNDQ3NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewoxNDQ3NDogCjE0NDc0
OiAgIGlmICghYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkKQoxNDQ3NDogICAg
Y29udGludWU7CjE0NDc0OiAKMTQ0NzQ6ICAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFs
aWRfc2V0c10ud21faW5zdCA9IGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0
OwoxNDQ3NDogICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS53bV90eXBl
ID0gYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLndtX3R5cGU7CjE0NDc0OiAKMTQ0NzQ6
ICAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10ubWluX2ZpbGxfY2xrX21o
eiA9IDB4MDsKMTQ0NzQ6ICAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10u
bWF4X2ZpbGxfY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGlmIChy
YW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS53bV90eXBlID09IFdNX1RZUEVf
UFNUQVRFX0NIRykgewoxNDQ3NDogICAgaWYgKGkgPT0gMCkKMTQ0NzQ6ICAgICByYW5nZXMtPnJl
YWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5taW5fZHJhaW5fY2xrX21oeiA9IDA7CjE0NDc0
OiAgICBlbHNlIHsKMTQ0NzQ6IAoxNDQ3NDogICAgIHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVt
X3ZhbGlkX3NldHNdLm1pbl9kcmFpbl9jbGtfbWh6ID0gYndfcGFyYW1zLT5jbGtfdGFibGUuZW50
cmllc1tpIC0gMV0uZGNmY2xrX21oeiArIDE7CjE0NDc0OiAgICB9CjE0NDc0OiAgICByYW5nZXMt
PnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5tYXhfZHJhaW5fY2xrX21oeiA9IGJ3X3Bh
cmFtcy0+Y2xrX3RhYmxlLmVudHJpZXNbaV0uZGNmY2xrX21oejsKMTQ0NzQ6IAoxNDQ3NDogICB9
IGVsc2UgewoxNDQ3NDogCjE0NDc0OiAgICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxp
ZF9zZXRzXS5taW5fZmlsbF9jbGtfbWh6ID0gMHgwOwoxNDQ3NDogICAgcmFuZ2VzLT5yZWFkZXJf
d21fc2V0c1tudW1fdmFsaWRfc2V0c10ubWF4X2ZpbGxfY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6
IAoxNDQ3NDogCjE0NDc0OiAgICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRz
IC0gMV0ubWF4X2ZpbGxfY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6ICAgfQoxNDQ3NDogICBudW1f
dmFsaWRfc2V0cysrOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogICh7IGludCBfX3JldF93YXJu
X29uID0gISEoIShudW1fdmFsaWRfc2V0cyAhPSAwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpc
dCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3
XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2Fk
ZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4i
ICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQj
IGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDog
ImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2Rj
bjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDQ0NiksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkp
KSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2
b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIg
Ii5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDgpKTsgfSk7
IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7
CjE0NDc0OiAgcmFuZ2VzLT5udW1fcmVhZGVyX3dtX3NldHMgPSBudW1fdmFsaWRfc2V0czsKMTQ0
NzQ6IAoxNDQ3NDogCjE0NDc0OiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1swXS5taW5fZHJhaW5f
Y2xrX21oeiA9IDB4MDsKMTQ0NzQ6ICByYW5nZXMtPnJlYWRlcl93bV9zZXRzWzBdLm1pbl9maWxs
X2Nsa19taHogPSAweDA7CjE0NDc0OiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tyYW5nZXMtPm51
bV9yZWFkZXJfd21fc2V0cyAtIDFdLm1heF9kcmFpbl9jbGtfbWh6ID0gMHhGRkZGOwoxNDQ3NDog
IHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbcmFuZ2VzLT5udW1fcmVhZGVyX3dtX3NldHMgLSAxXS5t
YXhfZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6ICByYW5nZXMt
Pm51bV93cml0ZXJfd21fc2V0cyA9IDE7CjE0NDc0OiAgcmFuZ2VzLT53cml0ZXJfd21fc2V0c1sw
XS53bV9pbnN0ID0gMDsKMTQ0NzQ6ICByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9maWxs
X2Nsa19taHogPSAweDA7CjE0NDc0OiAgcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5tYXhfZmls
bF9jbGtfbWh6ID0gMHhGRkZGOwoxNDQ3NDogIHJhbmdlcy0+d3JpdGVyX3dtX3NldHNbMF0ubWlu
X2RyYWluX2Nsa19taHogPSAweDA7CjE0NDc0OiAgcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5t
YXhfZHJhaW5fY2xrX21oeiA9IDB4RkZGRjsKMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgdm9pZCBybl9ub3RpZnlfd21fcmFuZ2VzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdy
X2Jhc2UpCjE0NDc0OiB7CjE0NDc0OiAgc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0g
JmNsa19tZ3JfYmFzZS0+Y3R4LT5kYy0+ZGVidWc7CjE0NDc0OiAgc3RydWN0IHBwX3NtdV93bV9y
YW5nZV9zZXRzIHJhbmdlcyA9IHswfTsKMTQ0NzQ6ICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAq
Y2xrX21nciA9ICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICopKGNsa19tZ3JfYmFzZSk7IGRvIHsg
ZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNDY5KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsg
aWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jh
c2UpKSwgdHlwZW9mKCgoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKikwKS0+YmFzZSkpICYmICFf
X2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBl
b2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQ2OSgpOyB9IHdoaWxlICgwKTsgKChz
dHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3Ry
dWN0IGNsa19tZ3JfaW50ZXJuYWwsIGJhc2UpKSk7IH0pOwoxNDQ3NDogIHN0cnVjdCBwcF9zbXVf
ZnVuY3MgKnBwX3NtdSA9IGNsa19tZ3ItPnBwX3NtdTsKMTQ0NzQ6IAoxNDQ3NDogIGlmICghZGVi
dWctPmRpc2FibGVfcHBsaWJfd21fcmFuZ2UpIHsKMTQ0NzQ6ICAgYnVpbGRfd2F0ZXJtYXJrX3Jh
bmdlcyhjbGtfbWdyX2Jhc2UtPmJ3X3BhcmFtcywgJnJhbmdlcyk7CjE0NDc0OiAKMTQ0NzQ6IAox
NDQ3NDogICBpZiAocHBfc211ICYmIHBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcykKMTQ0
NzQ6ICAgIHBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcygmcHBfc211LT5ybl9mdW5jcy5w
cF9zbXUsICZyYW5nZXMpOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0
OiBzdGF0aWMgYm9vbCBybl9hcmVfY2xvY2tfc3RhdGVzX2VxdWFsKHN0cnVjdCBkY19jbG9ja3Mg
KmEsCjE0NDc0OiAgIHN0cnVjdCBkY19jbG9ja3MgKmIpCjE0NDc0OiB7CjE0NDc0OiAgaWYgKGEt
PmRpc3BjbGtfa2h6ICE9IGItPmRpc3BjbGtfa2h6KQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0
NDc0OiAgZWxzZSBpZiAoYS0+ZHBwY2xrX2toeiAhPSBiLT5kcHBjbGtfa2h6KQoxNDQ3NDogICBy
ZXR1cm4gZmFsc2U7CjE0NDc0OiAgZWxzZSBpZiAoYS0+ZGNmY2xrX2toeiAhPSBiLT5kY2ZjbGtf
a2h6KQoxNDQ3NDogICByZXR1cm4gZmFsc2U7CjE0NDc0OiAgZWxzZSBpZiAoYS0+ZGNmY2xrX2Rl
ZXBfc2xlZXBfa2h6ICE9IGItPmRjZmNsa19kZWVwX3NsZWVwX2toeikKMTQ0NzQ6ICAgcmV0dXJu
IGZhbHNlOwoxNDQ3NDogCjE0NDc0OiAgcmV0dXJuIHRydWU7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0
NzQ6IAoxNDQ3NDogc3RhdGljIHN0cnVjdCBjbGtfbWdyX2Z1bmNzIGRjbjIxX2Z1bmNzID0gewox
NDQ3NDogIC5nZXRfZHBfcmVmX2Nsa19mcmVxdWVuY3kgPSBkY2UxMl9nZXRfZHBfcmVmX2ZyZXFf
a2h6LAoxNDQ3NDogIC51cGRhdGVfY2xvY2tzID0gcm5fdXBkYXRlX2Nsb2NrcywKMTQ0NzQ6ICAu
aW5pdF9jbG9ja3MgPSBybl9pbml0X2Nsb2NrcywKMTQ0NzQ6ICAuZW5hYmxlX3BtZV93YSA9IHJu
X2VuYWJsZV9wbWVfd2EsCjE0NDc0OiAgLmFyZV9jbG9ja19zdGF0ZXNfZXF1YWwgPSBybl9hcmVf
Y2xvY2tfc3RhdGVzX2VxdWFsLAoxNDQ3NDogIC5ub3RpZnlfd21fcmFuZ2VzID0gcm5fbm90aWZ5
X3dtX3JhbmdlcwoxNDQ3NDogfTsKMTQ0NzQ6IAoxNDQ3NDogc3RydWN0IGNsa19id19wYXJhbXMg
cm5fYndfcGFyYW1zID0gewoxNDQ3NDogIC52cmFtX3R5cGUgPSBEZHI0TWVtVHlwZSwKMTQ0NzQ6
ICAubnVtX2NoYW5uZWxzID0gMSwKMTQ0NzQ6ICAuY2xrX3RhYmxlID0gewoxNDQ3NDogICAuZW50
cmllcyA9IHsKMTQ0NzQ6ICAgIHsKMTQ0NzQ6ICAgICAudm9sdGFnZSA9IDAsCjE0NDc0OiAgICAg
LmRjZmNsa19taHogPSA0MDAsCjE0NDc0OiAgICAgLmZjbGtfbWh6ID0gNDAwLAoxNDQ3NDogICAg
IC5tZW1jbGtfbWh6ID0gODAwLAoxNDQ3NDogICAgIC5zb2NjbGtfbWh6ID0gMCwKMTQ0NzQ6ICAg
IH0sCjE0NDc0OiAgICB7CjE0NDc0OiAgICAgLnZvbHRhZ2UgPSAwLAoxNDQ3NDogICAgIC5kY2Zj
bGtfbWh6ID0gNDgzLAoxNDQ3NDogICAgIC5mY2xrX21oeiA9IDgwMCwKMTQ0NzQ6ICAgICAubWVt
Y2xrX21oeiA9IDE2MDAsCjE0NDc0OiAgICAgLnNvY2Nsa19taHogPSAwLAoxNDQ3NDogICAgfSwK
MTQ0NzQ6ICAgIHsKMTQ0NzQ6ICAgICAudm9sdGFnZSA9IDAsCjE0NDc0OiAgICAgLmRjZmNsa19t
aHogPSA2MDIsCjE0NDc0OiAgICAgLmZjbGtfbWh6ID0gMTA2NywKMTQ0NzQ6ICAgICAubWVtY2xr
X21oeiA9IDEwNjcsCjE0NDc0OiAgICAgLnNvY2Nsa19taHogPSAwLAoxNDQ3NDogICAgfSwKMTQ0
NzQ6ICAgIHsKMTQ0NzQ6ICAgICAudm9sdGFnZSA9IDAsCjE0NDc0OiAgICAgLmRjZmNsa19taHog
PSA3MzgsCjE0NDc0OiAgICAgLmZjbGtfbWh6ID0gMTMzMywKMTQ0NzQ6ICAgICAubWVtY2xrX21o
eiA9IDE2MDAsCjE0NDc0OiAgICAgLnNvY2Nsa19taHogPSAwLAoxNDQ3NDogICAgfSwKMTQ0NzQ6
ICAgfSwKMTQ0NzQ6IAoxNDQ3NDogICAubnVtX2VudHJpZXMgPSA0LAoxNDQ3NDogIH0sCjE0NDc0
OiAKMTQ0NzQ6IH07CjE0NDc0OiAKMTQ0NzQ6IHN0cnVjdCB3bV90YWJsZSBkZHI0X3dtX3RhYmxl
ID0gewoxNDQ3NDogIC5lbnRyaWVzID0gewoxNDQ3NDogICB7CjE0NDc0OiAgICAud21faW5zdCA9
IDAsCjE0NDc0OiAgICAud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKMTQ0NzQ6ICAgIC5w
c3RhdGVfbGF0ZW5jeV91cyA9IDExLjcyLAoxNDQ3NDogICAgLnNyX2V4aXRfdGltZV91cyA9IDYu
MDksCjE0NDc0OiAgICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMgPSA3LjE0LAoxNDQ3NDog
ICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3NDogICAgLndtX2lu
c3QgPSAxLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCjE0NDc0OiAg
ICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43MiwKMTQ0NzQ6ICAgIC5zcl9leGl0X3RpbWVfdXMg
PSAxMC4xMiwKMTQ0NzQ6ICAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjQ4LAox
NDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3NDogICAg
LndtX2luc3QgPSAyLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCjE0
NDc0OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43MiwKMTQ0NzQ6ICAgIC5zcl9leGl0X3Rp
bWVfdXMgPSAxMC4xMiwKMTQ0NzQ6ICAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDEx
LjQ4LAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3
NDogICAgLndtX2luc3QgPSAzLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9D
SEcsCjE0NDc0OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43MiwKMTQ0NzQ6ICAgIC5zcl9l
eGl0X3RpbWVfdXMgPSAxMC4xMiwKMTQ0NzQ6ICAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91
cyA9IDExLjQ4LAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICB9
CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiBzdHJ1Y3Qgd21fdGFibGUgbHBkZHI0X3dtX3RhYmxl
ID0gewoxNDQ3NDogIC5lbnRyaWVzID0gewoxNDQ3NDogICB7CjE0NDc0OiAgICAud21faW5zdCA9
IDAsCjE0NDc0OiAgICAud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKMTQ0NzQ6ICAgIC5w
c3RhdGVfbGF0ZW5jeV91cyA9IDExLjY1MzMzLAoxNDQ3NDogICAgLnNyX2V4aXRfdGltZV91cyA9
IDUuMzIsCjE0NDc0OiAgICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMgPSA2LjM4LAoxNDQ3
NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3NDogICAgLndt
X2luc3QgPSAxLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCjE0NDc0
OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKMTQ0NzQ6ICAgIC5zcl9leGl0X3Rp
bWVfdXMgPSA5LjgyLAoxNDQ3NDogICAgLnNyX2VudGVyX3BsdXNfZXhpdF90aW1lX3VzID0gMTEu
MTk2LAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAgfSwKMTQ0NzQ6ICAgewoxNDQ3
NDogICAgLndtX2luc3QgPSAyLAoxNDQ3NDogICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9D
SEcsCjE0NDc0OiAgICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKMTQ0NzQ6ICAgIC5z
cl9leGl0X3RpbWVfdXMgPSA5Ljg5LAoxNDQ3NDogICAgLnNyX2VudGVyX3BsdXNfZXhpdF90aW1l
X3VzID0gMTEuMjQsCjE0NDc0OiAgICAudmFsaWQgPSB0cnVlLAoxNDQ3NDogICB9LAoxNDQ3NDog
ICB7CjE0NDc0OiAgICAud21faW5zdCA9IDMsCjE0NDc0OiAgICAud21fdHlwZSA9IFdNX1RZUEVf
UFNUQVRFX0NIRywKMTQ0NzQ6ICAgIC5wc3RhdGVfbGF0ZW5jeV91cyA9IDExLjY1MzMzLAoxNDQ3
NDogICAgLnNyX2V4aXRfdGltZV91cyA9IDkuNzQ4LAoxNDQ3NDogICAgLnNyX2VudGVyX3BsdXNf
ZXhpdF90aW1lX3VzID0gMTEuMTAyLAoxNDQ3NDogICAgLnZhbGlkID0gdHJ1ZSwKMTQ0NzQ6ICAg
fSwKMTQ0NzQ6ICB9CjE0NDc0OiB9OwoxNDQ3NDogCjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyB1bnNp
Z25lZCBpbnQgZmluZF9kY2ZjbGtfZm9yX3ZvbHRhZ2Uoc3RydWN0IGRwbV9jbG9ja3MgKmNsb2Nr
X3RhYmxlLCB1bnNpZ25lZCBpbnQgdm9sdGFnZSkKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgaTsKMTQ0
NzQ6IAoxNDQ3NDogIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKMTQ0NzQ6ICAgaWYgKGNsb2Nr
X3RhYmxlLT5EY2ZDbG9ja3NbaV0uVm9sID09IHZvbHRhZ2UpCjE0NDc0OiAgICByZXR1cm4gY2xv
Y2tfdGFibGUtPkRjZkNsb2Nrc1tpXS5GcmVxOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogICh7
IGludCBfX3JldF93YXJuX29uID0gISEoISgwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9f
cmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIg
Ii5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJc
biIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJc
biIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJc
dC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1
Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImki
ICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIx
L3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDYzMSksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwg
ImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xh
dGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5s
b25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDkpKTsgfSk7IH0g
d2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0
NDc0OiAgcmV0dXJuIDA7CjE0NDc0OiB9CjE0NDc0OiAKMTQ0NzQ6IHN0YXRpYyB2b2lkIHJuX2Ns
a19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyhzdHJ1Y3QgY2xrX2J3X3BhcmFtcyAqYndf
cGFyYW1zLCBzdHJ1Y3QgZHBtX2Nsb2NrcyAqY2xvY2tfdGFibGUsIHN0cnVjdCBpbnRlZ3JhdGVk
X2luZm8gKmJpb3NfaW5mbykKMTQ0NzQ6IHsKMTQ0NzQ6ICBpbnQgaSwgaiA9IDA7CjE0NDc0OiAK
MTQ0NzQ6ICBqID0gLTE7CjE0NDc0OiAKMTQ0NzQ6ICAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEh
KCEoNCA8PSA4KSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAi
aSIgKDY0MSksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIu
cHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIg
Ii5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoNTApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogCjE0NDc0OiAgZm9yIChpID0gNCAtIDE7IGkgPj0gMDsgaS0tKSB7CjE0NDc0OiAgIGlmIChj
bG9ja190YWJsZS0+RkNsb2Nrc1tpXS5GcmVxICE9IDApIHsKMTQ0NzQ6ICAgIGogPSBpOwoxNDQ3
NDogICAgYnJlYWs7CjE0NDc0OiAgIH0KMTQ0NzQ6ICB9CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoaiA9
PSAtMSkgewoxNDQ3NDogCjE0NDc0OiAgICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgwKSk7
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFz
bSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNo
c2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6Omxp
bmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYisl
YzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDY1NCksICJp
IiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkp
KTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24g
LmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9u
XG5cdCIgOiA6ICJpIiAoNTEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CjE0NDc0OiAgIHJldHVybjsKMTQ0NzQ6ICB9CjE0NDc0
OiAKMTQ0NzQ6ICBid19wYXJhbXMtPmNsa190YWJsZS5udW1fZW50cmllcyA9IGogKyAxOwoxNDQ3
NDogCjE0NDc0OiAgZm9yIChpID0gMDsgaSA8IGJ3X3BhcmFtcy0+Y2xrX3RhYmxlLm51bV9lbnRy
aWVzOyBpKyssIGotLSkgewoxNDQ3NDogICBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ld
LmZjbGtfbWh6ID0gY2xvY2tfdGFibGUtPkZDbG9ja3Nbal0uRnJlcTsKMTQ0NzQ6ICAgYndfcGFy
YW1zLT5jbGtfdGFibGUuZW50cmllc1tpXS5tZW1jbGtfbWh6ID0gY2xvY2tfdGFibGUtPk1lbUNs
b2Nrc1tqXS5GcmVxOwoxNDQ3NDogICBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ldLnZv
bHRhZ2UgPSBjbG9ja190YWJsZS0+RkNsb2Nrc1tqXS5Wb2w7CjE0NDc0OiAgIGJ3X3BhcmFtcy0+
Y2xrX3RhYmxlLmVudHJpZXNbaV0uZGNmY2xrX21oeiA9IGZpbmRfZGNmY2xrX2Zvcl92b2x0YWdl
KGNsb2NrX3RhYmxlLCBjbG9ja190YWJsZS0+RkNsb2Nrc1tqXS5Wb2wpOwoxNDQ3NDogIH0KMTQ0
NzQ6IAoxNDQ3NDogIGJ3X3BhcmFtcy0+dnJhbV90eXBlID0gYmlvc19pbmZvLT5tZW1vcnlfdHlw
ZTsKMTQ0NzQ6ICBid19wYXJhbXMtPm51bV9jaGFubmVscyA9IGJpb3NfaW5mby0+bWFfY2hhbm5l
bF9udW1iZXI7CjE0NDc0OiAKMTQ0NzQ6ICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CjE0NDc0
OiAgIGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0ID0gaTsKMTQ0NzQ6IAox
NDQ3NDogICBpZiAoaSA+PSBid19wYXJhbXMtPmNsa190YWJsZS5udW1fZW50cmllcykgewoxNDQ3
NDogICAgYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkID0gZmFsc2U7CjE0NDc0
OiAgICBjb250aW51ZTsKMTQ0NzQ6ICAgfQoxNDQ3NDogCjE0NDc0OiAgIGJ3X3BhcmFtcy0+d21f
dGFibGUuZW50cmllc1tpXS53bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHOwoxNDQ3NDogICBi
d19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNbaV0udmFsaWQgPSB0cnVlOwoxNDQ3NDogIH0KMTQ0
NzQ6IAoxNDQ3NDogIGlmIChid19wYXJhbXMtPnZyYW1fdHlwZSA9PSBMcERkcjRNZW1UeXBlKSB7
CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogCjE0NDc0OiAgIGJ3X3BhcmFtcy0+d21fdGFibGUuZW50
cmllc1szXS5wc3RhdGVfbGF0ZW5jeV91cyA9IDQuOTc3OwoxNDQ3NDogICBid19wYXJhbXMtPndt
X3RhYmxlLmVudHJpZXNbM10ud21faW5zdCA9IDM7CjE0NDc0OiAgIGJ3X3BhcmFtcy0+d21fdGFi
bGUuZW50cmllc1szXS53bV90eXBlID0gV01fVFlQRV9SRVRSQUlOSU5HOwoxNDQ3NDogICBid19w
YXJhbXMtPndtX3RhYmxlLmVudHJpZXNbM10udmFsaWQgPSB0cnVlOwoxNDQ3NDogIH0KMTQ0NzQ6
IAoxNDQ3NDogfQoxNDQ3NDogCjE0NDc0OiB2b2lkIHJuX2Nsa19tZ3JfY29uc3RydWN0KAoxNDQ3
NDogICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAoxNDQ3NDogICBzdHJ1Y3QgY2xrX21ncl9pbnRl
cm5hbCAqY2xrX21nciwKMTQ0NzQ6ICAgc3RydWN0IHBwX3NtdV9mdW5jcyAqcHBfc211LAoxNDQ3
NDogICBzdHJ1Y3QgZGNjZyAqZGNjZykKMTQ0NzQ6IHsKMTQ0NzQ6ICBzdHJ1Y3QgZGNfZGVidWdf
b3B0aW9ucyAqZGVidWcgPSAmY3R4LT5kYy0+ZGVidWc7CjE0NDc0OiAgc3RydWN0IGRwbV9jbG9j
a3MgY2xvY2tfdGFibGUgPSB7IDAgfTsKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmJhc2UuY3R4
ID0gY3R4OwoxNDQ3NDogIGNsa19tZ3ItPmJhc2UuZnVuY3MgPSAmZGNuMjFfZnVuY3M7CjE0NDc0
OiAKMTQ0NzQ6ICBjbGtfbWdyLT5wcF9zbXUgPSBwcF9zbXU7CjE0NDc0OiAKMTQ0NzQ6ICBjbGtf
bWdyLT5kY2NnID0gZGNjZzsKMTQ0NzQ6ICBjbGtfbWdyLT5kZnNfYnlwYXNzX2Rpc3BfY2xrID0g
MDsKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmRwcmVmY2xrX3NzX3BlcmNlbnRhZ2UgPSAwOwox
NDQ3NDogIGNsa19tZ3ItPmRwcmVmY2xrX3NzX2RpdmlkZXIgPSAxMDAwOwoxNDQ3NDogIGNsa19t
Z3ItPnNzX29uX2RwcmVmY2xrID0gZmFsc2U7CjE0NDc0OiAgY2xrX21nci0+ZGZzX3JlZl9mcmVx
X2toeiA9IDQ4MDAwOwoxNDQ3NDogCjE0NDc0OiAgY2xrX21nci0+c211X3ZlciA9IHJuX3ZiaW9z
X3NtdV9nZXRfc211X3ZlcnNpb24oY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6ICBpZiAoKGN0eC0+
ZGNlX2Vudmlyb25tZW50ID09IERDRV9FTlZfRlBHQV9NQVhJTVVTKSkgewoxNDQ3NDogICBkY24y
MV9mdW5jcy51cGRhdGVfY2xvY2tzID0gZGNuMl91cGRhdGVfY2xvY2tzX2ZwZ2E7CjE0NDc0OiAg
IGNsa19tZ3ItPmJhc2UuZGVudGlzdF92Y29fZnJlcV9raHogPSAzNjAwMDAwOwoxNDQ3NDogIH0g
ZWxzZSB7CjE0NDc0OiAgIHN0cnVjdCBjbGtfbG9nX2luZm8gbG9nX2luZm8gPSB7MH07CjE0NDc0
OiAKMTQ0NzQ6IAoxNDQ3NDogICBjbGtfbWdyLT5iYXNlLmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0g
Z2V0X3Zjb19mcmVxdWVuY3lfZnJvbV9yZWcoY2xrX21ncik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3
NDogICBpZiAoY2xrX21nci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9PSAwKQoxNDQ3NDog
ICAgY2xrX21nci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CjE0NDc0OiAK
MTQ0NzQ6ICAgaWYgKGN0eC0+ZGNfYmlvcy0+aW50ZWdyYXRlZF9pbmZvLT5tZW1vcnlfdHlwZSA9
PSBMcERkcjRNZW1UeXBlKSB7CjE0NDc0OiAgICBybl9id19wYXJhbXMud21fdGFibGUgPSBscGRk
cjRfd21fdGFibGU7CjE0NDc0OiAgIH0gZWxzZSB7CjE0NDc0OiAgICBybl9id19wYXJhbXMud21f
dGFibGUgPSBkZHI0X3dtX3RhYmxlOwoxNDQ3NDogICB9CjE0NDc0OiAKMTQ0NzQ6ICAgcm5fZHVt
cF9jbGtfcmVnaXN0ZXJzKCZjbGtfbWdyLT5iYXNlLmJvb3Rfc25hcHNob3QsICZjbGtfbWdyLT5i
YXNlLCAmbG9nX2luZm8pOwoxNDQ3NDogIH0KMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmJhc2Uu
ZHByZWZjbGtfa2h6ID0gNjAwMDAwOwoxNDQ3NDogIGRjZV9jbG9ja19yZWFkX3NzX2luZm8oY2xr
X21ncik7CjE0NDc0OiAKMTQ0NzQ6IAoxNDQ3NDogIGNsa19tZ3ItPmJhc2UuYndfcGFyYW1zID0g
JnJuX2J3X3BhcmFtczsKMTQ0NzQ6IAoxNDQ3NDogIGlmIChwcF9zbXUgJiYgcHBfc211LT5ybl9m
dW5jcy5nZXRfZHBtX2Nsb2NrX3RhYmxlKSB7CjE0NDc0OiAgIHBwX3NtdS0+cm5fZnVuY3MuZ2V0
X2RwbV9jbG9ja190YWJsZSgmcHBfc211LT5ybl9mdW5jcy5wcF9zbXUsICZjbG9ja190YWJsZSk7
CjE0NDc0OiAgIGlmIChjdHgtPmRjX2Jpb3MgJiYgY3R4LT5kY19iaW9zLT5pbnRlZ3JhdGVkX2lu
Zm8pIHsKMTQ0NzQ6ICAgIHJuX2Nsa19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyAoY2xr
X21nci0+YmFzZS5id19wYXJhbXMsICZjbG9ja190YWJsZSwgY3R4LT5kY19iaW9zLT5pbnRlZ3Jh
dGVkX2luZm8pOwoxNDQ3NDogICB9CjE0NDc0OiAgfQoxNDQ3NDogCjE0NDc0OiAgaWYgKCEoY3R4
LT5kY2VfZW52aXJvbm1lbnQgPT0gRENFX0VOVl9GUEdBX01BWElNVVMpICYmIGNsa19tZ3ItPnNt
dV92ZXIgPj0gMHgwMDM3MTUwMCkgewoxNDQ3NDogCjE0NDc0OiAgIHJuX3ZiaW9zX3NtdV9lbmFi
bGVfNDhtaHpfdG1kcF9yZWZjbGtfcHdyZHduKGNsa19tZ3IsICFkZWJ1Zy0+ZGlzYWJsZV80OG1o
el9wd3Jkd24pOwoxNDQ3NDogIH0KMTQ0NzQ6IH0KPT09IEVORCBHQ0MgRFVNUCA9PT0KbWFrZVs4
XTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjI2ODogZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3Iub10gRXJyb3IgMQpt
YWtlWzddOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6NTA1OiBkcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdV0gRXJyb3IgMgptYWtlWzZdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6
NTA1OiBkcml2ZXJzL2dwdS9kcm1dIEVycm9yIDIKbWFrZVs1XTogKioqIFtzY3JpcHRzL01ha2Vm
aWxlLmJ1aWxkOjUwNTogZHJpdmVycy9ncHVdIEVycm9yIDIKbWFrZVs0XTogKioqIFtNYWtlZmls
ZToxNjgzOiBkcml2ZXJzXSBFcnJvciAyCm1ha2VbM106ICoqKiBbZGViaWFuL3J1bGVzOjY6IGJ1
aWxkXSBFcnJvciAyChtbMW1kcGtnLWJ1aWxkcGFja2FnZTogG1swbRtbMTszMW1lcnJvchtbMG06
IGRlYmlhbi9ydWxlcyBidWlsZCBzdWJwcm9jZXNzIHJldHVybmVkIGV4aXQgc3RhdHVzIDIKbWFr
ZVsyXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLnBhY2thZ2U6ODM6IGJpbmRlYi1wa2ddIEVycm9y
IDIKbWFrZVsxXTogKioqIFtNYWtlZmlsZToxNDE3OiBiaW5kZWItcGtnXSBFcnJvciAyCm1ha2U6
ICoqKiBbTWFrZWZpbGU6MzI3OiBfX2J1aWxkX29uZV9ieV9vbmVdIEVycm9yIDIK

--===============2530410277144048522==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="20200324ccFpC1kD.out"

Ly8gVGFyZ2V0OiB4ODZfNjQtbGludXgtZ251Ci8vIENvbmZpZ3VyZWQgd2l0aDogLi4vc3JjL2Nv
bmZpZ3VyZSAtdiAtLXdpdGgtcGtndmVyc2lvbj0nRGViaWFuIDEwLTIwMjAwMzIxLTEnIC0td2l0
aC1idWd1cmw9ZmlsZTovLy91c3Ivc2hhcmUvZG9jL2djYy0xMC9SRUFETUUuQnVncyAtLWVuYWJs
ZS1sYW5ndWFnZXM9YyxjKyssZ28sYnJpZyxkLGZvcnRyYW4sb2JqYyxvYmotYysrLG0yIC0tcHJl
Zml4PS91c3IgLS13aXRoLWdjYy1tYWpvci12ZXJzaW9uLW9ubHkgLS1wcm9ncmFtLXN1ZmZpeD0t
MTAgLS1wcm9ncmFtLXByZWZpeD14ODZfNjQtbGludXgtZ251LSAtLWVuYWJsZS1zaGFyZWQgLS1l
bmFibGUtbGlua2VyLWJ1aWxkLWlkIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiAtLXdpdGhvdXQtaW5j
bHVkZWQtZ2V0dGV4dCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tbGliZGlyPS91c3IvbGliIC0t
ZW5hYmxlLW5scyAtLWVuYWJsZS1jbG9jYWxlPWdudSAtLWVuYWJsZS1saWJzdGRjeHgtZGVidWcg
LS1lbmFibGUtbGlic3RkY3h4LXRpbWU9eWVzIC0td2l0aC1kZWZhdWx0LWxpYnN0ZGN4eC1hYmk9
bmV3IC0tZW5hYmxlLWdudS11bmlxdWUtb2JqZWN0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IC0t
ZW5hYmxlLXBsdWdpbiAtLWVuYWJsZS1kZWZhdWx0LXBpZSAtLXdpdGgtc3lzdGVtLXpsaWIgLS13
aXRoLXRhcmdldC1zeXN0ZW0temxpYj1hdXRvIC0tZW5hYmxlLW9iamMtZ2M9YXV0byAtLWVuYWJs
ZS1tdWx0aWFyY2ggLS1kaXNhYmxlLXdlcnJvciAtLXdpdGgtYXJjaC0zMj1pNjg2IC0td2l0aC1h
Ymk9bTY0IC0td2l0aC1tdWx0aWxpYi1saXN0PW0zMixtNjQsbXgzMiAtLWVuYWJsZS1tdWx0aWxp
YiAtLXdpdGgtdHVuZT1nZW5lcmljIC0tZW5hYmxlLW9mZmxvYWQtdGFyZ2V0cz1udnB0eC1ub25l
LGFtZGdjbi1hbWRoc2EsaHNhIC0td2l0aG91dC1jdWRhLWRyaXZlciAtLWVuYWJsZS1jaGVja2lu
Zz1yZWxlYXNlIC0tYnVpbGQ9eDg2XzY0LWxpbnV4LWdudSAtLWhvc3Q9eDg2XzY0LWxpbnV4LWdu
dSAtLXRhcmdldD14ODZfNjQtbGludXgtZ251Ci8vIFRocmVhZCBtb2RlbDogcG9zaXgKLy8gU3Vw
cG9ydGVkIExUTyBjb21wcmVzc2lvbiBhbGdvcml0aG1zOiB6bGliIHpzdGQKLy8gZ2NjIHZlcnNp
b24gMTAuMC4xIDIwMjAwMzIxIChleHBlcmltZW50YWwpIFttYXN0ZXIgcmV2aXNpb24gMTU3MTFl
ODM3YjI6YWI2NTg2Y2IwMjQ6NDk3NDk4Yzg3OGQ0ODc1NDMxOGU0ODY0MjhlMmFhMzA4NTQwMjBi
OV0gKERlYmlhbiAxMC0yMDIwMDMyMS0xKSAKLy8gCi8vIGR1cmluZyBSVEwgcGFzczogY29tYmlu
ZQovLyBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21nci5jOiBJbiBmdW5jdGlvbiDigJhybl91cGRhdGVfY2xvY2tz4oCZOgovLyBk
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5f
Y2xrX21nci5jOjE5MzoxOiBpbnRlcm5hbCBjb21waWxlciBlcnJvcjogaW4gaXg4Nl9jY19tb2Rl
LCBhdCBjb25maWcvaTM4Ni9pMzg2LmM6MTUyODUKLy8gICAxOTMgfCB9Ci8vICAgICAgIHwgXgov
LyAweDVkMDZhMiBpeDg2X2NjX21vZGUocnR4X2NvZGUsIHJ0eF9kZWYqLCBydHhfZGVmKikKLy8g
CS4uLy4uL3NyYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jOjE1Mjg1Ci8vIDB4MTI3OGRlMiBzaW1w
bGlmeV9zZXQKLy8gCS4uLy4uL3NyYy9nY2MvY29tYmluZS5jOjY5MzgKLy8gMHgxMjdjNDZhIHN1
YnN0Ci8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzo1NzE5Ci8vIDB4MTI3YzVmYyBzdWJzdAov
LyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6NTU4MQovLyAweDEyN2U3YzkgdHJ5X2NvbWJpbmUK
Ly8gCS4uLy4uL3NyYy9nY2MvY29tYmluZS5jOjM0NzkKLy8gMHgxMjg0NzcyIGNvbWJpbmVfaW5z
dHJ1Y3Rpb25zCi8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNDY5Ci8vIDB4MTI4NDc3MiBy
ZXN0X29mX2hhbmRsZV9jb21iaW5lCi8vIAkuLi8uLi9zcmMvZ2NjL2NvbWJpbmUuYzoxNTA1OQov
LyAweDEyODQ3NzIgZXhlY3V0ZQovLyAJLi4vLi4vc3JjL2djYy9jb21iaW5lLmM6MTUxMDQKLy8g
UGxlYXNlIHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCwKLy8gd2l0aCBwcmVwcm9jZXNzZWQgc291
cmNlIGlmIGFwcHJvcHJpYXRlLgovLyBQbGVhc2UgaW5jbHVkZSB0aGUgY29tcGxldGUgYmFja3Ry
YWNlIHdpdGggYW55IGJ1ZyByZXBvcnQuCi8vIFNlZSA8ZmlsZTovLy91c3Ivc2hhcmUvZG9jL2dj
Yy0xMC9SRUFETUUuQnVncz4gZm9yIGluc3RydWN0aW9ucy4KCi8vIC91c3IvbGliL2djYy94ODZf
NjQtbGludXgtZ251LzEwL2NjMSAtcXVpZXQgLW5vc3RkaW5jIC1JIC4vYXJjaC94ODYvaW5jbHVk
ZSAtSSAuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkIC1JIC4vaW5jbHVkZSAtSSAuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaSAtSSAuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkg
Li9pbmNsdWRlL3VhcGkgLUkgLi9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1JIC4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L2luYy8gLUkgLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9pbmNsdWRlL2FzaWNfcmVnIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL3Bvd2Vy
cGxheS9zbXVtZ3IgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9wb3dlcnBsYXkv
aHdtZ3IgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy8g
LUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9odyAtSSAu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nciAtSSAuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvbW9kdWxlcy9pbmMgLUkgLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvZnJlZXN5bmMgLUkgLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvY29sb3IgLUkgLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvaW5mb19wYWNrZXQg
LUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L21vZHVsZXMvcG93ZXIg
LUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RtdWIvaW5jIC1JIC4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYyAtSSAuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXNpY19yZWcgLUkgLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9pbmNsdWRlIC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
YW1kZ3B1IC1JIC4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L2luYyAt
SSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2FjcC9pbmNsdWRlIC1JIC4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMgLUkgLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2FtZGdwdV9kbSAtSSAuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2FtZGtmZCAtaW11
bHRpYXJjaCB4ODZfNjQtbGludXgtZ251IC1EIF9fS0VSTkVMX18gLUQgQ09ORklHX0FTX0NGST0x
IC1EIENPTkZJR19BU19DRklfU0lHTkFMX0ZSQU1FPTEgLUQgQ09ORklHX0FTX0NGSV9TRUNUSU9O
Uz0xIC1EIENPTkZJR19BU19TU1NFMz0xIC1EIENPTkZJR19BU19BVlg9MSAtRCBDT05GSUdfQVNf
QVZYMj0xIC1EIENPTkZJR19BU19BVlg1MTI9MSAtRCBDT05GSUdfQVNfU0hBMV9OST0xIC1EIENP
TkZJR19BU19TSEEyNTZfTkk9MSAtRCBDT05GSUdfQVNfQURYPTEgLUQgQ0NfVVNJTkdfRkVOVFJZ
IC1EIEJVSUxEX0ZFQVRVUkVfVElNSU5HX1NZTkM9MCAtRCBNT0RVTEUgLUQgS0JVSUxEX0JBU0VO
QU1FPSJybl9jbGtfbWdyIiAtRCBLQlVJTERfTU9ETkFNRT0iYW1kZ3B1IiAtaXN5c3RlbSAvdXNy
L2xpYi9nY2MveDg2XzY0LWxpbnV4LWdudS8xMC9pbmNsdWRlIC1pbmNsdWRlIC4vaW5jbHVkZS9s
aW51eC9rY29uZmlnLmggLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgg
LU1EIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24y
MS8ucm5fY2xrX21nci5vLmQgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyAtcXVpZXQgLWR1bXBiYXNlIHJuX2Nsa19tZ3Iu
YyAtbW5vLXNzZSAtbW5vLW1teCAtbW5vLXNzZTIgLW1uby0zZG5vdyAtbW5vLWF2eCAtbTY0IC1t
bm8tODAzODcgLW1uby1mcC1yZXQtaW4tMzg3IC1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PTMg
LW1za2lwLXJheC1zZXR1cCAtbWFyY2g9azggLW1uby1yZWQtem9uZSAtbWNtb2RlbD1rZXJuZWwg
LW1pbmRpcmVjdC1icmFuY2g9dGh1bmstZXh0ZXJuIC1taW5kaXJlY3QtYnJhbmNoLXJlZ2lzdGVy
IC1tcmVjb3JkLW1jb3VudCAtbWZlbnRyeSAtYXV4YmFzZS1zdHJpcCBkcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5vIC1PMiAt
V2FsbCAtV3VuZGVmIC1XZXJyb3I9c3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgLVdl
cnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2Vycm9yPWltcGxpY2l0LWludCAt
V25vLWZvcm1hdC1zZWN1cml0eSAtV25vLXNpZ24tY29tcGFyZSAtV25vLWZyYW1lLWFkZHJlc3Mg
LVdmb3JtYXQtdHJ1bmNhdGlvbj0wIC1XZm9ybWF0LW92ZXJmbG93PTAgLVduby1hZGRyZXNzLW9m
LXBhY2tlZC1tZW1iZXIgLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4IC1Xbm8tdW51c2VkLWJ1dC1z
ZXQtdmFyaWFibGUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaD0zIC1XdW51c2VkLWNvbnN0LXZhcmlh
YmxlPTAgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVd2bGEgLVduby1wb2ludGVyLXNp
Z24gLVduby1zdHJpbmdvcC10cnVuY2F0aW9uIC1XZXJyb3I9ZGF0ZS10aW1lIC1XZXJyb3I9aW5j
b21wYXRpYmxlLXBvaW50ZXItdHlwZXMgLVdlcnJvcj1kZXNpZ25hdGVkLWluaXQgLVduby1wYWNr
ZWQtbm90LWFsaWduZWQgLXN0ZD1nbnU5MCAtcCAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWNv
bW1vbiAtZnNob3J0LXdjaGFyIC1mbm8tUElFIC1mYWxpZ24tanVtcHM9MSAtZmFsaWduLWxvb3Bz
PTEgLWZuby1hc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZm5vLWp1bXAtdGFibGVzIC1mbm8t
ZGVsZXRlLW51bGwtcG9pbnRlci1jaGVja3MgLWZzdGFjay1wcm90ZWN0b3IgLWZuby12YXItdHJh
Y2tpbmctYXNzaWdubWVudHMgLWZuby1zdHJpY3Qtb3ZlcmZsb3cgLWZuby1tZXJnZS1hbGwtY29u
c3RhbnRzIC1mbWVyZ2UtY29uc3RhbnRzIC1mc3RhY2stY2hlY2s9bm8gLWZjb25zZXJ2ZS1zdGFj
ayAtZm1hY3JvLXByZWZpeC1tYXA9Li89IC1mY2YtcHJvdGVjdGlvbj1ub25lIC1vIC0gLWZyYW5k
b20tc2VlZD0wIC1mZHVtcC1ub2FkZHIKCiMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKIyAxICI8YnVpbHQtaW4+
IgojIDEgIjxjb21tYW5kLWxpbmU+IgojIDEgIi4vLi9pbmNsdWRlL2xpbnV4L2tjb25maWcuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvZ2VuZXJhdGVkL2F1dG9jb25mLmgiIDEKIyA2ICIuLy4vaW5j
bHVkZS9saW51eC9rY29uZmlnLmgiIDIKIyAxICI8Y29tbWFuZC1saW5lPiIgMgojIDEgIi4vLi9p
bmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDEKIyA1OSAiLi8uL2luY2x1ZGUvbGludXgv
Y29tcGlsZXJfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfYXR0cmlidXRl
cy5oIiAxCiMgNjAgIi4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmgiIDIKIyA2OCAi
Li8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvbGludXgv
Y29tcGlsZXItZ2NjLmgiIDEKIyA2OSAiLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMu
aCIgMgojIDg1ICIuLy4vaW5jbHVkZS9saW51eC9jb21waWxlcl90eXBlcy5oIgpzdHJ1Y3QgZnRy
YWNlX2JyYW5jaF9kYXRhIHsKIGNvbnN0IGNoYXIgKmZ1bmM7CiBjb25zdCBjaGFyICpmaWxlOwog
dW5zaWduZWQgbGluZTsKIHVuaW9uIHsKICBzdHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIGNvcnJl
Y3Q7CiAgIHVuc2lnbmVkIGxvbmcgaW5jb3JyZWN0OwogIH07CiAgc3RydWN0IHsKICAgdW5zaWdu
ZWQgbG9uZyBtaXNzOwogICB1bnNpZ25lZCBsb25nIGhpdDsKICB9OwogIHVuc2lnbmVkIGxvbmcg
bWlzc19oaXRbMl07CiB9Owp9OwoKc3RydWN0IGZ0cmFjZV9saWtlbHlfZGF0YSB7CiBzdHJ1Y3Qg
ZnRyYWNlX2JyYW5jaF9kYXRhIGRhdGE7CiB1bnNpZ25lZCBsb25nIGNvbnN0YW50Owp9OwojIDEg
Ijxjb21tYW5kLWxpbmU+IiAyCiMgMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKIyAyNiAiZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2RjY2cu
aCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2h3L2RjY2cuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGNfdHlwZXMuaCIgMQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvZGNfdHlwZXMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvb3NfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvbGludXgva2dkYi5o
IiAxCiMgMTYgIi4vaW5jbHVkZS9saW51eC9rZ2RiLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2xp
bmthZ2UuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaCIgMQoj
IDYgIi4vaW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvc3Ry
aW5naWZ5LmgiIDEKIyA3ICIuL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L2V4cG9ydC5oIiAxCiMgMTYgIi4vaW5jbHVkZS9saW51eC9leHBvcnQuaCIKZXh0
ZXJuIHN0cnVjdCBtb2R1bGUgX190aGlzX21vZHVsZTsKIyA0MyAiLi9pbmNsdWRlL2xpbnV4L2V4
cG9ydC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIiAxCiMgMTgwICIuL2luY2x1
ZGUvbGludXgvY29tcGlsZXIuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC90eXBlcy5oIiAx
CgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vdHlwZXMuaCIg
MQojIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3R5cGVzLmgiIDEKCgoKCgoKIyAxICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIgMQojIDExICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvaW50LWxsNjQuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9pbnQtbGw2
NC5oIiAxCiMgMTIgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ludC1sbDY0LmgiCiMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2JpdHNwZXJsb25nLmgiIDEKIyAxMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2JpdHNwZXJsb25nLmgiCiMgMSAiLi9pbmNsdWRlL2FzbS1n
ZW5lcmljL2JpdHNwZXJsb25nLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVy
aWMvYml0c3BlcmxvbmcuaCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRzcGVybG9u
Zy5oIiAyCiMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9iaXRzcGVybG9uZy5oIiAy
CiMgMTMgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ludC1sbDY0LmgiIDIKCgoKCgoKCnR5
cGVkZWYgX19zaWduZWRfXyBjaGFyIF9fczg7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3U4OwoK
dHlwZWRlZiBfX3NpZ25lZF9fIHNob3J0IF9fczE2Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9f
dTE2OwoKdHlwZWRlZiBfX3NpZ25lZF9fIGludCBfX3MzMjsKdHlwZWRlZiB1bnNpZ25lZCBpbnQg
X191MzI7CgoKX19leHRlbnNpb25fXyB0eXBlZGVmIF9fc2lnbmVkX18gbG9uZyBsb25nIF9fczY0
OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OwojIDEyICIu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvaW50LWxsNjQuaCIgMgoKCgoKdHlwZWRlZiBfX3M4IHM4Owp0
eXBlZGVmIF9fdTggdTg7CnR5cGVkZWYgX19zMTYgczE2Owp0eXBlZGVmIF9fdTE2IHUxNjsKdHlw
ZWRlZiBfX3MzMiBzMzI7CnR5cGVkZWYgX191MzIgdTMyOwp0eXBlZGVmIF9fczY0IHM2NDsKdHlw
ZWRlZiBfX3U2NCB1NjQ7CiMgOCAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvdHlwZXMuaCIg
MgojIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vdHlwZXMuaCIgMgoj
IDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3R5cGVzLmgiIDIKIyAxNCAiLi9pbmNsdWRlL3VhcGkv
bGludXgvdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9wb3NpeF90eXBlcy5oIiAx
CgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUv
dWFwaS9saW51eC9zdGRkZWYuaCIgMQojIDYgIi4vaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMgoK
CgoKZW51bSB7CiBmYWxzZSA9IDAsCiB0cnVlID0gMQp9OwojIDYgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L3Bvc2l4X3R5cGVzLmgiIDIKIyAyNSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcG9zaXhfdHlw
ZXMuaCIKdHlwZWRlZiBzdHJ1Y3QgewogdW5zaWduZWQgbG9uZyBmZHNfYml0c1sxMDI0IC8gKDgg
KiBzaXplb2YobG9uZykpXTsKfSBfX2tlcm5lbF9mZF9zZXQ7CgoKdHlwZWRlZiB2b2lkICgqX19r
ZXJuZWxfc2lnaGFuZGxlcl90KShpbnQpOwoKCnR5cGVkZWYgaW50IF9fa2VybmVsX2tleV90Owp0
eXBlZGVmIGludCBfX2tlcm5lbF9tcWRfdDsKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
b3NpeF90eXBlcy5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wb3Np
eF90eXBlc182NC5oIiAxCiMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9wb3NpeF90
eXBlc182NC5oIgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fa2VybmVsX29sZF91aWRfdDsKdHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF9vbGRfZ2lkX3Q7CgoKdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIF9fa2VybmVsX29sZF9kZXZfdDsKCgojIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5l
cmljL3Bvc2l4X3R5cGVzLmgiIDEKIyAxNSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvcG9z
aXhfdHlwZXMuaCIKdHlwZWRlZiBsb25nIF9fa2VybmVsX2xvbmdfdDsKdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIF9fa2VybmVsX3Vsb25nX3Q7CgoKCnR5cGVkZWYgX19rZXJuZWxfdWxvbmdfdCBfX2tl
cm5lbF9pbm9fdDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfbW9kZV90OwoKCgp0
eXBlZGVmIGludCBfX2tlcm5lbF9waWRfdDsKCgoKdHlwZWRlZiBpbnQgX19rZXJuZWxfaXBjX3Bp
ZF90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF91aWRfdDsKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgX19rZXJuZWxfZ2lkX3Q7CgoKCnR5cGVkZWYgX19rZXJuZWxfbG9uZ190IF9fa2Vy
bmVsX3N1c2Vjb25kc190OwoKCgp0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90OwoKCgp0eXBl
ZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF91aWQzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBf
X2tlcm5lbF9naWQzMl90OwojIDcyICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9wb3NpeF90
eXBlcy5oIgp0eXBlZGVmIF9fa2VybmVsX3Vsb25nX3QgX19rZXJuZWxfc2l6ZV90Owp0eXBlZGVm
IF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9zc2l6ZV90Owp0eXBlZGVmIF9fa2VybmVsX2xvbmdf
dCBfX2tlcm5lbF9wdHJkaWZmX3Q7CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiBpbnQgdmFsWzJdOwp9
IF9fa2VybmVsX2ZzaWRfdDsKCgoKCgp0eXBlZGVmIF9fa2VybmVsX2xvbmdfdCBfX2tlcm5lbF9v
ZmZfdDsKdHlwZWRlZiBsb25nIGxvbmcgX19rZXJuZWxfbG9mZl90Owp0eXBlZGVmIF9fa2VybmVs
X2xvbmdfdCBfX2tlcm5lbF9vbGRfdGltZV90OwoKCgp0eXBlZGVmIGxvbmcgbG9uZyBfX2tlcm5l
bF90aW1lNjRfdDsKdHlwZWRlZiBfX2tlcm5lbF9sb25nX3QgX19rZXJuZWxfY2xvY2tfdDsKdHlw
ZWRlZiBpbnQgX19rZXJuZWxfdGltZXJfdDsKdHlwZWRlZiBpbnQgX19rZXJuZWxfY2xvY2tpZF90
Owp0eXBlZGVmIGNoYXIgKiBfX2tlcm5lbF9jYWRkcl90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0
IF9fa2VybmVsX3VpZDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfZ2lkMTZf
dDsKIyAxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3Bvc2l4X3R5cGVzXzY0LmgiIDIK
IyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bvc2l4X3R5cGVzLmgiIDIKIyAzNyAiLi9pbmNs
dWRlL3VhcGkvbGludXgvcG9zaXhfdHlwZXMuaCIgMgojIDE1ICIuL2luY2x1ZGUvdWFwaS9saW51
eC90eXBlcy5oIiAyCiMgMjkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3R5cGVzLmgiCnR5cGVkZWYg
X191MTYgX19sZTE2Owp0eXBlZGVmIF9fdTE2IF9fYmUxNjsKdHlwZWRlZiBfX3UzMiBfX2xlMzI7
CnR5cGVkZWYgX191MzIgX19iZTMyOwp0eXBlZGVmIF9fdTY0IF9fbGU2NDsKdHlwZWRlZiBfX3U2
NCBfX2JlNjQ7Cgp0eXBlZGVmIF9fdTE2IF9fc3VtMTY7CnR5cGVkZWYgX191MzIgX193c3VtOwoj
IDUyICIuL2luY2x1ZGUvdWFwaS9saW51eC90eXBlcy5oIgp0eXBlZGVmIHVuc2lnbmVkIF9fcG9s
bF90OwojIDE4MSAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDIKIyAxOTYgIi4vaW5jbHVk
ZS9saW51eC9jb21waWxlci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9f
aW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KQp2b2lkIF9fcmVhZF9vbmNlX3NpemUoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgdm9pZCAqcmVz
LCBpbnQgc2l6ZSkKewogKHsgc3dpdGNoIChzaXplKSB7IGNhc2UgMTogKihfX3U4ICopcmVzID0g
Kih2b2xhdGlsZSBfX3U4ICopcDsgYnJlYWs7IGNhc2UgMjogKihfX3UxNiAqKXJlcyA9ICoodm9s
YXRpbGUgX191MTYgKilwOyBicmVhazsgY2FzZSA0OiAqKF9fdTMyICopcmVzID0gKih2b2xhdGls
ZSBfX3UzMiAqKXA7IGJyZWFrOyBjYXNlIDg6ICooX191NjQgKilyZXMgPSAqKHZvbGF0aWxlIF9f
dTY0ICopcDsgYnJlYWs7IGRlZmF1bHQ6IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVt
b3J5Iik7IF9fYnVpbHRpbl9tZW1jcHkoKHZvaWQgKilyZXMsIChjb25zdCB2b2lkICopcCwgc2l6
ZSk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IH0gfSk7Cn0KIyAyMTQg
Ii4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKQp2b2lkIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjayhjb25zdCB2b2xhdGlsZSB2
b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQp7CiAoeyBzd2l0Y2ggKHNpemUpIHsgY2FzZSAx
OiAqKF9fdTggKilyZXMgPSAqKHZvbGF0aWxlIF9fdTggKilwOyBicmVhazsgY2FzZSAyOiAqKF9f
dTE2ICopcmVzID0gKih2b2xhdGlsZSBfX3UxNiAqKXA7IGJyZWFrOyBjYXNlIDQ6ICooX191MzIg
KilyZXMgPSAqKHZvbGF0aWxlIF9fdTMyICopcDsgYnJlYWs7IGNhc2UgODogKihfX3U2NCAqKXJl
cyA9ICoodm9sYXRpbGUgX191NjQgKilwOyBicmVhazsgZGVmYXVsdDogX19hc21fXyBfX3ZvbGF0
aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgX19idWlsdGluX21lbWNweSgodm9pZCAqKXJlcywgKGNv
bnN0IHZvaWQgKilwLCBzaXplKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnki
KTsgfSB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChfX25vX2luc3RydW1l
bnRfZnVuY3Rpb25fXykpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X3dyaXRlX29uY2Vfc2l6ZSh2b2xhdGlsZSB2b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQp7
CiBzd2l0Y2ggKHNpemUpIHsKIGNhc2UgMTogKih2b2xhdGlsZSBfX3U4ICopcCA9ICooX191OCAq
KXJlczsgYnJlYWs7CiBjYXNlIDI6ICoodm9sYXRpbGUgX191MTYgKilwID0gKihfX3UxNiAqKXJl
czsgYnJlYWs7CiBjYXNlIDQ6ICoodm9sYXRpbGUgX191MzIgKilwID0gKihfX3UzMiAqKXJlczsg
YnJlYWs7CiBjYXNlIDg6ICoodm9sYXRpbGUgX191NjQgKilwID0gKihfX3U2NCAqKXJlczsgYnJl
YWs7CiBkZWZhdWx0OgogIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiAg
X19idWlsdGluX21lbWNweSgodm9pZCAqKXAsIChjb25zdCB2b2lkICopcmVzLCBzaXplKTsKICBf
X2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogfQp9CiMgMjU2ICIuL2luY2x1
ZGUvbGludXgvY29tcGlsZXIuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JhcnJpZXIu
aCIgMQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiIDEKCgoK
CgoKIyAxICIuL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEzICIuL2luY2x1ZGUvbGludXgv
dHlwZXMuaCIKdHlwZWRlZiB1MzIgX19rZXJuZWxfZGV2X3Q7Cgp0eXBlZGVmIF9fa2VybmVsX2Zk
X3NldCBmZF9zZXQ7CnR5cGVkZWYgX19rZXJuZWxfZGV2X3QgZGV2X3Q7CnR5cGVkZWYgX19rZXJu
ZWxfaW5vX3QgaW5vX3Q7CnR5cGVkZWYgX19rZXJuZWxfbW9kZV90IG1vZGVfdDsKdHlwZWRlZiB1
bnNpZ25lZCBzaG9ydCB1bW9kZV90Owp0eXBlZGVmIHUzMiBubGlua190Owp0eXBlZGVmIF9fa2Vy
bmVsX29mZl90IG9mZl90Owp0eXBlZGVmIF9fa2VybmVsX3BpZF90IHBpZF90Owp0eXBlZGVmIF9f
a2VybmVsX2RhZGRyX3QgZGFkZHJfdDsKdHlwZWRlZiBfX2tlcm5lbF9rZXlfdCBrZXlfdDsKdHlw
ZWRlZiBfX2tlcm5lbF9zdXNlY29uZHNfdCBzdXNlY29uZHNfdDsKdHlwZWRlZiBfX2tlcm5lbF90
aW1lcl90IHRpbWVyX3Q7CnR5cGVkZWYgX19rZXJuZWxfY2xvY2tpZF90IGNsb2NraWRfdDsKdHlw
ZWRlZiBfX2tlcm5lbF9tcWRfdCBtcWRfdDsKCnR5cGVkZWYgX0Jvb2wgYm9vbDsKCnR5cGVkZWYg
X19rZXJuZWxfdWlkMzJfdCB1aWRfdDsKdHlwZWRlZiBfX2tlcm5lbF9naWQzMl90IGdpZF90Owp0
eXBlZGVmIF9fa2VybmVsX3VpZDE2X3QgdWlkMTZfdDsKdHlwZWRlZiBfX2tlcm5lbF9naWQxNl90
IGdpZDE2X3Q7Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWludHB0cl90OwojIDQ2ICIuL2luY2x1
ZGUvbGludXgvdHlwZXMuaCIKdHlwZWRlZiBfX2tlcm5lbF9sb2ZmX3QgbG9mZl90OwojIDU1ICIu
L2luY2x1ZGUvbGludXgvdHlwZXMuaCIKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3Qgc2l6ZV90OwoK
CgoKdHlwZWRlZiBfX2tlcm5lbF9zc2l6ZV90IHNzaXplX3Q7CgoKCgp0eXBlZGVmIF9fa2VybmVs
X3B0cmRpZmZfdCBwdHJkaWZmX3Q7CgoKCgp0eXBlZGVmIF9fa2VybmVsX2Nsb2NrX3QgY2xvY2tf
dDsKCgoKCnR5cGVkZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoKCgp0eXBlZGVmIHVuc2ln
bmVkIGNoYXIgdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYg
dW5zaWduZWQgaW50IHVfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9sb25nOwoKCnR5cGVk
ZWYgdW5zaWduZWQgY2hhciB1bmNoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0Owp0
eXBlZGVmIHVuc2lnbmVkIGludCB1aW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmc7CgoK
Cgp0eXBlZGVmIHU4IHVfaW50OF90Owp0eXBlZGVmIHM4IGludDhfdDsKdHlwZWRlZiB1MTYgdV9p
bnQxNl90Owp0eXBlZGVmIHMxNiBpbnQxNl90Owp0eXBlZGVmIHUzMiB1X2ludDMyX3Q7CnR5cGVk
ZWYgczMyIGludDMyX3Q7CgoKCnR5cGVkZWYgdTggdWludDhfdDsKdHlwZWRlZiB1MTYgdWludDE2
X3Q7CnR5cGVkZWYgdTMyIHVpbnQzMl90OwoKCnR5cGVkZWYgdTY0IHVpbnQ2NF90Owp0eXBlZGVm
IHU2NCB1X2ludDY0X3Q7CnR5cGVkZWYgczY0IGludDY0X3Q7CiMgMTI1ICIuL2luY2x1ZGUvbGlu
dXgvdHlwZXMuaCIKdHlwZWRlZiB1NjQgc2VjdG9yX3Q7CnR5cGVkZWYgdTY0IGJsa2NudF90Owoj
IDE0MyAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCnR5cGVkZWYgdTY0IGRtYV9hZGRyX3Q7CgoK
Cgp0eXBlZGVmIHVuc2lnbmVkIGludCBnZnBfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2xhYl9m
bGFnc190Owp0eXBlZGVmIHVuc2lnbmVkIGludCBmbW9kZV90OwoKCnR5cGVkZWYgdTY0IHBoeXNf
YWRkcl90OwoKCgoKdHlwZWRlZiBwaHlzX2FkZHJfdCByZXNvdXJjZV9zaXplX3Q7CgoKCgoKdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIGlycV9od19udW1iZXJfdDsKCnR5cGVkZWYgc3RydWN0IHsKIGlu
dCBjb3VudGVyOwp9IGF0b21pY190OwoKCnR5cGVkZWYgc3RydWN0IHsKIHM2NCBjb3VudGVyOwp9
IGF0b21pYzY0X3Q7CgoKc3RydWN0IGxpc3RfaGVhZCB7CiBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0
LCAqcHJldjsKfTsKCnN0cnVjdCBobGlzdF9oZWFkIHsKIHN0cnVjdCBobGlzdF9ub2RlICpmaXJz
dDsKfTsKCnN0cnVjdCBobGlzdF9ub2RlIHsKIHN0cnVjdCBobGlzdF9ub2RlICpuZXh0LCAqKnBw
cmV2Owp9OwoKc3RydWN0IHVzdGF0IHsKIF9fa2VybmVsX2RhZGRyX3QgZl90ZnJlZTsKIF9fa2Vy
bmVsX2lub190IGZfdGlub2RlOwogY2hhciBmX2ZuYW1lWzZdOwogY2hhciBmX2ZwYWNrWzZdOwp9
OwojIDIxNCAiLi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiCnN0cnVjdCBjYWxsYmFja19oZWFkIHsK
IHN0cnVjdCBjYWxsYmFja19oZWFkICpuZXh0Owogdm9pZCAoKmZ1bmMpKHN0cnVjdCBjYWxsYmFj
a19oZWFkICpoZWFkKTsKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKHNpemVvZih2b2lkICopKSkp
OwoKCnR5cGVkZWYgdm9pZCAoKnJjdV9jYWxsYmFja190KShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAq
aGVhZCk7CnR5cGVkZWYgdm9pZCAoKmNhbGxfcmN1X2Z1bmNfdCkoc3RydWN0IGNhbGxiYWNrX2hl
YWQgKmhlYWQsIHJjdV9jYWxsYmFja190IGZ1bmMpOwoKdHlwZWRlZiB2b2lkICgqc3dhcF9mdW5j
X3QpKHZvaWQgKmEsIHZvaWQgKmIsIGludCBzaXplKTsKCnR5cGVkZWYgaW50ICgqY21wX3JfZnVu
Y190KShjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBjb25zdCB2b2lkICpwcml2KTsKdHlw
ZWRlZiBpbnQgKCpjbXBfZnVuY190KShjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKTsKIyA4
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiIDIKCgojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYXNtLmgiIDEKIyAxODIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXNt
LmgiCnJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyIGFzbSgicnNw
Iik7CiMgMTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUuaCIgMgojIDU4ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLmgiCnN0cnVjdCBhbHRfaW5zdHIgewog
czMyIGluc3RyX29mZnNldDsKIHMzMiByZXBsX29mZnNldDsKIHUxNiBjcHVpZDsKIHU4IGluc3Ry
bGVuOwogdTggcmVwbGFjZW1lbnRsZW47CiB1OCBwYWRsZW47Cn0gX19hdHRyaWJ1dGVfXygoX19w
YWNrZWRfXykpOwoKCgoKCmV4dGVybiBpbnQgYWx0ZXJuYXRpdmVzX3BhdGNoZWQ7CgpleHRlcm4g
dm9pZCBhbHRlcm5hdGl2ZV9pbnN0cnVjdGlvbnModm9pZCk7CmV4dGVybiB2b2lkIGFwcGx5X2Fs
dGVybmF0aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0ciAqZW5k
KTsKCnN0cnVjdCBtb2R1bGU7CgoKZXh0ZXJuIHZvaWQgYWx0ZXJuYXRpdmVzX3NtcF9tb2R1bGVf
YWRkKHN0cnVjdCBtb2R1bGUgKm1vZCwgY2hhciAqbmFtZSwKICAgICB2b2lkICpsb2Nrcywgdm9p
ZCAqbG9ja3NfZW5kLAogICAgIHZvaWQgKnRleHQsIHZvaWQgKnRleHRfZW5kKTsKZXh0ZXJuIHZv
aWQgYWx0ZXJuYXRpdmVzX3NtcF9tb2R1bGVfZGVsKHN0cnVjdCBtb2R1bGUgKm1vZCk7CmV4dGVy
biB2b2lkIGFsdGVybmF0aXZlc19lbmFibGVfc21wKHZvaWQpOwpleHRlcm4gaW50IGFsdGVybmF0
aXZlc190ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQpOwpleHRlcm4gYm9vbCBz
a2lwX3NtcF9hbHRlcm5hdGl2ZXM7CiMgNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iYXJyaWVy
LmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vcHMuaCIgMQojIDE0MyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9ub3BzLmgiCmV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyICogY29u
c3QgKmlkZWFsX25vcHM7CmV4dGVybiB2b2lkIGFyY2hfaW5pdF9pZGVhbF9ub3BzKHZvaWQpOwoj
IDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYmFycmllci5oIiAyCiMgMzYgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYmFycmllci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9f
bm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgdW5zaWduZWQgbG9uZyBhcnJheV9pbmRleF9tYXNr
X25vc3BlYyh1bnNpZ25lZCBsb25nIGluZGV4LAogIHVuc2lnbmVkIGxvbmcgc2l6ZSkKewogdW5z
aWduZWQgbG9uZyBtYXNrOwoKIGFzbSB2b2xhdGlsZSAoImNtcCAlMSwlMjsgc2JiICUwLCUwOyIK
ICAgOiI9ciIgKG1hc2spCiAgIDoiZyIoc2l6ZSksInIiIChpbmRleCkKICAgOiJjYyIpOwogcmV0
dXJuIG1hc2s7Cn0KIyA4NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iYXJyaWVyLmgiCiMgMSAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2JhcnJpZXIuaCIgMQojIDE2ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYmFycmllci5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIiAxCiMgMTcg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iYXJyaWVyLmgiIDIKIyA4NiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9iYXJyaWVyLmgiIDIKIyAyNTcgIi4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIiAy
CiMgMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLWNoZWNrcy5oIiAxCiMgMTYgIi4vaW5jbHVkZS9s
aW51eC9rYXNhbi1jaGVja3MuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChfX25v
X2luc3RydW1lbnRfZnVuY3Rpb25fXykpIGJvb2wgX19rYXNhbl9jaGVja19yZWFkKGNvbnN0IHZv
bGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXplKQp7CiByZXR1cm4gdHJ1ZTsKfQpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkg
Ym9vbCBfX2thc2FuX2NoZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVk
IGludCBzaXplKQp7CiByZXR1cm4gdHJ1ZTsKfQojIDM0ICIuL2luY2x1ZGUvbGludXgva2FzYW4t
Y2hlY2tzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50
X2Z1bmN0aW9uX18pKSBib29sIGthc2FuX2NoZWNrX3JlYWQoY29uc3Qgdm9sYXRpbGUgdm9pZCAq
cCwgdW5zaWduZWQgaW50IHNpemUpCnsKIHJldHVybiB0cnVlOwp9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKSBib29sIGthc2FuX2No
ZWNrX3dyaXRlKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXplKQp7CiBy
ZXR1cm4gdHJ1ZTsKfQojIDI1OCAiLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgiIDIKIyAyNzcg
Ii4vaW5jbHVkZS9saW51eC9jb21waWxlci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKF9fbm9faW5zdHJ1bWVudF9mdW5jdGlvbl9fKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKQp1bnNpZ25lZCBsb25nIHJlYWRfd29yZF9hdF9hX3RpbWUoY29uc3Qgdm9pZCAq
YWRkcikKewoga2FzYW5fY2hlY2tfcmVhZChhZGRyLCAxKTsKIHJldHVybiAqKHVuc2lnbmVkIGxv
bmcgKilhZGRyOwp9CiMgMzA4ICIuL2luY2x1ZGUvbGludXgvY29tcGlsZXIuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChfX25vX2luc3RydW1lbnRfZnVuY3Rpb25fXykpIHZvaWQg
Km9mZnNldF90b19wdHIoY29uc3QgaW50ICpvZmYpCnsKIHJldHVybiAodm9pZCAqKSgodW5zaWdu
ZWQgbG9uZylvZmYgKyAqb2ZmKTsKfQojIDQ0ICIuL2luY2x1ZGUvbGludXgvZXhwb3J0LmgiIDIK
IyA2MCAiLi9pbmNsdWRlL2xpbnV4L2V4cG9ydC5oIgpzdHJ1Y3Qga2VybmVsX3N5bWJvbCB7CiBp
bnQgdmFsdWVfb2Zmc2V0OwogaW50IG5hbWVfb2Zmc2V0OwogaW50IG5hbWVzcGFjZV9vZmZzZXQ7
Cn07CiMgOCAiLi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vbGlua2FnZS5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2xpbmthZ2UuaCIgMgoj
IDE3ICIuL2luY2x1ZGUvbGludXgva2dkYi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2luaXQu
aCIgMQojIDExNiAiLi9pbmNsdWRlL2xpbnV4L2luaXQuaCIKdHlwZWRlZiBpbnQgKCppbml0Y2Fs
bF90KSh2b2lkKTsKdHlwZWRlZiB2b2lkICgqZXhpdGNhbGxfdCkodm9pZCk7CgoKdHlwZWRlZiBp
bnQgaW5pdGNhbGxfZW50cnlfdDsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGluaXRjYWxsX3QgaW5pdGNhbGxfZnJvbV9lbnRyeShpbml0
Y2FsbF9lbnRyeV90ICplbnRyeSkKewogcmV0dXJuIG9mZnNldF90b19wdHIoZW50cnkpOwp9CiMg
MTM1ICIuL2luY2x1ZGUvbGludXgvaW5pdC5oIgpleHRlcm4gaW5pdGNhbGxfZW50cnlfdCBfX2Nv
bl9pbml0Y2FsbF9zdGFydFtdLCBfX2Nvbl9pbml0Y2FsbF9lbmRbXTsKCgp0eXBlZGVmIHZvaWQg
KCpjdG9yX2ZuX3QpKHZvaWQpOwoKc3RydWN0IGZpbGVfc3lzdGVtX3R5cGU7CgoKZXh0ZXJuIGlu
dCBkb19vbmVfaW5pdGNhbGwoaW5pdGNhbGxfdCBmbik7CmV4dGVybiBjaGFyIF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuaW5pdC5kYXRhIikpKSBib290X2NvbW1hbmRfbGluZVtdOwpleHRl
cm4gY2hhciAqc2F2ZWRfY29tbWFuZF9saW5lOwpleHRlcm4gdW5zaWduZWQgaW50IHJlc2V0X2Rl
dmljZXM7CgoKdm9pZCBzZXR1cF9hcmNoKGNoYXIgKiopOwp2b2lkIHByZXBhcmVfbmFtZXNwYWNl
KHZvaWQpOwp2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIGluaXRfcm9vdGZzKHZvaWQpOwpleHRlcm4gc3RydWN0
IGZpbGVfc3lzdGVtX3R5cGUgcm9vdGZzX2ZzX3R5cGU7CgoKZXh0ZXJuIGJvb2wgcm9kYXRhX2Vu
YWJsZWQ7CgoKdm9pZCBtYXJrX3JvZGF0YV9ybyh2b2lkKTsKCgpleHRlcm4gdm9pZCAoKmxhdGVf
dGltZV9pbml0KSh2b2lkKTsKCmV4dGVybiBib29sIGluaXRjYWxsX2RlYnVnOwojIDE4ICIuL2lu
Y2x1ZGUvbGludXgva2dkYi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy5oIiAxCgoK
CgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIgMQoKCgoKCgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NtcHhjaGcuaCIgMQoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIiAxCgoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3JlcXVpcmVkLWZlYXR1cmVzLmgiIDEKIyA3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Nw
dWZlYXR1cmVzLmgiIDIKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Rpc2FibGVkLWZl
YXR1cmVzLmgiIDEKIyAxMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIiAy
CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgiIDIKCgoKCgoKZXh0ZXJuIHZv
aWQgX194Y2hnX3dyb25nX3NpemUodm9pZCkKIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQmFk
IGFyZ3VtZW50IHNpemUgZm9yIHhjaGciKSkpOwpleHRlcm4gdm9pZCBfX2NtcHhjaGdfd3Jvbmdf
c2l6ZSh2b2lkKQogX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCYWQgYXJndW1lbnQgc2l6ZSBm
b3IgY21weGNoZyIpKSk7CmV4dGVybiB2b2lkIF9feGFkZF93cm9uZ19zaXplKHZvaWQpCiBfX2F0
dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJhZCBhcmd1bWVudCBzaXplIGZvciB4YWRkIikpKTsKZXh0
ZXJuIHZvaWQgX19hZGRfd3Jvbmdfc2l6ZSh2b2lkKQogX19hdHRyaWJ1dGVfXygoX19lcnJvcl9f
KCJCYWQgYXJndW1lbnQgc2l6ZSBmb3IgYWRkIikpKTsKIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vY21weGNoZy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY21weGNoZ182NC5o
IiAxCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHNldF82NGJpdCh2b2xhdGlsZSB1NjQgKnB0ciwgdTY0IHZhbCkKewogKnB0
ciA9IHZhbDsKfQojIDE0NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jbXB4Y2hnLmgiIDIKIyA5
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9ybXdjYy5oIiAxCiMgMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgi
IDIKIyAyNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgYXJjaF9hdG9taWNfcmVhZChjb25zdCBhdG9taWNfdCAq
dikKewoKCgoKIHJldHVybiAoeyB1bmlvbiB7IHR5cGVvZigodiktPmNvdW50ZXIpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKHYpLT5jb3VudGVy
KSwgX191Ll9fYywgc2l6ZW9mKCh2KS0+Y291bnRlcikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVf
bm9jaGVjaygmKCh2KS0+Y291bnRlciksIF9fdS5fX2MsIHNpemVvZigodiktPmNvdW50ZXIpKTsg
ZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKfQojIDQxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2F0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
YXJjaF9hdG9taWNfc2V0KGF0b21pY190ICp2LCBpbnQgaSkKewogKHsgdW5pb24geyB0eXBlb2Yo
di0+Y291bnRlcikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBl
b2Yodi0+Y291bnRlcikpIChpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKHYtPmNvdW50ZXIpLCBf
X3UuX19jLCBzaXplb2Yodi0+Y291bnRlcikpOyBfX3UuX192YWw7IH0pOwp9CiMgNTMgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vYXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBhcmNoX2F0b21pY19hZGQoaW50IGksIGF0b21pY190ICp2KQp7CiBhc20gdm9s
YXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRs
ICUxLCUwIgogICAgICAgOiAiK20iICh2LT5jb3VudGVyKQogICAgICAgOiAiaXIiIChpKSA6ICJt
ZW1vcnkiKTsKfQojIDY3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWNfc3ViKGludCBpLCBh
dG9taWNfdCAqdikKewogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFc
IlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3
MToiICJcblx0bG9jazsgIiAic3VibCAlMSwlMCIKICAgICAgIDogIittIiAodi0+Y291bnRlcikK
ICAgICAgIDogImlyIiAoaSkgOiAibWVtb3J5Iik7Cn0KIyA4MyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIGFy
Y2hfYXRvbWljX3N1Yl9hbmRfdGVzdChpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBi
b29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJzdWJsIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25k
aXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2Mi
ICJlIiAoYykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyA5NSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIGFyY2hfYXRvbWljX2luYyhhdG9taWNfdCAqdikKewogYXNtIHZvbGF0aWxl
KCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2
NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiaW5jbCAlMCIK
ICAgICAgIDogIittIiAodi0+Y291bnRlcikgOjogIm1lbW9yeSIpOwp9CiMgMTA4ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgYXJjaF9hdG9taWNfZGVjKGF0b21pY190ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJkZWNsICUwIgogICAg
ICAgOiAiK20iICh2LT5jb3VudGVyKSA6OiAibWVtb3J5Iik7Cn0KIyAxMjMgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
Ym9vbCBhcmNoX2F0b21pY19kZWNfYW5kX3Rlc3QoYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBi
b29sIGM7IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJkZWNsIiAiICIgIiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNv
ZGUgIiAiZSIgIiovXG4iIDogW3Zhcl0gIittIiAodi0+Y291bnRlciksICI9QGNjIiAiZSIgKGMp
IDogOiAibWVtb3J5Iik7IGM7IH0pOwp9CiMgMTM3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0
b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgYXJjaF9hdG9t
aWNfaW5jX2FuZF90ZXN0KGF0b21pY190ICp2KQp7CiByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiaW5j
bCIgIiAiICIlW3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgImUiICIqL1xu
IiA6IFt2YXJdICIrbSIgKHYtPmNvdW50ZXIpLCAiPUBjYyIgImUiIChjKSA6IDogIm1lbW9yeSIp
OyBjOyB9KTsKfQojIDE1MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIGFyY2hfYXRvbWljX2FkZF9uZWdhdGl2
ZShpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhZGRsIiAiICVb
dmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJzIiAiKi9c
biIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJzIiAoYykgOiBbdmFsXSAiZXIi
IChpKSA6ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyAxNjUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFyY2hfYXRv
bWljX2FkZF9yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQp7CiByZXR1cm4gaSArICh7IF9fdHlw
ZW9mX18gKCooKCgmdi0+Y291bnRlcikpKSkgX19yZXQgPSAoKChpKSkpOyBzd2l0Y2ggKHNpemVv
ZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0
aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIg
Ii5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICViMCwgJTFcbiIg
OiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAi
Y2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAiK3IiIChfX3Jl
dCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7
IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIg
Ii5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAi
XG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigo
KCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA4OiBhc20g
dm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4i
ICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAi
eGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVy
KSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRkX3dyb25nX3Np
emUoKTsgfSBfX3JldDsgfSk7Cn0KIyAxNzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWlj
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFyY2hfYXRvbWljX3N1
Yl9yZXR1cm4oaW50IGksIGF0b21pY190ICp2KQp7CiByZXR1cm4gYXJjaF9hdG9taWNfYWRkX3Jl
dHVybigtaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGFy
Y2hfYXRvbWljX2ZldGNoX2FkZChpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiAoeyBfX3R5
cGVvZl9fICgqKCgoJnYtPmNvdW50ZXIpKSkpIF9fcmV0ID0gKCgoaSkpKTsgc3dpdGNoIChzaXpl
b2YoKigoKCZ2LT5jb3VudGVyKSkpKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2Vj
dGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4i
ICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4i
IDogIitxIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5Iiwg
ImNjIik7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xv
Y2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlv
blxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19y
ZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4YWRkIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCoo
KCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNt
IHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxu
IiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIg
InhhZGQiICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRl
cikpKSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19z
aXplKCk7IH0gX19yZXQ7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IGludCBhcmNoX2F0b21pY19mZXRjaF9zdWIoaW50IGksIGF0b21pY190ICp2KQp7CiByZXR1cm4g
KHsgX190eXBlb2ZfXyAoKigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKC1pKSkpOyBzd2l0
Y2ggKHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgi
LnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcx
ZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICVi
MCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9u
IC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5w
b3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAi
K3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2Mi
KTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3Ms
XCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4i
ICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwg
IittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJh
bGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0
bG9jazsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2
LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRk
X3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgaW50IGFyY2hfYXRvbWljX2NtcHhjaGcoYXRvbWljX3QgKnYsIGludCBvbGQsIGlu
dCBuZXcpCnsKIHJldHVybiAoeyBfX3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fcmV0OyBf
X3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fb2xkID0gKChvbGQpKTsgX190eXBlb2ZfXygq
KCgmdi0+Y291bnRlcikpKSBfX25ldyA9ICgobmV3KSk7IHN3aXRjaCAoKHNpemVvZigqKCZ2LT5j
b3VudGVyKSkpKSB7IGNhc2UgMTogeyB2b2xhdGlsZSB1OCAqX19wdHIgPSAodm9sYXRpbGUgdTgg
KikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3Ms
XCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4i
ICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdiICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIitt
IiAoKl9fcHRyKSA6ICJxIiAoX19uZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IH0gY2FzZSAyOiB7IHZvbGF0aWxlIHUxNiAqX19wdHIgPSAodm9sYXRpbGUgdTE2ICopKCgmdi0+
Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJjbXB4Y2hndyAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpfX3B0
cikgOiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2Ug
NDogeyB2b2xhdGlsZSB1MzIgKl9fcHRyID0gKHZvbGF0aWxlIHUzMiAqKSgoJnYtPmNvdW50ZXIp
KTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiY21weGNoZ2wgJTIsJTEiIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpIDogInIi
IChfX25ldyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDg6IHsgdm9s
YXRpbGUgdTY0ICpfX3B0ciA9ICh2b2xhdGlsZSB1NjQgKikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2
b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAi
LmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNt
cHhjaGdxICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSA6ICJyIiAoX19uZXcp
LCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gZGVmYXVsdDogX19jbXB4Y2hnX3dy
b25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIGJvb2wgYXJjaF9hdG9taWNfdHJ5X2NtcHhjaGcoYXRvbWljX3QgKnYsIGludCAqb2xk
LCBpbnQgbmV3KQp7CiByZXR1cm4gKHsgYm9vbCBzdWNjZXNzOyBfX3R5cGVvZl9fKCgoJnYtPmNv
dW50ZXIpKSkgX29sZCA9IChfX3R5cGVvZl9fKCgoJnYtPmNvdW50ZXIpKSkpKCgob2xkKSkpOyBf
X3R5cGVvZl9fKCooKCgmdi0+Y291bnRlcikpKSkgX19vbGQgPSAqX29sZDsgX190eXBlb2ZfXygq
KCgoJnYtPmNvdW50ZXIpKSkpIF9fbmV3ID0gKCgobmV3KSkpOyBzd2l0Y2ggKChzaXplb2YoKigm
di0+Y291bnRlcikpKSkgeyBjYXNlIDE6IHsgdm9sYXRpbGUgdTggKl9fcHRyID0gKHZvbGF0aWxl
IHU4ICopKCgoJnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBf
bG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0
aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdiICVbbmV3XSwgJVtwdHJdIiAiXG5c
dC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChzdWNj
ZXNzKSwgW3B0cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10gInEi
IChfX25ldykgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNhc2UgMjogeyB2b2xhdGlsZSB1MTYgKl9f
cHRyID0gKHZvbGF0aWxlIHUxNiAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUoIi5w
dXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYg
LSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hndyAlW25l
d10sICVbcHRyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4iIDog
Ij1AY2MiICJ6IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIgKF9f
b2xkKSA6IFtuZXddICJyIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDQ6IHsg
dm9sYXRpbGUgdTMyICpfX3B0ciA9ICh2b2xhdGlsZSB1MzIgKikoKCgmdi0+Y291bnRlcikpKTsg
YXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0
XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsg
IiAiY21weGNoZ2wgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2Rl
ICIgInoiICIqL1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBbcHRyXSAiK20iICgqX19wdHIp
LCBbb2xkXSAiK2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IH0gY2FzZSA4OiB7IHZvbGF0aWxlIHU2NCAqX19wdHIgPSAodm9sYXRpbGUgdTY0ICopKCgo
JnYtPmNvdW50ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJh
XCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2
NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdxICVbbmV3XSwgJVtwdHJdIiAiXG5cdC8qIG91dHB1
dCBjb25kaXRpb24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChzdWNjZXNzKSwgW3B0
cl0gIittIiAoKl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10gInIiIChfX25ldykg
OiAibWVtb3J5Iik7IGJyZWFrOyB9IGRlZmF1bHQ6IF9fY21weGNoZ193cm9uZ19zaXplKCk7IH0g
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIXN1Y2Nlc3MpLCAwKSkgKl9vbGQgPSBfX29sZDsgX19i
dWlsdGluX2V4cGVjdCghIShzdWNjZXNzKSwgMSk7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYXJjaF9hdG9taWNfeGNo
ZyhhdG9taWNfdCAqdiwgaW50IG5ldykKewogcmV0dXJuICh7IF9fdHlwZW9mX18gKCooKCZ2LT5j
b3VudGVyKSkpIF9fcmV0ID0gKChuZXcpKTsgc3dpdGNoIChzaXplb2YoKigoJnYtPmNvdW50ZXIp
KSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitx
IiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIity
IiAoX19yZXQpLCAiK20iICgqKCgmdi0+Y291bnRlcikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJxICVxMCwgJTFcbiIgOiAiK3Ii
IChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJy
ZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdfc2l6ZSgpOyB9IF9fcmV0OyB9KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
cmNoX2F0b21pY19hbmQoaW50IGksIGF0b21pY190ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5wdXNo
c2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAu
XG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJhbmRsICUxLCUwIgogICA6
ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImlyIiAoaSkKICAgOiAibWVtb3J5Iik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBh
cmNoX2F0b21pY19mZXRjaF9hbmQoaW50IGksIGF0b21pY190ICp2KQp7CiBpbnQgdmFsID0gYXJj
aF9hdG9taWNfcmVhZCh2KTsKCiBkbyB7IH0gd2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNo
Zyh2LCAmdmFsLCB2YWwgJiBpKSk7CgogcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2F0b21pY19v
cihpbnQgaSwgYXRvbWljX3QgKnYpCnsKIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBf
bG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0
aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgIm9ybCAlMSwlMCIKICAgOiAiK20iICh2LT5jb3Vu
dGVyKQogICA6ICJpciIgKGkpCiAgIDogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgYXJjaF9hdG9taWNfZmV0
Y2hfb3IoaW50IGksIGF0b21pY190ICp2KQp7CiBpbnQgdmFsID0gYXJjaF9hdG9taWNfcmVhZCh2
KTsKCiBkbyB7IH0gd2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNoZyh2LCAmdmFsLCB2YWwg
fCBpKSk7CgogcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2F0b21pY194b3IoaW50IGksIGF0b21p
Y190ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4i
ICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIg
IlxuXHRsb2NrOyAiICJ4b3JsICUxLCUwIgogICA6ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImly
IiAoaSkKICAgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBhcmNoX2F0b21pY19mZXRjaF94b3IoaW50IGks
IGF0b21pY190ICp2KQp7CiBpbnQgdmFsID0gYXJjaF9hdG9taWNfcmVhZCh2KTsKCiBkbyB7IH0g
d2hpbGUgKCFhcmNoX2F0b21pY190cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgXiBpKSk7CgogcmV0
dXJuIHZhbDsKfQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0Lmgi
IDEKIyAyMCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgYXJjaF9h
dG9taWM2NF9yZWFkKGNvbnN0IGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiAoeyB1bmlvbiB7IHR5
cGVvZigodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3Jl
YWRfb25jZV9zaXplKCYoKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKCh2KS0+Y291bnRl
cikpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCh2KS0+Y291bnRlciksIF9fdS5f
X2MsIHNpemVvZigodiktPmNvdW50ZXIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9
KTsKfQojIDMyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJj
aF9hdG9taWM2NF9zZXQoYXRvbWljNjRfdCAqdiwgczY0IGkpCnsKICh7IHVuaW9uIHsgdHlwZW9m
KHYtPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlw
ZW9mKHYtPmNvdW50ZXIpKSAoaSkgfTsgX193cml0ZV9vbmNlX3NpemUoJih2LT5jb3VudGVyKSwg
X191Ll9fYywgc2l6ZW9mKHYtPmNvdW50ZXIpKTsgX191Ll9fdmFsOyB9KTsKfQojIDQ0ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgdm9pZCBhcmNoX2F0b21pYzY0X2FkZChzNjQgaSwgYXRvbWljNjRfdCAqdikK
ewogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiYWRkcSAlMSwlMCIKICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKICAgICAgIDogImVy
IiAoaSksICJtIiAodi0+Y291bnRlcikgOiAibWVtb3J5Iik7Cn0KIyA1OCAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfYXRvbWljNjRfc3ViKHM2NCBpLCBh
dG9taWM2NF90ICp2KQp7CiBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwi
YVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAi
NjcxOiIgIlxuXHRsb2NrOyAiICJzdWJxICUxLCUwIgogICAgICAgOiAiPW0iICh2LT5jb3VudGVy
KQogICAgICAgOiAiZXIiIChpKSwgIm0iICh2LT5jb3VudGVyKSA6ICJtZW1vcnkiKTsKfQojIDc0
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYXJjaF9hdG9taWM2
NF9zdWJfYW5kX3Rlc3QoczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiAoeyBib29sIGM7
IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWdu
IDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2Nr
OyAiICJzdWJxIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAo
YykgOiBbdmFsXSAiZXIiIChpKSA6ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyA4NiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgYXJjaF9hdG9taWM2NF9pbmMoYXRvbWljNjRfdCAqdikKewogYXNtIHZvbGF0
aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiaW5jcSAl
MCIKICAgICAgIDogIj1tIiAodi0+Y291bnRlcikKICAgICAgIDogIm0iICh2LT5jb3VudGVyKSA6
ICJtZW1vcnkiKTsKfQojIDEwMCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYXJjaF9hdG9taWM2NF9k
ZWMoYXRvbWljNjRfdCAqdikKewogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2Nr
cyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25c
biIgIjY3MToiICJcblx0bG9jazsgIiAiZGVjcSAlMCIKICAgICAgIDogIj1tIiAodi0+Y291bnRl
cikKICAgICAgIDogIm0iICh2LT5jb3VudGVyKSA6ICJtZW1vcnkiKTsKfQojIDExNiAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGFyY2hfYXRvbWljNjRfZGVjX2Fu
ZF90ZXN0KGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAo
Ii5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3
MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJkZWNxIiAiICIg
IiVbdmFyXSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAiZSIgIiovXG4iIDogW3Zh
cl0gIittIiAodi0+Y291bnRlciksICI9QGNjIiAiZSIgKGMpIDogOiAibWVtb3J5Iik7IGM7IH0p
Owp9CiMgMTMwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0XzY0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYXJj
aF9hdG9taWM2NF9pbmNfYW5kX3Rlc3QoYXRvbWljNjRfdCAqdikKewogcmV0dXJuICh7IGJvb2wg
YzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxp
Z24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxv
Y2s7ICIgImluY3EiICIgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAi
ICJlIiAiKi9cbiIgOiBbdmFyXSAiK20iICh2LT5jb3VudGVyKSwgIj1AY2MiICJlIiAoYykgOiA6
ICJtZW1vcnkiKTsgYzsgfSk7Cn0KIyAxNDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXRvbWlj
NjRfNjQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBhcmNoX2F0b21pYzY0X2FkZF9uZWdhdGl2ZShzNjQgaSwgYXRvbWljNjRf
dCAqdikKewogcmV0dXJuICh7IGJvb2wgYzsgYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5z
bXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3Bz
ZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFkZHEiICIgJVt2YWxdLCAiICIlW3Zhcl0i
ICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInMiICIqL1xuIiA6IFt2YXJdICIrbSIg
KHYtPmNvdW50ZXIpLCAiPUBjYyIgInMiIChjKSA6IFt2YWxdICJlciIgKGkpIDogIm1lbW9yeSIp
OyBjOyB9KTsKfQojIDE1OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHM2NCBhcmNoX2F0b21pYzY0X2FkZF9y
ZXR1cm4oczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiBpICsgKHsgX190eXBlb2ZfXyAo
KigoKCZ2LT5jb3VudGVyKSkpKSBfX3JldCA9ICgoKGkpKSk7IHN3aXRjaCAoc2l6ZW9mKCooKCgm
di0+Y291bnRlcikpKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNt
cF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNl
Y3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieGFkZCIgImIgJWIwLCAlMVxuIiA6ICIrcSIg
KF9fcmV0KSwgIittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBi
cmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFc
IlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3
MToiICJcblx0bG9jazsgIiAieGFkZCIgIncgJXcwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIitt
IiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0
OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAieGFkZCIgImwgJTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNv
dW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGls
ZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25n
IDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAi
cSAlcTAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDog
OiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hhZGRfd3Jvbmdfc2l6ZSgpOyB9
IF9fcmV0OyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0IGFyY2hfYXRvbWljNjRfc3ViX3JldHVybihzNjQgaSwgYXRvbWlj
NjRfdCAqdikKewogcmV0dXJuIGFyY2hfYXRvbWljNjRfYWRkX3JldHVybigtaSwgdik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2
NCBhcmNoX2F0b21pYzY0X2ZldGNoX2FkZChzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJu
ICh7IF9fdHlwZW9mX18gKCooKCgmdi0+Y291bnRlcikpKSkgX19yZXQgPSAoKChpKSkpOyBzd2l0
Y2ggKHNpemVvZigqKCgoJnYtPmNvdW50ZXIpKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgi
LnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcx
ZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJiICVi
MCwgJTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9u
IC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5w
b3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJ3ICV3MCwgJTFcbiIgOiAi
K3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1vcnkiLCAiY2Mi
KTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3Ms
XCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4i
ICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJsICUwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwg
IittIiAoKigoKCZ2LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJh
bGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0
bG9jazsgIiAieGFkZCIgInEgJXEwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoKCZ2
LT5jb3VudGVyKSkpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgZGVmYXVsdDogX194YWRk
X3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX3N1
YihzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJuICh7IF9fdHlwZW9mX18gKCooKCgmdi0+
Y291bnRlcikpKSkgX19yZXQgPSAoKCgtaSkpKTsgc3dpdGNoIChzaXplb2YoKigoKCZ2LT5jb3Vu
dGVyKSkpKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tz
LFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxu
IiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4YWRkIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQp
LCAiK20iICgqKCgoJnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBj
YXNlIDI6IGFzbSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIu
YmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxu
XHRsb2NrOyAiICJ4YWRkIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKCgo
JnYtPmNvdW50ZXIpKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2
b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4
YWRkIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikp
KSkgOiA6ICJtZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiLnB1
c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAt
IC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgInhhZGQiICJxICVxMCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCgmdi0+Y291bnRlcikpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9feGFkZF93cm9uZ19zaXplKCk7IH0gX19yZXQ7
IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9jbXB4Y2hnKGF0b21pYzY0X3QgKnYsIHM2NCBvbGQs
IHM2NCBuZXcpCnsKIHJldHVybiAoeyBfX3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fcmV0
OyBfX3R5cGVvZl9fKCooKCZ2LT5jb3VudGVyKSkpIF9fb2xkID0gKChvbGQpKTsgX190eXBlb2Zf
XygqKCgmdi0+Y291bnRlcikpKSBfX25ldyA9ICgobmV3KSk7IHN3aXRjaCAoKHNpemVvZigqKCZ2
LT5jb3VudGVyKSkpKSB7IGNhc2UgMTogeyB2b2xhdGlsZSB1OCAqX19wdHIgPSAodm9sYXRpbGUg
dTggKikoKCZ2LT5jb3VudGVyKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9j
a3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9u
XG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImNtcHhjaGdiICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwg
IittIiAoKl9fcHRyKSA6ICJxIiAoX19uZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJl
YWs7IH0gY2FzZSAyOiB7IHZvbGF0aWxlIHUxNiAqX19wdHIgPSAodm9sYXRpbGUgdTE2ICopKCgm
di0+Y291bnRlcikpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwi
XG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcx
OiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hndyAlMiwlMSIgOiAiPWEiIChfX3JldCksICIrbSIgKCpf
X3B0cikgOiAiciIgKF9fbmV3KSwgIjAiIChfX29sZCkgOiAibWVtb3J5Iik7IGJyZWFrOyB9IGNh
c2UgNDogeyB2b2xhdGlsZSB1MzIgKl9fcHRyID0gKHZvbGF0aWxlIHUzMiAqKSgoJnYtPmNvdW50
ZXIpKTsgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJh
bGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0
bG9jazsgIiAiY21weGNoZ2wgJTIsJTEiIDogIj1hIiAoX19yZXQpLCAiK20iICgqX19wdHIpIDog
InIiIChfX25ldyksICIwIiAoX19vbGQpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDg6IHsg
dm9sYXRpbGUgdTY0ICpfX3B0ciA9ICh2b2xhdGlsZSB1NjQgKikoKCZ2LT5jb3VudGVyKSk7IGFz
bSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxu
IiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIg
ImNtcHhjaGdxICUyLCUxIiA6ICI9YSIgKF9fcmV0KSwgIittIiAoKl9fcHRyKSA6ICJyIiAoX19u
ZXcpLCAiMCIgKF9fb2xkKSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gZGVmYXVsdDogX19jbXB4Y2hn
X3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGJvb2wgYXJjaF9hdG9taWM2NF90cnlfY21weGNoZyhhdG9taWM2NF90ICp2LCBz
NjQgKm9sZCwgczY0IG5ldykKewogcmV0dXJuICh7IGJvb2wgc3VjY2VzczsgX190eXBlb2ZfXygo
KCZ2LT5jb3VudGVyKSkpIF9vbGQgPSAoX190eXBlb2ZfXygoKCZ2LT5jb3VudGVyKSkpKSgoKG9s
ZCkpKTsgX190eXBlb2ZfXygqKCgoJnYtPmNvdW50ZXIpKSkpIF9fb2xkID0gKl9vbGQ7IF9fdHlw
ZW9mX18oKigoKCZ2LT5jb3VudGVyKSkpKSBfX25ldyA9ICgoKG5ldykpKTsgc3dpdGNoICgoc2l6
ZW9mKCooJnYtPmNvdW50ZXIpKSkpIHsgY2FzZSAxOiB7IHZvbGF0aWxlIHU4ICpfX3B0ciA9ICh2
b2xhdGlsZSB1OCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlv
biAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIu
cG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hnYiAlW25ld10sICVbcHRy
XSIgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4iIDogIj1AY2MiICJ6
IiAoc3VjY2VzcyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIgKF9fb2xkKSA6IFtu
ZXddICJxIiAoX19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBjYXNlIDI6IHsgdm9sYXRpbGUg
dTE2ICpfX3B0ciA9ICh2b2xhdGlsZSB1MTYgKikoKCgmdi0+Y291bnRlcikpKTsgYXNtIHZvbGF0
aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiY21weGNo
Z3cgJVtuZXddLCAlW3B0cl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBjb2RlICIgInoiICIq
L1xuIiA6ICI9QGNjIiAieiIgKHN1Y2Nlc3MpLCBbcHRyXSAiK20iICgqX19wdHIpLCBbb2xkXSAi
K2EiIChfX29sZCkgOiBbbmV3XSAiciIgKF9fbmV3KSA6ICJtZW1vcnkiKTsgYnJlYWs7IH0gY2Fz
ZSA0OiB7IHZvbGF0aWxlIHUzMiAqX19wdHIgPSAodm9sYXRpbGUgdTMyICopKCgoJnYtPmNvdW50
ZXIpKSk7IGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5i
YWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5c
dGxvY2s7ICIgImNtcHhjaGdsICVbbmV3XSwgJVtwdHJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRp
b24gY29kZSAiICJ6IiAiKi9cbiIgOiAiPUBjYyIgInoiIChzdWNjZXNzKSwgW3B0cl0gIittIiAo
Kl9fcHRyKSwgW29sZF0gIithIiAoX19vbGQpIDogW25ld10gInIiIChfX25ldykgOiAibWVtb3J5
Iik7IGJyZWFrOyB9IGNhc2UgODogeyB2b2xhdGlsZSB1NjQgKl9fcHRyID0gKHZvbGF0aWxlIHU2
NCAqKSgoKCZ2LT5jb3VudGVyKSkpOyBhc20gdm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xv
Y2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlv
blxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJjbXB4Y2hncSAlW25ld10sICVbcHRyXSIgIlxuXHQv
KiBvdXRwdXQgY29uZGl0aW9uIGNvZGUgIiAieiIgIiovXG4iIDogIj1AY2MiICJ6IiAoc3VjY2Vz
cyksIFtwdHJdICIrbSIgKCpfX3B0ciksIFtvbGRdICIrYSIgKF9fb2xkKSA6IFtuZXddICJyIiAo
X19uZXcpIDogIm1lbW9yeSIpOyBicmVhazsgfSBkZWZhdWx0OiBfX2NtcHhjaGdfd3Jvbmdfc2l6
ZSgpOyB9IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFzdWNjZXNzKSwgMCkpICpfb2xkID0gX19v
bGQ7IF9fYnVpbHRpbl9leHBlY3QoISEoc3VjY2VzcyksIDEpOyB9KTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGFyY2hfYXRv
bWljNjRfeGNoZyhhdG9taWM2NF90ICp2LCBzNjQgbmV3KQp7CiByZXR1cm4gKHsgX190eXBlb2Zf
XyAoKigoJnYtPmNvdW50ZXIpKSkgX19yZXQgPSAoKG5ldykpOyBzd2l0Y2ggKHNpemVvZigqKCgm
di0+Y291bnRlcikpKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJiICViMCwg
JTFcbiIgOiAiK3EiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5
IiwgImNjIik7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJ3ICV3MCwg
JTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKCZ2LT5jb3VudGVyKSkpIDogOiAibWVtb3J5
IiwgImNjIik7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIiIgInhjaGciICJsICUwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnki
LCAiY2MiKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIgInEgJXEwLCAl
MVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoJnYtPmNvdW50ZXIpKSkgOiA6ICJtZW1vcnki
LCAiY2MiKTsgYnJlYWs7IGRlZmF1bHQ6IF9feGNoZ193cm9uZ19zaXplKCk7IH0gX19yZXQ7IH0p
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFyY2hfYXRvbWljNjRfYW5kKHM2NCBpLCBhdG9taWM2NF90ICp2KQp7CiBhc20g
dm9sYXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIg
Ii5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJh
bmRxICUxLCUwIgogICA6ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImVyIiAoaSkKICAgOiAibWVt
b3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX2FuZChzNjQgaSwgYXRvbWljNjRfdCAq
dikKewogczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiB9IHdoaWxlICgh
YXJjaF9hdG9taWM2NF90cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgJiBpKSk7CiByZXR1cm4gdmFs
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFyY2hfYXRvbWljNjRfb3IoczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIGFzbSB2
b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAi
LmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgIm9y
cSAlMSwlMCIKICAgOiAiK20iICh2LT5jb3VudGVyKQogICA6ICJlciIgKGkpCiAgIDogIm1lbW9y
eSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBzNjQgYXJjaF9hdG9taWM2NF9mZXRjaF9vcihzNjQgaSwgYXRvbWljNjRfdCAqdikK
ewogczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiB9IHdoaWxlICghYXJj
aF9hdG9taWM2NF90cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgfCBpKSk7CiByZXR1cm4gdmFsOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGFyY2hfYXRvbWljNjRfeG9yKHM2NCBpLCBhdG9taWM2NF90ICp2KQp7CiBhc20gdm9s
YXRpbGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICJ4b3Jx
ICUxLCUwIgogICA6ICIrbSIgKHYtPmNvdW50ZXIpCiAgIDogImVyIiAoaSkKICAgOiAibWVtb3J5
Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHM2NCBhcmNoX2F0b21pYzY0X2ZldGNoX3hvcihzNjQgaSwgYXRvbWljNjRfdCAqdikK
ewogczY0IHZhbCA9IGFyY2hfYXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiB9IHdoaWxlICghYXJj
aF9hdG9taWM2NF90cnlfY21weGNoZyh2LCAmdmFsLCB2YWwgXiBpKSk7CiByZXR1cm4gdmFsOwp9
CiMgMjYzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYy5oIiAyCgoKIyAxICIuL2luY2x1
ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIiAxCiMgMjAgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2J1
aWxkX2J1Zy5oIiAxCiMgMjEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVu
dGVkLmgiIDIKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQKYXRvbWljX3JlYWQoY29uc3QgYXRvbWljX3QgKnYpCnsKIGthc2FuX2No
ZWNrX3JlYWQodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfcmVhZCh2KTsKfQoj
IDQxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0
b21pY19zZXQoYXRvbWljX3QgKnYsIGludCBpKQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXpl
b2YoKnYpKTsKIGFyY2hfYXRvbWljX3NldCh2LCBpKTsKfQojIDU5ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY19hZGQoaW50IGksIGF0b21p
Y190ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWlj
X2FkZChpLCB2KTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2FkZF9yZXR1cm4oaW50IGksIGF0b21pY190ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21p
Y19hZGRfcmV0dXJuKGksIHYpOwp9CiMgMTA4ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWlj
LWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX2FkZChpbnQgaSwgYXRvbWljX3QgKnYp
CnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWlj
X2ZldGNoX2FkZChpLCB2KTsKfQojIDE0NyAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1p
bnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfc3ViKGludCBpLCBhdG9taWNfdCAqdikKewoga2Fz
YW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBhcmNoX2F0b21pY19zdWIoaSwgdik7Cn0K
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50CmF0b21pY19zdWJfcmV0dXJuKGludCBpLCBhdG9taWNfdCAqdikKewoga2FzYW5fY2hl
Y2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfc3ViX3JldHVybihp
LCB2KTsKfQojIDE5NiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50CmF0b21pY19mZXRjaF9zdWIoaW50IGksIGF0b21pY190ICp2KQp7CiBrYXNhbl9jaGVj
a193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21pY19mZXRjaF9zdWIoaSwg
dik7Cn0KIyAyMzYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQKYXRvbWljX2luYyhhdG9taWNfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6
ZW9mKCp2KSk7CiBhcmNoX2F0b21pY19pbmModik7Cn0KIyAzMjYgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljX2RlYyhhdG9taWNfdCAqdikK
ewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBhcmNoX2F0b21pY19kZWModik7
Cn0KIyA0MTUgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQKYXRvbWljX2FuZChpbnQgaSwgYXRvbWljX3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYs
IHNpemVvZigqdikpOwogYXJjaF9hdG9taWNfYW5kKGksIHYpOwp9CgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfZmV0
Y2hfYW5kKGludCBpLCBhdG9taWNfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9m
KCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfZmV0Y2hfYW5kKGksIHYpOwp9CiMgNTEzICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY19vcihp
bnQgaSwgYXRvbWljX3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwog
YXJjaF9hdG9taWNfb3IoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9vcihpbnQgaSwgYXRv
bWljX3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFy
Y2hfYXRvbWljX2ZldGNoX29yKGksIHYpOwp9CiMgNTYxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
YXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY194b3IoaW50IGksIGF0b21pY190ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWljX3hvcihp
LCB2KTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX3hvcihpbnQgaSwgYXRvbWljX3QgKnYpCnsKIGth
c2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWljX2ZldGNo
X3hvcihpLCB2KTsKfQojIDYxMCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVt
ZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50CmF0b21pY194Y2hnKGF0b21pY190ICp2LCBpbnQgaSkKewoga2FzYW5fY2hl
Y2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9taWNfeGNoZyh2LCBpKTsK
fQojIDY1MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
CmF0b21pY19jbXB4Y2hnKGF0b21pY190ICp2LCBpbnQgb2xkLCBpbnQgbmV3KQp7CiBrYXNhbl9j
aGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21pY19jbXB4Y2hnKHYs
IG9sZCwgbmV3KTsKfQojIDY5MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVt
ZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbAphdG9taWNfdHJ5X2NtcHhjaGcoYXRvbWljX3QgKnYsIGludCAqb2xkLCBp
bnQgbmV3KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGthc2FuX2NoZWNr
X3dyaXRlKG9sZCwgc2l6ZW9mKCpvbGQpKTsKIHJldHVybiBhcmNoX2F0b21pY190cnlfY21weGNo
Zyh2LCBvbGQsIG5ldyk7Cn0KIyA3MzQgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5z
dHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX3N1Yl9hbmRfdGVzdChpbnQgaSwgYXRvbWljX3QgKnYp
CnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWlj
X3N1Yl9hbmRfdGVzdChpLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAphdG9taWNfZGVjX2FuZF90ZXN0KGF0b21p
Y190ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNo
X2F0b21pY19kZWNfYW5kX3Rlc3Qodik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2luY19hbmRfdGVzdChh
dG9taWNfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWNfaW5jX2FuZF90ZXN0KHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19hZGRfbmVnYXRp
dmUoaW50IGksIGF0b21pY190ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYp
KTsKIHJldHVybiBhcmNoX2F0b21pY19hZGRfbmVnYXRpdmUoaSwgdik7Cn0KIyA4MzMgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9yZWFk
KGNvbnN0IGF0b21pYzY0X3QgKnYpCnsKIGthc2FuX2NoZWNrX3JlYWQodiwgc2l6ZW9mKCp2KSk7
CiByZXR1cm4gYXJjaF9hdG9taWM2NF9yZWFkKHYpOwp9CiMgODUxICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X3NldChhdG9taWM2NF90
ICp2LCBzNjQgaSkKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBhcmNoX2F0
b21pYzY0X3NldCh2LCBpKTsKfQojIDg2OSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1p
bnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWM2NF9hZGQoczY0IGksIGF0b21pYzY0X3QgKnYpCnsK
IGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogYXJjaF9hdG9taWM2NF9hZGQoaSwg
dik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgczY0CmF0b21pYzY0X2FkZF9yZXR1cm4oczY0IGksIGF0b21pYzY0X3QgKnYpCnsK
IGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWljNjRf
YWRkX3JldHVybihpLCB2KTsKfQojIDkxOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1p
bnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2FkZChzNjQgaSwgYXRvbWljNjRfdCAq
dikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4gYXJjaF9hdG9t
aWM2NF9mZXRjaF9hZGQoaSwgdik7Cn0KIyA5NTcgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9t
aWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljNjRfc3ViKHM2NCBpLCBhdG9taWM2NF90ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWljNjRfc3Vi
KGksIHYpOwp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9zdWJfcmV0dXJuKHM2NCBpLCBhdG9taWM2NF90ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21p
YzY0X3N1Yl9yZXR1cm4oaSwgdik7Cn0KIyAxMDA2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRv
bWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfZmV0Y2hfc3ViKHM2NCBpLCBhdG9taWM2
NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNo
X2F0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKfQojIDEwNDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljNjRfaW5jKGF0b21pYzY0X3QgKnYp
CnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogYXJjaF9hdG9taWM2NF9pbmMo
dik7Cn0KIyAxMTM2ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkCmF0b21pYzY0X2RlYyhhdG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2
LCBzaXplb2YoKnYpKTsKIGFyY2hfYXRvbWljNjRfZGVjKHYpOwp9CiMgMTIyNSAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWM2NF9hbmQoczY0
IGksIGF0b21pYzY0X3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwog
YXJjaF9hdG9taWM2NF9hbmQoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2FuZChzNjQg
aSwgYXRvbWljNjRfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiBy
ZXR1cm4gYXJjaF9hdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7Cn0KIyAxMzIzICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X29yKHM2NCBp
LCBhdG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIGFy
Y2hfYXRvbWljNjRfb3IoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX29yKHM2NCBpLCBh
dG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVy
biBhcmNoX2F0b21pYzY0X2ZldGNoX29yKGksIHYpOwp9CiMgMTM3MSAiLi9pbmNsdWRlL2FzbS1n
ZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWM2NF94b3IoczY0IGksIGF0
b21pYzY0X3QgKnYpCnsKIGthc2FuX2NoZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogYXJjaF9h
dG9taWM2NF94b3IoaSwgdik7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX3hvcihzNjQgaSwgYXRv
bWljNjRfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWM2NF9mZXRjaF94b3IoaSwgdik7Cn0KIyAxNDIwICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvYXRvbWljLWluc3RydW1lbnRlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfeGNoZyhhdG9taWM2NF90
ICp2LCBzNjQgaSkKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWM2NF94Y2hnKHYsIGkpOwp9CiMgMTQ2MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmlj
L2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2NtcHhjaGcoYXRvbWljNjRfdCAq
diwgczY0IG9sZCwgczY0IG5ldykKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7
CiByZXR1cm4gYXJjaF9hdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3KTsKfQojIDE1MDAgIi4v
aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRf
dHJ5X2NtcHhjaGcoYXRvbWljNjRfdCAqdiwgczY0ICpvbGQsIHM2NCBuZXcpCnsKIGthc2FuX2No
ZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwoga2FzYW5fY2hlY2tfd3JpdGUob2xkLCBzaXplb2Yo
Km9sZCkpOwogcmV0dXJuIGFyY2hfYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgb2xkLCBuZXcpOwp9
CiMgMTU0NCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1pbnN0cnVtZW50ZWQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bAphdG9taWM2NF9zdWJfYW5kX3Rlc3QoczY0IGksIGF0b21pYzY0X3QgKnYpCnsKIGthc2FuX2No
ZWNrX3dyaXRlKHYsIHNpemVvZigqdikpOwogcmV0dXJuIGFyY2hfYXRvbWljNjRfc3ViX2FuZF90
ZXN0KGksIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pYzY0X2RlY19hbmRfdGVzdChhdG9taWM2NF90ICp2
KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXplb2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21p
YzY0X2RlY19hbmRfdGVzdCh2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAphdG9taWM2NF9pbmNfYW5kX3Rlc3QoYXRv
bWljNjRfdCAqdikKewoga2FzYW5fY2hlY2tfd3JpdGUodiwgc2l6ZW9mKCp2KSk7CiByZXR1cm4g
YXJjaF9hdG9taWM2NF9pbmNfYW5kX3Rlc3Qodik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRfYWRkX25l
Z2F0aXZlKHM2NCBpLCBhdG9taWM2NF90ICp2KQp7CiBrYXNhbl9jaGVja193cml0ZSh2LCBzaXpl
b2YoKnYpKTsKIHJldHVybiBhcmNoX2F0b21pYzY0X2FkZF9uZWdhdGl2ZShpLCB2KTsKfQojIDI2
NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWMuaCIgMgojIDggIi4vaW5jbHVkZS9saW51
eC9hdG9taWMuaCIgMgojIDc0ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLmgiCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIiAxCiMgNzkgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19yZWFkX2FjcXVpcmUoY29uc3QgYXRvbWljX3QgKnYp
CnsKIHJldHVybiAoeyB0eXBlb2YoKiYodiktPmNvdW50ZXIpIF9fX3AxID0gKHsgdW5pb24geyB0
eXBlb2YoKiYodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBf
X3JlYWRfb25jZV9zaXplKCYoKiYodiktPmNvdW50ZXIpLCBfX3UuX19jLCBzaXplb2YoKiYodikt
PmNvdW50ZXIpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigqJih2KS0+Y291bnRl
ciksIF9fdS5fX2MsIHNpemVvZigqJih2KS0+Y291bnRlcikpOyBkbyB7IH0gd2hpbGUgKDApOyBf
X3UuX192YWw7IH0pOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzgyKHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9y
ZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKHYpLT5jb3VudGVy
KSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9PSBzaXplb2Yoc2hv
cnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCom
KHYpLT5jb3VudGVyKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfODIo
KTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IF9f
X3AxOyB9KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfc2V0X3JlbGVhc2UoYXRvbWljX3QgKnYsIGludCBp
KQp7CiBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfOTEodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9s
b2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYodiktPmNvdW50ZXIpID09
IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihzaG9ydCkg
fHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYodikt
PmNvdW50ZXIpID09IHNpemVvZihsb25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF85MSgpOyB9
IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5p
b24geyB0eXBlb2YoKiYodiktPmNvdW50ZXIpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKComKHYpLT5jb3VudGVyKSkgKGkpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoKiYodiktPmNvdW50ZXIpLCBfX3UuX19jLCBzaXplb2YoKiYodiktPmNvdW50ZXIpKTsg
X191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7Cn0KIyAyODEgIi4vaW5jbHVkZS9saW51eC9hdG9t
aWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19pbmNfcmV0dXJuKGF0b21pY190ICp2KQp7CiByZXR1
cm4gYXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfaW5jX3JldHVybl9h
Y3F1aXJlKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0K
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludAphdG9taWNfaW5jX3JldHVybl9yZWxlYXNlKGF0b21pY190ICp2KQp7CiByZXR1cm4g
YXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfaW5jX3JldHVybl9yZWxh
eGVkKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWljX2FkZF9yZXR1cm4oMSwgdik7Cn0KIyAz
NjIgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9p
bmMoYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYWRkKDEsIHYpOwp9CgoKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQKYXRvbWljX2ZldGNoX2luY19hY3F1aXJlKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWlj
X2ZldGNoX2FkZCgxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9pbmNfcmVsZWFzZShhdG9t
aWNfdCAqdikKewogcmV0dXJuIGF0b21pY19mZXRjaF9hZGQoMSwgdik7Cn0KCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9t
aWNfZmV0Y2hfaW5jX3JlbGF4ZWQoYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hf
YWRkKDEsIHYpOwp9CiMgNDUyICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dAphdG9taWNfZGVjX3JldHVybihhdG9taWNfdCAqdikKewogcmV0dXJuIGF0b21pY19zdWJfcmV0
dXJuKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2RlY19yZXR1cm5fYWNxdWlyZShhdG9taWNfdCAq
dikKewogcmV0dXJuIGF0b21pY19zdWJfcmV0dXJuKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2Rl
Y19yZXR1cm5fcmVsZWFzZShhdG9taWNfdCAqdikKewogcmV0dXJuIGF0b21pY19zdWJfcmV0dXJu
KDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2RlY19yZXR1cm5fcmVsYXhlZChhdG9taWNfdCAqdikK
ewogcmV0dXJuIGF0b21pY19zdWJfcmV0dXJuKDEsIHYpOwp9CiMgNTMzICIuL2luY2x1ZGUvbGlu
dXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAphdG9taWNfZmV0Y2hfZGVjKGF0b21pY190ICp2KQp7
CiByZXR1cm4gYXRvbWljX2ZldGNoX3N1YigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9k
ZWNfYWNxdWlyZShhdG9taWNfdCAqdikKewogcmV0dXJuIGF0b21pY19mZXRjaF9zdWIoMSwgdik7
Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludAphdG9taWNfZmV0Y2hfZGVjX3JlbGVhc2UoYXRvbWljX3QgKnYpCnsKIHJldHVy
biBhdG9taWNfZmV0Y2hfc3ViKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX2RlY19yZWxh
eGVkKGF0b21pY190ICp2KQp7CiByZXR1cm4gYXRvbWljX2ZldGNoX3N1YigxLCB2KTsKfQojIDY0
OSAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pY19hbmRub3Qo
aW50IGksIGF0b21pY190ICp2KQp7CiBhdG9taWNfYW5kKH5pLCB2KTsKfQojIDY2NSAiLi9pbmNs
dWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWljX2ZldGNoX2FuZG5vdChpbnQg
aSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYW5kKH5pLCB2KTsKfQoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50CmF0b21pY19mZXRjaF9hbmRub3RfYWNxdWlyZShpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJl
dHVybiBhdG9taWNfZmV0Y2hfYW5kKH5pLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9hbmRu
b3RfcmVsZWFzZShpbnQgaSwgYXRvbWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYW5k
KH5pLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9hbmRub3RfcmVsYXhlZChpbnQgaSwgYXRv
bWljX3QgKnYpCnsKIHJldHVybiBhdG9taWNfZmV0Y2hfYW5kKH5pLCB2KTsKfQojIDEwODMgIi4v
aW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmF0b21pY19mZXRjaF9hZGRfdW5s
ZXNzKGF0b21pY190ICp2LCBpbnQgYSwgaW50IHUpCnsKIGludCBjID0gYXRvbWljX3JlYWQodik7
CgogZG8gewogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGMgPT0gdSksIDApKQogICBicmVhazsK
IH0gd2hpbGUgKCFhdG9taWNfdHJ5X2NtcHhjaGcodiwgJmMsIGMgKyBhKSk7CgogcmV0dXJuIGM7
Cn0KIyAxMTA4ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWlj
X2FkZF91bmxlc3MoYXRvbWljX3QgKnYsIGludCBhLCBpbnQgdSkKewogcmV0dXJuIGF0b21pY19m
ZXRjaF9hZGRfdW5sZXNzKHYsIGEsIHUpICE9IHU7Cn0KIyAxMTI0ICIuL2luY2x1ZGUvbGludXgv
YXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2luY19ub3RfemVybyhhdG9taWNfdCAqdikK
ewogcmV0dXJuIGF0b21pY19hZGRfdW5sZXNzKHYsIDEsIDApOwp9CgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19p
bmNfdW5sZXNzX25lZ2F0aXZlKGF0b21pY190ICp2KQp7CiBpbnQgYyA9IGF0b21pY19yZWFkKHYp
OwoKIGRvIHsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShjIDwgMCksIDApKQogICByZXR1cm4g
ZmFsc2U7CiB9IHdoaWxlICghYXRvbWljX3RyeV9jbXB4Y2hnKHYsICZjLCBjICsgMSkpOwoKIHJl
dHVybiB0cnVlOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19kZWNfdW5sZXNzX3Bvc2l0aXZlKGF0b21pY190
ICp2KQp7CiBpbnQgYyA9IGF0b21pY19yZWFkKHYpOwoKIGRvIHsKICBpZiAoX19idWlsdGluX2V4
cGVjdCghIShjID4gMCksIDApKQogICByZXR1cm4gZmFsc2U7CiB9IHdoaWxlICghYXRvbWljX3Ry
eV9jbXB4Y2hnKHYsICZjLCBjIC0gMSkpOwoKIHJldHVybiB0cnVlOwp9CgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKYXRvbWlj
X2RlY19pZl9wb3NpdGl2ZShhdG9taWNfdCAqdikKewogaW50IGRlYywgYyA9IGF0b21pY19yZWFk
KHYpOwoKIGRvIHsKICBkZWMgPSBjIC0gMTsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShkZWMg
PCAwKSwgMCkpCiAgIGJyZWFrOwogfSB3aGlsZSAoIWF0b21pY190cnlfY21weGNoZyh2LCAmYywg
ZGVjKSk7CgogcmV0dXJuIGRlYzsKfQojIDExODkgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFs
bGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgczY0CmF0b21pYzY0X3JlYWRfYWNxdWlyZShjb25zdCBhdG9taWM2NF90ICp2KQp7
CiByZXR1cm4gKHsgdHlwZW9mKComKHYpLT5jb3VudGVyKSBfX19wMSA9ICh7IHVuaW9uIHsgdHlw
ZW9mKComKHYpLT5jb3VudGVyKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19y
ZWFkX29uY2Vfc2l6ZSgmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5j
b3VudGVyKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKiYodiktPmNvdW50ZXIp
LCBfX3UuX19jLCBzaXplb2YoKiYodiktPmNvdW50ZXIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191
Ll9fdmFsOyB9KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xMTkyKHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9y
ZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComKHYpLT5jb3VudGVy
KSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKHYpLT5jb3VudGVyKSA9PSBzaXplb2Yoc2hv
cnQpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCom
KHYpLT5jb3VudGVyKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfMTE5
MigpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsg
X19fcDE7IH0pOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X3NldF9yZWxlYXNlKGF0b21pYzY0X3QgKnYs
IHM2NCBpKQp7CiBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMTIw
MSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQg
c3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJih2KS0+Y291
bnRlcikgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9m
KHNob3J0KSB8fCBzaXplb2YoKiYodiktPmNvdW50ZXIpID09IHNpemVvZihpbnQpIHx8IHNpemVv
ZigqJih2KS0+Y291bnRlcikgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0
XzEyMDEoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5
Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComKHYpLT5jb3VudGVyKSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJih2KS0+Y291bnRlcikpIChpKSB9OyBfX3dy
aXRlX29uY2Vfc2l6ZSgmKComKHYpLT5jb3VudGVyKSwgX191Ll9fYywgc2l6ZW9mKComKHYpLT5j
b3VudGVyKSk7IF9fdS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOwp9CiMgMTM5MSAiLi9pbmNsdWRl
L2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfaW5jX3JldHVybihhdG9taWM2
NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfYWRkX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0
b21pYzY0X2luY19yZXR1cm5fYWNxdWlyZShhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfYWRkX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2luY19yZXR1cm5fcmVsZWFz
ZShhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfYWRkX3JldHVybigxLCB2KTsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0CmF0b21pYzY0X2luY19yZXR1cm5fcmVsYXhlZChhdG9taWM2NF90ICp2KQp7CiByZXR1
cm4gYXRvbWljNjRfYWRkX3JldHVybigxLCB2KTsKfQojIDE0NzIgIi4vaW5jbHVkZS9saW51eC9h
dG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2luYyhhdG9taWM2NF90ICp2KQp7
CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYWRkKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfZmV0
Y2hfaW5jX2FjcXVpcmUoYXRvbWljNjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2Fk
ZCgxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2luY19yZWxlYXNlKGF0b21pYzY0X3Qg
KnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2
NF9mZXRjaF9pbmNfcmVsYXhlZChhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0
Y2hfYWRkKDEsIHYpOwp9CiMgMTU2MiAiLi9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBzNjQKYXRvbWljNjRfZGVjX3JldHVybihhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfc3ViX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2RlY19yZXR1cm5fYWNxdWly
ZShhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybigxLCB2KTsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgczY0CmF0b21pYzY0X2RlY19yZXR1cm5fcmVsZWFzZShhdG9taWM2NF90ICp2KQp7CiByZXR1
cm4gYXRvbWljNjRfc3ViX3JldHVybigxLCB2KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2RlY19yZXR1
cm5fcmVsYXhlZChhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybigx
LCB2KTsKfQojIDE2NDMgIi4vaW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0
b21pYzY0X2ZldGNoX2RlYyhhdG9taWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hf
c3ViKDEsIHYpOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzNjQKYXRvbWljNjRfZmV0Y2hfZGVjX2FjcXVpcmUoYXRvbWljNjRf
dCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX3N1YigxLCB2KTsKfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21p
YzY0X2ZldGNoX2RlY19yZWxlYXNlKGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9m
ZXRjaF9zdWIoMSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9mZXRjaF9kZWNfcmVsYXhlZChhdG9t
aWM2NF90ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKDEsIHYpOwp9CiMgMTc1OSAi
Li9pbmNsdWRlL2xpbnV4L2F0b21pYy1mYWxsYmFjay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmF0b21pYzY0X2FuZG5vdChz
NjQgaSwgYXRvbWljNjRfdCAqdikKewogYXRvbWljNjRfYW5kKH5pLCB2KTsKfQojIDE3NzUgIi4v
aW5jbHVkZS9saW51eC9hdG9taWMtZmFsbGJhY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0CmF0b21pYzY0X2ZldGNoX2FuZG5v
dChzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZCh+aSwg
dik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHM2NAphdG9taWM2NF9mZXRjaF9hbmRub3RfYWNxdWlyZShzNjQgaSwgYXRvbWlj
NjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZCh+aSwgdik7Cn0KCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAph
dG9taWM2NF9mZXRjaF9hbmRub3RfcmVsZWFzZShzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX2FuZCh+aSwgdik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NAphdG9taWM2NF9mZXRjaF9h
bmRub3RfcmVsYXhlZChzNjQgaSwgYXRvbWljNjRfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2Zl
dGNoX2FuZCh+aSwgdik7Cn0KIyAyMTkzICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNr
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHM2NAphdG9taWM2NF9mZXRjaF9hZGRfdW5sZXNzKGF0b21pYzY0X3QgKnYsIHM2NCBhLCBz
NjQgdSkKewogczY0IGMgPSBhdG9taWM2NF9yZWFkKHYpOwoKIGRvIHsKICBpZiAoX19idWlsdGlu
X2V4cGVjdCghIShjID09IHUpLCAwKSkKICAgYnJlYWs7CiB9IHdoaWxlICghYXRvbWljNjRfdHJ5
X2NtcHhjaGcodiwgJmMsIGMgKyBhKSk7CgogcmV0dXJuIGM7Cn0KIyAyMjE4ICIuL2luY2x1ZGUv
bGludXgvYXRvbWljLWZhbGxiYWNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRfYWRkX3VubGVzcyhhdG9taWM2
NF90ICp2LCBzNjQgYSwgczY0IHUpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGRfdW5sZXNz
KHYsIGEsIHUpICE9IHU7Cn0KIyAyMjM0ICIuL2luY2x1ZGUvbGludXgvYXRvbWljLWZhbGxiYWNr
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wKYXRvbWljNjRfaW5jX25vdF96ZXJvKGF0b21pYzY0X3QgKnYpCnsKIHJldHVybiBh
dG9taWM2NF9hZGRfdW5sZXNzKHYsIDEsIDApOwp9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pYzY0X2luY191bmxl
c3NfbmVnYXRpdmUoYXRvbWljNjRfdCAqdikKewogczY0IGMgPSBhdG9taWM2NF9yZWFkKHYpOwoK
IGRvIHsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShjIDwgMCksIDApKQogICByZXR1cm4gZmFs
c2U7CiB9IHdoaWxlICghYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgJmMsIGMgKyAxKSk7CgogcmV0
dXJuIHRydWU7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljNjRfZGVjX3VubGVzc19wb3NpdGl2ZShhdG9taWM2
NF90ICp2KQp7CiBzNjQgYyA9IGF0b21pYzY0X3JlYWQodik7CgogZG8gewogIGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKGMgPiAwKSwgMCkpCiAgIHJldHVybiBmYWxzZTsKIH0gd2hpbGUgKCFhdG9t
aWM2NF90cnlfY21weGNoZyh2LCAmYywgYyAtIDEpKTsKCiByZXR1cm4gdHJ1ZTsKfQoKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0
CmF0b21pYzY0X2RlY19pZl9wb3NpdGl2ZShhdG9taWM2NF90ICp2KQp7CiBzNjQgZGVjLCBjID0g
YXRvbWljNjRfcmVhZCh2KTsKCiBkbyB7CiAgZGVjID0gYyAtIDE7CiAgaWYgKF9fYnVpbHRpbl9l
eHBlY3QoISEoZGVjIDwgMCksIDApKQogICBicmVhazsKIH0gd2hpbGUgKCFhdG9taWM2NF90cnlf
Y21weGNoZyh2LCAmYywgZGVjKSk7CgogcmV0dXJuIGRlYzsKfQojIDc1ICIuL2luY2x1ZGUvbGlu
dXgvYXRvbWljLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmgi
IDEKIyA5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLWxvbmcuaCIKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKIyAxMCAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmgiIDIKCgp0eXBlZGVmIGF0b21pYzY0X3QgYXRvbWlj
X2xvbmdfdDsKIyAyNSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfcmVhZChjb25zdCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfcmVhZCh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19yZWFkX2FjcXVpcmUoY29uc3QgYXRvbWlj
X2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X3JlYWRfYWNxdWlyZSh2KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAph
dG9taWNfbG9uZ19zZXQoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyBpKQp7CiBhdG9taWM2NF9zZXQo
diwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQKYXRvbWljX2xvbmdfc2V0X3JlbGVhc2UoYXRvbWljX2xvbmdfdCAqdiwg
bG9uZyBpKQp7CiBhdG9taWM2NF9zZXRfcmVsZWFzZSh2LCBpKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfbG9u
Z19hZGQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF9hZGQoaSwgdik7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGxvbmcKYXRvbWljX2xvbmdfYWRkX3JldHVybihsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsK
IHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2Fk
ZF9yZXR1cm5fYWNxdWlyZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9t
aWM2NF9hZGRfcmV0dXJuKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2FkZF9yZXR1cm5fcmVs
ZWFzZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9hZGRfcmV0
dXJuKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2FkZF9yZXR1cm5fcmVsYXhlZChsb25nIGks
IGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9hZGRfcmV0dXJuKGksIHYpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FkZChsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsK
IHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0
Y2hfYWRkX2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfZmV0Y2hfYWRkKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FkZF9yZWxlYXNl
KGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FkZChp
LCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9hZGRfcmVsYXhlZChsb25nIGksIGF0b21p
Y19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hZGQoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
YXRvbWljX2xvbmdfc3ViKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogYXRvbWljNjRfc3Vi
KGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX3N1Yl9yZXR1cm4obG9uZyBpLCBhdG9taWNfbG9u
Z190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9t
aWNfbG9uZ19zdWJfcmV0dXJuX2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBy
ZXR1cm4gYXRvbWljNjRfc3ViX3JldHVybihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19zdWJf
cmV0dXJuX3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWlj
NjRfc3ViX3JldHVybihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19zdWJfcmV0dXJuX3JlbGF4
ZWQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX3JldHVy
bihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9zdWIobG9uZyBpLCBhdG9taWNfbG9u
Z190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKGksIHYpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21p
Y19sb25nX2ZldGNoX3N1Yl9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX3N1YihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9z
dWJfcmVsZWFzZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9m
ZXRjaF9zdWIoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfc3ViX3JlbGF4ZWQobG9u
ZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfc3ViKGksIHYp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkCmF0b21pY19sb25nX2luYyhhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF9p
bmModik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfaW5jX3JldHVybihhdG9taWNfbG9uZ190ICp2KQp7
CiByZXR1cm4gYXRvbWljNjRfaW5jX3JldHVybih2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19pbmNf
cmV0dXJuX2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2luY19y
ZXR1cm5fYWNxdWlyZSh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19pbmNfcmV0dXJuX3JlbGVhc2Uo
YXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2luY19yZXR1cm5fcmVsZWFzZSh2
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgbG9uZwphdG9taWNfbG9uZ19pbmNfcmV0dXJuX3JlbGF4ZWQoYXRvbWljX2xvbmdfdCAq
dikKewogcmV0dXJuIGF0b21pYzY0X2luY19yZXR1cm5fcmVsYXhlZCh2KTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9t
aWNfbG9uZ19mZXRjaF9pbmMoYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2Zl
dGNoX2luYyh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9pbmNfYWNxdWlyZShhdG9taWNf
bG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfaW5jX2FjcXVpcmUodik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxv
bmcKYXRvbWljX2xvbmdfZmV0Y2hfaW5jX3JlbGVhc2UoYXRvbWljX2xvbmdfdCAqdikKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX2luY19yZWxlYXNlKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2Zl
dGNoX2luY19yZWxheGVkKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRj
aF9pbmNfcmVsYXhlZCh2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphdG9taWNfbG9uZ19kZWMoYXRvbWljX2xvbmdfdCAq
dikKewogYXRvbWljNjRfZGVjKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2RlY19yZXR1cm4oYXRv
bWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2RlY19yZXR1cm4odik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZGVjX3JldHVybl9hY3F1aXJlKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9kZWNfcmV0dXJuX2FjcXVpcmUodik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZGVj
X3JldHVybl9yZWxlYXNlKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9kZWNf
cmV0dXJuX3JlbGVhc2Uodik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZGVjX3JldHVybl9yZWxheGVk
KGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9kZWNfcmV0dXJuX3JlbGF4ZWQo
dik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfZGVjKGF0b21pY19sb25nX3QgKnYpCnsKIHJl
dHVybiBhdG9taWM2NF9mZXRjaF9kZWModik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfZGVj
X2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2RlY19h
Y3F1aXJlKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2RlY19yZWxlYXNlKGF0b21pY19s
b25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9kZWNfcmVsZWFzZSh2KTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9u
ZwphdG9taWNfbG9uZ19mZXRjaF9kZWNfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1
cm4gYXRvbWljNjRfZmV0Y2hfZGVjX3JlbGF4ZWQodik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWljX2xvbmdfYW5k
KGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogYXRvbWljNjRfYW5kKGksIHYpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25n
CmF0b21pY19sb25nX2ZldGNoX2FuZChsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfYW5k
X2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0
Y2hfYW5kKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FuZF9yZWxlYXNlKGxvbmcg
aSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX2FuZChpLCB2KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9hbmRfcmVsYXhlZChsb25nIGksIGF0b21pY19sb25n
X3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmQoaSwgdik7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKYXRvbWlj
X2xvbmdfYW5kbm90KGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogYXRvbWljNjRfYW5kbm90
KGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX2FuZG5vdChsb25nIGksIGF0b21pY19s
b25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9hbmRub3QoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZmV0Y2hfYW5kbm90X2FjcXVpcmUobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X2FjcXVpcmUoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZmV0Y2hfYW5kbm90X3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X3JlbGVhc2UoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcK
YXRvbWljX2xvbmdfZmV0Y2hfYW5kbm90X3JlbGF4ZWQobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2
KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfYW5kbm90X3JlbGF4ZWQoaSwgdik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
YXRvbWljX2xvbmdfb3IobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF9vcihp
LCB2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgbG9uZwphdG9taWNfbG9uZ19mZXRjaF9vcihsb25nIGksIGF0b21pY19sb25nX3Qg
KnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNfbG9u
Z19mZXRjaF9vcl9hY3F1aXJlKGxvbmcgaSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0
b21pYzY0X2ZldGNoX29yKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX29yX3JlbGVh
c2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0Y2hfb3Io
aSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfb3JfcmVsYXhlZChsb25nIGksIGF0b21p
Y19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9mZXRjaF9vcihpLCB2KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAph
dG9taWNfbG9uZ194b3IobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiBhdG9taWM2NF94b3Io
aSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfeG9yKGxvbmcgaSwgYXRvbWljX2xvbmdf
dCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZwphdG9taWNf
bG9uZ19mZXRjaF94b3JfYWNxdWlyZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9mZXRjaF94b3IoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfZmV0Y2hfeG9y
X3JlbGVhc2UobG9uZyBpLCBhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZmV0
Y2hfeG9yKGksIHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2ZldGNoX3hvcl9yZWxheGVkKGxvbmcg
aSwgYXRvbWljX2xvbmdfdCAqdikKewogcmV0dXJuIGF0b21pYzY0X2ZldGNoX3hvcihpLCB2KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgbG9uZwphdG9taWNfbG9uZ194Y2hnKGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKewogcmV0
dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfeGNoZ19hY3F1aXJl
KGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKewogcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcKYXRvbWljX2xvbmdfeGNoZ19yZWxlYXNlKGF0b21pY19sb25nX3QgKnYsIGxvbmcg
aSkKewogcmV0dXJuIGF0b21pYzY0X3hjaGcodiwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfeGNo
Z19yZWxheGVkKGF0b21pY19sb25nX3QgKnYsIGxvbmcgaSkKewogcmV0dXJuIGF0b21pYzY0X3hj
aGcodiwgaSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdfY21weGNoZyhhdG9taWNfbG9uZ190ICp2LCBs
b25nIG9sZCwgbG9uZyBuZXcpCnsKIHJldHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwgbmV3
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgbG9uZwphdG9taWNfbG9uZ19jbXB4Y2hnX2FjcXVpcmUoYXRvbWljX2xvbmdfdCAqdiwg
bG9uZyBvbGQsIGxvbmcgbmV3KQp7CiByZXR1cm4gYXRvbWljNjRfY21weGNoZyh2LCBvbGQsIG5l
dyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGxvbmcKYXRvbWljX2xvbmdfY21weGNoZ19yZWxlYXNlKGF0b21pY19sb25nX3QgKnYs
IGxvbmcgb2xkLCBsb25nIG5ldykKewogcmV0dXJuIGF0b21pYzY0X2NtcHhjaGcodiwgb2xkLCBu
ZXcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBsb25nCmF0b21pY19sb25nX2NtcHhjaGdfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2
LCBsb25nIG9sZCwgbG9uZyBuZXcpCnsKIHJldHVybiBhdG9taWM2NF9jbXB4Y2hnKHYsIG9sZCwg
bmV3KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbAphdG9taWNfbG9uZ190cnlfY21weGNoZyhhdG9taWNfbG9uZ190ICp2LCBs
b25nICpvbGQsIGxvbmcgbmV3KQp7CiByZXR1cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2
NCAqKW9sZCwgbmV3KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAphdG9taWNfbG9uZ190cnlfY21weGNoZ19hY3F1aXJlKGF0
b21pY19sb25nX3QgKnYsIGxvbmcgKm9sZCwgbG9uZyBuZXcpCnsKIHJldHVybiBhdG9taWM2NF90
cnlfY21weGNoZyh2LCAoczY0ICopb2xkLCBuZXcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19sb25nX3RyeV9j
bXB4Y2hnX3JlbGVhc2UoYXRvbWljX2xvbmdfdCAqdiwgbG9uZyAqb2xkLCBsb25nIG5ldykKewog
cmV0dXJuIGF0b21pYzY0X3RyeV9jbXB4Y2hnKHYsIChzNjQgKilvbGQsIG5ldyk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wK
YXRvbWljX2xvbmdfdHJ5X2NtcHhjaGdfcmVsYXhlZChhdG9taWNfbG9uZ190ICp2LCBsb25nICpv
bGQsIGxvbmcgbmV3KQp7CiByZXR1cm4gYXRvbWljNjRfdHJ5X2NtcHhjaGcodiwgKHM2NCAqKW9s
ZCwgbmV3KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbAphdG9taWNfbG9uZ19zdWJfYW5kX3Rlc3QobG9uZyBpLCBhdG9taWNf
bG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfc3ViX2FuZF90ZXN0KGksIHYpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
CmF0b21pY19sb25nX2RlY19hbmRfdGVzdChhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRv
bWljNjRfZGVjX2FuZF90ZXN0KHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sCmF0b21pY19sb25nX2luY19hbmRfdGVzdChh
dG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfaW5jX2FuZF90ZXN0KHYpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sCmF0b21pY19sb25nX2FkZF9uZWdhdGl2ZShsb25nIGksIGF0b21pY19sb25nX3QgKnYpCnsK
IHJldHVybiBhdG9taWM2NF9hZGRfbmVnYXRpdmUoaSwgdik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvbmcKYXRvbWljX2xvbmdf
ZmV0Y2hfYWRkX3VubGVzcyhhdG9taWNfbG9uZ190ICp2LCBsb25nIGEsIGxvbmcgdSkKewogcmV0
dXJuIGF0b21pYzY0X2ZldGNoX2FkZF91bmxlc3ModiwgYSwgdSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2xv
bmdfYWRkX3VubGVzcyhhdG9taWNfbG9uZ190ICp2LCBsb25nIGEsIGxvbmcgdSkKewogcmV0dXJu
IGF0b21pYzY0X2FkZF91bmxlc3ModiwgYSwgdSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKYXRvbWljX2xvbmdfaW5jX25v
dF96ZXJvKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVybiBhdG9taWM2NF9pbmNfbm90X3plcm8o
dik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wKYXRvbWljX2xvbmdfaW5jX3VubGVzc19uZWdhdGl2ZShhdG9taWNfbG9uZ190
ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfaW5jX3VubGVzc19uZWdhdGl2ZSh2KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAph
dG9taWNfbG9uZ19kZWNfdW5sZXNzX3Bvc2l0aXZlKGF0b21pY19sb25nX3QgKnYpCnsKIHJldHVy
biBhdG9taWM2NF9kZWNfdW5sZXNzX3Bvc2l0aXZlKHYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nCmF0b21pY19sb25nX2Rl
Y19pZl9wb3NpdGl2ZShhdG9taWNfbG9uZ190ICp2KQp7CiByZXR1cm4gYXRvbWljNjRfZGVjX2lm
X3Bvc2l0aXZlKHYpOwp9CiMgNzcgIi4vaW5jbHVkZS9saW51eC9hdG9taWMuaCIgMgojIDE5ICIu
L2luY2x1ZGUvbGludXgva2dkYi5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2dk
Yi5oIiAxCiMgMTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va2dkYi5oIgojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDEKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zZWdtZW50LmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2NvbnN0LmgiIDEKCgoKIyAx
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9jb25zdC5oIiAxCiMgNSAiLi9pbmNsdWRlL2xpbnV4L2Nv
bnN0LmgiIDIKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQuaCIgMgojIDE2OSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9jYWNoZS5oIiAxCiMgMTcwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQuaCIg
MgojIDI0OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcg
dmRzb19lbmNvZGVfY3B1bm9kZShpbnQgY3B1LCB1bnNpZ25lZCBsb25nIG5vZGUpCnsKIHJldHVy
biAobm9kZSA8PCAxMikgfCBjcHU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmRzb19yZWFkX2NwdW5vZGUodW5zaWduZWQg
KmNwdSwgdW5zaWduZWQgKm5vZGUpCnsKIHVuc2lnbmVkIGludCBwOwojIDI2NiAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9zZWdtZW50LmgiCiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDog
b2xkbnN0clxuIiAiNjYxOlxuXHQiICJsc2wgJVtzZWddLCVbcF0iICJcbjY2MjpcbiIgIiMgQUxU
OiBwYWRkaW5nXG4iICIuc2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAi
NjYyYi02NjFiIiAiKSkgPiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0o
IiAiNjYyYi02NjFiIiAiKSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRp
bnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIi
MSIiZiAtIC5cbiIgIiAud29yZCAiICIoMTYqMzIrMjIpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJi
LTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0
ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0
aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJc
biIgIjY2NCIiMSIiOlxuXHQiICIuYnl0ZSAweGYzLDB4MGYsMHhjNywweGY4IiAiXG4iICI2NjUi
IjEiICI6XG4iICIucG9wc2VjdGlvblxuIiA6IFtwXSAiPWEiIChwKSA6ICJpIiAoMCksIFtzZWdd
ICJyIiAoKDE1KjggKyAzKSkpCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKCiBpZiAoY3B1KQogICpjcHUgPSAocCAmIDB4ZmZmKTsKIGlmIChub2RlKQogICpu
b2RlID0gKHAgPj4gMTIpOwp9CiMgMzAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlZ21lbnQu
aCIKZXh0ZXJuIGNvbnN0IGNoYXIgZWFybHlfaWR0X2hhbmRsZXJfYXJyYXlbMzJdWzldOwpleHRl
cm4gdm9pZCBlYXJseV9pZ25vcmVfaXJxKHZvaWQpOwojIDM0NyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9zZWdtZW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19sb2Fkc2VnbWVudF9mcyh1bnNpZ25lZCBzaG9ydCB2YWx1
ZSkKewogYXNtIHZvbGF0aWxlKCIJCQkJCQlcbiIKICAgICAgICIxOgltb3Z3ICUwLCAlJWZzCQkJ
XG4iCiAgICAgICAiMjoJCQkJCVxuIgoKICAgICAgICIgLnB1c2hzZWN0aW9uIFwiX19leF90YWJs
ZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjFiIiAiKSAtIC5cbiIgIiAu
bG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2NsZWFyX2ZzIiAi
KSAtIC5cbiIgIiAucG9wc2VjdGlvblxuIgoKICAgICAgIDogOiAicm0iICh2YWx1ZSkgOiAibWVt
b3J5Iik7Cn0KIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYWdlX3R5cGVzLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUv
bGludXgvbWVtX2VuY3J5cHQuaCIgMQojIDE3ICIuL2luY2x1ZGUvbGludXgvbWVtX2VuY3J5cHQu
aCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmgiIDEKIyAxNyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS91YXBpL2FzbS9ib290cGFyYW0uaCIgMQojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h
c20vYm9vdHBhcmFtLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NjcmVlbl9pbmZvLmgiIDEKCgoK
CiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2NyZWVuX2luZm8uaCIgMQojIDExICIuL2luY2x1
ZGUvdWFwaS9saW51eC9zY3JlZW5faW5mby5oIgpzdHJ1Y3Qgc2NyZWVuX2luZm8gewogX191OCBv
cmlnX3g7CiBfX3U4IG9yaWdfeTsKIF9fdTE2IGV4dF9tZW1fazsKIF9fdTE2IG9yaWdfdmlkZW9f
cGFnZTsKIF9fdTggb3JpZ192aWRlb19tb2RlOwogX191OCBvcmlnX3ZpZGVvX2NvbHM7CiBfX3U4
IGZsYWdzOwogX191OCB1bnVzZWQyOwogX191MTYgb3JpZ192aWRlb19lZ2FfYng7CiBfX3UxNiB1
bnVzZWQzOwogX191OCBvcmlnX3ZpZGVvX2xpbmVzOwogX191OCBvcmlnX3ZpZGVvX2lzVkdBOwog
X191MTYgb3JpZ192aWRlb19wb2ludHM7CgoKIF9fdTE2IGxmYl93aWR0aDsKIF9fdTE2IGxmYl9o
ZWlnaHQ7CiBfX3UxNiBsZmJfZGVwdGg7CiBfX3UzMiBsZmJfYmFzZTsKIF9fdTMyIGxmYl9zaXpl
OwogX191MTYgY2xfbWFnaWMsIGNsX29mZnNldDsKIF9fdTE2IGxmYl9saW5lbGVuZ3RoOwogX191
OCByZWRfc2l6ZTsKIF9fdTggcmVkX3BvczsKIF9fdTggZ3JlZW5fc2l6ZTsKIF9fdTggZ3JlZW5f
cG9zOwogX191OCBibHVlX3NpemU7CiBfX3U4IGJsdWVfcG9zOwogX191OCByc3ZkX3NpemU7CiBf
X3U4IHJzdmRfcG9zOwogX191MTYgdmVzYXBtX3NlZzsKIF9fdTE2IHZlc2FwbV9vZmY7CiBfX3Ux
NiBwYWdlczsKIF9fdTE2IHZlc2FfYXR0cmlidXRlczsKIF9fdTMyIGNhcGFiaWxpdGllczsKIF9f
dTMyIGV4dF9sZmJfYmFzZTsKIF9fdTggX3Jlc2VydmVkWzJdOwp9IF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwojIDYgIi4vaW5jbHVkZS9saW51eC9zY3JlZW5faW5mby5oIiAyCgpleHRlcm4gc3Ry
dWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOwojIDQ0ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFw
aS9hc20vYm9vdHBhcmFtLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvYXBtX2Jpb3MuaCIgMQoj
IDkgIi4vaW5jbHVkZS9saW51eC9hcG1fYmlvcy5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L2FwbV9iaW9zLmgiIDEKIyAyMiAiLi9pbmNsdWRlL3VhcGkvbGludXgvYXBtX2Jpb3MuaCIKdHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBhcG1fZXZlbnRfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBh
cG1fZXZlbnRpbmZvX3Q7CgpzdHJ1Y3QgYXBtX2Jpb3NfaW5mbyB7CiBfX3UxNiB2ZXJzaW9uOwog
X191MTYgY3NlZzsKIF9fdTMyIG9mZnNldDsKIF9fdTE2IGNzZWdfMTY7CiBfX3UxNiBkc2VnOwog
X191MTYgZmxhZ3M7CiBfX3UxNiBjc2VnX2xlbjsKIF9fdTE2IGNzZWdfMTZfbGVuOwogX191MTYg
ZHNlZ19sZW47Cn07CiMgMTMzICIuL2luY2x1ZGUvdWFwaS9saW51eC9hcG1fYmlvcy5oIgojIDEg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2lvY3RsLmgiIDEKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2dlbmVyYXRlZC91YXBpL2FzbS9pb2N0bC5oIiAxCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5l
cmljL2lvY3RsLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW9jdGwu
aCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9pb2N0bC5oIiAyCgoKCgoKZXh0ZXJuIHVu
c2lnbmVkIGludCBfX2ludmFsaWRfc2l6ZV9hcmd1bWVudF9mb3JfSU9DOwojIDIgIi4vYXJjaC94
ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vaW9jdGwuaCIgMgojIDYgIi4vaW5jbHVkZS91
YXBpL2xpbnV4L2lvY3RsLmgiIDIKIyAxMzQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2FwbV9iaW9z
LmgiIDIKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2FwbV9iaW9zLmgiIDIKIyAyNiAiLi9pbmNsdWRl
L2xpbnV4L2FwbV9iaW9zLmgiCnN0cnVjdCBhcG1faW5mbyB7CiBzdHJ1Y3QgYXBtX2Jpb3NfaW5m
byBiaW9zOwogdW5zaWduZWQgc2hvcnQgY29ubmVjdGlvbl92ZXJzaW9uOwogaW50IGdldF9wb3dl
cl9zdGF0dXNfYnJva2VuOwogaW50IGdldF9wb3dlcl9zdGF0dXNfc3dhYmlubWludXRlczsKIGlu
dCBhbGxvd19pbnRzOwogaW50IGZvcmJpZF9pZGxlOwogaW50IHJlYWxtb2RlX3Bvd2VyX29mZjsK
IGludCBkaXNhYmxlZDsKfTsKIyA4NSAiLi9pbmNsdWRlL2xpbnV4L2FwbV9iaW9zLmgiCmV4dGVy
biBzdHJ1Y3QgYXBtX2luZm8gYXBtX2luZm87CiMgNDUgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBp
L2FzbS9ib290cGFyYW0uaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9lZGQuaCIgMQojIDI0ICIu
L2luY2x1ZGUvbGludXgvZWRkLmgiCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZWRkLmgiIDEK
IyA3MiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZWRkLmgiCnN0cnVjdCBlZGRfZGV2aWNlX3BhcmFt
cyB7CiBfX3UxNiBsZW5ndGg7CiBfX3UxNiBpbmZvX2ZsYWdzOwogX191MzIgbnVtX2RlZmF1bHRf
Y3lsaW5kZXJzOwogX191MzIgbnVtX2RlZmF1bHRfaGVhZHM7CiBfX3UzMiBzZWN0b3JzX3Blcl90
cmFjazsKIF9fdTY0IG51bWJlcl9vZl9zZWN0b3JzOwogX191MTYgYnl0ZXNfcGVyX3NlY3RvcjsK
IF9fdTMyIGRwdGVfcHRyOwogX191MTYga2V5OwogX191OCBkZXZpY2VfcGF0aF9pbmZvX2xlbmd0
aDsKIF9fdTggcmVzZXJ2ZWQyOwogX191MTYgcmVzZXJ2ZWQzOwogX191OCBob3N0X2J1c190eXBl
WzRdOwogX191OCBpbnRlcmZhY2VfdHlwZVs4XTsKIHVuaW9uIHsKICBzdHJ1Y3QgewogICBfX3Ux
NiBiYXNlX2FkZHJlc3M7CiAgIF9fdTE2IHJlc2VydmVkMTsKICAgX191MzIgcmVzZXJ2ZWQyOwog
IH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGlzYTsKICBzdHJ1Y3QgewogICBfX3U4IGJ1czsK
ICAgX191OCBzbG90OwogICBfX3U4IGZ1bmN0aW9uOwogICBfX3U4IGNoYW5uZWw7CiAgIF9fdTMy
IHJlc2VydmVkOwogIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHBjaTsKCiAgc3RydWN0IHsK
ICAgX191NjQgcmVzZXJ2ZWQ7CiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgaWJuZDsKICBz
dHJ1Y3QgewogICBfX3U2NCByZXNlcnZlZDsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB4
cHJzOwogIHN0cnVjdCB7CiAgIF9fdTY0IHJlc2VydmVkOwogIH0gX19hdHRyaWJ1dGVfXyAoKHBh
Y2tlZCkpIGh0cHQ7CiAgc3RydWN0IHsKICAgX191NjQgcmVzZXJ2ZWQ7CiAgfSBfX2F0dHJpYnV0
ZV9fICgocGFja2VkKSkgdW5rbm93bjsKIH0gaW50ZXJmYWNlX3BhdGg7CiB1bmlvbiB7CiAgc3Ry
dWN0IHsKICAgX191OCBkZXZpY2U7CiAgIF9fdTggcmVzZXJ2ZWQxOwogICBfX3UxNiByZXNlcnZl
ZDI7CiAgIF9fdTMyIHJlc2VydmVkMzsKICAgX191NjQgcmVzZXJ2ZWQ0OwogIH0gX19hdHRyaWJ1
dGVfXyAoKHBhY2tlZCkpIGF0YTsKICBzdHJ1Y3QgewogICBfX3U4IGRldmljZTsKICAgX191OCBs
dW47CiAgIF9fdTggcmVzZXJ2ZWQxOwogICBfX3U4IHJlc2VydmVkMjsKICAgX191MzIgcmVzZXJ2
ZWQzOwogICBfX3U2NCByZXNlcnZlZDQ7CiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgYXRh
cGk7CiAgc3RydWN0IHsKICAgX191MTYgaWQ7CiAgIF9fdTY0IGx1bjsKICAgX191MTYgcmVzZXJ2
ZWQxOwogICBfX3UzMiByZXNlcnZlZDI7CiAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgc2Nz
aTsKICBzdHJ1Y3QgewogICBfX3U2NCBzZXJpYWxfbnVtYmVyOwogICBfX3U2NCByZXNlcnZlZDsK
ICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSB1c2I7CiAgc3RydWN0IHsKICAgX191NjQgZXVp
OwogICBfX3U2NCByZXNlcnZlZDsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBpMTM5NDsK
ICBzdHJ1Y3QgewogICBfX3U2NCB3d2lkOwogICBfX3U2NCBsdW47CiAgfSBfX2F0dHJpYnV0ZV9f
ICgocGFja2VkKSkgZmlicmU7CiAgc3RydWN0IHsKICAgX191NjQgaWRlbnRpdHlfdGFnOwogICBf
X3U2NCByZXNlcnZlZDsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBpMm87CiAgc3RydWN0
IHsKICAgX191MzIgYXJyYXlfbnVtYmVyOwogICBfX3UzMiByZXNlcnZlZDE7CiAgIF9fdTY0IHJl
c2VydmVkMjsKICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSByYWlkOwogIHN0cnVjdCB7CiAg
IF9fdTggZGV2aWNlOwogICBfX3U4IHJlc2VydmVkMTsKICAgX191MTYgcmVzZXJ2ZWQyOwogICBf
X3UzMiByZXNlcnZlZDM7CiAgIF9fdTY0IHJlc2VydmVkNDsKICB9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKSBzYXRhOwogIHN0cnVjdCB7CiAgIF9fdTY0IHJlc2VydmVkMTsKICAgX191NjQgcmVz
ZXJ2ZWQyOwogIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIHVua25vd247CiB9IGRldmljZV9w
YXRoOwogX191OCByZXNlcnZlZDQ7CiBfX3U4IGNoZWNrc3VtOwp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKTsKCnN0cnVjdCBlZGRfaW5mbyB7CiBfX3U4IGRldmljZTsKIF9fdTggdmVyc2lvbjsK
IF9fdTE2IGludGVyZmFjZV9zdXBwb3J0OwogX191MTYgbGVnYWN5X21heF9jeWxpbmRlcjsKIF9f
dTggbGVnYWN5X21heF9oZWFkOwogX191OCBsZWdhY3lfc2VjdG9yc19wZXJfdHJhY2s7CiBzdHJ1
Y3QgZWRkX2RldmljZV9wYXJhbXMgcGFyYW1zOwp9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsK
CnN0cnVjdCBlZGQgewogdW5zaWduZWQgaW50IG1icl9zaWduYXR1cmVbMTZdOwogc3RydWN0IGVk
ZF9pbmZvIGVkZF9pbmZvWzZdOwogdW5zaWduZWQgY2hhciBtYnJfc2lnbmF0dXJlX25yOwogdW5z
aWduZWQgY2hhciBlZGRfaW5mb19ucjsKfTsKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2VkZC5oIiAy
CgoKZXh0ZXJuIHN0cnVjdCBlZGQgZWRkOwojIDQ2ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9h
c20vYm9vdHBhcmFtLmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lzdC5oIiAxCiMg
OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pc3QuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaS9hc20vaXN0LmgiIDEKIyAyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2lzdC5o
IgpzdHJ1Y3QgaXN0X2luZm8gewogX191MzIgc2lnbmF0dXJlOwogX191MzIgY29tbWFuZDsKIF9f
dTMyIGV2ZW50OwogX191MzIgcGVyZl9sZXZlbDsKfTsKIyAxMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9pc3QuaCIgMgoKCmV4dGVybiBzdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87CiMgNDcgIi4v
YXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIgMgojIDEgIi4vaW5jbHVkZS92
aWRlby9lZGlkLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvdmlkZW8vZWRpZC5oIiAxCgoK
CgpzdHJ1Y3QgZWRpZF9pbmZvIHsKIHVuc2lnbmVkIGNoYXIgZHVtbXlbMTI4XTsKfTsKIyA2ICIu
L2luY2x1ZGUvdmlkZW8vZWRpZC5oIiAyCgoKZXh0ZXJuIHN0cnVjdCBlZGlkX2luZm8gZWRpZF9p
bmZvOwojIDQ4ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYm9vdHBhcmFtLmgiIDIKCgpz
dHJ1Y3Qgc2V0dXBfZGF0YSB7CiBfX3U2NCBuZXh0OwogX191MzIgdHlwZTsKIF9fdTMyIGxlbjsK
IF9fdTggZGF0YVswXTsKfTsKCgpzdHJ1Y3Qgc2V0dXBfaW5kaXJlY3QgewogX191MzIgdHlwZTsK
IF9fdTMyIHJlc2VydmVkOwogX191NjQgbGVuOwogX191NjQgYWRkcjsKfTsKCnN0cnVjdCBzZXR1
cF9oZWFkZXIgewogX191OCBzZXR1cF9zZWN0czsKIF9fdTE2IHJvb3RfZmxhZ3M7CiBfX3UzMiBz
eXNzaXplOwogX191MTYgcmFtX3NpemU7CiBfX3UxNiB2aWRfbW9kZTsKIF9fdTE2IHJvb3RfZGV2
OwogX191MTYgYm9vdF9mbGFnOwogX191MTYganVtcDsKIF9fdTMyIGhlYWRlcjsKIF9fdTE2IHZl
cnNpb247CiBfX3UzMiByZWFsbW9kZV9zd3RjaDsKIF9fdTE2IHN0YXJ0X3N5c19zZWc7CiBfX3Ux
NiBrZXJuZWxfdmVyc2lvbjsKIF9fdTggdHlwZV9vZl9sb2FkZXI7CiBfX3U4IGxvYWRmbGFnczsK
IF9fdTE2IHNldHVwX21vdmVfc2l6ZTsKIF9fdTMyIGNvZGUzMl9zdGFydDsKIF9fdTMyIHJhbWRp
c2tfaW1hZ2U7CiBfX3UzMiByYW1kaXNrX3NpemU7CiBfX3UzMiBib290c2VjdF9rbHVkZ2U7CiBf
X3UxNiBoZWFwX2VuZF9wdHI7CiBfX3U4IGV4dF9sb2FkZXJfdmVyOwogX191OCBleHRfbG9hZGVy
X3R5cGU7CiBfX3UzMiBjbWRfbGluZV9wdHI7CiBfX3UzMiBpbml0cmRfYWRkcl9tYXg7CiBfX3Uz
MiBrZXJuZWxfYWxpZ25tZW50OwogX191OCByZWxvY2F0YWJsZV9rZXJuZWw7CiBfX3U4IG1pbl9h
bGlnbm1lbnQ7CiBfX3UxNiB4bG9hZGZsYWdzOwogX191MzIgY21kbGluZV9zaXplOwogX191MzIg
aGFyZHdhcmVfc3ViYXJjaDsKIF9fdTY0IGhhcmR3YXJlX3N1YmFyY2hfZGF0YTsKIF9fdTMyIHBh
eWxvYWRfb2Zmc2V0OwogX191MzIgcGF5bG9hZF9sZW5ndGg7CiBfX3U2NCBzZXR1cF9kYXRhOwog
X191NjQgcHJlZl9hZGRyZXNzOwogX191MzIgaW5pdF9zaXplOwogX191MzIgaGFuZG92ZXJfb2Zm
c2V0OwogX191MzIga2VybmVsX2luZm9fb2Zmc2V0Owp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkp
OwoKc3RydWN0IHN5c19kZXNjX3RhYmxlIHsKIF9fdTE2IGxlbmd0aDsKIF9fdTggdGFibGVbMTRd
Owp9OwoKCnN0cnVjdCBvbHBjX29md19oZWFkZXIgewogX191MzIgb2Z3X21hZ2ljOwogX191MzIg
b2Z3X3ZlcnNpb247CiBfX3UzMiBjaWZfaGFuZGxlcjsKIF9fdTMyIGlycV9kZXNjX3RhYmxlOwp9
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoKc3RydWN0IGVmaV9pbmZvIHsKIF9fdTMyIGVmaV9s
b2FkZXJfc2lnbmF0dXJlOwogX191MzIgZWZpX3N5c3RhYjsKIF9fdTMyIGVmaV9tZW1kZXNjX3Np
emU7CiBfX3UzMiBlZmlfbWVtZGVzY192ZXJzaW9uOwogX191MzIgZWZpX21lbW1hcDsKIF9fdTMy
IGVmaV9tZW1tYXBfc2l6ZTsKIF9fdTMyIGVmaV9zeXN0YWJfaGk7CiBfX3UzMiBlZmlfbWVtbWFw
X2hpOwp9OwojIDE0MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJhbS5oIgpz
dHJ1Y3QgYm9vdF9lODIwX2VudHJ5IHsKIF9fdTY0IGFkZHI7CiBfX3U2NCBzaXplOwogX191MzIg
dHlwZTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIyAxNTUgIi4vYXJjaC94ODYvaW5jbHVk
ZS91YXBpL2FzbS9ib290cGFyYW0uaCIKc3RydWN0IGphaWxob3VzZV9zZXR1cF9kYXRhIHsKIHN0
cnVjdCB7CiAgX191MTYgdmVyc2lvbjsKICBfX3UxNiBjb21wYXRpYmxlX3ZlcnNpb247CiB9IF9f
YXR0cmlidXRlX18oKHBhY2tlZCkpIGhkcjsKIHN0cnVjdCB7CiAgX191MTYgcG1fdGltZXJfYWRk
cmVzczsKICBfX3UxNiBudW1fY3B1czsKICBfX3U2NCBwY2lfbW1jb25maWdfYmFzZTsKICBfX3Uz
MiB0c2Nfa2h6OwogIF9fdTMyIGFwaWNfa2h6OwogIF9fdTggc3RhbmRhcmRfaW9hcGljOwogIF9f
dTggY3B1X2lkc1syNTVdOwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB2MTsKIHN0cnVjdCB7
CiAgX191MzIgZmxhZ3M7CiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHYyOwp9IF9fYXR0cmli
dXRlX18oKHBhY2tlZCkpOwoKCnN0cnVjdCBib290X3BhcmFtcyB7CiBzdHJ1Y3Qgc2NyZWVuX2lu
Zm8gc2NyZWVuX2luZm87CiBzdHJ1Y3QgYXBtX2Jpb3NfaW5mbyBhcG1fYmlvc19pbmZvOwogX191
OCBfcGFkMls0XTsKIF9fdTY0IHRib290X2FkZHI7CiBzdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87
CiBfX3U2NCBhY3BpX3JzZHBfYWRkcjsKIF9fdTggX3BhZDNbOF07CiBfX3U4IGhkMF9pbmZvWzE2
XTsKIF9fdTggaGQxX2luZm9bMTZdOwogc3RydWN0IHN5c19kZXNjX3RhYmxlIHN5c19kZXNjX3Rh
YmxlOwogc3RydWN0IG9scGNfb2Z3X2hlYWRlciBvbHBjX29md19oZWFkZXI7CiBfX3UzMiBleHRf
cmFtZGlza19pbWFnZTsKIF9fdTMyIGV4dF9yYW1kaXNrX3NpemU7CiBfX3UzMiBleHRfY21kX2xp
bmVfcHRyOwogX191OCBfcGFkNFsxMTZdOwogc3RydWN0IGVkaWRfaW5mbyBlZGlkX2luZm87CiBz
dHJ1Y3QgZWZpX2luZm8gZWZpX2luZm87CiBfX3UzMiBhbHRfbWVtX2s7CiBfX3UzMiBzY3JhdGNo
OwogX191OCBlODIwX2VudHJpZXM7CiBfX3U4IGVkZGJ1Zl9lbnRyaWVzOwogX191OCBlZGRfbWJy
X3NpZ19idWZfZW50cmllczsKIF9fdTgga2JkX3N0YXR1czsKIF9fdTggc2VjdXJlX2Jvb3Q7CiBf
X3U4IF9wYWQ1WzJdOwojIDIxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2Jvb3RwYXJh
bS5oIgogX191OCBzZW50aW5lbDsKIF9fdTggX3BhZDZbMV07CiBzdHJ1Y3Qgc2V0dXBfaGVhZGVy
IGhkcjsKIF9fdTggX3BhZDdbMHgyOTAtMHgxZjEtc2l6ZW9mKHN0cnVjdCBzZXR1cF9oZWFkZXIp
XTsKIF9fdTMyIGVkZF9tYnJfc2lnX2J1ZmZlclsxNl07CiBzdHJ1Y3QgYm9vdF9lODIwX2VudHJ5
IGU4MjBfdGFibGVbMTI4XTsKIF9fdTggX3BhZDhbNDhdOwogc3RydWN0IGVkZF9pbmZvIGVkZGJ1
Zls2XTsKIF9fdTggX3BhZDlbMjc2XTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIyAyNjIg
Ii4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9ib290cGFyYW0uaCIKZW51bSB4ODZfaGFyZHdh
cmVfc3ViYXJjaCB7CiBYODZfU1VCQVJDSF9QQyA9IDAsCiBYODZfU1VCQVJDSF9MR1VFU1QsCiBY
ODZfU1VCQVJDSF9YRU4sCiBYODZfU1VCQVJDSF9JTlRFTF9NSUQsCiBYODZfU1VCQVJDSF9DRTQx
MDAsCiBYODZfTlJfU1VCQVJDSFMsCn07CiMgMTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWVt
X2VuY3J5cHQuaCIgMgojIDU5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmli
dXRlX18oKF9fY29sZF9fKSkgc21lX2Vhcmx5X2VuY3J5cHQocmVzb3VyY2Vfc2l6ZV90IHBhZGRy
LAogICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9f
c2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9l
YXJseV9kZWNyeXB0KHJlc291cmNlX3NpemVfdCBwYWRkciwKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBzaXplKSB7IH0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQi
KSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgc21lX21hcF9ib290ZGF0YShjaGFyICpyZWFs
X21vZGVfZGF0YSkgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRl
eHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgc21lX3VubWFwX2Jvb3RkYXRhKGNoYXIg
KnJlYWxfbW9kZV9kYXRhKSB7IH0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5p
bml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgc21lX2Vhcmx5X2luaXQodm9p
ZCkgeyB9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHNtZV9lbmNyeXB0X2tlcm5lbChzdHJ1Y3QgYm9vdF9w
YXJhbXMgKmJwKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4
dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBzbWVfZW5hYmxlKHN0cnVjdCBib290X3Bh
cmFtcyAqYnApIHsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBzbWVfYWN0aXZlKHZvaWQpIHsgcmV0dXJuIGZhbHNlOyB9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgc2V2X2FjdGl2ZSh2b2lkKSB7IHJldHVybiBmYWxzZTsgfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18o
KF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCmVh
cmx5X3NldF9tZW1vcnlfZGVjcnlwdGVkKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHVuc2lnbmVkIGxv
bmcgc2l6ZSkgeyByZXR1cm4gMDsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5p
bml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkKZWFybHlfc2V0X21lbW9yeV9l
bmNyeXB0ZWQodW5zaWduZWQgbG9uZyB2YWRkciwgdW5zaWduZWQgbG9uZyBzaXplKSB7IHJldHVy
biAwOyB9CiMgOTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbWVtX2VuY3J5cHQuaCIKZXh0ZXJu
IGNoYXIgX19zdGFydF9ic3NfZGVjcnlwdGVkW10sIF9fZW5kX2Jzc19kZWNyeXB0ZWRbXSwgX19z
dGFydF9ic3NfZGVjcnlwdGVkX3VudXNlZFtdOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBtZW1fZW5jcnlwdF9hY3RpdmUodm9p
ZCkKewogcmV0dXJuIDBVTEw7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBzbWVfZ2V0X21lX21hc2sodm9pZCkKewogcmV0dXJu
IDBVTEw7Cn0KIyAxOCAiLi9pbmNsdWRlL2xpbnV4L21lbV9lbmNyeXB0LmgiIDIKIyA4ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfdHlwZXMuaCIgMgojIDQ4ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3BhZ2VfdHlwZXMuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjRf
dHlwZXMuaCIgMQoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rYXNsci5oIiAxCgoK
Cgp1bnNpZ25lZCBsb25nIGthc2xyX2dldF9yYW5kb21fbG9uZyhjb25zdCBjaGFyICpwdXJwb3Nl
KTsKCgp2b2lkIGtlcm5lbF9yYW5kb21pemVfbWVtb3J5KHZvaWQpOwojIDcgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcGFnZV82NF90eXBlcy5oIiAyCiMgNDkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcGFnZV90eXBlcy5oIiAyCiMgNjQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZV90eXBl
cy5oIgpleHRlcm4gaW50IGRldm1lbV9pc19hbGxvd2VkKHVuc2lnbmVkIGxvbmcgcGFnZW5yKTsK
CmV4dGVybiB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKZXh0ZXJuIHVuc2lnbmVk
IGxvbmcgbWF4X3Bmbl9tYXBwZWQ7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaHlzX2FkZHJfdCBnZXRfbWF4X21hcHBlZCh2b2lkKQp7
CiByZXR1cm4gKHBoeXNfYWRkcl90KW1heF9wZm5fbWFwcGVkIDw8IDEyOwp9Cgpib29sIHBmbl9y
YW5nZV9pc19tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5k
X3Bmbik7CgpleHRlcm4gdW5zaWduZWQgbG9uZyBpbml0X21lbW9yeV9tYXBwaW5nKHVuc2lnbmVk
IGxvbmcgc3RhcnQsCiAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKTsKCmV4dGVybiB2b2lkIGluaXRt
ZW1faW5pdCh2b2lkKTsKIyA3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAxCgoKCgoKIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vcHRyYWNlLWFiaS5oIiAxCiMgNyAiLi9hcmNoL3g4Ni9p
bmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3ItZmxhZ3MuaCIgMQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20v
cHJvY2Vzc29yLWZsYWdzLmgiIDEKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci1mbGFncy5oIiAyCiMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3B0cmFjZS5oIiAy
CiMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIgMgojIDU2ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpzdHJ1Y3QgcHRfcmVncyB7CgoKCgogdW5zaWduZWQgbG9u
ZyByMTU7CiB1bnNpZ25lZCBsb25nIHIxNDsKIHVuc2lnbmVkIGxvbmcgcjEzOwogdW5zaWduZWQg
bG9uZyByMTI7CiB1bnNpZ25lZCBsb25nIGJwOwogdW5zaWduZWQgbG9uZyBieDsKCiB1bnNpZ25l
ZCBsb25nIHIxMTsKIHVuc2lnbmVkIGxvbmcgcjEwOwogdW5zaWduZWQgbG9uZyByOTsKIHVuc2ln
bmVkIGxvbmcgcjg7CiB1bnNpZ25lZCBsb25nIGF4OwogdW5zaWduZWQgbG9uZyBjeDsKIHVuc2ln
bmVkIGxvbmcgZHg7CiB1bnNpZ25lZCBsb25nIHNpOwogdW5zaWduZWQgbG9uZyBkaTsKCgoKCiB1
bnNpZ25lZCBsb25nIG9yaWdfYXg7CgogdW5zaWduZWQgbG9uZyBpcDsKIHVuc2lnbmVkIGxvbmcg
Y3M7CiB1bnNpZ25lZCBsb25nIGZsYWdzOwogdW5zaWduZWQgbG9uZyBzcDsKIHVuc2lnbmVkIGxv
bmcgc3M7Cgp9OwoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVz
LmgiIDEKIyA0MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgojIDEg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzY19kZWZzLmgiIDEKIyAxNiAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9kZXNjX2RlZnMuaCIKc3RydWN0IGRlc2Nfc3RydWN0IHsKIHUxNiBsaW1pdDA7
CiB1MTYgYmFzZTA7CiB1MTYgYmFzZTE6IDgsIHR5cGU6IDQsIHM6IDEsIGRwbDogMiwgcDogMTsK
IHUxNiBsaW1pdDE6IDQsIGF2bDogMSwgbDogMSwgZDogMSwgZzogMSwgYmFzZTI6IDg7Cn0gX19h
dHRyaWJ1dGVfXygocGFja2VkKSk7CiMgNDAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzY19k
ZWZzLmgiCmVudW0gewogR0FURV9JTlRFUlJVUFQgPSAweEUsCiBHQVRFX1RSQVAgPSAweEYsCiBH
QVRFX0NBTEwgPSAweEMsCiBHQVRFX1RBU0sgPSAweDUsCn07CgplbnVtIHsKIERFU0NfVFNTID0g
MHg5LAogREVTQ19MRFQgPSAweDIsCiBERVNDVFlQRV9TID0gMHgxMCwKfTsKCgpzdHJ1Y3QgbGR0
dHNzX2Rlc2MgewogdTE2IGxpbWl0MDsKIHUxNiBiYXNlMDsKCiB1MTYgYmFzZTEgOiA4LCB0eXBl
IDogNSwgZHBsIDogMiwgcCA6IDE7CiB1MTYgbGltaXQxIDogNCwgemVybzAgOiAzLCBnIDogMSwg
YmFzZTIgOiA4OwoKIHUzMiBiYXNlMzsKIHUzMiB6ZXJvMTsKCn0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7Cgp0eXBlZGVmIHN0cnVjdCBsZHR0c3NfZGVzYyBsZHRfZGVzYzsKdHlwZWRlZiBzdHJ1
Y3QgbGR0dHNzX2Rlc2MgdHNzX2Rlc2M7CgpzdHJ1Y3QgaWR0X2JpdHMgewogdTE2IGlzdCA6IDMs
CiAgIHplcm8gOiA1LAogICB0eXBlIDogNSwKICAgZHBsIDogMiwKICAgcCA6IDE7Cn0gX19hdHRy
aWJ1dGVfXygocGFja2VkKSk7CgpzdHJ1Y3QgZ2F0ZV9zdHJ1Y3QgewogdTE2IG9mZnNldF9sb3c7
CiB1MTYgc2VnbWVudDsKIHN0cnVjdCBpZHRfYml0cyBiaXRzOwogdTE2IG9mZnNldF9taWRkbGU7
CgogdTMyIG9mZnNldF9oaWdoOwogdTMyIHJlc2VydmVkOwoKfSBfX2F0dHJpYnV0ZV9fKChwYWNr
ZWQpKTsKCnR5cGVkZWYgc3RydWN0IGdhdGVfc3RydWN0IGdhdGVfZGVzYzsKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxv
bmcgZ2F0ZV9vZmZzZXQoY29uc3QgZ2F0ZV9kZXNjICpnKQp7CgogcmV0dXJuIGctPm9mZnNldF9s
b3cgfCAoKHVuc2lnbmVkIGxvbmcpZy0+b2Zmc2V0X21pZGRsZSA8PCAxNikgfAogICgodW5zaWdu
ZWQgbG9uZykgZy0+b2Zmc2V0X2hpZ2ggPDwgMzIpOwoKCgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGdhdGVf
c2VnbWVudChjb25zdCBnYXRlX2Rlc2MgKmcpCnsKIHJldHVybiBnLT5zZWdtZW50Owp9CgpzdHJ1
Y3QgZGVzY19wdHIgewogdW5zaWduZWQgc2hvcnQgc2l6ZTsKIHVuc2lnbmVkIGxvbmcgYWRkcmVz
czsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSA7CiMgNDQgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcGFyYXZpcnRfdHlwZXMuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20va21hcF90
eXBlcy5oIiAxCiMgOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rbWFwX3R5cGVzLmgiCiMgMSAi
Li9pbmNsdWRlL2FzbS1nZW5lcmljL2ttYXBfdHlwZXMuaCIgMQojIDEwICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2ttYXBfdHlwZXMuaCIgMgojIDQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bh
cmF2aXJ0X3R5cGVzLmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlw
ZXMuaCIgMQojIDEzMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlX3R5cGVzLmgiCmVu
dW0gcGFnZV9jYWNoZV9tb2RlIHsKIF9QQUdFX0NBQ0hFX01PREVfV0IgPSAwLAogX1BBR0VfQ0FD
SEVfTU9ERV9XQyA9IDEsCiBfUEFHRV9DQUNIRV9NT0RFX1VDX01JTlVTID0gMiwKIF9QQUdFX0NB
Q0hFX01PREVfVUMgPSAzLAogX1BBR0VfQ0FDSEVfTU9ERV9XVCA9IDQsCiBfUEFHRV9DQUNIRV9N
T0RFX1dQID0gNSwKCiBfUEFHRV9DQUNIRV9NT0RFX05VTSA9IDgKfTsKIyAyNTcgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vcGd0YWJsZV82NF90eXBlcy5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c3BhcnNlbWVtLmgiIDEKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlw
ZXMuaCIgMgojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIK
dHlwZWRlZiB1bnNpZ25lZCBsb25nIHB0ZXZhbF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgcG1k
dmFsX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBwdWR2YWxfdDsKdHlwZWRlZiB1bnNpZ25lZCBs
b25nIHA0ZHZhbF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgcGdkdmFsX3Q7CnR5cGVkZWYgdW5z
aWduZWQgbG9uZyBwZ3Byb3R2YWxfdDsKCnR5cGVkZWYgc3RydWN0IHsgcHRldmFsX3QgcHRlOyB9
IHB0ZV90OwojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaCIK
ZXh0ZXJuIHVuc2lnbmVkIGludCBwZ2Rpcl9zaGlmdDsKZXh0ZXJuIHVuc2lnbmVkIGludCBwdHJz
X3Blcl9wNGQ7CiMgMjU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVfdHlwZXMuaCIg
MgojIDI3MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlX3R5cGVzLmgiCnR5cGVkZWYg
c3RydWN0IHBncHJvdCB7IHBncHJvdHZhbF90IHBncHJvdDsgfSBwZ3Byb3RfdDsKCnR5cGVkZWYg
c3RydWN0IHsgcGdkdmFsX3QgcGdkOyB9IHBnZF90OwojIDMwMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wZ3RhYmxlX3R5cGVzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwp
CnsKIHJldHVybiAocGdkX3QpIHsgdmFsICYgKH4wVUxMKSB9Owp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwZ2R2YWxfdCBuYXRpdmVf
cGdkX3ZhbChwZ2RfdCBwZ2QpCnsKIHJldHVybiBwZ2QucGdkICYgKH4wVUxMKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGdkdmFs
X3QgcGdkX2ZsYWdzKHBnZF90IHBnZCkKewogcmV0dXJuIG5hdGl2ZV9wZ2RfdmFsKHBnZCkgJiAo
figocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlz
X2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSkpOwp9CiMgMzI4ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3BndGFibGVfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJs
ZS1ub3A0ZC5oIiAxCiMgOSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUtbm9wNGQuaCIK
dHlwZWRlZiBzdHJ1Y3QgeyBwZ2RfdCBwZ2Q7IH0gcDRkX3Q7CiMgMjIgIi4vaW5jbHVkZS9hc20t
Z2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZ2Rfbm9uZShwZ2RfdCBwZ2QpIHsgcmV0dXJu
IDA7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgaW50IHBnZF9iYWQocGdkX3QgcGdkKSB7IHJldHVybiAwOyB9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZ2RfcHJlc2Vu
dChwZ2RfdCBwZ2QpIHsgcmV0dXJuIDE7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZ2RfY2xlYXIocGdkX3QgKnBnZCkgeyB9
CiMgMzYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcDRkLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZF90ICpwNGRf
b2Zmc2V0KHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKewogcmV0dXJuIChwNGRf
dCAqKXBnZDsKfQojIDMyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlX3R5cGVzLmgi
IDIKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHA0ZF90IG5hdGl2ZV9tYWtlX3A0ZChwdWR2YWxfdCB2YWwpCnsKIHJldHVybiAocDRkX3Qp
IHsgLnBnZCA9IG5hdGl2ZV9tYWtlX3BnZCgocGdkdmFsX3QpdmFsKSB9Owp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBu
YXRpdmVfcDRkX3ZhbChwNGRfdCBwNGQpCnsKIHJldHVybiBuYXRpdmVfcGdkX3ZhbChwNGQucGdk
KTsKfQoKCgp0eXBlZGVmIHN0cnVjdCB7IHB1ZHZhbF90IHB1ZDsgfSBwdWRfdDsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHB1ZF90IG5h
dGl2ZV9tYWtlX3B1ZChwbWR2YWxfdCB2YWwpCnsKIHJldHVybiAocHVkX3QpIHsgdmFsIH07Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHB1ZHZhbF90IG5hdGl2ZV9wdWRfdmFsKHB1ZF90IHB1ZCkKewogcmV0dXJuIHB1ZC5wdWQ7Cn0K
IyAzNjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgp0eXBlZGVmIHN0
cnVjdCB7IHBtZHZhbF90IHBtZDsgfSBwbWRfdDsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBtZF90IG5hdGl2ZV9tYWtlX3BtZChwbWR2
YWxfdCB2YWwpCnsKIHJldHVybiAocG1kX3QpIHsgdmFsIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBtZHZhbF90IG5hdGl2ZV9w
bWRfdmFsKHBtZF90IHBtZCkKewogcmV0dXJuIHBtZC5wbWQ7Cn0KIyAzOTMgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcGd0YWJsZV90eXBlcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwNGR2YWxfdCBwNGRfcGZuX21hc2socDRkX3Qg
cDRkKQp7CgogcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEy
KS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHA0ZHZhbF90
IHA0ZF9mbGFnc19tYXNrKHA0ZF90IHA0ZCkKewogcmV0dXJuIH5wNGRfcGZuX21hc2socDRkKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgcDRkdmFsX3QgcDRkX2ZsYWdzKHA0ZF90IHA0ZCkKewogcmV0dXJuIG5hdGl2ZV9wNGRfdmFs
KHA0ZCkgJiBwNGRfZmxhZ3NfbWFzayhwNGQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdWR2YWxfdCBwdWRfcGZuX21hc2socHVk
X3QgcHVkKQp7CiBpZiAobmF0aXZlX3B1ZF92YWwocHVkKSAmICgoKHB0ZXZhbF90KSgxKSkgPDwg
NykpCiAgcmV0dXJuICgoKHNpZ25lZCBsb25nKSh+KCgoMVVMKSA8PCAzMCktMSkpKSAmICgocGh5
c19hZGRyX3QpKCgxVUxMIDw8IDUyKSAtIDEpKSk7CiBlbHNlCiAgcmV0dXJuICgocHRldmFsX3Qp
KCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFV
TEwgPDwgNTIpIC0gMSkpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHB1ZHZhbF90IHB1ZF9mbGFnc19tYXNrKHB1ZF90IHB1ZCkK
ewogcmV0dXJuIH5wdWRfcGZuX21hc2socHVkKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHVkdmFsX3QgcHVkX2ZsYWdzKHB1ZF90
IHB1ZCkKewogcmV0dXJuIG5hdGl2ZV9wdWRfdmFsKHB1ZCkgJiBwdWRfZmxhZ3NfbWFzayhwdWQp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBwbWR2YWxfdCBwbWRfcGZuX21hc2socG1kX3QgcG1kKQp7CiBpZiAobmF0aXZlX3BtZF92
YWwocG1kKSAmICgoKHB0ZXZhbF90KSgxKSkgPDwgNykpCiAgcmV0dXJuICgoKHNpZ25lZCBsb25n
KSh+KCgoMVVMKSA8PCAyMSktMSkpKSAmICgocGh5c19hZGRyX3QpKCgxVUxMIDw8IDUyKSAtIDEp
KSk7CiBlbHNlCiAgcmV0dXJuICgocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8
IDEyKS0xKSkpICYgKChwaHlzX2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBtZHZh
bF90IHBtZF9mbGFnc19tYXNrKHBtZF90IHBtZCkKewogcmV0dXJuIH5wbWRfcGZuX21hc2socG1k
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgcG1kdmFsX3QgcG1kX2ZsYWdzKHBtZF90IHBtZCkKewogcmV0dXJuIG5hdGl2ZV9wbWRf
dmFsKHBtZCkgJiBwbWRfZmxhZ3NfbWFzayhwbWQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwdGVfdCBuYXRpdmVfbWFrZV9wdGUo
cHRldmFsX3QgdmFsKQp7CiByZXR1cm4gKHB0ZV90KSB7IC5wdGUgPSB2YWwgfTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRldmFs
X3QgbmF0aXZlX3B0ZV92YWwocHRlX3QgcHRlKQp7CiByZXR1cm4gcHRlLnB0ZTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcHRldmFs
X3QgcHRlX2ZsYWdzKHB0ZV90IHB0ZSkKewogcmV0dXJuIG5hdGl2ZV9wdGVfdmFsKHB0ZSkgJiAo
figocHRldmFsX3QpKCgoc2lnbmVkIGxvbmcpKH4oKCgxVUwpIDw8IDEyKS0xKSkpICYgKChwaHlz
X2FkZHJfdCkoKDFVTEwgPDwgNTIpIC0gMSkpKSkpOwp9CgpleHRlcm4gdWludDE2X3QgX19jYWNo
ZW1vZGUycHRlX3RibFtfUEFHRV9DQUNIRV9NT0RFX05VTV07CmV4dGVybiB1aW50OF90IF9fcHRl
MmNhY2hlbW9kZV90YmxbOF07CiMgNDcyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVf
dHlwZXMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBjYWNoZW1vZGUycHJvdHZhbChlbnVtIHBhZ2VfY2FjaGVf
bW9kZSBwY20pCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHBjbSA9PSAwKSwgMSkpCiAgcmV0
dXJuIDA7CiByZXR1cm4gX19jYWNoZW1vZGUycHRlX3RibFtwY21dOwp9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJvdF90IGNhY2hl
bW9kZTJwZ3Byb3QoZW51bSBwYWdlX2NhY2hlX21vZGUgcGNtKQp7CiByZXR1cm4gKChwZ3Byb3Rf
dCkgeyAoY2FjaGVtb2RlMnByb3R2YWwocGNtKSkgfSApOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0gcGFnZV9jYWNoZV9tb2Rl
IHBncHJvdDJjYWNoZW1vZGUocGdwcm90X3QgcGdwcm90KQp7CiB1bnNpZ25lZCBsb25nIG1hc2tl
ZDsKCiBtYXNrZWQgPSAoKHBncHJvdCkucGdwcm90KSAmICgoKChwdGV2YWxfdCkoMSkpIDw8IDMp
IHwgKCgocHRldmFsX3QpKDEpKSA8PCA0KSB8ICgoKHB0ZXZhbF90KSgxKSkgPDwgNykpOwogaWYg
KF9fYnVpbHRpbl9leHBlY3QoISEobWFza2VkID09IDApLCAxKSkKICByZXR1cm4gMDsKIHJldHVy
biBfX3B0ZTJjYWNoZW1vZGVfdGJsWygoKChtYXNrZWQpID4+ICg3IC0gMikpICYgNCkgfCAoKCht
YXNrZWQpID4+ICg0IC0gMSkpICYgMikgfCAoKChtYXNrZWQpID4+IDMpICYgMSkpXTsKfQpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwZ3By
b3RfdCBwZ3Byb3RfNGtfMl9sYXJnZShwZ3Byb3RfdCBwZ3Byb3QpCnsKIHBncHJvdHZhbF90IHZh
bCA9ICgocGdwcm90KS5wZ3Byb3QpOwogcGdwcm90X3QgbmV3OwoKICgobmV3KS5wZ3Byb3QpID0g
KHZhbCAmIH4oKCgocHRldmFsX3QpKDEpKSA8PCA3KSB8ICgoKHB0ZXZhbF90KSgxKSkgPDwgMTIp
KSkgfAogICgodmFsICYgKCgocHRldmFsX3QpKDEpKSA8PCA3KSkgPDwgKDEyIC0gNykpOwogcmV0
dXJuIG5ldzsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBwZ3Byb3RfdCBwZ3Byb3RfbGFyZ2VfMl80ayhwZ3Byb3RfdCBwZ3Byb3QpCnsK
IHBncHJvdHZhbF90IHZhbCA9ICgocGdwcm90KS5wZ3Byb3QpOwogcGdwcm90X3QgbmV3OwoKICgo
bmV3KS5wZ3Byb3QpID0gKHZhbCAmIH4oKCgocHRldmFsX3QpKDEpKSA8PCA3KSB8ICgoKHB0ZXZh
bF90KSgxKSkgPDwgMTIpKSkgfAogICAgICgodmFsICYgKCgocHRldmFsX3QpKDEpKSA8PCAxMikp
ID4+CiAgICAgICgxMiAtIDcpKTsKIHJldHVybiBuZXc7Cn0KCgp0eXBlZGVmIHN0cnVjdCBwYWdl
ICpwZ3RhYmxlX3Q7CgpleHRlcm4gcHRldmFsX3QgX19zdXBwb3J0ZWRfcHRlX21hc2s7CmV4dGVy
biBwdGV2YWxfdCBfX2RlZmF1bHRfa2VybmVsX3B0ZV9tYXNrOwpleHRlcm4gdm9pZCBzZXRfbngo
dm9pZCk7CmV4dGVybiBpbnQgbnhfZW5hYmxlZDsKCgpleHRlcm4gcGdwcm90X3QgcGdwcm90X3dy
aXRlY29tYmluZShwZ3Byb3RfdCBwcm90KTsKCgpleHRlcm4gcGdwcm90X3QgcGdwcm90X3dyaXRl
dGhyb3VnaChwZ3Byb3RfdCBwcm90KTsKCgoKCgpzdHJ1Y3QgZmlsZTsKcGdwcm90X3QgcGh5c19t
ZW1fYWNjZXNzX3Byb3Qoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgcGZuLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90IHZt
YV9wcm90KTsKCgp2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3Qg
cHRlKTsKCgoKCgoKCnN0cnVjdCBzZXFfZmlsZTsKZXh0ZXJuIHZvaWQgYXJjaF9yZXBvcnRfbWVt
aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwoKZW51bSBwZ19sZXZlbCB7CiBQR19MRVZFTF9OT05F
LAogUEdfTEVWRUxfNEssCiBQR19MRVZFTF8yTSwKIFBHX0xFVkVMXzFHLAogUEdfTEVWRUxfNTEy
RywKIFBHX0xFVkVMX05VTQp9OwoKCmV4dGVybiB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBs
ZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcyk7CiMgNTY2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BndGFibGVfdHlwZXMuaCIKZXh0ZXJuIHB0ZV90ICpsb29rdXBfYWRkcmVzcyh1bnNpZ25lZCBs
b25nIGFkZHJlc3MsIHVuc2lnbmVkIGludCAqbGV2ZWwpOwpleHRlcm4gcHRlX3QgKmxvb2t1cF9h
ZGRyZXNzX2luX3BnZChwZ2RfdCAqcGdkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAgICAgICAg
dW5zaWduZWQgaW50ICpsZXZlbCk7CgpzdHJ1Y3QgbW1fc3RydWN0OwpleHRlcm4gcHRlX3QgKmxv
b2t1cF9hZGRyZXNzX2luX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFk
ZHJlc3MsCiAgICAgICB1bnNpZ25lZCBpbnQgKmxldmVsKTsKZXh0ZXJuIHBtZF90ICpsb29rdXBf
cG1kX2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyZXNzKTsKZXh0ZXJuIHBoeXNfYWRkcl90IHNs
b3dfdmlydF90b19waHlzKHZvaWQgKl9fYWRkcmVzcyk7CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVf
XygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkg
a2VybmVsX21hcF9wYWdlc19pbl9wZ2QocGdkX3QgKnBnZCwgdTY0IHBmbiwKICAgICAgIHVuc2ln
bmVkIGxvbmcgYWRkcmVzcywKICAgICAgIHVuc2lnbmVkIG51bXBhZ2VzLAogICAgICAgdW5zaWdu
ZWQgbG9uZyBwYWdlX2ZsYWdzKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBrZXJuZWxfdW5tYXBf
cGFnZXNfaW5fcGdkKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKICAgICAgICAg
dW5zaWduZWQgbG9uZyBudW1wYWdlcyk7CiMgNDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnRfdHlwZXMuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5j
aC5oIiAxCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvc3RhdGljX2tleS5oIiAxCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L2p1bXBfbGFiZWwuaCIgMQojIDc5ICIuL2luY2x1ZGUvbGludXgvanVtcF9s
YWJlbC5oIgpleHRlcm4gYm9vbCBzdGF0aWNfa2V5X2luaXRpYWxpemVkOwoKCgoKCgoKc3RydWN0
IHN0YXRpY19rZXkgewogYXRvbWljX3QgZW5hYmxlZDsKIyAxMDIgIi4vaW5jbHVkZS9saW51eC9q
dW1wX2xhYmVsLmgiCiB1bmlvbiB7CiAgdW5zaWduZWQgbG9uZyB0eXBlOwogIHN0cnVjdCBqdW1w
X2VudHJ5ICplbnRyaWVzOwogIHN0cnVjdCBzdGF0aWNfa2V5X21vZCAqbmV4dDsKIH07Cn07CiMg
MTE3ICIuL2luY2x1ZGUvbGludXgvanVtcF9sYWJlbC5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vanVtcF9sYWJlbC5oIiAxCiMgMjMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vanVtcF9s
YWJlbC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wgYXJjaF9zdGF0
aWNfYnJhbmNoKHN0cnVjdCBzdGF0aWNfa2V5ICprZXksIGJvb2wgYnJhbmNoKQp7CiBkbyB7IGFz
bSBnb3RvKCIxOiIgIi5ieXRlICIgIjB4MGYsMHgxZiwweDQ0LDB4MDAsMCIgIlxuXHQiICIucHVz
aHNlY3Rpb24gX19qdW1wX3RhYmxlLCAgXCJhd1wiIFxuXHQiICIgIiAiLmJhbGlnbiA4IiAiICIg
IlxuXHQiICIubG9uZyAxYiAtIC4sICVsW2xfeWVzXSAtIC4gXG5cdCIgIiAiICIucXVhZCIgIiAi
ICIlYzAgKyAlYzEgLSAuXG5cdCIgIi5wb3BzZWN0aW9uIFxuXHQiIDogOiAiaSIgKGtleSksICJp
IiAoYnJhbmNoKSA6IDogbF95ZXMpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkKCgoKCgoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CgogcmV0dXJuIGZhbHNlOwpsX3ll
czoKIHJldHVybiB0cnVlOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJv
b2wgYXJjaF9zdGF0aWNfYnJhbmNoX2p1bXAoc3RydWN0IHN0YXRpY19rZXkgKmtleSwgYm9vbCBi
cmFuY2gpCnsKIGRvIHsgYXNtIGdvdG8oIjE6IiAiLmJ5dGUgMHhlOVxuXHQgLmxvbmcgJWxbbF95
ZXNdIC0gMmZcblx0IiAiMjpcblx0IiAiLnB1c2hzZWN0aW9uIF9fanVtcF90YWJsZSwgIFwiYXdc
IiBcblx0IiAiICIgIi5iYWxpZ24gOCIgIiAiICJcblx0IiAiLmxvbmcgMWIgLSAuLCAlbFtsX3ll
c10gLSAuIFxuXHQiICIgIiAiLnF1YWQiICIgIiAiJWMwICsgJWMxIC0gLlxuXHQiICIucG9wc2Vj
dGlvbiBcblx0IiA6IDogImkiIChrZXkpLCAiaSIgKGJyYW5jaCkgOiA6IGxfeWVzKTsgYXNtICgi
Iik7IH0gd2hpbGUgKDApCgoKCgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDsKCiByZXR1cm4gZmFsc2U7CmxfeWVzOgogcmV0dXJuIHRydWU7Cn0KIyAxMTggIi4v
aW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiIDIKCgoKCnN0cnVjdCBqdW1wX2VudHJ5IHsKIHMz
MiBjb2RlOwogczMyIHRhcmdldDsKIGxvbmcga2V5Owp9OwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBqdW1wX2Vu
dHJ5X2NvZGUoY29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2ln
bmVkIGxvbmcpJmVudHJ5LT5jb2RlICsgZW50cnktPmNvZGU7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcganVt
cF9lbnRyeV90YXJnZXQoY29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4g
KHVuc2lnbmVkIGxvbmcpJmVudHJ5LT50YXJnZXQgKyBlbnRyeS0+dGFyZ2V0Owp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qg
c3RhdGljX2tleSAqanVtcF9lbnRyeV9rZXkoY29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5
KQp7CiBsb25nIG9mZnNldCA9IGVudHJ5LT5rZXkgJiB+M0w7CgogcmV0dXJuIChzdHJ1Y3Qgc3Rh
dGljX2tleSAqKSgodW5zaWduZWQgbG9uZykmZW50cnktPmtleSArIG9mZnNldCk7Cn0KIyAxNjQg
Ii4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wganVtcF9lbnRyeV9pc19icmFuY2go
Y29uc3Qgc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcp
ZW50cnktPmtleSAmIDFVTDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBqdW1wX2VudHJ5X2lzX2luaXQoY29uc3Qgc3RydWN0
IGp1bXBfZW50cnkgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcpZW50cnktPmtleSAm
IDJVTDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBqdW1wX2VudHJ5X3NldF9pbml0KHN0cnVjdCBqdW1wX2VudHJ5ICplbnRy
eSkKewogZW50cnktPmtleSB8PSAyOwp9CgoKCgoKCmVudW0ganVtcF9sYWJlbF90eXBlIHsKIEpV
TVBfTEFCRUxfTk9QID0gMCwKIEpVTVBfTEFCRUxfSk1QLAp9OwoKc3RydWN0IG1vZHVsZTsKIyAx
OTggIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgYm9vbCBzdGF0aWNfa2V5X2ZhbHNlKHN0cnVjdCBzdGF0aWNfa2V5ICprZXkp
CnsKIHJldHVybiBhcmNoX3N0YXRpY19icmFuY2goa2V5LCBmYWxzZSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbCBzdGF0aWNfa2V5X3RydWUoc3RydWN0IHN0YXRp
Y19rZXkgKmtleSkKewogcmV0dXJuICFhcmNoX3N0YXRpY19icmFuY2goa2V5LCB0cnVlKTsKfQoK
ZXh0ZXJuIHN0cnVjdCBqdW1wX2VudHJ5IF9fc3RhcnRfX19qdW1wX3RhYmxlW107CmV4dGVybiBz
dHJ1Y3QganVtcF9lbnRyeSBfX3N0b3BfX19qdW1wX3RhYmxlW107CgpleHRlcm4gdm9pZCBqdW1w
X2xhYmVsX2luaXQodm9pZCk7CmV4dGVybiB2b2lkIGp1bXBfbGFiZWxfbG9jayh2b2lkKTsKZXh0
ZXJuIHZvaWQganVtcF9sYWJlbF91bmxvY2sodm9pZCk7CmV4dGVybiB2b2lkIGFyY2hfanVtcF9s
YWJlbF90cmFuc2Zvcm0oc3RydWN0IGp1bXBfZW50cnkgKmVudHJ5LAogICAgICAgICAgZW51bSBq
dW1wX2xhYmVsX3R5cGUgdHlwZSk7CmV4dGVybiB2b2lkIGFyY2hfanVtcF9sYWJlbF90cmFuc2Zv
cm1fc3RhdGljKHN0cnVjdCBqdW1wX2VudHJ5ICplbnRyeSwKICAgICAgICAgIGVudW0ganVtcF9s
YWJlbF90eXBlIHR5cGUpOwpleHRlcm4gYm9vbCBhcmNoX2p1bXBfbGFiZWxfdHJhbnNmb3JtX3F1
ZXVlKHN0cnVjdCBqdW1wX2VudHJ5ICplbnRyeSwKICAgICAgICAgZW51bSBqdW1wX2xhYmVsX3R5
cGUgdHlwZSk7CmV4dGVybiB2b2lkIGFyY2hfanVtcF9sYWJlbF90cmFuc2Zvcm1fYXBwbHkodm9p
ZCk7CmV4dGVybiBpbnQganVtcF9sYWJlbF90ZXh0X3Jlc2VydmVkKHZvaWQgKnN0YXJ0LCB2b2lk
ICplbmQpOwpleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfaW5jKHN0cnVjdCBzdGF0aWNfa2V5
ICprZXkpOwpleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfZGVjKHN0cnVjdCBzdGF0aWNfa2V5
ICprZXkpOwpleHRlcm4gdm9pZCBzdGF0aWNfa2V5X3Nsb3dfaW5jX2NwdXNsb2NrZWQoc3RydWN0
IHN0YXRpY19rZXkgKmtleSk7CmV4dGVybiB2b2lkIHN0YXRpY19rZXlfc2xvd19kZWNfY3B1c2xv
Y2tlZChzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQganVtcF9sYWJlbF9hcHBs
eV9ub3BzKHN0cnVjdCBtb2R1bGUgKm1vZCk7CmV4dGVybiBpbnQgc3RhdGljX2tleV9jb3VudChz
dHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9lbmFibGUoc3Ry
dWN0IHN0YXRpY19rZXkgKmtleSk7CmV4dGVybiB2b2lkIHN0YXRpY19rZXlfZGlzYWJsZShzdHJ1
Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9lbmFibGVfY3B1c2xv
Y2tlZChzdHJ1Y3Qgc3RhdGljX2tleSAqa2V5KTsKZXh0ZXJuIHZvaWQgc3RhdGljX2tleV9kaXNh
YmxlX2NwdXNsb2NrZWQoc3RydWN0IHN0YXRpY19rZXkgKmtleSk7CiMgMzQ2ICIuL2luY2x1ZGUv
bGludXgvanVtcF9sYWJlbC5oIgpzdHJ1Y3Qgc3RhdGljX2tleV90cnVlIHsKIHN0cnVjdCBzdGF0
aWNfa2V5IGtleTsKfTsKCnN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIHsKIHN0cnVjdCBzdGF0aWNf
a2V5IGtleTsKfTsKIyAzODUgIi4vaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmgiCmV4dGVybiBi
b29sIF9fX193cm9uZ19icmFuY2hfZXJyb3Iodm9pZCk7CiMgMiAiLi9pbmNsdWRlL2xpbnV4L3N0
YXRpY19rZXkuaCIgMgojIDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5o
IiAyCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLWFzbS5oIiAxCiMg
MTAgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5oIiAyCgojIDEgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L2JpdHMuaCIgMQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgiIDIKIyAx
MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiIDIKIyAyMTMgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLWJyYW5jaC5oIgplbnVtIHNwZWN0cmVfdjJfbWl0aWdh
dGlvbiB7CiBTUEVDVFJFX1YyX05PTkUsCiBTUEVDVFJFX1YyX1JFVFBPTElORV9HRU5FUklDLAog
U1BFQ1RSRV9WMl9SRVRQT0xJTkVfQU1ELAogU1BFQ1RSRV9WMl9JQlJTX0VOSEFOQ0VELAp9OwoK
CmVudW0gc3BlY3RyZV92Ml91c2VyX21pdGlnYXRpb24gewogU1BFQ1RSRV9WMl9VU0VSX05PTkUs
CiBTUEVDVFJFX1YyX1VTRVJfU1RSSUNULAogU1BFQ1RSRV9WMl9VU0VSX1NUUklDVF9QUkVGRVJS
RUQsCiBTUEVDVFJFX1YyX1VTRVJfUFJDVEwsCiBTUEVDVFJFX1YyX1VTRVJfU0VDQ09NUCwKfTsK
CgplbnVtIHNzYl9taXRpZ2F0aW9uIHsKIFNQRUNfU1RPUkVfQllQQVNTX05PTkUsCiBTUEVDX1NU
T1JFX0JZUEFTU19ESVNBQkxFLAogU1BFQ19TVE9SRV9CWVBBU1NfUFJDVEwsCiBTUEVDX1NUT1JF
X0JZUEFTU19TRUNDT01QLAp9OwoKZXh0ZXJuIGNoYXIgX19pbmRpcmVjdF90aHVua19zdGFydFtd
OwpleHRlcm4gY2hhciBfX2luZGlyZWN0X3RodW5rX2VuZFtdOwoKCgoKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB2bWV4aXRf
ZmlsbF9SU0Iodm9pZCkKewoKIHVuc2lnbmVkIGxvbmcgbG9vcHM7CgogYXNtIHZvbGF0aWxlICgi
OTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQuaWdub3JlX2FsdHNcblx0IiAiLmxvbmcg
OTk5YiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IgogICAgICAgICIjIEFMVDogb2xkbnN0clxu
IiAiNjYxOlxuXHQiICJqbXAgOTEwZiIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmdcbiIgIi5z
a2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSA+
IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIp
KSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFc
IlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxuIiAiIC53
b3JkICIgIiggNyozMisxMikiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5i
eXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJi
IiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVu
dCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5c
dCIgIm1vdiAkKDMyLzIpLCAlMDsgNzcxOiBjYWxsIDc3MmY7IDc3MzogcGF1c2U7IGxmZW5jZTsg
am1wIDc3M2I7IDc3MjogY2FsbCA3NzRmOyA3NzU6IHBhdXNlOyBsZmVuY2U7IGptcCA3NzViOyA3
NzQ6IGRlYyAlMDsgam56IDc3MWI7IGFkZCAkKDY0LzgpICogMzIsICUxOyIgIlxuIiAiNjY1IiIx
IiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIKCgogICAgICAgICI5MTA6IgogICAgICAgIDogIj1yIiAo
bG9vcHMpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpCiAgICAgICAgOiA6ICJtZW1vcnki
ICk7Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZvaWQgYWx0ZXJuYXRp
dmVfbXNyX3dyaXRlKHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwsIHVuc2lnbmVkIGludCBmZWF0
dXJlKQp7CiBhc20gdm9sYXRpbGUoIiMgQUxUOiBvbGRuc3RyXG4iICI2NjE6XG5cdCIgIiIgIlxu
NjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmdcbiIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2
NjQiIjEiImYiICIpLSgiICI2NjJiLTY2MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVz
aHNlY3Rpb24gLmFsdGluc3RydWN0aW9ucyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIg
LmxvbmcgIiAiNjY0IiIxIiJmIC0gLlxuIiAiIC53b3JkICIgIiVjW2ZlYXR1cmVdIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEi
ImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5w
dXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxh
Y2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIiOlxuXHQiICJ3cm1zciIgIlxuIiAiNjY1IiIxIiAi
OlxuIiAiLnBvcHNlY3Rpb25cbiIKICA6IDogImMiIChtc3IpLAogICAgICAiYSIgKCh1MzIpdmFs
KSwKICAgICAgImQiICgodTMyKSh2YWwgPj4gMzIpKSwKICAgICAgW2ZlYXR1cmVdICJpIiAoZmVh
dHVyZSkKICA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbmRpcmVjdF9icmFuY2hfcHJlZGljdGlvbl9i
YXJyaWVyKHZvaWQpCnsKIHU2NCB2YWwgPSAoKCgoMVVMKSkpIDw8ICgwKSk7CgogYWx0ZXJuYXRp
dmVfbXNyX3dyaXRlKDB4MDAwMDAwNDksIHZhbCwgKCA3KjMyKzIxKSk7Cn0KCgpleHRlcm4gdTY0
IHg4Nl9zcGVjX2N0cmxfYmFzZTsKIyAzMDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVj
LWJyYW5jaC5oIgpleHRlcm4gc3RydWN0IHN0YXRpY19rZXlfZmFsc2Ugc3dpdGNoX3RvX2NvbmRf
c3RpYnA7CmV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZSBzd2l0Y2hfbW1fY29uZF9pYnBi
OwpleHRlcm4gc3RydWN0IHN0YXRpY19rZXlfZmFsc2Ugc3dpdGNoX21tX2Fsd2F5c19pYnBiOwoK
ZXh0ZXJuIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIG1kc191c2VyX2NsZWFyOwpleHRlcm4gc3Ry
dWN0IHN0YXRpY19rZXlfZmFsc2UgbWRzX2lkbGVfY2xlYXI7CiMgMzIyICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL25vc3BlYy1icmFuY2guaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNfY2xlYXJfY3B1X2J1ZmZlcnModm9p
ZCkKewogc3RhdGljIGNvbnN0IHUxNiBkcyA9ICgzKjgpOwojIDMzNSAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9ub3NwZWMtYnJhbmNoLmgiCiBhc20gdm9sYXRpbGUoInZlcncgJVtkc10iIDogOiBb
ZHNdICJtIiAoZHMpIDogImNjIik7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNfdXNlcl9jbGVhcl9jcHVfYnVm
ZmVycyh2b2lkKQp7CiBpZiAoKHsgYm9vbCBicmFuY2g7IGlmIChfX2J1aWx0aW5fdHlwZXNfY29t
cGF0aWJsZV9wKHR5cGVvZigqJm1kc191c2VyX2NsZWFyKSwgc3RydWN0IHN0YXRpY19rZXlfdHJ1
ZSkpIGJyYW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2goJigmbWRzX3VzZXJfY2xlYXIpLT5rZXks
IHRydWUpOyBlbHNlIGlmIChfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqJm1k
c191c2VyX2NsZWFyKSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2UpKSBicmFuY2ggPSAhYXJjaF9z
dGF0aWNfYnJhbmNoX2p1bXAoJigmbWRzX3VzZXJfY2xlYXIpLT5rZXksIHRydWUpOyBlbHNlIGJy
YW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWlsdGluX2V4cGVjdCghIShicmFu
Y2gpLCAxKTsgfSkpCiAgbWRzX2NsZWFyX2NwdV9idWZmZXJzKCk7Cn0KCgoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtZHNf
aWRsZV9jbGVhcl9jcHVfYnVmZmVycyh2b2lkKQp7CiBpZiAoKHsgYm9vbCBicmFuY2g7IGlmIChf
X2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqJm1kc19pZGxlX2NsZWFyKSwgc3Ry
dWN0IHN0YXRpY19rZXlfdHJ1ZSkpIGJyYW5jaCA9ICFhcmNoX3N0YXRpY19icmFuY2goJigmbWRz
X2lkbGVfY2xlYXIpLT5rZXksIHRydWUpOyBlbHNlIGlmIChfX2J1aWx0aW5fdHlwZXNfY29tcGF0
aWJsZV9wKHR5cGVvZigqJm1kc19pZGxlX2NsZWFyKSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2Up
KSBicmFuY2ggPSAhYXJjaF9zdGF0aWNfYnJhbmNoX2p1bXAoJigmbWRzX2lkbGVfY2xlYXIpLT5r
ZXksIHRydWUpOyBlbHNlIGJyYW5jaCA9IF9fX193cm9uZ19icmFuY2hfZXJyb3IoKTsgX19idWls
dGluX2V4cGVjdCghIShicmFuY2gpLCAxKTsgfSkpCiAgbWRzX2NsZWFyX2NwdV9idWZmZXJzKCk7
Cn0KIyA0NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIiAyCgpzdHJ1
Y3QgcGFnZTsKc3RydWN0IHRocmVhZF9zdHJ1Y3Q7CnN0cnVjdCBkZXNjX3B0cjsKc3RydWN0IHRz
c19zdHJ1Y3Q7CnN0cnVjdCBtbV9zdHJ1Y3Q7CnN0cnVjdCBkZXNjX3N0cnVjdDsKc3RydWN0IHRh
c2tfc3RydWN0OwpzdHJ1Y3QgY3B1bWFzazsKc3RydWN0IGZsdXNoX3RsYl9pbmZvOwpzdHJ1Y3Qg
bW11X2dhdGhlcjsKc3RydWN0IHZtX2FyZWFfc3RydWN0OwoKCgoKCnN0cnVjdCBwYXJhdmlydF9j
YWxsZWVfc2F2ZSB7CiB2b2lkICpmdW5jOwp9OwoKCnN0cnVjdCBwdl9pbmZvIHsKIyA3OSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgogY29uc3QgY2hhciAqbmFtZTsK
fTsKCnN0cnVjdCBwdl9pbml0X29wcyB7CiMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnRfdHlwZXMuaCIKIHVuc2lnbmVkICgqcGF0Y2gpKHU4IHR5cGUsIHZvaWQgKmluc25fYnVm
ZiwKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxlbik7Cn0gOwojIDEwNCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgpzdHJ1Y3QgcHZfdGltZV9vcHMg
ewogdW5zaWduZWQgbG9uZyBsb25nICgqc2NoZWRfY2xvY2spKHZvaWQpOwogdW5zaWduZWQgbG9u
ZyBsb25nICgqc3RlYWxfY2xvY2spKGludCBjcHUpOwp9IDsKCnN0cnVjdCBwdl9jcHVfb3BzIHsK
CiB2b2lkICgqaW9fZGVsYXkpKHZvaWQpOwojIDE4MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
YXJhdmlydF90eXBlcy5oIgp9IDsKCnN0cnVjdCBwdl9pcnFfb3BzIHsKIyAyMDQgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCIKfSA7CgpzdHJ1Y3QgcHZfbW11X29wcyB7
Cgogdm9pZCAoKmZsdXNoX3RsYl91c2VyKSh2b2lkKTsKIHZvaWQgKCpmbHVzaF90bGJfa2VybmVs
KSh2b2lkKTsKIHZvaWQgKCpmbHVzaF90bGJfb25lX3VzZXIpKHVuc2lnbmVkIGxvbmcgYWRkcik7
CiB2b2lkICgqZmx1c2hfdGxiX290aGVycykoY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdXMsCiAg
ICAgY29uc3Qgc3RydWN0IGZsdXNoX3RsYl9pbmZvICppbmZvKTsKCiB2b2lkICgqdGxiX3JlbW92
ZV90YWJsZSkoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgdm9pZCAqdGFibGUpOwoKCiB2b2lkICgq
ZXhpdF9tbWFwKShzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiMgMzA2ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgiCn0gOwoKc3RydWN0IGFyY2hfc3BpbmxvY2s7CgojIDEg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2tfdHlwZXMuaCIgMQojIDE2ICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrX3R5cGVzLmgiCnR5cGVkZWYgdTggX190aWNrZXRfdDsK
dHlwZWRlZiB1MTYgX190aWNrZXRwYWlyX3Q7CiMgMjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c3BpbmxvY2tfdHlwZXMuaCIKIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2NrX3R5
cGVzLmgiIDEKIyAyMiAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3FzcGlubG9ja190eXBlcy5oIgp0
eXBlZGVmIHN0cnVjdCBxc3BpbmxvY2sgewogdW5pb24gewogIGF0b21pY190IHZhbDsKCgoKCgoK
CiAgc3RydWN0IHsKICAgdTggbG9ja2VkOwogICB1OCBwZW5kaW5nOwogIH07CiAgc3RydWN0IHsK
ICAgdTE2IGxvY2tlZF9wZW5kaW5nOwogICB1MTYgdGFpbDsKICB9OwojIDUxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvcXNwaW5sb2NrX3R5cGVzLmgiCiB9Owp9IGFyY2hfc3BpbmxvY2tfdDsKIyAy
OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9ja190eXBlcy5oIiAyCgojIDEgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9xcndsb2NrX3R5cGVzLmgiIDEKCgoKCgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS9ieXRlb3JkZXIuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgv
Ynl0ZW9yZGVyL2xpdHRsZV9lbmRpYW4uaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51
eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAxCiMgMTMgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3N3YWIuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zd2FiLmgiIDEKCgoKCgoKCiMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3N3YWIuaCIgMQoKCgoKCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19jb25zdF9fKSkgX191MzIgX19hcmNoX3N3YWIzMihfX3UzMiB2YWwpCnsKIGFzbSgiYnN3YXBs
ICUwIiA6ICI9ciIgKHZhbCkgOiAiMCIgKHZhbCkpOwogcmV0dXJuIHZhbDsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fY29uc3RfXykpIF9fdTY0IF9fYXJjaF9zd2FiNjQoX191NjQgdmFsKQp7CiMgMzEg
Ii4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zd2FiLmgiCiBhc20oImJzd2FwcSAlMCIgOiAi
PXIiICh2YWwpIDogIjAiICh2YWwpKTsKIHJldHVybiB2YWw7Cgp9CiMgOSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvc3dhYi5oIiAyCiMgNDggIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N3YWIuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19jb25zdF9fKSkgX191MTYgX19mc3dhYjE2KF9fdTE2IHZhbCkKewoKCgog
cmV0dXJuICgoX191MTYpKCAoKChfX3UxNikodmFsKSAmIChfX3UxNikweDAwZmZVKSA8PCA4KSB8
ICgoKF9fdTE2KSh2YWwpICYgKF9fdTE2KTB4ZmYwMFUpID4+IDgpKSk7Cgp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FiMzIoX191MzIgdmFsKQp7CgogcmV0dXJuIF9f
YXJjaF9zd2FiMzIodmFsKTsKCgoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25zdF9fKSkgX191NjQg
X19mc3dhYjY0KF9fdTY0IHZhbCkKewoKIHJldHVybiBfX2FyY2hfc3dhYjY0KHZhbCk7CgoKCgoK
Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FodzMyKF9fdTMyIHZh
bCkKewoKCgogcmV0dXJuICgoX191MzIpKCAoKChfX3UzMikodmFsKSAmIChfX3UzMikweDAwMDBm
ZmZmVUwpIDw8IDE2KSB8ICgoKF9fdTMyKSh2YWwpICYgKF9fdTMyKTB4ZmZmZjAwMDBVTCkgPj4g
MTYpKSk7Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBfX3UzMiBfX2Zzd2FoYjMyKF9f
dTMyIHZhbCkKewoKCgogcmV0dXJuICgoX191MzIpKCAoKChfX3UzMikodmFsKSAmIChfX3UzMikw
eDAwZmYwMGZmVUwpIDw8IDgpIHwgKCgoX191MzIpKHZhbCkgJiAoX191MzIpMHhmZjAwZmYwMFVM
KSA+PiA4KSkpOwoKfQojIDEzNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3dhYi5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgX19zd2FiKGNvbnN0IHVu
c2lnbmVkIGxvbmcgeSkKewoKIHJldHVybiAoX191NjQpX19idWlsdGluX2Jzd2FwNjQoKF9fdTY0
KSh5KSk7CgoKCn0KIyAxNzEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N3YWIuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBfX3UxNiBfX3N3YWIxNnAoY29uc3QgX191MTYgKnAp
CnsKCgoKIHJldHVybiAoX191MTYpX19idWlsdGluX2Jzd2FwMTYoKF9fdTE2KSgqcCkpOwoKfQoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX191MzIgX19zd2FiMzJwKGNv
bnN0IF9fdTMyICpwKQp7CgoKCiByZXR1cm4gKF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChfX3Uz
MikoKnApKTsKCn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTY0
IF9fc3dhYjY0cChjb25zdCBfX3U2NCAqcCkKewoKCgogcmV0dXJuIChfX3U2NClfX2J1aWx0aW5f
YnN3YXA2NCgoX191NjQpKCpwKSk7Cgp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3UzMiBfX3N3YWh3MzJwKGNvbnN0IF9f
dTMyICpwKQp7CgoKCiByZXR1cm4gKF9fYnVpbHRpbl9jb25zdGFudF9wKChfX3UzMikoKnApKSA/
ICgoX191MzIpKCAoKChfX3UzMikoKnApICYgKF9fdTMyKTB4MDAwMGZmZmZVTCkgPDwgMTYpIHwg
KCgoX191MzIpKCpwKSAmIChfX3UzMikweGZmZmYwMDAwVUwpID4+IDE2KSkpIDogX19mc3dhaHcz
MigqcCkpOwoKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MzIgX19zd2FoYjMycChjb25zdCBfX3UzMiAqcCkKewoKCgog
cmV0dXJuIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoX191MzIpKCpwKSkgPyAoKF9fdTMyKSggKCgo
X191MzIpKCpwKSAmIChfX3UzMikweDAwZmYwMGZmVUwpIDw8IDgpIHwgKCgoX191MzIpKCpwKSAm
IChfX3UzMikweGZmMDBmZjAwVUwpID4+IDgpKSkgOiBfX2Zzd2FoYjMyKCpwKSk7Cgp9CgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBfX3N3YWIxNnMoX191MTYgKnApCnsKCgoKICpwID0gX19zd2FiMTZwKHApOwoKfQoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fc3dhYjMycyhfX3UzMiAq
cCkKewoKCgogKnAgPSBfX3N3YWIzMnAocCk7Cgp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIF9fc3dhYjY0cyhfX3U2NCAqcCkKewoKCgogKnAgPSBfX3N3YWI2
NHAocCk7Cgp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc3dhaHczMnMoX191MzIgKnApCnsKCgoKICpwID0gX19z
d2FodzMycChwKTsKCn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19zd2FoYjMycyhfX3UzMiAqcCkKewoKCgogKnAg
PSBfX3N3YWhiMzJwKHApOwoKfQojIDYgIi4vaW5jbHVkZS9saW51eC9zd2FiLmgiIDIKIyAxNCAi
Li9pbmNsdWRlL3VhcGkvbGludXgvYnl0ZW9yZGVyL2xpdHRsZV9lbmRpYW4uaCIgMgojIDQ0ICIu
L2luY2x1ZGUvdWFwaS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbGU2NCBfX2NwdV90b19sZTY0cChjb25zdCBfX3U2
NCAqcCkKewogcmV0dXJuICggX19sZTY0KSpwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgX191NjQgX19sZTY0X3RvX2NwdXAoY29uc3QgX19sZTY0ICpwKQp7CiByZXR1cm4g
KCBfX3U2NCkqcDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fbGUzMiBf
X2NwdV90b19sZTMycChjb25zdCBfX3UzMiAqcCkKewogcmV0dXJuICggX19sZTMyKSpwOwp9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX191MzIgX19sZTMyX3RvX2NwdXAoY29u
c3QgX19sZTMyICpwKQp7CiByZXR1cm4gKCBfX3UzMikqcDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIF9fbGUxNiBfX2NwdV90b19sZTE2cChjb25zdCBfX3UxNiAqcCkKewog
cmV0dXJuICggX19sZTE2KSpwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
X191MTYgX19sZTE2X3RvX2NwdXAoY29uc3QgX19sZTE2ICpwKQp7CiByZXR1cm4gKCBfX3UxNikq
cDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYmU2NCBfX2NwdV90b19i
ZTY0cChjb25zdCBfX3U2NCAqcCkKewogcmV0dXJuICggX19iZTY0KV9fc3dhYjY0cChwKTsKfQpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTY0IF9fYmU2NF90b19jcHVwKGNv
bnN0IF9fYmU2NCAqcCkKewogcmV0dXJuIF9fc3dhYjY0cCgoX191NjQgKilwKTsKfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIF9fYmUzMiBfX2NwdV90b19iZTMycChjb25zdCBf
X3UzMiAqcCkKewogcmV0dXJuICggX19iZTMyKV9fc3dhYjMycChwKTsKfQpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIF9fdTMyIF9fYmUzMl90b19jcHVwKGNvbnN0IF9fYmUzMiAq
cCkKewogcmV0dXJuIF9fc3dhYjMycCgoX191MzIgKilwKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIF9fYmUxNiBfX2NwdV90b19iZTE2cChjb25zdCBfX3UxNiAqcCkKewog
cmV0dXJuICggX19iZTE2KV9fc3dhYjE2cChwKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIF9fdTE2IF9fYmUxNl90b19jcHVwKGNvbnN0IF9fYmUxNiAqcCkKewogcmV0dXJu
IF9fc3dhYjE2cCgoX191MTYgKilwKTsKfQojIDYgIi4vaW5jbHVkZS9saW51eC9ieXRlb3JkZXIv
bGl0dGxlX2VuZGlhbi5oIiAyCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvYnl0ZW9yZGVyL2dl
bmVyaWMuaCIgMQojIDE0NCAiLi9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgbGUxNl9hZGRfY3B1KF9fbGUxNiAqdmFyLCB1MTYgdmFsKQp7CiAqdmFyID0gKCggX19sZTE2
KShfX3UxNikoKCggX191MTYpKF9fbGUxNikoKnZhcikpICsgdmFsKSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGUzMl9h
ZGRfY3B1KF9fbGUzMiAqdmFyLCB1MzIgdmFsKQp7CiAqdmFyID0gKCggX19sZTMyKShfX3UzMiko
KCggX191MzIpKF9fbGUzMikoKnZhcikpICsgdmFsKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGU2NF9hZGRfY3B1KF9f
bGU2NCAqdmFyLCB1NjQgdmFsKQp7CiAqdmFyID0gKCggX19sZTY0KShfX3U2NCkoKCggX191NjQp
KF9fbGU2NCkoKnZhcikpICsgdmFsKSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxlMzJfdG9fY3B1X2FycmF5KHUzMiAq
YnVmLCB1bnNpZ25lZCBpbnQgd29yZHMpCnsKIHdoaWxlICh3b3Jkcy0tKSB7CiAgZG8geyAodm9p
ZCkoYnVmKTsgfSB3aGlsZSAoMCk7CiAgYnVmKys7CiB9Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1X3RvX2xlMzJfYXJy
YXkodTMyICpidWYsIHVuc2lnbmVkIGludCB3b3JkcykKewogd2hpbGUgKHdvcmRzLS0pIHsKICBk
byB7ICh2b2lkKShidWYpOyB9IHdoaWxlICgwKTsKICBidWYrKzsKIH0KfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiZTE2X2Fk
ZF9jcHUoX19iZTE2ICp2YXIsIHUxNiB2YWwpCnsKICp2YXIgPSAoKCBfX2JlMTYpKF9fdTE2KV9f
YnVpbHRpbl9ic3dhcDE2KChfX3UxNikoKChfX3UxNilfX2J1aWx0aW5fYnN3YXAxNigoX191MTYp
KCggX191MTYpKF9fYmUxNikoKnZhcikpKSArIHZhbCkpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl9hZGRfY3B1
KF9fYmUzMiAqdmFyLCB1MzIgdmFsKQp7CiAqdmFyID0gKCggX19iZTMyKShfX3UzMilfX2J1aWx0
aW5fYnN3YXAzMigoX191MzIpKCgoX191MzIpX19idWlsdGluX2Jzd2FwMzIoKF9fdTMyKSgoIF9f
dTMyKShfX2JlMzIpKCp2YXIpKSkgKyB2YWwpKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJlNjRfYWRkX2NwdShfX2Jl
NjQgKnZhciwgdTY0IHZhbCkKewogKnZhciA9ICgoIF9fYmU2NCkoX191NjQpX19idWlsdGluX2Jz
d2FwNjQoKF9fdTY0KSgoKF9fdTY0KV9fYnVpbHRpbl9ic3dhcDY0KChfX3U2NCkoKCBfX3U2NCko
X19iZTY0KSgqdmFyKSkpICsgdmFsKSkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVfdG9fYmUzMl9hcnJheShfX2Jl
MzIgKmRzdCwgY29uc3QgdTMyICpzcmMsIHNpemVfdCBsZW4pCnsKIGludCBpOwoKIGZvciAoaSA9
IDA7IGkgPCBsZW47IGkrKykKICBkc3RbaV0gPSAoKCBfX2JlMzIpKF9fdTMyKV9fYnVpbHRpbl9i
c3dhcDMyKChfX3UzMikoKHNyY1tpXSkpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYmUzMl90b19jcHVfYXJyYXkodTMy
ICpkc3QsIGNvbnN0IF9fYmUzMiAqc3JjLCBzaXplX3QgbGVuKQp7CiBpbnQgaTsKCiBmb3IgKGkg
PSAwOyBpIDwgbGVuOyBpKyspCiAgZHN0W2ldID0gKF9fdTMyKV9fYnVpbHRpbl9ic3dhcDMyKChf
X3UzMikoKCBfX3UzMikoX19iZTMyKShzcmNbaV0pKSk7Cn0KIyAxMiAiLi9pbmNsdWRlL2xpbnV4
L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFw
aS9hc20vYnl0ZW9yZGVyLmgiIDIKIyA3ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXJ3bG9ja190
eXBlcy5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9ja190eXBlcy5oIiAx
CiMgOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Fyd2xvY2tfdHlwZXMuaCIgMgoKCgoKCnR5cGVk
ZWYgc3RydWN0IHFyd2xvY2sgewogdW5pb24gewogIGF0b21pY190IGNudHM7CiAgc3RydWN0IHsK
CiAgIHU4IHdsb2NrZWQ7CiAgIHU4IF9fbHN0YXRlWzNdOwoKCgoKICB9OwogfTsKIGFyY2hfc3Bp
bmxvY2tfdCB3YWl0X2xvY2s7Cn0gYXJjaF9yd2xvY2tfdDsKIyAzMCAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zcGlubG9ja190eXBlcy5oIiAyCiMgMzExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L3BhcmF2aXJ0X3R5cGVzLmgiIDIKCgpzdHJ1Y3QgcXNwaW5sb2NrOwoKc3RydWN0IHB2X2xvY2tf
b3BzIHsKIHZvaWQgKCpxdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKShzdHJ1Y3QgcXNwaW5sb2Nr
ICpsb2NrLCB1MzIgdmFsKTsKIHN0cnVjdCBwYXJhdmlydF9jYWxsZWVfc2F2ZSBxdWV1ZWRfc3Bp
bl91bmxvY2s7Cgogdm9pZCAoKndhaXQpKHU4ICpwdHIsIHU4IHZhbCk7CiB2b2lkICgqa2ljayko
aW50IGNwdSk7Cgogc3RydWN0IHBhcmF2aXJ0X2NhbGxlZV9zYXZlIHZjcHVfaXNfcHJlZW1wdGVk
Owp9IDsKCgoKCnN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSB7CiBzdHJ1Y3QgcHZfaW5p
dF9vcHMgaW5pdDsKIHN0cnVjdCBwdl90aW1lX29wcyB0aW1lOwogc3RydWN0IHB2X2NwdV9vcHMg
Y3B1Owogc3RydWN0IHB2X2lycV9vcHMgaXJxOwogc3RydWN0IHB2X21tdV9vcHMgbW11Owogc3Ry
dWN0IHB2X2xvY2tfb3BzIGxvY2s7Cn0gOwoKZXh0ZXJuIHN0cnVjdCBwdl9pbmZvIHB2X2luZm87
CmV4dGVybiBzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUgcHZfb3BzOwojIDM3MCAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIgp1bnNpZ25lZCBwYXJhdmlydF9w
YXRjaF9pZGVudF82NCh2b2lkICppbnNuX2J1ZmYsIHVuc2lnbmVkIGxlbik7CnVuc2lnbmVkIHBh
cmF2aXJ0X3BhdGNoX2RlZmF1bHQodTggdHlwZSwgdm9pZCAqaW5zbl9idWZmLCB1bnNpZ25lZCBs
b25nIGFkZHIsIHVuc2lnbmVkIGxlbik7CnVuc2lnbmVkIHBhcmF2aXJ0X3BhdGNoX2luc25zKHZv
aWQgKmluc25fYnVmZiwgdW5zaWduZWQgbGVuLCBjb25zdCBjaGFyICpzdGFydCwgY29uc3QgY2hh
ciAqZW5kKTsKCnVuc2lnbmVkIG5hdGl2ZV9wYXRjaCh1OCB0eXBlLCB2b2lkICppbnNuX2J1ZmYs
IHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbGVuKTsKCmludCBwYXJhdmlydF9kaXNhYmxl
X2lvc3BhY2Uodm9pZCk7CiMgNjUxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5
cGVzLmgiCmVudW0gcGFyYXZpcnRfbGF6eV9tb2RlIHsKIFBBUkFWSVJUX0xBWllfTk9ORSwKIFBB
UkFWSVJUX0xBWllfTU1VLAogUEFSQVZJUlRfTEFaWV9DUFUsCn07CgplbnVtIHBhcmF2aXJ0X2xh
enlfbW9kZSBwYXJhdmlydF9nZXRfbGF6eV9tb2RlKHZvaWQpOwp2b2lkIHBhcmF2aXJ0X3N0YXJ0
X2NvbnRleHRfc3dpdGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldik7CnZvaWQgcGFyYXZpcnRf
ZW5kX2NvbnRleHRfc3dpdGNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dCk7Cgp2b2lkIHBhcmF2
aXJ0X2VudGVyX2xhenlfbW11KHZvaWQpOwp2b2lkIHBhcmF2aXJ0X2xlYXZlX2xhenlfbW11KHZv
aWQpOwp2b2lkIHBhcmF2aXJ0X2ZsdXNoX2xhenlfbW11KHZvaWQpOwoKdm9pZCBfcGFyYXZpcnRf
bm9wKHZvaWQpOwp1NjQgX3BhcmF2aXJ0X2lkZW50XzY0KHU2NCk7CgoKCgpzdHJ1Y3QgcGFyYXZp
cnRfcGF0Y2hfc2l0ZSB7CiB1OCAqaW5zdHI7CiB1OCB0eXBlOwogdTggbGVuOwp9OwoKZXh0ZXJu
IHN0cnVjdCBwYXJhdmlydF9wYXRjaF9zaXRlIF9fcGFyYWluc3RydWN0aW9uc1tdLAogX19wYXJh
aW5zdHJ1Y3Rpb25zX2VuZFtdOwojIDk1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5o
IiAyCgoKc3RydWN0IGNwdWluZm9feDg2OwpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpleHRlcm4gdW5z
aWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKCmV4dGVybiB1bnNp
Z25lZCBsb25nCmNvbnZlcnRfaXBfdG9fbGluZWFyKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQs
IHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKZXh0ZXJuIHZvaWQgc2VuZF9zaWd0cmFwKHN0cnVjdCBw
dF9yZWdzICpyZWdzLCBpbnQgZXJyb3JfY29kZSwgaW50IHNpX2NvZGUpOwoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxv
bmcgcmVnc19yZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCnsKIHJldHVybiByZWdz
LT5heDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByZWdzX3NldF9yZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3Ms
IHVuc2lnbmVkIGxvbmcgcmMpCnsKIHJlZ3MtPmF4ID0gcmM7Cn0KIyAxMjYgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vcHRyYWNlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1c2VyX21vZGUoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp
CnsKCgoKIHJldHVybiAhIShyZWdzLT5jcyAmIDMpOwoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHY4MDg2X21vZGUoc3RydWN0
IHB0X3JlZ3MgKnJlZ3MpCnsKCgoKIHJldHVybiAwOwoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1c2VyXzY0Yml0X21vZGUo
c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCnsKCgoKCgoKIHJldHVybiByZWdzLT5jcyA9PSAoNio4ICsg
Myk7CgoKCgoKCgp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhbnlfNjRiaXRfbW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVn
cykKewoKIHJldHVybiAhdXNlcl9tb2RlKHJlZ3MpIHx8IHVzZXJfNjRiaXRfbW9kZShyZWdzKTsK
CgoKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGtlcm5lbF9zdGFja19wb2ludGVyKHN0cnVjdCBwdF9y
ZWdzICpyZWdzKQp7CiByZXR1cm4gcmVncy0+c3A7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgaW5zdHJ1Y3Rp
b25fcG9pbnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKewogcmV0dXJuIHJlZ3MtPmlwOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGluc3RydWN0aW9uX3BvaW50ZXJfc2V0KHN0cnVjdCBwdF9yZWdzICpyZWdzLAogIHVuc2ln
bmVkIGxvbmcgdmFsKQp7CiByZWdzLT5pcCA9IHZhbDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmcmFtZV9w
b2ludGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7CiByZXR1cm4gcmVncy0+YnA7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgdXNlcl9zdGFja19wb2ludGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7CiByZXR1
cm4gcmVncy0+c3A7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgdXNlcl9zdGFja19wb2ludGVyX3NldChzdHJ1Y3QgcHRfcmVn
cyAqcmVncywKICB1bnNpZ25lZCBsb25nIHZhbCkKewogcmVncy0+c3AgPSB2YWw7Cn0KCgpleHRl
cm4gaW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJfb2Zmc2V0KGNvbnN0IGNoYXIgKm5hbWUpOwpleHRl
cm4gY29uc3QgY2hhciAqcmVnc19xdWVyeV9yZWdpc3Rlcl9uYW1lKHVuc2lnbmVkIGludCBvZmZz
ZXQpOwojIDIyNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZyByZWdzX2dldF9yZWdpc3RlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywKICAgICAgICAgICB1bnNp
Z25lZCBpbnQgb2Zmc2V0KQp7CiBpZiAoX19idWlsdGluX2V4cGVjdCghIShvZmZzZXQgPiAoX19i
dWlsdGluX29mZnNldG9mKHN0cnVjdCBwdF9yZWdzLCBzcykpKSwgMCkpCiAgcmV0dXJuIDA7CiMg
MjQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgogcmV0dXJuICoodW5zaWduZWQg
bG9uZyAqKSgodW5zaWduZWQgbG9uZylyZWdzICsgb2Zmc2V0KTsKfQojIDI1NCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ3Nfd2l0aGluX2tlcm5lbF9zdGFjayhzdHJ1
Y3QgcHRfcmVncyAqcmVncywKICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIpCnsKIHJldHVybiAo
KGFkZHIgJiB+KCgoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpIC0gMSkpID09IChyZWdzLT5zcCAm
IH4oKCgoMVVMKSA8PCAxMikgPDwgKDIgKyAwKSkgLSAxKSkpOwp9CiMgMjY5ICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nICpyZWdzX2dldF9rZXJuZWxfc3Rh
Y2tfbnRoX2FkZHIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGludCBuKQp7CiB1bnNp
Z25lZCBsb25nICphZGRyID0gKHVuc2lnbmVkIGxvbmcgKilyZWdzLT5zcDsKCiBhZGRyICs9IG47
CiBpZiAocmVnc193aXRoaW5fa2VybmVsX3N0YWNrKHJlZ3MsICh1bnNpZ25lZCBsb25nKWFkZHIp
KQogIHJldHVybiBhZGRyOwogZWxzZQogIHJldHVybiAoKHZvaWQgKikwKTsKfQoKCmV4dGVybiBs
b25nIHByb2JlX2tlcm5lbF9yZWFkKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3Qg
c2l6ZSk7CiMgMjkyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIHJlZ3NfZ2V0X2tlcm5lbF9zdGFja19udGgoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBuKQp7CiB1bnNpZ25lZCBsb25nICphZGRyOwogdW5zaWduZWQg
bG9uZyB2YWw7CiBsb25nIHJldDsKCiBhZGRyID0gcmVnc19nZXRfa2VybmVsX3N0YWNrX250aF9h
ZGRyKHJlZ3MsIG4pOwogaWYgKGFkZHIpIHsKICByZXQgPSBwcm9iZV9rZXJuZWxfcmVhZCgmdmFs
LCBhZGRyLCBzaXplb2YodmFsKSk7CiAgaWYgKCFyZXQpCiAgIHJldHVybiB2YWw7CiB9CiByZXR1
cm4gMDsKfQojIDMxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyByZWdzX2dldF9rZXJuZWxfYXJndW1lbnQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAgICAg
ICAgICAgdW5zaWduZWQgaW50IG4pCnsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYXJndW1l
bnRfb2Zmc1tdID0gewoKCgoKCgogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywg
ZGkpLAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgc2kpLAogIF9fYnVpbHRp
bl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgZHgpLAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1
Y3QgcHRfcmVncywgY3gpLAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgcjgp
LAogIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgcjkpLAoKCiB9OwoKIGlmIChu
ID49IDYpIHsKICBuIC09IDYgLSAxOwogIHJldHVybiByZWdzX2dldF9rZXJuZWxfc3RhY2tfbnRo
KHJlZ3MsIG4pOwogfSBlbHNlCiAgcmV0dXJuIHJlZ3NfZ2V0X3JlZ2lzdGVyKHJlZ3MsIGFyZ3Vt
ZW50X29mZnNbbl0pOwp9CiMgMzU1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oIgpz
dHJ1Y3QgdXNlcl9kZXNjOwpleHRlcm4gaW50IGRvX2dldF90aHJlYWRfYXJlYShzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnAsIGludCBpZHgsCiAgICAgICAgIHN0cnVjdCB1c2VyX2Rlc2MgKmluZm8pOwpl
eHRlcm4gaW50IGRvX3NldF90aHJlYWRfYXJlYShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBp
ZHgsCiAgICAgICAgIHN0cnVjdCB1c2VyX2Rlc2MgKmluZm8sIGludCBjYW5fYWxsb2NhdGUpOwoj
IDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2tnZGIuaCIgMgojIDQ5ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2tnZGIuaCIKZW51bSByZWduYW1lcyB7CiBHREJfQVgsCiBHREJfQlgsCiBHREJf
Q1gsCiBHREJfRFgsCiBHREJfU0ksCiBHREJfREksCiBHREJfQlAsCiBHREJfU1AsCiBHREJfUjgs
CiBHREJfUjksCiBHREJfUjEwLAogR0RCX1IxMSwKIEdEQl9SMTIsCiBHREJfUjEzLAogR0RCX1Ix
NCwKIEdEQl9SMTUsCiBHREJfUEMsCiBHREJfUFMsCiBHREJfQ1MsCiBHREJfU1MsCiBHREJfRFMs
CiBHREJfRVMsCiBHREJfRlMsCiBHREJfR1MsCn07CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJjaF9rZ2RiX2JyZWFr
cG9pbnQodm9pZCkKewogYXNtKCIgICBpbnQgJDMiKTsKfQoKCgoKZXh0ZXJuIGludCBrZ2RiX2xs
X3RyYXAoaW50IGNtZCwgY29uc3QgY2hhciAqc3RyLAogICBzdHJ1Y3QgcHRfcmVncyAqcmVncywg
bG9uZyBlcnIsIGludCB0cmFwLCBpbnQgc2lnKTsKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2tnZGIu
aCIgMgojIDMzMyAiLi9pbmNsdWRlL2xpbnV4L2tnZGIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrZ2RiX3BhbmljKGNvbnN0
IGNoYXIgKm1zZykge30KIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL29zX3R5cGVzLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgva3JlZi5oIiAxCiMgMTYg
Ii4vaW5jbHVkZS9saW51eC9rcmVmLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgi
IDEKIyA1MCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L3R5cGVjaGVjay5oIiAxCiMgNTEgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L3ByZWVtcHQuaCIgMQojIDExICIuL2luY2x1ZGUvbGludXgvcHJlZW1w
dC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUv
bGludXgvcG9pc29uLmgiIDEKIyA4ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIiAyCgojIDEgIi4v
aW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQoKCgoKCiMgMSAiL3Vzci9saWIvZ2NjL3g4Nl82NC1s
aW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMSAzIDQKIyA0MCAiL3Vzci9saWIvZ2NjL3g4
Nl82NC1saW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CgojIDQwICIvdXNyL2xpYi9n
Y2MveDg2XzY0LWxpbnV4LWdudS8xMC9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKdHlwZWRlZiBfX2J1
aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA5OSAiL3Vzci9saWIvZ2NjL3g4Nl82NC1s
aW51eC1nbnUvMTAvaW5jbHVkZS9zdGRhcmcuaCIgMyA0CnR5cGVkZWYgX19nbnVjX3ZhX2xpc3Qg
dmFfbGlzdDsKIyA3ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKIyAxICIuL2luY2x1ZGUv
bGludXgvbGltaXRzLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvbGltaXRzLmgi
IDEKIyA2ICIuL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDIKIyA4ICIuL2luY2x1ZGUvbGludXgv
a2VybmVsLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAxCgoKCiMgMSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAxCiMgNSAiLi9p
bmNsdWRlL2xpbnV4L2JpdG9wcy5oIiAyCiMgMjAgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIK
CiMgMjAgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKZXh0ZXJuIHVuc2lnbmVkIGludCBfX3N3
X2h3ZWlnaHQ4KHVuc2lnbmVkIGludCB3KTsKZXh0ZXJuIHVuc2lnbmVkIGludCBfX3N3X2h3ZWln
aHQxNih1bnNpZ25lZCBpbnQgdyk7CmV4dGVybiB1bnNpZ25lZCBpbnQgX19zd19od2VpZ2h0MzIo
dW5zaWduZWQgaW50IHcpOwpleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N3X2h3ZWlnaHQ2NChfX3U2
NCB3KTsKCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyA1MSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkCmFyY2hfc2V0X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBs
b25nICphZGRyKQp7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobnIpKSB7CiAgYXNtIHZvbGF0
aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9u
ZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAib3JiICUx
LCUwIgogICA6ICIrbSIgKCoodm9sYXRpbGUgY2hhciAqKSAoKHZvaWQgKikoYWRkcikgKyAoKG5y
KT4+MykpKQogICA6ICJpcSIgKCh1OCkoMSA8PCAoKG5yKSAmIDcpKSkKICAgOiAibWVtb3J5Iik7
CiB9IGVsc2UgewogIGFzbSB2b2xhdGlsZSgiLnB1c2hzZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJc
biIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5cbiIgIi5wb3BzZWN0aW9uXG4iICI2NzE6
IiAiXG5cdGxvY2s7ICIgIiAiICJidHNxIiAiICIgIiAlMSwlMCIKICAgOiA6ICJtIiAoKih2b2xh
dGlsZSBsb25nICopIChhZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKIH0KfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkCmFyY2hfX19zZXRfYml0KGxvbmcgbnIs
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGFzbSB2b2xhdGlsZSgiICIgImJ0c3Ei
ICIgIiAiICUxLCUwIiA6IDogIm0iICgqKHZvbGF0aWxlIGxvbmcgKikgKGFkZHIpKSwgIklyIiAo
bnIpIDogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQKYXJjaF9jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikK
ewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5yKSkgewogIGFzbSB2b2xhdGlsZSgiLnB1c2hz
ZWN0aW9uIC5zbXBfbG9ja3MsXCJhXCJcbiIgIi5iYWxpZ24gNFxuIiAiLmxvbmcgNjcxZiAtIC5c
biIgIi5wb3BzZWN0aW9uXG4iICI2NzE6IiAiXG5cdGxvY2s7ICIgImFuZGIgJTEsJTAiCiAgIDog
IittIiAoKih2b2xhdGlsZSBjaGFyICopICgodm9pZCAqKShhZGRyKSArICgobnIpPj4zKSkpCiAg
IDogImlxIiAoKHU4KX4oMSA8PCAoKG5yKSAmIDcpKSkpOwogfSBlbHNlIHsKICBhc20gdm9sYXRp
bGUoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5sb25n
IDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICIgIiAiYnRy
cSIgIiAiICIgJTEsJTAiCiAgIDogOiAibSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAi
SXIiIChucikgOiAibWVtb3J5Iik7CiB9Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZAphcmNoX2NsZWFyX2JpdF91bmxvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWdu
ZWQgbG9uZyAqYWRkcikKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
IGFyY2hfY2xlYXJfYml0KG5yLCBhZGRyKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkCmFyY2hfX19jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKewogYXNtIHZvbGF0aWxlKCIgIiAiYnRycSIgIiAiICIgJTEsJTAiIDogOiAi
bSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9vbAphcmNoX2NsZWFyX2JpdF91
bmxvY2tfaXNfbmVnYXRpdmVfYnl0ZShsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICph
ZGRyKQp7CiBib29sIG5lZ2F0aXZlOwogYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9s
b2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rp
b25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiYW5kYiAlMiwlMSIKICAiXG5cdC8qIG91dHB1dCBj
b25kaXRpb24gY29kZSAiICJzIiAiKi9cbiIKICA6ICI9QGNjIiAicyIgKG5lZ2F0aXZlKSwgIitt
IiAoKih2b2xhdGlsZSBjaGFyICopIChhZGRyKSkKICA6ICJpciIgKChjaGFyKSB+KDEgPDwgbnIp
KSA6ICJtZW1vcnkiKTsKIHJldHVybiBuZWdhdGl2ZTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQKYXJjaF9fX2NsZWFyX2JpdF91bmxvY2sobG9uZyBuciwgdm9s
YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewogYXJjaF9fX2NsZWFyX2JpdChuciwgYWRkcik7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZAphcmNoX19fY2hhbmdl
X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiBhc20gdm9sYXRp
bGUoIiAiICJidGNxIiAiICIgIiAlMSwlMCIgOiA6ICJtIiAoKih2b2xhdGlsZSBsb25nICopIChh
ZGRyKSksICJJciIgKG5yKSA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkCmFyY2hfY2hhbmdlX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25l
ZCBsb25nICphZGRyKQp7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobnIpKSB7CiAgYXNtIHZv
bGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAieG9y
YiAlMSwlMCIKICAgOiAiK20iICgqKHZvbGF0aWxlIGNoYXIgKikgKCh2b2lkICopKGFkZHIpICsg
KChucik+PjMpKSkKICAgOiAiaXEiICgodTgpKDEgPDwgKChucikgJiA3KSkpKTsKIH0gZWxzZSB7
CiAgYXNtIHZvbGF0aWxlKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGln
biA0XG4iICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9j
azsgIiAiICIgImJ0Y3EiICIgIiAiICUxLCUwIgogICA6IDogIm0iICgqKHZvbGF0aWxlIGxvbmcg
KikgKGFkZHIpKSwgIklyIiAobnIpIDogIm1lbW9yeSIpOwogfQp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGJvb2wKYXJjaF90ZXN0X2FuZF9zZXRfYml0KGxvbmcgbnIsIHZv
bGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xh
dGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRcbiIgIi5s
b25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAiICIgIiAi
YnRzcSIgIiAiICIgJVt2YWxdLCAiICIlW3Zhcl0iICJcblx0Lyogb3V0cHV0IGNvbmRpdGlvbiBj
b2RlICIgImMiICIqL1xuIiA6IFt2YXJdICIrbSIgKCphZGRyKSwgIj1AY2MiICJjIiAoYykgOiBb
dmFsXSAiSXIiIChucikgOiAibWVtb3J5Iik7IGM7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGJvb2wKYXJjaF90ZXN0X2FuZF9zZXRfYml0X2xvY2sobG9uZyBuciwg
dm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewogcmV0dXJuIGFyY2hfdGVzdF9hbmRfc2V0
X2JpdChuciwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgYm9v
bAphcmNoX19fdGVzdF9hbmRfc2V0X2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25n
ICphZGRyKQp7CiBib29sIG9sZGJpdDsKCiBhc20oIiAiICJidHNxIiAiICIgIiAlMiwlMSIKICAg
ICAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJjIiAiKi9cbiIKICAgICA6ICI9QGNj
IiAiYyIgKG9sZGJpdCkKICAgICA6ICJtIiAoKih2b2xhdGlsZSBsb25nICopIChhZGRyKSksICJJ
ciIgKG5yKSA6ICJtZW1vcnkiKTsKIHJldHVybiBvbGRiaXQ7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgYm9vbAphcmNoX3Rlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2
b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiByZXR1cm4gKHsgYm9vbCBjOyBhc20gdm9s
YXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4iICIu
bG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAiICIg
ImJ0cnEiICIgIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iICgqYWRkciksICI9QGNjIiAiYyIgKGMpIDog
W3ZhbF0gIklyIiAobnIpIDogIm1lbW9yeSIpOyBjOyB9KTsKfQojIDE3MyAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBi
b29sCmFyY2hfX190ZXN0X2FuZF9jbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQg
bG9uZyAqYWRkcikKewogYm9vbCBvbGRiaXQ7CgogYXNtIHZvbGF0aWxlKCIgIiAiYnRycSIgIiAi
ICIgJTIsJTEiCiAgICAgICAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJjIiAiKi9c
biIKICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQogICAgICAgOiAibSIgKCoodm9sYXRpbGUg
bG9uZyAqKSAoYWRkcikpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CiByZXR1cm4gb2xkYml0Owp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGJvb2wKYXJjaF9fX3Rlc3RfYW5k
X2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewogYm9v
bCBvbGRiaXQ7CgogYXNtIHZvbGF0aWxlKCIgIiAiYnRjcSIgIiAiICIgJTIsJTEiCiAgICAgICAi
XG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJjIiAiKi9cbiIKICAgICAgIDogIj1AY2Mi
ICJjIiAob2xkYml0KQogICAgICAgOiAibSIgKCoodm9sYXRpbGUgbG9uZyAqKSAoYWRkcikpLCAi
SXIiIChucikgOiAibWVtb3J5Iik7CgogcmV0dXJuIG9sZGJpdDsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBib29sCmFyY2hfdGVzdF9hbmRfY2hhbmdlX2JpdChsb25nIG5y
LCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiByZXR1cm4gKHsgYm9vbCBjOyBhc20g
dm9sYXRpbGUgKCIucHVzaHNlY3Rpb24gLnNtcF9sb2NrcyxcImFcIlxuIiAiLmJhbGlnbiA0XG4i
ICIubG9uZyA2NzFmIC0gLlxuIiAiLnBvcHNlY3Rpb25cbiIgIjY3MToiICJcblx0bG9jazsgIiAi
ICIgImJ0Y3EiICIgIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRp
b24gY29kZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iICgqYWRkciksICI9QGNjIiAiYyIgKGMp
IDogW3ZhbF0gIklyIiAobnIpIDogIm1lbW9yeSIpOyBjOyB9KTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBib29sIGNvbnN0YW50X3Rlc3RfYml0KGxvbmcgbnIsIGNvbnN0
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIHJldHVybiAoKDFVTCA8PCAobnIgJiAo
NjQgLTEpKSkgJgogIChhZGRyW25yID4+IDZdKSkgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBib29sIHZhcmlhYmxlX3Rlc3RfYml0KGxvbmcgbnIsIHZvbGF0aWxl
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGJvb2wgb2xkYml0OwoKIGFzbSB2b2xhdGls
ZSgiICIgImJ0cSIgIiAiICIgJTIsJTEiCiAgICAgICAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24g
Y29kZSAiICJjIiAiKi9cbiIKICAgICAgIDogIj1AY2MiICJjIiAob2xkYml0KQogICAgICAgOiAi
bSIgKCoodW5zaWduZWQgbG9uZyAqKWFkZHIpLCAiSXIiIChucikgOiAibWVtb3J5Iik7CgogcmV0
dXJuIG9sZGJpdDsKfQojIDIzMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIF9fZmZzKHVuc2ln
bmVkIGxvbmcgd29yZCkKewogYXNtKCJyZXA7IGJzZiAlMSwlMCIKICA6ICI9ciIgKHdvcmQpCiAg
OiAicm0iICh3b3JkKSk7CiByZXR1cm4gd29yZDsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGZmeih1bnNpZ25lZCBsb25nIHdvcmQpCnsK
IGFzbSgicmVwOyBic2YgJTEsJTAiCiAgOiAiPXIiICh3b3JkKQogIDogInIiICh+d29yZCkpOwog
cmV0dXJuIHdvcmQ7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dW5zaWduZWQgbG9uZyBfX2Zscyh1bnNpZ25lZCBsb25nIHdvcmQpCnsKIGFzbSgiYnNyICUxLCUw
IgogICAgIDogIj1yIiAod29yZCkKICAgICA6ICJybSIgKHdvcmQpKTsKIHJldHVybiB3b3JkOwp9
CiMgMjgzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGludCBmZnMoaW50IHgpCnsKIGludCByOwojIDI5NyAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaCIKIGFzbSgiYnNmbCAlMSwlMCIKICAgICA6ICI9ciIg
KHIpCiAgICAgOiAicm0iICh4KSwgIjAiICgtMSkpOwojIDMxMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaCIKIHJldHVybiByICsgMTsKfQojIDMyNCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgZmxz
KHVuc2lnbmVkIGludCB4KQp7CiBpbnQgcjsKIyAzMzggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Yml0b3BzLmgiCiBhc20oImJzcmwgJTEsJTAiCiAgICAgOiAiPXIiIChyKQogICAgIDogInJtIiAo
eCksICIwIiAoLTEpKTsKIyAzNTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCiBy
ZXR1cm4gciArIDE7Cn0KIyAzNjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IGZsczY0KF9fdTY0IHgpCnsKIGlu
dCBiaXRwb3MgPSAtMTsKCgoKCgogYXNtKCJic3JxICUxLCVxMCIKICAgICA6ICIrciIgKGJpdHBv
cykKICAgICA6ICJybSIgKHgpKTsKIHJldHVybiBiaXRwb3MgKyAxOwp9CgoKCgojIDEgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIiAxCiMgMTUgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9iaXRvcHMvZmluZC5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX25leHRfYml0KGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIsIHVuc2lnbmVkIGxvbmcKICBzaXplLCB1bnNpZ25lZCBs
b25nIG9mZnNldCk7CiMgMzAgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvZmluZC5oIgpl
eHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX25leHRfYW5kX2JpdChjb25zdCB1bnNpZ25lZCBsb25n
ICphZGRyMSwKICBjb25zdCB1bnNpZ25lZCBsb25nICphZGRyMiwgdW5zaWduZWQgbG9uZyBzaXpl
LAogIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKIyA0NSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2Jp
dG9wcy9maW5kLmgiCmV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdChjb25z
dCB1bnNpZ25lZCBsb25nICphZGRyLCB1bnNpZ25lZAogIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9u
ZyBvZmZzZXQpOwojIDU5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2ZpbmQuaCIKZXh0
ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9maXJzdF9iaXQoY29uc3QgdW5zaWduZWQgbG9uZyAqYWRk
ciwKICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwojIDcwICIuL2luY2x1ZGUvYXNtLWdlbmVy
aWMvYml0b3BzL2ZpbmQuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZmluZF9maXJzdF96ZXJvX2Jp
dChjb25zdCB1bnNpZ25lZCBsb25nICphZGRyLAogICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwoj
IDkzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2ZpbmQuaCIKZXh0ZXJuIHVuc2lnbmVk
IGxvbmcgZmluZF9uZXh0X2NsdW1wOCh1bnNpZ25lZCBsb25nICpjbHVtcCwKICAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0KTsKIyAzODQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3Bz
LmgiIDIKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9zY2hlZC5oIiAxCgoKCgoK
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKIyA3
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL3NjaGVkLmgiIDIKCgoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHNjaGVk
X2ZpbmRfZmlyc3RfYml0KGNvbnN0IHVuc2lnbmVkIGxvbmcgKmIpCnsKCiBpZiAoYlswXSkKICBy
ZXR1cm4gX19mZnMoYlswXSk7CiByZXR1cm4gX19mZnMoYlsxXSkgKyA2NDsKIyAzMCAiLi9pbmNs
dWRlL2FzbS1nZW5lcmljL2JpdG9wcy9zY2hlZC5oIgp9CiMgMzg2ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2JpdG9wcy5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXJjaF9od2Vp
Z2h0LmgiIDEKIyAxNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcmNoX2h3ZWlnaHQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBpbnQgX19hcmNoX2h3ZWln
aHQzMih1bnNpZ25lZCBpbnQgdykKewogdW5zaWduZWQgaW50IHJlczsKCiBhc20gKCIjIEFMVDog
b2xkbnN0clxuIiAiNjYxOlxuXHQiICJjYWxsIF9fc3dfaHdlaWdodDMyIiAiXG42NjI6XG4iICIj
IEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikt
KCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2
NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA0KjMyKzIzKSIgIlxuIiAiIC5ieXRlICIgIjY2
MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIg
LmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24g
LmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIx
IiAiXG4iICI2NjQiIjEiIjpcblx0IiAicG9wY250bCAlMSwgJTAiICJcbiIgIjY2NSIiMSIgIjpc
biIgIi5wb3BzZWN0aW9uXG4iCiAgICA6ICI9IiJhIiAocmVzKQogICAgOiAiRCIgKHcpKTsKCiBy
ZXR1cm4gcmVzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgX19hcmNoX2h3ZWlnaHQxNih1bnNpZ25lZCBpbnQg
dykKewogcmV0dXJuIF9fYXJjaF9od2VpZ2h0MzIodyAmIDB4ZmZmZik7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGlu
dCBfX2FyY2hfaHdlaWdodDgodW5zaWduZWQgaW50IHcpCnsKIHJldHVybiBfX2FyY2hfaHdlaWdo
dDMyKHcgJiAweGZmKTsKfQojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FyY2hfaHdlaWdo
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgX19h
cmNoX2h3ZWlnaHQ2NChfX3U2NCB3KQp7CiB1bnNpZ25lZCBsb25nIHJlczsKCiBhc20gKCIjIEFM
VDogb2xkbnN0clxuIiAiNjYxOlxuXHQiICJjYWxsIF9fc3dfaHdlaWdodDY0IiAiXG42NjI6XG4i
ICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIg
IiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIi
ZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlv
biAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAi
ICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA0KjMyKzIzKSIgIlxuIiAiIC5ieXRlICIg
IjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4i
ICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rp
b24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAi
ICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAicG9wY250cSAlMSwgJTAiICJcbiIgIjY2NSIiMSIg
IjpcbiIgIi5wb3BzZWN0aW9uXG4iCiAgICA6ICI9IiJhIiAocmVzKQogICAgOiAiRCIgKHcpKTsK
CiByZXR1cm4gcmVzOwp9CiMgMzg4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAy
CgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvY29uc3RfaHdlaWdodC5oIiAxCiMg
MzkwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAyCgojIDEgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIiAxCiMgMjYgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9iaXQo
bG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3Jp
dGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9zZXRfYml0KG5yLCBh
ZGRyKTsKfQojIDM5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1h
dG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBjbGVhcl9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAq
YWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9u
ZykpOwogYXJjaF9jbGVhcl9iaXQobnIsIGFkZHIpOwp9CiMgNTUgIi4vaW5jbHVkZS9hc20tZ2Vu
ZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoYW5nZV9iaXQobG9uZyBu
ciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRk
ciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9jaGFuZ2VfYml0KG5yLCBhZGRy
KTsKfQojIDY4ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1hdG9t
aWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgYm9vbCB0ZXN0X2FuZF9zZXRfYml0KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxv
bmcgKmFkZHIpCnsKIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9m
KGxvbmcpKTsKIHJldHVybiBhcmNoX3Rlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwp9CiMgODEg
Ii4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IHRlc3RfYW5kX2NsZWFyX2JpdChsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRy
KQp7CiBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7
CiByZXR1cm4gYXJjaF90ZXN0X2FuZF9jbGVhcl9iaXQobnIsIGFkZHIpOwp9CiMgOTQgIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWF0b21pYy5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRlc3Rf
YW5kX2NoYW5nZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewog
a2FzYW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0
dXJuIGFyY2hfdGVzdF9hbmRfY2hhbmdlX2JpdChuciwgYWRkcik7Cn0KIyAzOTIgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKIyAxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0
b3BzL2luc3RydW1lbnRlZC1ub24tYXRvbWljLmgiIDEKIyAyNSAiLi9pbmNsdWRlL2FzbS1nZW5l
cmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtbm9uLWF0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fc2V0X2JpdChsb25n
IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQp7CiBrYXNhbl9jaGVja193cml0ZShh
ZGRyICsgKChucikgLyA2NCksIHNpemVvZihsb25nKSk7CiBhcmNoX19fc2V0X2JpdChuciwgYWRk
cik7Cn0KIyA0MCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2JpdG9wcy9pbnN0cnVtZW50ZWQtbm9u
LWF0b21pYy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIF9fY2xlYXJfYml0KGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxv
bmcgKmFkZHIpCnsKIGthc2FuX2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9m
KGxvbmcpKTsKIGFyY2hfX19jbGVhcl9iaXQobnIsIGFkZHIpOwp9CiMgNTUgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NoYW5n
ZV9iaXQobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hl
Y2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9fX2NoYW5n
ZV9iaXQobnIsIGFkZHIpOwp9CiMgNjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5z
dHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3Rlc3RfYW5kX3NldF9iaXQobG9uZyBuciwg
dm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRkciAr
ICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfX190ZXN0X2FuZF9zZXRf
Yml0KG5yLCBhZGRyKTsKfQojIDgzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3Ry
dW1lbnRlZC1ub24tYXRvbWljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgX190ZXN0X2FuZF9jbGVhcl9iaXQobG9uZyBuciwg
dm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRkciAr
ICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfX190ZXN0X2FuZF9jbGVh
cl9iaXQobnIsIGFkZHIpOwp9CiMgOTcgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5z
dHJ1bWVudGVkLW5vbi1hdG9taWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBfX3Rlc3RfYW5kX2NoYW5nZV9iaXQobG9uZyBu
ciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3JpdGUoYWRk
ciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfX190ZXN0X2FuZF9j
aGFuZ2VfYml0KG5yLCBhZGRyKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRlc3RfYml0KGxvbmcgbnIsIGNvbnN0
IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGthc2FuX2NoZWNrX3JlYWQoYWRkciAr
ICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIChfX2J1aWx0aW5fY29uc3RhbnRf
cCgobnIpKSA/IGNvbnN0YW50X3Rlc3RfYml0KChuciksIChhZGRyKSkgOiB2YXJpYWJsZV90ZXN0
X2JpdCgobnIpLCAoYWRkcikpKTsKfQojIDM5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRv
cHMuaCIgMgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxv
Y2suaCIgMQojIDIzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvYml0b3BzL2luc3RydW1lbnRlZC1s
b2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgY2xlYXJfYml0X3VubG9jayhsb25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBs
b25nICphZGRyKQp7CiBrYXNhbl9jaGVja193cml0ZShhZGRyICsgKChucikgLyA2NCksIHNpemVv
Zihsb25nKSk7CiBhcmNoX2NsZWFyX2JpdF91bmxvY2sobnIsIGFkZHIpOwp9CiMgMzggIi4vaW5j
bHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2suaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2NsZWFy
X2JpdF91bmxvY2sobG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2Fz
YW5fY2hlY2tfd3JpdGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogYXJjaF9f
X2NsZWFyX2JpdF91bmxvY2sobnIsIGFkZHIpOwp9CiMgNTMgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9iaXRvcHMvaW5zdHJ1bWVudGVkLWxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0ZXN0X2FuZF9zZXRfYml0X2xvY2so
bG9uZyBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKewoga2FzYW5fY2hlY2tfd3Jp
dGUoYWRkciArICgobnIpIC8gNjQpLCBzaXplb2YobG9uZykpOwogcmV0dXJuIGFyY2hfdGVzdF9h
bmRfc2V0X2JpdF9sb2NrKG5yLCBhZGRyKTsKfQojIDcxICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
Yml0b3BzL2luc3RydW1lbnRlZC1sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wKY2xlYXJfYml0X3VubG9ja19pc19uZWdh
dGl2ZV9ieXRlKGxvbmcgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKIGthc2Fu
X2NoZWNrX3dyaXRlKGFkZHIgKyAoKG5yKSAvIDY0KSwgc2l6ZW9mKGxvbmcpKTsKIHJldHVybiBh
cmNoX2NsZWFyX2JpdF91bmxvY2tfaXNfbmVnYXRpdmVfYnl0ZShuciwgYWRkcik7Cn0KIyAzOTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2FzbS1n
ZW5lcmljL2JpdG9wcy9sZS5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0
ZWQvdWFwaS9hc20vdHlwZXMuaCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9iaXRvcHMv
bGUuaCIgMgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGZpbmRfbmV4dF96ZXJvX2JpdF9sZShjb25zdCB2
b2lkICphZGRyLAogIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpCnsK
IHJldHVybiBmaW5kX25leHRfemVyb19iaXQoYWRkciwgc2l6ZSwgb2Zmc2V0KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWdu
ZWQgbG9uZyBmaW5kX25leHRfYml0X2xlKGNvbnN0IHZvaWQgKmFkZHIsCiAgdW5zaWduZWQgbG9u
ZyBzaXplLCB1bnNpZ25lZCBsb25nIG9mZnNldCkKewogcmV0dXJuIGZpbmRfbmV4dF9iaXQoYWRk
ciwgc2l6ZSwgb2Zmc2V0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBmaW5kX2ZpcnN0X3plcm9fYml0X2xl
KGNvbnN0IHZvaWQgKmFkZHIsCiAgdW5zaWduZWQgbG9uZyBzaXplKQp7CiByZXR1cm4gZmluZF9m
aXJzdF96ZXJvX2JpdChhZGRyLCBzaXplKTsKfQojIDUzICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
Yml0b3BzL2xlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCB0ZXN0X2JpdF9sZShpbnQgbnIsIGNvbnN0IHZvaWQgKmFkZHIpCnsK
IHJldHVybiB0ZXN0X2JpdChuciBeIDAsIGFkZHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9iaXRfbGUoaW50IG5y
LCB2b2lkICphZGRyKQp7CiBzZXRfYml0KG5yIF4gMCwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY2xlYXJfYml0
X2xlKGludCBuciwgdm9pZCAqYWRkcikKewogY2xlYXJfYml0KG5yIF4gMCwgYWRkcik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgX19zZXRfYml0X2xlKGludCBuciwgdm9pZCAqYWRkcikKewogX19zZXRfYml0KG5yIF4gMCwg
YWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgX19jbGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQp7CiBfX2Ns
ZWFyX2JpdChuciBeIDAsIGFkZHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF9hbmRfc2V0X2JpdF9sZShpbnQgbnIs
IHZvaWQgKmFkZHIpCnsKIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yIF4gMCwgYWRkcik7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCB0ZXN0X2FuZF9jbGVhcl9iaXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQp7CiByZXR1cm4g
dGVzdF9hbmRfY2xlYXJfYml0KG5yIF4gMCwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX3Rlc3RfYW5kX3NldF9i
aXRfbGUoaW50IG5yLCB2b2lkICphZGRyKQp7CiByZXR1cm4gX190ZXN0X2FuZF9zZXRfYml0KG5y
IF4gMCwgYWRkcik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX3Rlc3RfYW5kX2NsZWFyX2JpdF9sZShpbnQgbnIsIHZvaWQg
KmFkZHIpCnsKIHJldHVybiBfX3Rlc3RfYW5kX2NsZWFyX2JpdChuciBeIDAsIGFkZHIpOwp9CiMg
Mzk2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIiAyCgojIDEgIi4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9iaXRvcHMvZXh0Mi1hdG9taWMtc2V0Yml0LmgiIDEKIyAzOTggIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYml0b3BzLmgiIDIKIyAzMCAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5o
IiAyCiMgNjUgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGdldF9iaXRtYXNrX29yZGVy
KHVuc2lnbmVkIGludCBjb3VudCkKewogaW50IG9yZGVyOwoKIG9yZGVyID0gZmxzKGNvdW50KTsK
IHJldHVybiBvcmRlcjsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB1bnNp
Z25lZCBsb25nIGh3ZWlnaHRfbG9uZyh1bnNpZ25lZCBsb25nIHcpCnsKIHJldHVybiBzaXplb2Yo
dykgPT0gNCA/IChfX2J1aWx0aW5fY29uc3RhbnRfcCh3KSA/ICgoKCh1bnNpZ25lZCBpbnQpICgo
ISEoKHcpICYgKDFVTEwgPDwgMCkpKSArICghISgodykgJiAoMVVMTCA8PCAxKSkpICsgKCEhKCh3
KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgMykpKSArICghISgodykgJiAo
MVVMTCA8PCA0KSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDUpKSkgKyAoISEoKHcpICYgKDFVTEwg
PDwgNikpKSArICghISgodykgJiAoMVVMTCA8PCA3KSkpKSkgKyAoKHVuc2lnbmVkIGludCkgKCgh
ISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMCkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwg
MSkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgMikpKSArICghISgoKHcpID4+IDgpICYg
KDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKHcp
ID4+IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNikpKSAr
ICghISgoKHcpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSArICgoKHVuc2lnbmVkIGludCkgKCgh
ISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDApKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8
PCAxKSkpICsgKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgMikpKSArICghISgoKHcpID4+IDE2
KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA0KSkpICsgKCEh
KCgodykgPj4gMTYpICYgKDFVTEwgPDwgNSkpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8
IDYpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA3KSkpKSkgKyAoKHVuc2lnbmVkIGlu
dCkgKCghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCgoKHcpID4+
IDE2KSA+PiA4KSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFV
TEwgPDwgMikpKSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEh
KCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCgodykgPj4gMTYpID4+
IDgpICYgKDFVTEwgPDwgNSkpKSArICghISgoKCh3KSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA2
KSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDcpKSkpKSkpIDogX19hcmNo
X2h3ZWlnaHQzMih3KSkgOiAoX19idWlsdGluX2NvbnN0YW50X3AodykgPyAoKCgoKHVuc2lnbmVk
IGludCkgKCghISgodykgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDEpKSkg
KyAoISEoKHcpICYgKDFVTEwgPDwgMikpKSArICghISgodykgJiAoMVVMTCA8PCAzKSkpICsgKCEh
KCh3KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKHcpICYgKDFVTEwgPDwgNSkpKSArICghISgodykg
JiAoMVVMTCA8PCA2KSkpICsgKCEhKCh3KSAmICgxVUxMIDw8IDcpKSkpKSArICgodW5zaWduZWQg
aW50KSAoKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCgodykgPj4gOCkgJiAo
MVVMTCA8PCAxKSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgodykg
Pj4gOCkgJiAoMVVMTCA8PCAzKSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA0KSkpICsg
KCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8
PCA2KSkpICsgKCEhKCgodykgPj4gOCkgJiAoMVVMTCA8PCA3KSkpKSkpICsgKCgodW5zaWduZWQg
aW50KSAoKCEhKCgodykgPj4gMTYpICYgKDFVTEwgPDwgMCkpKSArICghISgoKHcpID4+IDE2KSAm
ICgxVUxMIDw8IDEpKSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgo
dykgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDQp
KSkgKyAoISEoKCh3KSA+PiAxNikgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgodykgPj4gMTYpICYg
KDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDE2KSAmICgxVUxMIDw8IDcpKSkpKSArICgodW5z
aWduZWQgaW50KSAoKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDApKSkgKyAoISEo
KCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgoKCh3KSA+PiAxNikgPj4g
OCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDMp
KSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+
PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgoKHcpID4+IDE2KSA+PiA4KSAmICgx
VUxMIDw8IDYpKSkgKyAoISEoKCgodykgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSkg
KyAoKCgodW5zaWduZWQgaW50KSAoKCEhKCgodykgPj4gMzIpICYgKDFVTEwgPDwgMCkpKSArICgh
ISgoKHcpID4+IDMyKSAmICgxVUxMIDw8IDEpKSkgKyAoISEoKCh3KSA+PiAzMikgJiAoMVVMTCA8
PCAyKSkpICsgKCEhKCgodykgPj4gMzIpICYgKDFVTEwgPDwgMykpKSArICghISgoKHcpID4+IDMy
KSAmICgxVUxMIDw8IDQpKSkgKyAoISEoKCh3KSA+PiAzMikgJiAoMVVMTCA8PCA1KSkpICsgKCEh
KCgodykgPj4gMzIpICYgKDFVTEwgPDwgNikpKSArICghISgoKHcpID4+IDMyKSAmICgxVUxMIDw8
IDcpKSkpKSArICgodW5zaWduZWQgaW50KSAoKCEhKCgoKHcpID4+IDMyKSA+PiA4KSAmICgxVUxM
IDw8IDApKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgo
KCh3KSA+PiAzMikgPj4gOCkgJiAoMVVMTCA8PCAyKSkpICsgKCEhKCgoKHcpID4+IDMyKSA+PiA4
KSAmICgxVUxMIDw8IDMpKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgpICYgKDFVTEwgPDwgNCkp
KSArICghISgoKCh3KSA+PiAzMikgPj4gOCkgJiAoMVVMTCA8PCA1KSkpICsgKCEhKCgoKHcpID4+
IDMyKSA+PiA4KSAmICgxVUxMIDw8IDYpKSkgKyAoISEoKCgodykgPj4gMzIpID4+IDgpICYgKDFV
TEwgPDwgNykpKSkpKSArICgoKHVuc2lnbmVkIGludCkgKCghISgoKCh3KSA+PiAzMikgPj4gMTYp
ICYgKDFVTEwgPDwgMCkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMSkp
KSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMikpKSArICghISgoKCh3KSA+
PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgMykpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYg
KDFVTEwgPDwgNCkpKSArICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNSkpKSAr
ICghISgoKCh3KSA+PiAzMikgPj4gMTYpICYgKDFVTEwgPDwgNikpKSArICghISgoKCh3KSA+PiAz
MikgPj4gMTYpICYgKDFVTEwgPDwgNykpKSkpICsgKCh1bnNpZ25lZCBpbnQpICgoISEoKCgoKHcp
ID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCAwKSkpICsgKCEhKCgoKCh3KSA+PiAzMikg
Pj4gMTYpID4+IDgpICYgKDFVTEwgPDwgMSkpKSArICghISgoKCgodykgPj4gMzIpID4+IDE2KSA+
PiA4KSAmICgxVUxMIDw8IDIpKSkgKyAoISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAo
MVVMTCA8PCAzKSkpICsgKCEhKCgoKCh3KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwg
NCkpKSArICghISgoKCgodykgPj4gMzIpID4+IDE2KSA+PiA4KSAmICgxVUxMIDw8IDUpKSkgKyAo
ISEoKCgoKHcpID4+IDMyKSA+PiAxNikgPj4gOCkgJiAoMVVMTCA8PCA2KSkpICsgKCEhKCgoKCh3
KSA+PiAzMikgPj4gMTYpID4+IDgpICYgKDFVTEwgPDwgNykpKSkpKSkpIDogX19hcmNoX2h3ZWln
aHQ2NCh3KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191NjQgcm9sNjQoX191NjQgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgNjMpKSB8ICh3b3JkID4+ICgoLXNoaWZ0
KSAmIDYzKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191NjQgcm9yNjQoX191NjQgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgNjMpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0
KSAmIDYzKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MzIgcm9sMzIoX191MzIgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgMzEpKSB8ICh3b3JkID4+ICgoLXNoaWZ0
KSAmIDMxKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MzIgcm9yMzIoX191MzIgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgMzEpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0
KSAmIDMxKSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MTYgcm9sMTYoX191MTYgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgMTUpKSB8ICh3b3JkID4+ICgoLXNoaWZ0
KSAmIDE1KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191MTYgcm9yMTYoX191MTYgd29yZCwgdW5zaWduZWQgaW50IHNo
aWZ0KQp7CiByZXR1cm4gKHdvcmQgPj4gKHNoaWZ0ICYgMTUpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0
KSAmIDE1KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX191OCByb2w4KF9fdTggd29yZCwgdW5zaWduZWQgaW50IHNoaWZ0
KQp7CiByZXR1cm4gKHdvcmQgPDwgKHNoaWZ0ICYgNykpIHwgKHdvcmQgPj4gKCgtc2hpZnQpICYg
NykpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fdTggcm9yOChfX3U4IHdvcmQsIHVuc2lnbmVkIGludCBzaGlmdCkKewog
cmV0dXJuICh3b3JkID4+IChzaGlmdCAmIDcpKSB8ICh3b3JkIDw8ICgoLXNoaWZ0KSAmIDcpKTsK
fQojIDE2NSAiLi9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX3MzMiBzaWduX2V4dGVuZDMyKF9f
dTMyIHZhbHVlLCBpbnQgaW5kZXgpCnsKIF9fdTggc2hpZnQgPSAzMSAtIGluZGV4OwogcmV0dXJu
IChfX3MzMikodmFsdWUgPDwgc2hpZnQpID4+IHNoaWZ0Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fczY0IHNpZ25fZXh0
ZW5kNjQoX191NjQgdmFsdWUsIGludCBpbmRleCkKewogX191OCBzaGlmdCA9IDYzIC0gaW5kZXg7
CiByZXR1cm4gKF9fczY0KSh2YWx1ZSA8PCBzaGlmdCkgPj4gc2hpZnQ7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGZs
c19sb25nKHVuc2lnbmVkIGxvbmcgbCkKewogaWYgKHNpemVvZihsKSA9PSA0KQogIHJldHVybiBm
bHMobCk7CiByZXR1cm4gZmxzNjQobCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfY291bnRfb3JkZXIodW5zaWduZWQg
aW50IGNvdW50KQp7CiBpbnQgb3JkZXI7Cgogb3JkZXIgPSBmbHMoY291bnQpIC0gMTsKIGlmIChj
b3VudCAmIChjb3VudCAtIDEpKQogIG9yZGVyKys7CiByZXR1cm4gb3JkZXI7Cn0KCgoKCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBnZXRfY291bnRfb3JkZXJfbG9uZyh1bnNpZ25lZCBsb25nIGwpCnsKIGlmIChsID09IDBVTCkK
ICByZXR1cm4gLTE7CiBlbHNlIGlmIChsICYgKGwgLSAxVUwpKQogIHJldHVybiAoaW50KWZsc19s
b25nKGwpOwogZWxzZQogIHJldHVybiAoaW50KWZsc19sb25nKGwpIC0gMTsKfQojIDIyMyAiLi9p
bmNsdWRlL2xpbnV4L2JpdG9wcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fZmZzNjQodTY0IHdvcmQpCnsK
CgoKCgoKIHJldHVybiBfX2ZmcygodW5zaWduZWQgbG9uZyl3b3JkKTsKfQoKCgoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGFzc2lnbl9iaXQobG9uZyBuciwgdm9s
YXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkciwKICAgICAgICAgICBib29sIHZhbHVlKQp7CiBpZiAo
dmFsdWUpCiAgc2V0X2JpdChuciwgYWRkcik7CiBlbHNlCiAgY2xlYXJfYml0KG5yLCBhZGRyKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fYXNzaWduX2JpdChs
b25nIG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyLAogICAgICBib29sIHZhbHVlKQp7
CiBpZiAodmFsdWUpCiAgX19zZXRfYml0KG5yLCBhZGRyKTsKIGVsc2UKICBfX2NsZWFyX2JpdChu
ciwgYWRkcik7Cn0KIyAyOTkgIi4vaW5jbHVkZS9saW51eC9iaXRvcHMuaCIKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgZmluZF9sYXN0X2JpdChjb25zdCB1bnNpZ25lZCBsb25nICphZGRyLAogICAgICAg
dW5zaWduZWQgbG9uZyBzaXplKTsKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAyCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIgMQojIDIxICIuL2luY2x1ZGUvbGludXgvbG9nMi5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpCmludCBfX2lsb2cyX3UzMih1MzIgbikKewogcmV0dXJu
IGZscyhuKSAtIDE7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoY29uc3QpKQppbnQgX19pbG9nMl91NjQo
dTY0IG4pCnsKIHJldHVybiBmbHM2NChuKSAtIDE7Cn0KIyA0NCAiLi9pbmNsdWRlL2xpbnV4L2xv
ZzIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoY29uc3QpKQpib29sIGlzX3Bvd2VyX29mXzIodW5zaWduZWQg
bG9uZyBuKQp7CiByZXR1cm4gKG4gIT0gMCAmJiAoKG4gJiAobiAtIDEpKSA9PSAwKSk7Cn0KCgoK
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpCnVuc2lnbmVkIGxvbmcgX19yb3VuZHVwX3Bvd19vZl90
d28odW5zaWduZWQgbG9uZyBuKQp7CiByZXR1cm4gMVVMIDw8IGZsc19sb25nKG4gLSAxKTsKfQoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKGNvbnN0KSkKdW5zaWduZWQgbG9uZyBfX3JvdW5kZG93bl9wb3df
b2ZfdHdvKHVuc2lnbmVkIGxvbmcgbikKewogcmV0dXJuIDFVTCA8PCAoZmxzX2xvbmcobikgLSAx
KTsKfQojIDE5NyAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19jb25z
dF9fKSkKaW50IF9fb3JkZXJfYmFzZV8yKHVuc2lnbmVkIGxvbmcgbikKewogcmV0dXJuIG4gPiAx
ID8gKCBfX2J1aWx0aW5fY29uc3RhbnRfcChuIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9w
KG4gLSAxKSA/ICggKG4gLSAxKSA8IDIgPyAwIDogKG4gLSAxKSAmICgxVUxMIDw8IDYzKSA/IDYz
IDogKG4gLSAxKSAmICgxVUxMIDw8IDYyKSA/IDYyIDogKG4gLSAxKSAmICgxVUxMIDw8IDYxKSA/
IDYxIDogKG4gLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKG4gLSAxKSAmICgxVUxMIDw8IDU5
KSA/IDU5IDogKG4gLSAxKSAmICgxVUxMIDw8IDU4KSA/IDU4IDogKG4gLSAxKSAmICgxVUxMIDw8
IDU3KSA/IDU3IDogKG4gLSAxKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKG4gLSAxKSAmICgxVUxM
IDw8IDU1KSA/IDU1IDogKG4gLSAxKSAmICgxVUxMIDw8IDU0KSA/IDU0IDogKG4gLSAxKSAmICgx
VUxMIDw8IDUzKSA/IDUzIDogKG4gLSAxKSAmICgxVUxMIDw8IDUyKSA/IDUyIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDUxKSA/IDUxIDogKG4gLSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKG4gLSAx
KSAmICgxVUxMIDw8IDQ5KSA/IDQ5IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKG4g
LSAxKSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ2KSA/IDQ2IDog
KG4gLSAxKSAmICgxVUxMIDw8IDQ1KSA/IDQ1IDogKG4gLSAxKSAmICgxVUxMIDw8IDQ0KSA/IDQ0
IDogKG4gLSAxKSAmICgxVUxMIDw8IDQzKSA/IDQzIDogKG4gLSAxKSAmICgxVUxMIDw8IDQyKSA/
IDQyIDogKG4gLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKG4gLSAxKSAmICgxVUxMIDw8IDQw
KSA/IDQwIDogKG4gLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKG4gLSAxKSAmICgxVUxMIDw8
IDM4KSA/IDM4IDogKG4gLSAxKSAmICgxVUxMIDw8IDM3KSA/IDM3IDogKG4gLSAxKSAmICgxVUxM
IDw8IDM2KSA/IDM2IDogKG4gLSAxKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKG4gLSAxKSAmICgx
VUxMIDw8IDM0KSA/IDM0IDogKG4gLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDogKG4gLSAxKSAm
ICgxVUxMIDw8IDMyKSA/IDMyIDogKG4gLSAxKSAmICgxVUxMIDw8IDMxKSA/IDMxIDogKG4gLSAx
KSAmICgxVUxMIDw8IDMwKSA/IDMwIDogKG4gLSAxKSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKG4g
LSAxKSAmICgxVUxMIDw8IDI4KSA/IDI4IDogKG4gLSAxKSAmICgxVUxMIDw8IDI3KSA/IDI3IDog
KG4gLSAxKSAmICgxVUxMIDw8IDI2KSA/IDI2IDogKG4gLSAxKSAmICgxVUxMIDw8IDI1KSA/IDI1
IDogKG4gLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0IDogKG4gLSAxKSAmICgxVUxMIDw8IDIzKSA/
IDIzIDogKG4gLSAxKSAmICgxVUxMIDw8IDIyKSA/IDIyIDogKG4gLSAxKSAmICgxVUxMIDw8IDIx
KSA/IDIxIDogKG4gLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKG4gLSAxKSAmICgxVUxMIDw8
IDE5KSA/IDE5IDogKG4gLSAxKSAmICgxVUxMIDw8IDE4KSA/IDE4IDogKG4gLSAxKSAmICgxVUxM
IDw8IDE3KSA/IDE3IDogKG4gLSAxKSAmICgxVUxMIDw8IDE2KSA/IDE2IDogKG4gLSAxKSAmICgx
VUxMIDw8IDE1KSA/IDE1IDogKG4gLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKG4gLSAxKSAm
ICgxVUxMIDw8IDEzKSA/IDEzIDogKG4gLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKG4gLSAx
KSAmICgxVUxMIDw8IDExKSA/IDExIDogKG4gLSAxKSAmICgxVUxMIDw8IDEwKSA/IDEwIDogKG4g
LSAxKSAmICgxVUxMIDw8IDkpID8gOSA6IChuIC0gMSkgJiAoMVVMTCA8PCA4KSA/IDggOiAobiAt
IDEpICYgKDFVTEwgPDwgNykgPyA3IDogKG4gLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6IChuIC0g
MSkgJiAoMVVMTCA8PCA1KSA/IDUgOiAobiAtIDEpICYgKDFVTEwgPDwgNCkgPyA0IDogKG4gLSAx
KSAmICgxVUxMIDw8IDMpID8gMyA6IChuIC0gMSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0x
KSA6IChzaXplb2YobiAtIDEpIDw9IDQpID8gX19pbG9nMl91MzIobiAtIDEpIDogX19pbG9nMl91
NjQobiAtIDEpICkgKyAxIDogMDsKfQojIDIyNCAiLi9pbmNsdWRlL2xpbnV4L2xvZzIuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoY29uc3QpKQppbnQgX19iaXRzX3Blcih1bnNpZ25lZCBsb25nIG4pCnsKIGlm
IChuIDwgMikKICByZXR1cm4gMTsKIGlmIChpc19wb3dlcl9vZl8yKG4pKQogIHJldHVybiAoIF9f
YnVpbHRpbl9jb25zdGFudF9wKG4pID8gKCAoKG4pID09IDAgfHwgKG4pID09IDEpID8gMCA6ICgg
X19idWlsdGluX2NvbnN0YW50X3AoKG4pIC0gMSkgPyAoIF9fYnVpbHRpbl9jb25zdGFudF9wKChu
KSAtIDEpID8gKCAoKG4pIC0gMSkgPCAyID8gMCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYzKSA/
IDYzIDogKChuKSAtIDEpICYgKDFVTEwgPDwgNjIpID8gNjIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCA2MSkgPyA2MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYwKSA/IDYwIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgNTkpID8gNTkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDU3KSA/IDU3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTYpID8gNTYg
OiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDU0
KSA/IDU0IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTMpID8gNTMgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCA1MikgPyA1MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUxKSA/IDUxIDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgNTApID8gNTAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0OSkgPyA0OSA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDQ4KSA/IDQ4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDcpID8g
NDcgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDQ1KSA/IDQ1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDQpID8gNDQgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCA0MykgPyA0MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQyKSA/IDQyIDogKChuKSAt
IDEpICYgKDFVTEwgPDwgNDEpID8gNDEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0MCkgPyA0MCA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDM5KSA/IDM5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzgp
ID8gMzggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzNykgPyAzNyA6ICgobikgLSAxKSAmICgxVUxM
IDw8IDM2KSA/IDM2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzUpID8gMzUgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMzKSA/IDMzIDogKChu
KSAtIDEpICYgKDFVTEwgPDwgMzIpID8gMzIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMSkgPyAz
MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMwKSA/IDMwIDogKChuKSAtIDEpICYgKDFVTEwgPDwg
MjkpID8gMjkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyOCkgPyAyOCA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDI3KSA/IDI3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjYpID8gMjYgOiAoKG4pIC0g
MSkgJiAoMVVMTCA8PCAyNSkgPyAyNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI0KSA/IDI0IDog
KChuKSAtIDEpICYgKDFVTEwgPDwgMjMpID8gMjMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMikg
PyAyMiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIxKSA/IDIxIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgMjApID8gMjAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDE4KSA/IDE4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTcpID8gMTcgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCAxNikgPyAxNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE1KSA/IDE1
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTQpID8gMTQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAx
MykgPyAxMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDEyKSA/IDEyIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgMTEpID8gMTEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDkpID8gOSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDgpID8gOCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDcpID8gNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYpID8gNiA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDUpID8gNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQpID8gNCA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDMpID8gMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIpID8g
MiA6IDEpIDogLTEpIDogKHNpemVvZigobikgLSAxKSA8PSA0KSA/IF9faWxvZzJfdTMyKChuKSAt
IDEpIDogX19pbG9nMl91NjQoKG4pIC0gMSkgKSArIDEpIDogX19vcmRlcl9iYXNlXzIobikgKSAr
IDE7CiByZXR1cm4gKCBfX2J1aWx0aW5fY29uc3RhbnRfcChuKSA/ICggKChuKSA9PSAwIHx8IChu
KSA9PSAxKSA/IDAgOiAoIF9fYnVpbHRpbl9jb25zdGFudF9wKChuKSAtIDEpID8gKCBfX2J1aWx0
aW5fY29uc3RhbnRfcCgobikgLSAxKSA/ICggKChuKSAtIDEpIDwgMiA/IDAgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCA2MykgPyA2MyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDYyKSA/IDYyIDogKChu
KSAtIDEpICYgKDFVTEwgPDwgNjEpID8gNjEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA2MCkgPyA2
MCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDU5KSA/IDU5IDogKChuKSAtIDEpICYgKDFVTEwgPDwg
NTgpID8gNTggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1NykgPyA1NyA6ICgobikgLSAxKSAmICgx
VUxMIDw8IDU2KSA/IDU2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNTUpID8gNTUgOiAoKG4pIC0g
MSkgJiAoMVVMTCA8PCA1NCkgPyA1NCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUzKSA/IDUzIDog
KChuKSAtIDEpICYgKDFVTEwgPDwgNTIpID8gNTIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1MSkg
PyA1MSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKChuKSAtIDEpICYgKDFVTEwg
PDwgNDkpID8gNDkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0OCkgPyA0OCA6ICgobikgLSAxKSAm
ICgxVUxMIDw8IDQ3KSA/IDQ3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDYpID8gNDYgOiAoKG4p
IC0gMSkgJiAoMVVMTCA8PCA0NSkgPyA0NSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQ0KSA/IDQ0
IDogKChuKSAtIDEpICYgKDFVTEwgPDwgNDMpID8gNDMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA0
MikgPyA0MiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKChuKSAtIDEpICYgKDFV
TEwgPDwgNDApID8gNDAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzOSkgPyAzOSA6ICgobikgLSAx
KSAmICgxVUxMIDw8IDM4KSA/IDM4IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzcpID8gMzcgOiAo
KG4pIC0gMSkgJiAoMVVMTCA8PCAzNikgPyAzNiA6ICgobikgLSAxKSAmICgxVUxMIDw8IDM1KSA/
IDM1IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMzQpID8gMzQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCAzMykgPyAzMyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKChuKSAtIDEpICYg
KDFVTEwgPDwgMzEpID8gMzEgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzMCkgPyAzMCA6ICgobikg
LSAxKSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjgpID8gMjgg
OiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyNykgPyAyNyA6ICgobikgLSAxKSAmICgxVUxMIDw8IDI2
KSA/IDI2IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMjUpID8gMjUgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCAyNCkgPyAyNCA6ICgobikgLSAxKSAmICgxVUxMIDw8IDIzKSA/IDIzIDogKChuKSAtIDEp
ICYgKDFVTEwgPDwgMjIpID8gMjIgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAyMSkgPyAyMSA6ICgo
bikgLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTkpID8g
MTkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxOCkgPyAxOCA6ICgobikgLSAxKSAmICgxVUxMIDw8
IDE3KSA/IDE3IDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTYpID8gMTYgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCAxNSkgPyAxNSA6ICgobikgLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKChuKSAt
IDEpICYgKDFVTEwgPDwgMTMpID8gMTMgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAxMikgPyAxMiA6
ICgobikgLSAxKSAmICgxVUxMIDw8IDExKSA/IDExIDogKChuKSAtIDEpICYgKDFVTEwgPDwgMTAp
ID8gMTAgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA5KSA/IDkgOiAoKG4pIC0gMSkgJiAoMVVMTCA8
PCA4KSA/IDggOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA3KSA/IDcgOiAoKG4pIC0gMSkgJiAoMVVM
TCA8PCA2KSA/IDYgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCA1KSA/IDUgOiAoKG4pIC0gMSkgJiAo
MVVMTCA8PCA0KSA/IDQgOiAoKG4pIC0gMSkgJiAoMVVMTCA8PCAzKSA/IDMgOiAoKG4pIC0gMSkg
JiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChzaXplb2YoKG4pIC0gMSkgPD0gNCkgPyBf
X2lsb2cyX3UzMigobikgLSAxKSA6IF9faWxvZzJfdTY0KChuKSAtIDEpICkgKyAxKSA6IF9fb3Jk
ZXJfYmFzZV8yKG4pICk7Cn0KIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAyCgojIDEg
Ii4vaW5jbHVkZS9saW51eC9wcmludGsuaCIgMQoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9r
ZXJuX2xldmVscy5oIiAxCiMgOCAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCgojIDEgIi4v
aW5jbHVkZS9saW51eC9jYWNoZS5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tl
cm5lbC5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N5c2luZm8uaCIgMQoKCgoK
CgoKc3RydWN0IHN5c2luZm8gewogX19rZXJuZWxfbG9uZ190IHVwdGltZTsKIF9fa2VybmVsX3Vs
b25nX3QgbG9hZHNbM107CiBfX2tlcm5lbF91bG9uZ190IHRvdGFscmFtOwogX19rZXJuZWxfdWxv
bmdfdCBmcmVlcmFtOwogX19rZXJuZWxfdWxvbmdfdCBzaGFyZWRyYW07CiBfX2tlcm5lbF91bG9u
Z190IGJ1ZmZlcnJhbTsKIF9fa2VybmVsX3Vsb25nX3QgdG90YWxzd2FwOwogX19rZXJuZWxfdWxv
bmdfdCBmcmVlc3dhcDsKIF9fdTE2IHByb2NzOwogX191MTYgcGFkOwogX19rZXJuZWxfdWxvbmdf
dCB0b3RhbGhpZ2g7CiBfX2tlcm5lbF91bG9uZ190IGZyZWVoaWdoOwogX191MzIgbWVtX3VuaXQ7
CiBjaGFyIF9mWzIwLTIqc2l6ZW9mKF9fa2VybmVsX3Vsb25nX3QpLXNpemVvZihfX3UzMildOwp9
OwojIDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tlcm5lbC5oIiAyCiMgNiAiLi9pbmNsdWRlL2xp
bnV4L2NhY2hlLmgiIDIKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCgpleHRlcm4g
Y29uc3QgY2hhciBsaW51eF9iYW5uZXJbXTsKZXh0ZXJuIGNvbnN0IGNoYXIgbGludXhfcHJvY19i
YW5uZXJbXTsKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHByaW50a19nZXRfbGV2ZWwoY29uc3QgY2hhciAqYnVmZmVyKQp7CiBp
ZiAoYnVmZmVyWzBdID09ICdcMDAxJyAmJiBidWZmZXJbMV0pIHsKICBzd2l0Y2ggKGJ1ZmZlclsx
XSkgewogIGNhc2UgJzAnIC4uLiAnNyc6CiAgY2FzZSAnYyc6CiAgIHJldHVybiBidWZmZXJbMV07
CiAgfQogfQogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0IGNoYXIgKnByaW50a19za2lwX2xldmVsKGNvbnN0
IGNoYXIgKmJ1ZmZlcikKewogaWYgKHByaW50a19nZXRfbGV2ZWwoYnVmZmVyKSkKICByZXR1cm4g
YnVmZmVyICsgMjsKCiByZXR1cm4gYnVmZmVyOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBjaGFyICpwcmludGtfc2tpcF9o
ZWFkZXJzKGNvbnN0IGNoYXIgKmJ1ZmZlcikKewogd2hpbGUgKHByaW50a19nZXRfbGV2ZWwoYnVm
ZmVyKSkKICBidWZmZXIgPSBwcmludGtfc2tpcF9sZXZlbChidWZmZXIpOwoKIHJldHVybiBidWZm
ZXI7Cn0KIyA2MiAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgpleHRlcm4gaW50IGNvbnNvbGVf
cHJpbnRrW107CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY29uc29sZV9zaWxlbnQodm9pZCkKewogKGNvbnNvbGVfcHJp
bnRrWzBdKSA9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY29uc29sZV92ZXJib3NlKHZvaWQpCnsKIGlmICgoY29uc29s
ZV9wcmludGtbMF0pKQogIChjb25zb2xlX3ByaW50a1swXSkgPSAxNTsKfQoKCgpleHRlcm4gY2hh
ciBkZXZrbXNnX2xvZ19zdHJbXTsKc3RydWN0IGN0bF90YWJsZTsKCmV4dGVybiBpbnQgc3VwcHJl
c3NfcHJpbnRrOwoKc3RydWN0IHZhX2Zvcm1hdCB7CiBjb25zdCBjaGFyICpmbXQ7CiB2YV9saXN0
ICp2YTsKfTsKIyAxNDIgIi4vaW5jbHVkZS9saW51eC9wcmludGsuaCIKZXh0ZXJuIF9fYXR0cmli
dXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAyKSkpCnZvaWQgZWFybHlfcHJpbnRrKGNvbnN0
IGNoYXIgKmZtdCwgLi4uKTsKCgoKCgoKZXh0ZXJuIHZvaWQgcHJpbnRrX25taV9lbnRlcih2b2lk
KTsKZXh0ZXJuIHZvaWQgcHJpbnRrX25taV9leGl0KHZvaWQpOwpleHRlcm4gdm9pZCBwcmludGtf
bm1pX2RpcmVjdF9lbnRlcih2b2lkKTsKZXh0ZXJuIHZvaWQgcHJpbnRrX25taV9kaXJlY3RfZXhp
dCh2b2lkKTsKIyAxNjIgIi4vaW5jbHVkZS9saW51eC9wcmludGsuaCIKIF9fYXR0cmlidXRlX18o
KF9fZm9ybWF0X18ocHJpbnRmLCA1LCAwKSkpCmludCB2cHJpbnRrX2VtaXQoaW50IGZhY2lsaXR5
LCBpbnQgbGV2ZWwsCiAgIGNvbnN0IGNoYXIgKmRpY3QsIHNpemVfdCBkaWN0bGVuLAogICBjb25z
dCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CgogX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhw
cmludGYsIDEsIDApKSkKaW50IHZwcmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3Mp
OwoKIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAyKSkpIF9fYXR0cmlidXRl
X18oKF9fY29sZF9fKSkKaW50IHByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CgoKCgpfX2F0
dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIGludCBwcmludGtfZGVmZXJyZWQoY29uc3QgY2hhciAqZm10LCAuLi4pOwoKCgoKCgpl
eHRlcm4gaW50IF9fcHJpbnRrX3JhdGVsaW1pdChjb25zdCBjaGFyICpmdW5jKTsKCmV4dGVybiBi
b29sIHByaW50a190aW1lZF9yYXRlbGltaXQodW5zaWduZWQgbG9uZyAqY2FsbGVyX2ppZmZpZXMs
CiAgICAgICB1bnNpZ25lZCBpbnQgaW50ZXJ2YWxfbXNlYyk7CgpleHRlcm4gaW50IHByaW50a19k
ZWxheV9tc2VjOwpleHRlcm4gaW50IGRtZXNnX3Jlc3RyaWN0OwoKZXh0ZXJuIGludApkZXZrbXNn
X3N5c2N0bF9zZXRfbG9nbHZsKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHZv
aWQgKmJ1ZiwKICAgICBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CgpleHRlcm4gdm9pZCB3
YWtlX3VwX2tsb2dkKHZvaWQpOwoKY2hhciAqbG9nX2J1Zl9hZGRyX2dldCh2b2lkKTsKdTMyIGxv
Z19idWZfbGVuX2dldCh2b2lkKTsKdm9pZCBsb2dfYnVmX3ZtY29yZWluZm9fc2V0dXAodm9pZCk7
CnZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmli
dXRlX18oKF9fY29sZF9fKSkgc2V0dXBfbG9nX2J1ZihpbnQgZWFybHkpOwpfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKSB2b2lkIGR1bXBfc3RhY2tfc2V0X2FyY2hfZGVz
Yyhjb25zdCBjaGFyICpmbXQsIC4uLik7CnZvaWQgZHVtcF9zdGFja19wcmludF9pbmZvKGNvbnN0
IGNoYXIgKmxvZ19sdmwpOwp2b2lkIHNob3dfcmVnc19wcmludF9pbmZvKGNvbnN0IGNoYXIgKmxv
Z19sdmwpOwpleHRlcm4gdm9pZCBkdW1wX3N0YWNrKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fY29s
ZF9fKSk7CmV4dGVybiB2b2lkIHByaW50a19zYWZlX2luaXQodm9pZCk7CmV4dGVybiB2b2lkIHBy
aW50a19zYWZlX2ZsdXNoKHZvaWQpOwpleHRlcm4gdm9pZCBwcmludGtfc2FmZV9mbHVzaF9vbl9w
YW5pYyh2b2lkKTsKIyAyODUgIi4vaW5jbHVkZS9saW51eC9wcmludGsuaCIKZXh0ZXJuIGludCBr
cHRyX3Jlc3RyaWN0OwojIDMzMSAiLi9pbmNsdWRlL2xpbnV4L3ByaW50ay5oIgojIDEgIi4vaW5j
bHVkZS9saW51eC9keW5hbWljX2RlYnVnLmgiIDEKIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2R5bmFt
aWNfZGVidWcuaCIKc3RydWN0IF9kZGVidWcgewoKCgoKIGNvbnN0IGNoYXIgKm1vZG5hbWU7CiBj
b25zdCBjaGFyICpmdW5jdGlvbjsKIGNvbnN0IGNoYXIgKmZpbGVuYW1lOwogY29uc3QgY2hhciAq
Zm9ybWF0OwogdW5zaWduZWQgaW50IGxpbmVubzoxODsKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L2R5
bmFtaWNfZGVidWcuaCIKIHVuc2lnbmVkIGludCBmbGFnczo4OwoKIHVuaW9uIHsKICBzdHJ1Y3Qg
c3RhdGljX2tleV90cnVlIGRkX2tleV90cnVlOwogIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlIGRk
X2tleV9mYWxzZTsKIH0ga2V5OwoKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CgoKCgpp
bnQgZGRlYnVnX2FkZF9tb2R1bGUoc3RydWN0IF9kZGVidWcgKnRhYiwgdW5zaWduZWQgaW50IG4s
CiAgICBjb25zdCBjaGFyICptb2RuYW1lKTsKZXh0ZXJuIGludCBkZGVidWdfcmVtb3ZlX21vZHVs
ZShjb25zdCBjaGFyICptb2RfbmFtZSk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9f
KHByaW50ZiwgMiwgMykpKQp2b2lkIF9fZHluYW1pY19wcl9kZWJ1ZyhzdHJ1Y3QgX2RkZWJ1ZyAq
ZGVzY3JpcHRvciwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoKZXh0ZXJuIGludCBkZGVidWdfZHlu
ZGJnX21vZHVsZV9wYXJhbV9jYihjaGFyICpwYXJhbSwgY2hhciAqdmFsLAogICAgIGNvbnN0IGNo
YXIgKm1vZG5hbWUpOwoKc3RydWN0IGRldmljZTsKCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zv
cm1hdF9fKHByaW50ZiwgMywgNCkpKQp2b2lkIF9fZHluYW1pY19kZXZfZGJnKHN0cnVjdCBfZGRl
YnVnICpkZXNjcmlwdG9yLCBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgICAgIGNvbnN0
IGNoYXIgKmZtdCwgLi4uKTsKCnN0cnVjdCBuZXRfZGV2aWNlOwoKZXh0ZXJuIF9fYXR0cmlidXRl
X18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCA0KSkpCnZvaWQgX19keW5hbWljX25ldGRldl9kYmco
c3RydWN0IF9kZGVidWcgKmRlc2NyaXB0b3IsCiAgICAgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Ug
KmRldiwKICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CgpzdHJ1Y3QgaWJfZGV2aWNlOwoKZXh0
ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCA0KSkpCnZvaWQgX19keW5h
bWljX2liZGV2X2RiZyhzdHJ1Y3QgX2RkZWJ1ZyAqZGVzY3JpcHRvciwKICAgIGNvbnN0IHN0cnVj
dCBpYl9kZXZpY2UgKmliZGV2LAogICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwojIDMzMiAiLi9p
bmNsdWRlL2xpbnV4L3ByaW50ay5oIiAyCiMgNDc2ICIuL2luY2x1ZGUvbGludXgvcHJpbnRrLmgi
CmV4dGVybiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGttc2dfZm9wczsKCmVudW0gewog
RFVNUF9QUkVGSVhfTk9ORSwKIERVTVBfUFJFRklYX0FERFJFU1MsCiBEVU1QX1BSRUZJWF9PRkZT
RVQKfTsKZXh0ZXJuIGludCBoZXhfZHVtcF90b19idWZmZXIoY29uc3Qgdm9pZCAqYnVmLCBzaXpl
X3QgbGVuLCBpbnQgcm93c2l6ZSwKICAgICAgICAgaW50IGdyb3Vwc2l6ZSwgY2hhciAqbGluZWJ1
Ziwgc2l6ZV90IGxpbmVidWZsZW4sCiAgICAgICAgIGJvb2wgYXNjaWkpOwoKZXh0ZXJuIHZvaWQg
cHJpbnRfaGV4X2R1bXAoY29uc3QgY2hhciAqbGV2ZWwsIGNvbnN0IGNoYXIgKnByZWZpeF9zdHIs
CiAgICAgIGludCBwcmVmaXhfdHlwZSwgaW50IHJvd3NpemUsIGludCBncm91cHNpemUsCiAgICAg
IGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwgYm9vbCBhc2NpaSk7CiMgMTYgIi4vaW5jbHVk
ZS9saW51eC9rZXJuZWwuaCIgMgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kaXY2NC5o
IiAxCiMgNzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGl2NjQuaCIKIyAxICIuL2luY2x1ZGUv
YXNtLWdlbmVyaWMvZGl2NjQuaCIgMQojIDc2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RpdjY0
LmgiIDIKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHU2NCBtdWxfdTY0X3UzMl9kaXYodTY0IGEsIHUzMiBtdWwsIHUzMiBkaXYpCnsKIHU2
NCBxOwoKIGFzbSAoIm11bHEgJTI7IGRpdnEgJTMiIDogIj1hIiAocSkKICAgIDogImEiIChhKSwg
InJtIiAoKHU2NCltdWwpLCAicm0iICgodTY0KWRpdikKICAgIDogInJkeCIpOwoKIHJldHVybiBx
Owp9CiMgMTkgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMgojIDE5MSAiLi9pbmNsdWRlL2xp
bnV4L2tlcm5lbC5oIgpzdHJ1Y3QgY29tcGxldGlvbjsKc3RydWN0IHB0X3JlZ3M7CnN0cnVjdCB1
c2VyOwojIDI0NyAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgogIHN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19fbWlnaHRfc2xl
ZXAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAgICAgICBpbnQgcHJlZW1wdF9vZmZzZXQp
IHsgfQogIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19taWdodF9zbGVlcChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAg
ICAgIGludCBwcmVlbXB0X29mZnNldCkgeyB9CiMgMjk3ICIuL2luY2x1ZGUvbGludXgva2VybmVs
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHUzMiByZWNpcHJvY2FsX3NjYWxlKHUzMiB2YWwsIHUzMiBlcF9ybykKewogcmV0dXJuICh1
MzIpKCgodTY0KSB2YWwgKiBlcF9ybykgPj4gMzIpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWlnaHRfZmF1bHQo
dm9pZCkgeyB9CgoKZXh0ZXJuIHN0cnVjdCBhdG9taWNfbm90aWZpZXJfaGVhZCBwYW5pY19ub3Rp
Zmllcl9saXN0OwpleHRlcm4gbG9uZyAoKnBhbmljX2JsaW5rKShpbnQgc3RhdGUpOwpfX2F0dHJp
YnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKQp2b2lkIHBhbmljKGNvbnN0IGNoYXIg
KmZtdCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKSBfX2F0dHJpYnV0ZV9fKChf
X2NvbGRfXykpOwp2b2lkIG5taV9wYW5pYyhzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hh
ciAqbXNnKTsKZXh0ZXJuIHZvaWQgb29wc19lbnRlcih2b2lkKTsKZXh0ZXJuIHZvaWQgb29wc19l
eGl0KHZvaWQpOwp2b2lkIHByaW50X29vcHNfZW5kX21hcmtlcih2b2lkKTsKZXh0ZXJuIGludCBv
b3BzX21heV9wcmludCh2b2lkKTsKdm9pZCBkb19leGl0KGxvbmcgZXJyb3JfY29kZSkgX19hdHRy
aWJ1dGVfXygoX19ub3JldHVybl9fKSk7CnZvaWQgY29tcGxldGVfYW5kX2V4aXQoc3RydWN0IGNv
bXBsZXRpb24gKiwgbG9uZykgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSk7CgoKaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBfa3N0cnRvdWwoY29uc3QgY2hh
ciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgKnJlcyk7CmludCBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX2tzdHJ0b2woY29uc3QgY2hhciAqcywg
dW5zaWduZWQgaW50IGJhc2UsIGxvbmcgKnJlcyk7CgppbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3VsbChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQg
YmFzZSwgdW5zaWduZWQgbG9uZyBsb25nICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2xsKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBi
YXNlLCBsb25nIGxvbmcgKnJlcyk7CiMgMzQ0ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvdWwoY29uc3Qg
Y2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIHVuc2lnbmVkIGxvbmcgKnJlcykKewoKCgoKIGlm
IChzaXplb2YodW5zaWduZWQgbG9uZykgPT0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgJiYK
ICAgICBfX2FsaWdub2ZfXyh1bnNpZ25lZCBsb25nKSA9PSBfX2FsaWdub2ZfXyh1bnNpZ25lZCBs
b25nIGxvbmcpKQogIHJldHVybiBrc3RydG91bGwocywgYmFzZSwgKHVuc2lnbmVkIGxvbmcgbG9u
ZyAqKXJlcyk7CiBlbHNlCiAgcmV0dXJuIF9rc3RydG91bChzLCBiYXNlLCByZXMpOwp9CiMgMzcy
ICIuL2luY2x1ZGUvbGludXgva2VybmVsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkga3N0cnRvbChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwg
bG9uZyAqcmVzKQp7CgoKCgogaWYgKHNpemVvZihsb25nKSA9PSBzaXplb2YobG9uZyBsb25nKSAm
JgogICAgIF9fYWxpZ25vZl9fKGxvbmcpID09IF9fYWxpZ25vZl9fKGxvbmcgbG9uZykpCiAgcmV0
dXJuIGtzdHJ0b2xsKHMsIGJhc2UsIChsb25nIGxvbmcgKilyZXMpOwogZWxzZQogIHJldHVybiBf
a3N0cnRvbChzLCBiYXNlLCByZXMpOwp9CgppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGtzdHJ0b3VpbnQoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2Us
IHVuc2lnbmVkIGludCAqcmVzKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBrc3RydG9pbnQoY29uc3QgY2hhciAqcywgdW5zaWduZWQgaW50IGJhc2UsIGludCAq
cmVzKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRv
dTY0KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCB1NjQgKnJlcykKewogcmV0dXJu
IGtzdHJ0b3VsbChzLCBiYXNlLCByZXMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIGtzdHJ0b3M2NChjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFz
ZSwgczY0ICpyZXMpCnsKIHJldHVybiBrc3RydG9sbChzLCBiYXNlLCByZXMpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UzMihjb25zdCBjaGFy
ICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgdTMyICpyZXMpCnsKIHJldHVybiBrc3RydG91aW50KHMs
IGJhc2UsIHJlcyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkga3N0cnRvczMyKGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCBzMzIgKnJlcykK
ewogcmV0dXJuIGtzdHJ0b2ludChzLCBiYXNlLCByZXMpOwp9CgppbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNihjb25zdCBjaGFyICpzLCB1bnNpZ25l
ZCBpbnQgYmFzZSwgdTE2ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9y
ZXN1bHRfXykpIGtzdHJ0b3MxNihjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgYmFzZSwgczE2
ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0
b3U4KGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBiYXNlLCB1OCAqcmVzKTsKaW50IF9fYXR0
cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9zOChjb25zdCBjaGFyICpz
LCB1bnNpZ25lZCBpbnQgYmFzZSwgczggKnJlcyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkga3N0cnRvYm9vbChjb25zdCBjaGFyICpzLCBib29sICpyZXMpOwoK
aW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91bGxfZnJv
bV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIHVu
c2lnbmVkIGxvbmcgbG9uZyAqcmVzKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBrc3RydG9sbF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50
LCB1bnNpZ25lZCBpbnQgYmFzZSwgbG9uZyBsb25nICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3VsX2Zyb21fdXNlcihjb25zdCBjaGFyICpz
LCBzaXplX3QgY291bnQsIHVuc2lnbmVkIGludCBiYXNlLCB1bnNpZ25lZCBsb25nICpyZXMpOwpp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b2xfZnJvbV91
c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2UsIGxvbmcg
KnJlcyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0cnRv
dWludF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQg
YmFzZSwgdW5zaWduZWQgaW50ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGtzdHJ0b2ludF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNv
dW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgaW50ICpyZXMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3UxNl9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywg
c2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgdTE2ICpyZXMpOwppbnQgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3MxNl9mcm9tX3VzZXIoY29uc3Qg
Y2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwgczE2ICpyZXMpOwppbnQg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzdHJ0b3U4X2Zyb21fdXNl
cihjb25zdCBjaGFyICpzLCBzaXplX3QgY291bnQsIHVuc2lnbmVkIGludCBiYXNlLCB1OCAqcmVz
KTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG9zOF9m
cm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBpbnQgYmFzZSwg
czggKnJlcyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga3N0
cnRvYm9vbF9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCBib29sICpyZXMp
OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3RydG91NjRf
ZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50IGJhc2Us
IHU2NCAqcmVzKQp7CiByZXR1cm4ga3N0cnRvdWxsX2Zyb21fdXNlcihzLCBjb3VudCwgYmFzZSwg
cmVzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrc3Ry
dG9zNjRfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgaW50
IGJhc2UsIHM2NCAqcmVzKQp7CiByZXR1cm4ga3N0cnRvbGxfZnJvbV91c2VyKHMsIGNvdW50LCBi
YXNlLCByZXMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGtzdHJ0b3UzMl9mcm9tX3VzZXIoY29uc3QgY2hhciAqcywgc2l6ZV90IGNvdW50LCB1bnNpZ25l
ZCBpbnQgYmFzZSwgdTMyICpyZXMpCnsKIHJldHVybiBrc3RydG91aW50X2Zyb21fdXNlcihzLCBj
b3VudCwgYmFzZSwgcmVzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBrc3RydG9zMzJfZnJvbV91c2VyKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCwg
dW5zaWduZWQgaW50IGJhc2UsIHMzMiAqcmVzKQp7CiByZXR1cm4ga3N0cnRvaW50X2Zyb21fdXNl
cihzLCBjb3VudCwgYmFzZSwgcmVzKTsKfQojIDQ1OSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5o
IgpleHRlcm4gdW5zaWduZWQgbG9uZyBzaW1wbGVfc3RydG91bChjb25zdCBjaGFyICosY2hhciAq
Kix1bnNpZ25lZCBpbnQpOwpleHRlcm4gbG9uZyBzaW1wbGVfc3RydG9sKGNvbnN0IGNoYXIgKixj
aGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgc2ltcGxlX3N0
cnRvdWxsKGNvbnN0IGNoYXIgKixjaGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiBsb25nIGxv
bmcgc2ltcGxlX3N0cnRvbGwoY29uc3QgY2hhciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKCmV4
dGVybiBpbnQgbnVtX3RvX3N0cihjaGFyICpidWYsIGludCBzaXplLAogICAgICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBudW0sIHVuc2lnbmVkIGludCB3aWR0aCk7CgoKCmV4dGVybiBfX2F0dHJpYnV0
ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBpbnQgc3ByaW50ZihjaGFyICpidWYsIGNv
bnN0IGNoYXIgKiBmbXQsIC4uLik7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMiwgMCkpKSBpbnQgdnNwcmludGYoY2hhciAqYnVmLCBjb25zdCBjaGFyICosIHZhX2xp
c3QpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKaW50
IHNucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsK
ZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCAwKSkpCmludCB2c25w
cmludGYoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFy
Z3MpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDMsIDQpKSkKaW50
IHNjbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIC4uLik7
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgMCkpKQppbnQgdnNj
bnByaW50ZihjaGFyICpidWYsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3Qg
YXJncyk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBf
X2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSkKY2hhciAqa2FzcHJpbnRmKGdmcF90IGdmcCwgY29u
c3QgY2hhciAqZm10LCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDIsIDApKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpCmNoYXIgKmt2YXNwcmludGYo
Z2ZwX3QgZ2ZwLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CmV4dGVybiBfX2F0dHJp
YnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMCkpKQpjb25zdCBjaGFyICprdmFzcHJpbnRm
X2NvbnN0KGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwoKZXh0ZXJu
IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18oc2NhbmYsIDIsIDMpKSkKaW50IHNzY2FuZihjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9y
bWF0X18oc2NhbmYsIDIsIDApKSkKaW50IHZzc2NhbmYoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy
ICosIHZhX2xpc3QpOwoKZXh0ZXJuIGludCBnZXRfb3B0aW9uKGNoYXIgKipzdHIsIGludCAqcGlu
dCk7CmV4dGVybiBjaGFyICpnZXRfb3B0aW9ucyhjb25zdCBjaGFyICpzdHIsIGludCBuaW50cywg
aW50ICppbnRzKTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBtZW1wYXJzZShjb25zdCBjaGFy
ICpwdHIsIGNoYXIgKipyZXRwdHIpOwpleHRlcm4gYm9vbCBwYXJzZV9vcHRpb25fc3RyKGNvbnN0
IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqb3B0aW9uKTsKZXh0ZXJuIGNoYXIgKm5leHRfYXJnKGNo
YXIgKmFyZ3MsIGNoYXIgKipwYXJhbSwgY2hhciAqKnZhbCk7CgpleHRlcm4gaW50IGNvcmVfa2Vy
bmVsX3RleHQodW5zaWduZWQgbG9uZyBhZGRyKTsKZXh0ZXJuIGludCBpbml0X2tlcm5lbF90ZXh0
KHVuc2lnbmVkIGxvbmcgYWRkcik7CmV4dGVybiBpbnQgY29yZV9rZXJuZWxfZGF0YSh1bnNpZ25l
ZCBsb25nIGFkZHIpOwpleHRlcm4gaW50IF9fa2VybmVsX3RleHRfYWRkcmVzcyh1bnNpZ25lZCBs
b25nIGFkZHIpOwpleHRlcm4gaW50IGtlcm5lbF90ZXh0X2FkZHJlc3ModW5zaWduZWQgbG9uZyBh
ZGRyKTsKZXh0ZXJuIGludCBmdW5jX3B0cl9pc19rZXJuZWxfdGV4dCh2b2lkICpwdHIpOwoKdTY0
IGludF9wb3codTY0IGJhc2UsIHVuc2lnbmVkIGludCBleHApOwp1bnNpZ25lZCBsb25nIGludF9z
cXJ0KHVuc2lnbmVkIGxvbmcpOwoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGludF9zcXJ0NjQodTY0IHgpCnsKIHJldHVybiAo
dTMyKWludF9zcXJ0KHgpOwp9CgoKZXh0ZXJuIHZvaWQgYnVzdF9zcGlubG9ja3MoaW50IHllcyk7
CmV4dGVybiBpbnQgb29wc19pbl9wcm9ncmVzczsKZXh0ZXJuIGludCBwYW5pY190aW1lb3V0Owpl
eHRlcm4gdW5zaWduZWQgbG9uZyBwYW5pY19wcmludDsKZXh0ZXJuIGludCBwYW5pY19vbl9vb3Bz
OwpleHRlcm4gaW50IHBhbmljX29uX3VucmVjb3ZlcmVkX25taTsKZXh0ZXJuIGludCBwYW5pY19v
bl9pb19ubWk7CmV4dGVybiBpbnQgcGFuaWNfb25fd2FybjsKZXh0ZXJuIGludCBzeXNjdGxfcGFu
aWNfb25fcmN1X3N0YWxsOwpleHRlcm4gaW50IHN5c2N0bF9wYW5pY19vbl9zdGFja292ZXJmbG93
OwoKZXh0ZXJuIGJvb2wgY3Jhc2hfa2V4ZWNfcG9zdF9ub3RpZmllcnM7CgoKCgoKCmV4dGVybiBh
dG9taWNfdCBwYW5pY19jcHU7CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2FyY2hfcGFuaWNfdGltZW91dChpbnQg
dGltZW91dCwgaW50IGFyY2hfZGVmYXVsdF90aW1lb3V0KQp7CiBpZiAocGFuaWNfdGltZW91dCA9
PSBhcmNoX2RlZmF1bHRfdGltZW91dCkKICBwYW5pY190aW1lb3V0ID0gdGltZW91dDsKfQpleHRl
cm4gY29uc3QgY2hhciAqcHJpbnRfdGFpbnRlZCh2b2lkKTsKZW51bSBsb2NrZGVwX29rIHsKIExP
Q0tERVBfU1RJTExfT0ssCiBMT0NLREVQX05PV19VTlJFTElBQkxFCn07CmV4dGVybiB2b2lkIGFk
ZF90YWludCh1bnNpZ25lZCBmbGFnLCBlbnVtIGxvY2tkZXBfb2spOwpleHRlcm4gaW50IHRlc3Rf
dGFpbnQodW5zaWduZWQgZmxhZyk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGdldF90YWludCh2b2lk
KTsKZXh0ZXJuIGludCByb290X21vdW50ZmxhZ3M7CgpleHRlcm4gYm9vbCBlYXJseV9ib290X2ly
cXNfZGlzYWJsZWQ7CgoKCgoKZXh0ZXJuIGVudW0gc3lzdGVtX3N0YXRlcyB7CiBTWVNURU1fQk9P
VElORywKIFNZU1RFTV9TQ0hFRFVMSU5HLAogU1lTVEVNX1JVTk5JTkcsCiBTWVNURU1fSEFMVCwK
IFNZU1RFTV9QT1dFUl9PRkYsCiBTWVNURU1fUkVTVEFSVCwKIFNZU1RFTV9TVVNQRU5ELAp9IHN5
c3RlbV9zdGF0ZTsKIyA1OTMgIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKc3RydWN0IHRhaW50
X2ZsYWcgewogY2hhciBjX3RydWU7CiBjaGFyIGNfZmFsc2U7CiBib29sIG1vZHVsZTsKfTsKCmV4
dGVybiBjb25zdCBzdHJ1Y3QgdGFpbnRfZmxhZyB0YWludF9mbGFnc1sxOF07CgpleHRlcm4gY29u
c3QgY2hhciBoZXhfYXNjW107CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGNoYXIgKmhleF9ieXRlX3BhY2soY2hhciAqYnVmLCB1OCBi
eXRlKQp7CiAqYnVmKysgPSBoZXhfYXNjWygoYnl0ZSkgJiAweGYwKSA+PiA0XTsKICpidWYrKyA9
IGhleF9hc2NbKChieXRlKSAmIDB4MGYpXTsKIHJldHVybiBidWY7Cn0KCmV4dGVybiBjb25zdCBj
aGFyIGhleF9hc2NfdXBwZXJbXTsKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2hhciAqaGV4X2J5dGVfcGFja191cHBlcihjaGFyICpi
dWYsIHU4IGJ5dGUpCnsKICpidWYrKyA9IGhleF9hc2NfdXBwZXJbKChieXRlKSAmIDB4ZjApID4+
IDRdOwogKmJ1ZisrID0gaGV4X2FzY191cHBlclsoKGJ5dGUpICYgMHgwZildOwogcmV0dXJuIGJ1
ZjsKfQoKZXh0ZXJuIGludCBoZXhfdG9fYmluKGNoYXIgY2gpOwpleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBoZXgyYmluKHU4ICpkc3QsIGNvbnN0IGNo
YXIgKnNyYywgc2l6ZV90IGNvdW50KTsKZXh0ZXJuIGNoYXIgKmJpbjJoZXgoY2hhciAqZHN0LCBj
b25zdCB2b2lkICpzcmMsIHNpemVfdCBjb3VudCk7Cgpib29sIG1hY19wdG9uKGNvbnN0IGNoYXIg
KnMsIHU4ICptYWMpOwojIDY0OSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgplbnVtIGZ0cmFj
ZV9kdW1wX21vZGUgewogRFVNUF9OT05FLAogRFVNUF9BTEwsCiBEVU1QX09SSUcsCn07CgoKdm9p
ZCB0cmFjaW5nX29uKHZvaWQpOwp2b2lkIHRyYWNpbmdfb2ZmKHZvaWQpOwppbnQgdHJhY2luZ19p
c19vbih2b2lkKTsKdm9pZCB0cmFjaW5nX3NuYXBzaG90KHZvaWQpOwp2b2lkIHRyYWNpbmdfc25h
cHNob3RfYWxsb2Modm9pZCk7CgpleHRlcm4gdm9pZCB0cmFjaW5nX3N0YXJ0KHZvaWQpOwpleHRl
cm4gdm9pZCB0cmFjaW5nX3N0b3Aodm9pZCk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMSwgMikpKQp2b2lkIF9fX190cmFjZV9wcmludGtfY2hlY2tfZm9ybWF0KGNvbnN0IGNo
YXIgKmZtdCwgLi4uKQp7Cn0KIyA3MjggIi4vaW5jbHVkZS9saW51eC9rZXJuZWwuaCIKZXh0ZXJu
IF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCmludCBfX3RyYWNlX2Jw
cmludGsodW5zaWduZWQgbG9uZyBpcCwgY29uc3QgY2hhciAqZm10LCAuLi4pOwoKZXh0ZXJuIF9f
YXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCmludCBfX3RyYWNlX3ByaW50
ayh1bnNpZ25lZCBsb25nIGlwLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CiMgNzY5ICIuL2luY2x1
ZGUvbGludXgva2VybmVsLmgiCmV4dGVybiBpbnQgX190cmFjZV9icHV0cyh1bnNpZ25lZCBsb25n
IGlwLCBjb25zdCBjaGFyICpzdHIpOwpleHRlcm4gaW50IF9fdHJhY2VfcHV0cyh1bnNpZ25lZCBs
b25nIGlwLCBjb25zdCBjaGFyICpzdHIsIGludCBzaXplKTsKCmV4dGVybiB2b2lkIHRyYWNlX2R1
bXBfc3RhY2soaW50IHNraXApOwojIDc5MSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIgpleHRl
cm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgaW50Cl9fZnRyYWNl
X3ZicHJpbnRrKHVuc2lnbmVkIGxvbmcgaXAsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCk7
CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDApKSkgaW50Cl9f
ZnRyYWNlX3ZwcmludGsodW5zaWduZWQgbG9uZyBpcCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0
IGFwKTsKCmV4dGVybiB2b2lkIGZ0cmFjZV9kdW1wKGVudW0gZnRyYWNlX2R1bXBfbW9kZSBvb3Bz
X2R1bXBfbW9kZSk7CiMgMTAgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiIDIKIyAzMyAiLi9pbmNs
dWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBJTklUX0xJU1RfSEVBRChzdHJ1Y3QgbGlzdF9oZWFkICps
aXN0KQp7CiAoeyB1bmlvbiB7IHR5cGVvZihsaXN0LT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihsaXN0LT5uZXh0KSkgKGxpc3QpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYobGlzdC0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihsaXN0LT5uZXh0KSk7
IF9fdS5fX3ZhbDsgfSk7CiBsaXN0LT5wcmV2ID0gbGlzdDsKfQoKCmV4dGVybiBib29sIF9fbGlz
dF9hZGRfdmFsaWQoc3RydWN0IGxpc3RfaGVhZCAqbmV3LAogICAgICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkICpwcmV2LAogICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0KTsKZXh0ZXJuIGJvb2wg
X19saXN0X2RlbF9lbnRyeV92YWxpZChzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSk7CiMgNjMgIi4v
aW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19saXN0X2FkZChzdHJ1Y3QgbGlzdF9oZWFkICpu
ZXcsCiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnByZXYsCiAgICAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKm5leHQpCnsKIGlmICghX19saXN0X2FkZF92YWxpZChuZXcsIHByZXYsIG5leHQpKQog
IHJldHVybjsKCiBuZXh0LT5wcmV2ID0gbmV3OwogbmV3LT5uZXh0ID0gbmV4dDsKIG5ldy0+cHJl
diA9IHByZXY7CiAoeyB1bmlvbiB7IHR5cGVvZihwcmV2LT5uZXh0KSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihwcmV2LT5uZXh0KSkgKG5ldykgfTsgX193
cml0ZV9vbmNlX3NpemUoJihwcmV2LT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKHByZXYtPm5leHQp
KTsgX191Ll9fdmFsOyB9KTsKfQojIDg0ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxp
c3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewog
X19saXN0X2FkZChuZXcsIGhlYWQsIGhlYWQtPm5leHQpOwp9CiMgOTggIi4vaW5jbHVkZS9saW51
eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgbGlzdF9hZGRfdGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpuZXcsIHN0cnVj
dCBsaXN0X2hlYWQgKmhlYWQpCnsKIF9fbGlzdF9hZGQobmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsK
fQojIDExMCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3RfZGVsKHN0cnVjdCBs
aXN0X2hlYWQgKiBwcmV2LCBzdHJ1Y3QgbGlzdF9oZWFkICogbmV4dCkKewogbmV4dC0+cHJldiA9
IHByZXY7CiAoeyB1bmlvbiB7IHR5cGVvZihwcmV2LT5uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihwcmV2LT5uZXh0KSkgKG5leHQpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYocHJldi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihwcmV2LT5uZXh0KSk7
IF9fdS5fX3ZhbDsgfSk7Cn0KIyAxMjQgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19s
aXN0X2RlbF9jbGVhcnByZXYoc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpCnsKIF9fbGlzdF9kZWwo
ZW50cnktPnByZXYsIGVudHJ5LT5uZXh0KTsKIGVudHJ5LT5wcmV2ID0gKCh2b2lkICopMCk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgX19saXN0X2RlbF9lbnRyeShzdHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKewogaWYgKCFf
X2xpc3RfZGVsX2VudHJ5X3ZhbGlkKGVudHJ5KSkKICByZXR1cm47CgogX19saXN0X2RlbChlbnRy
eS0+cHJldiwgZW50cnktPm5leHQpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfZGVsKHN0cnVjdCBsaXN0
X2hlYWQgKmVudHJ5KQp7CiBfX2xpc3RfZGVsX2VudHJ5KGVudHJ5KTsKIGVudHJ5LT5uZXh0ID0g
KCh2b2lkICopIDB4MTAwICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSk7CiBlbnRyeS0+cHJldiA9
ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwp9CiMgMTU4ICIuL2lu
Y2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfcmVwbGFjZShzdHJ1Y3QgbGlzdF9oZWFkICpv
bGQsCiAgICBzdHJ1Y3QgbGlzdF9oZWFkICpuZXcpCnsKIG5ldy0+bmV4dCA9IG9sZC0+bmV4dDsK
IG5ldy0+bmV4dC0+cHJldiA9IG5ldzsKIG5ldy0+cHJldiA9IG9sZC0+cHJldjsKIG5ldy0+cHJl
di0+bmV4dCA9IG5ldzsKfQojIDE3NCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0
X3JlcGxhY2VfaW5pdChzdHJ1Y3QgbGlzdF9oZWFkICpvbGQsCiAgICAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKm5ldykKewogbGlzdF9yZXBsYWNlKG9sZCwgbmV3KTsKIElOSVRfTElTVF9IRUFEKG9s
ZCk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3N3YXAoc3RydWN0IGxpc3RfaGVhZCAqZW50cnkxLAogICAg
ICAgIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5MikKewogc3RydWN0IGxpc3RfaGVhZCAqcG9zID0g
ZW50cnkyLT5wcmV2OwoKIGxpc3RfZGVsKGVudHJ5Mik7CiBsaXN0X3JlcGxhY2UoZW50cnkxLCBl
bnRyeTIpOwogaWYgKHBvcyA9PSBlbnRyeTEpCiAgcG9zID0gZW50cnkyOwogbGlzdF9hZGQoZW50
cnkxLCBwb3MpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVu
dHJ5KQp7CiBfX2xpc3RfZGVsX2VudHJ5KGVudHJ5KTsKIElOSVRfTElTVF9IRUFEKGVudHJ5KTsK
fQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGxpc3RfbW92ZShzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCBzdHJ1Y3QgbGlz
dF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfZGVsX2VudHJ5KGxpc3QpOwogbGlzdF9hZGQobGlzdCwg
aGVhZCk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X21vdmVfdGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0
LAogICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfZGVsX2VudHJ5KGxpc3Qp
OwogbGlzdF9hZGRfdGFpbChsaXN0LCBoZWFkKTsKfQojIDI0MCAiLi9pbmNsdWRlL2xpbnV4L2xp
c3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBsaXN0X2J1bGtfbW92ZV90YWlsKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCiAg
ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZmlyc3QsCiAgICAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqbGFzdCkKewogZmlyc3QtPnByZXYtPm5leHQgPSBsYXN0LT5uZXh0OwogbGFzdC0+bmV4
dC0+cHJldiA9IGZpcnN0LT5wcmV2OwoKIGhlYWQtPnByZXYtPm5leHQgPSBmaXJzdDsKIGZpcnN0
LT5wcmV2ID0gaGVhZC0+cHJldjsKCiBsYXN0LT5uZXh0ID0gaGVhZDsKIGhlYWQtPnByZXYgPSBs
YXN0Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBsaXN0X2lzX2ZpcnN0KGNvbnN0IHN0cnVjdCBsaXN0X2hlYWQgKmxp
c3QsCiAgICAgY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogcmV0dXJuIGxpc3QtPnBy
ZXYgPT0gaGVhZDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbGlzdF9pc19sYXN0KGNvbnN0IHN0cnVjdCBsaXN0X2hl
YWQgKmxpc3QsCiAgICBjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiByZXR1cm4gbGlz
dC0+bmV4dCA9PSBoZWFkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGxpc3Rf
aGVhZCAqaGVhZCkKewogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKGhlYWQtPm5leHQpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoaGVhZC0+bmV4
dCksIF9fdS5fX2MsIHNpemVvZihoZWFkLT5uZXh0KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9u
b2NoZWNrKCYoaGVhZC0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihoZWFkLT5uZXh0KSk7IGRvIHsg
fSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSkgPT0gaGVhZDsKfQojIDI5OCAiLi9pbmNsdWRlL2xp
bnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGxpc3RfZW1wdHlfY2FyZWZ1bChjb25zdCBzdHJ1Y3QgbGlzdF9oZWFk
ICpoZWFkKQp7CiBzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0ID0gaGVhZC0+bmV4dDsKIHJldHVybiAo
bmV4dCA9PSBoZWFkKSAmJiAobmV4dCA9PSBoZWFkLT5wcmV2KTsKfQoKCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9y
b3RhdGVfbGVmdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiBzdHJ1Y3QgbGlzdF9oZWFkICpm
aXJzdDsKCiBpZiAoIWxpc3RfZW1wdHkoaGVhZCkpIHsKICBmaXJzdCA9IGhlYWQtPm5leHQ7CiAg
bGlzdF9tb3ZlX3RhaWwoZmlyc3QsIGhlYWQpOwogfQp9CiMgMzI1ICIuL2luY2x1ZGUvbGludXgv
bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGxpc3Rfcm90YXRlX3RvX2Zyb250KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3Qs
CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewoKCgoKCiBsaXN0X21vdmVfdGFpbChoZWFk
LCBsaXN0KTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBsaXN0X2lzX3Npbmd1bGFyKGNvbnN0IHN0cnVjdCBsaXN0X2hl
YWQgKmhlYWQpCnsKIHJldHVybiAhbGlzdF9lbXB0eShoZWFkKSAmJiAoaGVhZC0+bmV4dCA9PSBo
ZWFkLT5wcmV2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQg
Kmxpc3QsCiAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IGxpc3RfaGVhZCAqZW50cnkp
CnsKIHN0cnVjdCBsaXN0X2hlYWQgKm5ld19maXJzdCA9IGVudHJ5LT5uZXh0OwogbGlzdC0+bmV4
dCA9IGhlYWQtPm5leHQ7CiBsaXN0LT5uZXh0LT5wcmV2ID0gbGlzdDsKIGxpc3QtPnByZXYgPSBl
bnRyeTsKIGVudHJ5LT5uZXh0ID0gbGlzdDsKIGhlYWQtPm5leHQgPSBuZXdfZmlyc3Q7CiBuZXdf
Zmlyc3QtPnByZXYgPSBoZWFkOwp9CiMgMzcxICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGxpc3RfY3V0X3Bvc2l0aW9uKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgc3RydWN0IGxpc3Rf
aGVhZCAqaGVhZCwgc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpCnsKIGlmIChsaXN0X2VtcHR5KGhl
YWQpKQogIHJldHVybjsKIGlmIChsaXN0X2lzX3Npbmd1bGFyKGhlYWQpICYmCiAgKGhlYWQtPm5l
eHQgIT0gZW50cnkgJiYgaGVhZCAhPSBlbnRyeSkpCiAgcmV0dXJuOwogaWYgKGVudHJ5ID09IGhl
YWQpCiAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CiBlbHNlCiAgX19saXN0X2N1dF9wb3NpdGlvbihs
aXN0LCBoZWFkLCBlbnRyeSk7Cn0KIyAzOTkgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bGlzdF9jdXRfYmVmb3JlKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgICAgICBzdHJ1Y3QgbGlz
dF9oZWFkICpoZWFkLAogICAgICAgc3RydWN0IGxpc3RfaGVhZCAqZW50cnkpCnsKIGlmIChoZWFk
LT5uZXh0ID09IGVudHJ5KSB7CiAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CiAgcmV0dXJuOwogfQog
bGlzdC0+bmV4dCA9IGhlYWQtPm5leHQ7CiBsaXN0LT5uZXh0LT5wcmV2ID0gbGlzdDsKIGxpc3Qt
PnByZXYgPSBlbnRyeS0+cHJldjsKIGxpc3QtPnByZXYtPm5leHQgPSBsaXN0OwogaGVhZC0+bmV4
dCA9IGVudHJ5OwogZW50cnktPnByZXYgPSBoZWFkOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9zcGxpY2UoY29u
c3Qgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCwKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2LAog
ICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQpCnsKIHN0cnVjdCBsaXN0X2hlYWQgKmZpcnN0ID0g
bGlzdC0+bmV4dDsKIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QgPSBsaXN0LT5wcmV2OwoKIGZpcnN0
LT5wcmV2ID0gcHJldjsKIHByZXYtPm5leHQgPSBmaXJzdDsKCiBsYXN0LT5uZXh0ID0gbmV4dDsK
IG5leHQtPnByZXYgPSBsYXN0Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9zcGxpY2UoY29uc3Qgc3RydWN0
IGxpc3RfaGVhZCAqbGlzdCwKICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCnsKIGlmICghbGlz
dF9lbXB0eShsaXN0KSkKICBfX2xpc3Rfc3BsaWNlKGxpc3QsIGhlYWQsIGhlYWQtPm5leHQpOwp9
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgbGlzdF9zcGxpY2VfdGFpbChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogICAg
c3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogaWYgKCFsaXN0X2VtcHR5KGxpc3QpKQogIF9fbGlz
dF9zcGxpY2UobGlzdCwgaGVhZC0+cHJldiwgaGVhZCk7Cn0KIyA0NjAgIi4vaW5jbHVkZS9saW51
eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgbGlzdF9zcGxpY2VfaW5pdChzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAog
ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCnsKIGlmICghbGlzdF9lbXB0eShsaXN0KSkg
ewogIF9fbGlzdF9zcGxpY2UobGlzdCwgaGVhZCwgaGVhZC0+bmV4dCk7CiAgSU5JVF9MSVNUX0hF
QUQobGlzdCk7CiB9Cn0KIyA0NzcgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbGlzdF9z
cGxpY2VfdGFpbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKmhlYWQpCnsKIGlmICghbGlzdF9lbXB0eShsaXN0KSkgewogIF9fbGlzdF9zcGxpY2Uo
bGlzdCwgaGVhZC0+cHJldiwgaGVhZCk7CiAgSU5JVF9MSVNUX0hFQUQobGlzdCk7CiB9Cn0KIyA3
NjUgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgSU5JVF9ITElTVF9OT0RFKHN0cnVjdCBo
bGlzdF9ub2RlICpoKQp7CiBoLT5uZXh0ID0gKCh2b2lkICopMCk7CiBoLT5wcHJldiA9ICgodm9p
ZCAqKTApOwp9CiMgNzc5ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGxpc3RfdW5oYXNo
ZWQoY29uc3Qgc3RydWN0IGhsaXN0X25vZGUgKmgpCnsKIHJldHVybiAhaC0+cHByZXY7Cn0KIyA3
OTIgIi4vaW5jbHVkZS9saW51eC9saXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBobGlzdF91bmhhc2hlZF9sb2NrbGVzcyhj
b25zdCBzdHJ1Y3QgaGxpc3Rfbm9kZSAqaCkKewogcmV0dXJuICEoeyB1bmlvbiB7IHR5cGVvZiho
LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJihoLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihoLT5wcHJldikpOyBlbHNlIF9fcmVhZF9v
bmNlX3NpemVfbm9jaGVjaygmKGgtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKGgtPnBwcmV2KSk7
IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGxpc3RfZW1wdHko
Y29uc3Qgc3RydWN0IGhsaXN0X2hlYWQgKmgpCnsKIHJldHVybiAhKHsgdW5pb24geyB0eXBlb2Yo
aC0+Zmlyc3QpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9z
aXplKCYoaC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgZWxzZSBfX3JlYWRf
b25jZV9zaXplX25vY2hlY2soJihoLT5maXJzdCksIF9fdS5fX2MsIHNpemVvZihoLT5maXJzdCkp
OyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9faGxpc3RfZGVsKHN0
cnVjdCBobGlzdF9ub2RlICpuKQp7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbmV4dCA9IG4tPm5leHQ7
CiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqKnBwcmV2ID0gbi0+cHByZXY7CgogKHsgdW5pb24geyB0eXBl
b2YoKnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqcHByZXYpKSAobmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqcHByZXYpLCBfX3UuX19j
LCBzaXplb2YoKnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CiBpZiAobmV4dCkKICAoeyB1bmlvbiB7
IHR5cGVvZihuZXh0LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFs
ID0gKCB0eXBlb2YobmV4dC0+cHByZXYpKSAocHByZXYpIH07IF9fd3JpdGVfb25jZV9zaXplKCYo
bmV4dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2YobmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9
KTsKfQojIDgyMyAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9kZWwoc3RydWN0
IGhsaXN0X25vZGUgKm4pCnsKIF9faGxpc3RfZGVsKG4pOwogbi0+bmV4dCA9ICgodm9pZCAqKSAw
eDEwMCArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwogbi0+cHByZXYgPSAoKHZvaWQgKikgMHgx
MjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9kZWxfaW5p
dChzdHJ1Y3QgaGxpc3Rfbm9kZSAqbikKewogaWYgKCFobGlzdF91bmhhc2hlZChuKSkgewogIF9f
aGxpc3RfZGVsKG4pOwogIElOSVRfSExJU1RfTk9ERShuKTsKIH0KfQojIDg1MiAiLi9pbmNsdWRl
L2xpbnV4L2xpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9hZGRfaGVhZChzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwg
c3RydWN0IGhsaXN0X2hlYWQgKmgpCnsKIHN0cnVjdCBobGlzdF9ub2RlICpmaXJzdCA9IGgtPmZp
cnN0OwogKHsgdW5pb24geyB0eXBlb2Yobi0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+bmV4dCkpIChmaXJzdCkgfTsgX193cml0ZV9vbmNl
X3NpemUoJihuLT5uZXh0KSwgX191Ll9fYywgc2l6ZW9mKG4tPm5leHQpKTsgX191Ll9fdmFsOyB9
KTsKIGlmIChmaXJzdCkKICAoeyB1bmlvbiB7IHR5cGVvZihmaXJzdC0+cHByZXYpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGZpcnN0LT5wcHJldikpICgm
bi0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihmaXJzdC0+cHByZXYpLCBfX3UuX19jLCBz
aXplb2YoZmlyc3QtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZiho
LT5maXJzdCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
aC0+Zmlyc3QpKSAobikgfTsgX193cml0ZV9vbmNlX3NpemUoJihoLT5maXJzdCksIF9fdS5fX2Ms
IHNpemVvZihoLT5maXJzdCkpOyBfX3UuX192YWw7IH0pOwogKHsgdW5pb24geyB0eXBlb2Yobi0+
cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4t
PnBwcmV2KSkgKCZoLT5maXJzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9f
dS5fX2MsIHNpemVvZihuLT5wcHJldikpOyBfX3UuX192YWw7IH0pOwp9CgoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxp
c3RfYWRkX2JlZm9yZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwKICAgICAgICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqbmV4dCkKewogKHsgdW5pb24geyB0eXBlb2Yobi0+cHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPnBwcmV2KSkgKG5leHQtPnBwcmV2
KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBw
cmV2KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0KSBfX3ZhbDsg
Y2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5uZXh0KSkgKG5leHQp
IH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5uZXh0
KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihuZXh0LT5wcHJldikgX192YWw7
IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YobmV4dC0+cHByZXYpKSAo
Jm4tPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobmV4dC0+cHByZXYpLCBfX3UuX19jLCBz
aXplb2YobmV4dC0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKICh7IHVuaW9uIHsgdHlwZW9mKCoo
bi0+cHByZXYpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqKG4tPnBwcmV2KSkpIChuKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCoobi0+cHByZXYpKSwg
X191Ll9fYywgc2l6ZW9mKCoobi0+cHByZXYpKSk7IF9fdS5fX3ZhbDsgfSk7Cn0KCgoKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBobGlzdF9hZGRfYmVoaW5kKHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAgICAgIHN0cnVjdCBo
bGlzdF9ub2RlICpwcmV2KQp7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5uZXh0KSBfX3ZhbDsgY2hh
ciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5uZXh0KSkgKHByZXYtPm5l
eHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihuLT5u
ZXh0KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihwcmV2LT5uZXh0KSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihwcmV2LT5uZXh0KSkg
KG4pIH07IF9fd3JpdGVfb25jZV9zaXplKCYocHJldi0+bmV4dCksIF9fdS5fX2MsIHNpemVvZihw
cmV2LT5uZXh0KSk7IF9fdS5fX3ZhbDsgfSk7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYp
KSAoJnByZXYtPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBfX3UuX19j
LCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKCiBpZiAobi0+bmV4dCkKICAoeyB1
bmlvbiB7IHR5cGVvZihuLT5uZXh0LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9
IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+bmV4dC0+cHByZXYpKSAoJm4tPm5leHQpIH07IF9fd3Jp
dGVfb25jZV9zaXplKCYobi0+bmV4dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+bmV4dC0+
cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKfQojIDkwMCAiLi9pbmNsdWRlL2xpbnV4L2xpc3QuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBobGlzdF9hZGRfZmFrZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbikKewogbi0+cHByZXYgPSAm
bi0+bmV4dDsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgaGxpc3RfZmFrZShzdHJ1Y3QgaGxpc3Rfbm9kZSAqaCkKewog
cmV0dXJuIGgtPnBwcmV2ID09ICZoLT5uZXh0Owp9CiMgOTIyICIuL2luY2x1ZGUvbGludXgvbGlz
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sCmhsaXN0X2lzX3Npbmd1bGFyX25vZGUoc3RydWN0IGhsaXN0X25vZGUgKm4sIHN0
cnVjdCBobGlzdF9oZWFkICpoKQp7CiByZXR1cm4gIW4tPm5leHQgJiYgbi0+cHByZXYgPT0gJmgt
PmZpcnN0Owp9CiMgOTM2ICIuL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X21vdmVf
bGlzdChzdHJ1Y3QgaGxpc3RfaGVhZCAqb2xkLAogICAgICAgc3RydWN0IGhsaXN0X2hlYWQgKm5l
dykKewogbmV3LT5maXJzdCA9IG9sZC0+Zmlyc3Q7CiBpZiAobmV3LT5maXJzdCkKICBuZXctPmZp
cnN0LT5wcHJldiA9ICZuZXctPmZpcnN0Owogb2xkLT5maXJzdCA9ICgodm9pZCAqKTApOwp9CiMg
MTIgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiIDIKIyA3OCAiLi9pbmNsdWRlL2xpbnV4L3By
ZWVtcHQuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3ByZWVtcHQuaCIgMQoKCgoKCiMg
MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZXJjcHUuaCIgMQojIDg4ICIuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL3BlcmNwdS5oIgpleHRlcm4gdm9pZCBfX2JhZF9wZXJjcHVfc2l6ZSh2b2lkKTsK
IyA1MjQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGVyY3B1LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgYm9vbCB4ODZfdGhpc19jcHVfY29uc3RhbnRfdGVzdF9iaXQodW5z
aWduZWQgaW50IG5yLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25n
ICphZGRyKQp7CiB1bnNpZ25lZCBsb25nICphID0KICAodW5zaWduZWQgbG9uZyAqKWFkZHIgKyBu
ciAvIDY0OwoKCiByZXR1cm4gKCgxVUwgPDwgKG5yICUgNjQpKSAmICh7IHR5cGVvZigqYSkgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZigqYSkpIHsgY2FzZSAxOiBhc20gKCJtb3YiICJiICIiJSUi
ImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBicmVh
azsgY2FzZSAyOiBhc20gKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBi
cmVhazsgY2FzZSA4OiBhc20gKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iICgqYSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1
X3NpemUoKTsgfSBwZm9fcmV0X187IH0pKSAhPSAwOwoKCgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHg4Nl90aGlzX2NwdV92
YXJpYWJsZV90ZXN0X2JpdChpbnQgbnIsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGxvbmcgKmFkZHIpCnsKIGJvb2wgb2xkYml0OwoKIGFzbSB2b2xhdGlsZSgiYnRsICIi
JSUiImdzIiI6IiAiJSIgIjIiIiwlMSIKICAgIlxuXHQvKiBvdXRwdXQgY29uZGl0aW9uIGNvZGUg
IiAiYyIgIiovXG4iCiAgIDogIj1AY2MiICJjIiAob2xkYml0KQogICA6ICJtIiAoKih1bnNpZ25l
ZCBsb25nICopYWRkciksICJJciIgKG5yKSk7CgogcmV0dXJuIG9sZGJpdDsKfQoKCgoKCgoKIyAx
ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmgiIDEKCgoKCgojIDEgIi4vaW5jbHVkZS9s
aW51eC90aHJlYWRzLmgiIDEKIyA3ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGVyY3B1LmgiIDIK
IyAxICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LWRlZnMuaCIgMQojIDMwOCAiLi9pbmNsdWRlL2xp
bnV4L3BlcmNwdS1kZWZzLmgiCmV4dGVybiB2b2lkIF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIo
dm9pZCk7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjayhjb25zdCBjaGFyICpvcCkg
eyB9CiMgOCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oIiAyCiMgMTkgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9wZXJjcHUuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19wZXJfY3B1X29m
ZnNldFs4XTsKIyA0OCAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BlcmNwdS5oIgpleHRlcm4gdm9p
ZCBzZXR1cF9wZXJfY3B1X2FyZWFzKHZvaWQpOwojIDU1NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wZXJjcHUuaCIgMgoKCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVy
Y3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1bnNpZ25lZCBsb25nKSB0aGlzX2Nw
dV9vZmY7CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcmVlbXB0LmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMQojIDEyICIuL2luY2x1ZGUvbGludXgvdGhyZWFk
X2luZm8uaCIKIyAxICIuL2luY2x1ZGUvbGludXgvYnVnLmgiIDEKCgoKCiMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9idWcuaCIgMQojIDgzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2J1Zy5o
IgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9idWcuaCIgMQojIDI0ICIuL2luY2x1ZGUvYXNt
LWdlbmVyaWMvYnVnLmgiCnN0cnVjdCBidWdfZW50cnkgewoKCgogc2lnbmVkIGludCBidWdfYWRk
cl9kaXNwOwoKCgoKCiBzaWduZWQgaW50IGZpbGVfZGlzcDsKCiB1bnNpZ25lZCBzaG9ydCBsaW5l
OwoKIHVuc2lnbmVkIHNob3J0IGZsYWdzOwp9OwojIDg5ICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMv
YnVnLmgiCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMSwgMikpKSB2
b2lkIF9fd2Fybl9wcmludGsoY29uc3QgY2hhciAqZm10LCAuLi4pOwojIDEwNSAiLi9pbmNsdWRl
L2FzbS1nZW5lcmljL2J1Zy5oIgpzdHJ1Y3Qgd2Fybl9hcmdzOwpzdHJ1Y3QgcHRfcmVnczsKCnZv
aWQgX193YXJuKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCB2b2lkICpjYWxsZXIsIHVuc2ln
bmVkIHRhaW50LAogICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3Qgd2Fybl9hcmdzICph
cmdzKTsKIyA4NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9idWcuaCIgMgojIDYgIi4vaW5jbHVk
ZS9saW51eC9idWcuaCIgMgoKCgplbnVtIGJ1Z190cmFwX3R5cGUgewogQlVHX1RSQVBfVFlQRV9O
T05FID0gMCwKIEJVR19UUkFQX1RZUEVfV0FSTiA9IDEsCiBCVUdfVFJBUF9UWVBFX0JVRyA9IDIs
Cn07CgpzdHJ1Y3QgcHRfcmVnczsKIyAzNCAiLi9pbmNsdWRlL2xpbnV4L2J1Zy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNf
d2FybmluZ19idWcoY29uc3Qgc3RydWN0IGJ1Z19lbnRyeSAqYnVnKQp7CiByZXR1cm4gYnVnLT5m
bGFncyAmICgxIDw8IDApOwp9CgpzdHJ1Y3QgYnVnX2VudHJ5ICpmaW5kX2J1Zyh1bnNpZ25lZCBs
b25nIGJ1Z2FkZHIpOwoKZW51bSBidWdfdHJhcF90eXBlIHJlcG9ydF9idWcodW5zaWduZWQgbG9u
ZyBidWdfYWRkciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwoKCmludCBpc192YWxpZF9idWdhZGRy
KHVuc2lnbmVkIGxvbmcgYWRkcik7Cgp2b2lkIGdlbmVyaWNfYnVnX2NsZWFyX29uY2Uodm9pZCk7
CiMgNzAgIi4vaW5jbHVkZS9saW51eC9idWcuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIGJvb2wgY2hlY2tfZGF0YV9jb3JydXB0aW9uKGJvb2wgdikgeyByZXR1cm4g
djsgfQojIDEzICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgojIDEgIi4vaW5jbHVk
ZS9saW51eC9yZXN0YXJ0X2Jsb2NrLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L3Jlc3RhcnRf
YmxvY2suaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdGltZTY0LmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L21hdGg2NC5oIiAxCiMgMjQgIi4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0
IGRpdl91NjRfcmVtKHU2NCBkaXZpZGVuZCwgdTMyIGRpdmlzb3IsIHUzMiAqcmVtYWluZGVyKQp7
CiAqcmVtYWluZGVyID0gZGl2aWRlbmQgJSBkaXZpc29yOwogcmV0dXJuIGRpdmlkZW5kIC8gZGl2
aXNvcjsKfQojIDM4ICIuL2luY2x1ZGUvbGludXgvbWF0aDY0LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBkaXZfczY0X3JlbShz
NjQgZGl2aWRlbmQsIHMzMiBkaXZpc29yLCBzMzIgKnJlbWFpbmRlcikKewogKnJlbWFpbmRlciA9
IGRpdmlkZW5kICUgZGl2aXNvcjsKIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyA1MiAi
Li9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgZGl2NjRfdTY0X3JlbSh1NjQgZGl2aWRlbmQs
IHU2NCBkaXZpc29yLCB1NjQgKnJlbWFpbmRlcikKewogKnJlbWFpbmRlciA9IGRpdmlkZW5kICUg
ZGl2aXNvcjsKIHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyA2NSAiLi9pbmNsdWRlL2xp
bnV4L21hdGg2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1NjQgZGl2NjRfdTY0KHU2NCBkaXZpZGVuZCwgdTY0IGRpdmlzb3IpCnsK
IHJldHVybiBkaXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyA3NyAiLi9pbmNsdWRlL2xpbnV4L21hdGg2
NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzNjQgZGl2NjRfczY0KHM2NCBkaXZpZGVuZCwgczY0IGRpdmlzb3IpCnsKIHJldHVybiBk
aXZpZGVuZCAvIGRpdmlzb3I7Cn0KIyAxMjMgIi4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0
IGRpdl91NjQodTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvcikKewogdTMyIHJlbWFpbmRlcjsKIHJl
dHVybiBkaXZfdTY0X3JlbShkaXZpZGVuZCwgZGl2aXNvciwgJnJlbWFpbmRlcik7Cn0KIyAxMzYg
Ii4vaW5jbHVkZS9saW51eC9tYXRoNjQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGRpdl9zNjQoczY0IGRpdmlkZW5kLCBzMzIg
ZGl2aXNvcikKewogczMyIHJlbWFpbmRlcjsKIHJldHVybiBkaXZfczY0X3JlbShkaXZpZGVuZCwg
ZGl2aXNvciwgJnJlbWFpbmRlcik7Cn0KCgp1MzIgaXRlcl9kaXZfdTY0X3JlbSh1NjQgZGl2aWRl
bmQsIHUzMiBkaXZpc29yLCB1NjQgKnJlbWFpbmRlcik7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIHUzMgpfX2l0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2
aXNvciwgdTY0ICpyZW1haW5kZXIpCnsKIHUzMiByZXQgPSAwOwoKIHdoaWxlIChkaXZpZGVuZCA+
PSBkaXZpc29yKSB7CgoKICBhc20oIiIgOiAiK3JtIihkaXZpZGVuZCkpOwoKICBkaXZpZGVuZCAt
PSBkaXZpc29yOwogIHJldCsrOwogfQoKICpyZW1haW5kZXIgPSBkaXZpZGVuZDsKCiByZXR1cm4g
cmV0Owp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdTY0IG11bF91MzJfdTMyKHUzMiBhLCB1MzIgYikKewogcmV0dXJuICh1NjQp
YSAqIGI7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1NjQgbXVsX3U2NF91MzJfc2hyKHU2NCBhLCB1MzIgbXVsLCB1bnNpZ25l
ZCBpbnQgc2hpZnQpCnsKIHJldHVybiAodTY0KSgoKHVuc2lnbmVkIF9faW50MTI4KWEgKiBtdWwp
ID4+IHNoaWZ0KTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1NjQgbXVsX3U2NF91NjRfc2hyKHU2NCBhLCB1NjQgbXVsLCB1bnNp
Z25lZCBpbnQgc2hpZnQpCnsKIHJldHVybiAodTY0KSgoKHVuc2lnbmVkIF9faW50MTI4KWEgKiBt
dWwpID4+IHNoaWZ0KTsKfQojIDYgIi4vaW5jbHVkZS9saW51eC90aW1lNjQuaCIgMgoKdHlwZWRl
ZiBfX3M2NCB0aW1lNjRfdDsKdHlwZWRlZiBfX3U2NCB0aW1ldTY0X3Q7CgojIDEgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3RpbWUuaCIgMQoKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGlt
ZV90eXBlcy5oIiAxCgoKCgoKCnN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyB7CiBfX2tlcm5lbF90
aW1lNjRfdCB0dl9zZWM7CiBsb25nIGxvbmcgdHZfbnNlYzsKfTsKCnN0cnVjdCBfX2tlcm5lbF9p
dGltZXJzcGVjIHsKIHN0cnVjdCBfX2tlcm5lbF90aW1lc3BlYyBpdF9pbnRlcnZhbDsKIHN0cnVj
dCBfX2tlcm5lbF90aW1lc3BlYyBpdF92YWx1ZTsKfTsKIyAyNSAiLi9pbmNsdWRlL3VhcGkvbGlu
dXgvdGltZV90eXBlcy5oIgpzdHJ1Y3QgX19rZXJuZWxfb2xkX3RpbWV2YWwgewogX19rZXJuZWxf
bG9uZ190IHR2X3NlYzsKIF9fa2VybmVsX2xvbmdfdCB0dl91c2VjOwp9OwoKCnN0cnVjdCBfX2tl
cm5lbF9vbGRfdGltZXNwZWMgewogX19rZXJuZWxfb2xkX3RpbWVfdCB0dl9zZWM7CiBsb25nIHR2
X25zZWM7Cn07CgpzdHJ1Y3QgX19rZXJuZWxfb2xkX2l0aW1lcnZhbCB7CiBzdHJ1Y3QgX19rZXJu
ZWxfb2xkX3RpbWV2YWwgaXRfaW50ZXJ2YWw7CiBzdHJ1Y3QgX19rZXJuZWxfb2xkX3RpbWV2YWwg
aXRfdmFsdWU7Cn07CgpzdHJ1Y3QgX19rZXJuZWxfc29ja190aW1ldmFsIHsKIF9fczY0IHR2X3Nl
YzsKIF9fczY0IHR2X3VzZWM7Cn07CiMgNyAiLi9pbmNsdWRlL3VhcGkvbGludXgvdGltZS5oIiAy
CiMgMzMgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWUuaCIKc3RydWN0IHRpbWV6b25lIHsKIGlu
dCB0el9taW51dGVzd2VzdDsKIGludCB0el9kc3R0aW1lOwp9OwojIDExICIuL2luY2x1ZGUvbGlu
dXgvdGltZTY0LmgiIDIKCnN0cnVjdCB0aW1lc3BlYzY0IHsKIHRpbWU2NF90IHR2X3NlYzsKIGxv
bmcgdHZfbnNlYzsKfTsKCnN0cnVjdCBpdGltZXJzcGVjNjQgewogc3RydWN0IHRpbWVzcGVjNjQg
aXRfaW50ZXJ2YWw7CiBzdHJ1Y3QgdGltZXNwZWM2NCBpdF92YWx1ZTsKfTsKIyA0OSAiLi9pbmNs
dWRlL2xpbnV4L3RpbWU2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGltZXNwZWM2NF9lcXVhbChjb25zdCBzdHJ1Y3QgdGlt
ZXNwZWM2NCAqYSwKICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpiKQp7CiByZXR1cm4g
KGEtPnR2X3NlYyA9PSBiLT50dl9zZWMpICYmIChhLT50dl9uc2VjID09IGItPnR2X25zZWMpOwp9
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCB0aW1lc3BlYzY0X2NvbXBhcmUoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKmxo
cywgY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnJocykKewogaWYgKGxocy0+dHZfc2VjIDwgcmhz
LT50dl9zZWMpCiAgcmV0dXJuIC0xOwogaWYgKGxocy0+dHZfc2VjID4gcmhzLT50dl9zZWMpCiAg
cmV0dXJuIDE7CiByZXR1cm4gbGhzLT50dl9uc2VjIC0gcmhzLT50dl9uc2VjOwp9CgpleHRlcm4g
dm9pZCBzZXRfbm9ybWFsaXplZF90aW1lc3BlYzY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cywgdGlt
ZTY0X3Qgc2VjLCBzNjQgbnNlYyk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lc3BlYzY0X2FkZChz
dHJ1Y3QgdGltZXNwZWM2NCBsaHMsCiAgICAgIHN0cnVjdCB0aW1lc3BlYzY0IHJocykKewogc3Ry
dWN0IHRpbWVzcGVjNjQgdHNfZGVsdGE7CiBzZXRfbm9ybWFsaXplZF90aW1lc3BlYzY0KCZ0c19k
ZWx0YSwgbGhzLnR2X3NlYyArIHJocy50dl9zZWMsCiAgICBsaHMudHZfbnNlYyArIHJocy50dl9u
c2VjKTsKIHJldHVybiB0c19kZWx0YTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHRpbWVzcGVjNjQgdGltZXNwZWM2
NF9zdWIoc3RydWN0IHRpbWVzcGVjNjQgbGhzLAogICAgICBzdHJ1Y3QgdGltZXNwZWM2NCByaHMp
CnsKIHN0cnVjdCB0aW1lc3BlYzY0IHRzX2RlbHRhOwogc2V0X25vcm1hbGl6ZWRfdGltZXNwZWM2
NCgmdHNfZGVsdGEsIGxocy50dl9zZWMgLSByaHMudHZfc2VjLAogICAgbGhzLnR2X25zZWMgLSBy
aHMudHZfbnNlYyk7CiByZXR1cm4gdHNfZGVsdGE7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGltZXNwZWM2NF92YWxp
ZChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCnsKCiBpZiAodHMtPnR2X3NlYyA8IDApCiAg
cmV0dXJuIGZhbHNlOwoKIGlmICgodW5zaWduZWQgbG9uZyl0cy0+dHZfbnNlYyA+PSAxMDAwMDAw
MDAwTCkKICByZXR1cm4gZmFsc2U7CiByZXR1cm4gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lc3BlYzY0X3Zh
bGlkX3N0cmljdChjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpCnsKIGlmICghdGltZXNwZWM2
NF92YWxpZCh0cykpCiAgcmV0dXJuIGZhbHNlOwoKIGlmICgodW5zaWduZWQgbG9uZyBsb25nKXRz
LT50dl9zZWMgPj0gKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAwMDAwTCkpCiAgcmV0
dXJuIGZhbHNlOwogcmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGltZXNwZWM2NF92YWxpZF9zZXR0b2Qo
Y29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzKQp7CiBpZiAoIXRpbWVzcGVjNjRfdmFsaWQodHMp
KQogIHJldHVybiBmYWxzZTsKCiBpZiAoKHVuc2lnbmVkIGxvbmcgbG9uZyl0cy0+dHZfc2VjID49
ICgoKChzNjQpfigodTY0KTEgPDwgNjMpKSAvIDEwMDAwMDAwMDBMKSAtICgzMExMICogMzY1ICog
MjQgKjM2MDApKSkKICByZXR1cm4gZmFsc2U7CiByZXR1cm4gdHJ1ZTsKfQojIDEzMyAiLi9pbmNs
dWRlL2xpbnV4L3RpbWU2NC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgdGltZXNwZWM2NF90b19ucyhjb25zdCBzdHJ1Y3QgdGlt
ZXNwZWM2NCAqdHMpCnsKIHJldHVybiAoKHM2NCkgdHMtPnR2X3NlYyAqIDEwMDAwMDAwMDBMKSAr
IHRzLT50dl9uc2VjOwp9CgoKCgoKCgpleHRlcm4gc3RydWN0IHRpbWVzcGVjNjQgbnNfdG9fdGlt
ZXNwZWM2NChjb25zdCBzNjQgbnNlYyk7CiMgMTU0ICIuL2luY2x1ZGUvbGludXgvdGltZTY0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCB0aW1lc3BlYzY0X2FkZF9u
cyhzdHJ1Y3QgdGltZXNwZWM2NCAqYSwgdTY0IG5zKQp7CiBhLT50dl9zZWMgKz0gX19pdGVyX2Rp
dl91NjRfcmVtKGEtPnR2X25zZWMgKyBucywgMTAwMDAwMDAwMEwsICZucyk7CiBhLT50dl9uc2Vj
ID0gbnM7Cn0KCgoKCgpleHRlcm4gc3RydWN0IHRpbWVzcGVjNjQgdGltZXNwZWM2NF9hZGRfc2Fm
ZShjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCBsaHMsCiAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3Bl
YzY0IHJocyk7CiMgMTEgIi4vaW5jbHVkZS9saW51eC9yZXN0YXJ0X2Jsb2NrLmgiIDIKCnN0cnVj
dCB0aW1lc3BlYzsKc3RydWN0IG9sZF90aW1lc3BlYzMyOwpzdHJ1Y3QgcG9sbGZkOwoKZW51bSB0
aW1lc3BlY190eXBlIHsKIFRUX05PTkUgPSAwLAogVFRfTkFUSVZFID0gMSwKIFRUX0NPTVBBVCA9
IDIsCn07CgoKCgpzdHJ1Y3QgcmVzdGFydF9ibG9jayB7CiBsb25nICgqZm4pKHN0cnVjdCByZXN0
YXJ0X2Jsb2NrICopOwogdW5pb24gewoKICBzdHJ1Y3QgewogICB1MzIgKnVhZGRyOwogICB1MzIg
dmFsOwogICB1MzIgZmxhZ3M7CiAgIHUzMiBiaXRzZXQ7CiAgIHU2NCB0aW1lOwogICB1MzIgKnVh
ZGRyMjsKICB9IGZ1dGV4OwoKICBzdHJ1Y3QgewogICBjbG9ja2lkX3QgY2xvY2tpZDsKICAgZW51
bSB0aW1lc3BlY190eXBlIHR5cGU7CiAgIHVuaW9uIHsKICAgIHN0cnVjdCBfX2tlcm5lbF90aW1l
c3BlYyAqcm10cDsKICAgIHN0cnVjdCBvbGRfdGltZXNwZWMzMiAqY29tcGF0X3JtdHA7CiAgIH07
CiAgIHU2NCBleHBpcmVzOwogIH0gbmFub3NsZWVwOwoKICBzdHJ1Y3QgewogICBzdHJ1Y3QgcG9s
bGZkICp1ZmRzOwogICBpbnQgbmZkczsKICAgaW50IGhhc190aW1lb3V0OwogICB1bnNpZ25lZCBs
b25nIHR2X3NlYzsKICAgdW5zaWduZWQgbG9uZyB0dl9uc2VjOwogIH0gcG9sbDsKIH07Cn07Cgpl
eHRlcm4gbG9uZyBkb19ub19yZXN0YXJ0X3N5c2NhbGwoc3RydWN0IHJlc3RhcnRfYmxvY2sgKnBh
cm0pOwojIDE0ICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgoKCgoKCgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2N1cnJlbnQuaCIgMQojIDkgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vY3VycmVudC5oIgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKikgY3VycmVudF90YXNrOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCnsKIHJldHVybiAoeyB0eXBl
b2YoY3VycmVudF90YXNrKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGN1cnJlbnRfdGFzaykp
IHsgY2FzZSAxOiBhc20oIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXEi
IChwZm9fcmV0X18pIDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJlYWs7IGNhc2UgMjogYXNt
KCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6
ICJwIiAoJihjdXJyZW50X3Rhc2spKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSgibW92IiAibCAiIiUl
IiJncyIiOiIgIiUiICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAicCIgKCYoY3VycmVu
dF90YXNrKSkpOyBicmVhazsgY2FzZSA4OiBhc20oIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
UDEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogInAiICgmKGN1cnJlbnRfdGFzaykpKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsKfQojIDIy
ICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgojIDMxICIuL2luY2x1ZGUvbGludXgv
dGhyZWFkX2luZm8uaCIKZW51bSB7CiBCQURfU1RBQ0sgPSAtMSwKIE5PVF9TVEFDSyA9IDAsCiBH
T09EX0ZSQU1FLAogR09PRF9TVEFDSywKfTsKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90
aHJlYWRfaW5mby5oIiAxCiMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8u
aCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDEyICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL3BhZ2UuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjQu
aCIgMQojIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2VfNjQuaCIKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgbWF4X3BmbjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGh5c19iYXNlOwoKZXh0ZXJu
IHVuc2lnbmVkIGxvbmcgcGFnZV9vZmZzZXRfYmFzZTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm1h
bGxvY19iYXNlOwpleHRlcm4gdW5zaWduZWQgbG9uZyB2bWVtbWFwX2Jhc2U7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIF9fcGh5c19hZGRyX25vZGVidWcodW5zaWduZWQgbG9uZyB4KQp7CiB1bnNpZ25lZCBsb25n
IHkgPSB4IC0gKDB4ZmZmZmZmZmY4MDAwMDAwMFVMKTsKCgogeCA9IHkgKyAoKHggPiB5KSA/IHBo
eXNfYmFzZSA6ICgoMHhmZmZmZmZmZjgwMDAwMDAwVUwpIC0gKCh1bnNpZ25lZCBsb25nKXBhZ2Vf
b2Zmc2V0X2Jhc2UpKSk7CgogcmV0dXJuIHg7Cn0KIyA0MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9wYWdlXzY0LmgiCnZvaWQgY2xlYXJfcGFnZV9vcmlnKHZvaWQgKnBhZ2UpOwp2b2lkIGNsZWFy
X3BhZ2VfcmVwKHZvaWQgKnBhZ2UpOwp2b2lkIGNsZWFyX3BhZ2VfZXJtcyh2b2lkICpwYWdlKTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgY2xlYXJfcGFnZSh2b2lkICpwYWdlKQp7CiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIj
IEFMVDogb2xkaW5zdHIyXG4iICI2NjE6XG5cdCIgImNhbGwgJVBbb2xkXSIgIlxuNjYyOlxuIiAi
IyBBTFQ6IHBhZGRpbmcyXG4iICIuc2tpcCAtKCgiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIi
ZiIgIikgXiAoKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCIgIjY2NSIiMiIiZi0i
IjY2NCIiMiIiZiIgIikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIDwgKCIg
IjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2MmItNjYxYiIgIikpID4g
MCkgKiAiICIoIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1IiIx
IiJmLSIiNjY0IiIxIiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAmIC0o
LSgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQiIjIi
ImYiICIpKSkpKSIgIiAtICgiICI2NjJiLTY2MWIiICIpKSwgMHg5MFxuIiAiNjYzIiAiOlxuIiAi
LnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyA2NjFiIC0gLlxu
IiAiIC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIoIDMqMzIrMTYpIiAiXG4i
ICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAiIC5sb25nIDY2MWIgLSAu
XG4iICIgLmxvbmcgIiAiNjY0IiIyIiJmIC0gLlxuIiAiIC53b3JkICIgIiggOSozMisgOSkiICJc
biIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMiIiZi0iIjY2
NCIiMiIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxu
IiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDog
cmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgImNhbGwgJVBbbmV3MV0iICJc
biIgIjY2NSIiMSIgIjpcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIyIiAiXG4iICI2NjQiIjIi
Ijpcblx0IiAiY2FsbCAlUFtuZXcyXSIgIlxuIiAiNjY1IiIyIiAiOlxuIiAiLnBvcHNlY3Rpb25c
biIgOiAiPUQiIChwYWdlKSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtvbGRdICJp
IiAoY2xlYXJfcGFnZV9vcmlnKSwgW25ldzFdICJpIiAoY2xlYXJfcGFnZV9yZXApLCBbbmV3Ml0g
ImkiIChjbGVhcl9wYWdlX2VybXMpLCAiMCIgKHBhZ2UpIDogImNjIiwgIm1lbW9yeSIsICJyYXgi
LCAicmN4IikKCgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCnZv
aWQgY29weV9wYWdlKHZvaWQgKnRvLCB2b2lkICpmcm9tKTsKIyAxMyAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wYWdlLmgiIDIKCgoKCgoKc3RydWN0IHBhZ2U7CgojIDEgIi4vaW5jbHVkZS9saW51
eC9yYW5nZS5oIiAxCgoKCgpzdHJ1Y3QgcmFuZ2UgewogdTY0IHN0YXJ0OwogdTY0IGVuZDsKfTsK
CmludCBhZGRfcmFuZ2Uoc3RydWN0IHJhbmdlICpyYW5nZSwgaW50IGF6LCBpbnQgbnJfcmFuZ2Us
CiAgdTY0IHN0YXJ0LCB1NjQgZW5kKTsKCgppbnQgYWRkX3JhbmdlX3dpdGhfbWVyZ2Uoc3RydWN0
IHJhbmdlICpyYW5nZSwgaW50IGF6LCBpbnQgbnJfcmFuZ2UsCiAgICB1NjQgc3RhcnQsIHU2NCBl
bmQpOwoKdm9pZCBzdWJ0cmFjdF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJhbmdlLCBpbnQgYXosIHU2
NCBzdGFydCwgdTY0IGVuZCk7CgppbnQgY2xlYW5fc29ydF9yYW5nZShzdHJ1Y3QgcmFuZ2UgKnJh
bmdlLCBpbnQgYXopOwoKdm9pZCBzb3J0X3JhbmdlKHN0cnVjdCByYW5nZSAqcmFuZ2UsIGludCBu
cl9yYW5nZSk7CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgcmVzb3VyY2Vfc2l6ZV90IGNhcF9yZXNvdXJjZSh1NjQgdmFsKQp7CiBpZiAo
dmFsID4gKChyZXNvdXJjZV9zaXplX3QpfjApKQogIHJldHVybiAoKHJlc291cmNlX3NpemVfdCl+
MCk7CgogcmV0dXJuIHZhbDsKfQojIDIyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIg
MgpleHRlcm4gc3RydWN0IHJhbmdlIHBmbl9tYXBwZWRbXTsKZXh0ZXJuIGludCBucl9wZm5fbWFw
cGVkOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBjbGVhcl91c2VyX3BhZ2Uodm9pZCAqcGFnZSwgdW5zaWduZWQgbG9uZyB2YWRk
ciwKICAgICAgIHN0cnVjdCBwYWdlICpwZykKewogY2xlYXJfcGFnZShwYWdlKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBj
b3B5X3VzZXJfcGFnZSh2b2lkICp0bywgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyB2YWRkciwK
ICAgICAgc3RydWN0IHBhZ2UgKnRvcGFnZSkKewogY29weV9wYWdlKHRvLCBmcm9tKTsKfQojIDcx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIKZXh0ZXJuIGJvb2wgX192aXJ0X2FkZHJf
dmFsaWQodW5zaWduZWQgbG9uZyBrYWRkcik7CgoKCgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9tZW1vcnlfbW9kZWwuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcGZuLmgiIDEKIyAx
MyAiLi9pbmNsdWRlL2xpbnV4L3Bmbi5oIgp0eXBlZGVmIHN0cnVjdCB7CiB1NjQgdmFsOwp9IHBm
bl90OwojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9tZW1vcnlfbW9kZWwuaCIgMgojIDc3ICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhZ2UuaCIgMgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9nZXRvcmRlci5oIiAxCiMgMjkgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9nZXRvcmRlci5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKSBpbnQgZ2V0X29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6
ZSkKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKHNpemUpKSB7CiAgaWYgKCFzaXplKQogICBy
ZXR1cm4gNjQgLSAxMjsKCiAgaWYgKHNpemUgPCAoMVVMIDw8IDEyKSkKICAgcmV0dXJuIDA7Cgog
IHJldHVybiAoIF9fYnVpbHRpbl9jb25zdGFudF9wKChzaXplKSAtIDEpID8gKCBfX2J1aWx0aW5f
Y29uc3RhbnRfcCgoc2l6ZSkgLSAxKSA/ICggKChzaXplKSAtIDEpIDwgMiA/IDAgOiAoKHNpemUp
IC0gMSkgJiAoMVVMTCA8PCA2MykgPyA2MyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDYyKSA/
IDYyIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNjEpID8gNjEgOiAoKHNpemUpIC0gMSkgJiAo
MVVMTCA8PCA2MCkgPyA2MCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDU5KSA/IDU5IDogKChz
aXplKSAtIDEpICYgKDFVTEwgPDwgNTgpID8gNTggOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1
NykgPyA1NyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKChzaXplKSAtIDEp
ICYgKDFVTEwgPDwgNTUpID8gNTUgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1NCkgPyA1NCA6
ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDUzKSA/IDUzIDogKChzaXplKSAtIDEpICYgKDFVTEwg
PDwgNTIpID8gNTIgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1MSkgPyA1MSA6ICgoc2l6ZSkg
LSAxKSAmICgxVUxMIDw8IDUwKSA/IDUwIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDkpID8g
NDkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA0OCkgPyA0OCA6ICgoc2l6ZSkgLSAxKSAmICgx
VUxMIDw8IDQ3KSA/IDQ3IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDYpID8gNDYgOiAoKHNp
emUpIC0gMSkgJiAoMVVMTCA8PCA0NSkgPyA0NSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQ0
KSA/IDQ0IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDMpID8gNDMgOiAoKHNpemUpIC0gMSkg
JiAoMVVMTCA8PCA0MikgPyA0MiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDQxKSA/IDQxIDog
KChzaXplKSAtIDEpICYgKDFVTEwgPDwgNDApID8gNDAgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8
PCAzOSkgPyAzOSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDM4KSA/IDM4IDogKChzaXplKSAt
IDEpICYgKDFVTEwgPDwgMzcpID8gMzcgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzNikgPyAz
NiA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKChzaXplKSAtIDEpICYgKDFV
TEwgPDwgMzQpID8gMzQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzMykgPyAzMyA6ICgoc2l6
ZSkgLSAxKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMzEp
ID8gMzEgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzMCkgPyAzMCA6ICgoc2l6ZSkgLSAxKSAm
ICgxVUxMIDw8IDI5KSA/IDI5IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjgpID8gMjggOiAo
KHNpemUpIC0gMSkgJiAoMVVMTCA8PCAyNykgPyAyNyA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8
IDI2KSA/IDI2IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjUpID8gMjUgOiAoKHNpemUpIC0g
MSkgJiAoMVVMTCA8PCAyNCkgPyAyNCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDIzKSA/IDIz
IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMjIpID8gMjIgOiAoKHNpemUpIC0gMSkgJiAoMVVM
TCA8PCAyMSkgPyAyMSA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKChzaXpl
KSAtIDEpICYgKDFVTEwgPDwgMTkpID8gMTkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxOCkg
PyAxOCA6ICgoc2l6ZSkgLSAxKSAmICgxVUxMIDw8IDE3KSA/IDE3IDogKChzaXplKSAtIDEpICYg
KDFVTEwgPDwgMTYpID8gMTYgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxNSkgPyAxNSA6ICgo
c2l6ZSkgLSAxKSAmICgxVUxMIDw8IDE0KSA/IDE0IDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwg
MTMpID8gMTMgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAxMikgPyAxMiA6ICgoc2l6ZSkgLSAx
KSAmICgxVUxMIDw8IDExKSA/IDExIDogKChzaXplKSAtIDEpICYgKDFVTEwgPDwgMTApID8gMTAg
OiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA5KSA/IDkgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8
PCA4KSA/IDggOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA3KSA/IDcgOiAoKHNpemUpIC0gMSkg
JiAoMVVMTCA8PCA2KSA/IDYgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCA1KSA/IDUgOiAoKHNp
emUpIC0gMSkgJiAoMVVMTCA8PCA0KSA/IDQgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAzKSA/
IDMgOiAoKHNpemUpIC0gMSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChzaXplb2Yo
KHNpemUpIC0gMSkgPD0gNCkgPyBfX2lsb2cyX3UzMigoc2l6ZSkgLSAxKSA6IF9faWxvZzJfdTY0
KChzaXplKSAtIDEpICkgLSAxMiArIDE7CiB9Cgogc2l6ZS0tOwogc2l6ZSA+Pj0gMTI7CgoKCiBy
ZXR1cm4gZmxzNjQoc2l6ZSk7Cgp9CiMgNzggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFnZS5o
IiAyCiMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCIgMgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVzLmgiIDEKIyAxNSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIiAyCiMgNTIgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vdGhyZWFkX2luZm8uaCIKc3RydWN0IHRhc2tfc3RydWN0OwojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vcHJvY2Vzc29yLmgiIDEKCgoKCgoKCnN0cnVjdCB0YXNrX3N0cnVjdDsKc3RydWN0IG1t
X3N0cnVjdDsKc3RydWN0IGlvX2JpdG1hcDsKc3RydWN0IHZtODY7CgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vbWF0aF9lbXUuaCIgMQojIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21h
dGhfZW11LmgiCnN0cnVjdCBtYXRoX2VtdV9pbmZvIHsKIGxvbmcgX19fb3JpZ19laXA7CiBzdHJ1
Y3QgcHRfcmVncyAqcmVnczsKfTsKIyAxNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaCIgMgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3R5cGVz
LmgiIDEKIyAxNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiIDEKIyA0MCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKc3RydWN0IF9mcHhfc3dfYnl0ZXMgewoK
CgoKIF9fdTMyIG1hZ2ljMTsKIyA1NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2Nv
bnRleHQuaCIKIF9fdTMyIGV4dGVuZGVkX3NpemU7CgoKCgoKIF9fdTY0IHhmZWF0dXJlczsKCgoK
CgogX191MzIgeHN0YXRlX3NpemU7CgoKIF9fdTMyIHBhZGRpbmdbN107Cn07CiMgODUgIi4vYXJj
aC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiCnN0cnVjdCBfZnByZWcgewogX191
MTYgc2lnbmlmaWNhbmRbNF07CiBfX3UxNiBleHBvbmVudDsKfTsKCgpzdHJ1Y3QgX2ZweHJlZyB7
CiBfX3UxNiBzaWduaWZpY2FuZFs0XTsKIF9fdTE2IGV4cG9uZW50OwogX191MTYgcGFkZGluZ1sz
XTsKfTsKCgpzdHJ1Y3QgX3htbXJlZyB7CiBfX3UzMiBlbGVtZW50WzRdOwp9OwoKCgoKCgpzdHJ1
Y3QgX2Zwc3RhdGVfMzIgewoKIF9fdTMyIGN3OwogX191MzIgc3c7CiBfX3UzMiB0YWc7CiBfX3Uz
MiBpcG9mZjsKIF9fdTMyIGNzc2VsOwogX191MzIgZGF0YW9mZjsKIF9fdTMyIGRhdGFzZWw7CiBz
dHJ1Y3QgX2ZwcmVnIF9zdFs4XTsKIF9fdTE2IHN0YXR1czsKIF9fdTE2IG1hZ2ljOwoKCgogX191
MzIgX2Z4c3JfZW52WzZdOwogX191MzIgbXhjc3I7CiBfX3UzMiByZXNlcnZlZDsKIHN0cnVjdCBf
ZnB4cmVnIF9meHNyX3N0WzhdOwogc3RydWN0IF94bW1yZWcgX3htbVs4XTsKIHVuaW9uIHsKICBf
X3UzMiBwYWRkaW5nMVs0NF07CiAgX191MzIgcGFkZGluZ1s0NF07CiB9OwoKIHVuaW9uIHsKICBf
X3UzMiBwYWRkaW5nMlsxMl07CiAgc3RydWN0IF9mcHhfc3dfYnl0ZXMgc3dfcmVzZXJ2ZWQ7CiB9
Owp9OwojIDE0OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2NvbnRleHQuaCIKc3Ry
dWN0IF9mcHN0YXRlXzY0IHsKIF9fdTE2IGN3ZDsKIF9fdTE2IHN3ZDsKCiBfX3UxNiB0d2Q7CiBf
X3UxNiBmb3A7CiBfX3U2NCByaXA7CiBfX3U2NCByZHA7CiBfX3UzMiBteGNzcjsKIF9fdTMyIG14
Y3NyX21hc2s7CiBfX3UzMiBzdF9zcGFjZVszMl07CiBfX3UzMiB4bW1fc3BhY2VbNjRdOwogX191
MzIgcmVzZXJ2ZWQyWzEyXTsKIHVuaW9uIHsKICBfX3UzMiByZXNlcnZlZDNbMTJdOwogIHN0cnVj
dCBfZnB4X3N3X2J5dGVzIHN3X3Jlc2VydmVkOwogfTsKfTsKCgoKCgoKCnN0cnVjdCBfaGVhZGVy
IHsKIF9fdTY0IHhmZWF0dXJlczsKIF9fdTY0IHJlc2VydmVkMVsyXTsKIF9fdTY0IHJlc2VydmVk
Mls1XTsKfTsKCnN0cnVjdCBfeW1taF9zdGF0ZSB7CgogX191MzIgeW1taF9zcGFjZVs2NF07Cn07
CiMgMTkyICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnY29udGV4dC5oIgpzdHJ1Y3Qg
X3hzdGF0ZSB7CiBzdHJ1Y3QgX2Zwc3RhdGVfNjQgZnBzdGF0ZTsKIHN0cnVjdCBfaGVhZGVyIHhz
dGF0ZV9oZHI7CiBzdHJ1Y3QgX3ltbWhfc3RhdGUgeW1taDsKCn07CgoKCgpzdHJ1Y3Qgc2lnY29u
dGV4dF8zMiB7CiBfX3UxNiBncywgX19nc2g7CiBfX3UxNiBmcywgX19mc2g7CiBfX3UxNiBlcywg
X19lc2g7CiBfX3UxNiBkcywgX19kc2g7CiBfX3UzMiBkaTsKIF9fdTMyIHNpOwogX191MzIgYnA7
CiBfX3UzMiBzcDsKIF9fdTMyIGJ4OwogX191MzIgZHg7CiBfX3UzMiBjeDsKIF9fdTMyIGF4Owog
X191MzIgdHJhcG5vOwogX191MzIgZXJyOwogX191MzIgaXA7CiBfX3UxNiBjcywgX19jc2g7CiBf
X3UzMiBmbGFnczsKIF9fdTMyIHNwX2F0X3NpZ25hbDsKIF9fdTE2IHNzLCBfX3NzaDsKIyAyMzAg
Ii4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWdjb250ZXh0LmgiCiBfX3UzMiBmcHN0YXRl
OwogX191MzIgb2xkbWFzazsKIF9fdTMyIGNyMjsKfTsKCgoKCnN0cnVjdCBzaWdjb250ZXh0XzY0
IHsKIF9fdTY0IHI4OwogX191NjQgcjk7CiBfX3U2NCByMTA7CiBfX3U2NCByMTE7CiBfX3U2NCBy
MTI7CiBfX3U2NCByMTM7CiBfX3U2NCByMTQ7CiBfX3U2NCByMTU7CiBfX3U2NCBkaTsKIF9fdTY0
IHNpOwogX191NjQgYnA7CiBfX3U2NCBieDsKIF9fdTY0IGR4OwogX191NjQgYXg7CiBfX3U2NCBj
eDsKIF9fdTY0IHNwOwogX191NjQgaXA7CiBfX3U2NCBmbGFnczsKIF9fdTE2IGNzOwogX191MTYg
Z3M7CiBfX3UxNiBmczsKIF9fdTE2IHNzOwogX191NjQgZXJyOwogX191NjQgdHJhcG5vOwogX191
NjQgb2xkbWFzazsKIF9fdTY0IGNyMjsKIyAyNzMgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2Fz
bS9zaWdjb250ZXh0LmgiCiBfX3U2NCBmcHN0YXRlOwogX191NjQgcmVzZXJ2ZWQxWzhdOwp9Owoj
IDE3ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKCgoKIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL21zci5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLWluZGV4LmgiIDEKIyA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIiAyCgoK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vZXJybm8uaCIgMQoj
IDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2Vycm5vLmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL3VhcGkvYXNtLWdlbmVyaWMvZXJybm8tYmFzZS5oIiAxCiMgNiAiLi9pbmNsdWRlL3VhcGkv
YXNtLWdlbmVyaWMvZXJybm8uaCIgMgojIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaS9hc20vZXJybm8uaCIgMgojIDExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIiAy
CiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVtYXNrLmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL2xpbnV4L2NwdW1hc2suaCIgMQojIDEyICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgoj
IDEgIi4vaW5jbHVkZS9saW51eC9iaXRtYXAuaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC9iaXRt
YXAuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xp
bnV4L3N0cmluZy5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N0cmluZy5oIiAxCiMgMTEg
Ii4vaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMgoKZXh0ZXJuIGNoYXIgKnN0cm5kdXBfdXNlcihj
b25zdCBjaGFyICosIGxvbmcpOwpleHRlcm4gdm9pZCAqbWVtZHVwX3VzZXIoY29uc3Qgdm9pZCAq
LCBzaXplX3QpOwpleHRlcm4gdm9pZCAqdm1lbWR1cF91c2VyKGNvbnN0IHZvaWQgKiwgc2l6ZV90
KTsKZXh0ZXJuIHZvaWQgKm1lbWR1cF91c2VyX251bChjb25zdCB2b2lkICosIHNpemVfdCk7CgoK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3RyaW5nLmgiIDEKCgoKCiMgMSAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zdHJpbmdfNjQuaCIgMQojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3N0cmluZ182NC5oIgpleHRlcm4gdm9pZCAqbWVtY3B5KHZvaWQgKnRvLCBjb25zdCB2b2lk
ICpmcm9tLCBzaXplX3QgbGVuKTsKZXh0ZXJuIHZvaWQgKl9fbWVtY3B5KHZvaWQgKnRvLCBjb25z
dCB2b2lkICpmcm9tLCBzaXplX3QgbGVuKTsKCgp2b2lkICptZW1zZXQodm9pZCAqcywgaW50IGMs
IHNpemVfdCBuKTsKdm9pZCAqX19tZW1zZXQodm9pZCAqcywgaW50IGMsIHNpemVfdCBuKTsKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkICptZW1zZXQxNih1aW50MTZfdCAqcywgdWludDE2X3Qgdiwgc2l6ZV90IG4pCnsKIGxvbmcg
ZDAsIGQxOwogYXNtIHZvbGF0aWxlKCJyZXBcblx0IgogICAgICAgInN0b3N3IgogICAgICAgOiAi
PSZjIiAoZDApLCAiPSZEIiAoZDEpCiAgICAgICA6ICJhIiAodiksICIxIiAocyksICIwIiAobikK
ICAgICAgIDogIm1lbW9yeSIpOwogcmV0dXJuIHM7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQzMih1aW50MzJf
dCAqcywgdWludDMyX3Qgdiwgc2l6ZV90IG4pCnsKIGxvbmcgZDAsIGQxOwogYXNtIHZvbGF0aWxl
KCJyZXBcblx0IgogICAgICAgInN0b3NsIgogICAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEp
CiAgICAgICA6ICJhIiAodiksICIxIiAocyksICIwIiAobikKICAgICAgIDogIm1lbW9yeSIpOwog
cmV0dXJuIHM7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkICptZW1zZXQ2NCh1aW50NjRfdCAqcywgdWludDY0X3Qgdiwgc2l6
ZV90IG4pCnsKIGxvbmcgZDAsIGQxOwogYXNtIHZvbGF0aWxlKCJyZXBcblx0IgogICAgICAgInN0
b3NxIgogICAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpCiAgICAgICA6ICJhIiAodiksICIx
IiAocyksICIwIiAobikKICAgICAgIDogIm1lbW9yeSIpOwogcmV0dXJuIHM7Cn0KCgp2b2lkICpt
ZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKdm9pZCAq
X19tZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KTsKCmlu
dCBtZW1jbXAoY29uc3Qgdm9pZCAqY3MsIGNvbnN0IHZvaWQgKmN0LCBzaXplX3QgY291bnQpOwpz
aXplX3Qgc3RybGVuKGNvbnN0IGNoYXIgKnMpOwpjaGFyICpzdHJjcHkoY2hhciAqZGVzdCwgY29u
c3QgY2hhciAqc3JjKTsKY2hhciAqc3RyY2F0KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYyk7
CmludCBzdHJjbXAoY29uc3QgY2hhciAqY3MsIGNvbnN0IGNoYXIgKmN0KTsKIyA4NiAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zdHJpbmdfNjQuaCIKX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNl
ZF9yZXN1bHRfXykpIHVuc2lnbmVkIGxvbmcgX19tZW1jcHlfbWNzYWZlKHZvaWQgKmRzdCwgY29u
c3Qgdm9pZCAqc3JjLAogIHNpemVfdCBjbnQpOwpleHRlcm4gc3RydWN0IHN0YXRpY19rZXlfZmFs
c2UgbWNzYWZlX2tleTsKIyAxMDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3RyaW5nXzY0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIHVuc2lnbmVkIGxvbmcKbWVtY3B5X21jc2FmZSh2b2lkICpkc3Qs
IGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCkKewoKIGlmICgoeyBib29sIGJyYW5jaDsgaWYg
KF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCombWNzYWZlX2tleSksIHN0cnVj
dCBzdGF0aWNfa2V5X3RydWUpKSBicmFuY2ggPSBhcmNoX3N0YXRpY19icmFuY2hfanVtcCgmKCZt
Y3NhZmVfa2V5KS0+a2V5LCBmYWxzZSk7IGVsc2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRp
YmxlX3AodHlwZW9mKCombWNzYWZlX2tleSksIHN0cnVjdCBzdGF0aWNfa2V5X2ZhbHNlKSkgYnJh
bmNoID0gYXJjaF9zdGF0aWNfYnJhbmNoKCYoJm1jc2FmZV9rZXkpLT5rZXksIGZhbHNlKTsgZWxz
ZSBicmFuY2ggPSBfX19fd3JvbmdfYnJhbmNoX2Vycm9yKCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
YnJhbmNoKSwgMCk7IH0pKQogIHJldHVybiBfX21lbWNweV9tY3NhZmUoZHN0LCBzcmMsIGNudCk7
CiBlbHNlCgogIG1lbWNweShkc3QsIHNyYywgY250KTsKIHJldHVybiAwOwp9CgoKCnZvaWQgX19t
ZW1jcHlfZmx1c2hjYWNoZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCk7
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBtZW1jcHlfZmx1c2hjYWNo
ZSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IGNudCkKewogaWYgKF9fYnVpbHRp
bl9jb25zdGFudF9wKGNudCkpIHsKICBzd2l0Y2ggKGNudCkgewogICBjYXNlIDQ6CiAgICBhc20g
KCJtb3ZudGlsICUxLCAlMCIgOiAiPW0iKCoodTMyICopZHN0KSA6ICJyIigqKHUzMiAqKXNyYykp
OwogICAgcmV0dXJuOwogICBjYXNlIDg6CiAgICBhc20gKCJtb3ZudGlxICUxLCAlMCIgOiAiPW0i
KCoodTY0ICopZHN0KSA6ICJyIigqKHU2NCAqKXNyYykpOwogICAgcmV0dXJuOwogICBjYXNlIDE2
OgogICAgYXNtICgibW92bnRpcSAlMSwgJTAiIDogIj1tIigqKHU2NCAqKWRzdCkgOiAiciIoKih1
NjQgKilzcmMpKTsKICAgIGFzbSAoIm1vdm50aXEgJTEsICUwIiA6ICI9bSIoKih1NjQgKikoZHN0
ICsgOCkpIDogInIiKCoodTY0ICopKHNyYyArIDgpKSk7CiAgICByZXR1cm47CiAgfQogfQogX19t
ZW1jcHlfZmx1c2hjYWNoZShkc3QsIHNyYywgY250KTsKfQojIDYgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vc3RyaW5nLmgiIDIKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCgoKZXh0
ZXJuIGNoYXIgKiBzdHJjcHkoY2hhciAqLGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBz
dHJuY3B5KGNoYXIgKixjb25zdCBjaGFyICosIF9fa2VybmVsX3NpemVfdCk7CgoKc2l6ZV90IHN0
cmxjcHkoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CgoKc3NpemVfdCBzdHJzY3B5KGNo
YXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwoKCgpzc2l6ZV90IHN0cnNjcHlfcGFkKGNoYXIg
KmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGNvdW50KTsKCgpleHRlcm4gY2hhciAqIHN0
cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuY2F0KGNoYXIg
KiwgY29uc3QgY2hhciAqLCBfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBzaXplX3Qgc3RybGNh
dChjaGFyICosIGNvbnN0IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50IHN0
cmNtcChjb25zdCBjaGFyICosY29uc3QgY2hhciAqKTsKCgpleHRlcm4gaW50IHN0cm5jbXAoY29u
c3QgY2hhciAqLGNvbnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBpbnQgc3Ry
Y2FzZWNtcChjb25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpOwoKCmV4dGVybiBpbnQgc3Ry
bmNhc2VjbXAoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLCBzaXplX3Qgbik7CgoKZXh0
ZXJuIGNoYXIgKiBzdHJjaHIoY29uc3QgY2hhciAqLGludCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJj
aHJudWwoY29uc3QgY2hhciAqLGludCk7CgpleHRlcm4gY2hhciAqIHN0cm5jaHJudWwoY29uc3Qg
Y2hhciAqLCBzaXplX3QsIGludCk7CgpleHRlcm4gY2hhciAqIHN0cm5jaHIoY29uc3QgY2hhciAq
LCBzaXplX3QsIGludCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJyY2hyKGNvbnN0IGNoYXIgKixpbnQp
OwoKZXh0ZXJuIGNoYXIgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
c2tpcF9zcGFjZXMoY29uc3QgY2hhciAqKTsKCmV4dGVybiBjaGFyICpzdHJpbShjaGFyICopOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGNoYXIgKnN0cnN0cmlwKGNo
YXIgKnN0cikKewogcmV0dXJuIHN0cmltKHN0cik7Cn0KCgpleHRlcm4gY2hhciAqIHN0cnN0cihj
b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuc3RyKGNvbnN0
IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwoKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qg
c3RybGVuKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJubGVuKGNv
bnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBjaGFyICogc3RycGJyayhjb25z
dCBjaGFyICosY29uc3QgY2hhciAqKTsKCgpleHRlcm4gY2hhciAqIHN0cnNlcChjaGFyICoqLGNv
bnN0IGNoYXIgKik7CgoKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJzcG4oY29uc3QgY2hhciAq
LGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJjc3BuKGNvbnN0IGNo
YXIgKixjb25zdCBjaGFyICopOwojIDEyMiAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
ICptZW1zZXRfbCh1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHYsCiAgX19rZXJuZWxf
c2l6ZV90IG4pCnsKIGlmICg2NCA9PSAzMikKICByZXR1cm4gbWVtc2V0MzIoKHVpbnQzMl90ICop
cCwgdiwgbik7CiBlbHNlCiAgcmV0dXJuIG1lbXNldDY0KCh1aW50NjRfdCAqKXAsIHYsIG4pOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkICptZW1zZXRfcCh2b2lkICoqcCwgdm9pZCAqdiwgX19rZXJuZWxfc2l6ZV90IG4pCnsK
IGlmICg2NCA9PSAzMikKICByZXR1cm4gbWVtc2V0MzIoKHVpbnQzMl90ICopcCwgKHVpbnRwdHJf
dCl2LCBuKTsKIGVsc2UKICByZXR1cm4gbWVtc2V0NjQoKHVpbnQ2NF90ICopcCwgKHVpbnRwdHJf
dCl2LCBuKTsKfQoKZXh0ZXJuIHZvaWQgKipfX21lbWNhdF9wKHZvaWQgKiphLCB2b2lkICoqYik7
CiMgMTUzICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCmV4dGVybiB2b2lkICogbWVtc2Nhbih2
b2lkICosaW50LF9fa2VybmVsX3NpemVfdCk7CgoKZXh0ZXJuIGludCBtZW1jbXAoY29uc3Qgdm9p
ZCAqLGNvbnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiBpbnQgYmNtcChjb25z
dCB2b2lkICosY29uc3Qgdm9pZCAqLF9fa2VybmVsX3NpemVfdCk7CgoKZXh0ZXJuIHZvaWQgKiBt
ZW1jaHIoY29uc3Qgdm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwojIDE3OCAiLi9pbmNsdWRl
L2xpbnV4L3N0cmluZy5oIgp2b2lkICptZW1jaHJfaW52KGNvbnN0IHZvaWQgKnMsIGludCBjLCBz
aXplX3Qgbik7CmNoYXIgKnN0cnJlcGxhY2UoY2hhciAqcywgY2hhciBvbGQsIGNoYXIgbmV3KTsK
CmV4dGVybiB2b2lkIGtmcmVlX2NvbnN0KGNvbnN0IHZvaWQgKngpOwoKZXh0ZXJuIGNoYXIgKmtz
dHJkdXAoY29uc3QgY2hhciAqcywgZ2ZwX3QgZ2ZwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19f
KSk7CmV4dGVybiBjb25zdCBjaGFyICprc3RyZHVwX2NvbnN0KGNvbnN0IGNoYXIgKnMsIGdmcF90
IGdmcCk7CmV4dGVybiBjaGFyICprc3RybmR1cChjb25zdCBjaGFyICpzLCBzaXplX3QgbGVuLCBn
ZnBfdCBnZnApOwpleHRlcm4gdm9pZCAqa21lbWR1cChjb25zdCB2b2lkICpzcmMsIHNpemVfdCBs
ZW4sIGdmcF90IGdmcCk7CmV4dGVybiBjaGFyICprbWVtZHVwX251bChjb25zdCBjaGFyICpzLCBz
aXplX3QgbGVuLCBnZnBfdCBnZnApOwoKZXh0ZXJuIGNoYXIgKiphcmd2X3NwbGl0KGdmcF90IGdm
cCwgY29uc3QgY2hhciAqc3RyLCBpbnQgKmFyZ2NwKTsKZXh0ZXJuIHZvaWQgYXJndl9mcmVlKGNo
YXIgKiphcmd2KTsKCmV4dGVybiBib29sIHN5c2ZzX3N0cmVxKGNvbnN0IGNoYXIgKnMxLCBjb25z
dCBjaGFyICpzMik7CmV4dGVybiBpbnQga3N0cnRvYm9vbChjb25zdCBjaGFyICpzLCBib29sICpy
ZXMpOwpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgc3RydG9ib29sKGNvbnN0IGNoYXIgKnMsIGJvb2wgKnJlcykKewogcmV0dXJuIGtz
dHJ0b2Jvb2wocywgcmVzKTsKfQoKaW50IG1hdGNoX3N0cmluZyhjb25zdCBjaGFyICogY29uc3Qg
KmFycmF5LCBzaXplX3QgbiwgY29uc3QgY2hhciAqc3RyaW5nKTsKaW50IF9fc3lzZnNfbWF0Y2hf
c3RyaW5nKGNvbnN0IGNoYXIgKiBjb25zdCAqYXJyYXksIHNpemVfdCBuLCBjb25zdCBjaGFyICpz
KTsKIyAyMTIgIi4vaW5jbHVkZS9saW51eC9zdHJpbmcuaCIKaW50IHZiaW5fcHJpbnRmKHUzMiAq
YmluX2J1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKaW50
IGJzdHJfcHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmZtdCwgY29u
c3QgdTMyICpiaW5fYnVmKTsKaW50IGJwcmludGYodTMyICpiaW5fYnVmLCBzaXplX3Qgc2l6ZSwg
Y29uc3QgY2hhciAqZm10LCAuLi4pIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAz
LCA0KSkpOwoKCmV4dGVybiBzc2l6ZV90IG1lbW9yeV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRv
LCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcywKICAgICAgICAgICBjb25zdCB2b2lkICpmcm9t
LCBzaXplX3QgYXZhaWxhYmxlKTsKCmludCBwdHJfdG9faGFzaHZhbChjb25zdCB2b2lkICpwdHIs
IHVuc2lnbmVkIGxvbmcgKmhhc2h2YWxfb3V0KTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBzdHJzdGFydHMoY29uc3Qg
Y2hhciAqc3RyLCBjb25zdCBjaGFyICpwcmVmaXgpCnsKIHJldHVybiBzdHJuY21wKHN0ciwgcHJl
Zml4LCBzdHJsZW4ocHJlZml4KSkgPT0gMDsKfQoKc2l6ZV90IG1lbXdlaWdodChjb25zdCB2b2lk
ICpwdHIsIHNpemVfdCBieXRlcyk7CiMgMjQ4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgbWVtemVyb19leHBsaWNpdCh2b2lkICpzLCBzaXplX3QgY291bnQpCnsKIG1lbXNldChzLCAw
LCBjb3VudCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiJyIihzKSA6Im1lbW9yeSIpOwp9
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGNvbnN0IGNoYXIgKmtiYXNlbmFtZShjb25zdCBjaGFyICpwYXRoKQp7CiBjb25zdCBj
aGFyICp0YWlsID0gc3RycmNocihwYXRoLCAnLycpOwogcmV0dXJuIHRhaWwgPyB0YWlsICsgMSA6
IHBhdGg7Cn0KCgoKCnZvaWQgZm9ydGlmeV9wYW5pYyhjb25zdCBjaGFyICpuYW1lKSBfX2F0dHJp
YnV0ZV9fKChfX25vcmV0dXJuX18pKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpOwp2b2lkIF9f
cmVhZF9vdmVyZmxvdyh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oImRldGVjdGVkIHJl
YWQgYmV5b25kIHNpemUgb2Ygb2JqZWN0IHBhc3NlZCBhcyAxc3QgcGFyYW1ldGVyIikpKTsKdm9p
ZCBfX3JlYWRfb3ZlcmZsb3cyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiZGV0ZWN0
ZWQgcmVhZCBiZXlvbmQgc2l6ZSBvZiBvYmplY3QgcGFzc2VkIGFzIDJuZCBwYXJhbWV0ZXIiKSkp
Owp2b2lkIF9fcmVhZF9vdmVyZmxvdzModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJk
ZXRlY3RlZCByZWFkIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgM3JkIHBhcmFtZXRl
ciIpKSk7CnZvaWQgX193cml0ZV9vdmVyZmxvdyh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9y
X18oImRldGVjdGVkIHdyaXRlIGJleW9uZCBzaXplIG9mIG9iamVjdCBwYXNzZWQgYXMgMXN0IHBh
cmFtZXRlciIpKSk7CiMgNDc4ICIuL2luY2x1ZGUvbGludXgvc3RyaW5nLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWVtY3B5
X2FuZF9wYWQodm9pZCAqZGVzdCwgc2l6ZV90IGRlc3RfbGVuLAogICAgICBjb25zdCB2b2lkICpz
cmMsIHNpemVfdCBjb3VudCwgaW50IHBhZCkKewogaWYgKGRlc3RfbGVuID4gY291bnQpIHsKICBt
ZW1jcHkoZGVzdCwgc3JjLCBjb3VudCk7CiAgbWVtc2V0KGRlc3QgKyBjb3VudCwgcGFkLCBkZXN0
X2xlbiAtIGNvdW50KTsKIH0gZWxzZQogIG1lbWNweShkZXN0LCBzcmMsIGRlc3RfbGVuKTsKfQoj
IDUwMyAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHNpemVfdCBzdHJfaGFzX3ByZWZpeChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNo
YXIgKnByZWZpeCkKewogc2l6ZV90IGxlbiA9IHN0cmxlbihwcmVmaXgpOwogcmV0dXJuIHN0cm5j
bXAoc3RyLCBwcmVmaXgsIGxlbikgPT0gMCA/IGxlbiA6IDA7Cn0KIyAxMCAiLi9pbmNsdWRlL2xp
bnV4L2JpdG1hcC5oIiAyCiMgMTE1ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgiCmV4dGVybiB1
bnNpZ25lZCBsb25nICpiaXRtYXBfYWxsb2ModW5zaWduZWQgaW50IG5iaXRzLCBnZnBfdCBmbGFn
cyk7CmV4dGVybiB1bnNpZ25lZCBsb25nICpiaXRtYXBfemFsbG9jKHVuc2lnbmVkIGludCBuYml0
cywgZ2ZwX3QgZmxhZ3MpOwpleHRlcm4gdm9pZCBiaXRtYXBfZnJlZShjb25zdCB1bnNpZ25lZCBs
b25nICpiaXRtYXApOwoKCgoKCmV4dGVybiBpbnQgX19iaXRtYXBfZW1wdHkoY29uc3QgdW5zaWdu
ZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IF9fYml0bWFw
X2Z1bGwoY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpl
eHRlcm4gaW50IF9fYml0bWFwX2VxdWFsKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDEsCiAg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKZXh0
ZXJuIGJvb2wgX19hdHRyaWJ1dGVfXygoX19wdXJlX18pKSBfX2JpdG1hcF9vcl9lcXVhbChjb25z
dCB1bnNpZ25lZCBsb25nICpzcmMxLAogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMy
LAogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMzLAogICAgICAgICB1bnNpZ25lZCBp
bnQgbmJpdHMpOwpleHRlcm4gdm9pZCBfX2JpdG1hcF9jb21wbGVtZW50KHVuc2lnbmVkIGxvbmcg
KmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLAogICB1bnNpZ25lZCBpbnQgbmJpdHMpOwpl
eHRlcm4gdm9pZCBfX2JpdG1hcF9zaGlmdF9yaWdodCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0
IHVuc2lnbmVkIGxvbmcgKnNyYywKICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQgaW50
IG5iaXRzKTsKZXh0ZXJuIHZvaWQgX19iaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5z
aWduZWQgaW50IG5iaXRzKTsKZXh0ZXJuIHZvaWQgYml0bWFwX2N1dCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKICAgICAgICAgdW5zaWduZWQgaW50IGZpcnN0
LCB1bnNpZ25lZCBpbnQgY3V0LAogICAgICAgICB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4g
aW50IF9fYml0bWFwX2FuZCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcg
KmJpdG1hcDEsCiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcDIsIHVuc2lnbmVkIGludCBu
Yml0cyk7CmV4dGVybiB2b2lkIF9fYml0bWFwX29yKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3Qg
dW5zaWduZWQgbG9uZyAqYml0bWFwMSwKICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwMiwg
dW5zaWduZWQgaW50IG5iaXRzKTsKZXh0ZXJuIHZvaWQgX19iaXRtYXBfeG9yKHVuc2lnbmVkIGxv
bmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwMSwKICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqYml0bWFwMiwgdW5zaWduZWQgaW50IG5iaXRzKTsKZXh0ZXJuIGludCBfX2JpdG1hcF9h
bmRub3QodW5zaWduZWQgbG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAog
ICBjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRl
cm4gdm9pZCBfX2JpdG1hcF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgKmRzdCwKICAgY29uc3QgdW5z
aWduZWQgbG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsCiAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgKm1hc2ssIHVuc2lnbmVkIGludCBuYml0cyk7CmV4dGVybiBpbnQgX19iaXRtYXBf
aW50ZXJzZWN0cyhjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAogICBjb25zdCB1bnNpZ25l
ZCBsb25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IF9fYml0bWFw
X3N1YnNldChjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAxLAogICBjb25zdCB1bnNpZ25lZCBs
b25nICpiaXRtYXAyLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IF9fYml0bWFwX3dl
aWdodChjb25zdCB1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBuYml0cyk7CmV4
dGVybiB2b2lkIF9fYml0bWFwX3NldCh1bnNpZ25lZCBsb25nICptYXAsIHVuc2lnbmVkIGludCBz
dGFydCwgaW50IGxlbik7CmV4dGVybiB2b2lkIF9fYml0bWFwX2NsZWFyKHVuc2lnbmVkIGxvbmcg
Km1hcCwgdW5zaWduZWQgaW50IHN0YXJ0LCBpbnQgbGVuKTsKCmV4dGVybiB1bnNpZ25lZCBsb25n
IGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhX29mZih1bnNpZ25lZCBsb25nICptYXAsCiAgICAg
ICAgICB1bnNpZ25lZCBsb25nIHNpemUsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAog
ICAgICAgICAgdW5zaWduZWQgaW50IG5yLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBhbGlnbl9t
YXNrLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBhbGlnbl9vZmZzZXQpOwojIDE3OCAiLi9pbmNs
dWRlL2xpbnV4L2JpdG1hcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nCmJpdG1hcF9maW5kX25leHRfemVyb19h
cmVhKHVuc2lnbmVkIGxvbmcgKm1hcCwKICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAogICAgICB1
bnNpZ25lZCBsb25nIHN0YXJ0LAogICAgICB1bnNpZ25lZCBpbnQgbnIsCiAgICAgIHVuc2lnbmVk
IGxvbmcgYWxpZ25fbWFzaykKewogcmV0dXJuIGJpdG1hcF9maW5kX25leHRfemVyb19hcmVhX29m
ZihtYXAsIHNpemUsIHN0YXJ0LCBuciwKICAgICAgICAgICBhbGlnbl9tYXNrLCAwKTsKfQoKZXh0
ZXJuIGludCBiaXRtYXBfcGFyc2UoY29uc3QgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgYnVmbGVu
LAogICB1bnNpZ25lZCBsb25nICpkc3QsIGludCBuYml0cyk7CmV4dGVybiBpbnQgYml0bWFwX3Bh
cnNlX3VzZXIoY29uc3QgY2hhciAqdWJ1ZiwgdW5zaWduZWQgaW50IHVsZW4sCiAgIHVuc2lnbmVk
IGxvbmcgKmRzdCwgaW50IG5iaXRzKTsKZXh0ZXJuIGludCBiaXRtYXBfcGFyc2VsaXN0KGNvbnN0
IGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyAqbWFza3AsCiAgIGludCBubWFza2JpdHMpOwpleHRl
cm4gaW50IGJpdG1hcF9wYXJzZWxpc3RfdXNlcihjb25zdCBjaGFyICp1YnVmLCB1bnNpZ25lZCBp
bnQgdWxlbiwKICAgdW5zaWduZWQgbG9uZyAqZHN0LCBpbnQgbmJpdHMpOwpleHRlcm4gdm9pZCBi
aXRtYXBfcmVtYXAodW5zaWduZWQgbG9uZyAqZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMs
CiAgY29uc3QgdW5zaWduZWQgbG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsIHVu
c2lnbmVkIGludCBuYml0cyk7CmV4dGVybiBpbnQgYml0bWFwX2JpdHJlbWFwKGludCBvbGRiaXQs
CiAgY29uc3QgdW5zaWduZWQgbG9uZyAqb2xkLCBjb25zdCB1bnNpZ25lZCBsb25nICpuZXcsIGlu
dCBiaXRzKTsKZXh0ZXJuIHZvaWQgYml0bWFwX29udG8odW5zaWduZWQgbG9uZyAqZHN0LCBjb25z
dCB1bnNpZ25lZCBsb25nICpvcmlnLAogIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnJlbG1hcCwgdW5z
aWduZWQgaW50IGJpdHMpOwpleHRlcm4gdm9pZCBiaXRtYXBfZm9sZCh1bnNpZ25lZCBsb25nICpk
c3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm9yaWcsCiAgdW5zaWduZWQgaW50IHN6LCB1bnNpZ25l
ZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50IGJpdG1hcF9maW5kX2ZyZWVfcmVnaW9uKHVuc2lnbmVk
IGxvbmcgKmJpdG1hcCwgdW5zaWduZWQgaW50IGJpdHMsIGludCBvcmRlcik7CmV4dGVybiB2b2lk
IGJpdG1hcF9yZWxlYXNlX3JlZ2lvbih1bnNpZ25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGlu
dCBwb3MsIGludCBvcmRlcik7CmV4dGVybiBpbnQgYml0bWFwX2FsbG9jYXRlX3JlZ2lvbih1bnNp
Z25lZCBsb25nICpiaXRtYXAsIHVuc2lnbmVkIGludCBwb3MsIGludCBvcmRlcik7CgoKCgoKCmV4
dGVybiB1bnNpZ25lZCBpbnQgYml0bWFwX29yZF90b19wb3MoY29uc3QgdW5zaWduZWQgbG9uZyAq
Yml0bWFwLCB1bnNpZ25lZCBpbnQgb3JkLCB1bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gaW50
IGJpdG1hcF9wcmludF90b19wYWdlYnVmKGJvb2wgbGlzdCwgY2hhciAqYnVmLAogICAgICAgY29u
c3QgdW5zaWduZWQgbG9uZyAqbWFza3AsIGludCBubWFza2JpdHMpOwojIDIyOSAiLi9pbmNsdWRl
L2xpbnV4L2JpdG1hcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF96ZXJvKHVuc2lnbmVkIGxvbmcgKmRzdCwgdW5z
aWduZWQgaW50IG5iaXRzKQp7CiB1bnNpZ25lZCBpbnQgbGVuID0gKCgobmJpdHMpICsgKChzaXpl
b2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZih1bnNp
Z25lZCBsb25nKTsKIG1lbXNldChkc3QsIDAsIGxlbik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2ZpbGwodW5z
aWduZWQgbG9uZyAqZHN0LCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIHVuc2lnbmVkIGludCBsZW4g
PSAoKChuYml0cykgKyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykg
KiA4KSkpICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOwogbWVtc2V0KGRzdCwgMHhmZiwgbGVuKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBiaXRtYXBfY29weSh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxv
bmcgKnNyYywKICAgdW5zaWduZWQgaW50IG5iaXRzKQp7CiB1bnNpZ25lZCBpbnQgbGVuID0gKCgo
bmJpdHMpICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkp
KSAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKIG1lbWNweShkc3QsIHNyYywgbGVuKTsKfQoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBiaXRtYXBfY29weV9jbGVhcl90YWlsKHVuc2lnbmVkIGxvbmcgKmRzdCwKICBjb25zdCB1
bnNpZ25lZCBsb25nICpzcmMsIHVuc2lnbmVkIGludCBuYml0cykKewogYml0bWFwX2NvcHkoZHN0
LCBzcmMsIG5iaXRzKTsKIGlmIChuYml0cyAlIDY0KQogIGRzdFtuYml0cyAvIDY0XSAmPSAofjBV
TCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpOwp9CgoKCgoKCmV4dGVybiB2b2lkIGJpdG1hcF9m
cm9tX2FycjMyKHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwgY29uc3QgdTMyICpidWYsCiAgICAgICB1
bnNpZ25lZCBpbnQgbmJpdHMpOwpleHRlcm4gdm9pZCBiaXRtYXBfdG9fYXJyMzIodTMyICpidWYs
IGNvbnN0IHVuc2lnbmVkIGxvbmcgKmJpdG1hcCwKICAgICAgIHVuc2lnbmVkIGludCBuYml0cyk7
CiMgMjc3ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRtYXBfYW5kKHVuc2lnbmVk
IGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFu
dF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gKCpk
c3QgPSAqc3JjMSAmICpzcmMyICYgKH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSkgIT0g
MDsKIHJldHVybiBfX2JpdG1hcF9hbmQoZHN0LCBzcmMxLCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
Yml0bWFwX29yKHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwK
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAo
KF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykg
PiAwKSkKICAqZHN0ID0gKnNyYzEgfCAqc3JjMjsKIGVsc2UKICBfX2JpdG1hcF9vcihkc3QsIHNy
YzEsIHNyYzIsIG5iaXRzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfeG9yKHVuc2lnbmVkIGxvbmcgKmRzdCwg
Y29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMiwg
dW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAm
JiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICAqZHN0ID0gKnNyYzEgXiAqc3JjMjsK
IGVsc2UKICBfX2JpdG1hcF94b3IoZHN0LCBzcmMxLCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfYW5kbm90KHVuc2lnbmVkIGxvbmcgKmRzdCwgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwK
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAo
KF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykg
PiAwKSkKICByZXR1cm4gKCpkc3QgPSAqc3JjMSAmIH4oKnNyYzIpICYgKH4wVUwgPj4gKC0obmJp
dHMpICYgKDY0IC0gMSkpKSkgIT0gMDsKIHJldHVybiBfX2JpdG1hcF9hbmRub3QoZHN0LCBzcmMx
LCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0bWFwX2NvbXBsZW1lbnQodW5zaWduZWQgbG9uZyAq
ZHN0LCBjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsCiAgIHVuc2lnbmVkIGludCBuYml0cykKewog
aWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJp
dHMpID4gMCkpCiAgKmRzdCA9IH4oKnNyYyk7CiBlbHNlCiAgX19iaXRtYXBfY29tcGxlbWVudChk
c3QsIHNyYywgbmJpdHMpOwp9CiMgMzI3ICIuL2luY2x1ZGUvbGludXgvYml0bWFwLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBi
aXRtYXBfZXF1YWwoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQg
bG9uZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFu
dF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gISgo
KnNyYzEgXiAqc3JjMikgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKTsKIGlmIChf
X2J1aWx0aW5fY29uc3RhbnRfcChuYml0cyAmICg4IC0gMSkpICYmCiAgICAgKCgobmJpdHMpICYg
KCh0eXBlb2YobmJpdHMpKSg4KSAtIDEpKSA9PSAwKSkKICByZXR1cm4gIW1lbWNtcChzcmMxLCBz
cmMyLCBuYml0cyAvIDgpOwogcmV0dXJuIF9fYml0bWFwX2VxdWFsKHNyYzEsIHNyYzIsIG5iaXRz
KTsKfQojIDM0NyAiLi9pbmNsdWRlL2xpbnV4L2JpdG1hcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGJpdG1hcF9vcl9lcXVh
bChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMxLAogICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAq
c3JjMiwKICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzMsCiAgICAgICB1bnNpZ25lZCBp
bnQgbmJpdHMpCnsKIGlmICghKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMp
IDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gX19iaXRtYXBfb3JfZXF1YWwoc3JjMSwg
c3JjMiwgc3JjMywgbmJpdHMpOwoKIHJldHVybiAhKCgoKnNyYzEgfCAqc3JjMikgXiAqc3JjMykg
JiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1hcF9pbnRlcnNl
Y3RzKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYzEsCiAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNy
YzIsIHVuc2lnbmVkIGludCBuYml0cykKewogaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0
cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMpID4gMCkpCiAgcmV0dXJuICgoKnNyYzEgJiAq
c3JjMikgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKSAhPSAwOwogZWxzZQogIHJl
dHVybiBfX2JpdG1hcF9pbnRlcnNlY3RzKHNyYzEsIHNyYzIsIG5iaXRzKTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJpdG1h
cF9zdWJzZXQoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjMSwKICAgY29uc3QgdW5zaWduZWQgbG9u
ZyAqc3JjMiwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9w
KG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICByZXR1cm4gISAoKCpz
cmMxICYgfigqc3JjMikpICYgKH4wVUwgPj4gKC0obmJpdHMpICYgKDY0IC0gMSkpKSk7CiBlbHNl
CiAgcmV0dXJuIF9fYml0bWFwX3N1YnNldChzcmMxLCBzcmMyLCBuYml0cyk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRt
YXBfZW1wdHkoY29uc3QgdW5zaWduZWQgbG9uZyAqc3JjLCB1bnNpZ25lZCBuYml0cykKewogaWYg
KChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMp
ID4gMCkpCiAgcmV0dXJuICEgKCpzcmMgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkp
KTsKCiByZXR1cm4gZmluZF9maXJzdF9iaXQoc3JjLCBuYml0cykgPT0gbmJpdHM7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBi
aXRtYXBfZnVsbChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsIHVuc2lnbmVkIGludCBuYml0cykK
ewogaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAo
bmJpdHMpID4gMCkpCiAgcmV0dXJuICEgKH4oKnNyYykgJiAofjBVTCA+PiAoLShuYml0cykgJiAo
NjQgLSAxKSkpKTsKCiByZXR1cm4gZmluZF9maXJzdF96ZXJvX2JpdChzcmMsIG5iaXRzKSA9PSBu
Yml0czsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgYml0bWFwX3dl
aWdodChjb25zdCB1bnNpZ25lZCBsb25nICpzcmMsIHVuc2lnbmVkIGludCBuYml0cykKewogaWYg
KChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2NCAmJiAobmJpdHMp
ID4gMCkpCiAgcmV0dXJuIGh3ZWlnaHRfbG9uZygqc3JjICYgKH4wVUwgPj4gKC0obmJpdHMpICYg
KDY0IC0gMSkpKSk7CiByZXR1cm4gX19iaXRtYXBfd2VpZ2h0KHNyYywgbmJpdHMpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgYml0bWFwX3NldCh1bnNpZ25lZCBs
b25nICptYXAsIHVuc2lnbmVkIGludCBzdGFydCwKICB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIGlm
IChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgbmJpdHMgPT0gMSkKICBfX3NldF9iaXQo
c3RhcnQsIG1hcCk7CiBlbHNlIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChzdGFydCAmICg4IC0g
MSkpICYmCiAgICgoKHN0YXJ0KSAmICgodHlwZW9mKHN0YXJ0KSkoOCkgLSAxKSkgPT0gMCkgJiYK
ICAgX19idWlsdGluX2NvbnN0YW50X3AobmJpdHMgJiAoOCAtIDEpKSAmJgogICAoKChuYml0cykg
JiAoKHR5cGVvZihuYml0cykpKDgpIC0gMSkpID09IDApKQogIG1lbXNldCgoY2hhciAqKW1hcCAr
IHN0YXJ0IC8gOCwgMHhmZiwgbmJpdHMgLyA4KTsKIGVsc2UKICBfX2JpdG1hcF9zZXQobWFwLCBz
dGFydCwgbmJpdHMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
Yml0bWFwX2NsZWFyKHVuc2lnbmVkIGxvbmcgKm1hcCwgdW5zaWduZWQgaW50IHN0YXJ0LAogIHVu
c2lnbmVkIGludCBuYml0cykKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiBu
Yml0cyA9PSAxKQogIF9fY2xlYXJfYml0KHN0YXJ0LCBtYXApOwogZWxzZSBpZiAoX19idWlsdGlu
X2NvbnN0YW50X3Aoc3RhcnQgJiAoOCAtIDEpKSAmJgogICAoKChzdGFydCkgJiAoKHR5cGVvZihz
dGFydCkpKDgpIC0gMSkpID09IDApICYmCiAgIF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzICYg
KDggLSAxKSkgJiYKICAgKCgobmJpdHMpICYgKCh0eXBlb2YobmJpdHMpKSg4KSAtIDEpKSA9PSAw
KSkKICBtZW1zZXQoKGNoYXIgKiltYXAgKyBzdGFydCAvIDgsIDAsIG5iaXRzIC8gOCk7CiBlbHNl
CiAgX19iaXRtYXBfY2xlYXIobWFwLCBzdGFydCwgbmJpdHMpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9zaGlm
dF9yaWdodCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnNyYywKICAg
IHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiBpZiAoKF9fYnVpbHRp
bl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChuYml0cykgPiAwKSkKICAq
ZHN0ID0gKCpzcmMgJiAofjBVTCA+PiAoLShuYml0cykgJiAoNjQgLSAxKSkpKSA+PiBzaGlmdDsK
IGVsc2UKICBfX2JpdG1hcF9zaGlmdF9yaWdodChkc3QsIHNyYywgc2hpZnQsIG5iaXRzKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBiaXRtYXBfc2hpZnRfbGVmdCh1bnNpZ25lZCBsb25nICpkc3QsIGNvbnN0IHVuc2lnbmVk
IGxvbmcgKnNyYywKICAgIHVuc2lnbmVkIGludCBzaGlmdCwgdW5zaWduZWQgaW50IG5iaXRzKQp7
CiBpZiAoKF9fYnVpbHRpbl9jb25zdGFudF9wKG5iaXRzKSAmJiAobmJpdHMpIDw9IDY0ICYmIChu
Yml0cykgPiAwKSkKICAqZHN0ID0gKCpzcmMgPDwgc2hpZnQpICYgKH4wVUwgPj4gKC0obmJpdHMp
ICYgKDY0IC0gMSkpKTsKIGVsc2UKICBfX2JpdG1hcF9zaGlmdF9sZWZ0KGRzdCwgc3JjLCBzaGlm
dCwgbmJpdHMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgKmRzdCwKICAg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyAqb2xkLAogICAgICBjb25zdCB1bnNpZ25lZCBsb25nICpu
ZXcsCiAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKm1hc2ssCiAgICAgIHVuc2lnbmVkIGludCBu
Yml0cykKewogaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcChuYml0cykgJiYgKG5iaXRzKSA8PSA2
NCAmJiAobmJpdHMpID4gMCkpCiAgKmRzdCA9ICgqb2xkICYgfigqbWFzaykpIHwgKCpuZXcgJiAq
bWFzayk7CiBlbHNlCiAgX19iaXRtYXBfcmVwbGFjZShkc3QsIG9sZCwgbmV3LCBtYXNrLCBuYml0
cyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgYml0bWFwX25leHRfY2xlYXJfcmVnaW9uKHVuc2lnbmVkIGxvbmcgKmJpdG1h
cCwKICAgICAgICAgdW5zaWduZWQgaW50ICpycywgdW5zaWduZWQgaW50ICpyZSwKICAgICAgICAg
dW5zaWduZWQgaW50IGVuZCkKewogKnJzID0gZmluZF9uZXh0X3plcm9fYml0KGJpdG1hcCwgZW5k
LCAqcnMpOwogKnJlID0gZmluZF9uZXh0X2JpdChiaXRtYXAsIGVuZCwgKnJzICsgMSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYml0bWFwX25leHRfc2V0X3JlZ2lvbih1bnNpZ25lZCBsb25nICpiaXRtYXAsCiAgICAgICB1
bnNpZ25lZCBpbnQgKnJzLCB1bnNpZ25lZCBpbnQgKnJlLAogICAgICAgdW5zaWduZWQgaW50IGVu
ZCkKewogKnJzID0gZmluZF9uZXh0X2JpdChiaXRtYXAsIGVuZCwgKnJzKTsKICpyZSA9IGZpbmRf
bmV4dF96ZXJvX2JpdChiaXRtYXAsIGVuZCwgKnJzICsgMSk7Cn0KIyA1MzUgIi4vaW5jbHVkZS9s
aW51eC9iaXRtYXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBiaXRtYXBfZnJvbV91NjQodW5zaWduZWQgbG9uZyAqZHN0LCB1
NjQgbWFzaykKewogZHN0WzBdID0gbWFzayAmICh+MFVMKTsKCiBpZiAoc2l6ZW9mKG1hc2spID4g
c2l6ZW9mKHVuc2lnbmVkIGxvbmcpKQogIGRzdFsxXSA9IG1hc2sgPj4gMzI7Cn0KIyA1NTEgIi4v
aW5jbHVkZS9saW51eC9iaXRtYXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBiaXRtYXBfZ2V0X3ZhbHVlOChj
b25zdCB1bnNpZ25lZCBsb25nICptYXAsCiAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCkK
ewogY29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CiBjb25zdCB1bnNpZ25lZCBs
b25nIG9mZnNldCA9IHN0YXJ0ICUgNjQ7CgogcmV0dXJuIChtYXBbaW5kZXhdID4+IG9mZnNldCkg
JiAweEZGOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGJpdG1hcF9zZXRfdmFsdWU4KHVuc2lnbmVkIGxvbmcgKm1h
cCwgdW5zaWduZWQgbG9uZyB2YWx1ZSwKICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCkKewog
Y29uc3Qgc2l6ZV90IGluZGV4ID0gKChzdGFydCkgLyA2NCk7CiBjb25zdCB1bnNpZ25lZCBsb25n
IG9mZnNldCA9IHN0YXJ0ICUgNjQ7CgogbWFwW2luZGV4XSAmPSB+KDB4RkZVTCA8PCBvZmZzZXQp
OwogbWFwW2luZGV4XSB8PSB2YWx1ZSA8PCBvZmZzZXQ7Cn0KIyAxMyAiLi9pbmNsdWRlL2xpbnV4
L2NwdW1hc2suaCIgMgoKCgoKdHlwZWRlZiBzdHJ1Y3QgY3B1bWFzayB7IHVuc2lnbmVkIGxvbmcg
Yml0c1soKCg4KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAoKHNpemVvZihsb25nKSAq
IDgpKSldOyB9IGNwdW1hc2tfdDsKIyAzOSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKZXh0
ZXJuIHVuc2lnbmVkIGludCBucl9jcHVfaWRzOwojIDkwICIuL2luY2x1ZGUvbGludXgvY3B1bWFz
ay5oIgpleHRlcm4gc3RydWN0IGNwdW1hc2sgX19jcHVfcG9zc2libGVfbWFzazsKZXh0ZXJuIHN0
cnVjdCBjcHVtYXNrIF9fY3B1X29ubGluZV9tYXNrOwpleHRlcm4gc3RydWN0IGNwdW1hc2sgX19j
cHVfcHJlc2VudF9tYXNrOwpleHRlcm4gc3RydWN0IGNwdW1hc2sgX19jcHVfYWN0aXZlX21hc2s7
CgoKCgoKZXh0ZXJuIGF0b21pY190IF9fbnVtX29ubGluZV9jcHVzOwojIDExMCAiLi9pbmNsdWRl
L2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IG51bV9vbmxpbmVfY3B1cyh2b2lkKQp7CiBy
ZXR1cm4gYXRvbWljX3JlYWQoJl9fbnVtX29ubGluZV9jcHVzKTsKfQojIDEzMiAiLi9pbmNsdWRl
L2xpbnV4L2NwdW1hc2suaCIKZXh0ZXJuIGNwdW1hc2tfdCBjcHVzX2Jvb3RlZF9vbmNlX21hc2s7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGNwdV9tYXhfYml0c193YXJuKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBi
aXRzKQp7CgoKCn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgY3B1bWFza19jaGVjayh1bnNpZ25lZCBpbnQgY3B1
KQp7CiBjcHVfbWF4X2JpdHNfd2FybihjcHUsICgodW5zaWduZWQgaW50KTgpKTsKIHJldHVybiBj
cHU7Cn0KIyAyMTIgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVt
YXNrX2ZpcnN0KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQp7CiByZXR1cm4gZmluZF9maXJz
dF9iaXQoKChzcmNwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKfQoKCgoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWdu
ZWQgaW50IGNwdW1hc2tfbGFzdChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewogcmV0dXJu
IGZpbmRfbGFzdF9iaXQoKChzcmNwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKfQoKdW5z
aWduZWQgaW50IGNwdW1hc2tfbmV4dChpbnQgbiwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3Ap
OwojIDIzNyAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdW1hc2tf
bmV4dF96ZXJvKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewoKIGlmIChuICE9
IC0xKQogIGNwdW1hc2tfY2hlY2sobik7CiByZXR1cm4gZmluZF9uZXh0X3plcm9fYml0KCgoc3Jj
cCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSwgbisxKTsKfQoKaW50IGNwdW1hc2tfbmV4dF9h
bmQoaW50IG4sIGNvbnN0IHN0cnVjdCBjcHVtYXNrICosIGNvbnN0IHN0cnVjdCBjcHVtYXNrICop
OwppbnQgY3B1bWFza19hbnlfYnV0KGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCB1bnNpZ25l
ZCBpbnQgY3B1KTsKdW5zaWduZWQgaW50IGNwdW1hc2tfbG9jYWxfc3ByZWFkKHVuc2lnbmVkIGlu
dCBpLCBpbnQgbm9kZSk7CiMgMjczICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpleHRlcm4g
aW50IGNwdW1hc2tfbmV4dF93cmFwKGludCBuLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywg
aW50IHN0YXJ0LCBib29sIHdyYXApOwojIDMyNSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBjcHVtYXNrX3NldF9jcHUodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRz
dHApCnsKIHNldF9iaXQoY3B1bWFza19jaGVjayhjcHUpLCAoKGRzdHApLT5iaXRzKSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgX19jcHVtYXNrX3NldF9jcHUodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRz
dHApCnsKIF9fc2V0X2JpdChjcHVtYXNrX2NoZWNrKGNwdSksICgoZHN0cCktPmJpdHMpKTsKfQoK
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBjcHVtYXNrX2NsZWFyX2NwdShpbnQgY3B1LCBzdHJ1Y3QgY3B1bWFzayAqZHN0
cCkKewogY2xlYXJfYml0KGNwdW1hc2tfY2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fY3B1bWFza19jbGVhcl9jcHUoaW50IGNwdSwgc3RydWN0IGNwdW1hc2sgKmRzdHApCnsK
IF9fY2xlYXJfYml0KGNwdW1hc2tfY2hlY2soY3B1KSwgKChkc3RwKS0+Yml0cykpOwp9CiMgMzU4
ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza190ZXN0X2NwdShpbnQgY3B1
LCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1bWFzaykKewogcmV0dXJuIHRlc3RfYml0KGNwdW1h
c2tfY2hlY2soY3B1KSwgKCgoY3B1bWFzaykpLT5iaXRzKSk7Cn0KIyAzNzIgIi4vaW5jbHVkZS9s
aW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBjcHVtYXNrX3Rlc3RfYW5kX3NldF9jcHUoaW50IGNwdSwgc3Ry
dWN0IGNwdW1hc2sgKmNwdW1hc2spCnsKIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KGNwdW1hc2tf
Y2hlY2soY3B1KSwgKChjcHVtYXNrKS0+Yml0cykpOwp9CiMgMzg2ICIuL2luY2x1ZGUvbGludXgv
Y3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgY3B1bWFza190ZXN0X2FuZF9jbGVhcl9jcHUoaW50IGNwdSwgc3RydWN0
IGNwdW1hc2sgKmNwdW1hc2spCnsKIHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoY3B1bWFza19j
aGVjayhjcHUpLCAoKGNwdW1hc2spLT5iaXRzKSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNwdW1hc2tfc2V0YWxs
KHN0cnVjdCBjcHVtYXNrICpkc3RwKQp7CiBiaXRtYXBfZmlsbCgoKGRzdHApLT5iaXRzKSwgKCh1
bnNpZ25lZCBpbnQpOCkpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX2NsZWFyKHN0cnVjdCBjcHVtYXNr
ICpkc3RwKQp7CiBiaXRtYXBfemVybygoKGRzdHApLT5iaXRzKSwgKCh1bnNpZ25lZCBpbnQpOCkp
Owp9CiMgNDE3ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19hbmQoc3Ry
dWN0IGNwdW1hc2sgKmRzdHAsCiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAs
CiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCnsKIHJldHVybiBiaXRtYXBf
YW5kKCgoZHN0cCktPmJpdHMpLCAoKHNyYzFwKS0+Yml0cyksCiAgICAgICAgICAgKChzcmMycCkt
PmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza19vcihzdHJ1
Y3QgY3B1bWFzayAqZHN0cCwgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFwLAogICAgICAgICBj
b25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCnsKIGJpdG1hcF9vcigoKGRzdHApLT5iaXRzKSwg
KChzcmMxcCktPmJpdHMpLAogICAgICAgICAgKChzcmMycCktPmJpdHMpLCAoKHVuc2lnbmVkIGlu
dCk4KSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza194b3Ioc3RydWN0IGNwdW1hc2sgKmRzdHAsCiAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCiAgICAgICAgICBjb25zdCBzdHJ1
Y3QgY3B1bWFzayAqc3JjMnApCnsKIGJpdG1hcF94b3IoKChkc3RwKS0+Yml0cyksICgoc3JjMXAp
LT5iaXRzKSwKICAgICAgICAgICAoKHNyYzJwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsK
fQojIDQ2MCAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGNwdW1hc2tfYW5kbm90KHN0
cnVjdCBjcHVtYXNrICpkc3RwLAogICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjMXAsCiAg
ICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkKewogcmV0dXJuIGJpdG1hcF9hbmRub3Qo
KChkc3RwKS0+Yml0cyksICgoc3JjMXApLT5iaXRzKSwKICAgICAgICgoc3JjMnApLT5iaXRzKSwg
KCh1bnNpZ25lZCBpbnQpOCkpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1bWFza19jb21wbGVtZW50KHN0cnVj
dCBjcHVtYXNrICpkc3RwLAogICAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCnsK
IGJpdG1hcF9jb21wbGVtZW50KCgoZHN0cCktPmJpdHMpLCAoKHNyY3ApLT5iaXRzKSwKICAgICAg
ICAgICAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNrX2VxdWFsKGNvbnN0
IHN0cnVjdCBjcHVtYXNrICpzcmMxcCwKICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMycCkK
ewogcmV0dXJuIGJpdG1hcF9lcXVhbCgoKHNyYzFwKS0+Yml0cyksICgoc3JjMnApLT5iaXRzKSwK
ICAgICAgICgodW5zaWduZWQgaW50KTgpKTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNrX29yX2VxdWFs
KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmMxcCwKICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqc3JjMnAsCiAgICAgICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzNwKQp7CiByZXR1cm4g
Yml0bWFwX29yX2VxdWFsKCgoc3JjMXApLT5iaXRzKSwgKChzcmMycCktPmJpdHMpLAogICAgICAg
ICAgKChzcmMzcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVt
YXNrX2ludGVyc2VjdHMoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFwLAogICAgICAgICBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqc3JjMnApCnsKIHJldHVybiBiaXRtYXBfaW50ZXJzZWN0cygoKHNy
YzFwKS0+Yml0cyksICgoc3JjMnApLT5iaXRzKSwKICAgICAgICAgICAgKCh1bnNpZ25lZCBpbnQp
OCkpOwp9CiMgNTI1ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19zdWJz
ZXQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyYzFwLAogICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNr
ICpzcmMycCkKewogcmV0dXJuIGJpdG1hcF9zdWJzZXQoKChzcmMxcCktPmJpdHMpLCAoKHNyYzJw
KS0+Yml0cyksCiAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwp9CgoKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNr
X2VtcHR5KGNvbnN0IHN0cnVjdCBjcHVtYXNrICpzcmNwKQp7CiByZXR1cm4gYml0bWFwX2VtcHR5
KCgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNwdW1hc2tf
ZnVsbChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewogcmV0dXJuIGJpdG1hcF9mdWxsKCgo
c3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgY3B1
bWFza193ZWlnaHQoY29uc3Qgc3RydWN0IGNwdW1hc2sgKnNyY3ApCnsKIHJldHVybiBiaXRtYXBf
d2VpZ2h0KCgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
Y3B1bWFza19zaGlmdF9yaWdodChzdHJ1Y3QgY3B1bWFzayAqZHN0cCwKICAgICAgICAgICBjb25z
dCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCwgaW50IG4pCnsKIGJpdG1hcF9zaGlmdF9yaWdodCgoKGRz
dHApLT5iaXRzKSwgKChzcmNwKS0+Yml0cyksIG4sCiAgICAgICAgICAgICgodW5zaWduZWQgaW50
KTgpKTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX3NoaWZ0X2xlZnQoc3RydWN0IGNwdW1hc2sgKmRz
dHAsCiAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCwgaW50IG4pCnsKIGJpdG1h
cF9zaGlmdF9sZWZ0KCgoZHN0cCktPmJpdHMpLCAoKHNyY3ApLT5iaXRzKSwgbiwKICAgICAgICAg
ICAoKHVuc2lnbmVkIGludCk4KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjcHVtYXNrX2NvcHkoc3RydWN0IGNw
dW1hc2sgKmRzdHAsCiAgICBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjcCkKewogYml0bWFwX2Nv
cHkoKChkc3RwKS0+Yml0cyksICgoc3JjcCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0K
IyA2MzYgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBjcHVtYXNrX3BhcnNlX3VzZXIo
Y29uc3QgY2hhciAqYnVmLCBpbnQgbGVuLAogICAgICAgICBzdHJ1Y3QgY3B1bWFzayAqZHN0cCkK
ewogcmV0dXJuIGJpdG1hcF9wYXJzZV91c2VyKGJ1ZiwgbGVuLCAoKGRzdHApLT5iaXRzKSwgKCh1
bnNpZ25lZCBpbnQpOCkpOwp9CiMgNjUwICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
Y3B1bWFza19wYXJzZWxpc3RfdXNlcihjb25zdCBjaGFyICpidWYsIGludCBsZW4sCiAgICAgICAg
IHN0cnVjdCBjcHVtYXNrICpkc3RwKQp7CiByZXR1cm4gYml0bWFwX3BhcnNlbGlzdF91c2VyKGJ1
ZiwgbGVuLCAoKGRzdHApLT5iaXRzKSwKICAgICAgICAgKCh1bnNpZ25lZCBpbnQpOCkpOwp9CiMg
NjY0ICIuL2luY2x1ZGUvbGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY3B1bWFza19wYXJzZShjb25zdCBj
aGFyICpidWYsIHN0cnVjdCBjcHVtYXNrICpkc3RwKQp7CiByZXR1cm4gYml0bWFwX3BhcnNlKGJ1
ZiwgKH4wVSksICgoZHN0cCktPmJpdHMpLCAoKHVuc2lnbmVkIGludCk4KSk7Cn0KIyA2NzYgIi4v
aW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBjcHVsaXN0X3BhcnNlKGNvbnN0IGNoYXIgKmJ1
Ziwgc3RydWN0IGNwdW1hc2sgKmRzdHApCnsKIHJldHVybiBiaXRtYXBfcGFyc2VsaXN0KGJ1Ziwg
KChkc3RwKS0+Yml0cyksICgodW5zaWduZWQgaW50KTgpKTsKfQoKCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNw
dW1hc2tfc2l6ZSh2b2lkKQp7CiByZXR1cm4gKCgoKCh1bnNpZ25lZCBpbnQpOCkpICsgKChzaXpl
b2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKSAqIHNpemVvZihsb25n
KTsKfQojIDc0OSAiLi9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCIKdHlwZWRlZiBzdHJ1Y3QgY3B1
bWFzayBjcHVtYXNrX3Zhcl90WzFdOwoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBhbGxvY19jcHVtYXNrX3ZhcihjcHVtYXNr
X3Zhcl90ICptYXNrLCBnZnBfdCBmbGFncykKewogcmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYWxsb2Nf
Y3B1bWFza192YXJfbm9kZShjcHVtYXNrX3Zhcl90ICptYXNrLCBnZnBfdCBmbGFncywKICAgICAg
IGludCBub2RlKQp7CiByZXR1cm4gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB6YWxsb2NfY3B1bWFza192YXIoY3B1
bWFza192YXJfdCAqbWFzaywgZ2ZwX3QgZmxhZ3MpCnsKIGNwdW1hc2tfY2xlYXIoKm1hc2spOwog
cmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgemFsbG9jX2NwdW1hc2tfdmFyX25vZGUoY3B1bWFza192YXJf
dCAqbWFzaywgZ2ZwX3QgZmxhZ3MsCiAgICAgICBpbnQgbm9kZSkKewogY3B1bWFza19jbGVhcigq
bWFzayk7CiByZXR1cm4gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhbGxvY19ib290bWVtX2NwdW1hc2tfdmFyKGNw
dW1hc2tfdmFyX3QgKm1hc2spCnsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBmcmVlX2NwdW1hc2tfdmFyKGNwdW1hc2tfdmFy
X3QgbWFzaykKewp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGZyZWVfYm9vdG1lbV9jcHVtYXNrX3ZhcihjcHVtYXNrX3Zhcl90
IG1hc2spCnsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBjcHVtYXNrX2F2YWlsYWJsZShjcHVtYXNrX3Zhcl90IG1hc2spCnsK
IHJldHVybiB0cnVlOwp9CgoKCgpleHRlcm4gY29uc3QgdW5zaWduZWQgbG9uZyBjcHVfYWxsX2Jp
dHNbKCgoOCkgKyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4
KSkpXTsKIyA4MDkgIi4vaW5jbHVkZS9saW51eC9jcHVtYXNrLmgiCnZvaWQgaW5pdF9jcHVfcHJl
c2VudChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKdm9pZCBpbml0X2NwdV9wb3NzaWJsZShj
b25zdCBzdHJ1Y3QgY3B1bWFzayAqc3JjKTsKdm9pZCBpbml0X2NwdV9vbmxpbmUoY29uc3Qgc3Ry
dWN0IGNwdW1hc2sgKnNyYyk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlc2V0X2NwdV9wb3NzaWJsZV9tYXNrKHZvaWQpCnsK
IGJpdG1hcF96ZXJvKCgoJl9fY3B1X3Bvc3NpYmxlX21hc2spLT5iaXRzKSwgOCk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQK
c2V0X2NwdV9wb3NzaWJsZSh1bnNpZ25lZCBpbnQgY3B1LCBib29sIHBvc3NpYmxlKQp7CiBpZiAo
cG9zc2libGUpCiAgY3B1bWFza19zZXRfY3B1KGNwdSwgJl9fY3B1X3Bvc3NpYmxlX21hc2spOwog
ZWxzZQogIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3Bvc3NpYmxlX21hc2spOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkCnNldF9jcHVfcHJlc2VudCh1bnNpZ25lZCBpbnQgY3B1LCBib29sIHByZXNlbnQpCnsKIGlm
IChwcmVzZW50KQogIGNwdW1hc2tfc2V0X2NwdShjcHUsICZfX2NwdV9wcmVzZW50X21hc2spOwog
ZWxzZQogIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X3ByZXNlbnRfbWFzayk7Cn0KCnZv
aWQgc2V0X2NwdV9vbmxpbmUodW5zaWduZWQgaW50IGNwdSwgYm9vbCBvbmxpbmUpOwoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApz
ZXRfY3B1X2FjdGl2ZSh1bnNpZ25lZCBpbnQgY3B1LCBib29sIGFjdGl2ZSkKewogaWYgKGFjdGl2
ZSkKICBjcHVtYXNrX3NldF9jcHUoY3B1LCAmX19jcHVfYWN0aXZlX21hc2spOwogZWxzZQogIGNw
dW1hc2tfY2xlYXJfY3B1KGNwdSwgJl9fY3B1X2FjdGl2ZV9tYXNrKTsKfQojIDg2MiAiLi9pbmNs
dWRlL2xpbnV4L2NwdW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fY2hlY2tfaXNfYml0bWFwKGNvbnN0IHVuc2lnbmVk
IGxvbmcgKmJpdG1hcCkKewogcmV0dXJuIDE7Cn0KIyA4NzQgIi4vaW5jbHVkZS9saW51eC9jcHVt
YXNrLmgiCmV4dGVybiBjb25zdCB1bnNpZ25lZCBsb25nCiBjcHVfYml0X2JpdG1hcFs2NCArMV1b
KCgoOCkgKyAoKHNpemVvZihsb25nKSAqIDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkp
XTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpnZXRfY3B1X21hc2sodW5zaWduZWQgaW50IGNwdSkK
ewogY29uc3QgdW5zaWduZWQgbG9uZyAqcCA9IGNwdV9iaXRfYml0bWFwWzEgKyBjcHUgJSA2NF07
CiBwIC09IGNwdSAvIDY0OwogcmV0dXJuICgoc3RydWN0IGNwdW1hc2sgKikoMSA/IChwKSA6ICh2
b2lkICopc2l6ZW9mKF9fY2hlY2tfaXNfYml0bWFwKHApKSkpOwp9CiMgOTExICIuL2luY2x1ZGUv
bGludXgvY3B1bWFzay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzc2l6ZV90CmNwdW1hcF9wcmludF90b19wYWdlYnVmKGJvb2wgbGlz
dCwgY2hhciAqYnVmLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaykKewogcmV0dXJuIGJpdG1h
cF9wcmludF90b19wYWdlYnVmKGxpc3QsIGJ1ZiwgKChtYXNrKS0+Yml0cyksCiAgICAgICAgICBu
cl9jcHVfaWRzKTsKfQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1bWFzay5oIiAyCgpl
eHRlcm4gY3B1bWFza192YXJfdCBjcHVfY2FsbGluX21hc2s7CmV4dGVybiBjcHVtYXNrX3Zhcl90
IGNwdV9jYWxsb3V0X21hc2s7CmV4dGVybiBjcHVtYXNrX3Zhcl90IGNwdV9pbml0aWFsaXplZF9t
YXNrOwpleHRlcm4gY3B1bWFza192YXJfdCBjcHVfc2libGluZ19zZXR1cF9tYXNrOwoKZXh0ZXJu
IHZvaWQgc2V0dXBfY3B1X2xvY2FsX21hc2tzKHZvaWQpOwojIDEyICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL21zci5oIiAyCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL21zci5oIiAx
CiMgMTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiIDIKCnN0cnVjdCBtc3IgewogdW5p
b24gewogIHN0cnVjdCB7CiAgIHUzMiBsOwogICB1MzIgaDsKICB9OwogIHU2NCBxOwogfTsKfTsK
CnN0cnVjdCBtc3JfaW5mbyB7CiB1MzIgbXNyX25vOwogc3RydWN0IG1zciByZWc7CiBzdHJ1Y3Qg
bXNyICptc3JzOwogaW50IGVycjsKfTsKCnN0cnVjdCBtc3JfcmVnc19pbmZvIHsKIHUzMiAqcmVn
czsKIGludCBlcnI7Cn07CgpzdHJ1Y3Qgc2F2ZWRfbXNyIHsKIGJvb2wgdmFsaWQ7CiBzdHJ1Y3Qg
bXNyX2luZm8gaW5mbzsKfTsKCnN0cnVjdCBzYXZlZF9tc3JzIHsKIHVuc2lnbmVkIGludCBudW07
CiBzdHJ1Y3Qgc2F2ZWRfbXNyICphcnJheTsKfTsKIyA2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9tc3IuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC1kZWZzLmgiIDEKIyAxMiAi
Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQtZGVmcy5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9z
dGF0aWNfa2V5LmgiIDEKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQtZGVmcy5oIiAy
CgpzdHJ1Y3QgdHJhY2VfcHJpbnRfZmxhZ3MgewogdW5zaWduZWQgbG9uZyBtYXNrOwogY29uc3Qg
Y2hhciAqbmFtZTsKfTsKCnN0cnVjdCB0cmFjZV9wcmludF9mbGFnc191NjQgewogdW5zaWduZWQg
bG9uZyBsb25nIG1hc2s7CiBjb25zdCBjaGFyICpuYW1lOwp9OwoKc3RydWN0IHRyYWNlcG9pbnRf
ZnVuYyB7CiB2b2lkICpmdW5jOwogdm9pZCAqZGF0YTsKIGludCBwcmlvOwp9OwoKc3RydWN0IHRy
YWNlcG9pbnQgewogY29uc3QgY2hhciAqbmFtZTsKIHN0cnVjdCBzdGF0aWNfa2V5IGtleTsKIGlu
dCAoKnJlZ2Z1bmMpKHZvaWQpOwogdm9pZCAoKnVucmVnZnVuYykodm9pZCk7CiBzdHJ1Y3QgdHJh
Y2Vwb2ludF9mdW5jICpmdW5jczsKfTsKCgp0eXBlZGVmIGNvbnN0IGludCB0cmFjZXBvaW50X3B0
cl90OwoKCgoKc3RydWN0IGJwZl9yYXdfZXZlbnRfbWFwIHsKIHN0cnVjdCB0cmFjZXBvaW50ICp0
cDsKIHZvaWQgKmJwZl9mdW5jOwogdTMyIG51bV9hcmdzOwogdTMyIHdyaXRhYmxlX3NpemU7Cn0g
X19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSk7CiMgNjkgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vbXNyLmgiIDIKCmV4dGVybiBzdHJ1Y3QgdHJhY2Vwb2ludCBfX3RyYWNlcG9pbnRfcmVh
ZF9tc3I7CmV4dGVybiBzdHJ1Y3QgdHJhY2Vwb2ludCBfX3RyYWNlcG9pbnRfd3JpdGVfbXNyOwpl
eHRlcm4gc3RydWN0IHRyYWNlcG9pbnQgX190cmFjZXBvaW50X3JkcG1jOwoKZXh0ZXJuIHZvaWQg
ZG9fdHJhY2Vfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwsIGludCBmYWlsZWQp
OwpleHRlcm4gdm9pZCBkb190cmFjZV9yZWFkX21zcih1bnNpZ25lZCBpbnQgbXNyLCB1NjQgdmFs
LCBpbnQgZmFpbGVkKTsKZXh0ZXJuIHZvaWQgZG9fdHJhY2VfcmRwbWModW5zaWduZWQgaW50IG1z
ciwgdTY0IHZhbCwgaW50IGZhaWxlZCk7CiMgOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNy
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19yZG1zcih1bnNpZ25lZCBpbnQgbXNyKQp7CiB1bnNpZ25lZCBsb25nIGxvdywgaGln
aDsKCiBhc20gdm9sYXRpbGUoIjE6IHJkbXNyXG4iCiAgICAgICAiMjpcbiIKICAgICAgICIgLnB1
c2hzZWN0aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcg
KCIgIjFiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJl
eF9oYW5kbGVyX3JkbXNyX3Vuc2FmZSIgIikgLSAuXG4iICIgLnBvcHNlY3Rpb25cbiIKICAgICAg
IDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkgOiAiYyIgKG1zcikpOwoKIHJldHVybiAoKGxvdykg
fCAoaGlnaCkgPDwgMzIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX3dybXNyKHVuc2lnbmVkIGludCBtc3IsIHUzMiBsb3csIHUzMiBoaWdoKQp7CiBh
c20gdm9sYXRpbGUoIjE6IHdybXNyXG4iCiAgICAgICAiMjpcbiIKICAgICAgICIgLnB1c2hzZWN0
aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjFi
IiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiMmIiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5k
bGVyX3dybXNyX3Vuc2FmZSIgIikgLSAuXG4iICIgLnBvcHNlY3Rpb25cbiIKICAgICAgIDogOiAi
YyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpIDogIm1lbW9yeSIpOwp9CiMgMTI1ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRf
bXNyKHVuc2lnbmVkIGludCBtc3IpCnsKIHVuc2lnbmVkIGxvbmcgbG9uZyB2YWw7CgogdmFsID0g
X19yZG1zcihtc3IpOwoKIGlmIChzdGF0aWNfa2V5X2ZhbHNlKCYoX190cmFjZXBvaW50X3JlYWRf
bXNyKS5rZXkpKQogIGRvX3RyYWNlX3JlYWRfbXNyKG1zciwgdmFsLCAwKTsKCiByZXR1cm4gdmFs
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3JlYWRfbXNyX3NhZmUodW5zaWduZWQgaW50
IG1zciwKICAgICAgICAgICAgaW50ICplcnIpCnsKIHVuc2lnbmVkIGxvbmcgbG93LCBoaWdoOwoK
IGFzbSB2b2xhdGlsZSgiMjogcmRtc3IgOyB4b3IgJVtlcnJdLCVbZXJyXVxuIgogICAgICAgIjE6
XG5cdCIKICAgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG5cdCIKICAgICAgICIzOiBtb3Yg
JVtmYXVsdF0sJVtlcnJdXG5cdCIKICAgICAgICJ4b3JsICUlZWF4LCAlJWVheFxuXHQiCiAgICAg
ICAieG9ybCAlJWVkeCwgJSVlZHhcblx0IgogICAgICAgImptcCAxYlxuXHQiCiAgICAgICAiLnBy
ZXZpb3VzXG5cdCIKICAgICAgICIgLnB1c2hzZWN0aW9uIFwiX19leF90YWJsZVwiLFwiYVwiXG4i
ICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjJiIiAiKSAtIC5cbiIgIiAubG9uZyAoIiAiM2Ii
ICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2RlZmF1bHQiICIpIC0gLlxuIiAiIC5w
b3BzZWN0aW9uXG4iCiAgICAgICA6IFtlcnJdICI9ciIgKCplcnIpLCAiPWEiIChsb3cpLCAiPWQi
IChoaWdoKQogICAgICAgOiAiYyIgKG1zciksIFtmYXVsdF0gImkiICgtNSkpOwogaWYgKHN0YXRp
Y19rZXlfZmFsc2UoJihfX3RyYWNlcG9pbnRfcmVhZF9tc3IpLmtleSkpCiAgZG9fdHJhY2VfcmVh
ZF9tc3IobXNyLCAoKGxvdykgfCAoaGlnaCkgPDwgMzIpLCAqZXJyKTsKIHJldHVybiAoKGxvdykg
fCAoaGlnaCkgPDwgMzIpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkKbmF0aXZlX3dyaXRlX21zcih1bnNpZ25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIg
aGlnaCkKewogX193cm1zcihtc3IsIGxvdywgaGlnaCk7CgogaWYgKHN0YXRpY19rZXlfZmFsc2Uo
JihfX3RyYWNlcG9pbnRfd3JpdGVfbXNyKS5rZXkpKQogIGRvX3RyYWNlX3dyaXRlX21zcihtc3Is
ICgodTY0KWhpZ2ggPDwgMzIgfCBsb3cpLCAwKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkKbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2lnbmVkIGludCBt
c3IsIHUzMiBsb3csIHUzMiBoaWdoKQp7CiBpbnQgZXJyOwoKIGFzbSB2b2xhdGlsZSgiMjogd3Jt
c3IgOyB4b3IgJVtlcnJdLCVbZXJyXVxuIgogICAgICAgIjE6XG5cdCIKICAgICAgICIuc2VjdGlv
biAuZml4dXAsXCJheFwiXG5cdCIKICAgICAgICIzOiAgbW92ICVbZmF1bHRdLCVbZXJyXSA7IGpt
cCAxYlxuXHQiCiAgICAgICAiLnByZXZpb3VzXG5cdCIKICAgICAgICIgLnB1c2hzZWN0aW9uIFwi
X19leF90YWJsZVwiLFwiYVwiXG4iICIgLmJhbGlnbiA0XG4iICIgLmxvbmcgKCIgIjJiIiAiKSAt
IC5cbiIgIiAubG9uZyAoIiAiM2IiICIpIC0gLlxuIiAiIC5sb25nICgiICJleF9oYW5kbGVyX2Rl
ZmF1bHQiICIpIC0gLlxuIiAiIC5wb3BzZWN0aW9uXG4iCiAgICAgICA6IFtlcnJdICI9YSIgKGVy
cikKICAgICAgIDogImMiIChtc3IpLCAiMCIgKGxvdyksICJkIiAoaGlnaCksCiAgICAgICAgIFtm
YXVsdF0gImkiICgtNSkKICAgICAgIDogIm1lbW9yeSIpOwogaWYgKHN0YXRpY19rZXlfZmFsc2Uo
JihfX3RyYWNlcG9pbnRfd3JpdGVfbXNyKS5rZXkpKQogIGRvX3RyYWNlX3dyaXRlX21zcihtc3Is
ICgodTY0KWhpZ2ggPDwgMzIgfCBsb3cpLCBlcnIpOwogcmV0dXJuIGVycjsKfQoKZXh0ZXJuIGlu
dCByZG1zcl9zYWZlX3JlZ3ModTMyIHJlZ3NbOF0pOwpleHRlcm4gaW50IHdybXNyX3NhZmVfcmVn
cyh1MzIgcmVnc1s4XSk7CiMgMjAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgbG9uZyByZHRzYyh2
b2lkKQp7CiB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKCiBhc20gdm9sYXRpbGUoInJkdHNjIiA6
ICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpKTsKCiByZXR1cm4gKChsb3cpIHwgKGhpZ2gpIDw8IDMy
KTsKfQojIDIxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB1bnNpZ25lZCBsb25nIGxvbmcgcmR0c2Nfb3JkZXJlZCh2b2lk
KQp7CiB1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKIyAyMzYgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXNyLmgiCiBhc20gdm9sYXRpbGUoIiMgQUxUOiBvbGRpbnN0cjJcbiIgIjY2MTpcblx0IiAi
cmR0c2MiICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nMlxuIiAiLnNraXAgLSgoIiAiKCgiICI2
NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4gKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAi
KSBeICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSAmIC0oLSgoIiAiNjY1IiIxIiJmLSIi
NjY0IiIxIiJmIiAiKSA8ICgiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICIpKSkpKSIgIiAtICgi
ICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJm
IiAiKSBeICgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgXiAoIiAiNjY1IiIyIiJmLSIi
NjY0IiIyIiJmIiAiKSkgJiAtKC0oKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIikgPCAoIiAi
NjY1IiIyIiJmLSIiNjY0IiIyIiJmIiAiKSkpKSkiICIgLSAoIiAiNjYyYi02NjFiIiAiKSksIDB4
OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQg
IiAiKCAzKjMyKzE4KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUg
IiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJc
biIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMiIiZiAtIC5cbiIgIiAud29y
ZCAiICIoIDEqMzIrMjcpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0
ZSAiICI2NjUiIjIiImYtIiI2NjQiIjIiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIg
IlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFjZW1lbnQs
IFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIiOlxuXHQi
ICJsZmVuY2U7IHJkdHNjIiAiXG4iICI2NjUiIjEiICI6XG4iICIjIEFMVDogcmVwbGFjZW1lbnQg
IiAiMiIgIlxuIiAiNjY0IiIyIiI6XG5cdCIgInJkdHNjcCIgIlxuIiAiNjY1IiIyIiAiOlxuIiAi
LnBvcHNlY3Rpb25cbiIKCgogICA6ICI9YSIgKGxvdyksICI9ZCIgKGhpZ2gpCgogICA6OiAiZWN4
Iik7CgogcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbG9u
ZyBuYXRpdmVfcmVhZF9wbWMoaW50IGNvdW50ZXIpCnsKIHVuc2lnbmVkIGxvbmcgbG93LCBoaWdo
OwoKIGFzbSB2b2xhdGlsZSgicmRwbWMiIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCkgOiAiYyIg
KGNvdW50ZXIpKTsKIGlmIChzdGF0aWNfa2V5X2ZhbHNlKCYoX190cmFjZXBvaW50X3JkcG1jKS5r
ZXkpKQogIGRvX3RyYWNlX3JkcG1jKGNvdW50ZXIsICgobG93KSB8IChoaWdoKSA8PCAzMiksIDAp
OwogcmV0dXJuICgobG93KSB8IChoaWdoKSA8PCAzMik7Cn0KCgoKCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2Vycm5vLmgiIDEKCgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZXJybm8uaCIgMQoj
IDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vZXJybm8uaCIgMQojIDIg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2Vycm5vLmgiIDIKIyA2ICIuL2luY2x1ZGUvbGludXgvZXJy
bm8uaCIgMgojIDI2MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIgMgojIDI3MyAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cm1zcih1bnNpZ25lZCBpbnQgbXNyLCB1
MzIgbG93LCB1MzIgaGlnaCkKewogbmF0aXZlX3dyaXRlX21zcihtc3IsIGxvdywgaGlnaCk7Cn0K
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgd3Jtc3JsKHVuc2lnbmVkIGludCBtc3IsIHU2NCB2YWwpCnsKIG5hdGl2ZV93cml0
ZV9tc3IobXNyLCAodTMyKSh2YWwgJiAweGZmZmZmZmZmVUxMKSwgKHUzMikodmFsID4+IDMyKSk7
Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgd3Jtc3Jfc2FmZSh1bnNpZ25lZCBpbnQgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkK
ewogcmV0dXJuIG5hdGl2ZV93cml0ZV9tc3Jfc2FmZShtc3IsIGxvdywgaGlnaCk7Cn0KIyAzMDIg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByZG1zcmxfc2FmZSh1bnNpZ25lZCBp
bnQgbXNyLCB1bnNpZ25lZCBsb25nIGxvbmcgKnApCnsKIGludCBlcnI7CgogKnAgPSBuYXRpdmVf
cmVhZF9tc3Jfc2FmZShtc3IsICZlcnIpOwogcmV0dXJuIGVycjsKfQojIDMyNCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9tc3IuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHdybXNybF9zYWZlKHUzMiBtc3IsIHU2NCB2YWwpCnsK
IHJldHVybiB3cm1zcl9zYWZlKG1zciwgKHUzMil2YWwsICh1MzIpKHZhbCA+PiAzMikpOwp9CgoK
CgoKc3RydWN0IG1zciAqbXNyc19hbGxvYyh2b2lkKTsKdm9pZCBtc3JzX2ZyZWUoc3RydWN0IG1z
ciAqbXNycyk7CmludCBtc3Jfc2V0X2JpdCh1MzIgbXNyLCB1OCBiaXQpOwppbnQgbXNyX2NsZWFy
X2JpdCh1MzIgbXNyLCB1OCBiaXQpOwoKCmludCByZG1zcl9vbl9jcHUodW5zaWduZWQgaW50IGNw
dSwgdTMyIG1zcl9ubywgdTMyICpsLCB1MzIgKmgpOwppbnQgd3Jtc3Jfb25fY3B1KHVuc2lnbmVk
IGludCBjcHUsIHUzMiBtc3Jfbm8sIHUzMiBsLCB1MzIgaCk7CmludCByZG1zcmxfb25fY3B1KHVu
c2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHU2NCAqcSk7CmludCB3cm1zcmxfb25fY3B1KHVu
c2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHU2NCBxKTsKdm9pZCByZG1zcl9vbl9jcHVzKGNv
bnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCB1MzIgbXNyX25vLCBzdHJ1Y3QgbXNyICptc3JzKTsK
dm9pZCB3cm1zcl9vbl9jcHVzKGNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrLCB1MzIgbXNyX25v
LCBzdHJ1Y3QgbXNyICptc3JzKTsKaW50IHJkbXNyX3NhZmVfb25fY3B1KHVuc2lnbmVkIGludCBj
cHUsIHUzMiBtc3Jfbm8sIHUzMiAqbCwgdTMyICpoKTsKaW50IHdybXNyX3NhZmVfb25fY3B1KHVu
c2lnbmVkIGludCBjcHUsIHUzMiBtc3Jfbm8sIHUzMiBsLCB1MzIgaCk7CmludCByZG1zcmxfc2Fm
ZV9vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgdTMyIG1zcl9ubywgdTY0ICpxKTsKaW50IHdybXNy
bF9zYWZlX29uX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCB1MzIgbXNyX25vLCB1NjQgcSk7CmludCBy
ZG1zcl9zYWZlX3JlZ3Nfb25fY3B1KHVuc2lnbmVkIGludCBjcHUsIHUzMiByZWdzWzhdKTsKaW50
IHdybXNyX3NhZmVfcmVnc19vbl9jcHUodW5zaWduZWQgaW50IGNwdSwgdTMyIHJlZ3NbOF0pOwoj
IDIzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL3NwZWNpYWxfaW5zbnMuaCIgMQojIDE5ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NwZWNpYWxfaW5zbnMuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19mb3JjZV9vcmRl
cjsKCnZvaWQgbmF0aXZlX3dyaXRlX2NyMCh1bnNpZ25lZCBsb25nIHZhbCk7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIG5hdGl2ZV9yZWFkX2NyMCh2b2lkKQp7CiB1bnNpZ25lZCBsb25nIHZhbDsKIGFzbSB2b2xh
dGlsZSgibW92ICUlY3IwLCUwXG5cdCIgOiAiPXIiICh2YWwpLCAiPW0iIChfX2ZvcmNlX29yZGVy
KSk7CiByZXR1cm4gdmFsOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9yZWFkX2NyMih2b2lkKQp7
CiB1bnNpZ25lZCBsb25nIHZhbDsKIGFzbSB2b2xhdGlsZSgibW92ICUlY3IyLCUwXG5cdCIgOiAi
PXIiICh2YWwpLCAiPW0iIChfX2ZvcmNlX29yZGVyKSk7CiByZXR1cm4gdmFsOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5h
dGl2ZV93cml0ZV9jcjIodW5zaWduZWQgbG9uZyB2YWwpCnsKIGFzbSB2b2xhdGlsZSgibW92ICUw
LCUlY3IyIjogOiAiciIgKHZhbCksICJtIiAoX19mb3JjZV9vcmRlcikpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBs
b25nIF9fbmF0aXZlX3JlYWRfY3IzKHZvaWQpCnsKIHVuc2lnbmVkIGxvbmcgdmFsOwogYXNtIHZv
bGF0aWxlKCJtb3YgJSVjcjMsJTBcblx0IiA6ICI9ciIgKHZhbCksICI9bSIgKF9fZm9yY2Vfb3Jk
ZXIpKTsKIHJldHVybiB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbmF0aXZlX3dyaXRlX2NyMyh1bnNpZ25lZCBsb25n
IHZhbCkKewogYXNtIHZvbGF0aWxlKCJtb3YgJTAsJSVjcjMiOiA6ICJyIiAodmFsKSwgIm0iIChf
X2ZvcmNlX29yZGVyKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbmF0aXZlX3JlYWRfY3I0KHZvaWQpCnsK
IHVuc2lnbmVkIGxvbmcgdmFsOwojIDY5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NwZWNpYWxf
aW5zbnMuaCIKIGFzbSB2b2xhdGlsZSgibW92ICUlY3I0LCUwXG5cdCIgOiAiPXIiICh2YWwpLCAi
PW0iIChfX2ZvcmNlX29yZGVyKSk7CgogcmV0dXJuIHZhbDsKfQoKdm9pZCBuYXRpdmVfd3JpdGVf
Y3I0KHVuc2lnbmVkIGxvbmcgdmFsKTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgcmRwa3J1KHZvaWQpCnsKIHUzMiBlY3ggPSAw
OwogdTMyIGVkeCwgcGtydTsKCgoKCgogYXNtIHZvbGF0aWxlKCIuYnl0ZSAweDBmLDB4MDEsMHhl
ZVxuXHQiCiAgICAgICA6ICI9YSIgKHBrcnUpLCAiPWQiIChlZHgpCiAgICAgICA6ICJjIiAoZWN4
KSk7CiByZXR1cm4gcGtydTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cnBrcnUodTMyIHBrcnUpCnsKIHUzMiBlY3ggPSAw
LCBlZHggPSAwOwoKCgoKCiBhc20gdm9sYXRpbGUoIi5ieXRlIDB4MGYsMHgwMSwweGVmXG5cdCIK
ICAgICAgIDogOiAiYSIgKHBrcnUpLCAiYyIoZWN4KSwgImQiKGVkeCkpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fd3Jp
dGVfcGtydSh1MzIgcGtydSkKewoKCgoKIGlmIChwa3J1ID09IHJkcGtydSgpKQogIHJldHVybjsK
CiB3cnBrcnUocGtydSk7Cn0KIyAxMjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BlY2lhbF9p
bnNucy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIG5hdGl2ZV93YmludmQodm9pZCkKewogYXNtIHZvbGF0aWxlKCJ3YmludmQi
OiA6IDoibWVtb3J5Iik7Cn0KCmV4dGVybiB2b2lkIG5hdGl2ZV9sb2FkX2dzX2luZGV4KHVuc2ln
bmVkKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgX19yZWFkX2NyNCh2b2lkKQp7CiByZXR1cm4gbmF0aXZlX3Jl
YWRfY3I0KCk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHJlYWRfY3IwKHZvaWQpCnsKIHJldHVybiBu
YXRpdmVfcmVhZF9jcjAoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9jcjAodW5zaWduZWQgbG9uZyB4KQp7CiBu
YXRpdmVfd3JpdGVfY3IwKHgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIHJlYWRfY3IyKHZvaWQpCnsKIHJl
dHVybiBuYXRpdmVfcmVhZF9jcjIoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9jcjIodW5zaWduZWQgbG9uZyB4
KQp7CiBuYXRpdmVfd3JpdGVfY3IyKHgpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3JlYWRfY3Iz
KHZvaWQpCnsKIHJldHVybiBfX25hdGl2ZV9yZWFkX2NyMygpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX2NyMyh1
bnNpZ25lZCBsb25nIHgpCnsKIG5hdGl2ZV93cml0ZV9jcjMoeCk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX193cml0ZV9j
cjQodW5zaWduZWQgbG9uZyB4KQp7CiBuYXRpdmVfd3JpdGVfY3I0KHgpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdiaW52
ZCh2b2lkKQp7CiBuYXRpdmVfd2JpbnZkKCk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2FkX2dzX2luZGV4KHVuc2ln
bmVkIHNlbGVjdG9yKQp7CiBuYXRpdmVfbG9hZF9nc19pbmRleChzZWxlY3Rvcik7Cn0KCgoKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGNsZmx1c2godm9sYXRpbGUgdm9pZCAqX19wKQp7CiBhc20gdm9sYXRpbGUoImNsZmx1c2gg
JTAiIDogIittIiAoKih2b2xhdGlsZSBjaGFyICopX19wKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY2xmbHVzaG9wdCh2
b2xhdGlsZSB2b2lkICpfX3ApCnsKIGFzbSBfX2lubGluZSB2b2xhdGlsZSAoIiMgQUxUOiBvbGRu
c3RyXG4iICI2NjE6XG5cdCIgIi5ieXRlICIgIjB4M2UiICI7IGNsZmx1c2ggJVAwIiAiXG42NjI6
XG4iICIjIEFMVDogcGFkZGluZ1xuIiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIi
ZiIgIiktKCIgIjY2MmItNjYxYiIgIikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIi
MSIiZiIgIiktKCIgIjY2MmItNjYxYiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2Vj
dGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9u
ZyAiICI2NjQiIjEiImYgLSAuXG4iICIgLndvcmQgIiAiKCA5KjMyKzIzKSIgIlxuIiAiIC5ieXRl
ICIgIjY2MyIiYi02NjFiIiAiXG4iICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAi
XG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNl
Y3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVu
dCAiICIxIiAiXG4iICI2NjQiIjEiIjpcblx0IiAiLmJ5dGUgMHg2NjsgY2xmbHVzaCAlUDAiICJc
biIgIjY2NSIiMSIgIjpcbiIgIi5wb3BzZWN0aW9uXG4iIDogIittIiAoKih2b2xhdGlsZSBjaGFy
ICopX19wKSA6ICJpIiAoMCkpCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBjbHdiKHZvbGF0aWxlIHZvaWQgKl9fcCkKewogdm9sYXRpbGUg
c3RydWN0IHsgY2hhciB4WzY0XTsgfSAqcCA9IF9fcDsKCiBhc20gdm9sYXRpbGUoIiMgQUxUOiBv
bGRpbnN0cjJcbiIgIjY2MTpcblx0IiAiLmJ5dGUgIiAiMHgzZSIgIjsgY2xmbHVzaCAoJVtwYXhd
KSIgIlxuNjYyOlxuIiAiIyBBTFQ6IHBhZGRpbmcyXG4iICIuc2tpcCAtKCgiICIoKCIgIjY2NSIi
MSIiZi0iIjY2NCIiMSIiZiIgIikgXiAoKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIpIF4g
KCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpICYgLSgtKCgiICI2NjUiIjEiImYtIiI2NjQi
IjEiImYiICIpIDwgKCIgIjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIikpKSkpIiAiIC0gKCIgIjY2
MmItNjYxYiIgIikpID4gMCkgKiAiICIoIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIp
IF4gKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSBeICgiICI2NjUiIjIiImYtIiI2NjQi
IjIiImYiICIpKSAmIC0oLSgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKSA8ICgiICI2NjUi
IjIiImYtIiI2NjQiIjIiImYiICIpKSkpKSIgIiAtICgiICI2NjJiLTY2MWIiICIpKSwgMHg5MFxu
IiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAu
bG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAud29yZCAiICIo
IDkqMzIrMjMpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIgIiAuYnl0ZSAiICI2
NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYyYiIgIlxuIiAi
IC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAiNjY0IiIyIiJmIC0gLlxuIiAiIC53b3JkICIg
IiggOSozMisyNCkiICJcbiIgIiAuYnl0ZSAiICI2NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIg
IjY2NSIiMiIiZi0iIjY2NCIiMiIiZiIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4i
ICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJh
eFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAiMSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgIi5i
eXRlIDB4NjY7IGNsZmx1c2ggKCVbcGF4XSkiICJcbiIgIjY2NSIiMSIgIjpcbiIgIiMgQUxUOiBy
ZXBsYWNlbWVudCAiICIyIiAiXG4iICI2NjQiIjIiIjpcblx0IiAiLmJ5dGUgMHg2NiwgMHgwZiwg
MHhhZSwgMHgzMCIgIlxuIiAiNjY1IiIyIiAiOlxuIiAiLnBvcHNlY3Rpb25cbiIKCgoKCgogIDog
W3BdICIrbSIgKCpwKQogIDogW3BheF0gImEiIChwKSk7Cn0KIyAyNiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5
cGVzLmgiIDEKIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKc3RydWN0
IGZyZWdzX3N0YXRlIHsKIHUzMiBjd2Q7CiB1MzIgc3dkOwogdTMyIHR3ZDsKIHUzMiBmaXA7CiB1
MzIgZmNzOwogdTMyIGZvbzsKIHUzMiBmb3M7CgoKIHUzMiBzdF9zcGFjZVsyMF07CgoKIHUzMiBz
dGF0dXM7Cn07CgoKCgoKCgpzdHJ1Y3QgZnhyZWdzX3N0YXRlIHsKIHUxNiBjd2Q7CiB1MTYgc3dk
OwogdTE2IHR3ZDsKIHUxNiBmb3A7CiB1bmlvbiB7CiAgc3RydWN0IHsKICAgdTY0IHJpcDsKICAg
dTY0IHJkcDsKICB9OwogIHN0cnVjdCB7CiAgIHUzMiBmaXA7CiAgIHUzMiBmY3M7CiAgIHUzMiBm
b287CiAgIHUzMiBmb3M7CiAgfTsKIH07CiB1MzIgbXhjc3I7CiB1MzIgbXhjc3JfbWFzazsKCgog
dTMyIHN0X3NwYWNlWzMyXTsKCgogdTMyIHhtbV9zcGFjZVs2NF07CgogdTMyIHBhZGRpbmdbMTJd
OwoKIHVuaW9uIHsKICB1MzIgcGFkZGluZzFbMTJdOwogIHUzMiBzd19yZXNlcnZlZFsxMl07CiB9
OwoKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2KSkpOwojIDc5ICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL2ZwdS90eXBlcy5oIgpzdHJ1Y3Qgc3dyZWdzX3N0YXRlIHsKIHUzMiBjd2Q7CiB1MzIg
c3dkOwogdTMyIHR3ZDsKIHUzMiBmaXA7CiB1MzIgZmNzOwogdTMyIGZvbzsKIHUzMiBmb3M7Cgog
dTMyIHN0X3NwYWNlWzIwXTsKIHU4IGZ0b3A7CiB1OCBjaGFuZ2VkOwogdTggbG9va2FoZWFkOwog
dTggbm9fdXBkYXRlOwogdTggcm07CiB1OCBhbGltaXQ7CiBzdHJ1Y3QgbWF0aF9lbXVfaW5mbyAq
aW5mbzsKIHUzMiBlbnRyeV9laXA7Cn07CgoKCgplbnVtIHhmZWF0dXJlIHsKIFhGRUFUVVJFX0ZQ
LAogWEZFQVRVUkVfU1NFLAoKCgoKIFhGRUFUVVJFX1lNTSwKIFhGRUFUVVJFX0JORFJFR1MsCiBY
RkVBVFVSRV9CTkRDU1IsCiBYRkVBVFVSRV9PUE1BU0ssCiBYRkVBVFVSRV9aTU1fSGkyNTYsCiBY
RkVBVFVSRV9IaTE2X1pNTSwKIFhGRUFUVVJFX1BUX1VOSU1QTEVNRU5URURfU09fRkFSLAogWEZF
QVRVUkVfUEtSVSwKCiBYRkVBVFVSRV9NQVgsCn07CiMgMTM5ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2ZwdS90eXBlcy5oIgpzdHJ1Y3QgcmVnXzEyOF9iaXQgewogdTggcmVnYnl0ZXNbMTI4Lzhd
Owp9OwpzdHJ1Y3QgcmVnXzI1Nl9iaXQgewogdTggcmVnYnl0ZXNbMjU2LzhdOwp9OwpzdHJ1Y3Qg
cmVnXzUxMl9iaXQgewogdTggcmVnYnl0ZXNbNTEyLzhdOwp9OwojIDE1OSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9mcHUvdHlwZXMuaCIKc3RydWN0IHltbWhfc3RydWN0IHsKIHN0cnVjdCByZWdf
MTI4X2JpdCBoaV95bW1bMTZdOwp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoKc3Ry
dWN0IG1weF9ibmRyZWcgewogdTY0IGxvd2VyX2JvdW5kOwogdTY0IHVwcGVyX2JvdW5kOwp9IF9f
YXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoKc3RydWN0IG1weF9ibmRyZWdfc3RhdGUgewog
c3RydWN0IG1weF9ibmRyZWcgYm5kcmVnWzRdOwp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18p
KTsKCgoKCgoKc3RydWN0IG1weF9ibmRjc3IgewogdTY0IGJuZGNmZ3U7CiB1NjQgYm5kc3RhdHVz
Owp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoKCnN0cnVjdCBtcHhfYm5kY3NyX3N0
YXRlIHsKIHVuaW9uIHsKICBzdHJ1Y3QgbXB4X2JuZGNzciBibmRjc3I7CiAgdTggcGFkX3RvXzY0
X2J5dGVzWzY0XTsKIH07Cn0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwoKCgoKCgoKc3Ry
dWN0IGF2eF81MTJfb3BtYXNrX3N0YXRlIHsKIHU2NCBvcG1hc2tfcmVnWzhdOwp9IF9fYXR0cmli
dXRlX18oKF9fcGFja2VkX18pKTsKCgoKCgoKc3RydWN0IGF2eF81MTJfem1tX3VwcGVyc19zdGF0
ZSB7CiBzdHJ1Y3QgcmVnXzI1Nl9iaXQgem1tX3VwcGVyWzE2XTsKfSBfX2F0dHJpYnV0ZV9fKChf
X3BhY2tlZF9fKSk7CgoKCgoKc3RydWN0IGF2eF81MTJfaGkxNl9zdGF0ZSB7CiBzdHJ1Y3QgcmVn
XzUxMl9iaXQgaGkxNl96bW1bMTZdOwp9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKCgoK
CgpzdHJ1Y3QgcGtydV9zdGF0ZSB7CiB1MzIgcGtydTsKIHUzMiBwYWQ7Cn0gX19hdHRyaWJ1dGVf
XygoX19wYWNrZWRfXykpOwoKc3RydWN0IHhzdGF0ZV9oZWFkZXIgewogdTY0IHhmZWF0dXJlczsK
IHU2NCB4Y29tcF9idjsKIHU2NCByZXNlcnZlZFs2XTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKIyAyNTMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5cGVzLmgiCnN0cnVjdCB4cmVn
c19zdGF0ZSB7CiBzdHJ1Y3QgZnhyZWdzX3N0YXRlIGkzODc7CiBzdHJ1Y3QgeHN0YXRlX2hlYWRl
ciBoZWFkZXI7CiB1OCBleHRlbmRlZF9zdGF0ZV9hcmVhWzBdOwp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQsIGFsaWduZWQgKDY0KSkpOwojIDI2OCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mcHUv
dHlwZXMuaCIKdW5pb24gZnByZWdzX3N0YXRlIHsKIHN0cnVjdCBmcmVnc19zdGF0ZSBmc2F2ZTsK
IHN0cnVjdCBmeHJlZ3Nfc3RhdGUgZnhzYXZlOwogc3RydWN0IHN3cmVnc19zdGF0ZSBzb2Z0Owog
c3RydWN0IHhyZWdzX3N0YXRlIHhzYXZlOwogdTggX19wYWRkaW5nWygoMVVMKSA8PCAxMildOwp9
OwoKCgoKCgpzdHJ1Y3QgZnB1IHsKIyAyOTQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L3R5
cGVzLmgiCiB1bnNpZ25lZCBpbnQgbGFzdF9jcHU7CgoKCgoKCiB1bnNpZ25lZCBsb25nIGF2eDUx
Ml90aW1lc3RhbXA7CiMgMzEyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZwdS90eXBlcy5oIgog
dW5pb24gZnByZWdzX3N0YXRlIHN0YXRlOwoKCgoKfTsKIyAyNyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW53aW5kX2hp
bnRzLmgiIDEKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL29yY190eXBlcy5oIiAxCiMg
NzMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vb3JjX3R5cGVzLmgiCnN0cnVjdCBvcmNfZW50cnkg
ewogczE2IHNwX29mZnNldDsKIHMxNiBicF9vZmZzZXQ7CiB1bnNpZ25lZCBzcF9yZWc6NDsKIHVu
c2lnbmVkIGJwX3JlZzo0OwogdW5zaWduZWQgdHlwZToyOwogdW5zaWduZWQgZW5kOjE7Cn0gX19h
dHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwoKCgoKCgoKc3RydWN0IHVud2luZF9oaW50IHsKIHUz
MiBpcDsKIHMxNiBzcF9vZmZzZXQ7CiB1OCBzcF9yZWc7CiB1OCB0eXBlOwogdTggZW5kOwp9Owoj
IDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW53aW5kX2hpbnRzLmgiIDIKIyAyOCAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vdm14ZmVhdHVyZXMuaCIgMQojIDI5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oIiAyCgojIDEgIi4vaW5jbHVkZS9saW51eC9wZXJzb25hbGl0eS5oIiAxCgoKCgojIDEgIi4v
aW5jbHVkZS91YXBpL2xpbnV4L3BlcnNvbmFsaXR5LmgiIDEKIyAxMSAiLi9pbmNsdWRlL3VhcGkv
bGludXgvcGVyc29uYWxpdHkuaCIKZW51bSB7CiBVTkFNRTI2ID0gMHgwMDIwMDAwLAogQUREUl9O
T19SQU5ET01JWkUgPSAweDAwNDAwMDAsCiBGRFBJQ19GVU5DUFRSUyA9IDB4MDA4MDAwMCwKCgog
TU1BUF9QQUdFX1pFUk8gPSAweDAxMDAwMDAsCiBBRERSX0NPTVBBVF9MQVlPVVQgPSAweDAyMDAw
MDAsCiBSRUFEX0lNUExJRVNfRVhFQyA9IDB4MDQwMDAwMCwKIEFERFJfTElNSVRfMzJCSVQgPSAw
eDA4MDAwMDAsCiBTSE9SVF9JTk9ERSA9IDB4MTAwMDAwMCwKIFdIT0xFX1NFQ09ORFMgPSAweDIw
MDAwMDAsCiBTVElDS1lfVElNRU9VVFMgPSAweDQwMDAwMDAsCiBBRERSX0xJTUlUXzNHQiA9IDB4
ODAwMDAwMCwKfTsKIyA0MiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGVyc29uYWxpdHkuaCIKZW51
bSB7CiBQRVJfTElOVVggPSAweDAwMDAsCiBQRVJfTElOVVhfMzJCSVQgPSAweDAwMDAgfCBBRERS
X0xJTUlUXzMyQklULAogUEVSX0xJTlVYX0ZEUElDID0gMHgwMDAwIHwgRkRQSUNfRlVOQ1BUUlMs
CiBQRVJfU1ZSNCA9IDB4MDAwMSB8IFNUSUNLWV9USU1FT1VUUyB8IE1NQVBfUEFHRV9aRVJPLAog
UEVSX1NWUjMgPSAweDAwMDIgfCBTVElDS1lfVElNRU9VVFMgfCBTSE9SVF9JTk9ERSwKIFBFUl9T
Q09TVlIzID0gMHgwMDAzIHwgU1RJQ0tZX1RJTUVPVVRTIHwKICAgICAgV0hPTEVfU0VDT05EUyB8
IFNIT1JUX0lOT0RFLAogUEVSX09TUjUgPSAweDAwMDMgfCBTVElDS1lfVElNRU9VVFMgfCBXSE9M
RV9TRUNPTkRTLAogUEVSX1dZU0VWMzg2ID0gMHgwMDA0IHwgU1RJQ0tZX1RJTUVPVVRTIHwgU0hP
UlRfSU5PREUsCiBQRVJfSVNDUjQgPSAweDAwMDUgfCBTVElDS1lfVElNRU9VVFMsCiBQRVJfQlNE
ID0gMHgwMDA2LAogUEVSX1NVTk9TID0gMHgwMDA2IHwgU1RJQ0tZX1RJTUVPVVRTLAogUEVSX1hF
TklYID0gMHgwMDA3IHwgU1RJQ0tZX1RJTUVPVVRTIHwgU0hPUlRfSU5PREUsCiBQRVJfTElOVVgz
MiA9IDB4MDAwOCwKIFBFUl9MSU5VWDMyXzNHQiA9IDB4MDAwOCB8IEFERFJfTElNSVRfM0dCLAog
UEVSX0lSSVgzMiA9IDB4MDAwOSB8IFNUSUNLWV9USU1FT1VUUywKIFBFUl9JUklYTjMyID0gMHgw
MDBhIHwgU1RJQ0tZX1RJTUVPVVRTLAogUEVSX0lSSVg2NCA9IDB4MDAwYiB8IFNUSUNLWV9USU1F
T1VUUywKIFBFUl9SSVNDT1MgPSAweDAwMGMsCiBQRVJfU09MQVJJUyA9IDB4MDAwZCB8IFNUSUNL
WV9USU1FT1VUUywKIFBFUl9VVzcgPSAweDAwMGUgfCBTVElDS1lfVElNRU9VVFMgfCBNTUFQX1BB
R0VfWkVSTywKIFBFUl9PU0Y0ID0gMHgwMDBmLAogUEVSX0hQVVggPSAweDAwMTAsCiBQRVJfTUFT
SyA9IDB4MDBmZiwKfTsKIyA2ICIuL2luY2x1ZGUvbGludXgvcGVyc29uYWxpdHkuaCIgMgojIDMx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKCiMgMSAiLi9pbmNsdWRl
L2xpbnV4L2Vyci5oIiAxCgoKCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaS9hc20vZXJybm8uaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC9lcnIuaCIgMgojIDI0ICIu
L2luY2x1ZGUvbGludXgvZXJyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkgRVJSX1BUUihsb25nIGVycm9yKQp7CiByZXR1cm4gKHZvaWQgKikgZXJyb3I7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGxvbmcgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIFBUUl9FUlIo
IGNvbnN0IHZvaWQgKnB0cikKewogcmV0dXJuIChsb25nKSBwdHI7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIElTX0VSUiggY29uc3Qgdm9pZCAqcHRyKQp7
CiByZXR1cm4gX19idWlsdGluX2V4cGVjdCghISgodW5zaWduZWQgbG9uZykodm9pZCAqKSgodW5z
aWduZWQgbG9uZylwdHIpID49ICh1bnNpZ25lZCBsb25nKS00MDk1KSwgMCk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIElTX0VSUl9PUl9OVUxMKCBjb25z
dCB2b2lkICpwdHIpCnsKIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKCFwdHIpLCAwKSB8fCBf
X2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKSh2b2lkICopKCh1bnNpZ25lZCBsb25n
KXB0cikgPj0gKHVuc2lnbmVkIGxvbmcpLTQwOTUpLCAwKTsKfQojIDUxICIuL2luY2x1ZGUvbGlu
dXgvZXJyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
RVJSX0NBU1QoIGNvbnN0IHZvaWQgKnB0cikKewoKIHJldHVybiAodm9pZCAqKSBwdHI7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgUFRSX0VSUl9PUl9aRVJP
KCBjb25zdCB2b2lkICpwdHIpCnsKIGlmIChJU19FUlIocHRyKSkKICByZXR1cm4gUFRSX0VSUihw
dHIpOwogZWxzZQogIHJldHVybiAwOwp9CiMgMzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJv
Y2Vzc29yLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaCIgMQojIDE2ICIuL2lu
Y2x1ZGUvbGludXgvaXJxZmxhZ3MuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZs
YWdzLmgiIDEKIyAxOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oIgpleHRlcm4g
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBsb25nIG5hdGl2ZV9zYXZlX2ZsKHZvaWQpOwpleHRlcm4gaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5hdGl2ZV9zYXZlX2Zs
KHZvaWQpCnsKIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CgoKCgoKCiBhc20gdm9sYXRpbGUoIiMgX19y
YXdfc2F2ZV9mbGFnc1xuXHQiCiAgICAgICAicHVzaGYgOyBwb3AgJTAiCiAgICAgICA6ICI9cm0i
IChmbGFncykKICAgICAgIDoKICAgICAgIDogIm1lbW9yeSIpOwoKIHJldHVybiBmbGFnczsKfQoK
ZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBuYXRpdmVfcmVzdG9yZV9mbCh1bnNpZ25lZCBsb25nIGZsYWdzKTsKZXh0ZXJuIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVf
cmVzdG9yZV9mbCh1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiBhc20gdm9sYXRpbGUoInB1c2ggJTAg
OyBwb3BmIgogICAgICAgOgogICAgICAgOiJnIiAoZmxhZ3MpCiAgICAgICA6Im1lbW9yeSIsICJj
YyIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIG5hdGl2ZV9pcnFfZGlzYWJsZSh2b2lkKQp7CiBhc20gdm9sYXRpbGUoImNs
aSI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBuYXRpdmVfaXJxX2VuYWJsZSh2b2lkKQp7CiBhc20g
dm9sYXRpbGUoInN0aSI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9u
X18oIi5jcHVpZGxlLnRleHQiKSkpIHZvaWQgbmF0aXZlX3NhZmVfaGFsdCh2b2lkKQp7CiBtZHNf
aWRsZV9jbGVhcl9jcHVfYnVmZmVycygpOwogYXNtIHZvbGF0aWxlKCJzdGk7IGhsdCI6IDogOiJt
ZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5jcHVpZGxlLnRleHQiKSkp
IHZvaWQgbmF0aXZlX2hhbHQodm9pZCkKewogbWRzX2lkbGVfY2xlYXJfY3B1X2J1ZmZlcnMoKTsK
IGFzbSB2b2xhdGlsZSgiaGx0IjogOiA6Im1lbW9yeSIpOwp9CiMgNzcgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vaXJxZmxhZ3MuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHVuc2lnbmVkIGxvbmcgYXJjaF9sb2NhbF9zYXZlX2ZsYWdzKHZvaWQpCnsKIHJldHVybiBu
YXRpdmVfc2F2ZV9mbCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBhcmNoX2xvY2FsX2lycV9yZXN0b3JlKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKIG5h
dGl2ZV9yZXN0b3JlX2ZsKGZsYWdzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSh2b2lkKQp7CiBuYXRpdmVfaXJx
X2Rpc2FibGUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYXJjaF9sb2NhbF9pcnFfZW5hYmxlKHZvaWQpCnsKIG5hdGl2ZV9pcnFfZW5hYmxlKCk7Cn0K
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmNwdWlkbGUudGV4dCIpKSkgdm9pZCBh
cmNoX3NhZmVfaGFsdCh2b2lkKQp7CiBuYXRpdmVfc2FmZV9oYWx0KCk7Cn0KCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX3NlY3Rpb25fXygiLmNwdWlkbGUudGV4dCIpKSkgdm9pZCBoYWx0KHZvaWQpCnsK
IG5hdGl2ZV9oYWx0KCk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGFyY2hfbG9jYWxfaXJxX3NhdmUodm9pZCkKewogdW5zaWduZWQg
bG9uZyBmbGFncyA9IGFyY2hfbG9jYWxfc2F2ZV9mbGFncygpOwogYXJjaF9sb2NhbF9pcnFfZGlz
YWJsZSgpOwogcmV0dXJuIGZsYWdzOwp9CiMgMTYyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ly
cWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCBhcmNoX2lycXNfZGlzYWJsZWRfZmxhZ3ModW5zaWduZWQgbG9uZyBmbGFn
cykKewogcmV0dXJuICEoZmxhZ3MgJiAoKCgxVUwpKSA8PCAoOSkpKTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGFyY2hfaXJx
c19kaXNhYmxlZCh2b2lkKQp7CiB1bnNpZ25lZCBsb25nIGZsYWdzID0gYXJjaF9sb2NhbF9zYXZl
X2ZsYWdzKCk7CgogcmV0dXJuIGFyY2hfaXJxc19kaXNhYmxlZF9mbGFncyhmbGFncyk7Cn0KIyAx
NyAiLi9pbmNsdWRlL2xpbnV4L2lycWZsYWdzLmgiIDIKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2ly
cWZsYWdzLmgiCiAgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB0cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKSB7IH0K
ICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHRyYWNlX3NvZnRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKSB7IH0KICBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxv
Y2tkZXBfaGFyZGlycXNfb24odW5zaWduZWQgbG9uZyBpcCkgeyB9CiAgc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVwX2hh
cmRpcnFzX29mZih1bnNpZ25lZCBsb25nIGlwKSB7IH0KIyAzNiAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIgMgojIDYxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nv
ci5oIgplbnVtIHRsYl9pbmZvcyB7CiBFTlRSSUVTLAogTlJfSU5GTwp9OwoKZXh0ZXJuIHUxNiBf
X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKSB0bGJfbGxp
XzRrW05SX0lORk9dOwpleHRlcm4gdTE2IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0
YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGlfMm1bTlJfSU5GT107CmV4dGVybiB1MTYgX19hdHRy
aWJ1dGVfXygoX19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSkgdGxiX2xsaV80bVtO
Ul9JTkZPXTsKZXh0ZXJuIHUxNiBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJl
YWRfbW9zdGx5IikpKSB0bGJfbGxkXzRrW05SX0lORk9dOwpleHRlcm4gdTE2IF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHRsYl9sbGRfMm1bTlJfSU5G
T107CmV4dGVybiB1MTYgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5kYXRhLi5yZWFkX21v
c3RseSIpKSkgdGxiX2xsZF80bVtOUl9JTkZPXTsKZXh0ZXJuIHUxNiBfX2F0dHJpYnV0ZV9fKChf
X3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKSB0bGJfbGxkXzFnW05SX0lORk9dOwoK
CgoKCgoKc3RydWN0IGNwdWluZm9feDg2IHsKIF9fdTggeDg2OwogX191OCB4ODZfdmVuZG9yOwog
X191OCB4ODZfbW9kZWw7CiBfX3U4IHg4Nl9zdGVwcGluZzsKCgogaW50IHg4Nl90bGJzaXplOwoK
CiBfX3UzMiB2bXhfY2FwYWJpbGl0eVszXTsKCiBfX3U4IHg4Nl92aXJ0X2JpdHM7CiBfX3U4IHg4
Nl9waHlzX2JpdHM7CgogX191OCB4ODZfY29yZWlkX2JpdHM7CiBfX3U4IGN1X2lkOwoKIF9fdTMy
IGV4dGVuZGVkX2NwdWlkX2xldmVsOwoKIGludCBjcHVpZF9sZXZlbDsKCgoKCgogdW5pb24gewog
IF9fdTMyIHg4Nl9jYXBhYmlsaXR5WzE5ICsgMV07CiAgdW5zaWduZWQgbG9uZyB4ODZfY2FwYWJp
bGl0eV9hbGlnbm1lbnQ7CiB9OwogY2hhciB4ODZfdmVuZG9yX2lkWzE2XTsKIGNoYXIgeDg2X21v
ZGVsX2lkWzY0XTsKCiB1bnNpZ25lZCBpbnQgeDg2X2NhY2hlX3NpemU7CiBpbnQgeDg2X2NhY2hl
X2FsaWdubWVudDsKCiBpbnQgeDg2X2NhY2hlX21heF9ybWlkOwogaW50IHg4Nl9jYWNoZV9vY2Nf
c2NhbGU7CiBpbnQgeDg2X3Bvd2VyOwogdW5zaWduZWQgbG9uZyBsb29wc19wZXJfamlmZnk7Cgog
dTE2IHg4Nl9tYXhfY29yZXM7CiB1MTYgYXBpY2lkOwogdTE2IGluaXRpYWxfYXBpY2lkOwogdTE2
IHg4Nl9jbGZsdXNoX3NpemU7CgogdTE2IGJvb3RlZF9jb3JlczsKCiB1MTYgcGh5c19wcm9jX2lk
OwoKIHUxNiBsb2dpY2FsX3Byb2NfaWQ7CgogdTE2IGNwdV9jb3JlX2lkOwogdTE2IGNwdV9kaWVf
aWQ7CiB1MTYgbG9naWNhbF9kaWVfaWQ7CgogdTE2IGNwdV9pbmRleDsKIHUzMiBtaWNyb2NvZGU7
CgogdTggeDg2X2NhY2hlX2JpdHM7CiB1bnNpZ25lZCBpbml0aWFsaXplZCA6IDE7Cn0gX19hdHRy
aWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykpOwoKc3RydWN0IGNwdWlkX3JlZ3MgewogdTMy
IGVheCwgZWJ4LCBlY3gsIGVkeDsKfTsKCmVudW0gY3B1aWRfcmVnc19pZHggewogQ1BVSURfRUFY
ID0gMCwKIENQVUlEX0VCWCwKIENQVUlEX0VDWCwKIENQVUlEX0VEWCwKfTsKIyAxNzAgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCmV4dGVybiBzdHJ1Y3QgY3B1aW5mb194ODYg
Ym9vdF9jcHVfZGF0YTsKZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBuZXdfY3B1X2RhdGE7Cgpl
eHRlcm4gX191MzIgY3B1X2NhcHNfY2xlYXJlZFsxOSArIDFdOwpleHRlcm4gX191MzIgY3B1X2Nh
cHNfc2V0WzE5ICsgMV07CgoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5w
ZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKHN0cnVjdCBjcHVpbmZvX3g4Nikg
Y3B1X2luZm87CgoKCgoKCmV4dGVybiBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgY3B1aW5m
b19vcDsKCgoKZXh0ZXJuIHZvaWQgY3B1X2RldGVjdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgbG9uZyBsb25nIGwxdGZfcGZuX2xpbWl0KHZvaWQpCnsKIHJldHVybiAoKCgoMVVM
TCkpKSA8PCAoYm9vdF9jcHVfZGF0YS54ODZfY2FjaGVfYml0cyAtIDEgLSAxMikpOwp9CgpleHRl
cm4gdm9pZCBlYXJseV9jcHVfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgaWRlbnRpZnlfYm9vdF9j
cHUodm9pZCk7CmV4dGVybiB2b2lkIGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3RydWN0IGNwdWlu
Zm9feDg2ICopOwpleHRlcm4gdm9pZCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYg
Kik7CnZvaWQgcHJpbnRfY3B1X21zcihzdHJ1Y3QgY3B1aW5mb194ODYgKik7CgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaGF2
ZV9jcHVpZF9wKHZvaWQpCnsKIHJldHVybiAxOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9jcHVpZCh1bnNpZ25l
ZCBpbnQgKmVheCwgdW5zaWduZWQgaW50ICplYngsCiAgICB1bnNpZ25lZCBpbnQgKmVjeCwgdW5z
aWduZWQgaW50ICplZHgpCnsKCiBhc20gdm9sYXRpbGUoImNwdWlkIgogICAgIDogIj1hIiAoKmVh
eCksCiAgICAgICAiPWIiICgqZWJ4KSwKICAgICAgICI9YyIgKCplY3gpLAogICAgICAgIj1kIiAo
KmVkeCkKICAgICA6ICIwIiAoKmVheCksICIyIiAoKmVjeCkKICAgICA6ICJtZW1vcnkiKTsKfQoj
IDIzNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IG5h
dGl2ZV9jcHVpZF9lYXgodW5zaWduZWQgaW50IG9wKSB7IHVuc2lnbmVkIGludCBlYXggPSBvcCwg
ZWJ4LCBlY3ggPSAwLCBlZHg7IG5hdGl2ZV9jcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsg
cmV0dXJuIGVheDsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgbmF0aXZlX2NwdWlkX2VieCh1bnNpZ25lZCBpbnQg
b3ApIHsgdW5zaWduZWQgaW50IGVheCA9IG9wLCBlYngsIGVjeCA9IDAsIGVkeDsgbmF0aXZlX2Nw
dWlkKCZlYXgsICZlYngsICZlY3gsICZlZHgpOyByZXR1cm4gZWJ4OyB9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBu
YXRpdmVfY3B1aWRfZWN4KHVuc2lnbmVkIGludCBvcCkgeyB1bnNpZ25lZCBpbnQgZWF4ID0gb3As
IGVieCwgZWN4ID0gMCwgZWR4OyBuYXRpdmVfY3B1aWQoJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7
IHJldHVybiBlY3g7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IG5hdGl2ZV9jcHVpZF9lZHgodW5zaWduZWQgaW50
IG9wKSB7IHVuc2lnbmVkIGludCBlYXggPSBvcCwgZWJ4LCBlY3ggPSAwLCBlZHg7IG5hdGl2ZV9j
cHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsgcmV0dXJuIGVkeDsgfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyByZWFkX2NyM19wYSh2b2lkKQp7CiByZXR1cm4gX19yZWFkX2NyMygpICYgKDB4N0ZGRkZG
RkZGRkZGRjAwMHVsbCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgbmF0aXZlX3JlYWRfY3IzX3BhKHZvaWQp
CnsKIHJldHVybiBfX25hdGl2ZV9yZWFkX2NyMygpICYgKDB4N0ZGRkZGRkZGRkZGRjAwMHVsbCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgbG9hZF9jcjMocGdkX3QgKnBnZGlyKQp7CiB3cml0ZV9jcjMoKF9fcGh5c19hZGRy
X25vZGVidWcoKHVuc2lnbmVkIGxvbmcpKHBnZGlyKSkgfCAwVUxMKSk7Cn0KIyAzMTIgIi4vYXJj
aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0cnVjdCB4ODZfaHdfdHNzIHsKIHUzMiBy
ZXNlcnZlZDE7CiB1NjQgc3AwOwoKCgoKCiB1NjQgc3AxOwoKCgoKCgogdTY0IHNwMjsKCiB1NjQg
cmVzZXJ2ZWQyOwogdTY0IGlzdFs3XTsKIHUzMiByZXNlcnZlZDM7CiB1MzIgcmVzZXJ2ZWQ0Owog
dTE2IHJlc2VydmVkNTsKIHUxNiBpb19iaXRtYXBfYmFzZTsKCn0gX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CiMgMzcwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgpzdHJ1Y3Qg
ZW50cnlfc3RhY2sgewogdW5zaWduZWQgbG9uZyB3b3Jkc1s2NF07Cn07CgpzdHJ1Y3QgZW50cnlf
c3RhY2tfcGFnZSB7CiBzdHJ1Y3QgZW50cnlfc3RhY2sgc3RhY2s7Cn0gX19hdHRyaWJ1dGVfXygo
X19hbGlnbmVkX18oKCgxVUwpIDw8IDEyKSkpKTsKCgoKCnN0cnVjdCB4ODZfaW9fYml0bWFwIHsK
CiB1NjQgcHJldl9zZXF1ZW5jZTsKIyAzOTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vz
c29yLmgiCiB1bnNpZ25lZCBpbnQgcHJldl9tYXg7CgoKCgoKCgogdW5zaWduZWQgbG9uZyBiaXRt
YXBbKCg2NTUzNiAvIDgpIC8gc2l6ZW9mKGxvbmcpKSArIDFdOwoKCgoKCiB1bnNpZ25lZCBsb25n
IG1hcGFsbFsoKDY1NTM2IC8gOCkgLyBzaXplb2YobG9uZykpICsgMV07Cn07CgpzdHJ1Y3QgdHNz
X3N0cnVjdCB7CgoKCgoKIHN0cnVjdCB4ODZfaHdfdHNzIHg4Nl90c3M7Cgogc3RydWN0IHg4Nl9p
b19iaXRtYXAgaW9fYml0bWFwOwp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgoMVVMKSA8
PCAxMikpKSk7CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIg
Ii4ucGFnZV9hbGlnbmVkIikpKSBfX3R5cGVvZl9fKHN0cnVjdCB0c3Nfc3RydWN0KSBjcHVfdHNz
X3J3IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgoMVVMKSA8PCAxMikpKSk7CgoKc3RydWN0
IGlycV9zdGFjayB7CiBjaGFyIHN0YWNrWygoKDFVTCkgPDwgMTIpIDw8ICgyICsgMCkpXTsKfSBf
X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoKCgxVUwpIDw8IDEyKSA8PCAoMiArIDApKSkpKTsK
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiIikpKSBfX3R5
cGVvZl9fKHN0cnVjdCBpcnFfc3RhY2sgKikgaGFyZGlycV9zdGFja19wdHI7CiMgNDM3ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgpzdHJ1Y3QgZml4ZWRfcGVyY3B1X2RhdGEg
ewoKCgoKCiBjaGFyIGdzX2Jhc2VbNDBdOwogdW5zaWduZWQgbG9uZyBzdGFja19jYW5hcnk7Cn07
CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4uZmlyc3Qi
KSkpIF9fdHlwZW9mX18oc3RydWN0IGZpeGVkX3BlcmNwdV9kYXRhKSBmaXhlZF9wZXJjcHVfZGF0
YSBfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSk7CmV4dGVybiB0eXBlb2Yo
Zml4ZWRfcGVyY3B1X2RhdGEpIGluaXRfcGVyX2NwdV9fZml4ZWRfcGVyY3B1X2RhdGE7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNp
Z25lZCBsb25nIGNwdV9rZXJuZWxtb2RlX2dzX2Jhc2UoaW50IGNwdSkKewogcmV0dXJuICh1bnNp
Z25lZCBsb25nKSgqKHsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgm
KGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3Zw
cF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgi
IiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihmaXhlZF9wZXJjcHVfZGF0YS5nc19i
YXNlKSkpKSAqKSgoJihmaXhlZF9wZXJjcHVfZGF0YS5nc19iYXNlKSkpKSk7ICh0eXBlb2YoKHR5
cGVvZigqKCgmKGZpeGVkX3BlcmNwdV9kYXRhLmdzX2Jhc2UpKSkpICopKCgmKGZpeGVkX3BlcmNw
dV9kYXRhLmdzX2Jhc2UpKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVfb2Zmc2V0WyhjcHUpXSkp
KSk7IH0pOyB9KSk7Cn0KCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVy
Y3B1IiAiIikpKSBfX3R5cGVvZl9fKHVuc2lnbmVkIGludCkgaXJxX2NvdW50OwpleHRlcm4gdm9p
ZCBpZ25vcmVfc3lzcmV0KHZvaWQpOwoKCgp2b2lkIHNhdmVfZnNnc19mb3Jfa3ZtKHZvaWQpOwoj
IDQ4MCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJuIHVuc2lnbmVk
IGludCBmcHVfa2VybmVsX3hzdGF0ZV9zaXplOwpleHRlcm4gdW5zaWduZWQgaW50IGZwdV91c2Vy
X3hzdGF0ZV9zaXplOwoKc3RydWN0IHBlcmZfZXZlbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiB1bnNp
Z25lZCBsb25nIHNlZzsKfSBtbV9zZWdtZW50X3Q7CgpzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB7Cgog
c3RydWN0IGRlc2Nfc3RydWN0IHRsc19hcnJheVszXTsKCgoKIHVuc2lnbmVkIGxvbmcgc3A7CgoK
CiB1bnNpZ25lZCBzaG9ydCBlczsKIHVuc2lnbmVkIHNob3J0IGRzOwogdW5zaWduZWQgc2hvcnQg
ZnNpbmRleDsKIHVuc2lnbmVkIHNob3J0IGdzaW5kZXg7CgoKCiB1bnNpZ25lZCBsb25nIGZzYmFz
ZTsKIHVuc2lnbmVkIGxvbmcgZ3NiYXNlOwojIDUxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCIKIHN0cnVjdCBwZXJmX2V2ZW50ICpwdHJhY2VfYnBzWzRdOwoKIHVuc2lnbmVk
IGxvbmcgZGVidWdyZWc2OwoKIHVuc2lnbmVkIGxvbmcgcHRyYWNlX2RyNzsKCiB1bnNpZ25lZCBs
b25nIGNyMjsKIHVuc2lnbmVkIGxvbmcgdHJhcF9ucjsKIHVuc2lnbmVkIGxvbmcgZXJyb3JfY29k
ZTsKCgoKCgogc3RydWN0IGlvX2JpdG1hcCAqaW9fYml0bWFwOwoKCgoKCgogdW5zaWduZWQgbG9u
ZyBpb3BsX2VtdWw7CgogbW1fc2VnbWVudF90IGFkZHJfbGltaXQ7CgogdW5zaWduZWQgaW50IHNp
Z19vbl91YWNjZXNzX2VycjoxOwogdW5zaWduZWQgaW50IHVhY2Nlc3NfZXJyOjE7CgoKIHN0cnVj
dCBmcHUgZnB1OwoKCgoKfTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hfdGhyZWFkX3N0cnVjdF93aGl0ZWxpc3QodW5z
aWduZWQgbG9uZyAqb2Zmc2V0LAogICAgICB1bnNpZ25lZCBsb25nICpzaXplKQp7CiAqb2Zmc2V0
ID0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCB0aHJlYWRfc3RydWN0LCBmcHUuc3RhdGUpOwog
KnNpemUgPSBmcHVfa2VybmVsX3hzdGF0ZV9zaXplOwp9CiMgNTcxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3Byb2Nlc3Nvci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCm5hdGl2ZV9sb2FkX3NwMCh1bnNpZ25lZCBsb25nIHNw
MCkKewogZG8geyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1
X3Rzc19ydy54ODZfdHNzLnNwMCkpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3Zlcmlm
eTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIHsg
Y2FzZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgcHRv
X1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9fdG1wX187IHB0b190bXBfXyA9IChzcDApOyAodm9p
ZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSkg
eyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInFpIiAoKHB0b19UX18pKHNwMCkp
KTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAlMSwiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1Rf
Xykoc3AwKSkpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICUxLCIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIg
KChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEg
JTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkp
IDogInJlIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8geyB0eXBlZGVmIHR5cGVvZigo
Y3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIHB0b19UX187IGlmICgwKSB7IHB0b19UX18gcHRvX3Rt
cF9fOyBwdG9fdG1wX18gPSAoc3AwKTsgKHZvaWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9m
KChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJiICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5z
cDApKSA6ICJxaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgIncgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54
ODZfdHNzLnNwMCkpIDogInJpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgNDogYXNt
IHZvbGF0aWxlICgibW92IiAibCAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVf
dHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyZSIgKChwdG9fVF9fKShzcDApKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBj
YXNlIDQ6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSBwdG9f
VF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190bXBfXzsgcHRvX3RtcF9fID0gKHNwMCk7ICh2b2lk
KXB0b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpKSB7
IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgOiAicWkiICgocHRvX1RfXykoc3AwKSkp
OyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICUxLCIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9f
KShzcDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgJTEsIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJpIiAo
KHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAl
MSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkg
OiAicmUiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3Np
emUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4OiBkbyB7IHR5cGVkZWYgdHlwZW9mKChj
cHVfdHNzX3J3Lng4Nl90c3Muc3AwKSkgcHRvX1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9fdG1w
X187IHB0b190bXBfXyA9IChzcDApOyAodm9pZClwdG9fdG1wX187IH0gc3dpdGNoIChzaXplb2Yo
KGNwdV90c3NfcncueDg2X3Rzcy5zcDApKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoY3B1X3Rzc19ydy54ODZfdHNzLnNw
MCkpIDogInFpIiAoKHB0b19UX18pKHNwMCkpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxl
ICgibW92IiAidyAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChjcHVfdHNzX3J3Lng4
Nl90c3Muc3AwKSkgOiAicmkiICgocHRvX1RfXykoc3AwKSkpOyBicmVhazsgY2FzZSA0OiBhc20g
dm9sYXRpbGUgKCJtb3YiICJsICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKGNwdV90
c3NfcncueDg2X3Rzcy5zcDApKSA6ICJyaSIgKChwdG9fVF9fKShzcDApKSk7IGJyZWFrOyBjYXNl
IDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoY3B1X3Rzc19ydy54ODZfdHNzLnNwMCkpIDogInJlIiAoKHB0b19UX18pKHNwMCkpKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBuYXRpdmVfc3dhcGdzKHZvaWQpCnsKCiBhc20gdm9sYXRpbGUoInN3YXBncyIgOjo6
ICJtZW1vcnkiKTsKCn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgY3VycmVudF90b3Bfb2Zfc3RhY2sodm9pZCkK
ewoKCgoKCiByZXR1cm4gKHsgdHlwZW9mKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpIHBmb19yZXRf
Xzsgc3dpdGNoIChzaXplb2YoY3B1X3Rzc19ydy54ODZfdHNzLnNwMSkpIHsgY2FzZSAxOiBhc20o
Im1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDog
InAiICgmKGNwdV90c3NfcncueDg2X3Rzcy5zcDEpKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSgibW92
IiAidyAiIiUlIiJncyIiOiIgIiUiICJQMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAicCIg
KCYoY3B1X3Rzc19ydy54ODZfdHNzLnNwMSkpKTsgYnJlYWs7IGNhc2UgNDogYXNtKCJtb3YiICJs
ICIiJSUiImdzIiI6IiAiJSIgIlAxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJwIiAoJihj
cHVfdHNzX3J3Lng4Nl90c3Muc3AxKSkpOyBicmVhazsgY2FzZSA4OiBhc20oIm1vdiIgInEgIiIl
JSIiZ3MiIjoiICIlIiAiUDEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogInAiICgmKGNwdV90
c3NfcncueDg2X3Rzcy5zcDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IHBmb19yZXRfXzsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgb25fdGhyZWFkX3N0YWNrKHZvaWQpCnsKIHJldHVy
biAodW5zaWduZWQgbG9uZykoY3VycmVudF90b3Bfb2Zfc3RhY2soKSAtCiAgICAgICAgICBjdXJy
ZW50X3N0YWNrX3BvaW50ZXIpIDwgKCgoMVVMKSA8PCAxMikgPDwgKDIgKyAwKSk7Cn0KCgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBsb2FkX3NwMCh1bnNpZ25lZCBsb25nIHNwMCkKewogbmF0aXZlX2xvYWRfc3AwKHNwMCk7
Cn0KCgoKCmV4dGVybiB2b2lkIHJlbGVhc2VfdGhyZWFkKHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsK
CnVuc2lnbmVkIGxvbmcgZ2V0X3djaGFuKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CgoKCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgY3B1aWQodW5zaWduZWQgaW50IG9wLAogICAgdW5zaWduZWQgaW50ICplYXgsIHVuc2lnbmVk
IGludCAqZWJ4LAogICAgdW5zaWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4KQp7CiAq
ZWF4ID0gb3A7CiAqZWN4ID0gMDsKIG5hdGl2ZV9jcHVpZChlYXgsIGVieCwgZWN4LCBlZHgpOwp9
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBjcHVpZF9jb3VudCh1bnNpZ25lZCBpbnQgb3AsIGludCBjb3VudCwKICAgICAgICAg
IHVuc2lnbmVkIGludCAqZWF4LCB1bnNpZ25lZCBpbnQgKmVieCwKICAgICAgICAgIHVuc2lnbmVk
IGludCAqZWN4LCB1bnNpZ25lZCBpbnQgKmVkeCkKewogKmVheCA9IG9wOwogKmVjeCA9IGNvdW50
OwogbmF0aXZlX2NwdWlkKGVheCwgZWJ4LCBlY3gsIGVkeCk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBj
cHVpZF9lYXgodW5zaWduZWQgaW50IG9wKQp7CiB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwg
ZWR4OwoKIGNwdWlkKG9wLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKCiByZXR1cm4gZWF4Owp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB1bnNpZ25lZCBpbnQgY3B1aWRfZWJ4KHVuc2lnbmVkIGludCBvcCkKewogdW5zaWduZWQgaW50
IGVheCwgZWJ4LCBlY3gsIGVkeDsKCiBjcHVpZChvcCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7
CgogcmV0dXJuIGVieDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGNwdWlkX2VjeCh1bnNpZ25lZCBpbnQgb3Ap
CnsKIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7CgogY3B1aWQob3AsICZlYXgsICZl
YngsICZlY3gsICZlZHgpOwoKIHJldHVybiBlY3g7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBjcHVpZF9lZHgo
dW5zaWduZWQgaW50IG9wKQp7CiB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4OwoKIGNw
dWlkKG9wLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKCiByZXR1cm4gZWR4Owp9CgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHJlcF9ub3Aodm9pZCkKewogYXNtIHZv
bGF0aWxlKCJyZXA7IG5vcCIgOjo6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIGNwdV9yZWxheCh2b2lkKQp7CiByZXBfbm9wKCk7Cn0KIyA3MDUg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3luY19jb3JlKHZvaWQp
CnsKIyA3MzggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCiB1bnNpZ25lZCBp
bnQgdG1wOwoKIGFzbSB2b2xhdGlsZSAoCiAgIjk4NzogXG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlz
Y2FyZC51bndpbmRfaGludHNcblx0IiAiLmxvbmcgOTg3YiAtIC5cblx0IiAiLnNob3J0ICIgIjAi
ICJcblx0IiAiLmJ5dGUgIiAiMCIgIlxuXHQiICIuYnl0ZSAiICIzIiAiXG5cdCIgIi5ieXRlICIg
IjAiICJcblx0IiAiLmJhbGlnbiA0IFxuXHQiICIucG9wc2VjdGlvblxuXHQiCiAgIm1vdiAlJXNz
LCAlMFxuXHQiCiAgInB1c2hxICVxMFxuXHQiCiAgInB1c2hxICUlcnNwXG5cdCIKICAiYWRkcSAk
OCwgKCUlcnNwKVxuXHQiCiAgInB1c2hmcVxuXHQiCiAgIm1vdiAlJWNzLCAlMFxuXHQiCiAgInB1
c2hxICVxMFxuXHQiCiAgInB1c2hxICQxZlxuXHQiCiAgImlyZXRxXG5cdCIKICAiOTg3OiBcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVud2luZF9oaW50c1xuXHQiICIubG9uZyA5ODdiIC0g
LlxuXHQiICIuc2hvcnQgIiAiMCIgIlxuXHQiICIuYnl0ZSAiICIwIiAiXG5cdCIgIi5ieXRlICIg
IjQiICJcblx0IiAiLmJ5dGUgIiAiMCIgIlxuXHQiICIuYmFsaWduIDQgXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIKICAiMToiCiAgOiAiPSZyIiAodG1wKSwgIityIiAoY3VycmVudF9zdGFja19wb2lu
dGVyKSA6IDogImNjIiwgIm1lbW9yeSIpOwoKfQoKZXh0ZXJuIHZvaWQgc2VsZWN0X2lkbGVfcm91
dGluZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwpleHRlcm4gdm9pZCBhbWRfZTQwMF9j
MWVfYXBpY19zZXR1cCh2b2lkKTsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGJvb3Rfb3B0aW9uX2lk
bGVfb3ZlcnJpZGU7CgplbnVtIGlkbGVfYm9vdF9vdmVycmlkZSB7SURMRV9OT19PVkVSUklERT0w
LCBJRExFX0hBTFQsIElETEVfTk9NV0FJVCwKICAgIElETEVfUE9MTH07CgpleHRlcm4gdm9pZCBl
bmFibGVfc2VwX2NwdSh2b2lkKTsKZXh0ZXJuIGludCBzeXNlbnRlcl9zZXR1cCh2b2lkKTsKCgoK
ZXh0ZXJuIHN0cnVjdCBkZXNjX3B0ciBlYXJseV9nZHRfZGVzY3I7CgpleHRlcm4gdm9pZCBzd2l0
Y2hfdG9fbmV3X2dkdChpbnQpOwpleHRlcm4gdm9pZCBsb2FkX2RpcmVjdF9nZHQoaW50KTsKZXh0
ZXJuIHZvaWQgbG9hZF9maXhtYXBfZ2R0KGludCk7CmV4dGVybiB2b2lkIGxvYWRfcGVyY3B1X3Nl
Z21lbnQoaW50KTsKZXh0ZXJuIHZvaWQgY3B1X2luaXQodm9pZCk7CmV4dGVybiB2b2lkIGNyNF9p
bml0KHZvaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBnZXRfZGVidWdjdGxtc3Iodm9pZCkKewogdW5zaWdu
ZWQgbG9uZyBkZWJ1Z2N0bG1zciA9IDA7CgoKCgoKICgoZGVidWdjdGxtc3IpID0gbmF0aXZlX3Jl
YWRfbXNyKCgweDAwMDAwMWQ5KSkpOwoKIHJldHVybiBkZWJ1Z2N0bG1zcjsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB1cGRh
dGVfZGVidWdjdGxtc3IodW5zaWduZWQgbG9uZyBkZWJ1Z2N0bG1zcikKewoKCgoKIHdybXNybCgw
eDAwMDAwMWQ5LCBkZWJ1Z2N0bG1zcik7Cn0KCmV4dGVybiB2b2lkIHNldF90YXNrX2Jsb2Nrc3Rl
cChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGJvb2wgb24pOwoKCmV4dGVybiBpbnQgYm9vdGxv
YWRlcl90eXBlOwpleHRlcm4gaW50IGJvb3Rsb2FkZXJfdmVyc2lvbjsKCmV4dGVybiBjaGFyIGln
bm9yZV9mcHVfaXJxOwojIDgyNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBwcmVmZXRjaChjb25zdCB2b2lkICp4KQp7CiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIj
IEFMVDogb2xkbnN0clxuIiAiNjYxOlxuXHQiICJwcmVmZXRjaHQwICVQMSIgIlxuNjYyOlxuIiAi
IyBBTFQ6IHBhZGRpbmdcbiIgIi5za2lwIC0oKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICIp
LSgiICI2NjJiLTY2MWIiICIpKSA+IDApICogIiAiKCgiICI2NjUiIjEiImYtIiI2NjQiIjEiImYi
ICIpLSgiICI2NjJiLTY2MWIiICIpKSwweDkwXG4iICI2NjMiICI6XG4iICIucHVzaHNlY3Rpb24g
LmFsdGluc3RydWN0aW9ucyxcImFcIlxuIiAiIC5sb25nIDY2MWIgLSAuXG4iICIgLmxvbmcgIiAi
NjY0IiIxIiJmIC0gLlxuIiAiIC53b3JkICIgIiggMCozMisyNSkiICJcbiIgIiAuYnl0ZSAiICI2
NjMiImItNjYxYiIgIlxuIiAiIC5ieXRlICIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIlxuIiAi
IC5ieXRlICIgIjY2MyIiYi02NjJiIiAiXG4iICIucG9wc2VjdGlvblxuIiAiLnB1c2hzZWN0aW9u
IC5hbHRpbnN0cl9yZXBsYWNlbWVudCwgXCJheFwiXG4iICIjIEFMVDogcmVwbGFjZW1lbnQgIiAi
MSIgIlxuIiAiNjY0IiIxIiI6XG5cdCIgInByZWZldGNobnRhICVQMSIgIlxuIiAiNjY1IiIxIiAi
OlxuIiAiLnBvcHNlY3Rpb25cbiIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkp
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcHJlZmV0Y2h3KGNv
bnN0IHZvaWQgKngpCnsKIGFzbSBfX2lubGluZSB2b2xhdGlsZSAoIiMgQUxUOiBvbGRuc3RyXG4i
ICI2NjE6XG5cdCIgInByZWZldGNodDAgJVAxIiAiXG42NjI6XG4iICIjIEFMVDogcGFkZGluZ1xu
IiAiLnNraXAgLSgoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYxYiIg
IikpID4gMCkgKiAiICIoKCIgIjY2NSIiMSIiZi0iIjY2NCIiMSIiZiIgIiktKCIgIjY2MmItNjYx
YiIgIikpLDB4OTBcbiIgIjY2MyIgIjpcbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25z
LFwiYVwiXG4iICIgLmxvbmcgNjYxYiAtIC5cbiIgIiAubG9uZyAiICI2NjQiIjEiImYgLSAuXG4i
ICIgLndvcmQgIiAiKCA2KjMyKyA4KSIgIlxuIiAiIC5ieXRlICIgIjY2MyIiYi02NjFiIiAiXG4i
ICIgLmJ5dGUgIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJi
LTY2MmIiICJcbiIgIi5wb3BzZWN0aW9uXG4iICIucHVzaHNlY3Rpb24gLmFsdGluc3RyX3JlcGxh
Y2VtZW50LCBcImF4XCJcbiIgIiMgQUxUOiByZXBsYWNlbWVudCAiICIxIiAiXG4iICI2NjQiIjEi
Ijpcblx0IiAicHJlZmV0Y2h3ICVQMSIgIlxuIiAiNjY1IiIxIiAiOlxuIiAiLnBvcHNlY3Rpb25c
biIgOiA6ICJpIiAoMCksICJtIiAoKihjb25zdCBjaGFyICopeCkpCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNwaW5fbG9ja19wcmVmZXRjaChjb25zdCB2b2lkICp4KQp7
CiBwcmVmZXRjaHcoeCk7Cn0KIyA5MjUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29y
LmgiCmV4dGVybiB1bnNpZ25lZCBsb25nIEtTVEtfRVNQKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz
ayk7CgoKCmV4dGVybiB2b2lkIHN0YXJ0X3RocmVhZChzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5z
aWduZWQgbG9uZyBuZXdfaXAsCiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3X3NwKTsKIyA5
NDUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCmV4dGVybiBpbnQgZ2V0X3Rz
Y19tb2RlKHVuc2lnbmVkIGxvbmcgYWRyKTsKZXh0ZXJuIGludCBzZXRfdHNjX21vZGUodW5zaWdu
ZWQgaW50IHZhbCk7CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNw
dSIgIiIpKSkgX190eXBlb2ZfXyh1NjQpIG1zcl9taXNjX2ZlYXR1cmVzX3NoYWRvdzsKCgpleHRl
cm4gdTE2IGFtZF9nZXRfbmJfaWQoaW50IGNwdSk7CmV4dGVybiB1MzIgYW1kX2dldF9ub2Rlc19w
ZXJfc29ja2V0KHZvaWQpOwoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVpbnQzMl90IGh5cGVydmlzb3JfY3B1aWRfYmFzZShjb25z
dCBjaGFyICpzaWcsIHVpbnQzMl90IGxlYXZlcykKewogdWludDMyX3QgYmFzZSwgZWF4LCBzaWdu
YXR1cmVbM107CgogZm9yIChiYXNlID0gMHg0MDAwMDAwMDsgYmFzZSA8IDB4NDAwMTAwMDA7IGJh
c2UgKz0gMHgxMDApIHsKICBjcHVpZChiYXNlLCAmZWF4LCAmc2lnbmF0dXJlWzBdLCAmc2lnbmF0
dXJlWzFdLCAmc2lnbmF0dXJlWzJdKTsKCiAgaWYgKCFtZW1jbXAoc2lnLCBzaWduYXR1cmUsIDEy
KSAmJgogICAgICAobGVhdmVzID09IDAgfHwgKChlYXggLSBiYXNlKSA+PSBsZWF2ZXMpKSkKICAg
cmV0dXJuIGJhc2U7CiB9CgogcmV0dXJuIDA7Cn0KCmV4dGVybiB1bnNpZ25lZCBsb25nIGFyY2hf
YWxpZ25fc3RhY2sodW5zaWduZWQgbG9uZyBzcCk7CnZvaWQgZnJlZV9pbml0X3BhZ2VzKGNvbnN0
IGNoYXIgKndoYXQsIHVuc2lnbmVkIGxvbmcgYmVnaW4sIHVuc2lnbmVkIGxvbmcgZW5kKTsKZXh0
ZXJuIHZvaWQgZnJlZV9rZXJuZWxfaW1hZ2VfcGFnZXMoY29uc3QgY2hhciAqd2hhdCwgdm9pZCAq
YmVnaW4sIHZvaWQgKmVuZCk7Cgp2b2lkIGRlZmF1bHRfaWRsZSh2b2lkKTsKCgoKCgoKdm9pZCBz
dG9wX3RoaXNfY3B1KHZvaWQgKmR1bW15KTsKdm9pZCBtaWNyb2NvZGVfY2hlY2sodm9pZCk7Cgpl
bnVtIGwxdGZfbWl0aWdhdGlvbnMgewogTDFURl9NSVRJR0FUSU9OX09GRiwKIEwxVEZfTUlUSUdB
VElPTl9GTFVTSF9OT1dBUk4sCiBMMVRGX01JVElHQVRJT05fRkxVU0gsCiBMMVRGX01JVElHQVRJ
T05fRkxVU0hfTk9TTVQsCiBMMVRGX01JVElHQVRJT05fRlVMTCwKIEwxVEZfTUlUSUdBVElPTl9G
VUxMX0ZPUkNFCn07CgpleHRlcm4gZW51bSBsMXRmX21pdGlnYXRpb25zIGwxdGZfbWl0aWdhdGlv
bjsKCmVudW0gbWRzX21pdGlnYXRpb25zIHsKIE1EU19NSVRJR0FUSU9OX09GRiwKIE1EU19NSVRJ
R0FUSU9OX0ZVTEwsCiBNRFNfTUlUSUdBVElPTl9WTVdFUlYsCn07CiMgNiAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgiIDIKCgoKCgoKZW51bSBjcHVpZF9sZWFmcwp7CiBDUFVJ
RF8xX0VEWCA9IDAsCiBDUFVJRF84MDAwXzAwMDFfRURYLAogQ1BVSURfODA4Nl8wMDAxX0VEWCwK
IENQVUlEX0xOWF8xLAogQ1BVSURfMV9FQ1gsCiBDUFVJRF9DMDAwXzAwMDFfRURYLAogQ1BVSURf
ODAwMF8wMDAxX0VDWCwKIENQVUlEX0xOWF8yLAogQ1BVSURfTE5YXzMsCiBDUFVJRF83XzBfRUJY
LAogQ1BVSURfRF8xX0VBWCwKIENQVUlEX0xOWF80LAogQ1BVSURfN18xX0VBWCwKIENQVUlEXzgw
MDBfMDAwOF9FQlgsCiBDUFVJRF82X0VBWCwKIENQVUlEXzgwMDBfMDAwQV9FRFgsCiBDUFVJRF83
X0VDWCwKIENQVUlEXzgwMDBfMDAwN19FQlgsCiBDUFVJRF83X0VEWCwKfTsKCgpleHRlcm4gY29u
c3QgY2hhciAqIGNvbnN0IHg4Nl9jYXBfZmxhZ3NbMTkqMzJdOwpleHRlcm4gY29uc3QgY2hhciAq
IGNvbnN0IHg4Nl9wb3dlcl9mbGFnc1szMl07CiMgNDkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIgpleHRlcm4gY29uc3QgY2hhciAqIGNvbnN0IHg4Nl9idWdfZmxhZ3NbMSoz
Ml07CiMgMTQxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCIKZXh0ZXJuIHZv
aWQgc2V0dXBfY2xlYXJfY3B1X2NhcCh1bnNpZ25lZCBpbnQgYml0KTsKZXh0ZXJuIHZvaWQgY2xl
YXJfY3B1X2NhcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMsIHVuc2lnbmVkIGludCBiaXQpOwojIDE3
MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9f
YWx3YXlzX2lubGluZV9fKSkgYm9vbCBfc3RhdGljX2NwdV9oYXModTE2IGJpdCkKewogZG8geyBh
c20gZ290bygiMTogam1wIDZmXG4iICIyOlxuIiAiLnNraXAgLSgoKDVmLTRmKSAtICgyYi0xYikp
ID4gMCkgKiAiICIoKDVmLTRmKSAtICgyYi0xYikpLDB4OTBcbiIgIjM6XG4iICIuc2VjdGlvbiAu
YWx0aW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgLmxvbmcgMWIgLSAuXG4iICIgLmxvbmcgNGYgLSAu
XG4iICIgLndvcmQgJVBbYWx3YXlzXVxuIiAiIC5ieXRlIDNiIC0gMWJcbiIgIiAuYnl0ZSA1ZiAt
IDRmXG4iICIgLmJ5dGUgM2IgLSAyYlxuIiAiLnByZXZpb3VzXG4iICIuc2VjdGlvbiAuYWx0aW5z
dHJfcmVwbGFjZW1lbnQsXCJheFwiXG4iICI0OiBqbXAgJWxbdF9ub11cbiIgIjU6XG4iICIucHJl
dmlvdXNcbiIgIi5zZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAubG9uZyAxYiAt
IC5cbiIgIiAubG9uZyAwXG4iICIgLndvcmQgJVBbZmVhdHVyZV1cbiIgIiAuYnl0ZSAzYiAtIDFi
XG4iICIgLmJ5dGUgMFxuIiAiIC5ieXRlIDBcbiIgIi5wcmV2aW91c1xuIiAiLnNlY3Rpb24gLmFs
dGluc3RyX2F1eCxcImF4XCJcbiIgIjY6XG4iICIgdGVzdGIgJVtiaXRudW1dLCVbY2FwX2J5dGVd
XG4iICIgam56ICVsW3RfeWVzXVxuIiAiIGptcCAlbFt0X25vXVxuIiAiLnByZXZpb3VzXG4iIDog
OiBbZmVhdHVyZV0gImkiIChiaXQpLCBbYWx3YXlzXSAiaSIgKCggMyozMisyMSkpLCBbYml0bnVt
XSAiaSIgKDEgPDwgKGJpdCAmIDcpKSwgW2NhcF9ieXRlXSAibSIgKCgoY29uc3QgY2hhciAqKWJv
b3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkpW2JpdCA+PiAzXSkgOiA6IHRfeWVzLCB0X25vKTsg
YXNtICgiIik7IH0gd2hpbGUgKDApCiMgMjEwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaCIKICAgICAgICAgICAgICAgICAgIDsKdF95ZXM6CiByZXR1cm4gdHJ1ZTsKdF9ubzoK
IHJldHVybiBmYWxzZTsKfQojIDU0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZv
LmgiIDIKCgpzdHJ1Y3QgdGhyZWFkX2luZm8gewogdW5zaWduZWQgbG9uZyBmbGFnczsKIHUzMiBz
dGF0dXM7Cn07CiMgMTg2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBhcmNoX3dpdGhpbl9zdGFja19mcmFtZXMoY29uc3Qgdm9pZCAqIGNvbnN0IHN0YWNrLAogICAg
ICAgIGNvbnN0IHZvaWQgKiBjb25zdCBzdGFja2VuZCwKICAgICAgICBjb25zdCB2b2lkICpvYmos
IHVuc2lnbmVkIGxvbmcgbGVuKQp7CiMgMjE4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVh
ZF9pbmZvLmgiCiByZXR1cm4gTk9UX1NUQUNLOwoKfQojIDI0MiAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS90aHJlYWRfaW5mby5oIgpleHRlcm4gdm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lk
KTsKZXh0ZXJuIGludCBhcmNoX2R1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmRz
dCwgc3RydWN0IHRhc2tfc3RydWN0ICpzcmMpOwpleHRlcm4gdm9pZCBhcmNoX3JlbGVhc2VfdGFz
a19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwpleHRlcm4gdm9pZCBhcmNoX3NldHVw
X25ld19leGVjKHZvaWQpOwojIDM5ICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIgMgoj
IDUzICIuL2luY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXRfdGlfdGhyZWFkX2Zs
YWcoc3RydWN0IHRocmVhZF9pbmZvICp0aSwgaW50IGZsYWcpCnsKIHNldF9iaXQoZmxhZywgKHVu
c2lnbmVkIGxvbmcgKikmdGktPmZsYWdzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl90aV90aHJlYWRfZmxhZyhz
dHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgZmxhZykKewogY2xlYXJfYml0KGZsYWcsICh1bnNp
Z25lZCBsb25nICopJnRpLT5mbGFncyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXBkYXRlX3RpX3RocmVhZF9mbGFnKHN0
cnVjdCB0aHJlYWRfaW5mbyAqdGksIGludCBmbGFnLAogICAgICBib29sIHZhbHVlKQp7CiBpZiAo
dmFsdWUpCiAgc2V0X3RpX3RocmVhZF9mbGFnKHRpLCBmbGFnKTsKIGVsc2UKICBjbGVhcl90aV90
aHJlYWRfZmxhZyh0aSwgZmxhZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9zZXRfdGlfdGhyZWFkX2ZsYWco
c3RydWN0IHRocmVhZF9pbmZvICp0aSwgaW50IGZsYWcpCnsKIHJldHVybiB0ZXN0X2FuZF9zZXRf
Yml0KGZsYWcsICh1bnNpZ25lZCBsb25nICopJnRpLT5mbGFncyk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0ZXN0X2FuZF9j
bGVhcl90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgZmxhZykKewog
cmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChmbGFnLCAodW5zaWduZWQgbG9uZyAqKSZ0aS0+Zmxh
Z3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgdGVzdF90aV90aHJlYWRfZmxhZyhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBp
bnQgZmxhZykKewogcmV0dXJuIHRlc3RfYml0KGZsYWcsICh1bnNpZ25lZCBsb25nICopJnRpLT5m
bGFncyk7Cn0KIyAxMjIgIi4vaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNoZWNr
X29iamVjdF9zaXplKGNvbnN0IHZvaWQgKnB0ciwgdW5zaWduZWQgbG9uZyBuLAogICAgICAgICBi
b29sIHRvX3VzZXIpCnsgfQoKCmV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygi
Y29weSBzb3VyY2Ugc2l6ZSBpcyB0b28gc21hbGwiKSkpCl9fYmFkX2NvcHlfZnJvbSh2b2lkKTsK
ZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJjb3B5IGRlc3RpbmF0aW9uIHNp
emUgaXMgdG9vIHNtYWxsIikpKQpfX2JhZF9jb3B5X3RvKHZvaWQpOwoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjb3B5X292ZXJm
bG93KGludCBzaXplLCB1bnNpZ25lZCBsb25nIGNvdW50KQp7CiAoeyBpbnQgX19yZXRfd2Fybl9v
biA9ICEhKDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRv
IHsgX193YXJuX3ByaW50aygiQnVmZmVyIG92ZXJmbG93IGRldGVjdGVkICglZCA8ICVsdSkhXG4i
LCBzaXplLCBjb3VudCk7IGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIu
Ynl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4i
ICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4i
ICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQu
d29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdf
ZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAo
ImluY2x1ZGUvbGludXgvdGhyZWFkX2luZm8uaCIpLCAiaSIgKDEzNCksICJpIiAoKDEgPDwgMCl8
KCgxIDw8IDMpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgwKSk7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRp
bl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
Ym9vbApjaGVja19jb3B5X3NpemUoY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGJ5dGVzLCBib29s
IGlzX3NvdXJjZSkKewogaW50IHN6ID0gX19idWlsdGluX29iamVjdF9zaXplKGFkZHIsIDApOwog
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoc3ogPj0gMCAmJiBzeiA8IGJ5dGVzKSwgMCkpIHsKICBp
ZiAoIV9fYnVpbHRpbl9jb25zdGFudF9wKGJ5dGVzKSkKICAgY29weV9vdmVyZmxvdyhzeiwgYnl0
ZXMpOwogIGVsc2UgaWYgKGlzX3NvdXJjZSkKICAgX19iYWRfY29weV9mcm9tKCk7CiAgZWxzZQog
ICBfX2JhZF9jb3B5X3RvKCk7CiAgcmV0dXJuIGZhbHNlOwogfQogaWYgKCh7IGludCBfX3JldF93
YXJuX29uID0gISEoYnl0ZXMgPiAoKGludCkofjBVID4+IDEpKSk7IGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGls
ZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs
ZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6
YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpm
aWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMy
IiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9u
IiA6IDogImkiICgiaW5jbHVkZS9saW51eC90aHJlYWRfaW5mby5oIiksICJpIiAoMTUwKSwgImki
ICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBi
dWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1
c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5f
ZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSkpCiAgcmV0dXJuIGZhbHNlOwogY2hlY2tf
b2JqZWN0X3NpemUoYWRkciwgYnl0ZXMsIGlzX3NvdXJjZSk7CiByZXR1cm4gdHJ1ZTsKfQojIDgg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJlZW1wdC5oIiAyCgpleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhpbnQpIF9fcHJlZW1w
dF9jb3VudDsKIyAyNCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcmVlbXB0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IHByZWVtcHRfY291bnQodm9pZCkKewogcmV0
dXJuICh7IHR5cGVvZihfX3ByZWVtcHRfY291bnQpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2Yo
X19wcmVlbXB0X2NvdW50KSkgeyBjYXNlIDE6IGFzbSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIl
IiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBi
cmVhazsgY2FzZSAyOiBhc20gKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgNDog
YXNtICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9f
KSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDg6IGFzbSAoIm1vdiIgInEg
IiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJl
ZW1wdF9jb3VudCkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pICYgfjB4ODAwMDAwMDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBwcmVlbXB0X2NvdW50X3NldChpbnQgcGMpCnsKIGludCBvbGQsIG5ldzsKCiBk
byB7CiAgb2xkID0gKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3JldF9fOyBzd2l0Y2gg
KHNpemVvZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92IiAiYiAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2Nv
dW50KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsg
Y2FzZSA0OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgODogYXNtICgi
bW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IHBmb19yZXRfXzsgfSk7CiAgbmV3ID0gKG9sZCAmIDB4ODAwMDAwMDApIHwKICAgKHBjICYg
fjB4ODAwMDAwMDApOwogfSB3aGlsZSAoKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGNvX3Jl
dF9fOyB0eXBlb2YoX19wcmVlbXB0X2NvdW50KSBwY29fb2xkX18gPSAob2xkKTsgdHlwZW9mKF9f
cHJlZW1wdF9jb3VudCkgcGNvX25ld19fID0gKG5ldyk7IHN3aXRjaCAoc2l6ZW9mKF9fcHJlZW1w
dF9jb3VudCkpIHsgY2FzZSAxOiBhc20gKCJjbXB4Y2hnYiAlMiwgIiIlJSIiZ3MiIjoiICIlIiAi
MSIgOiAiPWEiIChwY29fcmV0X18pLCAiK20iIChfX3ByZWVtcHRfY291bnQpIDogInEiIChwY29f
bmV3X18pLCAiMCIgKHBjb19vbGRfXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDI6IGFzbSAo
ImNtcHhjaGd3ICUyLCAiIiUlIiJncyIiOiIgIiUiICIxIiA6ICI9YSIgKHBjb19yZXRfXyksICIr
bSIgKF9fcHJlZW1wdF9jb3VudCkgOiAiciIgKHBjb19uZXdfXyksICIwIiAocGNvX29sZF9fKSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgNDogYXNtICgiY21weGNoZ2wgJTIsICIiJSUiImdzIiI6
IiAiJSIgIjEiIDogIj1hIiAocGNvX3JldF9fKSwgIittIiAoX19wcmVlbXB0X2NvdW50KSA6ICJy
IiAocGNvX25ld19fKSwgIjAiIChwY29fb2xkX18pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4
OiBhc20gKCJjbXB4Y2hncSAlMiwgIiIlJSIiZ3MiIjoiICIlIiAiMSIgOiAiPWEiIChwY29fcmV0
X18pLCAiK20iIChfX3ByZWVtcHRfY291bnQpIDogInIiIChwY29fbmV3X18pLCAiMCIgKHBjb19v
bGRfXykgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9
IHBjb19yZXRfXzsgfSkgIT0gb2xkKTsKfQojIDU4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3By
ZWVtcHQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNldF9wcmVl
bXB0X25lZWRfcmVzY2hlZCh2b2lkKQp7CiBkbyB7IHR5cGVkZWYgdHlwZW9mKChfX3ByZWVtcHRf
Y291bnQpKSBwdG9fVF9fOyBpZiAoMCkgeyBwdG9fVF9fIHB0b190bXBfXzsgcHRvX3RtcF9fID0g
KH4weDgwMDAwMDAwKTsgKHZvaWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChfX3ByZWVt
cHRfY291bnQpKSkgeyBjYXNlIDE6IGFzbSAoImFuZCIgImIgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicWkiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoImFuZCIgIncgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSAoImFuZCIgImwgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSAoImFuZCIgInEgJTEsIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmUiICgocHRvX1RfXykofjB4ODAwMDAw
MDApKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDAp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgY2xlYXJfcHJlZW1w
dF9uZWVkX3Jlc2NoZWQodm9pZCkKewogZG8geyB0eXBlZGVmIHR5cGVvZigoX19wcmVlbXB0X2Nv
dW50KSkgcHRvX1RfXzsgaWYgKDApIHsgcHRvX1RfXyBwdG9fdG1wX187IHB0b190bXBfXyA9ICgw
eDgwMDAwMDAwKTsgKHZvaWQpcHRvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChfX3ByZWVtcHRf
Y291bnQpKSkgeyBjYXNlIDE6IGFzbSAoIm9yIiAiYiAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJxaSIgKChwdG9fVF9fKSgweDgwMDAwMDAwKSkp
OyBicmVhazsgY2FzZSAyOiBhc20gKCJvciIgIncgJTEsIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicmkiICgocHRvX1RfXykoMHg4MDAwMDAwMCkpKTsg
YnJlYWs7IGNhc2UgNDogYXNtICgib3IiICJsICUxLCIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHB0b19UX18pKDB4ODAwMDAwMDApKSk7IGJy
ZWFrOyBjYXNlIDg6IGFzbSAoIm9yIiAicSAlMSwiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KChfX3ByZWVtcHRfY291bnQpKSA6ICJyZSIgKChwdG9fVF9fKSgweDgwMDAwMDAwKSkpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIHRlc3RfcHJlZW1wdF9uZWVkX3Jlc2No
ZWQodm9pZCkKewogcmV0dXJuICEoKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3JldF9f
OyBzd2l0Y2ggKHNpemVvZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92IiAi
YiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoX19w
cmVlbXB0X2NvdW50KSk7IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkp
OyBicmVhazsgY2FzZSA0OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIg
OiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2Ug
ODogYXNtICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJj
cHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSkgJiAweDgwMDAwMDAwKTsKfQoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX3ByZWVtcHRfY291bnRfYWRkKGludCB2
YWwpCnsKIGRvIHsgdHlwZWRlZiB0eXBlb2YoKF9fcHJlZW1wdF9jb3VudCkpIHBhb19UX187IGNv
bnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCh2YWwpICYmICgodmFsKSA9
PSAxIHx8ICh2YWwpID09IC0xKSkgPyAoaW50KSh2YWwpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBw
YW9fdG1wX187IHBhb190bXBfXyA9ICh2YWwpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChz
aXplb2YoKF9fcHJlZW1wdF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkp
OyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkYiAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkgOiAicWkiICgocGFvX1Rf
XykodmFsKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSh2YWwpKSk7
IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0
X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKHZhbCkpKTsgYnJlYWs7IGNh
c2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNt
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKChfX3ByZWVtcHRfY291bnQpKSk7
IGVsc2UgYXNtICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVl
bXB0X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykodmFsKSkpOyBicmVhazsgZGVmYXVsdDogX19i
YWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIF9fcHJlZW1wdF9jb3VudF9zdWIoaW50IHZhbCkKewogZG8geyB0
eXBlZGVmIHR5cGVvZigoX19wcmVlbXB0X2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19J
RF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKC12YWwpICYmICgoLXZhbCkgPT0gMSB8fCAoLXZh
bCkgPT0gLTEpKSA/IChpbnQpKC12YWwpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187
IHBhb190bXBfXyA9ICgtdmFsKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKChf
X3ByZWVtcHRfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNi
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBp
ZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZGIgJTEsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKC12YWwp
KSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVl
bXB0X2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKF9fcHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC12YWwpKSk7IGJyZWFr
OyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50
KSkpOyBlbHNlIGFzbSAoImFkZGwgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9f
cHJlZW1wdF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC12YWwpKSk7IGJyZWFrOyBjYXNlIDg6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKF9fcHJlZW1wdF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoX19wcmVlbXB0X2NvdW50KSkpOyBlbHNl
IGFzbSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKF9fcHJlZW1wdF9j
b3VudCkpIDogInJlIiAoKHBhb19UX18pKC12YWwpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgYm9vbCBfX3ByZWVtcHRfY291bnRfZGVjX2FuZF90ZXN0KHZvaWQpCnsK
IHJldHVybiAoeyBib29sIGM7IGFzbSB2b2xhdGlsZSAoImRlY2wiICIgIiAiJSUiImdzIiI6IiAi
JSIgIlt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29kZSAiICJlIiAiKi9cbiIgOiBb
dmFyXSAiK20iIChfX3ByZWVtcHRfY291bnQpLCAiPUBjYyIgImUiIChjKSA6IDogIm1lbW9yeSIp
OyBjOyB9KTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBib29sIHNo
b3VsZF9yZXNjaGVkKGludCBwcmVlbXB0X29mZnNldCkKewogcmV0dXJuIF9fYnVpbHRpbl9leHBl
Y3QoISEoKHsgdHlwZW9mKF9fcHJlZW1wdF9jb3VudCkgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVv
ZihfX3ByZWVtcHRfY291bnQpKSB7IGNhc2UgMTogYXNtICgibW92IiAiYiAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoX19wcmVlbXB0X2NvdW50KSk7
IGJyZWFrOyBjYXNlIDI6IGFzbSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKF9fcHJlZW1wdF9jb3VudCkpOyBicmVhazsgY2FzZSA0
OiBhc20gKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0
X18pIDogIm0iIChfX3ByZWVtcHRfY291bnQpKTsgYnJlYWs7IGNhc2UgODogYXNtICgibW92IiAi
cSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoX19w
cmVlbXB0X2NvdW50KSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBm
b19yZXRfXzsgfSkgPT0gcHJlZW1wdF9vZmZzZXQpLCAwKTsKfQojIDc5ICIuL2luY2x1ZGUvbGlu
dXgvcHJlZW1wdC5oIiAyCiMgMjc3ICIuL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oIgpzdHJ1Y3Qg
cHJlZW1wdF9ub3RpZmllcjsKIyAyOTMgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCnN0cnVj
dCBwcmVlbXB0X29wcyB7CiB2b2lkICgqc2NoZWRfaW4pKHN0cnVjdCBwcmVlbXB0X25vdGlmaWVy
ICpub3RpZmllciwgaW50IGNwdSk7CiB2b2lkICgqc2NoZWRfb3V0KShzdHJ1Y3QgcHJlZW1wdF9u
b3RpZmllciAqbm90aWZpZXIsCiAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0KTsKfTsKIyAz
MDYgIi4vaW5jbHVkZS9saW51eC9wcmVlbXB0LmgiCnN0cnVjdCBwcmVlbXB0X25vdGlmaWVyIHsK
IHN0cnVjdCBobGlzdF9ub2RlIGxpbms7CiBzdHJ1Y3QgcHJlZW1wdF9vcHMgKm9wczsKfTsKCnZv
aWQgcHJlZW1wdF9ub3RpZmllcl9pbmModm9pZCk7CnZvaWQgcHJlZW1wdF9ub3RpZmllcl9kZWMo
dm9pZCk7CnZvaWQgcHJlZW1wdF9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgcHJlZW1wdF9ub3Rp
ZmllciAqbm90aWZpZXIpOwp2b2lkIHByZWVtcHRfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3Qg
cHJlZW1wdF9ub3RpZmllciAqbm90aWZpZXIpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwcmVlbXB0X25vdGlmaWVyX2luaXQo
c3RydWN0IHByZWVtcHRfbm90aWZpZXIgKm5vdGlmaWVyLAogICAgICAgICBzdHJ1Y3QgcHJlZW1w
dF9vcHMgKm9wcykKewogSU5JVF9ITElTVF9OT0RFKCZub3RpZmllci0+bGluayk7CiBub3RpZmll
ci0+b3BzID0gb3BzOwp9CiMgNTIgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCgoKCgoK
CiMgMSAiLi9pbmNsdWRlL2xpbnV4L2JvdHRvbV9oYWxmLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xp
bnV4L2JvdHRvbV9oYWxmLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBfX2xvY2FsX2JoX2Rpc2FibGVfaXAodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgaW50IGNu
dCkKewogX19wcmVlbXB0X2NvdW50X2FkZChjbnQpOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9jYWxfYmhfZGlzYWJsZSh2b2lkKQp7CiBfX2xvY2Fs
X2JoX2Rpc2FibGVfaXAoKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9u
ZykmJl9faGVyZTsgfSksICgyICogKDFVTCA8PCAoMCArIDgpKSkpOwp9CgpleHRlcm4gdm9pZCBf
bG9jYWxfYmhfZW5hYmxlKHZvaWQpOwpleHRlcm4gdm9pZCBfX2xvY2FsX2JoX2VuYWJsZV9pcCh1
bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBpbnQgY250KTsKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9jYWxfYmhfZW5hYmxl
X2lwKHVuc2lnbmVkIGxvbmcgaXApCnsKIF9fbG9jYWxfYmhfZW5hYmxlX2lwKGlwLCAoMiAqICgx
VUwgPDwgKDAgKyA4KSkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NhbF9iaF9lbmFibGUodm9pZCkKewogX19sb2Nh
bF9iaF9lbmFibGVfaXAoKHsgX19sYWJlbF9fIF9faGVyZTsgX19oZXJlOiAodW5zaWduZWQgbG9u
ZykmJl9faGVyZTsgfSksICgyICogKDFVTCA8PCAoMCArIDgpKSkpOwp9CiMgNTkgIi4vaW5jbHVk
ZS9saW51eC9zcGlubG9jay5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQv
YXNtL21taW93Yi5oIiAxCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL21taW93Yi5oIiAxCiMg
MiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC9hc20vbW1pb3diLmgiIDIKIyA2MSAiLi9p
bmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKIyA4MyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2Nr
LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiIDEKIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAu
aCIgMQojIDEzICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7
CnN0cnVjdCBsb2NrZGVwX21hcDsKCgpleHRlcm4gaW50IHByb3ZlX2xvY2tpbmc7CmV4dGVybiBp
bnQgbG9ja19zdGF0OwojIDQxMyAiLi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2Nr
ZGVwX2luaXRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCnsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsb2NrZGVw
X29mZih2b2lkKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9vbih2b2lkKQp7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9z
ZXRfc2VsZnRlc3RfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCnsKfQojIDQ1OCAiLi9p
bmNsdWRlL2xpbnV4L2xvY2tkZXAuaCIKc3RydWN0IGxvY2tfY2xhc3Nfa2V5IHsgfTsKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
bG9ja2RlcF9yZWdpc3Rlcl9rZXkoc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCnsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBsb2NrZGVwX3VucmVnaXN0ZXJfa2V5KHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KQp7Cn0K
CgoKCnN0cnVjdCBsb2NrZGVwX21hcCB7IH07CiMgNDg0ICIuL2luY2x1ZGUvbGludXgvbG9ja2Rl
cC5oIgpzdHJ1Y3QgcGluX2Nvb2tpZSB7IH07CiMgNDk0ICIuL2luY2x1ZGUvbGludXgvbG9ja2Rl
cC5oIgplbnVtIHhobG9ja19jb250ZXh0X3QgewogWEhMT0NLX0hBUkQsCiBYSExPQ0tfU09GVCwK
IFhITE9DS19DVFhfTlIsCn07CiMgNTA4ICIuL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IGxvY2tkZXBfaW52YXJpYW50X3N0YXRlKGJvb2wgZm9yY2UpIHt9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbG9ja2RlcF9mcmVl
X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKSB7fQojIDU3MCAiLi9pbmNsdWRlL2xpbnV4
L2xvY2tkZXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBwcmludF9pcnF0cmFjZV9ldmVudHMoc3RydWN0IHRhc2tfc3RydWN0
ICpjdXJyKQp7Cn0KIyA2NjggIi4vaW5jbHVkZS9saW51eC9sb2NrZGVwLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKbG9ja2Rl
cF9yY3Vfc3VzcGljaW91cyhjb25zdCBjaGFyICpmaWxlLCBjb25zdCBpbnQgbGluZSwgY29uc3Qg
Y2hhciAqcykKewp9CiMgMTkgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja190eXBlcy5oIiAyCgp0
eXBlZGVmIHN0cnVjdCByYXdfc3BpbmxvY2sgewogYXJjaF9zcGlubG9ja190IHJhd19sb2NrOwoK
CgoKCgoKfSByYXdfc3BpbmxvY2tfdDsKIyA2MSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5
cGVzLmgiCnR5cGVkZWYgc3RydWN0IHNwaW5sb2NrIHsKIHVuaW9uIHsKICBzdHJ1Y3QgcmF3X3Nw
aW5sb2NrIHJsb2NrOwojIDcyICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfdHlwZXMuaCIKIH07
Cn0gc3BpbmxvY2tfdDsKIyA4MyAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX3R5cGVzLmgiCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja190eXBlcy5oIiAxCiMgMTEgIi4vaW5jbHVkZS9saW51
eC9yd2xvY2tfdHlwZXMuaCIKdHlwZWRlZiBzdHJ1Y3QgewogYXJjaF9yd2xvY2tfdCByYXdfbG9j
azsKCgoKCgoKCn0gcndsb2NrX3Q7CiMgODQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9ja190eXBl
cy5oIiAyCiMgODQgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCgoKCgoKIyAxICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NwaW5sb2NrLmgiIDEKIyAxMCAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9zcGlubG9jay5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCIg
MQojIDE4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmgiCiMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9mcmFtZS5oIiAxCiMgMTkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFy
YXZpcnQuaCIgMgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBsb25nIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKHZvaWQp
CnsKIHJldHVybiAoeyB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXQ7IHVuc2lnbmVkIGxvbmcgX19l
ZGkgPSBfX2VkaSwgX19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwg
X19lYXggPSBfX2VheDs7ICgodm9pZClwdl9vcHMudGltZS5zY2hlZF9jbG9jayk7IGlmIChzaXpl
b2YodW5zaWduZWQgbG9uZyBsb25nKSA+IHNpemVvZih1bnNpZ25lZCBsb25nKSkgeyBhc20gdm9s
YXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0
cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9u
XG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2Vj
dGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIg
IiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVt
XSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Ns
b2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19l
c2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIj1hIiAoX19lYXgpLCAiK3IiIChjdXJy
ZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9v
ZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIHRpbWUuc2NoZWRfY2xvY2sp
IC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLnRpbWUu
c2NoZWRfY2xvY2spKSwgW3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpIDog
Im1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpOyBfX3JldCA9ICh1bnNp
Z25lZCBsb25nIGxvbmcpKCgoKHU2NClfX2VkeCkgPDwgMzIpIHwgX19lYXgpOyB9IGVsc2UgeyBh
c20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3Bz
ZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5w
dXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAi
ICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90
eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2
aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1T
IiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIgKF9fZWN4KSwgIj1hIiAoX19lYXgpLCAiK3Ii
IChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVp
bHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIHRpbWUuc2NoZWRf
Y2xvY2spIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3Bz
LnRpbWUuc2NoZWRfY2xvY2spKSwgW3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0g
MSkpIDogIm1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpOyBfX3JldCA9
ICh1bnNpZ25lZCBsb25nIGxvbmcpKF9fZWF4ICYgKHsgdW5zaWduZWQgbG9uZyBfX21hc2sgPSB+
MFVMOyBzd2l0Y2ggKHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpKSB7IGNhc2UgMTogX19tYXNr
ID0gMHhmZlVMOyBicmVhazsgY2FzZSAyOiBfX21hc2sgPSAweGZmZmZVTDsgYnJlYWs7IGNhc2Ug
NDogX19tYXNrID0gMHhmZmZmZmZmZlVMOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19tYXNr
OyB9KSk7IH0gX19yZXQ7IH0pOwp9CgpzdHJ1Y3Qgc3RhdGljX2tleTsKZXh0ZXJuIHN0cnVjdCBz
dGF0aWNfa2V5IHBhcmF2aXJ0X3N0ZWFsX2VuYWJsZWQ7CmV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tl
eSBwYXJhdmlydF9zdGVhbF9ycV9lbmFibGVkOwoKX19hdHRyaWJ1dGVfXygoX19leHRlcm5hbGx5
X3Zpc2libGVfXykpIHZvaWQgX19uYXRpdmVfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3Bp
bmxvY2sgKmxvY2spOwpib29sIHB2X2lzX25hdGl2ZV9zcGluX3VubG9jayh2b2lkKTsKX19hdHRy
aWJ1dGVfXygoX19leHRlcm5hbGx5X3Zpc2libGVfXykpIGJvb2wgX19uYXRpdmVfdmNwdV9pc19w
cmVlbXB0ZWQobG9uZyBjcHUpOwpib29sIHB2X2lzX25hdGl2ZV92Y3B1X2lzX3ByZWVtcHRlZCh2
b2lkKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHU2NCBwYXJhdmlydF9zdGVhbF9jbG9jayhpbnQgY3B1KQp7CiByZXR1cm4gKHsgdTY0
IF9fcmV0OyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9fZWR4
ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3BzLnRp
bWUuc3RlYWxfY2xvY2spOyBpZiAoc2l6ZW9mKHU2NCkgPiBzaXplb2YodW5zaWduZWQgbG9uZykp
IHsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5k
aXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5YlxuXHQiICIu
cG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3NzI6XG4i
ICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFsaWduIDgi
ICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNbcGFyYXZp
cnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAiICIlY1tw
YXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPUQiIChfX2VkaSks
ICI9UyIgKF9fZXNpKSwgIj1kIiAoX19lZHgpLCAiPWMiIChfX2VjeCksICI9YSIgKF9fZWF4KSwg
IityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJhdmlydF90eXBlbnVtXSAiaSIgKChf
X2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBsYXRlLCB0aW1lLnN0
ZWFsX2Nsb2NrKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2
X29wcy50aW1lLnN0ZWFsX2Nsb2NrKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5
KSAtIDEpKSwgIkQiICgodW5zaWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiAsICJy
OCIsICJyOSIsICJyMTAiLCAicjExIik7IF9fcmV0ID0gKHU2NCkoKCgodTY0KV9fZWR4KSA8PCAz
MikgfCBfX2VheCk7IH0gZWxzZSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQi
ICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3Bw
dHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwi
XG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIg
IC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxu
IiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4i
ICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19l
Y3gpLCAiPWEiIChfX2VheCksICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZp
cnRfdHlwZW51bV0gImkiICgoX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRj
aF90ZW1wbGF0ZSwgdGltZS5zdGVhbF9jbG9jaykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZp
cnRfb3BwdHJdICJpIiAoJihwdl9vcHMudGltZS5zdGVhbF9jbG9jaykpLCBbcGFyYXZpcnRfY2xv
YmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKGNwdSkpIDog
Im1lbW9yeSIsICJjYyIgLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpOyBfX3JldCA9ICh1NjQp
KF9fZWF4ICYgKHsgdW5zaWduZWQgbG9uZyBfX21hc2sgPSB+MFVMOyBzd2l0Y2ggKHNpemVvZih1
NjQpKSB7IGNhc2UgMTogX19tYXNrID0gMHhmZlVMOyBicmVhazsgY2FzZSAyOiBfX21hc2sgPSAw
eGZmZmZVTDsgYnJlYWs7IGNhc2UgNDogX19tYXNrID0gMHhmZmZmZmZmZlVMOyBicmVhazsgZGVm
YXVsdDogYnJlYWs7IH0gX19tYXNrOyB9KSk7IH0gX19yZXQ7IH0pOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbG93X2Rv
d25faW8odm9pZCkKewogcHZfb3BzLmNwdS5pb19kZWxheSgpOwoKCgoKCn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19mbHVz
aF90bGIodm9pZCkKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9f
ZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lk
KXB2X29wcy5tbXUuZmx1c2hfdGxiX3VzZXIpOyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAi
OTk5OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIg
Ii5xdWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2
aXJ0X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9u
cyxcImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcx
YlxuIiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJi
LTc3MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2Vj
dGlvblxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9
YyIgKF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJhdmlydF90eXBl
bnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBs
YXRlLCBtbXUuZmx1c2hfdGxiX3VzZXIpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29w
cHRyXSAiaSIgKCYocHZfb3BzLm1tdS5mbHVzaF90bGJfdXNlcikpLCBbcGFyYXZpcnRfY2xvYmJl
cl0gImkiICgoKDEgPDwgOSkgLSAxKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAi
cjkiLCAicjEwIiwgInIxMSIpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2ZsdXNoX3RsYl9nbG9iYWwodm9pZCkK
ewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9
IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUu
Zmx1c2hfdGxiX2tlcm5lbCk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIg
Ii5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIg
IiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJd
OyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4i
ICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5i
eXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAi
ICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIi
IDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gp
LCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAo
KF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5m
bHVzaF90bGJfa2VybmVsKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImki
ICgmKHB2X29wcy5tbXUuZmx1c2hfdGxiX2tlcm5lbCkpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImki
ICgoKDEgPDwgOSkgLSAxKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAi
cjEwIiwgInIxMSIpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2ZsdXNoX3RsYl9vbmVfdXNlcih1bnNpZ25lZCBs
b25nIGFkZHIpCnsKICh7IHVuc2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2Vz
aSwgX19lZHggPSBfX2VkeCwgX19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClw
dl9vcHMubW11LmZsdXNoX3RsYl9vbmVfdXNlcik7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQi
ICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIg
IiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFy
YXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rp
b25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3
NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3
MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3Bz
ZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwg
Ij1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5
cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVt
cGxhdGUsIG1tdS5mbHVzaF90bGJfb25lX3VzZXIpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2
aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLm1tdS5mbHVzaF90bGJfb25lX3VzZXIpKSwgW3BhcmF2
aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShh
ZGRyKSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIp
OyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBmbHVzaF90bGJfb3RoZXJzKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVt
YXNrLAogICAgICAgIGNvbnN0IHN0cnVjdCBmbHVzaF90bGJfaW5mbyAqaW5mbykKewogKHsgdW5z
aWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBf
X2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUuZmx1c2hfdGxi
X290aGVycyk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJc
blx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAi
NzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJh
bGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVj
W3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQg
IiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAo
X19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChj
dXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRp
bl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5mbHVzaF90bGJf
b3RoZXJzKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29w
cy5tbXUuZmx1c2hfdGxiX290aGVycykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwg
OSkgLSAxKSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKGNwdW1hc2spKSwgIlMiICgodW5zaWduZWQg
bG9uZykoaW5mbykpIDogIm1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIs
ICJyMTEiKTsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGFyYXZpcnRfdGxiX3JlbW92ZV90YWJsZShzdHJ1Y3QgbW11
X2dhdGhlciAqdGxiLCB2b2lkICp0YWJsZSkKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9f
ZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9
IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5tbXUudGxiX3JlbW92ZV90YWJsZSk7IGFzbSB2b2xhdGls
ZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xp
bmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0
IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9u
IC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIgIlxuIiAiICIg
Ii5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAi
XG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJl
cl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMiIChfX2VzaSks
ICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIp
IDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFy
YXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS50bGJfcmVtb3ZlX3RhYmxlKSAvIHNpemVvZih2b2lk
ICopKSksIFtwYXJhdmlydF9vcHB0cl0gImkiICgmKHB2X29wcy5tbXUudGxiX3JlbW92ZV90YWJs
ZSkpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAxKSksICJEIiAoKHVuc2ln
bmVkIGxvbmcpKHRsYikpLCAiUyIgKCh1bnNpZ25lZCBsb25nKSh0YWJsZSkpIDogIm1lbW9yeSIs
ICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGFy
YXZpcnRfYXJjaF9leGl0X21tYXAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKICh7IHVuc2lnbmVk
IGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwgX19lY3gg
PSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClwdl9vcHMubW11LmV4aXRfbW1hcCk7IGFz
bSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2Fy
ZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJcblx0IiAiLnBvcHNl
Y3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAiNzcyOlxuIiAiLnB1
c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJhbGlnbiA4IiAiICIg
IlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVjW3BhcmF2aXJ0X3R5
cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQgIiAiJWNbcGFyYXZp
cnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1EIiAoX19lZGkpLCAiPVMi
IChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3IiIChjdXJyZW50X3N0YWNr
X3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihz
dHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIG1tdS5leGl0X21tYXApIC8gc2l6ZW9mKHZv
aWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLm1tdS5leGl0X21tYXApKSwg
W3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBs
b25nKShtbSkpIDogIm1lbW9yeSIsICJjYyIgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJy
MTEiKTsgfSk7Cn0KIyA2NDIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHB2X3F1ZXVlZF9zcGluX2xvY2tf
c2xvd3BhdGgoc3RydWN0IHFzcGlubG9jayAqbG9jaywKICAgICAgIHUzMiB2YWwpCnsKICh7IHVu
c2lnbmVkIGxvbmcgX19lZGkgPSBfX2VkaSwgX19lc2kgPSBfX2VzaSwgX19lZHggPSBfX2VkeCwg
X19lY3ggPSBfX2VjeCwgX19lYXggPSBfX2VheDs7ICgodm9pZClwdl9vcHMubG9jay5xdWV1ZWRf
c3Bpbl9sb2NrX3Nsb3dwYXRoKTsgYXNtIHZvbGF0aWxlKCIiICI3NzE6XG5cdCIgIjk5OTpcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJldHBvbGluZV9zYWZlXG5cdCIgIiAiICIucXVhZCIg
IiAiICIgOTk5YlxuXHQiICIucG9wc2VjdGlvblxuXHQiICJjYWxsIColY1twYXJhdmlydF9vcHB0
cl07IiAiXG4iICI3NzI6XG4iICIucHVzaHNlY3Rpb24gLnBhcmFpbnN0cnVjdGlvbnMsXCJhXCJc
biIgIiAiICIuYmFsaWduIDgiICIgIiAiXG4iICIgIiAiLnF1YWQiICIgIiAiIDc3MWJcbiIgIiAg
LmJ5dGUgIiAiJWNbcGFyYXZpcnRfdHlwZW51bV0iICJcbiIgIiAgLmJ5dGUgNzcyYi03NzFiXG4i
ICIgIC5zaG9ydCAiICIlY1twYXJhdmlydF9jbG9iYmVyXSIgIlxuIiAiLnBvcHNlY3Rpb25cbiIg
IiIgOiAiPUQiIChfX2VkaSksICI9UyIgKF9fZXNpKSwgIj1kIiAoX19lZHgpLCAiPWMiIChfX2Vj
eCksICIrciIgKGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImki
ICgoX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbG9j
ay5xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRoKSAvIHNpemVvZih2b2lkICopKSksIFtwYXJhdmly
dF9vcHB0cl0gImkiICgmKHB2X29wcy5sb2NrLnF1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgpKSwg
W3BhcmF2aXJ0X2Nsb2JiZXJdICJpIiAoKCgxIDw8IDkpIC0gMSkpLCAiRCIgKCh1bnNpZ25lZCBs
b25nKShsb2NrKSksICJTIiAoKHVuc2lnbmVkIGxvbmcpKHZhbCkpIDogIm1lbW9yeSIsICJjYyIg
LCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiKTsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBwdl9xdWV1ZWRfc3Bpbl91bmxvY2soc3RydWN0IHFz
cGlubG9jayAqbG9jaykKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9
IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2
b2lkKXB2X29wcy5sb2NrLnF1ZXVlZF9zcGluX3VubG9jay5mdW5jKTsgYXNtIHZvbGF0aWxlKCIi
ICI3NzE6XG5cdCIgIjk5OTpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJldHBvbGluZV9z
YWZlXG5cdCIgIiAiICIucXVhZCIgIiAiICIgOTk5YlxuXHQiICIucG9wc2VjdGlvblxuXHQiICJj
YWxsIColY1twYXJhdmlydF9vcHB0cl07IiAiXG4iICI3NzI6XG4iICIucHVzaHNlY3Rpb24gLnBh
cmFpbnN0cnVjdGlvbnMsXCJhXCJcbiIgIiAiICIuYmFsaWduIDgiICIgIiAiXG4iICIgIiAiLnF1
YWQiICIgIiAiIDc3MWJcbiIgIiAgLmJ5dGUgIiAiJWNbcGFyYXZpcnRfdHlwZW51bV0iICJcbiIg
IiAgLmJ5dGUgNzcyYi03NzFiXG4iICIgIC5zaG9ydCAiICIlY1twYXJhdmlydF9jbG9iYmVyXSIg
IlxuIiAiLnBvcHNlY3Rpb25cbiIgIiIgOiAiPWEiIChfX2VheCksICIrciIgKGN1cnJlbnRfc3Rh
Y2tfcG9pbnRlcikgOiBbcGFyYXZpcnRfdHlwZW51bV0gImkiICgoX19idWlsdGluX29mZnNldG9m
KHN0cnVjdCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgbG9jay5xdWV1ZWRfc3Bpbl91bmxvY2su
ZnVuYykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMu
bG9jay5xdWV1ZWRfc3Bpbl91bmxvY2suZnVuYykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgo
KDEgPDwgMCkpKSwgIkQiICgodW5zaWduZWQgbG9uZykobG9jaykpIDogIm1lbW9yeSIsICJjYyIg
KTsgfSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBwdl93YWl0
KHU4ICpwdHIsIHU4IHZhbCkKewogKHsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2Vz
aSA9IF9fZXNpLCBfX2VkeCA9IF9fZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4Ozsg
KCh2b2lkKXB2X29wcy5sb2NrLndhaXQpOyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5
OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5x
dWFkIiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0
X29wcHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxc
ImFcIlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxu
IiAiICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3
MWJcbiIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlv
blxuIiAiIiA6ICI9RCIgKF9fZWRpKSwgIj1TIiAoX19lc2kpLCAiPWQiIChfX2VkeCksICI9YyIg
KF9fZWN4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJhdmlydF90eXBlbnVt
XSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3BhdGNoX3RlbXBsYXRl
LCBsb2NrLndhaXQpIC8gc2l6ZW9mKHZvaWQgKikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYo
cHZfb3BzLmxvY2sud2FpdCkpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgOSkgLSAx
KSksICJEIiAoKHVuc2lnbmVkIGxvbmcpKHB0cikpLCAiUyIgKCh1bnNpZ25lZCBsb25nKSh2YWwp
KSA6ICJtZW1vcnkiLCAiY2MiICwgInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAicjExIik7IH0p
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgcHZfa2ljayhpbnQg
Y3B1KQp7CiAoeyB1bnNpZ25lZCBsb25nIF9fZWRpID0gX19lZGksIF9fZXNpID0gX19lc2ksIF9f
ZWR4ID0gX19lZHgsIF9fZWN4ID0gX19lY3gsIF9fZWF4ID0gX19lYXg7OyAoKHZvaWQpcHZfb3Bz
LmxvY2sua2ljayk7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNo
c2VjdGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5
OWJcblx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxu
IiAiNzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAi
LmJhbGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIg
IiVjW3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hv
cnQgIiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1E
IiAoX19lZGkpLCAiPVMiIChfX2VzaSksICI9ZCIgKF9fZWR4KSwgIj1jIiAoX19lY3gpLCAiK3Ii
IChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1dICJpIiAoKF9fYnVp
bHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUsIGxvY2sua2ljaykg
LyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZpcnRfb3BwdHJdICJpIiAoJihwdl9vcHMubG9jay5r
aWNrKSksIFtwYXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCA5KSAtIDEpKSwgIkQiICgodW5z
aWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiAsICJyYXgiLCAicjgiLCAicjkiLCAi
cjEwIiwgInIxMSIpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBi
b29sIHB2X3ZjcHVfaXNfcHJlZW1wdGVkKGxvbmcgY3B1KQp7CiByZXR1cm4gKHsgYm9vbCBfX3Jl
dDsgdW5zaWduZWQgbG9uZyBfX2VkaSA9IF9fZWRpLCBfX2VzaSA9IF9fZXNpLCBfX2VkeCA9IF9f
ZWR4LCBfX2VjeCA9IF9fZWN4LCBfX2VheCA9IF9fZWF4OzsgKCh2b2lkKXB2X29wcy5sb2NrLnZj
cHVfaXNfcHJlZW1wdGVkLmZ1bmMpOyBpZiAoc2l6ZW9mKGJvb2wpID4gc2l6ZW9mKHVuc2lnbmVk
IGxvbmcpKSB7IGFzbSB2b2xhdGlsZSgiIiAiNzcxOlxuXHQiICI5OTk6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC5yZXRwb2xpbmVfc2FmZVxuXHQiICIgIiAiLnF1YWQiICIgIiAiIDk5OWJc
blx0IiAiLnBvcHNlY3Rpb25cblx0IiAiY2FsbCAqJWNbcGFyYXZpcnRfb3BwdHJdOyIgIlxuIiAi
NzcyOlxuIiAiLnB1c2hzZWN0aW9uIC5wYXJhaW5zdHJ1Y3Rpb25zLFwiYVwiXG4iICIgIiAiLmJh
bGlnbiA4IiAiICIgIlxuIiAiICIgIi5xdWFkIiAiICIgIiA3NzFiXG4iICIgIC5ieXRlICIgIiVj
W3BhcmF2aXJ0X3R5cGVudW1dIiAiXG4iICIgIC5ieXRlIDc3MmItNzcxYlxuIiAiICAuc2hvcnQg
IiAiJWNbcGFyYXZpcnRfY2xvYmJlcl0iICJcbiIgIi5wb3BzZWN0aW9uXG4iICIiIDogIj1hIiAo
X19lYXgpLCAiK3IiIChjdXJyZW50X3N0YWNrX3BvaW50ZXIpIDogW3BhcmF2aXJ0X3R5cGVudW1d
ICJpIiAoKF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUs
IGxvY2sudmNwdV9pc19wcmVlbXB0ZWQuZnVuYykgLyBzaXplb2Yodm9pZCAqKSkpLCBbcGFyYXZp
cnRfb3BwdHJdICJpIiAoJihwdl9vcHMubG9jay52Y3B1X2lzX3ByZWVtcHRlZC5mdW5jKSksIFtw
YXJhdmlydF9jbG9iYmVyXSAiaSIgKCgoMSA8PCAwKSkpLCAiRCIgKCh1bnNpZ25lZCBsb25nKShj
cHUpKSA6ICJtZW1vcnkiLCAiY2MiICk7IF9fcmV0ID0gKGJvb2wpKCgoKHU2NClfX2VkeCkgPDwg
MzIpIHwgX19lYXgpOyB9IGVsc2UgeyBhc20gdm9sYXRpbGUoIiIgIjc3MTpcblx0IiAiOTk5Olxu
XHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmV0cG9saW5lX3NhZmVcblx0IiAiICIgIi5xdWFk
IiAiICIgIiA5OTliXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgImNhbGwgKiVjW3BhcmF2aXJ0X29w
cHRyXTsiICJcbiIgIjc3MjpcbiIgIi5wdXNoc2VjdGlvbiAucGFyYWluc3RydWN0aW9ucyxcImFc
IlxuIiAiICIgIi5iYWxpZ24gOCIgIiAiICJcbiIgIiAiICIucXVhZCIgIiAiICIgNzcxYlxuIiAi
ICAuYnl0ZSAiICIlY1twYXJhdmlydF90eXBlbnVtXSIgIlxuIiAiICAuYnl0ZSA3NzJiLTc3MWJc
biIgIiAgLnNob3J0ICIgIiVjW3BhcmF2aXJ0X2Nsb2JiZXJdIiAiXG4iICIucG9wc2VjdGlvblxu
IiAiIiA6ICI9YSIgKF9fZWF4KSwgIityIiAoY3VycmVudF9zdGFja19wb2ludGVyKSA6IFtwYXJh
dmlydF90eXBlbnVtXSAiaSIgKChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBhcmF2aXJ0X3Bh
dGNoX3RlbXBsYXRlLCBsb2NrLnZjcHVfaXNfcHJlZW1wdGVkLmZ1bmMpIC8gc2l6ZW9mKHZvaWQg
KikpKSwgW3BhcmF2aXJ0X29wcHRyXSAiaSIgKCYocHZfb3BzLmxvY2sudmNwdV9pc19wcmVlbXB0
ZWQuZnVuYykpLCBbcGFyYXZpcnRfY2xvYmJlcl0gImkiICgoKDEgPDwgMCkpKSwgIkQiICgodW5z
aWduZWQgbG9uZykoY3B1KSkgOiAibWVtb3J5IiwgImNjIiApOyBfX3JldCA9IChib29sKShfX2Vh
eCAmICh7IHVuc2lnbmVkIGxvbmcgX19tYXNrID0gfjBVTDsgc3dpdGNoIChzaXplb2YoYm9vbCkp
IHsgY2FzZSAxOiBfX21hc2sgPSAweGZmVUw7IGJyZWFrOyBjYXNlIDI6IF9fbWFzayA9IDB4ZmZm
ZlVMOyBicmVhazsgY2FzZSA0OiBfX21hc2sgPSAweGZmZmZmZmZmVUw7IGJyZWFrOyBkZWZhdWx0
OiBicmVhazsgfSBfX21hc2s7IH0pKTsgfSBfX3JldDsgfSk7Cn0KCnZvaWQgX19yYXdfY2FsbGVl
X3NhdmVfX19uYXRpdmVfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2sp
Owpib29sIF9fcmF3X2NhbGxlZV9zYXZlX19fbmF0aXZlX3ZjcHVfaXNfcHJlZW1wdGVkKGxvbmcg
Y3B1KTsKIyA3OTggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCIKZXh0ZXJuIHZv
aWQgZGVmYXVsdF9iYW5uZXIodm9pZCk7CiMgOTM5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Bh
cmF2aXJ0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcGFyYXZpcnRfYXJjaF9kdXBfbW1hcChzdHJ1Y3QgbW1fc3RydWN0ICpv
bGRtbSwKICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7Cn0KIyAxMSAiLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGlubG9jay5oIiAyCiMgMjcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3Bp
bmxvY2suaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIiAxCiMgMTQg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdTMyIHF1ZXVlZF9mZXRjaF9zZXRfcGVuZGluZ19hY3F1aXJlKHN0cnVj
dCBxc3BpbmxvY2sgKmxvY2spCnsKIHUzMiB2YWw7CgoKCgoKCiB2YWwgPSAoeyBib29sIGM7IGFz
bSB2b2xhdGlsZSAoIi5wdXNoc2VjdGlvbiAuc21wX2xvY2tzLFwiYVwiXG4iICIuYmFsaWduIDRc
biIgIi5sb25nIDY3MWYgLSAuXG4iICIucG9wc2VjdGlvblxuIiAiNjcxOiIgIlxuXHRsb2NrOyAi
ICJidHNsIiAiICVbdmFsXSwgIiAiJVt2YXJdIiAiXG5cdC8qIG91dHB1dCBjb25kaXRpb24gY29k
ZSAiICJjIiAiKi9cbiIgOiBbdmFyXSAiK20iIChsb2NrLT52YWwuY291bnRlciksICI9QGNjIiAi
YyIgKGMpIDogW3ZhbF0gIkkiICgoMCArIDgpKSA6ICJtZW1vcnkiKTsgYzsgfSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICogKDFVIDw8ICgwICsgOCkpOwogdmFsIHw9IGF0b21p
Y19yZWFkKCZsb2NrLT52YWwpICYgfigoKDFVIDw8IDgpIC0gMSkgPDwgKDAgKyA4KSk7CgogcmV0
dXJuIHZhbDsKfQoKCmV4dGVybiB2b2lkIG5hdGl2ZV9xdWV1ZWRfc3Bpbl9sb2NrX3Nsb3dwYXRo
KHN0cnVjdCBxc3BpbmxvY2sgKmxvY2ssIHUzMiB2YWwpOwpleHRlcm4gdm9pZCBfX3B2X2luaXRf
bG9ja19oYXNoKHZvaWQpOwpleHRlcm4gdm9pZCBfX3B2X3F1ZXVlZF9zcGluX2xvY2tfc2xvd3Bh
dGgoc3RydWN0IHFzcGlubG9jayAqbG9jaywgdTMyIHZhbCk7CmV4dGVybiB2b2lkIF9fcmF3X2Nh
bGxlZV9zYXZlX19fcHZfcXVldWVkX3NwaW5fdW5sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2sp
OwojIDQzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5hdGl2ZV9x
dWV1ZWRfc3Bpbl91bmxvY2soc3RydWN0IHFzcGlubG9jayAqbG9jaykKewogZG8geyBkbyB7IGV4
dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQ1KHZvaWQpIF9fYXR0cmlidXRlX18oKF9f
ZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0
eS4iKSkpOyBpZiAoISgoc2l6ZW9mKCombG9jay0+bG9ja2VkKSA9PSBzaXplb2YoY2hhcikgfHwg
c2l6ZW9mKCombG9jay0+bG9ja2VkKSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJmxvY2st
PmxvY2tlZCkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCombG9jay0+bG9ja2VkKSA9PSBzaXpl
b2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfNDUoKTsgfSB3aGlsZSAoMCk7IF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKCombG9j
ay0+bG9ja2VkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqJmxvY2stPmxvY2tlZCkpICgwKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCombG9jay0+bG9j
a2VkKSwgX191Ll9fYywgc2l6ZW9mKCombG9jay0+bG9ja2VkKSk7IF9fdS5fX3ZhbDsgfSk7IH0g
d2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF9zcGluX2xvY2tfc2xvd3BhdGgoc3RydWN0IHFzcGlu
bG9jayAqbG9jaywgdTMyIHZhbCkKewogcHZfcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChsb2Nr
LCB2YWwpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF9zcGluX3VubG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2Nr
KQp7CiBwdl9xdWV1ZWRfc3Bpbl91bmxvY2sobG9jayk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHZjcHVfaXNfcHJlZW1w
dGVkKGxvbmcgY3B1KQp7CiByZXR1cm4gcHZfdmNwdV9pc19wcmVlbXB0ZWQoY3B1KTsKfQojIDcz
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9jay5oIgpleHRlcm4gc3RydWN0IHN0YXRp
Y19rZXlfdHJ1ZSB2aXJ0X3NwaW5fbG9ja19rZXk7Cgp2b2lkIG5hdGl2ZV9wdl9sb2NrX2luaXQo
dm9pZCkgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmli
dXRlX18oKF9fY29sZF9fKSkgOwojIDg2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlubG9j
ay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIHZpcnRfc3Bpbl9sb2NrKHN0cnVjdCBxc3BpbmxvY2sgKmxvY2spCnsKIGlmICgh
KHsgYm9vbCBicmFuY2g7IGlmIChfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigq
JnZpcnRfc3Bpbl9sb2NrX2tleSksIHN0cnVjdCBzdGF0aWNfa2V5X3RydWUpKSBicmFuY2ggPSAh
YXJjaF9zdGF0aWNfYnJhbmNoKCYoJnZpcnRfc3Bpbl9sb2NrX2tleSktPmtleSwgdHJ1ZSk7IGVs
c2UgaWYgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKComdmlydF9zcGluX2xv
Y2tfa2V5KSwgc3RydWN0IHN0YXRpY19rZXlfZmFsc2UpKSBicmFuY2ggPSAhYXJjaF9zdGF0aWNf
YnJhbmNoX2p1bXAoJigmdmlydF9zcGluX2xvY2tfa2V5KS0+a2V5LCB0cnVlKTsgZWxzZSBicmFu
Y2ggPSBfX19fd3JvbmdfYnJhbmNoX2Vycm9yKCk7IF9fYnVpbHRpbl9leHBlY3QoISEoYnJhbmNo
KSwgMSk7IH0pKQogIHJldHVybiBmYWxzZTsKCgoKCgoKCiBkbyB7CiAgd2hpbGUgKGF0b21pY19y
ZWFkKCZsb2NrLT52YWwpICE9IDApCiAgIGNwdV9yZWxheCgpOwogfSB3aGlsZSAoYXRvbWljX2Nt
cHhjaGcoJmxvY2stPnZhbCwgMCwgKDFVIDw8IDApKSAhPSAwKTsKCiByZXR1cm4gdHJ1ZTsKfQoK
CgoKCgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2suaCIgMQojIDIwICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvcXNwaW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lu
bGluZV9fKSkgaW50IHF1ZXVlZF9zcGluX2lzX2xvY2tlZChzdHJ1Y3QgcXNwaW5sb2NrICpsb2Nr
KQp7CgoKCgogcmV0dXJuIGF0b21pY19yZWFkKCZsb2NrLT52YWwpOwp9CiMgMzkgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9xc3BpbmxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSBpbnQgcXVldWVkX3NwaW5fdmFsdWVfdW5sb2NrZWQoc3RydWN0IHFzcGlubG9jayBsb2Nr
KQp7CiByZXR1cm4gIWF0b21pY19yZWFkKCZsb2NrLnZhbCk7Cn0KCgoKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVf
XygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgcXVldWVkX3NwaW5faXNfY29udGVuZGVkKHN0cnVj
dCBxc3BpbmxvY2sgKmxvY2spCnsKIHJldHVybiBhdG9taWNfcmVhZCgmbG9jay0+dmFsKSAmIH4o
KCgxVSA8PCA4KSAtIDEpIDw8IDApOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgcXVldWVkX3NwaW5fdHJ5bG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQp7
CiB1MzIgdmFsID0gYXRvbWljX3JlYWQoJmxvY2stPnZhbCk7CgogaWYgKF9fYnVpbHRpbl9leHBl
Y3QoISEodmFsKSwgMCkpCiAgcmV0dXJuIDA7CgogcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEo
YXRvbWljX3RyeV9jbXB4Y2hnKCZsb2NrLT52YWwsICZ2YWwsICgxVSA8PCAwKSkpLCAxKTsKfQoK
ZXh0ZXJuIHZvaWQgcXVldWVkX3NwaW5fbG9ja19zbG93cGF0aChzdHJ1Y3QgcXNwaW5sb2NrICps
b2NrLCB1MzIgdmFsKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgcXVldWVkX3NwaW5fbG9jayhzdHJ1Y3QgcXNwaW5sb2NrICpsb2NrKQp7CiB1MzIgdmFsID0g
MDsKCiBpZiAoX19idWlsdGluX2V4cGVjdCghIShhdG9taWNfdHJ5X2NtcHhjaGcoJmxvY2stPnZh
bCwgJnZhbCwgKDFVIDw8IDApKSksIDEpKQogIHJldHVybjsKCiBxdWV1ZWRfc3Bpbl9sb2NrX3Ns
b3dwYXRoKGxvY2ssIHZhbCk7Cn0KIyAxMTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vcXNwaW5s
b2NrLmgiIDIKIyAyOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5oIiAyCiMgNDMg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3Fyd2xvY2suaCIgMQoKCgoKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Fyd2xv
Y2suaCIgMQojIDMwICIuL2luY2x1ZGUvYXNtLWdlbmVyaWMvcXJ3bG9jay5oIgpleHRlcm4gdm9p
ZCBxdWV1ZWRfcmVhZF9sb2NrX3Nsb3dwYXRoKHN0cnVjdCBxcndsb2NrICpsb2NrKTsKZXh0ZXJu
IHZvaWQgcXVldWVkX3dyaXRlX2xvY2tfc2xvd3BhdGgoc3RydWN0IHFyd2xvY2sgKmxvY2spOwoK
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgcXVldWVkX3JlYWRfdHJ5bG9jayhzdHJ1Y3QgcXJ3bG9jayAqbG9jaykKewogdTMy
IGNudHM7CgogY250cyA9IGF0b21pY19yZWFkKCZsb2NrLT5jbnRzKTsKIGlmIChfX2J1aWx0aW5f
ZXhwZWN0KCEhKCEoY250cyAmIDB4MWZmKSksIDEpKSB7CiAgY250cyA9ICh1MzIpYXRvbWljX2Fk
ZF9yZXR1cm4oKDFVIDw8IDkpLCAmbG9jay0+Y250cyk7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3Qo
ISEoIShjbnRzICYgMHgxZmYpKSwgMSkpCiAgIHJldHVybiAxOwogIGF0b21pY19zdWIoKDFVIDw8
IDkpLCAmbG9jay0+Y250cyk7CiB9CiByZXR1cm4gMDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcXVldWVkX3dyaXRl
X3RyeWxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCnsKIHUzMiBjbnRzOwoKIGNudHMgPSBhdG9t
aWNfcmVhZCgmbG9jay0+Y250cyk7CiBpZiAoX19idWlsdGluX2V4cGVjdCghIShjbnRzKSwgMCkp
CiAgcmV0dXJuIDA7CgogcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEoYXRvbWljX3RyeV9jbXB4
Y2hnKCZsb2NrLT5jbnRzLCAmY250cywgMHgwZmYpKSwgMSkKICAgICAgICAgICAgICAgIDsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBxdWV1ZWRfcmVhZF9sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQp7CiB1MzIgY250
czsKCiBjbnRzID0gYXRvbWljX2FkZF9yZXR1cm4oKDFVIDw8IDkpLCAmbG9jay0+Y250cyk7CiBp
ZiAoX19idWlsdGluX2V4cGVjdCghISghKGNudHMgJiAweDFmZikpLCAxKSkKICByZXR1cm47CgoK
IHF1ZXVlZF9yZWFkX2xvY2tfc2xvd3BhdGgobG9jayk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHF1ZXVlZF93cml0
ZV9sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQp7CiB1MzIgY250cyA9IDA7CgogaWYgKF9fYnVp
bHRpbl9leHBlY3QoISEoYXRvbWljX3RyeV9jbXB4Y2hnKCZsb2NrLT5jbnRzLCAmY250cywgMHgw
ZmYpKSwgMSkpCiAgcmV0dXJuOwoKIHF1ZXVlZF93cml0ZV9sb2NrX3Nsb3dwYXRoKGxvY2spOwp9
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBxdWV1ZWRfcmVhZF91bmxvY2soc3RydWN0IHFyd2xvY2sgKmxvY2spCnsKCgoK
ICh2b2lkKWF0b21pY19zdWJfcmV0dXJuKCgxVSA8PCA5KSwgJmxvY2stPmNudHMpOwp9CgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBxdWV1ZWRfd3JpdGVfdW5sb2NrKHN0cnVjdCBxcndsb2NrICpsb2NrKQp7CiBkbyB7IGRv
IHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMTE2KHZvaWQpIF9fYXR0cmlidXRl
X18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0
b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKCombG9jay0+d2xvY2tlZCkgPT0gc2l6ZW9mKGNo
YXIpIHx8IHNpemVvZigqJmxvY2stPndsb2NrZWQpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9m
KCombG9jay0+d2xvY2tlZCkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKCombG9jay0+d2xvY2tl
ZCkgPT0gc2l6ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzExNigpOyB9IHdoaWxl
ICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0
eXBlb2YoKiZsb2NrLT53bG9ja2VkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192
YWwgPSAoIHR5cGVvZigqJmxvY2stPndsb2NrZWQpKSAoMCkgfTsgX193cml0ZV9vbmNlX3NpemUo
JigqJmxvY2stPndsb2NrZWQpLCBfX3UuX19jLCBzaXplb2YoKiZsb2NrLT53bG9ja2VkKSk7IF9f
dS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOwp9CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9x
cndsb2NrLmgiIDIKIyA0NCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zcGlubG9jay5oIiAyCiMg
OTAgIi4vaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAyCiMgMTc4ICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBkb19yYXdfc3Bpbl9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKQp7
CiAodm9pZCkwOwogcXVldWVkX3NwaW5fbG9jaygmbG9jay0+cmF3X2xvY2spOwogZG8geyB9IHdo
aWxlICgwKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQKZG9fcmF3X3NwaW5fbG9ja19mbGFncyhyYXdfc3BpbmxvY2tf
dCAqbG9jaywgdW5zaWduZWQgbG9uZyAqZmxhZ3MpCnsKICh2b2lkKTA7CiBxdWV1ZWRfc3Bpbl9s
b2NrKCZsb2NrLT5yYXdfbG9jayk7CiBkbyB7IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZG9fcmF3X3Nw
aW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jaykKewogaW50IHJldCA9IHF1ZXVlZF9zcGlu
X3RyeWxvY2soJihsb2NrKS0+cmF3X2xvY2spOwoKIGlmIChyZXQpCiAgZG8geyB9IHdoaWxlICgw
KTsKCiByZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvX3Jhd19zcGluX3VubG9jayhyYXdfc3BpbmxvY2tf
dCAqbG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIHF1ZXVlZF9zcGluX3VubG9jaygmbG9jay0+
cmF3X2xvY2spOwogKHZvaWQpMDsKfQojIDMxMCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgi
CiMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9jay5oIiAxCiMgMzExICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2suaCIgMgoKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAu
aCIgMQojIDE4ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oIgppbnQgaW5fbG9j
a19mdW5jdGlvbnModW5zaWduZWQgbG9uZyBhZGRyKTsKCgoKdm9pZCBfX2F0dHJpYnV0ZV9fKChz
ZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2socmF3X3NwaW5sb2NrX3Qg
KmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkg
X3Jhd19zcGluX2xvY2tfbmVzdGVkKHJhd19zcGlubG9ja190ICpsb2NrLCBpbnQgc3ViY2xhc3Mp
CiAgICAgICAgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0Iikp
KQpfcmF3X3NwaW5fbG9ja19uZXN0X2xvY2socmF3X3NwaW5sb2NrX3QgKmxvY2ssIHN0cnVjdCBs
b2NrZGVwX21hcCAqbWFwKQogICAgICAgIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX2xvY2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2sp
IDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19z
cGluX2xvY2tfaXJxKHJhd19zcGlubG9ja190ICpsb2NrKQogICAgICAgIDsKCnVuc2lnbmVkIGxv
bmcgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl9s
b2NrX2lycXNhdmUocmF3X3NwaW5sb2NrX3QgKmxvY2spCiAgICAgICAgOwp1bnNpZ25lZCBsb25n
IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQpfcmF3X3NwaW5fbG9j
a19pcnFzYXZlX25lc3RlZChyYXdfc3BpbmxvY2tfdCAqbG9jaywgaW50IHN1YmNsYXNzKQogICAg
ICAgIDsKaW50IF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3
X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jayk7CmludCBfX2F0dHJpYnV0ZV9fKChz
ZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX3RyeWxvY2tfYmgocmF3X3NwaW5s
b2NrX3QgKmxvY2spOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0
IikpKSBfcmF3X3NwaW5fdW5sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKSA7CnZvaWQgX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfc3Bpbl91bmxvY2tfYmgo
cmF3X3NwaW5sb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3Bp
bmxvY2sudGV4dCIpKSkgX3Jhd19zcGluX3VubG9ja19pcnEocmF3X3NwaW5sb2NrX3QgKmxvY2sp
IDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkKX3Jhd19z
cGluX3VubG9ja19pcnFyZXN0b3JlKHJhd19zcGlubG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25n
IGZsYWdzKQogICAgICAgIDsKIyA4NiAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IF9fcmF3X3NwaW5fdHJ5bG9jayhyYXdfc3BpbmxvY2tfdCAqbG9jaykKewogX19hc21f
XyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGlmIChkb19yYXdfc3Bpbl90cnlsb2Nr
KGxvY2spKSB7CiAgZG8geyB9IHdoaWxlICgwKTsKICByZXR1cm4gMTsKIH0KIF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiByZXR1cm4gMDsKfQojIDEwNCAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrX2FwaV9zbXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3Jhd19zcGluX2xvY2tf
aXJxc2F2ZShyYXdfc3BpbmxvY2tfdCAqbG9jaykKewogdW5zaWduZWQgbG9uZyBmbGFnczsKCiBk
byB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXky
OyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXkyKTsgMTsgfSk7IGZsYWdzID0gYXJjaF9sb2Nh
bF9pcnFfc2F2ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpOwogZG8geyB9IHdoaWxlICgwKTsKIyAxMTkgIi4vaW5jbHVk
ZS9saW51eC9zcGlubG9ja19hcGlfc21wLmgiCiBkb19yYXdfc3Bpbl9sb2NrX2ZsYWdzKGxvY2ss
ICZmbGFncyk7CgogcmV0dXJuIGZsYWdzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3NwaW5fbG9ja19pcnEocmF3
X3NwaW5sb2NrX3QgKmxvY2spCnsKIGRvIHsgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSgpOyB9IHdo
aWxlICgwKTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBkbyB7IH0g
d2hpbGUgKDApOwogZG9fcmF3X3NwaW5fbG9jayhsb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19zcGluX2xv
Y2tfYmgocmF3X3NwaW5sb2NrX3QgKmxvY2spCnsKIF9fbG9jYWxfYmhfZGlzYWJsZV9pcCgodW5z
aWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICgoMiAqICgxVUwgPDwgKDAg
KyA4KSkpICsgMCkpOwogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jhd19zcGluX2xvY2sobG9jayk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgX19yYXdfc3Bpbl9sb2NrKHJhd19zcGlubG9ja190ICpsb2NrKQp7CiBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jh
d19zcGluX2xvY2sobG9jayk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19zcGluX3VubG9jayhyYXdfc3Bpbmxv
Y2tfdCAqbG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jhd19zcGluX3VubG9jayhsb2Nr
KTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdf
c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShyYXdfc3BpbmxvY2tfdCAqbG9jaywKICAgICAgICAgdW5z
aWduZWQgbG9uZyBmbGFncykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvX3Jhd19zcGluX3VubG9j
ayhsb2NrKTsKIGRvIHsgZG8geyAoeyB1bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFn
cykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgYXJjaF9s
b2NhbF9pcnFfcmVzdG9yZShmbGFncyk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfc3Bpbl91bmxv
Y2tfaXJxKHJhd19zcGlubG9ja190ICpsb2NrKQp7CiBkbyB7IH0gd2hpbGUgKDApOwogZG9fcmF3
X3NwaW5fdW5sb2NrKGxvY2spOwogZG8geyBhcmNoX2xvY2FsX2lycV9lbmFibGUoKTsgfSB3aGls
ZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9f
cmF3X3NwaW5fdW5sb2NrX2JoKHJhd19zcGlubG9ja190ICpsb2NrKQp7CiBkbyB7IH0gd2hpbGUg
KDApOwogZG9fcmF3X3NwaW5fdW5sb2NrKGxvY2spOwogX19sb2NhbF9iaF9lbmFibGVfaXAoKHVu
c2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCAoKDIgKiAoMVVMIDw8ICgw
ICsgOCkpKSArIDApKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fcmF3X3NwaW5fdHJ5bG9ja19iaChyYXdfc3BpbmxvY2tf
dCAqbG9jaykKewogX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRp
bl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CiBpZiAo
ZG9fcmF3X3NwaW5fdHJ5bG9jayhsb2NrKSkgewogIGRvIHsgfSB3aGlsZSAoMCk7CiAgcmV0dXJu
IDE7CiB9CiBfX2xvY2FsX2JoX2VuYWJsZV9pcCgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoMCksICgoMiAqICgxVUwgPDwgKDAgKyA4KSkpICsgMCkpOwogcmV0dXJuIDA7
Cn0KCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgiIDEKIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgiCnZvaWQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigi
LnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfcmVhZF9sb2NrKHJ3bG9ja190ICpsb2NrKSA7CnZvaWQg
X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9j
ayhyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9j
ay50ZXh0IikpKSBfcmF3X3JlYWRfbG9ja19iaChyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0
cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3dyaXRlX2xvY2tfYmgo
cndsb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2su
dGV4dCIpKSkgX3Jhd19yZWFkX2xvY2tfaXJxKHJ3bG9ja190ICpsb2NrKSA7CnZvaWQgX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfbG9ja19pcnEo
cndsb2NrX3QgKmxvY2spIDsKdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIu
c3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX2xvY2tfaXJxc2F2ZShyd2xvY2tfdCAqbG9jaykK
ICAgICAgIDsKdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2su
dGV4dCIpKSkgX3Jhd193cml0ZV9sb2NrX2lycXNhdmUocndsb2NrX3QgKmxvY2spCiAgICAgICA7
CmludCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFk
X3RyeWxvY2socndsb2NrX3QgKmxvY2spOwppbnQgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNw
aW5sb2NrLnRleHQiKSkpIF9yYXdfd3JpdGVfdHJ5bG9jayhyd2xvY2tfdCAqbG9jayk7CnZvaWQg
X19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLnNwaW5sb2NrLnRleHQiKSkpIF9yYXdfcmVhZF91bmxv
Y2socndsb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3Bpbmxv
Y2sudGV4dCIpKSkgX3Jhd193cml0ZV91bmxvY2socndsb2NrX3QgKmxvY2spIDsKdm9pZCBfX2F0
dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkgX3Jhd19yZWFkX3VubG9ja19i
aChyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9j
ay50ZXh0IikpKSBfcmF3X3dyaXRlX3VubG9ja19iaChyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9f
YXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKSBfcmF3X3JlYWRfdW5sb2Nr
X2lycShyd2xvY2tfdCAqbG9jaykgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlu
bG9jay50ZXh0IikpKSBfcmF3X3dyaXRlX3VubG9ja19pcnEocndsb2NrX3QgKmxvY2spIDsKdm9p
ZCBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuc3BpbmxvY2sudGV4dCIpKSkKX3Jhd19yZWFkX3Vu
bG9ja19pcnFyZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogICAg
ICAgOwp2b2lkIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5zcGlubG9jay50ZXh0IikpKQpfcmF3
X3dyaXRlX3VubG9ja19pcnFyZXN0b3JlKHJ3bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZs
YWdzKQogICAgICAgOwojIDExNyAiLi9pbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21wLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBfX3Jhd19yZWFkX3RyeWxvY2socndsb2NrX3QgKmxvY2spCnsKIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBpZiAocXVldWVkX3JlYWRfdHJ5bG9jaygmKGxvY2spLT5y
YXdfbG9jaykpIHsKICBkbyB7IH0gd2hpbGUgKDApOwogIHJldHVybiAxOwogfQogX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19yYXdfd3Jp
dGVfdHJ5bG9jayhyd2xvY2tfdCAqbG9jaykKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKIGlmIChxdWV1ZWRfd3JpdGVfdHJ5bG9jaygmKGxvY2spLT5yYXdfbG9jaykp
IHsKICBkbyB7IH0gd2hpbGUgKDApOwogIHJldHVybiAxOwogfQogX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKIHJldHVybiAwOwp9CiMgMTQ2ICIuL2luY2x1ZGUvbGludXgv
cndsb2NrX2FwaV9zbXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19yZWFkX2xvY2socndsb2NrX3QgKmxvY2spCnsK
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBkbyB7IH0gd2hpbGUgKDAp
OwogZG8geyh2b2lkKTA7IHF1ZXVlZF9yZWFkX2xvY2soJihsb2NrKS0+cmF3X2xvY2spOyB9IHdo
aWxlICgwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3Jhd19yZWFkX2xvY2tfaXJxc2F2ZShyd2xvY2tf
dCAqbG9jaykKewogdW5zaWduZWQgbG9uZyBmbGFnczsKCiBkbyB7IGRvIHsgKHsgdW5zaWduZWQg
bG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0g
Jl9fZHVtbXkyKTsgMTsgfSk7IGZsYWdzID0gYXJjaF9sb2NhbF9pcnFfc2F2ZSgpOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIp
OwogZG8geyB9IHdoaWxlICgwKTsKIGRvIHsodm9pZCkwOyBxdWV1ZWRfcmVhZF9sb2NrKCYoKGxv
Y2spKS0+cmF3X2xvY2spOyB9IHdoaWxlICgwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7CiByZXR1cm4gZmxhZ3M7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF9sb2NrX2lycShy
d2xvY2tfdCAqbG9jaykKewogZG8geyBhcmNoX2xvY2FsX2lycV9kaXNhYmxlKCk7IH0gd2hpbGUg
KDApOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGRvIHsgfSB3aGls
ZSAoMCk7CiBkbyB7KHZvaWQpMDsgcXVldWVkX3JlYWRfbG9jaygmKGxvY2spLT5yYXdfbG9jayk7
IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3JlYWRfbG9ja19iaChyd2xvY2tfdCAqbG9jaykK
ewogX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5f
YWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CiBkbyB7IH0gd2hpbGUg
KDApOwogZG8geyh2b2lkKTA7IHF1ZXVlZF9yZWFkX2xvY2soJihsb2NrKS0+cmF3X2xvY2spOyB9
IHdoaWxlICgwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBfX3Jhd193cml0ZV9sb2NrX2lycXNhdmUocnds
b2NrX3QgKmxvY2spCnsKIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CgogZG8geyBkbyB7ICh7IHVuc2ln
bmVkIGxvbmcgX19kdW1teTsgdHlwZW9mKGZsYWdzKSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15
ID09ICZfX2R1bW15Mik7IDE7IH0pOyBmbGFncyA9IGFyY2hfbG9jYWxfaXJxX3NhdmUoKTsgfSB3
aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1v
cnkiKTsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7KHZvaWQpMDsgcXVldWVkX3dyaXRlX2xvY2so
JigobG9jaykpLT5yYXdfbG9jayk7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7CiByZXR1cm4gZmxhZ3M7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfbG9j
a19pcnEocndsb2NrX3QgKmxvY2spCnsKIGRvIHsgYXJjaF9sb2NhbF9pcnFfZGlzYWJsZSgpOyB9
IHdoaWxlICgwKTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBkbyB7
IH0gd2hpbGUgKDApOwogZG8geyh2b2lkKTA7IHF1ZXVlZF93cml0ZV9sb2NrKCYobG9jayktPnJh
d19sb2NrKTsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfbG9ja19iaChyd2xvY2tf
dCAqbG9jaykKewogX19sb2NhbF9iaF9kaXNhYmxlX2lwKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRp
bl9yZXR1cm5fYWRkcmVzcygwKSwgKCgyICogKDFVTCA8PCAoMCArIDgpKSkgKyAwKSk7CiBkbyB7
IH0gd2hpbGUgKDApOwogZG8geyh2b2lkKTA7IHF1ZXVlZF93cml0ZV9sb2NrKCYobG9jayktPnJh
d19sb2NrKTsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfd3JpdGVfbG9jayhyd2xvY2tfdCAq
bG9jaykKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGRvIHsgfSB3
aGlsZSAoMCk7CiBkbyB7KHZvaWQpMDsgcXVldWVkX3dyaXRlX2xvY2soJihsb2NrKS0+cmF3X2xv
Y2spOyB9IHdoaWxlICgwKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX3VubG9jayhyd2xvY2tfdCAq
bG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvIHtxdWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9j
ayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3JlYWRfdW5sb2NrKHJ3bG9ja190ICps
b2NrKQp7CiBkbyB7IH0gd2hpbGUgKDApOwogZG8ge3F1ZXVlZF9yZWFkX3VubG9jaygmKGxvY2sp
LT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hpbGUgKDApOwogX19hc21fXyBfX3ZvbGF0aWxlX18o
IiI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApfX3Jhd19yZWFkX3VubG9ja19pcnFyZXN0b3JlKHJ3
bG9ja190ICpsb2NrLCB1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiBkbyB7IH0gd2hpbGUgKDApOwog
ZG8ge3F1ZXVlZF9yZWFkX3VubG9jaygmKGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7IH0gd2hp
bGUgKDApOwogZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsgdHlwZW9mKGZsYWdz
KSBfX2R1bW15MjsgKHZvaWQpKCZfX2R1bW15ID09ICZfX2R1bW15Mik7IDE7IH0pOyBhcmNoX2xv
Y2FsX2lycV9yZXN0b3JlKGZsYWdzKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogX19hc21f
XyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX3Jhd19yZWFkX3VubG9j
a19pcnEocndsb2NrX3QgKmxvY2spCnsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7cXVldWVkX3Jl
YWRfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBkbyB7
IGFyY2hfbG9jYWxfaXJxX2VuYWJsZSgpOyB9IHdoaWxlICgwKTsKIF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19yYXdfcmVhZF91bmxvY2tfYmgocndsb2Nr
X3QgKmxvY2spCnsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7cXVldWVkX3JlYWRfdW5sb2NrKCYo
bG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBfX2xvY2FsX2JoX2VuYWJs
ZV9pcCgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICgoMiAqICgx
VUwgPDwgKDAgKyA4KSkpICsgMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dyaXRlX3VubG9ja19pcnFyZXN0
b3JlKHJ3bG9ja190ICpsb2NrLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKewogZG8g
eyB9IHdoaWxlICgwKTsKIGRvIHtxdWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9jayktPnJhd19sb2Nr
KTsgKHZvaWQpMDsgfSB3aGlsZSAoMCk7CiBkbyB7IGRvIHsgKHsgdW5zaWduZWQgbG9uZyBfX2R1
bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0gJl9fZHVtbXky
KTsgMTsgfSk7IGFyY2hfbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKTsgfSB3
aGlsZSAoMCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IF9fcmF3X3dyaXRlX3VubG9ja19pcnEocndsb2NrX3QgKmxvY2spCnsKIGRvIHsgfSB3aGlsZSAo
MCk7CiBkbyB7cXVldWVkX3dyaXRlX3VubG9jaygmKGxvY2spLT5yYXdfbG9jayk7ICh2b2lkKTA7
IH0gd2hpbGUgKDApOwogZG8geyBhcmNoX2xvY2FsX2lycV9lbmFibGUoKTsgfSB3aGlsZSAoMCk7
CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmF3X3dy
aXRlX3VubG9ja19iaChyd2xvY2tfdCAqbG9jaykKewogZG8geyB9IHdoaWxlICgwKTsKIGRvIHtx
dWV1ZWRfd3JpdGVfdW5sb2NrKCYobG9jayktPnJhd19sb2NrKTsgKHZvaWQpMDsgfSB3aGlsZSAo
MCk7CiBfX2xvY2FsX2JoX2VuYWJsZV9pcCgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoMCksICgoMiAqICgxVUwgPDwgKDAgKyA4KSkpICsgMCkpOwp9CiMgMTkxICIuL2lu
Y2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oIiAyCiMgMzE3ICIuL2luY2x1ZGUvbGludXgv
c3BpbmxvY2suaCIgMgojIDMyNSAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgcmF3X3NwaW5sb2NrX3QgKnNwaW5sb2NrX2NoZWNr
KHNwaW5sb2NrX3QgKmxvY2spCnsKIHJldHVybiAmbG9jay0+cmxvY2s7Cn0KCgoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX2xvY2soc3BpbmxvY2tfdCAq
bG9jaykKewogX3Jhd19zcGluX2xvY2soJmxvY2stPnJsb2NrKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNwaW5fbG9ja19iaChzcGlubG9ja190ICpsb2NrKQp7
CiBfcmF3X3NwaW5fbG9ja19iaCgmbG9jay0+cmxvY2spOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBzcGluX3RyeWxvY2soc3BpbmxvY2tfdCAqbG9jaykKewogcmV0
dXJuIChfcmF3X3NwaW5fdHJ5bG9jaygmbG9jay0+cmxvY2spKTsKfQojIDM2MSAiLi9pbmNsdWRl
L2xpbnV4L3NwaW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9p
ZCBzcGluX2xvY2tfaXJxKHNwaW5sb2NrX3QgKmxvY2spCnsKIF9yYXdfc3Bpbl9sb2NrX2lycSgm
bG9jay0+cmxvY2spOwp9CiMgMzc2ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNwaW5fdW5sb2NrKHNwaW5sb2NrX3Qg
KmxvY2spCnsKIF9fcmF3X3NwaW5fdW5sb2NrKCZsb2NrLT5ybG9jayk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19iaChzcGlubG9ja190ICps
b2NrKQp7CiBfcmF3X3NwaW5fdW5sb2NrX2JoKCZsb2NrLT5ybG9jayk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19pcnEoc3BpbmxvY2tfdCAq
bG9jaykKewogX19yYXdfc3Bpbl91bmxvY2tfaXJxKCZsb2NrLT5ybG9jayk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBzcGluX3VubG9ja19pcnFyZXN0b3JlKHNw
aW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKIGRvIHsgKHsgdW5zaWduZWQg
bG9uZyBfX2R1bW15OyB0eXBlb2YoZmxhZ3MpIF9fZHVtbXkyOyAodm9pZCkoJl9fZHVtbXkgPT0g
Jl9fZHVtbXkyKTsgMTsgfSk7IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbG9jay0+cmxv
Y2ssIGZsYWdzKTsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IHNwaW5fdHJ5bG9ja19iaChzcGlubG9ja190ICpsb2NrKQp7CiByZXR1cm4gKF9y
YXdfc3Bpbl90cnlsb2NrX2JoKCZsb2NrLT5ybG9jaykpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBzcGluX3RyeWxvY2tfaXJxKHNwaW5sb2NrX3QgKmxvY2spCnsK
IHJldHVybiAoeyBkbyB7IGFyY2hfbG9jYWxfaXJxX2Rpc2FibGUoKTsgfSB3aGlsZSAoMCk7IChf
cmF3X3NwaW5fdHJ5bG9jaygmbG9jay0+cmxvY2spKSA/IDEgOiAoeyBkbyB7IGFyY2hfbG9jYWxf
aXJxX2VuYWJsZSgpOyB9IHdoaWxlICgwKTsgMDsgfSk7IH0pOwp9CiMgNDI5ICIuL2luY2x1ZGUv
bGludXgvc3BpbmxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQg
c3Bpbl9pc19sb2NrZWQoc3BpbmxvY2tfdCAqbG9jaykKewogcmV0dXJuIHF1ZXVlZF9zcGluX2lz
X2xvY2tlZCgmKCZsb2NrLT5ybG9jayktPnJhd19sb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBpbnQgc3Bpbl9pc19jb250ZW5kZWQoc3BpbmxvY2tfdCAqbG9jaykK
ewogcmV0dXJuIHF1ZXVlZF9zcGluX2lzX2NvbnRlbmRlZCgmKCZsb2NrLT5ybG9jayktPnJhd19s
b2NrKTsKfQojIDQ1NCAiLi9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiCmV4dGVybiBpbnQgX2F0
b21pY19kZWNfYW5kX2xvY2soYXRvbWljX3QgKmF0b21pYywgc3BpbmxvY2tfdCAqbG9jayk7CgoK
CmV4dGVybiBpbnQgX2F0b21pY19kZWNfYW5kX2xvY2tfaXJxc2F2ZShhdG9taWNfdCAqYXRvbWlj
LCBzcGlubG9ja190ICpsb2NrLAogICAgIHVuc2lnbmVkIGxvbmcgKmZsYWdzKTsKCgoKaW50IF9f
YWxsb2NfYnVja2V0X3NwaW5sb2NrcyhzcGlubG9ja190ICoqbG9ja3MsIHVuc2lnbmVkIGludCAq
bG9ja19tYXNrLAogICAgICAgIHNpemVfdCBtYXhfc2l6ZSwgdW5zaWduZWQgaW50IGNwdV9tdWx0
LAogICAgICAgIGdmcF90IGdmcCwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBzdHJ1Y3QgbG9j
a19jbGFzc19rZXkgKmtleSk7CiMgNDc4ICIuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKdm9p
ZCBmcmVlX2J1Y2tldF9zcGlubG9ja3Moc3BpbmxvY2tfdCAqbG9ja3MpOwojIDE3ICIuL2luY2x1
ZGUvbGludXgva3JlZi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiIDEKIyA4
OCAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCnN0cnVjdCBtdXRleDsKIyA5OCAiLi9pbmNs
dWRlL2xpbnV4L3JlZmNvdW50LmgiCnR5cGVkZWYgc3RydWN0IHJlZmNvdW50X3N0cnVjdCB7CiBh
dG9taWNfdCByZWZzOwp9IHJlZmNvdW50X3Q7CgoKCgoKZW51bSByZWZjb3VudF9zYXR1cmF0aW9u
X3R5cGUgewogUkVGQ09VTlRfQUREX05PVF9aRVJPX09WRiwKIFJFRkNPVU5UX0FERF9PVkYsCiBS
RUZDT1VOVF9BRERfVUFGLAogUkVGQ09VTlRfU1VCX1VBRiwKIFJFRkNPVU5UX0RFQ19MRUFLLAp9
OwoKdm9pZCByZWZjb3VudF93YXJuX3NhdHVyYXRlKHJlZmNvdW50X3QgKnIsIGVudW0gcmVmY291
bnRfc2F0dXJhdGlvbl90eXBlIHQpOwoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlZmNvdW50X3NldChyZWZjb3VudF90
ICpyLCBpbnQgbikKewogYXRvbWljX3NldCgmci0+cmVmcywgbik7Cn0KCgoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGludCByZWZjb3VudF9yZWFkKGNvbnN0IHJlZmNvdW50X3QgKnIpCnsKIHJldHVybiBhdG9taWNf
cmVhZCgmci0+cmVmcyk7Cn0KIyAxNTUgIi4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9vbCByZWZjb3VudF9hZGRfbm90
X3plcm8oaW50IGksIHJlZmNvdW50X3QgKnIpCnsKIGludCBvbGQgPSByZWZjb3VudF9yZWFkKHIp
OwoKIGRvIHsKICBpZiAoIW9sZCkKICAgYnJlYWs7CiB9IHdoaWxlICghYXRvbWljX3RyeV9jbXB4
Y2hnKCZyLT5yZWZzLCAmb2xkLCBvbGQgKyBpKSk7CgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
b2xkIDwgMCB8fCBvbGQgKyBpIDwgMCksIDApKQogIHJlZmNvdW50X3dhcm5fc2F0dXJhdGUociwg
UkVGQ09VTlRfQUREX05PVF9aRVJPX09WRik7CgogcmV0dXJuIG9sZDsKfQojIDE4NiAiLi9pbmNs
dWRlL2xpbnV4L3JlZmNvdW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVmY291bnRfYWRkKGludCBpLCByZWZjb3VudF90
ICpyKQp7CiBpbnQgb2xkID0gYXRvbWljX2ZldGNoX2FkZChpLCAmci0+cmVmcyk7CgogaWYgKF9f
YnVpbHRpbl9leHBlY3QoISEoIW9sZCksIDApKQogIHJlZmNvdW50X3dhcm5fc2F0dXJhdGUociwg
UkVGQ09VTlRfQUREX1VBRik7CiBlbHNlIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAg
fHwgb2xkICsgaSA8IDApLCAwKSkKICByZWZjb3VudF93YXJuX3NhdHVyYXRlKHIsIFJFRkNPVU5U
X0FERF9PVkYpOwp9CiMgMjA5ICIuL2luY2x1ZGUvbGludXgvcmVmY291bnQuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJvb2wgcmVmY291bnRfaW5jX25vdF96ZXJv
KHJlZmNvdW50X3QgKnIpCnsKIHJldHVybiByZWZjb3VudF9hZGRfbm90X3plcm8oMSwgcik7Cn0K
IyAyMjYgIi4vaW5jbHVkZS9saW51eC9yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlZmNvdW50X2luYyhyZWZj
b3VudF90ICpyKQp7CiByZWZjb3VudF9hZGQoMSwgcik7Cn0KIyAyNTEgIi4vaW5jbHVkZS9saW51
eC9yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9v
bCByZWZjb3VudF9zdWJfYW5kX3Rlc3QoaW50IGksIHJlZmNvdW50X3QgKnIpCnsKIGludCBvbGQg
PSBhdG9taWNfZmV0Y2hfc3ViKGksICZyLT5yZWZzKTsKCiBpZiAob2xkID09IGkpIHsKICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogIHJldHVybiB0cnVlOwogfQoKIGlm
IChfX2J1aWx0aW5fZXhwZWN0KCEhKG9sZCA8IDAgfHwgb2xkIC0gaSA8IDApLCAwKSkKICByZWZj
b3VudF93YXJuX3NhdHVyYXRlKHIsIFJFRkNPVU5UX1NVQl9VQUYpOwoKIHJldHVybiBmYWxzZTsK
fQojIDI3OSAiLi9pbmNsdWRlL2xpbnV4L3JlZmNvdW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19hbmRfdGVzdChyZWZjb3VudF90
ICpyKQp7CiByZXR1cm4gcmVmY291bnRfc3ViX2FuZF90ZXN0KDEsIHIpOwp9CiMgMjk0ICIuL2lu
Y2x1ZGUvbGludXgvcmVmY291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWZjb3VudF9kZWMocmVmY291bnRfdCAqcikK
ewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoYXRvbWljX2ZldGNoX3N1YigxLCAmci0+cmVmcykg
PD0gMSksIDApKQogIHJlZmNvdW50X3dhcm5fc2F0dXJhdGUociwgUkVGQ09VTlRfREVDX0xFQUsp
Owp9CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJvb2wg
cmVmY291bnRfZGVjX2lmX29uZShyZWZjb3VudF90ICpyKTsKZXh0ZXJuIF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBib29sIHJlZmNvdW50X2RlY19ub3Rfb25lKHJlZmNv
dW50X3QgKnIpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGJvb2wgcmVmY291bnRfZGVjX2FuZF9tdXRleF9sb2NrKHJlZmNvdW50X3QgKnIsIHN0cnVjdCBt
dXRleCAqbG9jayk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgYm9vbCByZWZjb3VudF9kZWNfYW5kX2xvY2socmVmY291bnRfdCAqciwgc3BpbmxvY2tfdCAq
bG9jayk7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgYm9v
bCByZWZjb3VudF9kZWNfYW5kX2xvY2tfaXJxc2F2ZShyZWZjb3VudF90ICpyLAogICAgICAgICAg
ICAgc3BpbmxvY2tfdCAqbG9jaywKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKmZsYWdzKTsK
IyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tyZWYuaCIgMgoKc3RydWN0IGtyZWYgewogcmVmY291bnRf
dCByZWZjb3VudDsKfTsKCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga3JlZl9pbml0KHN0cnVjdCBrcmVmICprcmVmKQp7
CiByZWZjb3VudF9zZXQoJmtyZWYtPnJlZmNvdW50LCAxKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGtyZWZf
cmVhZChjb25zdCBzdHJ1Y3Qga3JlZiAqa3JlZikKewogcmV0dXJuIHJlZmNvdW50X3JlYWQoJmty
ZWYtPnJlZmNvdW50KTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga3JlZl9nZXQoc3RydWN0IGtyZWYgKmtyZWYpCnsK
IHJlZmNvdW50X2luYygma3JlZi0+cmVmY291bnQpOwp9CiMgNjIgIi4vaW5jbHVkZS9saW51eC9r
cmVmLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBrcmVmX3B1dChzdHJ1Y3Qga3JlZiAqa3JlZiwgdm9pZCAoKnJlbGVhc2UpKHN0
cnVjdCBrcmVmICprcmVmKSkKewogaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgma3JlZi0+cmVm
Y291bnQpKSB7CiAgcmVsZWFzZShrcmVmKTsKICByZXR1cm4gMTsKIH0KIHJldHVybiAwOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQga3JlZl9wdXRfbXV0ZXgoc3RydWN0IGtyZWYgKmtyZWYsCiAgICAgdm9pZCAoKnJlbGVhc2Up
KHN0cnVjdCBrcmVmICprcmVmKSwKICAgICBzdHJ1Y3QgbXV0ZXggKmxvY2spCnsKIGlmIChyZWZj
b3VudF9kZWNfYW5kX211dGV4X2xvY2soJmtyZWYtPnJlZmNvdW50LCBsb2NrKSkgewogIHJlbGVh
c2Uoa3JlZik7CiAgcmV0dXJuIDE7CiB9CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGtyZWZfcHV0X2xvY2so
c3RydWN0IGtyZWYgKmtyZWYsCiAgICB2b2lkICgqcmVsZWFzZSkoc3RydWN0IGtyZWYgKmtyZWYp
LAogICAgc3BpbmxvY2tfdCAqbG9jaykKewogaWYgKHJlZmNvdW50X2RlY19hbmRfbG9jaygma3Jl
Zi0+cmVmY291bnQsIGxvY2spKSB7CiAgcmVsZWFzZShrcmVmKTsKICByZXR1cm4gMTsKIH0KIHJl
dHVybiAwOwp9CiMgMTA5ICIuL2luY2x1ZGUvbGludXgva3JlZi5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtyZWZfZ2V0X3VubGVzc196ZXJvKHN0cnVjdCBr
cmVmICprcmVmKQp7CiByZXR1cm4gcmVmY291bnRfaW5jX25vdF96ZXJvKCZrcmVmLT5yZWZjb3Vu
dCk7Cn0KIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL29z
X3R5cGVzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIgMQojIDE1ICIuL2luY2x1
ZGUvbGludXgvc2xhYi5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIgMQoKCgoKIyAxICIu
L2luY2x1ZGUvbGludXgvbW1kZWJ1Zy5oIiAxCgoKCgoKCgpzdHJ1Y3QgcGFnZTsKc3RydWN0IHZt
X2FyZWFfc3RydWN0OwpzdHJ1Y3QgbW1fc3RydWN0OwoKZXh0ZXJuIHZvaWQgZHVtcF9wYWdlKHN0
cnVjdCBwYWdlICpwYWdlLCBjb25zdCBjaGFyICpyZWFzb24pOwpleHRlcm4gdm9pZCBfX2R1bXBf
cGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgY29uc3QgY2hhciAqcmVhc29uKTsKdm9pZCBkdW1wX3Zt
YShjb25zdCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CnZvaWQgZHVtcF9tbShjb25zdCBz
dHJ1Y3QgbW1fc3RydWN0ICptbSk7CiMgNiAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAxCiMgMTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKIyAxICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIiAxCiMgMTIgIi4vaW5jbHVkZS9saW51eC93
YWl0LmgiCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvd2FpdC5oIiAxCiMgMTMgIi4vaW5jbHVk
ZS9saW51eC93YWl0LmgiIDIKCnR5cGVkZWYgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgd2FpdF9x
dWV1ZV9lbnRyeV90OwoKdHlwZWRlZiBpbnQgKCp3YWl0X3F1ZXVlX2Z1bmNfdCkoc3RydWN0IHdh
aXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgZmxhZ3MsIHZvaWQg
KmtleSk7CmludCBkZWZhdWx0X3dha2VfZnVuY3Rpb24oc3RydWN0IHdhaXRfcXVldWVfZW50cnkg
KndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgZmxhZ3MsIHZvaWQgKmtleSk7CiMgMjcgIi4v
aW5jbHVkZS9saW51eC93YWl0LmgiCnN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5IHsKIHVuc2lnbmVk
IGludCBmbGFnczsKIHZvaWQgKnByaXZhdGU7CiB3YWl0X3F1ZXVlX2Z1bmNfdCBmdW5jOwogc3Ry
dWN0IGxpc3RfaGVhZCBlbnRyeTsKfTsKCnN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgewogc3Bpbmxv
Y2tfdCBsb2NrOwogc3RydWN0IGxpc3RfaGVhZCBoZWFkOwp9Owp0eXBlZGVmIHN0cnVjdCB3YWl0
X3F1ZXVlX2hlYWQgd2FpdF9xdWV1ZV9oZWFkX3Q7CgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CiMgNjEg
Ii4vaW5jbHVkZS9saW51eC93YWl0LmgiCmV4dGVybiB2b2lkIF9faW5pdF93YWl0cXVldWVfaGVh
ZChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1
Y3QgbG9ja19jbGFzc19rZXkgKik7CiMgNzkgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
aW5pdF93YWl0cXVldWVfZW50cnkoc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCBz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApCnsKIHdxX2VudHJ5LT5mbGFncyA9IDA7CiB3cV9lbnRyeS0+
cHJpdmF0ZSA9IHA7CiB3cV9lbnRyeS0+ZnVuYyA9IGRlZmF1bHRfd2FrZV9mdW5jdGlvbjsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZAppbml0X3dhaXRxdWV1ZV9mdW5jX2VudHJ5KHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3
cV9lbnRyeSwgd2FpdF9xdWV1ZV9mdW5jX3QgZnVuYykKewogd3FfZW50cnktPmZsYWdzID0gMDsK
IHdxX2VudHJ5LT5wcml2YXRlID0gKCh2b2lkICopMCk7CiB3cV9lbnRyeS0+ZnVuYyA9IGZ1bmM7
Cn0KIyAxMjQgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB3YWl0cXVldWVfYWN0aXZlKHN0
cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQpCnsKIHJldHVybiAhbGlzdF9lbXB0eSgmd3Ff
aGVhZC0+aGVhZCk7Cn0KIyAxMzcgIi4vaW5jbHVkZS9saW51eC93YWl0LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgd3FfaGFz
X3NpbmdsZV9zbGVlcGVyKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQpCnsKIHJldHVy
biBsaXN0X2lzX3Npbmd1bGFyKCZ3cV9oZWFkLT5oZWFkKTsKfQojIDE1MCAiLi9pbmNsdWRlL2xp
bnV4L3dhaXQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCB3cV9oYXNfc2xlZXBlcihzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3
cV9oZWFkKQp7CgoKCgoKCgogYXNtIHZvbGF0aWxlKCJsb2NrOyBhZGRsICQwLC00KCUlcnNwKSIg
Ojo6ICJtZW1vcnkiLCAiY2MiKTsKIHJldHVybiB3YWl0cXVldWVfYWN0aXZlKHdxX2hlYWQpOwp9
CgpleHRlcm4gdm9pZCBhZGRfd2FpdF9xdWV1ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9o
ZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpOwpleHRlcm4gdm9pZCBhZGRf
d2FpdF9xdWV1ZV9leGNsdXNpdmUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3Ry
dWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KTsKZXh0ZXJuIHZvaWQgcmVtb3ZlX3dhaXRf
cXVldWUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVf
ZW50cnkgKndxX2VudHJ5KTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hZGRfd2FpdF9xdWV1ZShzdHJ1Y3Qgd2FpdF9xdWV1
ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCnsKIGxp
c3RfYWRkKCZ3cV9lbnRyeS0+ZW50cnksICZ3cV9oZWFkLT5oZWFkKTsKfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApfX2Fk
ZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBz
dHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCnsKIHdxX2VudHJ5LT5mbGFncyB8PSAw
eDAxOwogX19hZGRfd2FpdF9xdWV1ZSh3cV9oZWFkLCB3cV9lbnRyeSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19hZGRf
d2FpdF9xdWV1ZV9lbnRyeV90YWlsKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0
cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSkKewogbGlzdF9hZGRfdGFpbCgmd3FfZW50
cnktPmVudHJ5LCAmd3FfaGVhZC0+aGVhZCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKX19hZGRfd2FpdF9xdWV1ZV9lbnRy
eV90YWlsX2V4Y2x1c2l2ZShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qg
d2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnkpCnsKIHdxX2VudHJ5LT5mbGFncyB8PSAweDAxOwog
X19hZGRfd2FpdF9xdWV1ZV9lbnRyeV90YWlsKHdxX2hlYWQsIHdxX2VudHJ5KTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApf
X3JlbW92ZV93YWl0X3F1ZXVlKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0cnVj
dCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSkKewogbGlzdF9kZWwoJndxX2VudHJ5LT5lbnRy
eSk7Cn0KCnZvaWQgX193YWtlX3VwKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHVu
c2lnbmVkIGludCBtb2RlLCBpbnQgbnIsIHZvaWQgKmtleSk7CnZvaWQgX193YWtlX3VwX2xvY2tl
ZF9rZXkoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdW5zaWduZWQgaW50IG1vZGUs
IHZvaWQgKmtleSk7CnZvaWQgX193YWtlX3VwX2xvY2tlZF9rZXlfYm9va21hcmsoc3RydWN0IHdh
aXRfcXVldWVfaGVhZCAqd3FfaGVhZCwKICB1bnNpZ25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5LCB3
YWl0X3F1ZXVlX2VudHJ5X3QgKmJvb2ttYXJrKTsKdm9pZCBfX3dha2VfdXBfc3luY19rZXkoc3Ry
dWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdW5zaWduZWQgaW50IG1vZGUsIHZvaWQgKmtl
eSk7CnZvaWQgX193YWtlX3VwX2xvY2tlZF9zeW5jX2tleShzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFk
ICp3cV9oZWFkLCB1bnNpZ25lZCBpbnQgbW9kZSwgdm9pZCAqa2V5KTsKdm9pZCBfX3dha2VfdXBf
bG9ja2VkKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHVuc2lnbmVkIGludCBtb2Rl
LCBpbnQgbnIpOwp2b2lkIF9fd2FrZV91cF9zeW5jKHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndx
X2hlYWQsIHVuc2lnbmVkIGludCBtb2RlKTsKIyAyNDggIi4vaW5jbHVkZS9saW51eC93YWl0Lmgi
CmV4dGVybiB2b2lkIGluaXRfd2FpdF9lbnRyeShzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3Ff
ZW50cnksIGludCBmbGFncyk7CiMgNzMyICIuL2luY2x1ZGUvbGludXgvd2FpdC5oIgpleHRlcm4g
aW50IGRvX3dhaXRfaW50cih3YWl0X3F1ZXVlX2hlYWRfdCAqLCB3YWl0X3F1ZXVlX2VudHJ5X3Qg
Kik7CmV4dGVybiBpbnQgZG9fd2FpdF9pbnRyX2lycSh3YWl0X3F1ZXVlX2hlYWRfdCAqLCB3YWl0
X3F1ZXVlX2VudHJ5X3QgKik7CiMgMTEyNiAiLi9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKdm9pZCBw
cmVwYXJlX3RvX3dhaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdh
aXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCBpbnQgc3RhdGUpOwp2b2lkIHByZXBhcmVfdG9fd2Fp
dF9leGNsdXNpdmUoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRf
cXVldWVfZW50cnkgKndxX2VudHJ5LCBpbnQgc3RhdGUpOwpsb25nIHByZXBhcmVfdG9fd2FpdF9l
dmVudChzdHJ1Y3Qgd2FpdF9xdWV1ZV9oZWFkICp3cV9oZWFkLCBzdHJ1Y3Qgd2FpdF9xdWV1ZV9l
bnRyeSAqd3FfZW50cnksIGludCBzdGF0ZSk7CnZvaWQgZmluaXNoX3dhaXQoc3RydWN0IHdhaXRf
cXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfcXVldWVfZW50cnkgKndxX2VudHJ5KTsK
bG9uZyB3YWl0X3dva2VuKHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5ICp3cV9lbnRyeSwgdW5zaWdu
ZWQgbW9kZSwgbG9uZyB0aW1lb3V0KTsKaW50IHdva2VuX3dha2VfZnVuY3Rpb24oc3RydWN0IHdh
aXRfcXVldWVfZW50cnkgKndxX2VudHJ5LCB1bnNpZ25lZCBtb2RlLCBpbnQgc3luYywgdm9pZCAq
a2V5KTsKaW50IGF1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRy
eSAqd3FfZW50cnksIHVuc2lnbmVkIG1vZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwojIDExICIu
L2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvbnVtYS5o
IiAxCiMgMTUgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGlu
dXgvc2VxbG9jay5oIiAxCiMgNDggIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCnR5cGVkZWYg
c3RydWN0IHNlcWNvdW50IHsKIHVuc2lnbmVkIHNlcXVlbmNlOwoKCgp9IHNlcWNvdW50X3Q7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIF9fc2VxY291bnRfaW5pdChzZXFjb3VudF90ICpzLCBjb25zdCBjaGFyICpuYW1lLAogICAg
ICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpCnsKCgoKIGRvIHsgKHZvaWQpKG5hbWUpOyAo
dm9pZCkoa2V5KTsgfSB3aGlsZSAoMCk7CiBzLT5zZXF1ZW5jZSA9IDA7Cn0KIyAxMDggIi4vaW5j
bHVkZS9saW51eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIF9fcmVhZF9zZXFjb3VudF9iZWdpbihjb25z
dCBzZXFjb3VudF90ICpzKQp7CiB1bnNpZ25lZCByZXQ7CgpyZXBlYXQ6CiByZXQgPSAoeyB1bmlv
biB7IHR5cGVvZihzLT5zZXF1ZW5jZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEp
IF9fcmVhZF9vbmNlX3NpemUoJihzLT5zZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1
ZW5jZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191
Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsg
fSk7CiBpZiAoX19idWlsdGluX2V4cGVjdCghIShyZXQgJiAxKSwgMCkpIHsKICBjcHVfcmVsYXgo
KTsKICBnb3RvIHJlcGVhdDsKIH0KIHJldHVybiByZXQ7Cn0KIyAxMzAgIi4vaW5jbHVkZS9saW51
eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19yZWFkX3NlcWNvdW50KGNvbnN0IHNlcWNvdW50X3Qg
KnMpCnsKIHVuc2lnbmVkIHJldCA9ICh7IHVuaW9uIHsgdHlwZW9mKHMtPnNlcXVlbmNlKSBfX3Zh
bDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKHMtPnNlcXVl
bmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6
ZV9ub2NoZWNrKCYocy0+c2VxdWVuY2UpLCBfX3UuX19jLCBzaXplb2Yocy0+c2VxdWVuY2UpKTsg
ZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIi
OiA6IDoibWVtb3J5Iik7CiByZXR1cm4gcmV0Owp9CiMgMTQ2ICIuL2luY2x1ZGUvbGludXgvc2Vx
bG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1bnNpZ25lZCByYXdfcmVhZF9zZXFjb3VudF9iZWdpbihjb25zdCBzZXFjb3VudF90
ICpzKQp7CiB1bnNpZ25lZCByZXQgPSBfX3JlYWRfc2VxY291bnRfYmVnaW4ocyk7CiBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogcmV0dXJuIHJldDsKfQojIDE2MiAiLi9p
bmNsdWRlL2xpbnV4L3NlcWxvY2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgcmVhZF9zZXFjb3VudF9iZWdpbihjb25z
dCBzZXFjb3VudF90ICpzKQp7CiA7CiByZXR1cm4gcmF3X3JlYWRfc2VxY291bnRfYmVnaW4ocyk7
Cn0KIyAxODIgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJhd19zZXFjb3Vu
dF9iZWdpbihjb25zdCBzZXFjb3VudF90ICpzKQp7CiB1bnNpZ25lZCByZXQgPSAoeyB1bmlvbiB7
IHR5cGVvZihzLT5zZXF1ZW5jZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9f
cmVhZF9vbmNlX3NpemUoJihzLT5zZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1ZW5j
ZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191Ll9f
Yywgc2l6ZW9mKHMtPnNlcXVlbmNlKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7
CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogcmV0dXJuIHJldCAmIH4x
Owp9CiMgMjAzICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19yZWFkX3NlcWNvdW50
X3JldHJ5KGNvbnN0IHNlcWNvdW50X3QgKnMsIHVuc2lnbmVkIHN0YXJ0KQp7CiByZXR1cm4gX19i
dWlsdGluX2V4cGVjdCghIShzLT5zZXF1ZW5jZSAhPSBzdGFydCksIDApOwp9CiMgMjE4ICIuL2lu
Y2x1ZGUvbGludXgvc2VxbG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmVhZF9zZXFjb3VudF9yZXRyeShjb25zdCBzZXFj
b3VudF90ICpzLCB1bnNpZ25lZCBzdGFydCkKewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDog
OiJtZW1vcnkiKTsKIHJldHVybiBfX3JlYWRfc2VxY291bnRfcmV0cnkocywgc3RhcnQpOwp9CgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgcmF3X3dyaXRlX3NlcWNvdW50X2JlZ2luKHNlcWNvdW50X3QgKnMpCnsKIHMtPnNlcXVl
bmNlKys7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJh
d193cml0ZV9zZXFjb3VudF9lbmQoc2VxY291bnRfdCAqcykKewogX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKIHMtPnNlcXVlbmNlKys7Cn0KIyAyNzIgIi4vaW5jbHVkZS9s
aW51eC9zZXFsb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcmF3X3dyaXRlX3NlcWNvdW50X2JhcnJpZXIoc2VxY291bnRf
dCAqcykKewogcy0+c2VxdWVuY2UrKzsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVt
b3J5Iik7CiBzLT5zZXF1ZW5jZSsrOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcmF3X3JlYWRfc2VxY291bnRfbGF0Y2goc2Vx
Y291bnRfdCAqcykKewoKIGludCBzZXEgPSAoeyB1bmlvbiB7IHR5cGVvZihzLT5zZXF1ZW5jZSkg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihzLT5z
ZXF1ZW5jZSksIF9fdS5fX2MsIHNpemVvZihzLT5zZXF1ZW5jZSkpOyBlbHNlIF9fcmVhZF9vbmNl
X3NpemVfbm9jaGVjaygmKHMtPnNlcXVlbmNlKSwgX191Ll9fYywgc2l6ZW9mKHMtPnNlcXVlbmNl
KSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CiByZXR1cm4gc2VxOwp9CiMgMzYz
ICIuL2luY2x1ZGUvbGludXgvc2VxbG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJhd193cml0ZV9zZXFjb3VudF9sYXRj
aChzZXFjb3VudF90ICpzKQp7CiAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1l
bW9yeSIpOwogICAgICAgcy0+c2VxdWVuY2UrKzsKICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9f
KCIiOiA6IDoibWVtb3J5Iik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcWNvdW50X2JlZ2luX25lc3Rl
ZChzZXFjb3VudF90ICpzLCBpbnQgc3ViY2xhc3MpCnsKIHJhd193cml0ZV9zZXFjb3VudF9iZWdp
bihzKTsKIGRvIHsgfSB3aGlsZSAoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3JpdGVfc2VxY291bnRfYmVnaW4oc2Vx
Y291bnRfdCAqcykKewogd3JpdGVfc2VxY291bnRfYmVnaW5fbmVzdGVkKHMsIDApOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHdyaXRlX3NlcWNvdW50X2VuZChzZXFjb3VudF90ICpzKQp7CiBkbyB7IH0gd2hpbGUgKDApOwog
cmF3X3dyaXRlX3NlcWNvdW50X2VuZChzKTsKfQojIDM5OCAiLi9pbmNsdWRlL2xpbnV4L3NlcWxv
Y2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCB3cml0ZV9zZXFjb3VudF9pbnZhbGlkYXRlKHNlcWNvdW50X3QgKnMpCnsKIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBzLT5zZXF1ZW5jZSs9MjsKfQoK
dHlwZWRlZiBzdHJ1Y3Qgewogc3RydWN0IHNlcWNvdW50IHNlcWNvdW50Owogc3BpbmxvY2tfdCBs
b2NrOwp9IHNlcWxvY2tfdDsKIyA0MzEgIi4vaW5jbHVkZS9saW51eC9zZXFsb2NrLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIHJlYWRfc2VxYmVnaW4oY29uc3Qgc2VxbG9ja190ICpzbCkKewogcmV0dXJuIHJlYWRfc2Vx
Y291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIHJlYWRfc2VxcmV0cnkoY29u
c3Qgc2VxbG9ja190ICpzbCwgdW5zaWduZWQgc3RhcnQpCnsKIHJldHVybiByZWFkX3NlcWNvdW50
X3JldHJ5KCZzbC0+c2VxY291bnQsIHN0YXJ0KTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHdyaXRlX3NlcWxvY2so
c2VxbG9ja190ICpzbCkKewogc3Bpbl9sb2NrKCZzbC0+bG9jayk7CiB3cml0ZV9zZXFjb3VudF9i
ZWdpbigmc2wtPnNlcWNvdW50KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9zZXF1bmxvY2soc2VxbG9ja190ICpz
bCkKewogd3JpdGVfc2VxY291bnRfZW5kKCZzbC0+c2VxY291bnQpOwogc3Bpbl91bmxvY2soJnNs
LT5sb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB3cml0ZV9zZXFsb2NrX2JoKHNlcWxvY2tfdCAqc2wpCnsKIHNwaW5f
bG9ja19iaCgmc2wtPmxvY2spOwogd3JpdGVfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgd3JpdGVfc2VxdW5sb2NrX2JoKHNlcWxvY2tfdCAqc2wpCnsKIHdyaXRlX3NlcWNv
dW50X2VuZCgmc2wtPnNlcWNvdW50KTsKIHNwaW5fdW5sb2NrX2JoKCZzbC0+bG9jayk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgd3JpdGVfc2VxbG9ja19pcnEoc2VxbG9ja190ICpzbCkKewogc3Bpbl9sb2NrX2lycSgmc2wt
PmxvY2spOwogd3JpdGVfc2VxY291bnRfYmVnaW4oJnNsLT5zZXFjb3VudCk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3Jp
dGVfc2VxdW5sb2NrX2lycShzZXFsb2NrX3QgKnNsKQp7CiB3cml0ZV9zZXFjb3VudF9lbmQoJnNs
LT5zZXFjb3VudCk7CiBzcGluX3VubG9ja19pcnEoJnNsLT5sb2NrKTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZyBfX3dyaXRlX3NlcWxvY2tfaXJxc2F2ZShzZXFsb2NrX3QgKnNsKQp7CiB1bnNpZ25lZCBsb25n
IGZsYWdzOwoKIGRvIHsgZG8geyAoeyB1bnNpZ25lZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFn
cykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsgZmxhZ3Mg
PSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHNwaW5sb2NrX2NoZWNrKCZzbC0+bG9jaykpOyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCk7CiB3cml0ZV9zZXFjb3VudF9iZWdpbigmc2wtPnNlcWNvdW50
KTsKIHJldHVybiBmbGFnczsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAp3cml0ZV9zZXF1bmxvY2tfaXJxcmVzdG9yZShz
ZXFsb2NrX3QgKnNsLCB1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiB3cml0ZV9zZXFjb3VudF9lbmQo
JnNsLT5zZXFjb3VudCk7CiBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzbC0+bG9jaywgZmxhZ3Mp
Owp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcmVhZF9zZXFsb2NrX2V4Y2woc2VxbG9ja190ICpzbCkKewogc3Bpbl9s
b2NrKCZzbC0+bG9jayk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmVhZF9zZXF1bmxvY2tfZXhjbChzZXFsb2NrX3QgKnNs
KQp7CiBzcGluX3VubG9jaygmc2wtPmxvY2spOwp9CiMgNTI2ICIuL2luY2x1ZGUvbGludXgvc2Vx
bG9jay5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHJlYWRfc2VxYmVnaW5fb3JfbG9jayhzZXFsb2NrX3QgKmxvY2ssIGludCAq
c2VxKQp7CiBpZiAoISgqc2VxICYgMSkpCiAgKnNlcSA9IHJlYWRfc2VxYmVnaW4obG9jayk7CiBl
bHNlCiAgcmVhZF9zZXFsb2NrX2V4Y2wobG9jayk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBuZWVkX3NlcXJldHJ5KHNlcWxv
Y2tfdCAqbG9jaywgaW50IHNlcSkKewogcmV0dXJuICEoc2VxICYgMSkgJiYgcmVhZF9zZXFyZXRy
eShsb2NrLCBzZXEpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRvbmVfc2VxcmV0cnkoc2VxbG9ja190ICpsb2NrLCBpbnQg
c2VxKQp7CiBpZiAoc2VxICYgMSkKICByZWFkX3NlcXVubG9ja19leGNsKGxvY2spOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJlYWRfc2VxbG9ja19leGNsX2JoKHNlcWxvY2tfdCAqc2wpCnsKIHNwaW5fbG9ja19iaCgmc2wt
PmxvY2spOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHJlYWRfc2VxdW5sb2NrX2V4Y2xfYmgoc2VxbG9ja190ICpzbCkKewog
c3Bpbl91bmxvY2tfYmgoJnNsLT5sb2NrKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWFkX3NlcWxvY2tfZXhjbF9pcnEo
c2VxbG9ja190ICpzbCkKewogc3Bpbl9sb2NrX2lycSgmc2wtPmxvY2spOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlYWRf
c2VxdW5sb2NrX2V4Y2xfaXJxKHNlcWxvY2tfdCAqc2wpCnsKIHNwaW5fdW5sb2NrX2lycSgmc2wt
PmxvY2spOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF9fcmVhZF9zZXFsb2NrX2V4Y2xfaXJxc2F2ZShzZXFs
b2NrX3QgKnNsKQp7CiB1bnNpZ25lZCBsb25nIGZsYWdzOwoKIGRvIHsgZG8geyAoeyB1bnNpZ25l
ZCBsb25nIF9fZHVtbXk7IHR5cGVvZihmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9
PSAmX19kdW1teTIpOyAxOyB9KTsgZmxhZ3MgPSBfcmF3X3NwaW5fbG9ja19pcnFzYXZlKHNwaW5s
b2NrX2NoZWNrKCZzbC0+bG9jaykpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiByZXR1cm4g
ZmxhZ3M7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQKcmVhZF9zZXF1bmxvY2tfZXhjbF9pcnFyZXN0b3JlKHNlcWxvY2tf
dCAqc2wsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNs
LT5sb2NrLCBmbGFncyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcKcmVhZF9zZXFiZWdpbl9vcl9sb2NrX2ly
cXNhdmUoc2VxbG9ja190ICpsb2NrLCBpbnQgKnNlcSkKewogdW5zaWduZWQgbG9uZyBmbGFncyA9
IDA7CgogaWYgKCEoKnNlcSAmIDEpKQogICpzZXEgPSByZWFkX3NlcWJlZ2luKGxvY2spOwogZWxz
ZQogIGRvIHsgZmxhZ3MgPSBfX3JlYWRfc2VxbG9ja19leGNsX2lycXNhdmUobG9jayk7IH0gd2hp
bGUgKDApOwoKIHJldHVybiBmbGFnczsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApkb25lX3NlcXJldHJ5X2lycXJlc3RvcmUo
c2VxbG9ja190ICpsb2NrLCBpbnQgc2VxLCB1bnNpZ25lZCBsb25nIGZsYWdzKQp7CiBpZiAoc2Vx
ICYgMSkKICByZWFkX3NlcXVubG9ja19leGNsX2lycXJlc3RvcmUobG9jaywgZmxhZ3MpOwp9CiMg
MTcgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9ub2Rl
bWFzay5oIiAxCiMgOTggIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5oIgp0eXBlZGVmIHN0cnVj
dCB7IHVuc2lnbmVkIGxvbmcgYml0c1soKCgoMSA8PCAwKSkgKyAoKHNpemVvZihsb25nKSAqIDgp
KSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkpXTsgfSBub2RlbWFza190OwpleHRlcm4gbm9k
ZW1hc2tfdCBfdW51c2VkX25vZGVtYXNrX2FyZ187CiMgMTA5ICIuL2luY2x1ZGUvbGludXgvbm9k
ZW1hc2suaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdW5zaWduZWQgaW50IF9fbm9kZW1hc2tfcHJfbnVtbm9kZXMoY29uc3Qgbm9kZW1h
c2tfdCAqbSkKewogcmV0dXJuIG0gPyAoMSA8PCAwKSA6IDA7Cn0Kc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgdW5zaWduZWQgbG9u
ZyAqX19ub2RlbWFza19wcl9iaXRzKGNvbnN0IG5vZGVtYXNrX3QgKm0pCnsKIHJldHVybiBtID8g
bS0+Yml0cyA6ICgodm9pZCAqKTApOwp9CiMgMTI4ICIuL2luY2x1ZGUvbGludXgvbm9kZW1hc2su
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fbm9kZV9zZXQoaW50
IG5vZGUsIHZvbGF0aWxlIG5vZGVtYXNrX3QgKmRzdHApCnsKIHNldF9iaXQobm9kZSwgZHN0cC0+
Yml0cyk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIF9fbm9kZV9jbGVhcihpbnQgbm9kZSwgdm9sYXRpbGUgbm9kZW1hc2tf
dCAqZHN0cCkKewogY2xlYXJfYml0KG5vZGUsIGRzdHAtPmJpdHMpOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVz
X3NldGFsbChub2RlbWFza190ICpkc3RwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIGJpdG1hcF9m
aWxsKGRzdHAtPmJpdHMsIG5iaXRzKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19jbGVhcihub2RlbWFza190
ICpkc3RwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIGJpdG1hcF96ZXJvKGRzdHAtPmJpdHMsIG5i
aXRzKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlX3Rlc3RfYW5kX3NldChpbnQgbm9kZSwgbm9kZW1hc2tf
dCAqYWRkcikKewogcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQobm9kZSwgYWRkci0+Yml0cyk7Cn0K
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBfX25vZGVzX2FuZChub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190ICpz
cmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQp7
CiBiaXRtYXBfYW5kKGRzdHAtPmJpdHMsIHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywgbmJpdHMp
Owp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19ub2Rlc19vcihub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFza190
ICpzcmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwgdW5zaWduZWQgaW50IG5iaXRz
KQp7CiBiaXRtYXBfb3IoZHN0cC0+Yml0cywgc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0
cyk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBfX25vZGVzX3hvcihub2RlbWFza190ICpkc3RwLCBjb25zdCBub2RlbWFz
a190ICpzcmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmMycCwgdW5zaWduZWQgaW50IG5i
aXRzKQp7CiBiaXRtYXBfeG9yKGRzdHAtPmJpdHMsIHNyYzFwLT5iaXRzLCBzcmMycC0+Yml0cywg
bmJpdHMpOwp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgX19ub2Rlc19hbmRub3Qobm9kZW1hc2tfdCAqZHN0cCwgY29uc3Qg
bm9kZW1hc2tfdCAqc3JjMXAsCiAgICAgY29uc3Qgbm9kZW1hc2tfdCAqc3JjMnAsIHVuc2lnbmVk
IGludCBuYml0cykKewogYml0bWFwX2FuZG5vdChkc3RwLT5iaXRzLCBzcmMxcC0+Yml0cywgc3Jj
MnAtPmJpdHMsIG5iaXRzKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfY29tcGxlbWVudChub2RlbWFza190
ICpkc3RwLAogICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIHVuc2lnbmVkIGludCBuYml0cykK
ewogYml0bWFwX2NvbXBsZW1lbnQoZHN0cC0+Yml0cywgc3JjcC0+Yml0cywgbmJpdHMpOwp9CgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBfX25vZGVzX2VxdWFsKGNvbnN0IG5vZGVtYXNrX3QgKnNyYzFwLAogICAgIGNvbnN0IG5v
ZGVtYXNrX3QgKnNyYzJwLCB1bnNpZ25lZCBpbnQgbmJpdHMpCnsKIHJldHVybiBiaXRtYXBfZXF1
YWwoc3JjMXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfaW50
ZXJzZWN0cyhjb25zdCBub2RlbWFza190ICpzcmMxcCwKICAgICBjb25zdCBub2RlbWFza190ICpz
cmMycCwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiByZXR1cm4gYml0bWFwX2ludGVyc2VjdHMoc3Jj
MXAtPmJpdHMsIHNyYzJwLT5iaXRzLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfc3Vic2V0KGNv
bnN0IG5vZGVtYXNrX3QgKnNyYzFwLAogICAgIGNvbnN0IG5vZGVtYXNrX3QgKnNyYzJwLCB1bnNp
Z25lZCBpbnQgbmJpdHMpCnsKIHJldHVybiBiaXRtYXBfc3Vic2V0KHNyYzFwLT5iaXRzLCBzcmMy
cC0+Yml0cywgbmJpdHMpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZXNfZW1wdHkoY29uc3Qgbm9kZW1hc2tfdCAq
c3JjcCwgdW5zaWduZWQgaW50IG5iaXRzKQp7CiByZXR1cm4gYml0bWFwX2VtcHR5KHNyY3AtPmJp
dHMsIG5iaXRzKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBfX25vZGVzX2Z1bGwoY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCwg
dW5zaWduZWQgaW50IG5iaXRzKQp7CiByZXR1cm4gYml0bWFwX2Z1bGwoc3JjcC0+Yml0cywgbmJp
dHMpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fbm9kZXNfd2VpZ2h0KGNvbnN0IG5vZGVtYXNrX3QgKnNyY3AsIHVuc2ln
bmVkIGludCBuYml0cykKewogcmV0dXJuIGJpdG1hcF93ZWlnaHQoc3JjcC0+Yml0cywgbmJpdHMp
Owp9CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19ub2Rlc19zaGlmdF9yaWdodChub2RlbWFza190ICpkc3RwLAogICAgIGNv
bnN0IG5vZGVtYXNrX3QgKnNyY3AsIGludCBuLCBpbnQgbmJpdHMpCnsKIGJpdG1hcF9zaGlmdF9y
aWdodChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBuLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX25vZGVz
X3NoaWZ0X2xlZnQobm9kZW1hc2tfdCAqZHN0cCwKICAgICBjb25zdCBub2RlbWFza190ICpzcmNw
LCBpbnQgbiwgaW50IG5iaXRzKQp7CiBiaXRtYXBfc2hpZnRfbGVmdChkc3RwLT5iaXRzLCBzcmNw
LT5iaXRzLCBuLCBuYml0cyk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19maXJzdF9ub2RlKGNvbnN0IG5vZGVtYXNr
X3QgKnNyY3ApCnsKIHJldHVybiBfX2J1aWx0aW5fY2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5
cGVvZigoaW50KSgoMSA8PCAwKSkpICopMSA9PSAodHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfYml0
KHNyY3AtPmJpdHMsICgxIDw8IDApKSkpICopMSkpKSAmJiAoKHNpemVvZihpbnQpID09IHNpemVv
ZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChpbnQpKCgxIDw8IDApKSkgKiAwbCkpIDogKGludCAq
KTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChp
bnQpKGZpbmRfZmlyc3RfYml0KHNyY3AtPmJpdHMsICgxIDw8IDApKSkpICogMGwpKSA6IChpbnQg
Kik4KSkpKSksICgoKGludCkoKDEgPDwgMCkpKSA8ICgoaW50KShmaW5kX2ZpcnN0X2JpdChzcmNw
LT5iaXRzLCAoMSA8PCAwKSkpKSA/ICgoaW50KSgoMSA8PCAwKSkpIDogKChpbnQpKGZpbmRfZmly
c3RfYml0KHNyY3AtPmJpdHMsICgxIDw8IDApKSkpKSwgKHsgdHlwZW9mKChpbnQpKCgxIDw8IDAp
KSkgX19VTklRVUVfSURfX194MiA9ICgoaW50KSgoMSA8PCAwKSkpOyB0eXBlb2YoKGludCkoZmlu
ZF9maXJzdF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCkpKSkgX19VTklRVUVfSURfX195MyA9ICgo
aW50KShmaW5kX2ZpcnN0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSkpKTsgKChfX1VOSVFVRV9J
RF9fX3gyKSA8IChfX1VOSVFVRV9JRF9fX3kzKSA/IChfX1VOSVFVRV9JRF9fX3gyKSA6IChfX1VO
SVFVRV9JRF9fX3kzKSk7IH0pKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX25leHRfbm9kZShpbnQgbiwgY29uc3Qgbm9k
ZW1hc2tfdCAqc3JjcCkKewogcmV0dXJuIF9fYnVpbHRpbl9jaG9vc2VfZXhwcigoKCEhKHNpemVv
ZigodHlwZW9mKChpbnQpKCgxIDw8IDApKSkgKikxID09ICh0eXBlb2YoKGludCkoZmluZF9uZXh0
X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisxKSkpICopMSkpKSAmJiAoKHNpemVvZihpbnQp
ID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChpbnQpKCgxIDw8IDApKSkgKiAwbCkp
IDogKGludCAqKTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKiko
KGxvbmcpKChpbnQpKGZpbmRfbmV4dF9iaXQoc3JjcC0+Yml0cywgKDEgPDwgMCksIG4rMSkpKSAq
IDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKChpbnQpKCgxIDw8IDApKSkgPCAoKGludCkoZmluZF9u
ZXh0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisxKSkpID8gKChpbnQpKCgxIDw8IDApKSkg
OiAoKGludCkoZmluZF9uZXh0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisxKSkpKSwgKHsg
dHlwZW9mKChpbnQpKCgxIDw8IDApKSkgX19VTklRVUVfSURfX194NCA9ICgoaW50KSgoMSA8PCAw
KSkpOyB0eXBlb2YoKGludCkoZmluZF9uZXh0X2JpdChzcmNwLT5iaXRzLCAoMSA8PCAwKSwgbisx
KSkpIF9fVU5JUVVFX0lEX19feTUgPSAoKGludCkoZmluZF9uZXh0X2JpdChzcmNwLT5iaXRzLCAo
MSA8PCAwKSwgbisxKSkpOyAoKF9fVU5JUVVFX0lEX19feDQpIDwgKF9fVU5JUVVFX0lEX19feTUp
ID8gKF9fVU5JUVVFX0lEX19feDQpIDogKF9fVU5JUVVFX0lEX19feTUpKTsgfSkpOwp9CgoKCgoK
CmludCBfX25leHRfbm9kZV9pbihpbnQgbm9kZSwgY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCk7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGluaXRfbm9kZW1hc2tfb2Zfbm9kZShub2RlbWFza190ICptYXNrLCBpbnQgbm9kZSkKewog
X19ub2Rlc19jbGVhcigmKCptYXNrKSwgKDEgPDwgMCkpOwogX19ub2RlX3NldCgobm9kZSksICYo
Km1hc2spKTsKfQojIDI5OSAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2ZpcnN0
X3Vuc2V0X25vZGUoY29uc3Qgbm9kZW1hc2tfdCAqbWFza3ApCnsKIHJldHVybiBfX2J1aWx0aW5f
Y2hvb3NlX2V4cHIoKCghIShzaXplb2YoKHR5cGVvZigoaW50KSgoMSA8PCAwKSkpICopMSA9PSAo
dHlwZW9mKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQobWFza3AtPmJpdHMsICgxIDw8IDApKSkp
ICopMSkpKSAmJiAoKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcp
KChpbnQpKCgxIDw8IDApKSkgKiAwbCkpIDogKGludCAqKTgpKSkgJiYgKHNpemVvZihpbnQpID09
IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQo
bWFza3AtPmJpdHMsICgxIDw8IDApKSkpICogMGwpKSA6IChpbnQgKik4KSkpKSksICgoKGludCko
KDEgPDwgMCkpKSA8ICgoaW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8
PCAwKSkpKSA/ICgoaW50KSgoMSA8PCAwKSkpIDogKChpbnQpKGZpbmRfZmlyc3RfemVyb19iaXQo
bWFza3AtPmJpdHMsICgxIDw8IDApKSkpKSwgKHsgdHlwZW9mKChpbnQpKCgxIDw8IDApKSkgX19V
TklRVUVfSURfX194NiA9ICgoaW50KSgoMSA8PCAwKSkpOyB0eXBlb2YoKGludCkoZmluZF9maXJz
dF96ZXJvX2JpdChtYXNrcC0+Yml0cywgKDEgPDwgMCkpKSkgX19VTklRVUVfSURfX195NyA9ICgo
aW50KShmaW5kX2ZpcnN0X3plcm9fYml0KG1hc2twLT5iaXRzLCAoMSA8PCAwKSkpKTsgKChfX1VO
SVFVRV9JRF9fX3g2KSA8IChfX1VOSVFVRV9JRF9fX3k3KSA/IChfX1VOSVFVRV9JRF9fX3g2KSA6
IChfX1VOSVFVRV9JRF9fX3k3KSk7IH0pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDsKfQojIDMzMyAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBfX25vZGVtYXNrX3BhcnNlX3VzZXIoY29uc3QgY2hhciAqYnVmLCBpbnQgbGVuLAogICAg
IG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKewogcmV0dXJuIGJpdG1hcF9wYXJzZV91c2Vy
KGJ1ZiwgbGVuLCBkc3RwLT5iaXRzLCBuYml0cyk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19ub2RlbGlzdF9wYXJzZShj
b25zdCBjaGFyICpidWYsIG5vZGVtYXNrX3QgKmRzdHAsIGludCBuYml0cykKewogcmV0dXJuIGJp
dG1hcF9wYXJzZWxpc3QoYnVmLCBkc3RwLT5iaXRzLCBuYml0cyk7Cn0KCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbm9kZV9y
ZW1hcChpbnQgb2xkYml0LAogIGNvbnN0IG5vZGVtYXNrX3QgKm9sZHAsIGNvbnN0IG5vZGVtYXNr
X3QgKm5ld3AsIGludCBuYml0cykKewogcmV0dXJuIGJpdG1hcF9iaXRyZW1hcChvbGRiaXQsIG9s
ZHAtPmJpdHMsIG5ld3AtPmJpdHMsIG5iaXRzKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbm9kZXNfcmVtYXAobm9k
ZW1hc2tfdCAqZHN0cCwgY29uc3Qgbm9kZW1hc2tfdCAqc3JjcCwKICBjb25zdCBub2RlbWFza190
ICpvbGRwLCBjb25zdCBub2RlbWFza190ICpuZXdwLCBpbnQgbmJpdHMpCnsKIGJpdG1hcF9yZW1h
cChkc3RwLT5iaXRzLCBzcmNwLT5iaXRzLCBvbGRwLT5iaXRzLCBuZXdwLT5iaXRzLCBuYml0cyk7
Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBfX25vZGVzX29udG8obm9kZW1hc2tfdCAqZHN0cCwgY29uc3Qgbm9kZW1hc2tf
dCAqb3JpZ3AsCiAgY29uc3Qgbm9kZW1hc2tfdCAqcmVsbWFwcCwgaW50IG5iaXRzKQp7CiBiaXRt
YXBfb250byhkc3RwLT5iaXRzLCBvcmlncC0+Yml0cywgcmVsbWFwcC0+Yml0cywgbmJpdHMpOwp9
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgX19ub2Rlc19mb2xkKG5vZGVtYXNrX3QgKmRzdHAsIGNvbnN0IG5vZGVtYXNrX3Qg
Km9yaWdwLAogIGludCBzeiwgaW50IG5iaXRzKQp7CiBiaXRtYXBfZm9sZChkc3RwLT5iaXRzLCBv
cmlncC0+Yml0cywgc3osIG5iaXRzKTsKfQojIDM5MSAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNr
LmgiCmVudW0gbm9kZV9zdGF0ZXMgewogTl9QT1NTSUJMRSwKIE5fT05MSU5FLAogTl9OT1JNQUxf
TUVNT1JZLAoKCgogTl9ISUdIX01FTU9SWSA9IE5fTk9STUFMX01FTU9SWSwKCiBOX01FTU9SWSwK
IE5fQ1BVLAogTlJfTk9ERV9TVEFURVMKfTsKCgoKCgoKZXh0ZXJuIG5vZGVtYXNrX3Qgbm9kZV9z
dGF0ZXNbTlJfTk9ERV9TVEFURVNdOwojIDQ2NCAiLi9pbmNsdWRlL2xpbnV4L25vZGVtYXNrLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBub2RlX3N0YXRlKGludCBub2RlLCBlbnVtIG5vZGVfc3RhdGVzIHN0YXRlKQp7CiByZXR1
cm4gbm9kZSA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIG5vZGVfc2V0X3N0YXRlKGludCBub2RlLCBlbnVtIG5vZGVf
c3RhdGVzIHN0YXRlKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbm9kZV9jbGVhcl9zdGF0ZShpbnQgbm9kZSwgZW51bSBu
b2RlX3N0YXRlcyBzdGF0ZSkKewp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbnVtX25vZGVfc3RhdGUoZW51bSBub2RlX3N0YXRl
cyBzdGF0ZSkKewogcmV0dXJuIDE7Cn0KIyA0OTkgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgbm9kZV9yYW5kb20oY29uc3Qgbm9kZW1hc2tfdCAqbWFzaykKewogcmV0dXJuIDA7Cn0K
IyA1MzEgIi4vaW5jbHVkZS9saW51eC9ub2RlbWFzay5oIgpzdHJ1Y3Qgbm9kZW1hc2tfc2NyYXRj
aCB7CiBub2RlbWFza190IG1hc2sxOwogbm9kZW1hc2tfdCBtYXNrMjsKfTsKIyAxOCAiLi9pbmNs
dWRlL2xpbnV4L21tem9uZS5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFn
cy5oIiAxCiMgMTggIi4vaW5jbHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaCIKZW51bSBwYWdl
YmxvY2tfYml0cyB7CiBQQl9taWdyYXRlLAogUEJfbWlncmF0ZV9lbmQgPSBQQl9taWdyYXRlICsg
MyAtIDEsCgogUEJfbWlncmF0ZV9za2lwLAoKCgoKCiBOUl9QQUdFQkxPQ0tfQklUUwp9OwojIDU1
ICIuL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgiCnN0cnVjdCBwYWdlOwoKdW5zaWdu
ZWQgbG9uZyBnZXRfcGZuYmxvY2tfZmxhZ3NfbWFzayhzdHJ1Y3QgcGFnZSAqcGFnZSwKICAgIHVu
c2lnbmVkIGxvbmcgcGZuLAogICAgdW5zaWduZWQgbG9uZyBlbmRfYml0aWR4LAogICAgdW5zaWdu
ZWQgbG9uZyBtYXNrKTsKCnZvaWQgc2V0X3BmbmJsb2NrX2ZsYWdzX21hc2soc3RydWN0IHBhZ2Ug
KnBhZ2UsCiAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAogICAgdW5zaWduZWQgbG9uZyBwZm4sCiAg
ICB1bnNpZ25lZCBsb25nIGVuZF9iaXRpZHgsCiAgICB1bnNpZ25lZCBsb25nIG1hc2spOwojIDE5
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvcGFnZS1m
bGFncy1sYXlvdXQuaCIgMQoKCgoKCiMgMSAiLi9pbmNsdWRlL2dlbmVyYXRlZC9ib3VuZHMuaCIg
MQojIDcgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLWxheW91dC5oIiAyCiMgMjAgIi4vaW5j
bHVkZS9saW51eC9tbXpvbmUuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIiAxCiMgMTkgIi4vaW5j
bHVkZS9saW51eC9tbV90eXBlc190YXNrLmgiCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90
bGJiYXRjaC5oIiAxCgoKCgoKCnN0cnVjdCBhcmNoX3RsYmZsdXNoX3VubWFwX2JhdGNoIHsKCgoK
CiBzdHJ1Y3QgY3B1bWFzayBjcHVtYXNrOwp9OwojIDIwICIuL2luY2x1ZGUvbGludXgvbW1fdHlw
ZXNfdGFzay5oIiAyCiMgMzQgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlc190YXNrLmgiCnN0cnVj
dCB2bWFjYWNoZSB7CiB1NjQgc2VxbnVtOwogc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWFzWygx
VSA8PCAyKV07Cn07CgoKCgoKZW51bSB7CiBNTV9GSUxFUEFHRVMsCiBNTV9BTk9OUEFHRVMsCiBN
TV9TV0FQRU5UUywKIE1NX1NITUVNUEFHRVMsCiBOUl9NTV9DT1VOVEVSUwp9OwoKCgoKc3RydWN0
IHRhc2tfcnNzX3N0YXQgewogaW50IGV2ZW50czsKIGludCBjb3VudFtOUl9NTV9DT1VOVEVSU107
Cn07CgoKc3RydWN0IG1tX3Jzc19zdGF0IHsKIGF0b21pY19sb25nX3QgY291bnRbTlJfTU1fQ09V
TlRFUlNdOwp9OwoKc3RydWN0IHBhZ2VfZnJhZyB7CiBzdHJ1Y3QgcGFnZSAqcGFnZTsKCiBfX3Uz
MiBvZmZzZXQ7CiBfX3UzMiBzaXplOwoKCgoKfTsKCgpzdHJ1Y3QgdGxiZmx1c2hfdW5tYXBfYmF0
Y2ggewojIDg1ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXNfdGFzay5oIgogc3RydWN0IGFyY2hf
dGxiZmx1c2hfdW5tYXBfYmF0Y2ggYXJjaDsKCgogYm9vbCBmbHVzaF9yZXF1aXJlZDsKCgoKCgoK
IGJvb2wgd3JpdGFibGU7Cgp9OwojIDYgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCgoj
IDEgIi4vaW5jbHVkZS9saW51eC9hdXh2ZWMuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9s
aW51eC9hdXh2ZWMuaCIgMQoKCgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vYXV4
dmVjLmgiIDEKIyA2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9hdXh2ZWMuaCIgMgojIDYgIi4vaW5j
bHVkZS9saW51eC9hdXh2ZWMuaCIgMgojIDggIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAy
CgoKIyAxICIuL2luY2x1ZGUvbGludXgvcmJ0cmVlLmgiIDEKIyAyMiAiLi9pbmNsdWRlL2xpbnV4
L3JidHJlZS5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiAxCiMgMzggIi4vaW5j
bHVkZS9saW51eC9yY3VwZGF0ZS5oIgp2b2lkIGNhbGxfcmN1KHN0cnVjdCBjYWxsYmFja19oZWFk
ICpoZWFkLCByY3VfY2FsbGJhY2tfdCBmdW5jKTsKdm9pZCByY3VfYmFycmllcl90YXNrcyh2b2lk
KTsKdm9pZCBzeW5jaHJvbml6ZV9yY3Uodm9pZCk7CiMgNTcgIi4vaW5jbHVkZS9saW51eC9yY3Vw
ZGF0ZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIF9fcmN1X3JlYWRfbG9jayh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fcmN1X3JlYWRfdW5sb2NrKHZvaWQpCnsKIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByY3VfcHJlZW1wdF9k
ZXB0aCh2b2lkKQp7CiByZXR1cm4gMDsKfQoKCgoKdm9pZCByY3VfaW5pdCh2b2lkKTsKZXh0ZXJu
IGludCByY3Vfc2NoZWR1bGVyX2FjdGl2ZSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRh
dGEuLnJlYWRfbW9zdGx5IikpKTsKdm9pZCByY3Vfc2NoZWRfY2xvY2tfaXJxKGludCB1c2VyKTsK
dm9pZCByY3VfcmVwb3J0X2RlYWQodW5zaWduZWQgaW50IGNwdSk7CnZvaWQgcmN1dHJlZV9taWdy
YXRlX2NhbGxiYWNrcyhpbnQgY3B1KTsKCgp2b2lkIHJjdV9zeXNycV9zdGFydCh2b2lkKTsKdm9p
ZCByY3Vfc3lzcnFfZW5kKHZvaWQpOwojIDkzICIuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCByY3VfdXNlcl9lbnRlcih2b2lkKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByY3VfdXNlcl9leGl0KHZvaWQpIHsg
fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgcmN1X2luaXRfbm9oeih2b2lkKSB7IH0KIyAxNDggIi4vaW5jbHVkZS9saW51
eC9yY3VwZGF0ZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGV4aXRfdGFza3NfcmN1X3N0YXJ0KHZvaWQpIHsgfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGV4
aXRfdGFza3NfcmN1X2ZpbmlzaCh2b2lkKSB7IH0KIyAxNzEgIi4vaW5jbHVkZS9saW51eC9yY3Vw
ZGF0ZS5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9yY3V0cmVlLmgiIDEKIyAyMCAiLi9pbmNsdWRl
L2xpbnV4L3JjdXRyZWUuaCIKdm9pZCByY3Vfc29mdGlycV9xcyh2b2lkKTsKdm9pZCByY3Vfbm90
ZV9jb250ZXh0X3N3aXRjaChib29sIHByZWVtcHQpOwppbnQgcmN1X25lZWRzX2NwdSh1NjQgYmFz
ZW0sIHU2NCAqbmV4dGV2dCk7CnZvaWQgcmN1X2NwdV9zdGFsbF9yZXNldCh2b2lkKTsKCgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCByY3VfdmlydF9ub3RlX2NvbnRleHRfc3dpdGNoKGludCBjcHUpCnsKIHJjdV9ub3RlX2Nv
bnRleHRfc3dpdGNoKGZhbHNlKTsKfQoKdm9pZCBzeW5jaHJvbml6ZV9yY3VfZXhwZWRpdGVkKHZv
aWQpOwp2b2lkIGtmcmVlX2NhbGxfcmN1KHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkLCByY3Vf
Y2FsbGJhY2tfdCBmdW5jKTsKCnZvaWQgcmN1X2JhcnJpZXIodm9pZCk7CmJvb2wgcmN1X2Vxc19z
cGVjaWFsX3NldChpbnQgY3B1KTsKdm9pZCByY3VfbW9tZW50YXJ5X2R5bnRpY2tfaWRsZSh2b2lk
KTsKdm9pZCBrZnJlZV9yY3Vfc2NoZWR1bGVyX3J1bm5pbmcodm9pZCk7CnVuc2lnbmVkIGxvbmcg
Z2V0X3N0YXRlX3N5bmNocm9uaXplX3JjdSh2b2lkKTsKdm9pZCBjb25kX3N5bmNocm9uaXplX3Jj
dSh1bnNpZ25lZCBsb25nIG9sZHN0YXRlKTsKCnZvaWQgcmN1X2lkbGVfZW50ZXIodm9pZCk7CnZv
aWQgcmN1X2lkbGVfZXhpdCh2b2lkKTsKdm9pZCByY3VfaXJxX2VudGVyKHZvaWQpOwp2b2lkIHJj
dV9pcnFfZXhpdCh2b2lkKTsKdm9pZCByY3VfaXJxX2VudGVyX2lycXNvbih2b2lkKTsKdm9pZCBy
Y3VfaXJxX2V4aXRfaXJxc29uKHZvaWQpOwoKdm9pZCBleGl0X3JjdSh2b2lkKTsKCnZvaWQgcmN1
X3NjaGVkdWxlcl9zdGFydGluZyh2b2lkKTsKZXh0ZXJuIGludCByY3Vfc2NoZWR1bGVyX2FjdGl2
ZSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmRhdGEuLnJlYWRfbW9zdGx5IikpKTsKdm9p
ZCByY3VfZW5kX2lua2VybmVsX2Jvb3Qodm9pZCk7CmJvb2wgcmN1X2lzX3dhdGNoaW5nKHZvaWQp
OwoKdm9pZCByY3VfYWxsX3FzKHZvaWQpOwoKCgppbnQgcmN1dHJlZV9wcmVwYXJlX2NwdSh1bnNp
Z25lZCBpbnQgY3B1KTsKaW50IHJjdXRyZWVfb25saW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsK
aW50IHJjdXRyZWVfb2ZmbGluZV9jcHUodW5zaWduZWQgaW50IGNwdSk7CmludCByY3V0cmVlX2Rl
YWRfY3B1KHVuc2lnbmVkIGludCBjcHUpOwppbnQgcmN1dHJlZV9keWluZ19jcHUodW5zaWduZWQg
aW50IGNwdSk7CnZvaWQgcmN1X2NwdV9zdGFydGluZyh1bnNpZ25lZCBpbnQgY3B1KTsKIyAxNzIg
Ii4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIiAyCiMgMTkyICIuL2luY2x1ZGUvbGludXgvcmN1
cGRhdGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBpbml0X3JjdV9oZWFkKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7
IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBkZXN0cm95X3JjdV9oZWFkKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7IH0K
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBpbml0X3JjdV9oZWFkX29uX3N0YWNrKHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkKSB7
IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBkZXN0cm95X3JjdV9oZWFkX29uX3N0YWNrKHN0cnVjdCBjYWxsYmFja19oZWFkICpo
ZWFkKSB7IH0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIHJjdV9sb2NrZGVwX2N1cnJlbnRfY3B1X29ubGluZSh2b2lkKSB7
IHJldHVybiB0cnVlOyB9CiMgMjMxICIuL2luY2x1ZGUvbGludXgvcmN1cGRhdGUuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJj
dV9yZWFkX2xvY2tfaGVsZCh2b2lkKQp7CiByZXR1cm4gMTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJjdV9yZWFkX2xvY2tf
YmhfaGVsZCh2b2lkKQp7CiByZXR1cm4gMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJjdV9yZWFkX2xvY2tfc2NoZWRfaGVs
ZCh2b2lkKQp7CiByZXR1cm4gITA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByY3VfcmVhZF9sb2NrX2FueV9oZWxkKHZvaWQp
CnsKIHJldHVybiAhMDsKfQojIDU5NyAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCByY3VfcmVhZF9sb2NrKHZvaWQpCnsK
IF9fcmN1X3JlYWRfbG9jaygpOwogKHZvaWQpMDsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7IH0g
d2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDsKfQojIDY0OSAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5s
b2NrKHZvaWQpCnsKIGRvIHsgfSB3aGlsZSAoMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7CiAodm9pZCkwOwogX19yY3VfcmVhZF91bmxvY2soKTsK
IGRvIHsgfSB3aGlsZSAoMCk7Cn0KIyA2NzAgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJjdV9yZWFkX2xvY2tfYmgodm9pZCkKewogbG9jYWxfYmhfZGlzYWJsZSgpOwogKHZvaWQp
MDsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKCgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFk
X3VubG9ja19iaCh2b2lkKQp7CiBkbyB7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogZG8geyB9IHdoaWxlICgwKTsKICh2
b2lkKTA7CiBsb2NhbF9iaF9lbmFibGUoKTsKfQojIDcwNSAiLi9pbmNsdWRlL2xpbnV4L3JjdXBk
YXRlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgcmN1X3JlYWRfbG9ja19zY2hlZCh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpOwogKHZvaWQpMDsKIGRvIHsgfSB3aGlsZSAoMCk7CiBkbyB7
IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIHJjdV9yZWFkX2xvY2tfc2NoZWRfbm90cmFjZSh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpOwogKHZvaWQpMDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdV9yZWFkX3Vu
bG9ja19zY2hlZCh2b2lkKQp7CiBkbyB7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogZG8geyB9IHdoaWxlICgwKTsK
ICh2b2lkKTA7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9CgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmN1X3JlYWRfdW5sb2Nr
X3NjaGVkX25vdHJhY2Uodm9pZCkKewogKHZvaWQpMDsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIi
OiA6IDoibWVtb3J5Iik7Cn0KIyA4NzAgIi4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJjdV9oZWFkX2luaXQoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCkKewogcmhwLT5mdW5jID0g
KHJjdV9jYWxsYmFja190KX4wTDsKfQojIDg4OCAiLi9pbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wKcmN1X2hlYWRfYWZ0ZXJfY2FsbF9yY3Uoc3RydWN0IGNhbGxiYWNrX2hlYWQgKnJocCwg
cmN1X2NhbGxiYWNrX3QgZikKewogcmN1X2NhbGxiYWNrX3QgZnVuYyA9ICh7IHVuaW9uIHsgdHlw
ZW9mKHJocC0+ZnVuYykgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9v
bmNlX3NpemUoJihyaHAtPmZ1bmMpLCBfX3UuX19jLCBzaXplb2YocmhwLT5mdW5jKSk7IGVsc2Ug
X19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocmhwLT5mdW5jKSwgX191Ll9fYywgc2l6ZW9mKHJo
cC0+ZnVuYykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOwoKIGlmIChmdW5jID09
IGYpCiAgcmV0dXJuIHRydWU7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGZ1bmMgIT0gKHJj
dV9jYWxsYmFja190KX4wTCk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24p
LCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYs
IDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIu
bG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxv
bmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIg
Ilx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6Zmxh
Z3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9s
aW51eC9yY3VwZGF0ZS5oIiksICJpIiAoODk1KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAo
KDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDAp
OyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNo
YWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIg
KDgpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24p
LCAwKTsgfSk7CiByZXR1cm4gZmFsc2U7Cn0KCgpleHRlcm4gaW50IHJjdV9leHBlZGl0ZWQ7CmV4
dGVybiBpbnQgcmN1X25vcm1hbDsKIyAyMyAiLi9pbmNsdWRlL2xpbnV4L3JidHJlZS5oIiAyCgpz
dHJ1Y3QgcmJfbm9kZSB7CiB1bnNpZ25lZCBsb25nIF9fcmJfcGFyZW50X2NvbG9yOwogc3RydWN0
IHJiX25vZGUgKnJiX3JpZ2h0Owogc3RydWN0IHJiX25vZGUgKnJiX2xlZnQ7Cn0gX19hdHRyaWJ1
dGVfXygoYWxpZ25lZChzaXplb2YobG9uZykpKSk7CgoKc3RydWN0IHJiX3Jvb3Qgewogc3RydWN0
IHJiX25vZGUgKnJiX25vZGU7Cn07CiMgNDkgIi4vaW5jbHVkZS9saW51eC9yYnRyZWUuaCIKZXh0
ZXJuIHZvaWQgcmJfaW5zZXJ0X2NvbG9yKHN0cnVjdCByYl9ub2RlICosIHN0cnVjdCByYl9yb290
ICopOwpleHRlcm4gdm9pZCByYl9lcmFzZShzdHJ1Y3QgcmJfbm9kZSAqLCBzdHJ1Y3QgcmJfcm9v
dCAqKTsKCgoKZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9uZXh0KGNvbnN0IHN0cnVjdCByYl9u
b2RlICopOwpleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX3ByZXYoY29uc3Qgc3RydWN0IHJiX25v
ZGUgKik7CmV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfZmlyc3QoY29uc3Qgc3RydWN0IHJiX3Jv
b3QgKik7CmV4dGVybiBzdHJ1Y3QgcmJfbm9kZSAqcmJfbGFzdChjb25zdCBzdHJ1Y3QgcmJfcm9v
dCAqKTsKCgpleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX2ZpcnN0X3Bvc3RvcmRlcihjb25zdCBz
dHJ1Y3QgcmJfcm9vdCAqKTsKZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9uZXh0X3Bvc3RvcmRl
cihjb25zdCBzdHJ1Y3QgcmJfbm9kZSAqKTsKCgpleHRlcm4gdm9pZCByYl9yZXBsYWNlX25vZGUo
c3RydWN0IHJiX25vZGUgKnZpY3RpbSwgc3RydWN0IHJiX25vZGUgKm5ldywKICAgICAgIHN0cnVj
dCByYl9yb290ICpyb290KTsKZXh0ZXJuIHZvaWQgcmJfcmVwbGFjZV9ub2RlX3JjdShzdHJ1Y3Qg
cmJfbm9kZSAqdmljdGltLCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAogICAgc3RydWN0IHJiX3Jvb3Qg
KnJvb3QpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCByYl9saW5rX25vZGUoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCBy
Yl9ub2RlICpwYXJlbnQsCiAgICBzdHJ1Y3QgcmJfbm9kZSAqKnJiX2xpbmspCnsKIG5vZGUtPl9f
cmJfcGFyZW50X2NvbG9yID0gKHVuc2lnbmVkIGxvbmcpcGFyZW50Owogbm9kZS0+cmJfbGVmdCA9
IG5vZGUtPnJiX3JpZ2h0ID0gKCh2b2lkICopMCk7CgogKnJiX2xpbmsgPSBub2RlOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
IHJiX2xpbmtfbm9kZV9yY3Uoc3RydWN0IHJiX25vZGUgKm5vZGUsIHN0cnVjdCByYl9ub2RlICpw
YXJlbnQsCiAgICAgICAgc3RydWN0IHJiX25vZGUgKipyYl9saW5rKQp7CiBub2RlLT5fX3JiX3Bh
cmVudF9jb2xvciA9ICh1bnNpZ25lZCBsb25nKXBhcmVudDsKIG5vZGUtPnJiX2xlZnQgPSBub2Rl
LT5yYl9yaWdodCA9ICgodm9pZCAqKTApOwoKIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1
aW50cHRyX3QpKG5vZGUpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChub2RlKSAmJiAoX3Jf
YV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTApKSAoeyB1bmlvbiB7IHR5cGVvZigoKnJi
X2xpbmspKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigo
KnJiX2xpbmspKSkgKCh0eXBlb2YoKnJiX2xpbmspKShfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29u
Y2Vfc2l6ZSgmKCgqcmJfbGluaykpLCBfX3UuX19jLCBzaXplb2YoKCpyYl9saW5rKSkpOyBfX3Uu
X192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF84NCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6
ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJipyYl9s
aW5rKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6ZW9mKComKnJiX2xpbmspID09IHNpemVvZihzaG9y
dCkgfHwgc2l6ZW9mKComKnJiX2xpbmspID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJipyYl9s
aW5rKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfODQoKTsgfSB3aGls
ZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsg
dHlwZW9mKComKnJiX2xpbmspIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9
ICggdHlwZW9mKComKnJiX2xpbmspKSAoKHR5cGVvZigqKCh0eXBlb2YoKnJiX2xpbmspKV9yX2Ff
cF9fdikpICopKCh0eXBlb2YoKnJiX2xpbmspKV9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYoKiYqcmJfbGluayksIF9fdS5fX2MsIHNpemVvZigqJipyYl9saW5rKSk7IF9fdS5fX3Zh
bDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKfQojIDEyNSAiLi9pbmNsdWRlL2xpbnV4
L3JidHJlZS5oIgpzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgewogc3RydWN0IHJiX3Jvb3QgcmJfcm9v
dDsKIHN0cnVjdCByYl9ub2RlICpyYl9sZWZ0bW9zdDsKfTsKCgoKCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByYl9pbnNlcnRf
Y29sb3JfY2FjaGVkKHN0cnVjdCByYl9ub2RlICpub2RlLAogICAgICAgc3RydWN0IHJiX3Jvb3Rf
Y2FjaGVkICpyb290LAogICAgICAgYm9vbCBsZWZ0bW9zdCkKewogaWYgKGxlZnRtb3N0KQogIHJv
b3QtPnJiX2xlZnRtb3N0ID0gbm9kZTsKIHJiX2luc2VydF9jb2xvcihub2RlLCAmcm9vdC0+cmJf
cm9vdCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgcmJfZXJhc2VfY2FjaGVkKHN0cnVjdCByYl9ub2RlICpub2RlLAogICAg
ICAgc3RydWN0IHJiX3Jvb3RfY2FjaGVkICpyb290KQp7CiBpZiAocm9vdC0+cmJfbGVmdG1vc3Qg
PT0gbm9kZSkKICByb290LT5yYl9sZWZ0bW9zdCA9IHJiX25leHQobm9kZSk7CiByYl9lcmFzZShu
b2RlLCAmcm9vdC0+cmJfcm9vdCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmJfcmVwbGFjZV9ub2RlX2NhY2hlZChzdHJ1
Y3QgcmJfbm9kZSAqdmljdGltLAogICAgICAgc3RydWN0IHJiX25vZGUgKm5ldywKICAgICAgIHN0
cnVjdCByYl9yb290X2NhY2hlZCAqcm9vdCkKewogaWYgKHJvb3QtPnJiX2xlZnRtb3N0ID09IHZp
Y3RpbSkKICByb290LT5yYl9sZWZ0bW9zdCA9IG5ldzsKIHJiX3JlcGxhY2Vfbm9kZSh2aWN0aW0s
IG5ldywgJnJvb3QtPnJiX3Jvb3QpOwp9CiMgMTEgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5o
IiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDEKIyAyMCAiLi9pbmNsdWRlL2xpbnV4
L3J3c2VtLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L29zcV9sb2NrLmgiIDEKIyA5ICIuL2luY2x1
ZGUvbGludXgvb3NxX2xvY2suaCIKc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9ub2RlIHsKIHN0cnVj
dCBvcHRpbWlzdGljX3NwaW5fbm9kZSAqbmV4dCwgKnByZXY7CiBpbnQgbG9ja2VkOwogaW50IGNw
dTsKfTsKCnN0cnVjdCBvcHRpbWlzdGljX3NwaW5fcXVldWUgewoKCgoKIGF0b21pY190IHRhaWw7
Cn07CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgb3NxX2xvY2tfaW5pdChzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVl
ICpsb2NrKQp7CiBhdG9taWNfc2V0KCZsb2NrLT50YWlsLCAoMCkpOwp9CgpleHRlcm4gYm9vbCBv
c3FfbG9jayhzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKTsKZXh0ZXJuIHZvaWQg
b3NxX3VubG9jayhzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKTsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgb3Nx
X2lzX2xvY2tlZChzdHJ1Y3Qgb3B0aW1pc3RpY19zcGluX3F1ZXVlICpsb2NrKQp7CiByZXR1cm4g
YXRvbWljX3JlYWQoJmxvY2stPnRhaWwpICE9ICgwKTsKfQojIDIxICIuL2luY2x1ZGUvbGludXgv
cndzZW0uaCIgMgojIDM1ICIuL2luY2x1ZGUvbGludXgvcndzZW0uaCIKc3RydWN0IHJ3X3NlbWFw
aG9yZSB7CiBhdG9taWNfbG9uZ190IGNvdW50OwoKCgoKCiBhdG9taWNfbG9uZ190IG93bmVyOwoK
IHN0cnVjdCBvcHRpbWlzdGljX3NwaW5fcXVldWUgb3NxOwoKIHJhd19zcGlubG9ja190IHdhaXRf
bG9jazsKIHN0cnVjdCBsaXN0X2hlYWQgd2FpdF9saXN0OwoKCgoKCgp9OwojIDYzICIuL2luY2x1
ZGUvbGludXgvcndzZW0uaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJ3c2VtX2lzX2xvY2tlZChzdHJ1Y3Qgcndfc2VtYXBob3Jl
ICpzZW0pCnsKIHJldHVybiBhdG9taWNfbG9uZ19yZWFkKCZzZW0tPmNvdW50KSAhPSAwOwp9CiMg
MTAzICIuL2luY2x1ZGUvbGludXgvcndzZW0uaCIKZXh0ZXJuIHZvaWQgX19pbml0X3J3c2VtKHN0
cnVjdCByd19zZW1hcGhvcmUgKnNlbSwgY29uc3QgY2hhciAqbmFtZSwKICAgIHN0cnVjdCBsb2Nr
X2NsYXNzX2tleSAqa2V5KTsKIyAxMTkgIi4vaW5jbHVkZS9saW51eC9yd3NlbS5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcndz
ZW1faXNfY29udGVuZGVkKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSkKewogcmV0dXJuICFsaXN0
X2VtcHR5KCZzZW0tPndhaXRfbGlzdCk7Cn0KCgoKCmV4dGVybiB2b2lkIGRvd25fcmVhZChzdHJ1
Y3Qgcndfc2VtYXBob3JlICpzZW0pOwpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91
bnVzZWRfcmVzdWx0X18pKSBkb3duX3JlYWRfa2lsbGFibGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAq
c2VtKTsKCgoKCmV4dGVybiBpbnQgZG93bl9yZWFkX3RyeWxvY2soc3RydWN0IHJ3X3NlbWFwaG9y
ZSAqc2VtKTsKCgoKCmV4dGVybiB2b2lkIGRvd25fd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAq
c2VtKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
ZG93bl93cml0ZV9raWxsYWJsZShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwoKCgoKZXh0ZXJu
IGludCBkb3duX3dyaXRlX3RyeWxvY2soc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKTsKCgoKCmV4
dGVybiB2b2lkIHVwX3JlYWQoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKTsKCgoKCmV4dGVybiB2
b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CgoKCgpleHRlcm4gdm9pZCBk
b3duZ3JhZGVfd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKTsKIyAxMiAiLi9pbmNsdWRl
L2xpbnV4L21tX3R5cGVzLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvY29tcGxldGlvbi5oIiAx
CiMgMjYgIi4vaW5jbHVkZS9saW51eC9jb21wbGV0aW9uLmgiCnN0cnVjdCBjb21wbGV0aW9uIHsK
IHVuc2lnbmVkIGludCBkb25lOwogd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKfTsKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBj
b21wbGV0ZV9hY3F1aXJlKHN0cnVjdCBjb21wbGV0aW9uICp4KSB7fQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNvbXBsZXRlX3Jl
bGVhc2Uoc3RydWN0IGNvbXBsZXRpb24gKngpIHt9CiMgODUgIi4vaW5jbHVkZS9saW51eC9jb21w
bGV0aW9uLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgX19pbml0X2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24gKngpCnsK
IHgtPmRvbmUgPSAwOwogZG8geyBzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5IF9fa2V5OyBf
X2luaXRfd2FpdHF1ZXVlX2hlYWQoKCZ4LT53YWl0KSwgIiZ4LT53YWl0IiwgJl9fa2V5KTsgfSB3
aGlsZSAoMCk7Cn0KIyA5OCAiLi9pbmNsdWRlL2xpbnV4L2NvbXBsZXRpb24uaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCByZWlu
aXRfY29tcGxldGlvbihzdHJ1Y3QgY29tcGxldGlvbiAqeCkKewogeC0+ZG9uZSA9IDA7Cn0KCmV4
dGVybiB2b2lkIHdhaXRfZm9yX2NvbXBsZXRpb24oc3RydWN0IGNvbXBsZXRpb24gKik7CmV4dGVy
biB2b2lkIHdhaXRfZm9yX2NvbXBsZXRpb25faW8oc3RydWN0IGNvbXBsZXRpb24gKik7CmV4dGVy
biBpbnQgd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKHN0cnVjdCBjb21wbGV0aW9u
ICp4KTsKZXh0ZXJuIGludCB3YWl0X2Zvcl9jb21wbGV0aW9uX2tpbGxhYmxlKHN0cnVjdCBjb21w
bGV0aW9uICp4KTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgd2FpdF9mb3JfY29tcGxldGlvbl90aW1l
b3V0KHN0cnVjdCBjb21wbGV0aW9uICp4LAogICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQp
OwpleHRlcm4gdW5zaWduZWQgbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX2lvX3RpbWVvdXQoc3Ry
dWN0IGNvbXBsZXRpb24gKngsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwpleHRl
cm4gbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGVfdGltZW91dCgKIHN0cnVj
dCBjb21wbGV0aW9uICp4LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwpleHRlcm4gbG9uZyB3YWl0
X2Zvcl9jb21wbGV0aW9uX2tpbGxhYmxlX3RpbWVvdXQoCiBzdHJ1Y3QgY29tcGxldGlvbiAqeCwg
dW5zaWduZWQgbG9uZyB0aW1lb3V0KTsKZXh0ZXJuIGJvb2wgdHJ5X3dhaXRfZm9yX2NvbXBsZXRp
b24oc3RydWN0IGNvbXBsZXRpb24gKngpOwpleHRlcm4gYm9vbCBjb21wbGV0aW9uX2RvbmUoc3Ry
dWN0IGNvbXBsZXRpb24gKngpOwoKZXh0ZXJuIHZvaWQgY29tcGxldGUoc3RydWN0IGNvbXBsZXRp
b24gKik7CmV4dGVybiB2b2lkIGNvbXBsZXRlX2FsbChzdHJ1Y3QgY29tcGxldGlvbiAqKTsKIyAx
MyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3Vw
cm9iZXMuaCIgMQojIDE5ICIuL2luY2x1ZGUvbGludXgvdXByb2Jlcy5oIgpzdHJ1Y3Qgdm1fYXJl
YV9zdHJ1Y3Q7CnN0cnVjdCBtbV9zdHJ1Y3Q7CnN0cnVjdCBpbm9kZTsKc3RydWN0IG5vdGlmaWVy
X2Jsb2NrOwpzdHJ1Y3QgcGFnZTsKCgoKCgoKZW51bSB1cHJvYmVfZmlsdGVyX2N0eCB7CiBVUFJP
QkVfRklMVEVSX1JFR0lTVEVSLAogVVBST0JFX0ZJTFRFUl9VTlJFR0lTVEVSLAogVVBST0JFX0ZJ
TFRFUl9NTUFQLAp9OwoKc3RydWN0IHVwcm9iZV9jb25zdW1lciB7CiBpbnQgKCpoYW5kbGVyKShz
dHJ1Y3QgdXByb2JlX2NvbnN1bWVyICpzZWxmLCBzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CiBpbnQg
KCpyZXRfaGFuZGxlcikoc3RydWN0IHVwcm9iZV9jb25zdW1lciAqc2VsZiwKICAgIHVuc2lnbmVk
IGxvbmcgZnVuYywKICAgIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKIGJvb2wgKCpmaWx0ZXIpKHN0
cnVjdCB1cHJvYmVfY29uc3VtZXIgKnNlbGYsCiAgICBlbnVtIHVwcm9iZV9maWx0ZXJfY3R4IGN0
eCwKICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKCiBzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICpu
ZXh0Owp9OwojIDE0MiAiLi9pbmNsdWRlL2xpbnV4L3Vwcm9iZXMuaCIKc3RydWN0IHVwcm9iZXNf
c3RhdGUgewp9OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB1cHJvYmVzX2luaXQodm9pZCkKewp9CgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAp1cHJvYmVfcmVn
aXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgc3RydWN0IHVwcm9iZV9j
b25zdW1lciAqdWMpCnsKIHJldHVybiAtMzg7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVwcm9iZV9yZWdpc3Rlcl9yZWZjdHIo
c3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IHJlZl9jdHJfb2Zmc2V0
LCBzdHJ1Y3QgdXByb2JlX2NvbnN1bWVyICp1YykKewogcmV0dXJuIC0zODsKfQpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKdXByb2Jl
X2FwcGx5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIHN0cnVjdCB1cHJvYmVf
Y29uc3VtZXIgKnVjLCBib29sIGFkZCkKewogcmV0dXJuIC0zODsKfQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCnVwcm9iZV91bnJl
Z2lzdGVyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBvZmZzZXQsIHN0cnVjdCB1cHJvYmVf
Y29uc3VtZXIgKnVjKQp7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVwcm9iZV9tbWFwKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
dm1hKQp7CiByZXR1cm4gMDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCnVwcm9iZV9tdW5tYXAoc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQp7Cn0Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCB1cHJvYmVfc3RhcnRfZHVwX21tYXAodm9pZCkKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXByb2JlX2VuZF9kdXBfbW1h
cCh2b2lkKQp7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZAp1cHJvYmVfZHVwX21tYXAoc3RydWN0IG1tX3N0cnVjdCAqb2xkbW0s
IHN0cnVjdCBtbV9zdHJ1Y3QgKm5ld21tKQp7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB1cHJvYmVfbm90aWZ5X3Jlc3VtZShz
dHJ1Y3QgcHRfcmVncyAqcmVncykKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdXByb2JlX2Rlbnlfc2lnbmFsKHZvaWQpCnsK
IHJldHVybiBmYWxzZTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9mcmVlX3V0YXNrKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdCkKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgdXByb2JlX2NvcHlfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQs
IHVuc2lnbmVkIGxvbmcgZmxhZ3MpCnsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHVwcm9iZV9jbGVhcl9zdGF0ZShzdHJ1Y3Qg
bW1fc3RydWN0ICptbSkKewp9CiMgMTUgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIiAyCgoj
IDEgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC93
b3JrcXVldWUuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXIuaCIgMQoKCgoKCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L2t0aW1lLmgiIDEKIyAyNCAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQojIDEwICIuL2luY2x1ZGUvbGludXgvdGltZS5o
IgpleHRlcm4gc3RydWN0IHRpbWV6b25lIHN5c190ejsKCmludCBnZXRfdGltZXNwZWM2NChzdHJ1
Y3QgdGltZXNwZWM2NCAqdHMsCiAgY29uc3Qgc3RydWN0IF9fa2VybmVsX3RpbWVzcGVjICp1dHMp
OwppbnQgcHV0X3RpbWVzcGVjNjQoY29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnRzLAogIHN0cnVj
dCBfX2tlcm5lbF90aW1lc3BlYyAqdXRzKTsKaW50IGdldF9pdGltZXJzcGVjNjQoc3RydWN0IGl0
aW1lcnNwZWM2NCAqaXQsCiAgIGNvbnN0IHN0cnVjdCBfX2tlcm5lbF9pdGltZXJzcGVjICp1aXQp
OwppbnQgcHV0X2l0aW1lcnNwZWM2NChjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdCwKICAg
c3RydWN0IF9fa2VybmVsX2l0aW1lcnNwZWMgKnVpdCk7CgpleHRlcm4gdGltZTY0X3QgbWt0aW1l
NjQoY29uc3QgdW5zaWduZWQgaW50IHllYXIsIGNvbnN0IHVuc2lnbmVkIGludCBtb24sCiAgIGNv
bnN0IHVuc2lnbmVkIGludCBkYXksIGNvbnN0IHVuc2lnbmVkIGludCBob3VyLAogICBjb25zdCB1
bnNpZ25lZCBpbnQgbWluLCBjb25zdCB1bnNpZ25lZCBpbnQgc2VjKTsKIyAzOSAiLi9pbmNsdWRl
L2xpbnV4L3RpbWUuaCIKZXh0ZXJuIHZvaWQgY2xlYXJfaXRpbWVyKHZvaWQpOwoKCgoKZXh0ZXJu
IGxvbmcgZG9fdXRpbWVzKGludCBkZmQsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdGlt
ZXNwZWM2NCAqdGltZXMsIGludCBmbGFncyk7CgoKCgoKc3RydWN0IHRtIHsKCgoKCiBpbnQgdG1f
c2VjOwoKIGludCB0bV9taW47CgogaW50IHRtX2hvdXI7CgogaW50IHRtX21kYXk7CgogaW50IHRt
X21vbjsKCiBsb25nIHRtX3llYXI7CgogaW50IHRtX3dkYXk7CgogaW50IHRtX3lkYXk7Cn07Cgp2
b2lkIHRpbWU2NF90b190bSh0aW1lNjRfdCB0b3RhbHNlY3MsIGludCBvZmZzZXQsIHN0cnVjdCB0
bSAqcmVzdWx0KTsKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3RpbWUzMi5oIiAxCiMgMTMgIi4vaW5j
bHVkZS9saW51eC90aW1lMzIuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIgMQojIDU2
ICIuL2luY2x1ZGUvbGludXgvdGltZXguaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC90aW1l
eC5oIiAxCiMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4LmgiCiMgMSAiLi9pbmNsdWRl
L2xpbnV4L3RpbWUuaCIgMQojIDU3ICIuL2luY2x1ZGUvdWFwaS9saW51eC90aW1leC5oIiAyCiMg
OTcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3RpbWV4LmgiCnN0cnVjdCBfX2tlcm5lbF90aW1leF90
aW1ldmFsIHsKIF9fa2VybmVsX3RpbWU2NF90IHR2X3NlYzsKIGxvbmcgbG9uZyB0dl91c2VjOwp9
OwoKc3RydWN0IF9fa2VybmVsX3RpbWV4IHsKIHVuc2lnbmVkIGludCBtb2RlczsKIGludCA6MzI7
CiBsb25nIGxvbmcgb2Zmc2V0OwogbG9uZyBsb25nIGZyZXE7CiBsb25nIGxvbmcgbWF4ZXJyb3I7
CiBsb25nIGxvbmcgZXN0ZXJyb3I7CiBpbnQgc3RhdHVzOwogaW50IDozMjsKIGxvbmcgbG9uZyBj
b25zdGFudDsKIGxvbmcgbG9uZyBwcmVjaXNpb247CiBsb25nIGxvbmcgdG9sZXJhbmNlOwoKCiBz
dHJ1Y3QgX19rZXJuZWxfdGltZXhfdGltZXZhbCB0aW1lOwogbG9uZyBsb25nIHRpY2s7CgogbG9u
ZyBsb25nIHBwc2ZyZXE7CiBsb25nIGxvbmcgaml0dGVyOwogaW50IHNoaWZ0OwogaW50IDozMjsK
IGxvbmcgbG9uZyBzdGFiaWw7CiBsb25nIGxvbmcgaml0Y250OwogbG9uZyBsb25nIGNhbGNudDsK
IGxvbmcgbG9uZyBlcnJjbnQ7CiBsb25nIGxvbmcgc3RiY250OwoKIGludCB0YWk7CgogaW50IDoz
MjsgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsKIGludCA6MzI7IGludCA6MzI7IGludCA6MzI7
IGludCA6MzI7CiBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwp9OwojIDU3ICIuL2luY2x1ZGUv
bGludXgvdGltZXguaCIgMgoKCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3BhcmFtLmgi
IDEKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9wYXJhbS5o
IiAxCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3BhcmFtLmgiIDEKCgoKCiMgMSAiLi9pbmNs
dWRlL3VhcGkvYXNtLWdlbmVyaWMvcGFyYW0uaCIgMQojIDYgIi4vaW5jbHVkZS9hc20tZ2VuZXJp
Yy9wYXJhbS5oIiAyCiMgMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpL2FzbS9w
YXJhbS5oIiAyCiMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvcGFyYW0uaCIgMgojIDY0ICIuL2lu
Y2x1ZGUvbGludXgvdGltZXguaCIgMgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RpbWV4
LmgiIDEKCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiIDEKIyAxNiAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS90c2MuaCIKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgY3lj
bGVzX3Q7CgpleHRlcm4gdW5zaWduZWQgaW50IGNwdV9raHo7CmV4dGVybiB1bnNpZ25lZCBpbnQg
dHNjX2toejsKCmV4dGVybiB2b2lkIGRpc2FibGVfVFNDKHZvaWQpOwoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY3ljbGVzX3QgZ2V0X2N5
Y2xlcyh2b2lkKQp7CgoKCgoKIHJldHVybiByZHRzYygpOwp9CgpleHRlcm4gc3RydWN0IHN5c3Rl
bV9jb3VudGVydmFsX3QgY29udmVydF9hcnRfdG9fdHNjKHU2NCBhcnQpOwpleHRlcm4gc3RydWN0
IHN5c3RlbV9jb3VudGVydmFsX3QgY29udmVydF9hcnRfbnNfdG9fdHNjKHU2NCBhcnRfbnMpOwoK
ZXh0ZXJuIHZvaWQgdHNjX2Vhcmx5X2luaXQodm9pZCk7CmV4dGVybiB2b2lkIHRzY19pbml0KHZv
aWQpOwpleHRlcm4gdW5zaWduZWQgbG9uZyBjYWxpYnJhdGVfZGVsYXlfaXNfa25vd24odm9pZCk7
CmV4dGVybiB2b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbik7CmV4dGVybiBpbnQg
dW5zeW5jaHJvbml6ZWRfdHNjKHZvaWQpOwpleHRlcm4gaW50IGNoZWNrX3RzY191bnN0YWJsZSh2
b2lkKTsKZXh0ZXJuIHZvaWQgbWFya190c2NfYXN5bmNfcmVzZXRzKGNoYXIgKnJlYXNvbik7CmV4
dGVybiB1bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxpYnJhdGVfY3B1X2Vhcmx5KHZvaWQpOwpleHRl
cm4gdW5zaWduZWQgbG9uZyBuYXRpdmVfY2FsaWJyYXRlX3RzYyh2b2lkKTsKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2tfZnJvbV90c2ModTY0IHRzYyk7CgpleHRl
cm4gaW50IHRzY19jbG9ja3NvdXJjZV9yZWxpYWJsZTsKCmV4dGVybiBib29sIHRzY19hc3luY19y
ZXNldHM7CiMgNTkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdHNjLmgiCmV4dGVybiBib29sIHRz
Y19zdG9yZV9hbmRfY2hlY2tfdHNjX2FkanVzdChib29sIGJvb3RjcHUpOwpleHRlcm4gdm9pZCB0
c2NfdmVyaWZ5X3RzY19hZGp1c3QoYm9vbCByZXN1bWUpOwpleHRlcm4gdm9pZCBjaGVja190c2Nf
c3luY19zb3VyY2UoaW50IGNwdSk7CmV4dGVybiB2b2lkIGNoZWNrX3RzY19zeW5jX3RhcmdldCh2
b2lkKTsKCgoKCgoKCmV4dGVybiBpbnQgbm90c2Nfc2V0dXAoY2hhciAqKTsKZXh0ZXJuIHZvaWQg
dHNjX3NhdmVfc2NoZWRfY2xvY2tfc3RhdGUodm9pZCk7CmV4dGVybiB2b2lkIHRzY19yZXN0b3Jl
X3NjaGVkX2Nsb2NrX3N0YXRlKHZvaWQpOwoKdW5zaWduZWQgbG9uZyBjcHVfa2h6X2Zyb21fbXNy
KHZvaWQpOwojIDcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdGltZXguaCIgMgojIDY2ICIuL2lu
Y2x1ZGUvbGludXgvdGltZXguaCIgMgojIDEzOSAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCmV4
dGVybiB1bnNpZ25lZCBsb25nIHRpY2tfdXNlYzsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdGlja19u
c2VjOwojIDE1NCAiLi9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCmV4dGVybiBpbnQgZG9fYWRqdGlt
ZXgoc3RydWN0IF9fa2VybmVsX3RpbWV4ICopOwpleHRlcm4gaW50IGRvX2Nsb2NrX2FkanRpbWUo
Y29uc3QgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLCBzdHJ1Y3QgX19rZXJuZWxfdGltZXggKiBrdHgp
OwoKZXh0ZXJuIHZvaWQgaGFyZHBwcyhjb25zdCBzdHJ1Y3QgdGltZXNwZWM2NCAqLCBjb25zdCBz
dHJ1Y3QgdGltZXNwZWM2NCAqKTsKCmludCByZWFkX2N1cnJlbnRfdGltZXIodW5zaWduZWQgbG9u
ZyAqdGltZXJfdmFsKTsKdm9pZCBudHBfbm90aWZ5X2Ntb3NfdGltZXIodm9pZCk7CiMgMTQgIi4v
aW5jbHVkZS9saW51eC90aW1lMzIuaCIgMgoKdHlwZWRlZiBzMzIgb2xkX3RpbWUzMl90OwoKc3Ry
dWN0IG9sZF90aW1lc3BlYzMyIHsKIG9sZF90aW1lMzJfdCB0dl9zZWM7CiBzMzIgdHZfbnNlYzsK
fTsKCnN0cnVjdCBvbGRfdGltZXZhbDMyIHsKIG9sZF90aW1lMzJfdCB0dl9zZWM7CiBzMzIgdHZf
dXNlYzsKfTsKCnN0cnVjdCBvbGRfaXRpbWVyc3BlYzMyIHsKIHN0cnVjdCBvbGRfdGltZXNwZWMz
MiBpdF9pbnRlcnZhbDsKIHN0cnVjdCBvbGRfdGltZXNwZWMzMiBpdF92YWx1ZTsKfTsKCnN0cnVj
dCBvbGRfdXRpbWJ1ZjMyIHsKIG9sZF90aW1lMzJfdCBhY3RpbWU7CiBvbGRfdGltZTMyX3QgbW9k
dGltZTsKfTsKCnN0cnVjdCBvbGRfdGltZXgzMiB7CiB1MzIgbW9kZXM7CiBzMzIgb2Zmc2V0Owog
czMyIGZyZXE7CiBzMzIgbWF4ZXJyb3I7CiBzMzIgZXN0ZXJyb3I7CiBzMzIgc3RhdHVzOwogczMy
IGNvbnN0YW50OwogczMyIHByZWNpc2lvbjsKIHMzMiB0b2xlcmFuY2U7CiBzdHJ1Y3Qgb2xkX3Rp
bWV2YWwzMiB0aW1lOwogczMyIHRpY2s7CiBzMzIgcHBzZnJlcTsKIHMzMiBqaXR0ZXI7CiBzMzIg
c2hpZnQ7CiBzMzIgc3RhYmlsOwogczMyIGppdGNudDsKIHMzMiBjYWxjbnQ7CiBzMzIgZXJyY250
OwogczMyIHN0YmNudDsKIHMzMiB0YWk7CgogczMyOjMyOyBzMzI6MzI7IHMzMjozMjsgczMyOjMy
OwogczMyOjMyOyBzMzI6MzI7IHMzMjozMjsgczMyOjMyOwogczMyOjMyOyBzMzI6MzI7IHMzMjoz
MjsKfTsKCmV4dGVybiBpbnQgZ2V0X29sZF90aW1lc3BlYzMyKHN0cnVjdCB0aW1lc3BlYzY0ICos
IGNvbnN0IHZvaWQgKik7CmV4dGVybiBpbnQgcHV0X29sZF90aW1lc3BlYzMyKGNvbnN0IHN0cnVj
dCB0aW1lc3BlYzY0ICosIHZvaWQgKik7CmV4dGVybiBpbnQgZ2V0X29sZF9pdGltZXJzcGVjMzIo
c3RydWN0IGl0aW1lcnNwZWM2NCAqaXRzLAogICBjb25zdCBzdHJ1Y3Qgb2xkX2l0aW1lcnNwZWMz
MiAqdWl0cyk7CmV4dGVybiBpbnQgcHV0X29sZF9pdGltZXJzcGVjMzIoY29uc3Qgc3RydWN0IGl0
aW1lcnNwZWM2NCAqaXRzLAogICBzdHJ1Y3Qgb2xkX2l0aW1lcnNwZWMzMiAqdWl0cyk7CnN0cnVj
dCBfX2tlcm5lbF90aW1leDsKaW50IGdldF9vbGRfdGltZXgzMihzdHJ1Y3QgX19rZXJuZWxfdGlt
ZXggKiwgY29uc3Qgc3RydWN0IG9sZF90aW1leDMyICopOwppbnQgcHV0X29sZF90aW1leDMyKHN0
cnVjdCBvbGRfdGltZXgzMiAqLCBjb25zdCBzdHJ1Y3QgX19rZXJuZWxfdGltZXggKik7CgoKCgoK
CgpleHRlcm4gc3RydWN0IF9fa2VybmVsX29sZF90aW1ldmFsIG5zX3RvX2tlcm5lbF9vbGRfdGlt
ZXZhbChzNjQgbnNlYyk7CiMgNzUgIi4vaW5jbHVkZS9saW51eC90aW1lLmgiIDIKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXRp
bWVyc3BlYzY0X3ZhbGlkKGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjNjQgKml0cykKewogaWYgKCF0
aW1lc3BlYzY0X3ZhbGlkKCYoaXRzLT5pdF9pbnRlcnZhbCkpIHx8CiAgIXRpbWVzcGVjNjRfdmFs
aWQoJihpdHMtPml0X3ZhbHVlKSkpCiAgcmV0dXJuIGZhbHNlOwoKIHJldHVybiB0cnVlOwp9CiMg
MTE0ICIuL2luY2x1ZGUvbGludXgvdGltZS5oIgpzdHJ1Y3QgdGltZW5zX29mZnNldCB7CiBzNjQg
c2VjOwogdTY0IG5zZWM7Cn07CiMgMjUgIi4vaW5jbHVkZS9saW51eC9rdGltZS5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIgMQojIDExICIuL2luY2x1ZGUvbGludXgvamlmZmll
cy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vcGFyYW0uaCIg
MQojIDEyICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIiAyCiMgMSAiLi9pbmNsdWRlL2dlbmVy
YXRlZC90aW1lY29uc3QuaCIgMQojIDEzICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIiAyCiMg
NjAgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCmV4dGVybiBpbnQgcmVnaXN0ZXJfcmVmaW5l
ZF9qaWZmaWVzKGxvbmcgY2xvY2tfdGlja19yYXRlKTsKIyA4MCAiLi9pbmNsdWRlL2xpbnV4L2pp
ZmZpZXMuaCIKZXh0ZXJuIHU2NCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygoMSA8PCAoNikp
KSwgX19zZWN0aW9uX18oIi5kYXRhLi5jYWNoZWxpbmVfYWxpZ25lZCIpKSkgamlmZmllc182NDsK
ZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm9sYXRpbGUgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18o
KDEgPDwgKDYpKSksIF9fc2VjdGlvbl9fKCIuZGF0YS4uY2FjaGVsaW5lX2FsaWduZWQiKSkpIGpp
ZmZpZXM7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB1NjQgZ2V0X2ppZmZpZXNfNjQodm9pZCkKewogcmV0dXJuICh1NjQpamlmZmll
czsKfQojIDE5MCAiLi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaCIKZXh0ZXJuIHVuc2lnbmVkIGxv
bmcgcHJlc2V0X2xwajsKIyAyOTEgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCmV4dGVybiB1
bnNpZ25lZCBpbnQgamlmZmllc190b19tc2Vjcyhjb25zdCB1bnNpZ25lZCBsb25nIGopOwpleHRl
cm4gdW5zaWduZWQgaW50IGppZmZpZXNfdG9fdXNlY3MoY29uc3QgdW5zaWduZWQgbG9uZyBqKTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHU2NCBqaWZmaWVzX3RvX25zZWNzKGNvbnN0IHVuc2lnbmVkIGxvbmcgaikKewogcmV0dXJuICh1
NjQpamlmZmllc190b191c2VjcyhqKSAqIDEwMDBMOwp9CgpleHRlcm4gdTY0IGppZmZpZXM2NF90
b19uc2Vjcyh1NjQgaik7CmV4dGVybiB1NjQgamlmZmllczY0X3RvX21zZWNzKHU2NCBqKTsKCmV4
dGVybiB1bnNpZ25lZCBsb25nIF9fbXNlY3NfdG9famlmZmllcyhjb25zdCB1bnNpZ25lZCBpbnQg
bSk7CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgX21zZWNzX3RvX2ppZmZpZXMoY29uc3QgdW5zaWduZWQg
aW50IG0pCnsKIHJldHVybiAobSArICgxMDAwTCAvIDI1MCkgLSAxKSAvICgxMDAwTCAvIDI1MCk7
Cn0KIyAzNjQgIi4vaW5jbHVkZS9saW51eC9qaWZmaWVzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdW5zaWduZWQgbG9uZyBtc2Vjc190b19qaWZmaWVzKGNvbnN0IHVuc2ln
bmVkIGludCBtKQp7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobSkpIHsKICBpZiAoKGludClt
IDwgMCkKICAgcmV0dXJuICgoKChsb25nKSh+MFVMID4+IDEpKSA+PiAxKS0xKTsKICByZXR1cm4g
X21zZWNzX3RvX2ppZmZpZXMobSk7CiB9IGVsc2UgewogIHJldHVybiBfX21zZWNzX3RvX2ppZmZp
ZXMobSk7CiB9Cn0KCmV4dGVybiB1bnNpZ25lZCBsb25nIF9fdXNlY3NfdG9famlmZmllcyhjb25z
dCB1bnNpZ25lZCBpbnQgdSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIF91c2Vjc190b19qaWZmaWVzKGNvbnN0
IHVuc2lnbmVkIGludCB1KQp7CiByZXR1cm4gKHUgKyAoMTAwMDAwMEwgLyAyNTApIC0gMSkgLyAo
MTAwMDAwMEwgLyAyNTApOwp9CiMgNDExICIuL2luY2x1ZGUvbGludXgvamlmZmllcy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0
dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGxvbmcgdXNlY3NfdG9famlm
Zmllcyhjb25zdCB1bnNpZ25lZCBpbnQgdSkKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKHUp
KSB7CiAgaWYgKHUgPiBqaWZmaWVzX3RvX3VzZWNzKCgoKChsb25nKSh+MFVMID4+IDEpKSA+PiAx
KS0xKSkpCiAgIHJldHVybiAoKCgobG9uZykofjBVTCA+PiAxKSkgPj4gMSktMSk7CiAgcmV0dXJu
IF91c2Vjc190b19qaWZmaWVzKHUpOwogfSBlbHNlIHsKICByZXR1cm4gX191c2Vjc190b19qaWZm
aWVzKHUpOwogfQp9CgpleHRlcm4gdW5zaWduZWQgbG9uZyB0aW1lc3BlYzY0X3RvX2ppZmZpZXMo
Y29uc3Qgc3RydWN0IHRpbWVzcGVjNjQgKnZhbHVlKTsKZXh0ZXJuIHZvaWQgamlmZmllc190b190
aW1lc3BlYzY0KGNvbnN0IHVuc2lnbmVkIGxvbmcgamlmZmllcywKICAgICAgc3RydWN0IHRpbWVz
cGVjNjQgKnZhbHVlKTsKZXh0ZXJuIGNsb2NrX3QgamlmZmllc190b19jbG9ja190KHVuc2lnbmVk
IGxvbmcgeCk7CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGNsb2NrX3QgamlmZmllc19kZWx0YV90b19jbG9ja190KGxvbmcgZGVsdGEpCnsK
IHJldHVybiBqaWZmaWVzX3RvX2Nsb2NrX3QoX19idWlsdGluX2Nob29zZV9leHByKCgoISEoc2l6
ZW9mKCh0eXBlb2YoMEwpICopMSA9PSAodHlwZW9mKGRlbHRhKSAqKTEpKSkgJiYgKChzaXplb2Yo
aW50KSA9PSBzaXplb2YoKig4ID8gKCh2b2lkICopKChsb25nKSgwTCkgKiAwbCkpIDogKGludCAq
KTgpKSkgJiYgKHNpemVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKGRl
bHRhKSAqIDBsKSkgOiAoaW50ICopOCkpKSkpLCAoKDBMKSA+IChkZWx0YSkgPyAoMEwpIDogKGRl
bHRhKSksICh7IHR5cGVvZigwTCkgX19VTklRVUVfSURfX194OSA9ICgwTCk7IHR5cGVvZihkZWx0
YSkgX19VTklRVUVfSURfX195MTAgPSAoZGVsdGEpOyAoKF9fVU5JUVVFX0lEX19feDkpID4gKF9f
VU5JUVVFX0lEX19feTEwKSA/IChfX1VOSVFVRV9JRF9fX3g5KSA6IChfX1VOSVFVRV9JRF9fX3kx
MCkpOyB9KSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgamlmZmllc19kZWx0YV90b19tc2Vjcyhsb25nIGRl
bHRhKQp7CiByZXR1cm4gamlmZmllc190b19tc2VjcyhfX2J1aWx0aW5fY2hvb3NlX2V4cHIoKCgh
IShzaXplb2YoKHR5cGVvZigwTCkgKikxID09ICh0eXBlb2YoZGVsdGEpICopMSkpKSAmJiAoKHNp
emVvZihpbnQpID09IHNpemVvZigqKDggPyAoKHZvaWQgKikoKGxvbmcpKDBMKSAqIDBsKSkgOiAo
aW50ICopOCkpKSAmJiAoc2l6ZW9mKGludCkgPT0gc2l6ZW9mKCooOCA/ICgodm9pZCAqKSgobG9u
ZykoZGVsdGEpICogMGwpKSA6IChpbnQgKik4KSkpKSksICgoMEwpID4gKGRlbHRhKSA/ICgwTCkg
OiAoZGVsdGEpKSwgKHsgdHlwZW9mKDBMKSBfX1VOSVFVRV9JRF9fX3gxMSA9ICgwTCk7IHR5cGVv
ZihkZWx0YSkgX19VTklRVUVfSURfX195MTIgPSAoZGVsdGEpOyAoKF9fVU5JUVVFX0lEX19feDEx
KSA+IChfX1VOSVFVRV9JRF9fX3kxMikgPyAoX19VTklRVUVfSURfX194MTEpIDogKF9fVU5JUVVF
X0lEX19feTEyKSk7IH0pKSk7Cn0KCmV4dGVybiB1bnNpZ25lZCBsb25nIGNsb2NrX3RfdG9famlm
Zmllcyh1bnNpZ25lZCBsb25nIHgpOwpleHRlcm4gdTY0IGppZmZpZXNfNjRfdG9fY2xvY2tfdCh1
NjQgeCk7CmV4dGVybiB1NjQgbnNlY190b19jbG9ja190KHU2NCB4KTsKZXh0ZXJuIHU2NCBuc2Vj
c190b19qaWZmaWVzNjQodTY0IG4pOwpleHRlcm4gdW5zaWduZWQgbG9uZyBuc2Vjc190b19qaWZm
aWVzKHU2NCBuKTsKIyAyNiAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiIDIKCgp0eXBlZGVmIHM2
NCBrdGltZV90OwojIDM3ICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9z
ZXQoY29uc3QgczY0IHNlY3MsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbnNlY3MpCnsKIGlmIChfX2J1
aWx0aW5fZXhwZWN0KCEhKHNlY3MgPj0gKCgoczY0KX4oKHU2NCkxIDw8IDYzKSkgLyAxMDAwMDAw
MDAwTCkpLCAwKSkKICByZXR1cm4gKChzNjQpfigodTY0KTEgPDwgNjMpKTsKCiByZXR1cm4gc2Vj
cyAqIDEwMDAwMDAwMDBMICsgKHM2NCluc2VjczsKfQojIDcwICIuL2luY2x1ZGUvbGludXgva3Rp
bWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkga3RpbWVfdCB0aW1lc3BlYzY0X3RvX2t0aW1lKHN0cnVjdCB0aW1lc3BlYzY0IHRzKQp7
CiByZXR1cm4ga3RpbWVfc2V0KHRzLnR2X3NlYywgdHMudHZfbnNlYyk7Cn0KCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3Rp
bWVfdG9fbnMoY29uc3Qga3RpbWVfdCBrdCkKewogcmV0dXJuIGt0Owp9CiMgOTQgIi4vaW5jbHVk
ZS9saW51eC9rdGltZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQga3RpbWVfY29tcGFyZShjb25zdCBrdGltZV90IGNtcDEsIGNv
bnN0IGt0aW1lX3QgY21wMikKewogaWYgKGNtcDEgPCBjbXAyKQogIHJldHVybiAtMTsKIGlmIChj
bXAxID4gY21wMikKICByZXR1cm4gMTsKIHJldHVybiAwOwp9CiMgMTEwICIuL2luY2x1ZGUvbGlu
dXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBrdGltZV9hZnRlcihjb25zdCBrdGltZV90IGNtcDEsIGNvbnN0IGt0
aW1lX3QgY21wMikKewogcmV0dXJuIGt0aW1lX2NvbXBhcmUoY21wMSwgY21wMikgPiAwOwp9CiMg
MTIyICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrdGltZV9iZWZvcmUoY29uc3Qga3Rp
bWVfdCBjbXAxLCBjb25zdCBrdGltZV90IGNtcDIpCnsKIHJldHVybiBrdGltZV9jb21wYXJlKGNt
cDEsIGNtcDIpIDwgMDsKfQojIDE0NyAiLi9pbmNsdWRlL2xpbnV4L2t0aW1lLmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBrdGlt
ZV9kaXZucyhjb25zdCBrdGltZV90IGt0LCBzNjQgZGl2KQp7CgoKCgogKHsgaW50IF9fcmV0X3dh
cm5fb24gPSAhIShkaXYgPCAwKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9v
biksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgw
ZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIg
Ii5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIu
bG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMx
IiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5Ojpm
bGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRl
L2xpbnV4L2t0aW1lLmgiKSwgImkiICgxNTMpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSks
ICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9s
YXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIu
bG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDEzKSk7IH0pOyB9
IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwog
cmV0dXJuIGt0IC8gZGl2Owp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0IGt0aW1lX3RvX3VzKGNvbnN0IGt0aW1lX3Qga3QpCnsK
IHJldHVybiBrdGltZV9kaXZucyhrdCwgMTAwMEwpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQga3RpbWVfdG9fbXMoY29uc3Qg
a3RpbWVfdCBrdCkKewogcmV0dXJuIGt0aW1lX2Rpdm5zKGt0LCAxMDAwMDAwTCk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBr
dGltZV91c19kZWx0YShjb25zdCBrdGltZV90IGxhdGVyLCBjb25zdCBrdGltZV90IGVhcmxpZXIp
CnsKICAgICAgIHJldHVybiBrdGltZV90b191cygoKGxhdGVyKSAtIChlYXJsaWVyKSkpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
NjQga3RpbWVfbXNfZGVsdGEoY29uc3Qga3RpbWVfdCBsYXRlciwgY29uc3Qga3RpbWVfdCBlYXJs
aWVyKQp7CiByZXR1cm4ga3RpbWVfdG9fbXMoKChsYXRlcikgLSAoZWFybGllcikpKTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3Rp
bWVfdCBrdGltZV9hZGRfdXMoY29uc3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IHVzZWMpCnsKIHJl
dHVybiAoKGt0KSArICh1c2VjICogMTAwMEwpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9hZGRfbXMoY29u
c3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IG1zZWMpCnsKIHJldHVybiAoKGt0KSArIChtc2VjICog
MTAwMDAwMEwpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9zdWJfdXMoY29uc3Qga3RpbWVfdCBrdCwgY29u
c3QgdTY0IHVzZWMpCnsKIHJldHVybiAoKGt0KSAtICh1c2VjICogMTAwMEwpKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVf
dCBrdGltZV9zdWJfbXMoY29uc3Qga3RpbWVfdCBrdCwgY29uc3QgdTY0IG1zZWMpCnsKIHJldHVy
biAoKGt0KSAtIChtc2VjICogMTAwMDAwMEwpKTsKfQoKZXh0ZXJuIGt0aW1lX3Qga3RpbWVfYWRk
X3NhZmUoY29uc3Qga3RpbWVfdCBsaHMsIGNvbnN0IGt0aW1lX3QgcmhzKTsKIyAyMDggIi4vaW5j
bHVkZS9saW51eC9rdGltZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9f
KSkgYm9vbCBrdGltZV90b190aW1lc3BlYzY0X2NvbmQoY29uc3Qga3RpbWVfdCBrdCwKICAgICAg
ICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKewogaWYgKGt0KSB7CiAgKnRzID0gbnNfdG9f
dGltZXNwZWM2NCgoa3QpKTsKICByZXR1cm4gdHJ1ZTsKIH0gZWxzZSB7CiAgcmV0dXJuIGZhbHNl
OwogfQp9CiMgMjI4ICIuL2luY2x1ZGUvbGludXgva3RpbWUuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBuc190b19rdGlt
ZSh1NjQgbnMpCnsKIHJldHVybiBuczsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBtc190b19rdGltZSh1NjQgbXMpCnsK
IHJldHVybiBtcyAqIDEwMDAwMDBMOwp9CgojIDEgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGlu
Zy5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCnZvaWQgdGltZWtlZXBp
bmdfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCB0aW1la2VlcGluZ19zdXNwZW5kZWQ7CgoKZXh0ZXJu
IHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVzZXIpOwpleHRlcm4gdm9pZCB4dGltZV91
cGRhdGUodW5zaWduZWQgbG9uZyB0aWNrcyk7CgoKCgpleHRlcm4gaW50IGRvX3NldHRpbWVvZmRh
eTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CmV4dGVybiBpbnQgZG9fc3lzX3NldHRp
bWVvZmRheTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0diwKICAgICBjb25zdCBzdHJ1Y3Qg
dGltZXpvbmUgKnR6KTsKIyA0MSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVrZWVwaW5nLmgiCmV4dGVy
biB2b2lkIGt0aW1lX2dldF9yYXdfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwpleHRlcm4g
dm9pZCBrdGltZV9nZXRfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwpleHRlcm4gdm9pZCBr
dGltZV9nZXRfcmVhbF90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0dik7CmV4dGVybiB2b2lkIGt0
aW1lX2dldF9jb2Fyc2VfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwpleHRlcm4gdm9pZCBr
dGltZV9nZXRfY29hcnNlX3JlYWxfdHM2NChzdHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwoKdm9pZCBn
ZXRib290dGltZTY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CgoKCgpleHRlcm4gdGltZTY0X3Qg
a3RpbWVfZ2V0X3NlY29uZHModm9pZCk7CmV4dGVybiB0aW1lNjRfdCBfX2t0aW1lX2dldF9yZWFs
X3NlY29uZHModm9pZCk7CmV4dGVybiB0aW1lNjRfdCBrdGltZV9nZXRfcmVhbF9zZWNvbmRzKHZv
aWQpOwoKCgoKCmVudW0gdGtfb2Zmc2V0cyB7CiBUS19PRkZTX1JFQUwsCiBUS19PRkZTX0JPT1Qs
CiBUS19PRkZTX1RBSSwKIFRLX09GRlNfTUFYLAp9OwoKZXh0ZXJuIGt0aW1lX3Qga3RpbWVfZ2V0
KHZvaWQpOwpleHRlcm4ga3RpbWVfdCBrdGltZV9nZXRfd2l0aF9vZmZzZXQoZW51bSB0a19vZmZz
ZXRzIG9mZnMpOwpleHRlcm4ga3RpbWVfdCBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KGVu
dW0gdGtfb2Zmc2V0cyBvZmZzKTsKZXh0ZXJuIGt0aW1lX3Qga3RpbWVfbW9ub190b19hbnkoa3Rp
bWVfdCB0bW9ubywgZW51bSB0a19vZmZzZXRzIG9mZnMpOwpleHRlcm4ga3RpbWVfdCBrdGltZV9n
ZXRfcmF3KHZvaWQpOwpleHRlcm4gdTMyIGt0aW1lX2dldF9yZXNvbHV0aW9uX25zKHZvaWQpOwoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkga3RpbWVfdCBrdGltZV9nZXRfcmVhbCh2b2lkKQp7CiByZXR1cm4ga3RpbWVfZ2V0X3dpdGhf
b2Zmc2V0KFRLX09GRlNfUkVBTCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2NvYXJzZV9yZWFsKHZv
aWQpCnsKIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0KFRLX09GRlNfUkVBTCk7
Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2Jvb3R0aW1lKHZvaWQpCnsKIHJldHVybiBrdGlt
ZV9nZXRfd2l0aF9vZmZzZXQoVEtfT0ZGU19CT09UKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBrdGltZV9nZXRfY29h
cnNlX2Jvb3R0aW1lKHZvaWQpCnsKIHJldHVybiBrdGltZV9nZXRfY29hcnNlX3dpdGhfb2Zmc2V0
KFRLX09GRlNfQk9PVCk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3Qga3RpbWVfZ2V0X2Nsb2NrdGFpKHZvaWQpCnsK
IHJldHVybiBrdGltZV9nZXRfd2l0aF9vZmZzZXQoVEtfT0ZGU19UQUkpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0
aW1lX2dldF9jb2Fyc2VfY2xvY2t0YWkodm9pZCkKewogcmV0dXJuIGt0aW1lX2dldF9jb2Fyc2Vf
d2l0aF9vZmZzZXQoVEtfT0ZGU19UQUkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGt0aW1lX2dldF9jb2Fyc2Uodm9p
ZCkKewogc3RydWN0IHRpbWVzcGVjNjQgdHM7Cgoga3RpbWVfZ2V0X2NvYXJzZV90czY0KCZ0cyk7
CiByZXR1cm4gdGltZXNwZWM2NF90b19rdGltZSh0cyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNl
X25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhrdGltZV9nZXRfY29hcnNlKCkpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1
NjQga3RpbWVfZ2V0X2NvYXJzZV9yZWFsX25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhr
dGltZV9nZXRfY29hcnNlX3JlYWwoKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1l
X25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1l
KCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1NjQga3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaV9ucyh2b2lkKQp7CiByZXR1cm4g
a3RpbWVfdG9fbnMoa3RpbWVfZ2V0X2NvYXJzZV9jbG9ja3RhaSgpKTsKfQoKCgoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga3RpbWVfdCBr
dGltZV9tb25vX3RvX3JlYWwoa3RpbWVfdCBtb25vKQp7CiByZXR1cm4ga3RpbWVfbW9ub190b19h
bnkobW9ubywgVEtfT0ZGU19SRUFMKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGt0aW1lX2dldF9ucyh2b2lkKQp7CiByZXR1
cm4ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVfZ2V0X3JlYWxfbnModm9p
ZCkKewogcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9yZWFsKCkpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQga3RpbWVf
Z2V0X2Jvb3R0aW1lX25zKHZvaWQpCnsKIHJldHVybiBrdGltZV90b19ucyhrdGltZV9nZXRfYm9v
dHRpbWUoKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHU2NCBrdGltZV9nZXRfY2xvY2t0YWlfbnModm9pZCkKewogcmV0dXJuIGt0
aW1lX3RvX25zKGt0aW1lX2dldF9jbG9ja3RhaSgpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGt0aW1lX2dldF9yYXdfbnMo
dm9pZCkKewogcmV0dXJuIGt0aW1lX3RvX25zKGt0aW1lX2dldF9yYXcoKSk7Cn0KCmV4dGVybiB1
NjQga3RpbWVfZ2V0X21vbm9fZmFzdF9ucyh2b2lkKTsKZXh0ZXJuIHU2NCBrdGltZV9nZXRfcmF3
X2Zhc3RfbnModm9pZCk7CmV4dGVybiB1NjQga3RpbWVfZ2V0X2Jvb3RfZmFzdF9ucyh2b2lkKTsK
ZXh0ZXJuIHU2NCBrdGltZV9nZXRfcmVhbF9mYXN0X25zKHZvaWQpOwoKCgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1l
X2dldF9ib290dGltZV90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKewogKnRzID0gbnNfdG9f
dGltZXNwZWM2NCgoa3RpbWVfZ2V0X2Jvb3R0aW1lKCkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrdGltZV9nZXRfY29h
cnNlX2Jvb3R0aW1lX3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKQp7CiAqdHMgPSBuc190b190
aW1lc3BlYzY0KChrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1lKCkpKTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdGltZTY0X3Qga3Rp
bWVfZ2V0X2Jvb3R0aW1lX3NlY29uZHModm9pZCkKewogcmV0dXJuIGt0aW1lX2Rpdm5zKGt0aW1l
X2dldF9jb2Fyc2VfYm9vdHRpbWUoKSwgMTAwMDAwMDAwMEwpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGt0aW1lX2dldF9j
bG9ja3RhaV90czY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cykKewogKnRzID0gbnNfdG9fdGltZXNw
ZWM2NCgoa3RpbWVfZ2V0X2Nsb2NrdGFpKCkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrdGltZV9nZXRfY29hcnNlX2Ns
b2NrdGFpX3RzNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKQp7CiAqdHMgPSBuc190b190aW1lc3Bl
YzY0KChrdGltZV9nZXRfY29hcnNlX2Nsb2NrdGFpKCkpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdGltZTY0X3Qga3RpbWVfZ2V0
X2Nsb2NrdGFpX3NlY29uZHModm9pZCkKewogcmV0dXJuIGt0aW1lX2Rpdm5zKGt0aW1lX2dldF9j
b2Fyc2VfY2xvY2t0YWkoKSwgMTAwMDAwMDAwMEwpOwp9CgoKCgpleHRlcm4gYm9vbCB0aW1la2Vl
cGluZ19ydGNfc2tpcHN1c3BlbmQodm9pZCk7CmV4dGVybiBib29sIHRpbWVrZWVwaW5nX3J0Y19z
a2lwcmVzdW1lKHZvaWQpOwoKZXh0ZXJuIHZvaWQgdGltZWtlZXBpbmdfaW5qZWN0X3NsZWVwdGlt
ZTY0KGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICpkZWx0YSk7CiMgMjM0ICIuL2luY2x1ZGUvbGlu
dXgvdGltZWtlZXBpbmcuaCIKc3RydWN0IHN5c3RlbV90aW1lX3NuYXBzaG90IHsKIHU2NCBjeWNs
ZXM7CiBrdGltZV90IHJlYWw7CiBrdGltZV90IHJhdzsKIHVuc2lnbmVkIGludCBjbG9ja193YXNf
c2V0X3NlcTsKIHU4IGNzX3dhc19jaGFuZ2VkX3NlcTsKfTsKIyAyNDkgIi4vaW5jbHVkZS9saW51
eC90aW1la2VlcGluZy5oIgpzdHJ1Y3Qgc3lzdGVtX2RldmljZV9jcm9zc3RzdGFtcCB7CiBrdGlt
ZV90IGRldmljZTsKIGt0aW1lX3Qgc3lzX3JlYWx0aW1lOwoga3RpbWVfdCBzeXNfbW9ub3JhdzsK
fTsKIyAyNjIgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZy5oIgpzdHJ1Y3Qgc3lzdGVtX2Nv
dW50ZXJ2YWxfdCB7CiB1NjQgY3ljbGVzOwogc3RydWN0IGNsb2Nrc291cmNlICpjczsKfTsKCgoK
CmV4dGVybiBpbnQgZ2V0X2RldmljZV9zeXN0ZW1fY3Jvc3N0c3RhbXAoCiAgIGludCAoKmdldF90
aW1lX2ZuKShrdGltZV90ICpkZXZpY2VfdGltZSwKICAgIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZh
bF90ICpzeXN0ZW1fY291bnRlcnZhbCwKICAgIHZvaWQgKmN0eCksCiAgIHZvaWQgKmN0eCwKICAg
c3RydWN0IHN5c3RlbV90aW1lX3NuYXBzaG90ICpoaXN0b3J5LAogICBzdHJ1Y3Qgc3lzdGVtX2Rl
dmljZV9jcm9zc3RzdGFtcCAqeHRzdGFtcCk7CgoKCgpleHRlcm4gdm9pZCBrdGltZV9nZXRfc25h
cHNob3Qoc3RydWN0IHN5c3RlbV90aW1lX3NuYXBzaG90ICpzeXN0aW1lX3NuYXBzaG90KTsKCgoK
CmV4dGVybiBpbnQgcGVyc2lzdGVudF9jbG9ja19pc19sb2NhbDsKCmV4dGVybiB2b2lkIHJlYWRf
cGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CnZvaWQgcmVhZF9wZXJz
aXN0ZW50X3dhbGxfYW5kX2Jvb3Rfb2Zmc2V0KHN0cnVjdCB0aW1lc3BlYzY0ICp3YWxsX2Nsb2Nr
LAogICAgICAgc3RydWN0IHRpbWVzcGVjNjQgKmJvb3Rfb2Zmc2V0KTsKZXh0ZXJuIGludCB1cGRh
dGVfcGVyc2lzdGVudF9jbG9jazY0KHN0cnVjdCB0aW1lc3BlYzY0IG5vdyk7CiMgMjM5ICIuL2lu
Y2x1ZGUvbGludXgva3RpbWUuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC90aW1la2VlcGluZzMy
LmgiIDEKIyA5ICIuL2luY2x1ZGUvbGludXgvdGltZWtlZXBpbmczMi5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25n
IGdldF9zZWNvbmRzKHZvaWQpCnsKIHJldHVybiBrdGltZV9nZXRfcmVhbF9zZWNvbmRzKCk7Cn0K
IyAyNDAgIi4vaW5jbHVkZS9saW51eC9rdGltZS5oIiAyCiMgNyAiLi9pbmNsdWRlL2xpbnV4L3Rp
bWVyLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnb2JqZWN0cy5oIiAxCgoKCgoKCgpl
bnVtIGRlYnVnX29ial9zdGF0ZSB7CiBPREVCVUdfU1RBVEVfTk9ORSwKIE9ERUJVR19TVEFURV9J
TklULAogT0RFQlVHX1NUQVRFX0lOQUNUSVZFLAogT0RFQlVHX1NUQVRFX0FDVElWRSwKIE9ERUJV
R19TVEFURV9ERVNUUk9ZRUQsCiBPREVCVUdfU1RBVEVfTk9UQVZBSUxBQkxFLAogT0RFQlVHX1NU
QVRFX01BWCwKfTsKCnN0cnVjdCBkZWJ1Z19vYmpfZGVzY3I7CiMgMjggIi4vaW5jbHVkZS9saW51
eC9kZWJ1Z29iamVjdHMuaCIKc3RydWN0IGRlYnVnX29iaiB7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSBu
b2RlOwogZW51bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGU7CiB1bnNpZ25lZCBpbnQgYXN0YXRlOwog
dm9pZCAqb2JqZWN0Owogc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3I7Cn07CiMgNTUgIi4v
aW5jbHVkZS9saW51eC9kZWJ1Z29iamVjdHMuaCIKc3RydWN0IGRlYnVnX29ial9kZXNjciB7CiBj
b25zdCBjaGFyICpuYW1lOwogdm9pZCAqKCpkZWJ1Z19oaW50KSh2b2lkICphZGRyKTsKIGJvb2wg
KCppc19zdGF0aWNfb2JqZWN0KSh2b2lkICphZGRyKTsKIGJvb2wgKCpmaXh1cF9pbml0KSh2b2lk
ICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0ZSBzdGF0ZSk7CiBib29sICgqZml4dXBfYWN0aXZh
dGUpKHZvaWQgKmFkZHIsIGVudW0gZGVidWdfb2JqX3N0YXRlIHN0YXRlKTsKIGJvb2wgKCpmaXh1
cF9kZXN0cm95KSh2b2lkICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0ZSBzdGF0ZSk7CiBib29s
ICgqZml4dXBfZnJlZSkodm9pZCAqYWRkciwgZW51bSBkZWJ1Z19vYmpfc3RhdGUgc3RhdGUpOwog
Ym9vbCAoKmZpeHVwX2Fzc2VydF9pbml0KSh2b2lkICphZGRyLCBlbnVtIGRlYnVnX29ial9zdGF0
ZSBzdGF0ZSk7Cn07CiMgODggIi4vaW5jbHVkZS9saW51eC9kZWJ1Z29iamVjdHMuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApk
ZWJ1Z19vYmplY3RfaW5pdCAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVz
Y3IpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkCmRlYnVnX29iamVjdF9pbml0X29uX3N0YWNrKHZvaWQgKmFkZHIsIHN0cnVj
dCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CmRlYnVnX29iamVjdF9hY3RpdmF0ZSAo
dm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgcmV0dXJuIDA7IH0K
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZApkZWJ1Z19vYmplY3RfZGVhY3RpdmF0ZSh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfb2Jq
X2Rlc2NyICpkZXNjcikgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKZGVidWdfb2JqZWN0X2Rlc3Ryb3kgKHZvaWQgKmFkZHIs
IHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApkZWJ1Z19vYmplY3RfZnJl
ZSAodm9pZCAqYWRkciwgc3RydWN0IGRlYnVnX29ial9kZXNjciAqZGVzY3IpIHsgfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCmRl
YnVnX29iamVjdF9hc3NlcnRfaW5pdCh2b2lkICphZGRyLCBzdHJ1Y3QgZGVidWdfb2JqX2Rlc2Ny
ICpkZXNjcikgeyB9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGRlYnVnX29iamVjdHNfZWFybHlfaW5pdCh2b2lkKSB7IH0Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBkZWJ1Z19vYmplY3RzX21lbV9pbml0KHZvaWQpIHsgfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKZGVidWdfY2hlY2tf
bm9fb2JqX2ZyZWVkKGNvbnN0IHZvaWQgKmFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgc2l6ZSkgeyB9
CiMgOSAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKCgpzdHJ1Y3QgdGltZXJfbGlzdCB7CgoK
Cgogc3RydWN0IGhsaXN0X25vZGUgZW50cnk7CiB1bnNpZ25lZCBsb25nIGV4cGlyZXM7CiB2b2lk
ICgqZnVuY3Rpb24pKHN0cnVjdCB0aW1lcl9saXN0ICopOwogdTMyIGZsYWdzOwoKCgoKfTsKIyA5
MCAiLi9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiCnZvaWQgaW5pdF90aW1lcl9rZXkoc3RydWN0IHRp
bWVyX2xpc3QgKnRpbWVyLAogICAgICB2b2lkICgqZnVuYykoc3RydWN0IHRpbWVyX2xpc3QgKiks
IHVuc2lnbmVkIGludCBmbGFncywKICAgICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxvY2tf
Y2xhc3Nfa2V5ICprZXkpOwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X3RpbWVyX29uX3N0YWNrX2tleShzdHJ1
Y3QgdGltZXJfbGlzdCAqdGltZXIsCiAgICAgICAgdm9pZCAoKmZ1bmMpKHN0cnVjdCB0aW1lcl9s
aXN0ICopLAogICAgICAgIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICBjb25zdCBjaGFyICpu
YW1lLAogICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqa2V5KQp7CiBpbml0X3RpbWVyX2tl
eSh0aW1lciwgZnVuYywgZmxhZ3MsIG5hbWUsIGtleSk7Cn0KIyAxNDkgIi4vaW5jbHVkZS9saW51
eC90aW1lci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGRlc3Ryb3lfdGltZXJfb25fc3RhY2soc3RydWN0IHRpbWVyX2xpc3Qg
KnRpbWVyKSB7IH0KIyAxNjUgIi4vaW5jbHVkZS9saW51eC90aW1lci5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGltZXJfcGVu
ZGluZyhjb25zdCBzdHJ1Y3QgdGltZXJfbGlzdCAqIHRpbWVyKQp7CiByZXR1cm4gdGltZXItPmVu
dHJ5LnBwcmV2ICE9ICgodm9pZCAqKTApOwp9CgpleHRlcm4gdm9pZCBhZGRfdGltZXJfb24oc3Ry
dWN0IHRpbWVyX2xpc3QgKnRpbWVyLCBpbnQgY3B1KTsKZXh0ZXJuIGludCBkZWxfdGltZXIoc3Ry
dWN0IHRpbWVyX2xpc3QgKiB0aW1lcik7CmV4dGVybiBpbnQgbW9kX3RpbWVyKHN0cnVjdCB0aW1l
cl9saXN0ICp0aW1lciwgdW5zaWduZWQgbG9uZyBleHBpcmVzKTsKZXh0ZXJuIGludCBtb2RfdGlt
ZXJfcGVuZGluZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdGltZXIsIHVuc2lnbmVkIGxvbmcgZXhwaXJl
cyk7CmV4dGVybiBpbnQgdGltZXJfcmVkdWNlKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lciwgdW5z
aWduZWQgbG9uZyBleHBpcmVzKTsKCgoKCgoKCmV4dGVybiB2b2lkIGFkZF90aW1lcihzdHJ1Y3Qg
dGltZXJfbGlzdCAqdGltZXIpOwoKZXh0ZXJuIGludCB0cnlfdG9fZGVsX3RpbWVyX3N5bmMoc3Ry
dWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKCgogIGV4dGVybiBpbnQgZGVsX3RpbWVyX3N5bmMoc3Ry
dWN0IHRpbWVyX2xpc3QgKnRpbWVyKTsKCgoKCgoKZXh0ZXJuIHZvaWQgaW5pdF90aW1lcnModm9p
ZCk7CmV4dGVybiB2b2lkIHJ1bl9sb2NhbF90aW1lcnModm9pZCk7CnN0cnVjdCBocnRpbWVyOwpl
eHRlcm4gZW51bSBocnRpbWVyX3Jlc3RhcnQgaXRfcmVhbF9mbihzdHJ1Y3QgaHJ0aW1lciAqKTsK
CgpzdHJ1Y3QgY3RsX3RhYmxlOwoKZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfdGltZXJfbWln
cmF0aW9uOwppbnQgdGltZXJfbWlncmF0aW9uX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqdGFi
bGUsIGludCB3cml0ZSwKICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogICAgICAg
bG9mZl90ICpwcG9zKTsKCgp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllcyh1bnNpZ25lZCBs
b25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllc19yZWxhdGl2ZSh1
bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIHJvdW5kX2ppZmZpZXModW5z
aWduZWQgbG9uZyBqKTsKdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3JlbGF0aXZlKHVuc2ln
bmVkIGxvbmcgaik7Cgp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllc191cCh1bnNpZ25lZCBs
b25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIF9fcm91bmRfamlmZmllc191cF9yZWxhdGl2
ZSh1bnNpZ25lZCBsb25nIGosIGludCBjcHUpOwp1bnNpZ25lZCBsb25nIHJvdW5kX2ppZmZpZXNf
dXAodW5zaWduZWQgbG9uZyBqKTsKdW5zaWduZWQgbG9uZyByb3VuZF9qaWZmaWVzX3VwX3JlbGF0
aXZlKHVuc2lnbmVkIGxvbmcgaik7CgoKaW50IHRpbWVyc19wcmVwYXJlX2NwdSh1bnNpZ25lZCBp
bnQgY3B1KTsKaW50IHRpbWVyc19kZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKIyAxMCAiLi9p
bmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIiAyCiMgMTggIi4vaW5jbHVkZS9saW51eC93b3JrcXVl
dWUuaCIKc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3Q7CgpzdHJ1Y3Qgd29ya19zdHJ1Y3Q7CnR5cGVk
ZWYgdm9pZCAoKndvcmtfZnVuY190KShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwp2b2lkIGRl
bGF5ZWRfd29ya190aW1lcl9mbihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7CgoKCgoKCgplbnVtIHsK
IFdPUktfU1RSVUNUX1BFTkRJTkdfQklUID0gMCwKIFdPUktfU1RSVUNUX0RFTEFZRURfQklUID0g
MSwKIFdPUktfU1RSVUNUX1BXUV9CSVQgPSAyLAogV09SS19TVFJVQ1RfTElOS0VEX0JJVCA9IDMs
CgoKCgogV09SS19TVFJVQ1RfQ09MT1JfU0hJRlQgPSA0LAoKCiBXT1JLX1NUUlVDVF9DT0xPUl9C
SVRTID0gNCwKCiBXT1JLX1NUUlVDVF9QRU5ESU5HID0gMSA8PCBXT1JLX1NUUlVDVF9QRU5ESU5H
X0JJVCwKIFdPUktfU1RSVUNUX0RFTEFZRUQgPSAxIDw8IFdPUktfU1RSVUNUX0RFTEFZRURfQklU
LAogV09SS19TVFJVQ1RfUFdRID0gMSA8PCBXT1JLX1NUUlVDVF9QV1FfQklULAogV09SS19TVFJV
Q1RfTElOS0VEID0gMSA8PCBXT1JLX1NUUlVDVF9MSU5LRURfQklULAoKCgogV09SS19TVFJVQ1Rf
U1RBVElDID0gMCwKCgoKCgoKIFdPUktfTlJfQ09MT1JTID0gKDEgPDwgV09SS19TVFJVQ1RfQ09M
T1JfQklUUykgLSAxLAogV09SS19OT19DT0xPUiA9IFdPUktfTlJfQ09MT1JTLAoKCiBXT1JLX0NQ
VV9VTkJPVU5EID0gOCwKCgoKCgoKIFdPUktfU1RSVUNUX0ZMQUdfQklUUyA9IFdPUktfU1RSVUNU
X0NPTE9SX1NISUZUICsKICAgICAgV09SS19TVFJVQ1RfQ09MT1JfQklUUywKCgogV09SS19PRkZR
X0ZMQUdfQkFTRSA9IFdPUktfU1RSVUNUX0NPTE9SX1NISUZULAoKIF9fV09SS19PRkZRX0NBTkNF
TElORyA9IFdPUktfT0ZGUV9GTEFHX0JBU0UsCiBXT1JLX09GRlFfQ0FOQ0VMSU5HID0gKDEgPDwg
X19XT1JLX09GRlFfQ0FOQ0VMSU5HKSwKCgoKCgoKIFdPUktfT0ZGUV9GTEFHX0JJVFMgPSAxLAog
V09SS19PRkZRX1BPT0xfU0hJRlQgPSBXT1JLX09GRlFfRkxBR19CQVNFICsgV09SS19PRkZRX0ZM
QUdfQklUUywKIFdPUktfT0ZGUV9MRUZUID0gNjQgLSBXT1JLX09GRlFfUE9PTF9TSElGVCwKIFdP
UktfT0ZGUV9QT09MX0JJVFMgPSBXT1JLX09GRlFfTEVGVCA8PSAzMSA/IFdPUktfT0ZGUV9MRUZU
IDogMzEsCiBXT1JLX09GRlFfUE9PTF9OT05FID0gKDFMVSA8PCBXT1JLX09GRlFfUE9PTF9CSVRT
KSAtIDEsCgoKIFdPUktfU1RSVUNUX0ZMQUdfTUFTSyA9ICgxVUwgPDwgV09SS19TVFJVQ1RfRkxB
R19CSVRTKSAtIDEsCiBXT1JLX1NUUlVDVF9XUV9EQVRBX01BU0sgPSB+V09SS19TVFJVQ1RfRkxB
R19NQVNLLAogV09SS19TVFJVQ1RfTk9fUE9PTCA9ICh1bnNpZ25lZCBsb25nKVdPUktfT0ZGUV9Q
T09MX05PTkUgPDwgV09SS19PRkZRX1BPT0xfU0hJRlQsCgoKIFdPUktfQlVTWV9QRU5ESU5HID0g
MSA8PCAwLAogV09SS19CVVNZX1JVTk5JTkcgPSAxIDw8IDEsCgoKIFdPUktFUl9ERVNDX0xFTiA9
IDI0LAp9OwoKc3RydWN0IHdvcmtfc3RydWN0IHsKIGF0b21pY19sb25nX3QgZGF0YTsKIHN0cnVj
dCBsaXN0X2hlYWQgZW50cnk7CiB3b3JrX2Z1bmNfdCBmdW5jOwoKCgp9OwoKCgoKCnN0cnVjdCBk
ZWxheWVkX3dvcmsgewogc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiBzdHJ1Y3QgdGltZXJfbGlz
dCB0aW1lcjsKCgogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwogaW50IGNwdTsKfTsKCnN0
cnVjdCByY3Vfd29yayB7CiBzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKIHN0cnVjdCBjYWxsYmFj
a19oZWFkIHJjdTsKCgogc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwp9OwoKCgoKCgpzdHJ1
Y3Qgd29ya3F1ZXVlX2F0dHJzIHsKCgoKIGludCBuaWNlOwoKCgoKIGNwdW1hc2tfdmFyX3QgY3B1
bWFzazsKIyAxNTUgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKIGJvb2wgbm9fbnVtYTsK
fTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBkZWxheWVkX3dvcmsgKnRvX2RlbGF5ZWRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1
Y3QgKndvcmspCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKSh3b3JrKTsgZG8g
eyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjAodm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29mKCkiKSkp
OyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHdvcmspKSwg
dHlwZW9mKCgoc3RydWN0IGRlbGF5ZWRfd29yayAqKTApLT53b3JrKSkgJiYgIV9fYnVpbHRpbl90
eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCood29yaykpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29t
cGlsZXRpbWVfYXNzZXJ0XzE2MCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgZGVsYXllZF93b3Jr
ICopKF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgZGVsYXllZF93b3JrLCB3b3Jr
KSkpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IHJjdV93b3JrICp0b19yY3Vfd29yayhzdHJ1Y3Qgd29ya19zdHJ1
Y3QgKndvcmspCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKSh3b3JrKTsgZG8g
eyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNjUodm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFpbmVyX29mKCkiKSkp
OyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigqKHdvcmspKSwg
dHlwZW9mKCgoc3RydWN0IHJjdV93b3JrICopMCktPndvcmspKSAmJiAhX19idWlsdGluX3R5cGVz
X2NvbXBhdGlibGVfcCh0eXBlb2YoKih3b3JrKSksIHR5cGVvZih2b2lkKSkpKSkgX19jb21waWxl
dGltZV9hc3NlcnRfMTY1KCk7IH0gd2hpbGUgKDApOyAoKHN0cnVjdCByY3Vfd29yayAqKShfX21w
dHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHJjdV93b3JrLCB3b3JrKSkpOyB9KTsKfQoK
c3RydWN0IGV4ZWN1dGVfd29yayB7CiBzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKfTsKIyAyMTUg
Ii4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2luaXRfd29yayhzdHJ1Y3Qgd29y
a19zdHJ1Y3QgKndvcmssIGludCBvbnN0YWNrKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0cm95X3dvcmtfb25fc3Rh
Y2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXN0cm95X2RlbGF5ZWRfd29y
a19vbl9zdGFjayhzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrKSB7IH0Kc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IHdv
cmtfc3RhdGljKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgeyByZXR1cm4gMDsgfQojIDMwOCAi
Li9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgplbnVtIHsKIFdRX1VOQk9VTkQgPSAxIDw8IDEs
CiBXUV9GUkVFWkFCTEUgPSAxIDw8IDIsCiBXUV9NRU1fUkVDTEFJTSA9IDEgPDwgMywKIFdRX0hJ
R0hQUkkgPSAxIDw8IDQsCiBXUV9DUFVfSU5URU5TSVZFID0gMSA8PCA1LAogV1FfU1lTRlMgPSAx
IDw8IDYsCiMgMzQxICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCiBXUV9QT1dFUl9FRkZJ
Q0lFTlQgPSAxIDw8IDcsCgogX19XUV9EUkFJTklORyA9IDEgPDwgMTYsCiBfX1dRX09SREVSRUQg
PSAxIDw8IDE3LAogX19XUV9MRUdBQ1kgPSAxIDw8IDE4LAogX19XUV9PUkRFUkVEX0VYUExJQ0lU
ID0gMSA8PCAxOSwKCiBXUV9NQVhfQUNUSVZFID0gNTEyLAogV1FfTUFYX1VOQk9VTkRfUEVSX0NQ
VSA9IDQsCiBXUV9ERkxfQUNUSVZFID0gV1FfTUFYX0FDVElWRSAvIDIsCn07CiMgMzg1ICIuL2lu
Y2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCmV4dGVybiBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAq
c3lzdGVtX3dxOwpleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9oaWdocHJp
X3dxOwpleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9sb25nX3dxOwpleHRl
cm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV91bmJvdW5kX3dxOwpleHRlcm4gc3Ry
dWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnN5c3RlbV9mcmVlemFibGVfd3E7CmV4dGVybiBzdHJ1Y3Qg
d29ya3F1ZXVlX3N0cnVjdCAqc3lzdGVtX3Bvd2VyX2VmZmljaWVudF93cTsKZXh0ZXJuIHN0cnVj
dCB3b3JrcXVldWVfc3RydWN0ICpzeXN0ZW1fZnJlZXphYmxlX3Bvd2VyX2VmZmljaWVudF93cTsK
IyA0MDcgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKc3RydWN0IHdvcmtxdWV1ZV9zdHJ1
Y3QgKmFsbG9jX3dvcmtxdWV1ZShjb25zdCBjaGFyICpmbXQsCiAgICAgIHVuc2lnbmVkIGludCBm
bGFncywKICAgICAgaW50IG1heF9hY3RpdmUsIC4uLik7CiMgNDM2ICIuL2luY2x1ZGUvbGludXgv
d29ya3F1ZXVlLmgiCmV4dGVybiB2b2lkIGRlc3Ryb3lfd29ya3F1ZXVlKHN0cnVjdCB3b3JrcXVl
dWVfc3RydWN0ICp3cSk7CgpzdHJ1Y3Qgd29ya3F1ZXVlX2F0dHJzICphbGxvY193b3JrcXVldWVf
YXR0cnModm9pZCk7CnZvaWQgZnJlZV93b3JrcXVldWVfYXR0cnMoc3RydWN0IHdvcmtxdWV1ZV9h
dHRycyAqYXR0cnMpOwppbnQgYXBwbHlfd29ya3F1ZXVlX2F0dHJzKHN0cnVjdCB3b3JrcXVldWVf
c3RydWN0ICp3cSwKICAgICBjb25zdCBzdHJ1Y3Qgd29ya3F1ZXVlX2F0dHJzICphdHRycyk7Cmlu
dCB3b3JrcXVldWVfc2V0X3VuYm91bmRfY3B1bWFzayhjcHVtYXNrX3Zhcl90IGNwdW1hc2spOwoK
ZXh0ZXJuIGJvb2wgcXVldWVfd29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVj
dCAqd3EsCiAgIHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CmV4dGVybiBib29sIHF1ZXVlX3dv
cmtfbm9kZShpbnQgbm9kZSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAogICAgICAgc3Ry
dWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKZXh0ZXJuIGJvb2wgcXVldWVfZGVsYXllZF93b3JrX29u
KGludCBjcHUsIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKICAgc3RydWN0IGRlbGF5ZWRf
d29yayAqd29yaywgdW5zaWduZWQgbG9uZyBkZWxheSk7CmV4dGVybiBib29sIG1vZF9kZWxheWVk
X3dvcmtfb24oaW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAogICBzdHJ1Y3Qg
ZGVsYXllZF93b3JrICpkd29yaywgdW5zaWduZWQgbG9uZyBkZWxheSk7CmV4dGVybiBib29sIHF1
ZXVlX3JjdV93b3JrKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwgc3RydWN0IHJjdV93b3Jr
ICpyd29yayk7CgpleHRlcm4gdm9pZCBmbHVzaF93b3JrcXVldWUoc3RydWN0IHdvcmtxdWV1ZV9z
dHJ1Y3QgKndxKTsKZXh0ZXJuIHZvaWQgZHJhaW5fd29ya3F1ZXVlKHN0cnVjdCB3b3JrcXVldWVf
c3RydWN0ICp3cSk7CgpleHRlcm4gaW50IHNjaGVkdWxlX29uX2VhY2hfY3B1KHdvcmtfZnVuY190
IGZ1bmMpOwoKaW50IGV4ZWN1dGVfaW5fcHJvY2Vzc19jb250ZXh0KHdvcmtfZnVuY190IGZuLCBz
dHJ1Y3QgZXhlY3V0ZV93b3JrICopOwoKZXh0ZXJuIGJvb2wgZmx1c2hfd29yayhzdHJ1Y3Qgd29y
a19zdHJ1Y3QgKndvcmspOwpleHRlcm4gYm9vbCBjYW5jZWxfd29ya19zeW5jKHN0cnVjdCB3b3Jr
X3N0cnVjdCAqd29yayk7CgpleHRlcm4gYm9vbCBmbHVzaF9kZWxheWVkX3dvcmsoc3RydWN0IGRl
bGF5ZWRfd29yayAqZHdvcmspOwpleHRlcm4gYm9vbCBjYW5jZWxfZGVsYXllZF93b3JrKHN0cnVj
dCBkZWxheWVkX3dvcmsgKmR3b3JrKTsKZXh0ZXJuIGJvb2wgY2FuY2VsX2RlbGF5ZWRfd29ya19z
eW5jKHN0cnVjdCBkZWxheWVkX3dvcmsgKmR3b3JrKTsKCmV4dGVybiBib29sIGZsdXNoX3JjdV93
b3JrKHN0cnVjdCByY3Vfd29yayAqcndvcmspOwoKZXh0ZXJuIHZvaWQgd29ya3F1ZXVlX3NldF9t
YXhfYWN0aXZlKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKICAgICAgICAgaW50IG1heF9h
Y3RpdmUpOwpleHRlcm4gc3RydWN0IHdvcmtfc3RydWN0ICpjdXJyZW50X3dvcmsodm9pZCk7CmV4
dGVybiBib29sIGN1cnJlbnRfaXNfd29ya3F1ZXVlX3Jlc2N1ZXIodm9pZCk7CmV4dGVybiBib29s
IHdvcmtxdWV1ZV9jb25nZXN0ZWQoaW50IGNwdSwgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndx
KTsKZXh0ZXJuIHVuc2lnbmVkIGludCB3b3JrX2J1c3koc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr
KTsKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAxLCAyKSkpIHZvaWQg
c2V0X3dvcmtlcl9kZXNjKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKZXh0ZXJuIHZvaWQgcHJpbnRf
d29ya2VyX2luZm8oY29uc3QgY2hhciAqbG9nX2x2bCwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr
KTsKZXh0ZXJuIHZvaWQgc2hvd193b3JrcXVldWVfc3RhdGUodm9pZCk7CmV4dGVybiB2b2lkIHdx
X3dvcmtlcl9jb21tKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHN0cnVjdCB0YXNrX3N0cnVjdCAq
dGFzayk7CiMgNTA0ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcXVldWVfd29y
ayhzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3EsCiAgICAgICAgIHN0cnVjdCB3b3JrX3N0cnVj
dCAqd29yaykKewogcmV0dXJuIHF1ZXVlX3dvcmtfb24oV09SS19DUFVfVU5CT1VORCwgd3EsIHdv
cmspOwp9CiMgNTE4ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcXVldWVfZGVs
YXllZF93b3JrKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSwKICAgICAgICAgIHN0cnVjdCBk
ZWxheWVkX3dvcmsgKmR3b3JrLAogICAgICAgICAgdW5zaWduZWQgbG9uZyBkZWxheSkKewogcmV0
dXJuIHF1ZXVlX2RlbGF5ZWRfd29ya19vbihXT1JLX0NQVV9VTkJPVU5ELCB3cSwgZHdvcmssIGRl
bGF5KTsKfQojIDUzMyAiLi9pbmNsdWRlL2xpbnV4L3dvcmtxdWV1ZS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG1vZF9kZWxh
eWVkX3dvcmsoc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxLAogICAgICAgIHN0cnVjdCBkZWxh
eWVkX3dvcmsgKmR3b3JrLAogICAgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCnsKIHJldHVybiBt
b2RfZGVsYXllZF93b3JrX29uKFdPUktfQ1BVX1VOQk9VTkQsIHdxLCBkd29yaywgZGVsYXkpOwp9
CiMgNTQ3ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2NoZWR1bGVfd29ya19v
bihpbnQgY3B1LCBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCnsKIHJldHVybiBxdWV1ZV93b3Jr
X29uKGNwdSwgc3lzdGVtX3dxLCB3b3JrKTsKfQojIDU2NiAiLi9pbmNsdWRlL2xpbnV4L3dvcmtx
dWV1ZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHNjaGVkdWxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQp7CiBy
ZXR1cm4gcXVldWVfd29yayhzeXN0ZW1fd3EsIHdvcmspOwp9CiMgNTk1ICIuL2luY2x1ZGUvbGlu
dXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZmx1c2hfc2NoZWR1bGVkX3dvcmsodm9pZCkKewogZmx1c2hf
d29ya3F1ZXVlKHN5c3RlbV93cSk7Cn0KIyA2MDkgIi4vaW5jbHVkZS9saW51eC93b3JrcXVldWUu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmtfb24oaW50IGNwdSwgc3RydWN0IGRlbGF5ZWRf
d29yayAqZHdvcmssCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCnsKIHJldHVybiBxdWV1
ZV9kZWxheWVkX3dvcmtfb24oY3B1LCBzeXN0ZW1fd3EsIGR3b3JrLCBkZWxheSk7Cn0KIyA2MjMg
Ii4vaW5jbHVkZS9saW51eC93b3JrcXVldWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBzY2hlZHVsZV9kZWxheWVkX3dvcmso
c3RydWN0IGRlbGF5ZWRfd29yayAqZHdvcmssCiAgICAgIHVuc2lnbmVkIGxvbmcgZGVsYXkpCnsK
IHJldHVybiBxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCBkd29yaywgZGVsYXkpOwp9CiMg
NjM5ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCmxvbmcgd29ya19vbl9jcHUoaW50IGNw
dSwgbG9uZyAoKmZuKSh2b2lkICopLCB2b2lkICphcmcpOwpsb25nIHdvcmtfb25fY3B1X3NhZmUo
aW50IGNwdSwgbG9uZyAoKmZuKSh2b2lkICopLCB2b2lkICphcmcpOwoKCgpleHRlcm4gdm9pZCBm
cmVlemVfd29ya3F1ZXVlc19iZWdpbih2b2lkKTsKZXh0ZXJuIGJvb2wgZnJlZXplX3dvcmtxdWV1
ZXNfYnVzeSh2b2lkKTsKZXh0ZXJuIHZvaWQgdGhhd193b3JrcXVldWVzKHZvaWQpOwoKCgppbnQg
d29ya3F1ZXVlX3N5c2ZzX3JlZ2lzdGVyKHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cSk7CiMg
NjU5ICIuL2luY2x1ZGUvbGludXgvd29ya3F1ZXVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgd3Ffd2F0Y2hkb2dfdG91Y2go
aW50IGNwdSkgeyB9CgoKCmludCB3b3JrcXVldWVfcHJlcGFyZV9jcHUodW5zaWduZWQgaW50IGNw
dSk7CmludCB3b3JrcXVldWVfb25saW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKaW50IHdvcmtx
dWV1ZV9vZmZsaW5lX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKCgppbnQgX19hdHRyaWJ1dGVfXygo
X19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgd29y
a3F1ZXVlX2luaXRfZWFybHkodm9pZCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygi
LmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSB3b3JrcXVldWVfaW5pdCh2
b2lkKTsKIyAxNyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiIDIKCiMgMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9tbXUuaCIgMQoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9tdXRleC5o
IiAxCiMgMjEgIi4vaW5jbHVkZS9saW51eC9tdXRleC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9k
ZWJ1Z19sb2Nrcy5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgiCnN0cnVj
dCB0YXNrX3N0cnVjdDsKCmV4dGVybiBpbnQgZGVidWdfbG9ja3MgX19hdHRyaWJ1dGVfXygoX19z
ZWN0aW9uX18oIi5kYXRhLi5yZWFkX21vc3RseSIpKSk7CmV4dGVybiBpbnQgZGVidWdfbG9ja3Nf
c2lsZW50IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkp
OwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGludCBfX2RlYnVnX2xvY2tzX29mZih2b2lkKQp7CiByZXR1cm4gKHsgdHlwZW9mKCZkZWJ1
Z19sb2NrcykgX19haV9wdHIgPSAoJmRlYnVnX2xvY2tzKTsga2FzYW5fY2hlY2tfd3JpdGUoX19h
aV9wdHIsIHNpemVvZigqX19haV9wdHIpKTsgKHsgX190eXBlb2ZfXyAoKigoX19haV9wdHIpKSkg
X19yZXQgPSAoKDApKTsgc3dpdGNoIChzaXplb2YoKigoX19haV9wdHIpKSkpIHsgY2FzZSAxOiBh
c20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAiYiAlYjAsICUxXG4iIDogIitxIiAoX19yZXQpLCAiK20i
ICgqKChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSAyOiBhc20g
dm9sYXRpbGUgKCIiICJ4Y2hnIiAidyAldzAsICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgq
KChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJjYyIpOyBicmVhazsgY2FzZSA0OiBhc20gdm9s
YXRpbGUgKCIiICJ4Y2hnIiAibCAlMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9f
YWlfcHRyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGls
ZSAoIiIgInhjaGciICJxICVxMCwgJTFcbiIgOiAiK3IiIChfX3JldCksICIrbSIgKCooKF9fYWlf
cHRyKSkpIDogOiAibWVtb3J5IiwgImNjIik7IGJyZWFrOyBkZWZhdWx0OiBfX3hjaGdfd3Jvbmdf
c2l6ZSgpOyB9IF9fcmV0OyB9KTsgfSk7Cn0KCgoKCmV4dGVybiBpbnQgZGVidWdfbG9ja3Nfb2Zm
KHZvaWQpOwojIDQ5ICIuL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaCIKc3RydWN0IHRhc2tf
c3RydWN0OwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWJ1Z19zaG93X2FsbF9sb2Nrcyh2b2lkKQp7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
ZGVidWdfc2hvd19oZWxkX2xvY2tzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKewp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
CmRlYnVnX2NoZWNrX25vX2xvY2tzX2ZyZWVkKGNvbnN0IHZvaWQgKmZyb20sIHVuc2lnbmVkIGxv
bmcgbGVuKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQKZGVidWdfY2hlY2tfbm9fbG9ja3NfaGVsZCh2b2lkKQp7Cn0KIyAy
MiAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiIDIKCnN0cnVjdCB3d19hY3F1aXJlX2N0eDsKIyA1
MyAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCnN0cnVjdCBtdXRleCB7CiBhdG9taWNfbG9uZ190
IG93bmVyOwogc3BpbmxvY2tfdCB3YWl0X2xvY2s7Cgogc3RydWN0IG9wdGltaXN0aWNfc3Bpbl9x
dWV1ZSBvc3E7Cgogc3RydWN0IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CgoKCgoKCn07CgoKCgoKc3Ry
dWN0IG11dGV4X3dhaXRlciB7CiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiBzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnRhc2s7CiBzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnd3X2N0eDsKCgoKfTsKIyA5MiAi
Li9pbmNsdWRlL2xpbnV4L211dGV4LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbXV0ZXhfZGVzdHJveShzdHJ1Y3QgbXV0ZXgg
KmxvY2spIHt9CiMgMTI4ICIuL2luY2x1ZGUvbGludXgvbXV0ZXguaCIKZXh0ZXJuIHZvaWQgX19t
dXRleF9pbml0KHN0cnVjdCBtdXRleCAqbG9jaywgY29uc3QgY2hhciAqbmFtZSwKICAgIHN0cnVj
dCBsb2NrX2NsYXNzX2tleSAqa2V5KTsKCgoKCgoKCmV4dGVybiBib29sIG11dGV4X2lzX2xvY2tl
ZChzdHJ1Y3QgbXV0ZXggKmxvY2spOwojIDE2NSAiLi9pbmNsdWRlL2xpbnV4L211dGV4LmgiCmV4
dGVybiB2b2lkIG11dGV4X2xvY2soc3RydWN0IG11dGV4ICpsb2NrKTsKZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgbXV0ZXhfbG9ja19pbnRlcnJ1cHRp
YmxlKHN0cnVjdCBtdXRleCAqbG9jayk7CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJu
X3VudXNlZF9yZXN1bHRfXykpIG11dGV4X2xvY2tfa2lsbGFibGUoc3RydWN0IG11dGV4ICpsb2Nr
KTsKZXh0ZXJuIHZvaWQgbXV0ZXhfbG9ja19pbyhzdHJ1Y3QgbXV0ZXggKmxvY2spOwojIDE4MyAi
Li9pbmNsdWRlL2xpbnV4L211dGV4LmgiCmV4dGVybiBpbnQgbXV0ZXhfdHJ5bG9jayhzdHJ1Y3Qg
bXV0ZXggKmxvY2spOwpleHRlcm4gdm9pZCBtdXRleF91bmxvY2soc3RydWN0IG11dGV4ICpsb2Nr
KTsKCmV4dGVybiBpbnQgYXRvbWljX2RlY19hbmRfbXV0ZXhfbG9jayhhdG9taWNfdCAqY250LCBz
dHJ1Y3QgbXV0ZXggKmxvY2spOwoKCgoKCmVudW0gbXV0ZXhfdHJ5bG9ja19yZWN1cnNpdmVfZW51
bSB7CiBNVVRFWF9UUllMT0NLX0ZBSUxFRCA9IDAsCiBNVVRFWF9UUllMT0NLX1NVQ0NFU1MgPSAx
LAogTVVURVhfVFJZTE9DS19SRUNVUlNJVkUsCn07CiMgMjEwICIuL2luY2x1ZGUvbGludXgvbXV0
ZXguaCIKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBlbnVt
IG11dGV4X3RyeWxvY2tfcmVjdXJzaXZlX2VudW0KbXV0ZXhfdHJ5bG9ja19yZWN1cnNpdmUoc3Ry
dWN0IG11dGV4ICpsb2NrKTsKIyA4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oIiAyCgoK
CgoKdHlwZWRlZiBzdHJ1Y3QgewoKCgoKIHU2NCBjdHhfaWQ7CiMgMjggIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vbW11LmgiCiBhdG9taWM2NF90IHRsYl9nZW47CgoKIHN0cnVjdCByd19zZW1hcGhv
cmUgbGR0X3Vzcl9zZW07CiBzdHJ1Y3QgbGR0X3N0cnVjdCAqbGR0OwoKCgoKIHVuc2lnbmVkIHNo
b3J0IGlhMzJfY29tcGF0OwoKCiBzdHJ1Y3QgbXV0ZXggbG9jazsKIHZvaWQgKnZkc287CiBjb25z
dCBzdHJ1Y3QgdmRzb19pbWFnZSAqdmRzb19pbWFnZTsKCiBhdG9taWNfdCBwZXJmX3JkcG1jX2Fs
bG93ZWQ7CgoKCgoKIHUxNiBwa2V5X2FsbG9jYXRpb25fbWFwOwogczE2IGV4ZWN1dGVfb25seV9w
a2V5OwoKfSBtbV9jb250ZXh0X3Q7CgoKCgoKCgp2b2lkIGxlYXZlX21tKGludCBjcHUpOwojIDE5
ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIgMgoKCgoKCgoKc3RydWN0IGFkZHJlc3Nfc3Bh
Y2U7CnN0cnVjdCBtZW1fY2dyb3VwOwojIDY4ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIK
c3RydWN0IHBhZ2UgewogdW5zaWduZWQgbG9uZyBmbGFnczsKCgoKCgoKCiB1bmlvbiB7CiAgc3Ry
dWN0IHsKCgoKCgogICBzdHJ1Y3QgbGlzdF9oZWFkIGxydTsKCiAgIHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nOwogICB1bnNpZ25lZCBsb25nIGluZGV4OwoKCgoKCgogICB1bnNpZ25lZCBs
b25nIHByaXZhdGU7CiAgfTsKICBzdHJ1Y3QgewoKCgoKICAgZG1hX2FkZHJfdCBkbWFfYWRkcjsK
ICB9OwogIHN0cnVjdCB7CiAgIHVuaW9uIHsKICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xhYl9saXN0
OwogICAgc3RydWN0IHsKICAgICBzdHJ1Y3QgcGFnZSAqbmV4dDsKCiAgICAgaW50IHBhZ2VzOwog
ICAgIGludCBwb2JqZWN0czsKCgoKCiAgICB9OwogICB9OwogICBzdHJ1Y3Qga21lbV9jYWNoZSAq
c2xhYl9jYWNoZTsKCiAgIHZvaWQgKmZyZWVsaXN0OwogICB1bmlvbiB7CiAgICB2b2lkICpzX21l
bTsKICAgIHVuc2lnbmVkIGxvbmcgY291bnRlcnM7CiAgICBzdHJ1Y3QgewogICAgIHVuc2lnbmVk
IGludXNlOjE2OwogICAgIHVuc2lnbmVkIG9iamVjdHM6MTU7CiAgICAgdW5zaWduZWQgZnJvemVu
OjE7CiAgICB9OwogICB9OwogIH07CiAgc3RydWN0IHsKICAgdW5zaWduZWQgbG9uZyBjb21wb3Vu
ZF9oZWFkOwoKCiAgIHVuc2lnbmVkIGNoYXIgY29tcG91bmRfZHRvcjsKICAgdW5zaWduZWQgY2hh
ciBjb21wb3VuZF9vcmRlcjsKICAgYXRvbWljX3QgY29tcG91bmRfbWFwY291bnQ7CiAgfTsKICBz
dHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIF9jb21wb3VuZF9wYWRfMTsKICAgdW5zaWduZWQgbG9u
ZyBfY29tcG91bmRfcGFkXzI7CgogICBzdHJ1Y3QgbGlzdF9oZWFkIGRlZmVycmVkX2xpc3Q7CiAg
fTsKICBzdHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIF9wdF9wYWRfMTsKICAgcGd0YWJsZV90IHBt
ZF9odWdlX3B0ZTsKICAgdW5zaWduZWQgbG9uZyBfcHRfcGFkXzI7CiAgIHVuaW9uIHsKICAgIHN0
cnVjdCBtbV9zdHJ1Y3QgKnB0X21tOwogICAgYXRvbWljX3QgcHRfZnJhZ19yZWZjb3VudDsKICAg
fTsKCgoKICAgc3BpbmxvY2tfdCBwdGw7CgogIH07CiAgc3RydWN0IHsKCiAgIHN0cnVjdCBkZXZf
cGFnZW1hcCAqcGdtYXA7CiAgIHZvaWQgKnpvbmVfZGV2aWNlX2RhdGE7CiMgMTcyICIuL2luY2x1
ZGUvbGludXgvbW1fdHlwZXMuaCIKICB9OwoKCiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgY2FsbGJh
Y2tfaGVhZDsKIH07CgogdW5pb24gewoKCgoKICBhdG9taWNfdCBfbWFwY291bnQ7CgoKCgoKCgog
IHVuc2lnbmVkIGludCBwYWdlX3R5cGU7CgogIHVuc2lnbmVkIGludCBhY3RpdmU7CiAgaW50IHVu
aXRzOwogfTsKCgogYXRvbWljX3QgX3JlZmNvdW50OwoKCiBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVt
X2Nncm91cDsKIyAyMjIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgp9IDsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGF0b21pY190
ICpjb21wb3VuZF9tYXBjb3VudF9wdHIoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAmcGFn
ZVsxXS5jb21wb3VuZF9tYXBjb3VudDsKfQojIDI0MCAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVz
LmgiCnN0cnVjdCBwYWdlX2ZyYWdfY2FjaGUgewogdm9pZCAqIHZhOwoKIF9fdTE2IG9mZnNldDsK
IF9fdTE2IHNpemU7CgoKCgoKCiB1bnNpZ25lZCBpbnQgcGFnZWNudF9iaWFzOwogYm9vbCBwZm1l
bWFsbG9jOwp9OwoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIHZtX2ZsYWdzX3Q7CgoKCgoKCnN0cnVj
dCB2bV9yZWdpb24gewogc3RydWN0IHJiX25vZGUgdm1fcmI7CiB2bV9mbGFnc190IHZtX2ZsYWdz
OwogdW5zaWduZWQgbG9uZyB2bV9zdGFydDsKIHVuc2lnbmVkIGxvbmcgdm1fZW5kOwogdW5zaWdu
ZWQgbG9uZyB2bV90b3A7CiB1bnNpZ25lZCBsb25nIHZtX3Bnb2ZmOwogc3RydWN0IGZpbGUgKnZt
X2ZpbGU7CgogaW50IHZtX3VzYWdlOwogYm9vbCB2bV9pY2FjaGVfZmx1c2hlZCA6IDE7Cgp9Owoj
IDI4MyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCnN0cnVjdCB2bV91c2VyZmF1bHRmZF9j
dHgge307CiMgMjkyICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKc3RydWN0IHZtX2FyZWFf
c3RydWN0IHsKCgogdW5zaWduZWQgbG9uZyB2bV9zdGFydDsKIHVuc2lnbmVkIGxvbmcgdm1fZW5k
OwoKCgogc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bV9uZXh0LCAqdm1fcHJldjsKCiBzdHJ1Y3Qg
cmJfbm9kZSB2bV9yYjsKCgoKCgoKCiB1bnNpZ25lZCBsb25nIHJiX3N1YnRyZWVfZ2FwOwoKCgog
c3RydWN0IG1tX3N0cnVjdCAqdm1fbW07CgoKCgoKIHBncHJvdF90IHZtX3BhZ2VfcHJvdDsKIHVu
c2lnbmVkIGxvbmcgdm1fZmxhZ3M7CgoKCgoKIHN0cnVjdCB7CiAgc3RydWN0IHJiX25vZGUgcmI7
CiAgdW5zaWduZWQgbG9uZyByYl9zdWJ0cmVlX2xhc3Q7CiB9IHNoYXJlZDsKCgoKCgoKCiBzdHJ1
Y3QgbGlzdF9oZWFkIGFub25fdm1hX2NoYWluOwoKIHN0cnVjdCBhbm9uX3ZtYSAqYW5vbl92bWE7
CgoKIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAqdm1fb3BzOwoKCiB1bnNpZ25l
ZCBsb25nIHZtX3Bnb2ZmOwoKIHN0cnVjdCBmaWxlICogdm1fZmlsZTsKIHZvaWQgKiB2bV9wcml2
YXRlX2RhdGE7CgoKIGF0b21pY19sb25nX3Qgc3dhcF9yZWFkYWhlYWRfaW5mbzsKCgoKCgoKCiBz
dHJ1Y3Qgdm1fdXNlcmZhdWx0ZmRfY3R4IHZtX3VzZXJmYXVsdGZkX2N0eDsKfSBfX2F0dHJpYnV0
ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3QgY29yZV90aHJlYWQgewogc3RydWN0
IHRhc2tfc3RydWN0ICp0YXNrOwogc3RydWN0IGNvcmVfdGhyZWFkICpuZXh0Owp9OwoKc3RydWN0
IGNvcmVfc3RhdGUgewogYXRvbWljX3QgbnJfdGhyZWFkczsKIHN0cnVjdCBjb3JlX3RocmVhZCBk
dW1wZXI7CiBzdHJ1Y3QgY29tcGxldGlvbiBzdGFydHVwOwp9OwoKc3RydWN0IGtpb2N0eF90YWJs
ZTsKc3RydWN0IG1tX3N0cnVjdCB7CiBzdHJ1Y3QgewogIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
bW1hcDsKICBzdHJ1Y3QgcmJfcm9vdCBtbV9yYjsKICB1NjQgdm1hY2FjaGVfc2VxbnVtOwoKICB1
bnNpZ25lZCBsb25nICgqZ2V0X3VubWFwcGVkX2FyZWEpIChzdHJ1Y3QgZmlsZSAqZmlscCwKICAg
IHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBsZW4sCiAgICB1bnNpZ25lZCBsb25n
IHBnb2ZmLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKCiAgdW5zaWduZWQgbG9uZyBtbWFwX2Jhc2U7
CiAgdW5zaWduZWQgbG9uZyBtbWFwX2xlZ2FjeV9iYXNlOwoKCgoKCiAgdW5zaWduZWQgbG9uZyB0
YXNrX3NpemU7CiAgdW5zaWduZWQgbG9uZyBoaWdoZXN0X3ZtX2VuZDsKICBwZ2RfdCAqIHBnZDsK
IyA0MDMgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgogIGF0b21pY190IG1lbWJhcnJpZXJf
c3RhdGU7CiMgNDE1ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKICBhdG9taWNfdCBtbV91
c2VyczsKIyA0MjQgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgogIGF0b21pY190IG1tX2Nv
dW50OwoKCiAgYXRvbWljX2xvbmdfdCBwZ3RhYmxlc19ieXRlczsKCiAgaW50IG1hcF9jb3VudDsK
CiAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7CgoKICBzdHJ1Y3Qgcndfc2VtYXBob3JlIG1t
YXBfc2VtOwoKICBzdHJ1Y3QgbGlzdF9oZWFkIG1tbGlzdDsKCgoKCgoKICB1bnNpZ25lZCBsb25n
IGhpd2F0ZXJfcnNzOwogIHVuc2lnbmVkIGxvbmcgaGl3YXRlcl92bTsKCiAgdW5zaWduZWQgbG9u
ZyB0b3RhbF92bTsKICB1bnNpZ25lZCBsb25nIGxvY2tlZF92bTsKICBhdG9taWM2NF90IHBpbm5l
ZF92bTsKICB1bnNpZ25lZCBsb25nIGRhdGFfdm07CiAgdW5zaWduZWQgbG9uZyBleGVjX3ZtOwog
IHVuc2lnbmVkIGxvbmcgc3RhY2tfdm07CiAgdW5zaWduZWQgbG9uZyBkZWZfZmxhZ3M7CgogIHNw
aW5sb2NrX3QgYXJnX2xvY2s7CiAgdW5zaWduZWQgbG9uZyBzdGFydF9jb2RlLCBlbmRfY29kZSwg
c3RhcnRfZGF0YSwgZW5kX2RhdGE7CiAgdW5zaWduZWQgbG9uZyBzdGFydF9icmssIGJyaywgc3Rh
cnRfc3RhY2s7CiAgdW5zaWduZWQgbG9uZyBhcmdfc3RhcnQsIGFyZ19lbmQsIGVudl9zdGFydCwg
ZW52X2VuZDsKCiAgdW5zaWduZWQgbG9uZyBzYXZlZF9hdXh2WygyKigxICsgMjAgKyAxKSldOwoK
CgoKCiAgc3RydWN0IG1tX3Jzc19zdGF0IHJzc19zdGF0OwoKICBzdHJ1Y3QgbGludXhfYmluZm10
ICpiaW5mbXQ7CgoKICBtbV9jb250ZXh0X3QgY29udGV4dDsKCiAgdW5zaWduZWQgbG9uZyBmbGFn
czsKCiAgc3RydWN0IGNvcmVfc3RhdGUgKmNvcmVfc3RhdGU7CgoKICBzcGlubG9ja190IGlvY3R4
X2xvY2s7CiAgc3RydWN0IGtpb2N0eF90YWJsZSAqaW9jdHhfdGFibGU7CiMgNDkxICIuL2luY2x1
ZGUvbGludXgvbW1fdHlwZXMuaCIKICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKm93bmVyOwoKICBzdHJ1
Y3QgdXNlcl9uYW1lc3BhY2UgKnVzZXJfbnM7CgoKICBzdHJ1Y3QgZmlsZSAqZXhlX2ZpbGU7Cgog
IHN0cnVjdCBtbXVfbm90aWZpZXJfc3Vic2NyaXB0aW9ucyAqbm90aWZpZXJfc3Vic2NyaXB0aW9u
czsKIyA1MjIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgogIGF0b21pY190IHRsYl9mbHVz
aF9wZW5kaW5nOwoKCiAgYm9vbCB0bGJfZmx1c2hfYmF0Y2hlZDsKCiAgc3RydWN0IHVwcm9iZXNf
c3RhdGUgdXByb2Jlc19zdGF0ZTsKCiAgYXRvbWljX2xvbmdfdCBodWdldGxiX3VzYWdlOwoKICBz
dHJ1Y3Qgd29ya19zdHJ1Y3QgYXN5bmNfcHV0X3dvcms7CiB9IF9fYXR0cmlidXRlX18oKF9fZGVz
aWduYXRlZF9pbml0X18pKTsKCgoKCgogdW5zaWduZWQgbG9uZyBjcHVfYml0bWFwW107Cn07Cgpl
eHRlcm4gc3RydWN0IG1tX3N0cnVjdCBpbml0X21tOwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbW1faW5pdF9jcHVtYXNrKHN0
cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7CiB1bnNpZ25lZCBsb25nIGNwdV9iaXRtYXAgPSAodW5zaWdu
ZWQgbG9uZyltbTsKCiBjcHVfYml0bWFwICs9IF9fYnVpbHRpbl9vZmZzZXRvZihzdHJ1Y3QgbW1f
c3RydWN0LCBjcHVfYml0bWFwKTsKIGNwdW1hc2tfY2xlYXIoKHN0cnVjdCBjcHVtYXNrICopY3B1
X2JpdG1hcCk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBjcHVtYXNrX3QgKm1tX2NwdW1hc2soc3RydWN0IG1tX3N0cnVjdCAqbW0p
CnsKIHJldHVybiAoc3RydWN0IGNwdW1hc2sgKikmbW0tPmNwdV9iaXRtYXA7Cn0KCnN0cnVjdCBt
bXVfZ2F0aGVyOwpleHRlcm4gdm9pZCB0bGJfZ2F0aGVyX21tdShzdHJ1Y3QgbW11X2dhdGhlciAq
dGxiLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2ln
bmVkIGxvbmcgZW5kKTsKZXh0ZXJuIHZvaWQgdGxiX2ZpbmlzaF9tbXUoc3RydWN0IG1tdV9nYXRo
ZXIgKnRsYiwKICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaW5pdF90bGJfZmx1c2hfcGVuZGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKewogYXRvbWlj
X3NldCgmbW0tPnRsYl9mbHVzaF9wZW5kaW5nLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbmNfdGxiX2ZsdXNoX3Bl
bmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKIGF0b21pY19pbmMoJm1tLT50bGJfZmx1c2hf
cGVuZGluZyk7CiMgNjA4ICIuL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaCIKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWNf
dGxiX2ZsdXNoX3BlbmRpbmcoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKIyA2MjAgIi4vaW5jbHVk
ZS9saW51eC9tbV90eXBlcy5oIgogYXRvbWljX2RlYygmbW0tPnRsYl9mbHVzaF9wZW5kaW5nKTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBtbV90bGJfZmx1c2hfcGVuZGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSkKewojIDYz
MyAiLi9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgiCiByZXR1cm4gYXRvbWljX3JlYWQoJm1tLT50
bGJfZmx1c2hfcGVuZGluZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbW1fdGxiX2ZsdXNoX25lc3RlZChzdHJ1Y3QgbW1f
c3RydWN0ICptbSkKewoKCgoKCgoKIHJldHVybiBhdG9taWNfcmVhZCgmbW0tPnRsYl9mbHVzaF9w
ZW5kaW5nKSA+IDE7Cn0KCnN0cnVjdCB2bV9mYXVsdDsKCgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgdm1fZmF1bHRfdDsKIyA2ODIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgplbnVtIHZt
X2ZhdWx0X3JlYXNvbiB7CiBWTV9GQVVMVF9PT00gPSAoIHZtX2ZhdWx0X3QpMHgwMDAwMDEsCiBW
TV9GQVVMVF9TSUdCVVMgPSAoIHZtX2ZhdWx0X3QpMHgwMDAwMDIsCiBWTV9GQVVMVF9NQUpPUiA9
ICggdm1fZmF1bHRfdCkweDAwMDAwNCwKIFZNX0ZBVUxUX1dSSVRFID0gKCB2bV9mYXVsdF90KTB4
MDAwMDA4LAogVk1fRkFVTFRfSFdQT0lTT04gPSAoIHZtX2ZhdWx0X3QpMHgwMDAwMTAsCiBWTV9G
QVVMVF9IV1BPSVNPTl9MQVJHRSA9ICggdm1fZmF1bHRfdCkweDAwMDAyMCwKIFZNX0ZBVUxUX1NJ
R1NFR1YgPSAoIHZtX2ZhdWx0X3QpMHgwMDAwNDAsCiBWTV9GQVVMVF9OT1BBR0UgPSAoIHZtX2Zh
dWx0X3QpMHgwMDAxMDAsCiBWTV9GQVVMVF9MT0NLRUQgPSAoIHZtX2ZhdWx0X3QpMHgwMDAyMDAs
CiBWTV9GQVVMVF9SRVRSWSA9ICggdm1fZmF1bHRfdCkweDAwMDQwMCwKIFZNX0ZBVUxUX0ZBTExC
QUNLID0gKCB2bV9mYXVsdF90KTB4MDAwODAwLAogVk1fRkFVTFRfRE9ORV9DT1cgPSAoIHZtX2Zh
dWx0X3QpMHgwMDEwMDAsCiBWTV9GQVVMVF9ORUVERFNZTkMgPSAoIHZtX2ZhdWx0X3QpMHgwMDIw
MDAsCiBWTV9GQVVMVF9ISU5ERVhfTUFTSyA9ICggdm1fZmF1bHRfdCkweDBmMDAwMCwKfTsKIyA3
MjIgIi4vaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIgpzdHJ1Y3Qgdm1fc3BlY2lhbF9tYXBwaW5n
IHsKIGNvbnN0IGNoYXIgKm5hbWU7CgoKCgoKCgogc3RydWN0IHBhZ2UgKipwYWdlczsKCgoKCgog
dm1fZmF1bHRfdCAoKmZhdWx0KShjb25zdCBzdHJ1Y3Qgdm1fc3BlY2lhbF9tYXBwaW5nICpzbSwK
ICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogICAgc3RydWN0IHZtX2ZhdWx0ICp2bWYp
OwoKIGludCAoKm1yZW1hcCkoY29uc3Qgc3RydWN0IHZtX3NwZWNpYWxfbWFwcGluZyAqc20sCiAg
ICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKm5ld192bWEpOwp9OwoKZW51bSB0bGJfZmx1c2hf
cmVhc29uIHsKIFRMQl9GTFVTSF9PTl9UQVNLX1NXSVRDSCwKIFRMQl9SRU1PVEVfU0hPT1RET1dO
LAogVExCX0xPQ0FMX1NIT09URE9XTiwKIFRMQl9MT0NBTF9NTV9TSE9PVERPV04sCiBUTEJfUkVN
T1RFX1NFTkRfSVBJLAogTlJfVExCX0ZMVVNIX1JFQVNPTlMsCn07CgoKCgoKdHlwZWRlZiBzdHJ1
Y3QgewogdW5zaWduZWQgbG9uZyB2YWw7Cn0gc3dwX2VudHJ5X3Q7CiMgMjIgIi4vaW5jbHVkZS9s
aW51eC9tbXpvbmUuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiIDEKIyA5
OSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKZW51bSBwYWdlZmxhZ3MgewogUEdfbG9j
a2VkLAogUEdfcmVmZXJlbmNlZCwKIFBHX3VwdG9kYXRlLAogUEdfZGlydHksCiBQR19scnUsCiBQ
R19hY3RpdmUsCiBQR193b3JraW5nc2V0LAogUEdfd2FpdGVycywKIFBHX2Vycm9yLAogUEdfc2xh
YiwKIFBHX293bmVyX3ByaXZfMSwKIFBHX2FyY2hfMSwKIFBHX3Jlc2VydmVkLAogUEdfcHJpdmF0
ZSwKIFBHX3ByaXZhdGVfMiwKIFBHX3dyaXRlYmFjaywKIFBHX2hlYWQsCiBQR19tYXBwZWR0b2Rp
c2ssCiBQR19yZWNsYWltLAogUEdfc3dhcGJhY2tlZCwKIFBHX3VuZXZpY3RhYmxlLAoKIFBHX21s
b2NrZWQsCgoKIFBHX3VuY2FjaGVkLAojIDEzNCAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3Mu
aCIKIF9fTlJfUEFHRUZMQUdTLAoKCiBQR19jaGVja2VkID0gUEdfb3duZXJfcHJpdl8xLAoKCiBQ
R19zd2FwY2FjaGUgPSBQR19vd25lcl9wcml2XzEsCgoKCgoKIFBHX2ZzY2FjaGUgPSBQR19wcml2
YXRlXzIsCgoKCiBQR19waW5uZWQgPSBQR19vd25lcl9wcml2XzEsCgogUEdfc2F2ZXBpbm5lZCA9
IFBHX2RpcnR5LAoKIFBHX2ZvcmVpZ24gPSBQR19vd25lcl9wcml2XzEsCgogUEdfeGVuX3JlbWFw
cGVkID0gUEdfb3duZXJfcHJpdl8xLAoKCiBQR19zbG9iX2ZyZWUgPSBQR19wcml2YXRlLAoKCiBQ
R19kb3VibGVfbWFwID0gUEdfcHJpdmF0ZV8yLAoKCiBQR19pc29sYXRlZCA9IFBHX3JlY2xhaW0s
Cn07CgoKCnN0cnVjdCBwYWdlOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBhZ2UgKmNvbXBvdW5kX2hlYWQoc3RydWN0IHBh
Z2UgKnBhZ2UpCnsKIHVuc2lnbmVkIGxvbmcgaGVhZCA9ICh7IHVuaW9uIHsgdHlwZW9mKHBhZ2Ut
PmNvbXBvdW5kX2hlYWQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRf
b25jZV9zaXplKCYocGFnZS0+Y29tcG91bmRfaGVhZCksIF9fdS5fX2MsIHNpemVvZihwYWdlLT5j
b21wb3VuZF9oZWFkKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYocGFnZS0+Y29t
cG91bmRfaGVhZCksIF9fdS5fX2MsIHNpemVvZihwYWdlLT5jb21wb3VuZF9oZWFkKSk7IGRvIHsg
fSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7CgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoaGVh
ZCAmIDEpLCAwKSkKICByZXR1cm4gKHN0cnVjdCBwYWdlICopIChoZWFkIC0gMSk7CiByZXR1cm4g
cGFnZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVRhaWwo
c3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAoeyB1bmlvbiB7IHR5cGVvZihwYWdlLT5jb21w
b3VuZF9oZWFkKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vf
c2l6ZSgmKHBhZ2UtPmNvbXBvdW5kX2hlYWQpLCBfX3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91
bmRfaGVhZCkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKHBhZ2UtPmNvbXBvdW5k
X2hlYWQpLCBfX3UuX19jLCBzaXplb2YocGFnZS0+Y29tcG91bmRfaGVhZCkpOyBkbyB7IH0gd2hp
bGUgKDApOyBfX3UuX192YWw7IH0pICYgMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgUGFnZUNvbXBvdW5kKHN0cnVjdCBwYWdlICpwYWdlKQp7CiByZXR1cm4gdGVz
dF9iaXQoUEdfaGVhZCwgJnBhZ2UtPmZsYWdzKSB8fCBQYWdlVGFpbChwYWdlKTsKfQoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQ
YWdlUG9pc29uZWQoY29uc3Qgc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiBwYWdlLT5mbGFn
cyA9PSAtMWw7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGFnZV9pbml0X3BvaXNvbihzdHJ1Y3QgcGFnZSAqcGFnZSwg
c2l6ZV90IHNpemUpCnsKfQojIDMxMiAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUxvY2tlZChzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfbG9ja2VkLCAmKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25n
KShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBh
Z2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgX19TZXRQYWdlTG9ja2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19s
b2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkp
OyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBh
Z2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUxvY2tlZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyBfX2NsZWFyX2JpdChQR19sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
aW50IFBhZ2VXYWl0ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR193
YWl0ZXJzLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7ICh7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNl
dFBhZ2VXYWl0ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQoUEdfd2FpdGVycywgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3Mp
OyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VXYWl0
ZXJzKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR193YWl0ZXJzLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlV2FpdGVycyhz
dHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX2NsZWFyX2JpdChQR193YWl0ZXJzLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0Kc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUVycm9yKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19lcnJvciwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsg
fSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lk
IFNldFBhZ2VFcnJvcihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2Vycm9yLCAmKHsg
KCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlRXJyb3Ioc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
Y2xlYXJfYml0KFBHX2Vycm9yLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VU
YWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29t
cG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdz
KTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdl
RXJyb3Ioc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19l
cnJvciwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0Kc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVJlZmVyZW5jZWQoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3JlZmVyZW5jZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5l
X18pKSB2b2lkIFNldFBhZ2VSZWZlcmVuY2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQo
UEdfcmVmZXJlbmNlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsg
fSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlUmVmZXJl
bmNlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVmZXJlbmNlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVJlZmVyZW5jZWQoc3RydWN0IHBhZ2Ug
KnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19yZWZlcmVuY2VkLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlUmVmZXJlbmNlZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBfX3NldF9iaXQoUEdfcmVmZXJlbmNlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdl
KTsgfSktPmZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQ
YWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX2RpcnR5LCAm
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgc2V0X2JpdChQR19kaXJ0eSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNv
bmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZs
YWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdl
RGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX2RpcnR5LCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgaW50IFRlc3RTZXRQYWdlRGlydHkoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuIHRlc3RfYW5kX3NldF9iaXQoUEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQg
VGVzdENsZWFyUGFnZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2FuZF9j
bGVhcl9iaXQoUEdfZGlydHksICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25l
ZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFn
cyk7IH0KIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFn
ZURpcnR5KHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX2RpcnR5LCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkp
OyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgaW50IFBhZ2VMUlUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRl
c3RfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsg
fSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZUxSVShzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChw
YWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgQ2xlYXJQYWdlTFJVKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19scnUsICYo
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2Up
KSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlTFJVKHN0cnVjdCBwYWdlICpwYWdl
KSB7IF9fY2xlYXJfYml0KFBHX2xydSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSkt
PmZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlQWN0
aXZlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19hY3RpdmUsICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19h
bHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
c2V0X2JpdChQR19hY3RpdmUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25l
ZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZUFj
dGl2ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfYWN0aXZlLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBj
b21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUFjdGl2ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBf
X2NsZWFyX2JpdChQR19hY3RpdmUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5m
bGFncyk7IH0KIHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVh
clBhZ2VBY3RpdmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2Jp
dChQR19hY3RpdmUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21w
b3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0K
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVdvcmtpbmdzZXQoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3dvcmtpbmdzZXQsICYoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7
IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VXb3JraW5nc2V0KHN0cnVjdCBwYWdlICpwYWdlKSB7
IHNldF9iaXQoUEdfd29ya2luZ3NldCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSkt
PmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQ
YWdlV29ya2luZ3NldChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfd29ya2luZ3Nl
dCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQo
cGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZVdvcmtpbmdzZXQoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR193b3JraW5nc2V0
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChw
YWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VTbGFiKHN0cnVjdCBwYWdlICpwYWdlKSB7
IHJldHVybiB0ZXN0X2JpdChQR19zbGFiLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYm
IFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29u
ZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSkt
PmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQ
YWdlU2xhYihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX3NldF9iaXQoUEdfc2xhYiwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlU2xhYihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBfX2Ns
ZWFyX2JpdChQR19zbGFiLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWls
KHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91
bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsg
fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlU2xvYkZyZWUoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3Nsb2JfZnJlZSwgJih7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91
bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB2b2lkIF9fU2V0UGFnZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9f
c2V0X2JpdChQR19zbG9iX2ZyZWUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFn
ZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChj
b21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+Zmxh
Z3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFn
ZVNsb2JGcmVlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX3Nsb2JfZnJlZSwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkp
KTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0Kc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUNoZWNrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIHRlc3RfYml0KFBHX2NoZWNrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZUNoZWNrZWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgc2V0X2JpdChQR19jaGVja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZUNoZWNrZWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgY2xlYXJfYml0KFBHX2NoZWNrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEg
JiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdl
UG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VQaW5uZWQoc3RydWN0IHBhZ2UgKnBhZ2Up
IHsgcmV0dXJuIHRlc3RfYml0KFBHX3Bpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MCAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBh
Z2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlUGlubmVkKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHNldF9iaXQoUEdfcGlubmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygo
X19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBjbGVhcl9iaXQoUEdfcGlubmVkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RTZXRQYWdlUGlubmVkKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KFBHX3Bpbm5lZCwgJih7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VQaW5u
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19waW5u
ZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkp
KTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KTsgfSktPmZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdf
c2F2ZXBpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlQ29tcG91bmQo
cGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBTZXRQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0
KFBHX3NhdmVwaW5uZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBv
dW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFn
ZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlU2F2ZVBpbm5lZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBj
bGVhcl9iaXQoUEdfc2F2ZXBpbm5lZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQ
YWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lz
b25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9OwpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlRm9yZWlnbihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBy
ZXR1cm4gdGVzdF9iaXQoUEdfZm9yZWlnbiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAm
JiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlRm9yZWlnbihzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBzZXRfYml0KFBHX2ZvcmVpZ24sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYg
UGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlRm9yZWlnbihzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyBjbGVhcl9iaXQoUEdfZm9yZWlnbiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAm
JiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQ
b2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9OwpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlWGVuUmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3hlbl9yZW1hcHBlZCwgJih7ICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoMCAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlWGVuUmVtYXBwZWQo
c3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR194ZW5fcmVtYXBwZWQsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdz
KTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlWGVu
UmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3hlbl9yZW1hcHBlZCwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAo
eyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0p
OyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBU
ZXN0Q2xlYXJQYWdlWGVuUmVtYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3Rf
YW5kX2NsZWFyX2JpdChQR194ZW5fcmVtYXBwZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZVJlc2VydmVkKHN0cnVjdCBwYWdlICpw
YWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19yZXNlcnZlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoMCAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBTZXRQYWdlUmVzZXJ2ZWQoc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19yZXNlcnZlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VSZXNlcnZlZChzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2Yo
KCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfQog
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
X19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fQ2xlYXJQYWdlUmVzZXJ2
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZs
YWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIF9fU2V0UGFn
ZVJlc2VydmVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19yZXNlcnZlZCwgJih7
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9
KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VT
d2FwQmFja2VkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19zd2FwYmFj
a2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsg
KHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdl
KSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0
ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVN3YXBCYWNrZWQoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgc2V0X2JpdChQR19zd2FwYmFja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBs
b25nKSgxICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgQ2xlYXJQYWdlU3dhcEJhY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdf
c3dhcGJhY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdl
KSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hl
YWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZVN3YXBCYWNr
ZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfc3dhcGJhY2tlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29t
cG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBfX1NldFBhZ2VTd2FwQmFja2VkKHN0cnVjdCBwYWdlICpwYWdl
KSB7IF9fc2V0X2JpdChQR19zd2FwYmFja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgx
ICYmIFBhZ2VUYWlsKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9p
c29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsg
fSktPmZsYWdzKTsgfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlUHJpdmF0ZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfcHJp
dmF0ZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsg
cGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZv
aWQgU2V0UGFnZVByaXZhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19wcml2YXRl
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBD
bGVhclBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19wcml2YXRl
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X1NldFBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19wcml2YXRl
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
X19DbGVhclBhZ2VQcml2YXRlKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX3By
aXZhdGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7
IHBhZ2U7IH0pLT5mbGFncyk7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBp
bnQgUGFnZVByaXZhdGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19w
cml2YXRlXzIsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkp
KSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB2b2lkIFNldFBhZ2VQcml2YXRlMihzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3By
aXZhdGVfMiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkp
KTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp
IHZvaWQgQ2xlYXJQYWdlUHJpdmF0ZTIoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBH
X3ByaXZhdGVfMiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2Up
KSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIGludCBUZXN0U2V0UGFnZVByaXZhdGUyKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0
ZXN0X2FuZF9zZXRfYml0KFBHX3ByaXZhdGVfMiwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUHJpdmF0ZTIoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19wcml2YXRlXzIsICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5m
bGFncyk7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZU93bmVy
UHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX293bmVyX3ByaXZf
MSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFn
ZTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
U2V0UGFnZU93bmVyUHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19vd25lcl9w
cml2XzEsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7
IHBhZ2U7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2
b2lkIENsZWFyUGFnZU93bmVyUHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBH
X293bmVyX3ByaXZfMSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBh
Z2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSBpbnQgVGVzdENsZWFyUGFnZU93bmVyUHJpdjEoc3RydWN0IHBhZ2UgKnBhZ2UpIHsg
cmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19vd25lcl9wcml2XzEsICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pLT5mbGFncyk7IH0K
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlV3JpdGViYWNr
KHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR193cml0ZWJhY2ssICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNv
bXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBUZXN0U2V0UGFnZVdyaXRlYmFjayhzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyByZXR1cm4gdGVzdF9hbmRfc2V0X2JpdChQR193cml0ZWJhY2ssICYoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hl
YWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VXcml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR193cml0ZWJhY2ssICYoeyAoKHZvaWQpKHNpemVvZigo
IGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
aW50IFBhZ2VNYXBwZWRUb0Rpc2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0
KFBHX21hcHBlZHRvZGlzaywgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFp
bChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBv
dW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7
IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VNYXBwZWRU
b0Rpc2soc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR19tYXBwZWR0b2Rpc2ssICYoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNv
bXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3
YXlzX2lubGluZV9fKSkgdm9pZCBDbGVhclBhZ2VNYXBwZWRUb0Rpc2soc3RydWN0IHBhZ2UgKnBh
Z2UpIHsgY2xlYXJfYml0KFBHX21hcHBlZHRvZGlzaywgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoMSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFn
ZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsg
fSk7IH0pLT5mbGFncyk7IH0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlUmVjbGFpbShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfcmVj
bGFpbSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VSZWNsYWltKHN0cnVjdCBwYWdl
ICpwYWdlKSB7IHNldF9iaXQoUEdfcmVjbGFpbSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENs
ZWFyUGFnZVJlY2xhaW0oc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3JlY2xhaW0s
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBUZXN0Q2xlYXJQYWdlUmVjbGFpbShzdHJ1Y3QgcGFn
ZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9hbmRfY2xlYXJfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNp
emVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBv
dW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgaW50IFBhZ2VSZWFkYWhlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJu
IHRlc3RfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDAgJiYgUGFn
ZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29u
ZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgU2V0UGFnZVJlYWRhaGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyBzZXRfYml0KFBHX3JlY2xhaW0sICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFn
ZUNvbXBvdW5kKHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29u
ZWQocGFnZSkpKSkpOyBwYWdlOyB9KTsgfSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlUmVhZGFoZWFkKHN0cnVjdCBwYWdlICpwYWdl
KSB7IGNsZWFyX2JpdChQR19yZWNsYWltLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYm
IFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFncyk7IH0KIHN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFRlc3RDbGVhclBhZ2VSZWFkYWhlYWQoc3RydWN0IHBh
Z2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQR19yZWNsYWltLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9p
ZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5m
bGFncyk7IH0KIyAzNzYgIi4vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlSGln
aE1lbShjb25zdCBzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gMDsgfSBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VI
aWdoTWVtKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBDbGVhclBhZ2VIaWdoTWVtKHN0cnVj
dCBwYWdlICpwYWdlKSB7IH0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBp
bnQgUGFnZVN3YXBDYWNoZShzdHJ1Y3QgcGFnZSAqcGFnZSkKewoKIHBhZ2UgPSBjb21wb3VuZF9o
ZWFkKHBhZ2UpOwoKIHJldHVybiBQYWdlU3dhcEJhY2tlZChwYWdlKSAmJiB0ZXN0X2JpdChQR19z
d2FwY2FjaGUsICZwYWdlLT5mbGFncyk7Cgp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdm9pZCBTZXRQYWdlU3dhcENhY2hlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHNldF9iaXQo
UEdfc3dhcGNhY2hlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBh
Z2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRf
aGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlU3dhcENhY2hl
KHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR19zd2FwY2FjaGUsICYoeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5k
X2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIGludCBQYWdlVW5ldmljdGFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0
dXJuIHRlc3RfYml0KFBHX3VuZXZpY3RhYmxlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQ
YWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2Up
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBT
ZXRQYWdlVW5ldmljdGFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgc2V0X2JpdChQR191bmV2aWN0
YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hl
YWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSktPmZsYWdzKTsgfSBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xlYXJQYWdlVW5ldmljdGFibGUoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX3VuZXZpY3RhYmxlLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVhZChwYWdlKSkpKSkpOyBjb21w
b3VuZF9oZWFkKHBhZ2UpOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VVbmV2aWN0YWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkg
eyBfX2NsZWFyX2JpdChQR191bmV2aWN0YWJsZSwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
UGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdl
KTsgfSktPmZsYWdzKTsgfQogc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQg
VGVzdENsZWFyUGFnZVVuZXZpY3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0
X2FuZF9jbGVhcl9iaXQoUEdfdW5ldmljdGFibGUsICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcp
KFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFn
ZSk7IH0pLT5mbGFncyk7IH0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBQYWdlTWxvY2tlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gdGVzdF9iaXQoUEdfbWxv
Y2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMCAmJiBQYWdlVGFpbChwYWdlKSkpKSk7
ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNvbXBvdW5kX2hlYWQocGFn
ZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFncyk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VNbG9ja2VkKHN0cnVjdCBwYWdl
ICpwYWdlKSB7IHNldF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZyko
MSAmJiBQYWdlVGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBv
aXNvbmVkKGNvbXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7
IH0pLT5mbGFncyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENs
ZWFyUGFnZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJfYml0KFBHX21sb2NrZWQs
ICYoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkp
KSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9f
KChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VNbG9ja2VkKHN0cnVjdCBwYWdl
ICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX21sb2NrZWQsICYoeyAoKHZvaWQpKHNpemVvZigoIGxv
bmcpKDEgJiYgUGFnZVRhaWwocGFnZSkpKSkpOyAoeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKFBh
Z2VQb2lzb25lZChjb21wb3VuZF9oZWFkKHBhZ2UpKSkpKSk7IGNvbXBvdW5kX2hlYWQocGFnZSk7
IH0pOyB9KS0+ZmxhZ3MpOyB9CiBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGlu
dCBUZXN0U2V0UGFnZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5k
X3NldF9iaXQoUEdfbWxvY2tlZCwgJih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdl
VGFpbChwYWdlKSkpKSk7ICh7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKGNv
bXBvdW5kX2hlYWQocGFnZSkpKSkpKTsgY29tcG91bmRfaGVhZChwYWdlKTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgVGVzdENsZWFyUGFn
ZU1sb2NrZWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYW5kX2NsZWFyX2JpdChQ
R19tbG9ja2VkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWlsKHBhZ2Up
KSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91bmRfaGVh
ZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsgfQoKCgoK
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlVW5jYWNoZWQoc3Ry
dWN0IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuIHRlc3RfYml0KFBHX3VuY2FjaGVkLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKSgwICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VVbmNh
Y2hlZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBzZXRfYml0KFBHX3VuY2FjaGVkLCAmKHsgKCh2b2lk
KShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VDb21wb3VuZChwYWdlKSkpKSk7ICh7ICgodm9pZCko
c2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSk7IH0pLT5mbGFn
cyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIENsZWFyUGFnZVVu
Y2FjaGVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IGNsZWFyX2JpdChQR191bmNhY2hlZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoMSAmJiBQYWdlQ29tcG91bmQocGFnZSkpKSkpOyAoeyAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VQb2lzb25lZChwYWdlKSkpKSk7IHBhZ2U7IH0pOyB9KS0+
ZmxhZ3MpOyB9CiMgNDE5ICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFnZUhX
UG9pc29uKGNvbnN0IHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiAwOyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgU2V0UGFn
ZUhXUG9pc29uKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBDbGVhclBhZ2VIV1BvaXNvbihz
dHJ1Y3QgcGFnZSAqcGFnZSkgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2V0X2h3cG9pc29uX2ZyZWVfYnVkZHlfcGFnZShz
dHJ1Y3QgcGFnZSAqcGFnZSkKewogcmV0dXJuIDA7Cn0KIyA0NTYgIi4vaW5jbHVkZS9saW51eC9w
YWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VN
YXBwaW5nRmxhZ3Moc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAoKHVuc2lnbmVkIGxvbmcp
cGFnZS0+bWFwcGluZyAmICgweDEgfCAweDIpKSAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fs
d2F5c19pbmxpbmVfXykpIGludCBQYWdlQW5vbihzdHJ1Y3QgcGFnZSAqcGFnZSkKewogcGFnZSA9
IGNvbXBvdW5kX2hlYWQocGFnZSk7CiByZXR1cm4gKCh1bnNpZ25lZCBsb25nKXBhZ2UtPm1hcHBp
bmcgJiAweDEpICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50
IF9fUGFnZU1vdmFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIHJldHVybiAoKHVuc2lnbmVkIGxv
bmcpcGFnZS0+bWFwcGluZyAmICgweDEgfCAweDIpKSA9PQogICAgMHgyOwp9CiMgNDgwICIuL2lu
Y2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIGludCBQYWdlS3NtKHN0cnVjdCBwYWdlICpwYWdlKQp7CiBwYWdlID0gY29tcG91bmRfaGVh
ZChwYWdlKTsKIHJldHVybiAoKHVuc2lnbmVkIGxvbmcpcGFnZS0+bWFwcGluZyAmICgweDEgfCAw
eDIpKSA9PQogICAgKDB4MSB8IDB4Mik7Cn0KCgoKCnU2NCBzdGFibGVfcGFnZV9mbGFncyhzdHJ1
Y3QgcGFnZSAqcGFnZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgUGFnZVVwdG9kYXRlKHN0cnVjdCBwYWdlICpwYWdlKQp7CiBp
bnQgcmV0OwogcGFnZSA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CiByZXQgPSB0ZXN0X2JpdChQR191
cHRvZGF0ZSwgJihwYWdlKS0+ZmxhZ3MpOwojIDUwNSAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxh
Z3MuaCIKIGlmIChyZXQpCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsK
CiByZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQg
X19TZXRQYWdlVXB0b2RhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICgodm9pZCkoc2l6ZW9mKCgg
bG9uZykoUGFnZVRhaWwocGFnZSkpKSkpOwogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJt
ZW1vcnkiKTsKIF9fc2V0X2JpdChQR191cHRvZGF0ZSwgJnBhZ2UtPmZsYWdzKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRy
aWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIFNldFBhZ2VVcHRvZGF0ZShzdHJ1Y3Qg
cGFnZSAqcGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlVGFpbChwYWdlKSkpKSk7
CgoKCgoKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiBzZXRfYml0KFBH
X3VwdG9kYXRlLCAmcGFnZS0+ZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxp
bmVfXykpIHZvaWQgQ2xlYXJQYWdlVXB0b2RhdGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgY2xlYXJf
Yml0KFBHX3VwdG9kYXRlLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgxICYmIFBhZ2VUYWls
KHBhZ2UpKSkpKTsgKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQoY29tcG91
bmRfaGVhZChwYWdlKSkpKSkpOyBjb21wb3VuZF9oZWFkKHBhZ2UpOyB9KTsgfSktPmZsYWdzKTsg
fQoKaW50IHRlc3RfY2xlYXJfcGFnZV93cml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpOwppbnQg
X190ZXN0X3NldF9wYWdlX3dyaXRlYmFjayhzdHJ1Y3QgcGFnZSAqcGFnZSwgYm9vbCBrZWVwX3dy
aXRlKTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBzZXRfcGFnZV93cml0ZWJhY2soc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
IF9fdGVzdF9zZXRfcGFnZV93cml0ZWJhY2socGFnZSwgZmFsc2UpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF9wYWdl
X3dyaXRlYmFja19rZWVwd3JpdGUoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKIF9fdGVzdF9zZXRfcGFn
ZV93cml0ZWJhY2socGFnZSwgdHJ1ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgaW50IFBhZ2VIZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQ
R19oZWFkLCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkp
OyBwYWdlOyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkg
dm9pZCBfX1NldFBhZ2VIZWFkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fc2V0X2JpdChQR19oZWFk
LCAmKHsgKCh2b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdl
OyB9KS0+ZmxhZ3MpOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X0NsZWFyUGFnZUhlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19jbGVhcl9iaXQoUEdfaGVhZCwg
Jih7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsg
fSktPmZsYWdzKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgQ2xl
YXJQYWdlSGVhZChzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBjbGVhcl9iaXQoUEdfaGVhZCwgJih7ICgo
dm9pZCkoc2l6ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZs
YWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIHNldF9jb21w
b3VuZF9oZWFkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgcGFnZSAqaGVhZCkKewogKHsgdW5p
b24geyB0eXBlb2YocGFnZS0+Y29tcG91bmRfaGVhZCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2YocGFnZS0+Y29tcG91bmRfaGVhZCkpICgodW5zaWduZWQg
bG9uZyloZWFkICsgMSkgfTsgX193cml0ZV9vbmNlX3NpemUoJihwYWdlLT5jb21wb3VuZF9oZWFk
KSwgX191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQpKTsgX191Ll9fdmFsOyB9KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGNsZWFyX2NvbXBvdW5k
X2hlYWQoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICh7IHVuaW9uIHsgdHlwZW9mKHBhZ2UtPmNvbXBv
dW5kX2hlYWQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9m
KHBhZ2UtPmNvbXBvdW5kX2hlYWQpKSAoMCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihwYWdlLT5j
b21wb3VuZF9oZWFkKSwgX191Ll9fYywgc2l6ZW9mKHBhZ2UtPmNvbXBvdW5kX2hlYWQpKTsgX191
Ll9fdmFsOyB9KTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgQ2xlYXJQYWdlQ29tcG91bmQoc3RydWN0IHBhZ2UgKnBhZ2Up
CnsKIGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoIVBhZ2VIZWFkKHBhZ2UpKSwgMCkpIGRv
IHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAi
XG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAi
MWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVj
MCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVn
X2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJc
dC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcGFn
ZS1mbGFncy5oIiksICJpIiAoNTY1KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19l
bnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5w
dXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQi
ICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE0KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBf
X2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxl
ICgwKTsKIENsZWFyUGFnZUhlYWQocGFnZSk7Cn0KCgoKCgppbnQgUGFnZUh1Z2Uoc3RydWN0IHBh
Z2UgKnBhZ2UpOwppbnQgUGFnZUhlYWRIdWdlKHN0cnVjdCBwYWdlICpwYWdlKTsKYm9vbCBwYWdl
X2h1Z2VfYWN0aXZlKHN0cnVjdCBwYWdlICpwYWdlKTsKIyA1OTYgIi4vaW5jbHVkZS9saW51eC9w
YWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBQYWdlVHJhbnNIdWdlKHN0cnVjdCBwYWdlICpwYWdlKQp7CiAoKHZv
aWQpKHNpemVvZigoIGxvbmcpKFBhZ2VUYWlsKHBhZ2UpKSkpKTsKIHJldHVybiBQYWdlSGVhZChw
YWdlKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgUGFnZVRyYW5zQ29tcG91bmQoc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
IHJldHVybiBQYWdlQ29tcG91bmQocGFnZSk7Cn0KIyA2MzMgIi4vaW5jbHVkZS9saW51eC9wYWdl
LWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCBQYWdlVHJhbnNDb21wb3VuZE1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKewog
c3RydWN0IHBhZ2UgKmhlYWQ7CgogaWYgKCFQYWdlVHJhbnNDb21wb3VuZChwYWdlKSkKICByZXR1
cm4gMDsKCiBpZiAoUGFnZUFub24ocGFnZSkpCiAgcmV0dXJuIGF0b21pY19yZWFkKCZwYWdlLT5f
bWFwY291bnQpIDwgMDsKCiBoZWFkID0gY29tcG91bmRfaGVhZChwYWdlKTsKCiByZXR1cm4gYXRv
bWljX3JlYWQoJnBhZ2UtPl9tYXBjb3VudCkgPT0KICAgICAgICBhdG9taWNfcmVhZChjb21wb3Vu
ZF9tYXBjb3VudF9wdHIoaGVhZCkpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlVHJhbnNUYWlsKHN0cnVjdCBw
YWdlICpwYWdlKQp7CiByZXR1cm4gUGFnZVRhaWwocGFnZSk7Cn0KIyA2NzIgIi4vaW5jbHVkZS9s
aW51eC9wYWdlLWZsYWdzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGludCBQYWdlRG91YmxlTWFwKHN0cnVjdCBwYWdlICpwYWdlKQp7
CiByZXR1cm4gUGFnZUhlYWQocGFnZSkgJiYgdGVzdF9iaXQoUEdfZG91YmxlX21hcCwgJnBhZ2Vb
MV0uZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VEb3VibGVNYXAoc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VIZWFkKHBhZ2UpKSkpKTsKIHNldF9iaXQoUEdf
ZG91YmxlX21hcCwgJnBhZ2VbMV0uZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIENsZWFyUGFnZURvdWJsZU1hcChz
dHJ1Y3QgcGFnZSAqcGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZUhlYWQocGFn
ZSkpKSkpOwogY2xlYXJfYml0KFBHX2RvdWJsZV9tYXAsICZwYWdlWzFdLmZsYWdzKTsKfQpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
VGVzdFNldFBhZ2VEb3VibGVNYXAoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICgodm9pZCkoc2l6ZW9m
KCggbG9uZykoIVBhZ2VIZWFkKHBhZ2UpKSkpKTsKIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KFBH
X2RvdWJsZV9tYXAsICZwYWdlWzFdLmZsYWdzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IFRlc3RDbGVhclBhZ2VEb3VibGVN
YXAoc3RydWN0IHBhZ2UgKnBhZ2UpCnsKICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VIZWFk
KHBhZ2UpKSkpKTsKIHJldHVybiB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfZG91YmxlX21hcCwgJnBh
Z2VbMV0uZmxhZ3MpOwp9CiMgNzMxICIuL2luY2x1ZGUvbGludXgvcGFnZS1mbGFncy5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
cGFnZV9oYXNfdHlwZShzdHJ1Y3QgcGFnZSAqcGFnZSkKewogcmV0dXJuIChpbnQpcGFnZS0+cGFn
ZV90eXBlIDwgLTEyODsKfQojIDc1NiAiLi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUJ1ZGR5KHN0cnVjdCBwYWdl
ICpwYWdlKSB7IHJldHVybiAoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMHgwMDAw
MDA4MCkpID09IDB4ZjAwMDAwMDApOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9f
KSkgdm9pZCBfX1NldFBhZ2VCdWRkeShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVv
ZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09IDB4ZjAw
MDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMDgwOyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRl
X18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUJ1ZGR5KHN0cnVjdCBwYWdl
ICpwYWdlKSB7ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VCdWRkeShwYWdlKSkpKSk7IHBh
Z2UtPnBhZ2VfdHlwZSB8PSAweDAwMDAwMDgwOyB9CiMgNzY1ICIuL2luY2x1ZGUvbGludXgvcGFn
ZS1mbGFncy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGludCBQYWdlT2Zm
bGluZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyByZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhm
MDAwMDAwMCB8IDB4MDAwMDAxMDApKSA9PSAweGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlT2ZmbGluZShzdHJ1Y3QgcGFnZSAqcGFn
ZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAw
MDAwIHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAw
MTAwOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFn
ZU9mZmxpbmUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFn
ZU9mZmxpbmUocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5cGUgfD0gMHgwMDAwMDEwMDsgfQoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VLbWVtY2coc3RydWN0
IHBhZ2UgKnBhZ2UpIHsgcmV0dXJuICgocGFnZS0+cGFnZV90eXBlICYgKDB4ZjAwMDAwMDAgfCAw
eDAwMDAwMjAwKSkgPT0gMHhmMDAwMDAwMCk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5s
aW5lX18pKSB2b2lkIF9fU2V0UGFnZUttZW1jZyhzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQp
KHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAmICgweGYwMDAwMDAwIHwgMCkpID09
IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9IH4weDAwMDAwMjAwOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUttZW1jZyhzdHJ1
Y3QgcGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlS21lbWNnKHBhZ2Up
KSkpKTsgcGFnZS0+cGFnZV90eXBlIHw9IDB4MDAwMDAyMDA7IH0KCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18o
KF9fYWx3YXlzX2lubGluZV9fKSkgaW50IFBhZ2VUYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyBy
ZXR1cm4gKChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDB4MDAwMDA0MDApKSA9PSAw
eGYwMDAwMDAwKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19T
ZXRQYWdlVGFibGUoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgKCh2b2lkKShzaXplb2YoKCBsb25nKSgh
KChwYWdlLT5wYWdlX3R5cGUgJiAoMHhmMDAwMDAwMCB8IDApKSA9PSAweGYwMDAwMDAwKSkpKSk7
IHBhZ2UtPnBhZ2VfdHlwZSAmPSB+MHgwMDAwMDQwMDsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5
c19pbmxpbmVfXykpIHZvaWQgX19DbGVhclBhZ2VUYWJsZShzdHJ1Y3QgcGFnZSAqcGFnZSkgeyAo
KHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlVGFibGUocGFnZSkpKSkpOyBwYWdlLT5wYWdlX3R5
cGUgfD0gMHgwMDAwMDQwMDsgfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSBpbnQgUGFnZUd1YXJkKHN0cnVjdCBwYWdlICpwYWdlKSB7IHJldHVybiAoKHBhZ2UtPnBhZ2Vf
dHlwZSAmICgweGYwMDAwMDAwIHwgMHgwMDAwMDgwMCkpID09IDB4ZjAwMDAwMDApOyB9IHN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX1NldFBhZ2VHdWFyZChzdHJ1Y3Qg
cGFnZSAqcGFnZSkgeyAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCEoKHBhZ2UtPnBhZ2VfdHlwZSAm
ICgweGYwMDAwMDAwIHwgMCkpID09IDB4ZjAwMDAwMDApKSkpKTsgcGFnZS0+cGFnZV90eXBlICY9
IH4weDAwMDAwODAwOyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBf
X0NsZWFyUGFnZUd1YXJkKHN0cnVjdCBwYWdlICpwYWdlKSB7ICgodm9pZCkoc2l6ZW9mKCggbG9u
ZykoIVBhZ2VHdWFyZChwYWdlKSkpKSk7IHBhZ2UtPnBhZ2VfdHlwZSB8PSAweDAwMDAwODAwOyB9
CgpleHRlcm4gYm9vbCBpc19mcmVlX2J1ZGR5X3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19h
dHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBpbnQgUGFnZUlzb2xhdGVkKHN0cnVjdCBw
YWdlICpwYWdlKSB7IHJldHVybiB0ZXN0X2JpdChQR19pc29sYXRlZCwgJih7ICgodm9pZCkoc2l6
ZW9mKCggbG9uZykoUGFnZVBvaXNvbmVkKHBhZ2UpKSkpKTsgcGFnZTsgfSktPmZsYWdzKTsgfSBz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgX19TZXRQYWdlSXNvbGF0ZWQo
c3RydWN0IHBhZ2UgKnBhZ2UpIHsgX19zZXRfYml0KFBHX2lzb2xhdGVkLCAmKHsgKCh2b2lkKShz
aXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+ZmxhZ3MpOyB9
IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCBfX0NsZWFyUGFnZUlzb2xh
dGVkKHN0cnVjdCBwYWdlICpwYWdlKSB7IF9fY2xlYXJfYml0KFBHX2lzb2xhdGVkLCAmKHsgKCh2
b2lkKShzaXplb2YoKCBsb25nKShQYWdlUG9pc29uZWQocGFnZSkpKSkpOyBwYWdlOyB9KS0+Zmxh
Z3MpOyB9OwoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBQYWdlU2xhYlBmbWVtYWxsb2Moc3RydWN0IHBhZ2UgKnBhZ2UpCnsK
ICgodm9pZCkoc2l6ZW9mKCggbG9uZykoIVBhZ2VTbGFiKHBhZ2UpKSkpKTsKIHJldHVybiBQYWdl
QWN0aXZlKHBhZ2UpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIFNldFBhZ2VTbGFiUGZtZW1hbGxvYyhzdHJ1Y3QgcGFnZSAq
cGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZVNsYWIocGFnZSkpKSkpOwogU2V0
UGFnZUFjdGl2ZShwYWdlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX0NsZWFyUGFnZVNsYWJQZm1lbWFsbG9jKHN0cnVj
dCBwYWdlICpwYWdlKQp7CiAoKHZvaWQpKHNpemVvZigoIGxvbmcpKCFQYWdlU2xhYihwYWdlKSkp
KSk7CiBfX0NsZWFyUGFnZUFjdGl2ZShwYWdlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBDbGVhclBhZ2VTbGFiUGZtZW1h
bGxvYyhzdHJ1Y3QgcGFnZSAqcGFnZSkKewogKCh2b2lkKShzaXplb2YoKCBsb25nKSghUGFnZVNs
YWIocGFnZSkpKSkpOwogQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOwp9CiMgODUyICIuL2luY2x1ZGUv
bGludXgvcGFnZS1mbGFncy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGFnZV9oYXNfcHJpdmF0ZShzdHJ1Y3QgcGFnZSAqcGFn
ZSkKewogcmV0dXJuICEhKHBhZ2UtPmZsYWdzICYgKDFVTCA8PCBQR19wcml2YXRlIHwgMVVMIDw8
IFBHX3ByaXZhdGVfMikpOwp9CiMgMjMgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDQx
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCmVudW0gbWlncmF0ZXR5cGUgewogTUlHUkFURV9V
Tk1PVkFCTEUsCiBNSUdSQVRFX01PVkFCTEUsCiBNSUdSQVRFX1JFQ0xBSU1BQkxFLAogTUlHUkFU
RV9QQ1BUWVBFUywKIE1JR1JBVEVfSElHSEFUT01JQyA9IE1JR1JBVEVfUENQVFlQRVMsCiMgNjQg
Ii4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKIE1JR1JBVEVfSVNPTEFURSwKCiBNSUdSQVRFX1RZ
UEVTCn07CgoKZXh0ZXJuIGNvbnN0IGNoYXIgKiBjb25zdCBtaWdyYXRldHlwZV9uYW1lc1tNSUdS
QVRFX1RZUEVTXTsKIyA4MCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlzX21pZ3Jh
dGVfbW92YWJsZShpbnQgbXQpCnsKIHJldHVybiBmYWxzZSB8fCBtdCA9PSBNSUdSQVRFX01PVkFC
TEU7Cn0KCgoKCgpleHRlcm4gaW50IHBhZ2VfZ3JvdXBfYnlfbW9iaWxpdHlfZGlzYWJsZWQ7CiMg
OTggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RydWN0IGZyZWVfYXJlYSB7CiBzdHJ1Y3Qg
bGlzdF9oZWFkIGZyZWVfbGlzdFtNSUdSQVRFX1RZUEVTXTsKIHVuc2lnbmVkIGxvbmcgbnJfZnJl
ZTsKfTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWEoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBm
cmVlX2FyZWEgKmFyZWEsCiAgICAgICAgaW50IG1pZ3JhdGV0eXBlKQp7CiBsaXN0X2FkZCgmcGFn
ZS0+bHJ1LCAmYXJlYS0+ZnJlZV9saXN0W21pZ3JhdGV0eXBlXSk7CiBhcmVhLT5ucl9mcmVlKys7
Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWFfdGFpbChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0
IGZyZWVfYXJlYSAqYXJlYSwKICAgICAgaW50IG1pZ3JhdGV0eXBlKQp7CiBsaXN0X2FkZF90YWls
KCZwYWdlLT5scnUsICZhcmVhLT5mcmVlX2xpc3RbbWlncmF0ZXR5cGVdKTsKIGFyZWEtPm5yX2Zy
ZWUrKzsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGFkZF90b19mcmVlX2FyZWFfcmFuZG9tKHN0cnVjdCBwYWdlICpw
YWdlLAogIHN0cnVjdCBmcmVlX2FyZWEgKmFyZWEsIGludCBtaWdyYXRldHlwZSkKewogYWRkX3Rv
X2ZyZWVfYXJlYShwYWdlLCBhcmVhLCBtaWdyYXRldHlwZSk7Cn0KCgoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBtb3ZlX3RvX2Zy
ZWVfYXJlYShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGZyZWVfYXJlYSAqYXJlYSwKICAgICAg
ICBpbnQgbWlncmF0ZXR5cGUpCnsKIGxpc3RfbW92ZSgmcGFnZS0+bHJ1LCAmYXJlYS0+ZnJlZV9s
aXN0W21pZ3JhdGV0eXBlXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwYWdlICpnZXRfcGFnZV9mcm9tX2ZyZWVfYXJl
YShzdHJ1Y3QgZnJlZV9hcmVhICphcmVhLAogICAgICAgICBpbnQgbWlncmF0ZXR5cGUpCnsKIHJl
dHVybiAoeyBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkX18gPSAoJmFyZWEtPmZyZWVfbGlzdFttaWdy
YXRldHlwZV0pOyBzdHJ1Y3QgbGlzdF9oZWFkICpwb3NfXyA9ICh7IHVuaW9uIHsgdHlwZW9mKGhl
YWRfXy0+bmV4dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNl
X3NpemUoJihoZWFkX18tPm5leHQpLCBfX3UuX19jLCBzaXplb2YoaGVhZF9fLT5uZXh0KSk7IGVs
c2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoaGVhZF9fLT5uZXh0KSwgX191Ll9fYywgc2l6
ZW9mKGhlYWRfXy0+bmV4dCkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBwb3Nf
XyAhPSBoZWFkX18gPyAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKShwb3NfXyk7IGRvIHsgZXh0
ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMTQxKHZvaWQpIF9fYXR0cmlidXRlX18oKF9f
ZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYg
KCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihwb3NfXykpLCB0eXBl
b2YoKChzdHJ1Y3QgcGFnZSAqKTApLT5scnUpKSAmJiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGli
bGVfcCh0eXBlb2YoKihwb3NfXykpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0XzE0MSgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgcGFnZSAqKShfX21wdHIgLSBfX2J1aWx0
aW5fb2Zmc2V0b2Yoc3RydWN0IHBhZ2UsIGxydSkpKTsgfSkgOiAoKHZvaWQgKikwKTsgfSkKICAg
ICAgICAgICAgICAgICAgICAgIDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWxfcGFnZV9mcm9tX2ZyZWVfYXJlYShzdHJ1
Y3QgcGFnZSAqcGFnZSwKICBzdHJ1Y3QgZnJlZV9hcmVhICphcmVhKQp7CiBsaXN0X2RlbCgmcGFn
ZS0+bHJ1KTsKIF9fQ2xlYXJQYWdlQnVkZHkocGFnZSk7CiAoKHBhZ2UpLT5wcml2YXRlID0gKDAp
KTsKIGFyZWEtPm5yX2ZyZWUtLTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBmcmVlX2FyZWFfZW1wdHkoc3RydWN0IGZyZWVf
YXJlYSAqYXJlYSwgaW50IG1pZ3JhdGV0eXBlKQp7CiByZXR1cm4gbGlzdF9lbXB0eSgmYXJlYS0+
ZnJlZV9saXN0W21pZ3JhdGV0eXBlXSk7Cn0KCnN0cnVjdCBwZ2xpc3RfZGF0YTsKIyAxNjggIi4v
aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RydWN0IHpvbmVfcGFkZGluZyB7CiBjaGFyIHhbMF07
Cn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMSA8PCAoNikpKSk7CiMgMTkwICIuL2luY2x1
ZGUvbGludXgvbW16b25lLmgiCmVudW0gem9uZV9zdGF0X2l0ZW0gewoKIE5SX0ZSRUVfUEFHRVMs
CiBOUl9aT05FX0xSVV9CQVNFLAogTlJfWk9ORV9JTkFDVElWRV9BTk9OID0gTlJfWk9ORV9MUlVf
QkFTRSwKIE5SX1pPTkVfQUNUSVZFX0FOT04sCiBOUl9aT05FX0lOQUNUSVZFX0ZJTEUsCiBOUl9a
T05FX0FDVElWRV9GSUxFLAogTlJfWk9ORV9VTkVWSUNUQUJMRSwKIE5SX1pPTkVfV1JJVEVfUEVO
RElORywKIE5SX01MT0NLLAogTlJfUEFHRVRBQkxFLAogTlJfS0VSTkVMX1NUQUNLX0tCLAoKIE5S
X0JPVU5DRSwKCiBOUl9aU1BBR0VTLAoKIE5SX0ZSRUVfQ01BX1BBR0VTLAogTlJfVk1fWk9ORV9T
VEFUX0lURU1TIH07CgplbnVtIG5vZGVfc3RhdF9pdGVtIHsKIE5SX0xSVV9CQVNFLAogTlJfSU5B
Q1RJVkVfQU5PTiA9IE5SX0xSVV9CQVNFLAogTlJfQUNUSVZFX0FOT04sCiBOUl9JTkFDVElWRV9G
SUxFLAogTlJfQUNUSVZFX0ZJTEUsCiBOUl9VTkVWSUNUQUJMRSwKIE5SX1NMQUJfUkVDTEFJTUFC
TEUsCiBOUl9TTEFCX1VOUkVDTEFJTUFCTEUsCiBOUl9JU09MQVRFRF9BTk9OLAogTlJfSVNPTEFU
RURfRklMRSwKIFdPUktJTkdTRVRfTk9ERVMsCiBXT1JLSU5HU0VUX1JFRkFVTFQsCiBXT1JLSU5H
U0VUX0FDVElWQVRFLAogV09SS0lOR1NFVF9SRVNUT1JFLAogV09SS0lOR1NFVF9OT0RFUkVDTEFJ
TSwKIE5SX0FOT05fTUFQUEVELAogTlJfRklMRV9NQVBQRUQsCgogTlJfRklMRV9QQUdFUywKIE5S
X0ZJTEVfRElSVFksCiBOUl9XUklURUJBQ0ssCiBOUl9XUklURUJBQ0tfVEVNUCwKIE5SX1NITUVN
LAogTlJfU0hNRU1fVEhQUywKIE5SX1NITUVNX1BNRE1BUFBFRCwKIE5SX0ZJTEVfVEhQUywKIE5S
X0ZJTEVfUE1ETUFQUEVELAogTlJfQU5PTl9USFBTLAogTlJfVU5TVEFCTEVfTkZTLAogTlJfVk1T
Q0FOX1dSSVRFLAogTlJfVk1TQ0FOX0lNTUVESUFURSwKIE5SX0RJUlRJRUQsCiBOUl9XUklUVEVO
LAogTlJfS0VSTkVMX01JU0NfUkVDTEFJTUFCTEUsCiBOUl9WTV9OT0RFX1NUQVRfSVRFTVMKfTsK
IyAyNjIgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKZW51bSBscnVfbGlzdCB7CiBMUlVfSU5B
Q1RJVkVfQU5PTiA9IDAsCiBMUlVfQUNUSVZFX0FOT04gPSAwICsgMSwKIExSVV9JTkFDVElWRV9G
SUxFID0gMCArIDIsCiBMUlVfQUNUSVZFX0ZJTEUgPSAwICsgMiArIDEsCiBMUlVfVU5FVklDVEFC
TEUsCiBOUl9MUlVfTElTVFMKfTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlzX2ZpbGVfbHJ1KGVudW0gbHJ1X2xpc3Qg
bHJ1KQp7CiByZXR1cm4gKGxydSA9PSBMUlVfSU5BQ1RJVkVfRklMRSB8fCBscnUgPT0gTFJVX0FD
VElWRV9GSUxFKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBpc19hY3RpdmVfbHJ1KGVudW0gbHJ1X2xpc3QgbHJ1KQp7CiBy
ZXR1cm4gKGxydSA9PSBMUlVfQUNUSVZFX0FOT04gfHwgbHJ1ID09IExSVV9BQ1RJVkVfRklMRSk7
Cn0KCnN0cnVjdCB6b25lX3JlY2xhaW1fc3RhdCB7CiMgMjk0ICIuL2luY2x1ZGUvbGludXgvbW16
b25lLmgiCiB1bnNpZ25lZCBsb25nIHJlY2VudF9yb3RhdGVkWzJdOwogdW5zaWduZWQgbG9uZyBy
ZWNlbnRfc2Nhbm5lZFsyXTsKfTsKCmVudW0gbHJ1dmVjX2ZsYWdzIHsKIExSVVZFQ19DT05HRVNU
RUQsCgoKfTsKCnN0cnVjdCBscnV2ZWMgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0c1tOUl9MUlVf
TElTVFNdOwogc3RydWN0IHpvbmVfcmVjbGFpbV9zdGF0IHJlY2xhaW1fc3RhdDsKCiBhdG9taWNf
bG9uZ190IGluYWN0aXZlX2FnZTsKCiB1bnNpZ25lZCBsb25nIHJlZmF1bHRzOwoKIHVuc2lnbmVk
IGxvbmcgZmxhZ3M7Cgogc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdDsKCn07CiMgMzI2ICIuL2lu
Y2x1ZGUvbGludXgvbW16b25lLmgiCnR5cGVkZWYgdW5zaWduZWQgaXNvbGF0ZV9tb2RlX3Q7Cgpl
bnVtIHpvbmVfd2F0ZXJtYXJrcyB7CiBXTUFSS19NSU4sCiBXTUFSS19MT1csCiBXTUFSS19ISUdI
LAogTlJfV01BUksKfTsKCgoKCgoKc3RydWN0IHBlcl9jcHVfcGFnZXMgewogaW50IGNvdW50Owog
aW50IGhpZ2g7CiBpbnQgYmF0Y2g7CgoKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdHNbTUlHUkFURV9Q
Q1BUWVBFU107Cn07CgpzdHJ1Y3QgcGVyX2NwdV9wYWdlc2V0IHsKIHN0cnVjdCBwZXJfY3B1X3Bh
Z2VzIHBjcDsKCgoKCgogczggc3RhdF90aHJlc2hvbGQ7CiBzOCB2bV9zdGF0X2RpZmZbTlJfVk1f
Wk9ORV9TVEFUX0lURU1TXTsKCn07CgpzdHJ1Y3QgcGVyX2NwdV9ub2Rlc3RhdCB7CiBzOCBzdGF0
X3RocmVzaG9sZDsKIHM4IHZtX25vZGVfc3RhdF9kaWZmW05SX1ZNX05PREVfU1RBVF9JVEVNU107
Cn07CgoKCmVudW0gem9uZV90eXBlIHsKIyA0MDAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIK
IFpPTkVfRE1BLAoKCiBaT05FX0RNQTMyLAoKCgoKCgogWk9ORV9OT1JNQUwsCiMgNDIyICIuL2lu
Y2x1ZGUvbGludXgvbW16b25lLmgiCiBaT05FX01PVkFCTEUsCgoKCiBfX01BWF9OUl9aT05FUwoK
fTsKCgoKc3RydWN0IHpvbmUgewoKCgogdW5zaWduZWQgbG9uZyBfd2F0ZXJtYXJrW05SX1dNQVJL
XTsKIHVuc2lnbmVkIGxvbmcgd2F0ZXJtYXJrX2Jvb3N0OwoKIHVuc2lnbmVkIGxvbmcgbnJfcmVz
ZXJ2ZWRfaGlnaGF0b21pYzsKIyA0NTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKIGxvbmcg
bG93bWVtX3Jlc2VydmVbNF07CgoKCgogc3RydWN0IHBnbGlzdF9kYXRhICp6b25lX3BnZGF0Owog
c3RydWN0IHBlcl9jcHVfcGFnZXNldCAqcGFnZXNldDsKIyA0NjcgIi4vaW5jbHVkZS9saW51eC9t
bXpvbmUuaCIKIHVuc2lnbmVkIGxvbmcgem9uZV9zdGFydF9wZm47CiMgNTA0ICIuL2luY2x1ZGUv
bGludXgvbW16b25lLmgiCiBhdG9taWNfbG9uZ190IG1hbmFnZWRfcGFnZXM7CiB1bnNpZ25lZCBs
b25nIHNwYW5uZWRfcGFnZXM7CiB1bnNpZ25lZCBsb25nIHByZXNlbnRfcGFnZXM7CgogY29uc3Qg
Y2hhciAqbmFtZTsKCgoKCgoKCiB1bnNpZ25lZCBsb25nIG5yX2lzb2xhdGVfcGFnZWJsb2NrOwoK
CgoKIHNlcWxvY2tfdCBzcGFuX3NlcWxvY2s7CgoKIGludCBpbml0aWFsaXplZDsKCgogc3RydWN0
IHpvbmVfcGFkZGluZyBfcGFkMV87CgoKIHN0cnVjdCBmcmVlX2FyZWEgZnJlZV9hcmVhWzExXTsK
CgogdW5zaWduZWQgbG9uZyBmbGFnczsKCgogc3BpbmxvY2tfdCBsb2NrOwoKCiBzdHJ1Y3Qgem9u
ZV9wYWRkaW5nIF9wYWQyXzsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgcGVyY3B1X2RyaWZ0X21hcms7
CgoKCiB1bnNpZ25lZCBsb25nIGNvbXBhY3RfY2FjaGVkX2ZyZWVfcGZuOwoKIHVuc2lnbmVkIGxv
bmcgY29tcGFjdF9jYWNoZWRfbWlncmF0ZV9wZm5bMl07CiB1bnNpZ25lZCBsb25nIGNvbXBhY3Rf
aW5pdF9taWdyYXRlX3BmbjsKIHVuc2lnbmVkIGxvbmcgY29tcGFjdF9pbml0X2ZyZWVfcGZuOwoj
IDU2MyAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgogdW5zaWduZWQgaW50IGNvbXBhY3RfY29u
c2lkZXJlZDsKIHVuc2lnbmVkIGludCBjb21wYWN0X2RlZmVyX3NoaWZ0OwogaW50IGNvbXBhY3Rf
b3JkZXJfZmFpbGVkOwoKCgoKIGJvb2wgY29tcGFjdF9ibG9ja3NraXBfZmx1c2g7CgoKIGJvb2wg
Y29udGlndW91czsKCiBzdHJ1Y3Qgem9uZV9wYWRkaW5nIF9wYWQzXzsKCiBhdG9taWNfbG9uZ190
IHZtX3N0YXRbTlJfVk1fWk9ORV9TVEFUX0lURU1TXTsKIGF0b21pY19sb25nX3Qgdm1fbnVtYV9z
dGF0WzBdOwp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDEgPDwgKDYpKSkpOwoKZW51bSBw
Z2RhdF9mbGFncyB7CiBQR0RBVF9ESVJUWSwKCgoKIFBHREFUX1dSSVRFQkFDSywKCgogUEdEQVRf
UkVDTEFJTV9MT0NLRUQsCn07CgplbnVtIHpvbmVfZmxhZ3MgewogWk9ORV9CT09TVEVEX1dBVEVS
TUFSSywKCgp9OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB6b25lX21hbmFnZWRfcGFnZXMoc3RydWN0IHpvbmUg
KnpvbmUpCnsKIHJldHVybiAodW5zaWduZWQgbG9uZylhdG9taWNfbG9uZ19yZWFkKCZ6b25lLT5t
YW5hZ2VkX3BhZ2VzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyB6b25lX2VuZF9wZm4oY29uc3Qgc3RydWN0
IHpvbmUgKnpvbmUpCnsKIHJldHVybiB6b25lLT56b25lX3N0YXJ0X3BmbiArIHpvbmUtPnNwYW5u
ZWRfcGFnZXM7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgem9uZV9zcGFuc19wZm4oY29uc3Qgc3RydWN0IHpvbmUgKnpvbmUs
IHVuc2lnbmVkIGxvbmcgcGZuKQp7CiByZXR1cm4gem9uZS0+em9uZV9zdGFydF9wZm4gPD0gcGZu
ICYmIHBmbiA8IHpvbmVfZW5kX3Bmbih6b25lKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB6b25lX2lzX2luaXRpYWxpemVk
KHN0cnVjdCB6b25lICp6b25lKQp7CiByZXR1cm4gem9uZS0+aW5pdGlhbGl6ZWQ7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
em9uZV9pc19lbXB0eShzdHJ1Y3Qgem9uZSAqem9uZSkKewogcmV0dXJuIHpvbmUtPnNwYW5uZWRf
cGFnZXMgPT0gMDsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgem9uZV9pbnRlcnNlY3RzKHN0cnVjdCB6b25lICp6b25l
LAogIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQp7CiBp
ZiAoem9uZV9pc19lbXB0eSh6b25lKSkKICByZXR1cm4gZmFsc2U7CiBpZiAoc3RhcnRfcGZuID49
IHpvbmVfZW5kX3Bmbih6b25lKSB8fAogICAgIHN0YXJ0X3BmbiArIG5yX3BhZ2VzIDw9IHpvbmUt
PnpvbmVfc3RhcnRfcGZuKQogIHJldHVybiBmYWxzZTsKCiByZXR1cm4gdHJ1ZTsKfQojIDY0OSAi
Li9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgplbnVtIHsKIFpPTkVMSVNUX0ZBTExCQUNLLAoKCgoK
CgoKIE1BWF9aT05FTElTVFMKfTsKCgoKCgpzdHJ1Y3Qgem9uZXJlZiB7CiBzdHJ1Y3Qgem9uZSAq
em9uZTsKIGludCB6b25lX2lkeDsKfTsKIyA2ODQgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIK
c3RydWN0IHpvbmVsaXN0IHsKIHN0cnVjdCB6b25lcmVmIF96b25lcmVmc1soKDEgPDwgMCkgKiA0
KSArIDFdOwp9OwoKCgpleHRlcm4gc3RydWN0IHBhZ2UgKm1lbV9tYXA7CgoKCnN0cnVjdCBkZWZl
cnJlZF9zcGxpdCB7CiBzcGlubG9ja190IHNwbGl0X3F1ZXVlX2xvY2s7CiBzdHJ1Y3QgbGlzdF9o
ZWFkIHNwbGl0X3F1ZXVlOwogdW5zaWduZWQgbG9uZyBzcGxpdF9xdWV1ZV9sZW47Cn07CiMgNzA5
ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0cnVjdCBib290bWVtX2RhdGE7CnR5cGVkZWYg
c3RydWN0IHBnbGlzdF9kYXRhIHsKIHN0cnVjdCB6b25lIG5vZGVfem9uZXNbNF07CiBzdHJ1Y3Qg
em9uZWxpc3Qgbm9kZV96b25lbGlzdHNbTUFYX1pPTkVMSVNUU107CiBpbnQgbnJfem9uZXM7CiMg
NzMxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCiBzcGlubG9ja190IG5vZGVfc2l6ZV9sb2Nr
OwoKIHVuc2lnbmVkIGxvbmcgbm9kZV9zdGFydF9wZm47CiB1bnNpZ25lZCBsb25nIG5vZGVfcHJl
c2VudF9wYWdlczsKIHVuc2lnbmVkIGxvbmcgbm9kZV9zcGFubmVkX3BhZ2VzOwoKIGludCBub2Rl
X2lkOwogd2FpdF9xdWV1ZV9oZWFkX3Qga3N3YXBkX3dhaXQ7CiB3YWl0X3F1ZXVlX2hlYWRfdCBw
Zm1lbWFsbG9jX3dhaXQ7CiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmtzd2FwZDsKCiBpbnQga3N3YXBk
X29yZGVyOwogZW51bSB6b25lX3R5cGUga3N3YXBkX2NsYXNzem9uZV9pZHg7CgogaW50IGtzd2Fw
ZF9mYWlsdXJlczsKCgogaW50IGtjb21wYWN0ZF9tYXhfb3JkZXI7CiBlbnVtIHpvbmVfdHlwZSBr
Y29tcGFjdGRfY2xhc3N6b25lX2lkeDsKIHdhaXRfcXVldWVfaGVhZF90IGtjb21wYWN0ZF93YWl0
Owogc3RydWN0IHRhc2tfc3RydWN0ICprY29tcGFjdGQ7CgoKCgoKIHVuc2lnbmVkIGxvbmcgdG90
YWxyZXNlcnZlX3BhZ2VzOwojIDc2OCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgogc3RydWN0
IHpvbmVfcGFkZGluZyBfcGFkMV87CiBzcGlubG9ja190IGxydV9sb2NrOwojIDc4MCAiLi9pbmNs
dWRlL2xpbnV4L21tem9uZS5oIgogc3RydWN0IGRlZmVycmVkX3NwbGl0IGRlZmVycmVkX3NwbGl0
X3F1ZXVlOwojIDc5MCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgogc3RydWN0IGxydXZlYyBf
X2xydXZlYzsKCiB1bnNpZ25lZCBsb25nIGZsYWdzOwoKIHN0cnVjdCB6b25lX3BhZGRpbmcgX3Bh
ZDJfOwoKCiBzdHJ1Y3QgcGVyX2NwdV9ub2Rlc3RhdCAqcGVyX2NwdV9ub2Rlc3RhdHM7CiBhdG9t
aWNfbG9uZ190IHZtX3N0YXRbTlJfVk1fTk9ERV9TVEFUX0lURU1TXTsKfSBwZ19kYXRhX3Q7CiMg
ODEzICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcGdkYXRfZW5kX3Bm
bihwZ19kYXRhX3QgKnBnZGF0KQp7CiByZXR1cm4gcGdkYXQtPm5vZGVfc3RhcnRfcGZuICsgcGdk
YXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwZ2RhdF9pc19lbXB0eShwZ19kYXRhX3Qg
KnBnZGF0KQp7CiByZXR1cm4gIXBnZGF0LT5ub2RlX3N0YXJ0X3BmbiAmJiAhcGdkYXQtPm5vZGVf
c3Bhbm5lZF9wYWdlczsKfQoKIyAxICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIg
MQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKIyA2ICIuL2luY2x1ZGUvbGlu
dXgvbWVtb3J5X2hvdHBsdWcuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIuaCIg
MQojIDE2ICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIuaCIKIyAxICIuL2luY2x1ZGUvbGludXgv
c3JjdS5oIiAxCiMgMjIgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L3JjdV9zZWdjYmxpc3QuaCIgMQojIDIxICIuL2luY2x1ZGUvbGludXgvcmN1X3NlZ2NibGlz
dC5oIgpzdHJ1Y3QgcmN1X2NibGlzdCB7CiBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZDsKIHN0
cnVjdCBjYWxsYmFja19oZWFkICoqdGFpbDsKIGxvbmcgbGVuOwp9OwojIDY2ICIuL2luY2x1ZGUv
bGludXgvcmN1X3NlZ2NibGlzdC5oIgpzdHJ1Y3QgcmN1X3NlZ2NibGlzdCB7CiBzdHJ1Y3QgY2Fs
bGJhY2tfaGVhZCAqaGVhZDsKIHN0cnVjdCBjYWxsYmFja19oZWFkICoqdGFpbHNbNF07CiB1bnNp
Z25lZCBsb25nIGdwX3NlcVs0XTsKCgoKIGxvbmcgbGVuOwoKIHU4IGVuYWJsZWQ7CiB1OCBvZmZs
b2FkZWQ7Cn07CiMgMjMgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiIDIKCnN0cnVjdCBzcmN1X3N0
cnVjdDsKIyA0MSAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIKaW50IGluaXRfc3JjdV9zdHJ1Y3Qo
c3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwoKCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvc3Jj
dXRyZWUuaCIgMQojIDE0ICIuL2luY2x1ZGUvbGludXgvc3JjdXRyZWUuaCIKIyAxICIuL2luY2x1
ZGUvbGludXgvcmN1X25vZGVfdHJlZS5oIiAxCiMgMTUgIi4vaW5jbHVkZS9saW51eC9zcmN1dHJl
ZS5oIiAyCgoKc3RydWN0IHNyY3Vfbm9kZTsKc3RydWN0IHNyY3Vfc3RydWN0OwoKCgoKCnN0cnVj
dCBzcmN1X2RhdGEgewoKIHVuc2lnbmVkIGxvbmcgc3JjdV9sb2NrX2NvdW50WzJdOwogdW5zaWdu
ZWQgbG9uZyBzcmN1X3VubG9ja19jb3VudFsyXTsKCgogc3BpbmxvY2tfdCBsb2NrIF9fYXR0cmli
dXRlX18oKF9fYWxpZ25lZF9fKDEgPDwgKDYpKSkpOwogc3RydWN0IHJjdV9zZWdjYmxpc3Qgc3Jj
dV9jYmxpc3Q7CiB1bnNpZ25lZCBsb25nIHNyY3VfZ3Bfc2VxX25lZWRlZDsKIHVuc2lnbmVkIGxv
bmcgc3JjdV9ncF9zZXFfbmVlZGVkX2V4cDsKIGJvb2wgc3JjdV9jYmxpc3RfaW52b2tpbmc7CiBz
dHJ1Y3QgdGltZXJfbGlzdCBkZWxheV93b3JrOwogc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiBz
dHJ1Y3QgY2FsbGJhY2tfaGVhZCBzcmN1X2JhcnJpZXJfaGVhZDsKIHN0cnVjdCBzcmN1X25vZGUg
Km15bm9kZTsKIHVuc2lnbmVkIGxvbmcgZ3JwbWFzazsKCiBpbnQgY3B1Owogc3RydWN0IHNyY3Vf
c3RydWN0ICpzc3A7Cn07CgoKCgpzdHJ1Y3Qgc3JjdV9ub2RlIHsKIHNwaW5sb2NrX3QgbG9jazsK
IHVuc2lnbmVkIGxvbmcgc3JjdV9oYXZlX2Nic1s0XTsKCgogdW5zaWduZWQgbG9uZyBzcmN1X2Rh
dGFfaGF2ZV9jYnNbNF07CgogdW5zaWduZWQgbG9uZyBzcmN1X2dwX3NlcV9uZWVkZWRfZXhwOwog
c3RydWN0IHNyY3Vfbm9kZSAqc3JjdV9wYXJlbnQ7CiBpbnQgZ3JwbG87CiBpbnQgZ3JwaGk7Cn07
CgoKCgpzdHJ1Y3Qgc3JjdV9zdHJ1Y3Qgewogc3RydWN0IHNyY3Vfbm9kZSBub2RlWzFdOwogc3Ry
dWN0IHNyY3Vfbm9kZSAqbGV2ZWxbMSArIDFdOwoKIHN0cnVjdCBtdXRleCBzcmN1X2NiX211dGV4
Owogc3BpbmxvY2tfdCBsb2NrOwogc3RydWN0IG11dGV4IHNyY3VfZ3BfbXV0ZXg7CiB1bnNpZ25l
ZCBpbnQgc3JjdV9pZHg7CiB1bnNpZ25lZCBsb25nIHNyY3VfZ3Bfc2VxOwogdW5zaWduZWQgbG9u
ZyBzcmN1X2dwX3NlcV9uZWVkZWQ7CiB1bnNpZ25lZCBsb25nIHNyY3VfZ3Bfc2VxX25lZWRlZF9l
eHA7CiB1bnNpZ25lZCBsb25nIHNyY3VfbGFzdF9ncF9lbmQ7CiBzdHJ1Y3Qgc3JjdV9kYXRhICpz
ZGE7CiB1bnNpZ25lZCBsb25nIHNyY3VfYmFycmllcl9zZXE7CiBzdHJ1Y3QgbXV0ZXggc3JjdV9i
YXJyaWVyX211dGV4Owogc3RydWN0IGNvbXBsZXRpb24gc3JjdV9iYXJyaWVyX2NvbXBsZXRpb247
CgogYXRvbWljX3Qgc3JjdV9iYXJyaWVyX2NwdV9jbnQ7CgoKIHN0cnVjdCBkZWxheWVkX3dvcmsg
d29yazsKCgoKfTsKIyAxMzcgIi4vaW5jbHVkZS9saW51eC9zcmN1dHJlZS5oIgp2b2lkIHN5bmNo
cm9uaXplX3NyY3VfZXhwZWRpdGVkKHN0cnVjdCBzcmN1X3N0cnVjdCAqc3NwKTsKdm9pZCBzcmN1
X2JhcnJpZXIoc3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwp2b2lkIHNyY3VfdG9ydHVyZV9zdGF0
c19wcmludChzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCwgY2hhciAqdHQsIGNoYXIgKnRmKTsKIyA1
MCAiLi9pbmNsdWRlL2xpbnV4L3NyY3UuaCIgMgoKCgoKCgoKdm9pZCBjYWxsX3NyY3Uoc3RydWN0
IHNyY3Vfc3RydWN0ICpzc3AsIHN0cnVjdCBjYWxsYmFja19oZWFkICpoZWFkLAogIHZvaWQgKCpm
dW5jKShzdHJ1Y3QgY2FsbGJhY2tfaGVhZCAqaGVhZCkpOwp2b2lkIGNsZWFudXBfc3JjdV9zdHJ1
Y3Qoc3RydWN0IHNyY3Vfc3RydWN0ICpzc3ApOwppbnQgX19zcmN1X3JlYWRfbG9jayhzdHJ1Y3Qg
c3JjdV9zdHJ1Y3QgKnNzcCkgOwp2b2lkIF9fc3JjdV9yZWFkX3VubG9jayhzdHJ1Y3Qgc3JjdV9z
dHJ1Y3QgKnNzcCwgaW50IGlkeCkgOwp2b2lkIHN5bmNocm9uaXplX3NyY3Uoc3RydWN0IHNyY3Vf
c3RydWN0ICpzc3ApOwojIDkxICIuL2luY2x1ZGUvbGludXgvc3JjdS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3JjdV9yZWFk
X2xvY2tfaGVsZChjb25zdCBzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCkKewogcmV0dXJuIDE7Cn0K
IyAxNTAgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzcmN1X3JlYWRfbG9jayhzdHJ1Y3Qg
c3JjdV9zdHJ1Y3QgKnNzcCkKewogaW50IHJldHZhbDsKCiByZXR2YWwgPSBfX3NyY3VfcmVhZF9s
b2NrKHNzcCk7CiBkbyB7IH0gd2hpbGUgKDApOwogcmV0dXJuIHJldHZhbDsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKc3JjdV9yZWFkX2xvY2tfbm90cmFj
ZShzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgKnNzcCkKewogaW50IHJldHZhbDsKCiByZXR2YWwgPSBfX3Ny
Y3VfcmVhZF9sb2NrKHNzcCk7CiByZXR1cm4gcmV0dmFsOwp9CiMgMTc2ICIuL2luY2x1ZGUvbGlu
dXgvc3JjdS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHNyY3VfcmVhZF91bmxvY2soc3RydWN0IHNyY3Vfc3RydWN0ICpzc3As
IGludCBpZHgpCgp7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGlkeCAmIH4weDEpOyBpZiAo
X19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19p
bmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rp
b24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQj
IGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4i
ICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4i
ICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvc3JjdS5oIiksICJpIiAoMTc5
KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0
cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0
IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxu
XHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDE1KSk7IH0pOyB9IHdoaWxlICgwKTsgX19i
dWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwogZG8geyB9IHdoaWxlICgw
KTsKIF9fc3JjdV9yZWFkX3VubG9jayhzc3AsIGlkeCk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApzcmN1X3JlYWRfdW5sb2NrX25vdHJhY2Uoc3RydWN0
IHNyY3Vfc3RydWN0ICpzc3AsIGludCBpZHgpCnsKIF9fc3JjdV9yZWFkX3VubG9jayhzc3AsIGlk
eCk7Cn0KIyAyMDAgIi4vaW5jbHVkZS9saW51eC9zcmN1LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc21wX21iX19hZnRlcl9z
cmN1X3JlYWRfdW5sb2NrKHZvaWQpCnsKCn0KIyAxNyAiLi9pbmNsdWRlL2xpbnV4L25vdGlmaWVy
LmgiIDIKIyA0OSAiLi9pbmNsdWRlL2xpbnV4L25vdGlmaWVyLmgiCnN0cnVjdCBub3RpZmllcl9i
bG9jazsKCnR5cGVkZWYgaW50ICgqbm90aWZpZXJfZm5fdCkoc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuYiwKICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpOwoKc3RydWN0IG5vdGlm
aWVyX2Jsb2NrIHsKIG5vdGlmaWVyX2ZuX3Qgbm90aWZpZXJfY2FsbDsKIHN0cnVjdCBub3RpZmll
cl9ibG9jayAqbmV4dDsKIGludCBwcmlvcml0eTsKfTsKCnN0cnVjdCBhdG9taWNfbm90aWZpZXJf
aGVhZCB7CiBzcGlubG9ja190IGxvY2s7CiBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKmhlYWQ7Cn07
CgpzdHJ1Y3QgYmxvY2tpbmdfbm90aWZpZXJfaGVhZCB7CiBzdHJ1Y3Qgcndfc2VtYXBob3JlIHJ3
c2VtOwogc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpoZWFkOwp9OwoKc3RydWN0IHJhd19ub3RpZmll
cl9oZWFkIHsKIHN0cnVjdCBub3RpZmllcl9ibG9jayAqaGVhZDsKfTsKCnN0cnVjdCBzcmN1X25v
dGlmaWVyX2hlYWQgewogc3RydWN0IG11dGV4IG11dGV4Owogc3RydWN0IHNyY3Vfc3RydWN0IHNy
Y3U7CiBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKmhlYWQ7Cn07CiMgOTMgIi4vaW5jbHVkZS9saW51
eC9ub3RpZmllci5oIgpleHRlcm4gdm9pZCBzcmN1X2luaXRfbm90aWZpZXJfaGVhZChzdHJ1Y3Qg
c3JjdV9ub3RpZmllcl9oZWFkICpuaCk7CiMgMTQ0ICIuL2luY2x1ZGUvbGludXgvbm90aWZpZXIu
aCIKZXh0ZXJuIGludCBhdG9taWNfbm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIoc3RydWN0IGF0b21p
Y19ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKZXh0ZXJu
IGludCBibG9ja2luZ19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcihzdHJ1Y3QgYmxvY2tpbmdfbm90
aWZpZXJfaGVhZCAqbmgsCiAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CmV4dGVybiBpbnQg
cmF3X25vdGlmaWVyX2NoYWluX3JlZ2lzdGVyKHN0cnVjdCByYXdfbm90aWZpZXJfaGVhZCAqbmgs
CiAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CmV4dGVybiBpbnQgc3JjdV9ub3RpZmllcl9j
aGFpbl9yZWdpc3RlcihzdHJ1Y3Qgc3JjdV9ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90
aWZpZXJfYmxvY2sgKm5iKTsKCmV4dGVybiBpbnQgYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVn
aXN0ZXIoc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2sgKm5iKTsKZXh0ZXJuIGludCBibG9ja2luZ19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVy
KHN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJfYmxv
Y2sgKm5iKTsKZXh0ZXJuIGludCByYXdfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlcihzdHJ1Y3Qg
cmF3X25vdGlmaWVyX2hlYWQgKm5oLAogIHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwpleHRl
cm4gaW50IHNyY3Vfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlcihzdHJ1Y3Qgc3JjdV9ub3RpZmll
cl9oZWFkICpuaCwKICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTsKCmV4dGVybiBpbnQgYXRv
bWljX25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IGF0b21pY19ub3RpZmllcl9oZWFkICpuaCwK
ICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CmV4dGVybiBpbnQgX19hdG9taWNfbm90aWZp
ZXJfY2FsbF9jaGFpbihzdHJ1Y3QgYXRvbWljX25vdGlmaWVyX2hlYWQgKm5oLAogdW5zaWduZWQg
bG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2NhbGxzKTsKZXh0ZXJu
IGludCBibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVjdCBibG9ja2luZ19ub3RpZmll
cl9oZWFkICpuaCwKICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CmV4dGVybiBpbnQgX19i
bG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFk
ICpuaCwKIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICp2LCBpbnQgbnJfdG9fY2FsbCwgaW50ICpu
cl9jYWxscyk7CmV4dGVybiBpbnQgcmF3X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IHJhd19u
b3RpZmllcl9oZWFkICpuaCwKICB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqdik7CmV4dGVybiBp
bnQgX19yYXdfbm90aWZpZXJfY2FsbF9jaGFpbihzdHJ1Y3QgcmF3X25vdGlmaWVyX2hlYWQgKm5o
LAogdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2Nh
bGxzKTsKZXh0ZXJuIGludCBzcmN1X25vdGlmaWVyX2NhbGxfY2hhaW4oc3RydWN0IHNyY3Vfbm90
aWZpZXJfaGVhZCAqbmgsCiAgdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKnYpOwpleHRlcm4gaW50
IF9fc3JjdV9ub3RpZmllcl9jYWxsX2NoYWluKHN0cnVjdCBzcmN1X25vdGlmaWVyX2hlYWQgKm5o
LAogdW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKnYsIGludCBucl90b19jYWxsLCBpbnQgKm5yX2Nh
bGxzKTsKIyAxOTAgIi4vaW5jbHVkZS9saW51eC9ub3RpZmllci5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgbm90aWZpZXJfZnJv
bV9lcnJubyhpbnQgZXJyKQp7CiBpZiAoZXJyKQogIHJldHVybiAweDgwMDAgfCAoMHgwMDAxIC0g
ZXJyKTsKCiByZXR1cm4gMHgwMDAxOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG5vdGlmaWVyX3RvX2Vycm5vKGludCByZXQp
CnsKIHJldCAmPSB+MHg4MDAwOwogcmV0dXJuIHJldCA+IDB4MDAwMSA/IDB4MDAwMSAtIHJldCA6
IDA7Cn0KIyAyMzQgIi4vaW5jbHVkZS9saW51eC9ub3RpZmllci5oIgpleHRlcm4gc3RydWN0IGJs
b2NraW5nX25vdGlmaWVyX2hlYWQgcmVib290X25vdGlmaWVyX2xpc3Q7CiMgOCAiLi9pbmNsdWRl
L2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiIDIKCgpzdHJ1Y3QgcGFnZTsKc3RydWN0IHpvbmU7CnN0
cnVjdCBwZ2xpc3RfZGF0YTsKc3RydWN0IG1lbV9zZWN0aW9uOwpzdHJ1Y3QgbWVtb3J5X2Jsb2Nr
OwpzdHJ1Y3QgcmVzb3VyY2U7CnN0cnVjdCB2bWVtX2FsdG1hcDsKIyA0MCAiLi9pbmNsdWRlL2xp
bnV4L21lbW9yeV9ob3RwbHVnLmgiCmVudW0gewogTUVNT1JZX0hPVFBMVUdfTUlOX0JPT1RNRU1f
VFlQRSA9IDEyLAogU0VDVElPTl9JTkZPID0gTUVNT1JZX0hPVFBMVUdfTUlOX0JPT1RNRU1fVFlQ
RSwKIE1JWF9TRUNUSU9OX0lORk8sCiBOT0RFX0lORk8sCiBNRU1PUllfSE9UUExVR19NQVhfQk9P
VE1FTV9UWVBFID0gTk9ERV9JTkZPLAp9OwoKCmVudW0gewogTU1PUF9PRkZMSU5FID0gLTEsCiBN
TU9QX09OTElORV9LRUVQLAogTU1PUF9PTkxJTkVfS0VSTkVMLAogTU1PUF9PTkxJTkVfTU9WQUJM
RSwKfTsKCgoKCgoKc3RydWN0IG1ocF9yZXN0cmljdGlvbnMgewogdW5zaWduZWQgbG9uZyBmbGFn
czsKIHN0cnVjdCB2bWVtX2FsdG1hcCAqYWx0bWFwOwp9OwojIDczICIuL2luY2x1ZGUvbGludXgv
bWVtb3J5X2hvdHBsdWcuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgem9uZV9zcGFuX3NlcWJlZ2luKHN0cnVjdCB6b25l
ICp6b25lKQp7CiByZXR1cm4gcmVhZF9zZXFiZWdpbigmem9uZS0+c3Bhbl9zZXFsb2NrKTsKfQpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgem9uZV9zcGFuX3NlcXJldHJ5KHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBpdikKewog
cmV0dXJuIHJlYWRfc2VxcmV0cnkoJnpvbmUtPnNwYW5fc2VxbG9jaywgaXYpOwp9CnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgem9u
ZV9zcGFuX3dyaXRlbG9jayhzdHJ1Y3Qgem9uZSAqem9uZSkKewogd3JpdGVfc2VxbG9jaygmem9u
ZS0+c3Bhbl9zZXFsb2NrKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHpvbmVfc3Bhbl93cml0ZXVubG9jayhzdHJ1Y3Qgem9u
ZSAqem9uZSkKewogd3JpdGVfc2VxdW5sb2NrKCZ6b25lLT5zcGFuX3NlcWxvY2spOwp9CnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
em9uZV9zZXFsb2NrX2luaXQoc3RydWN0IHpvbmUgKnpvbmUpCnsKIGRvIHsgX19zZXFjb3VudF9p
bml0KCYoJnpvbmUtPnNwYW5fc2VxbG9jayktPnNlcWNvdW50LCAoKHZvaWQgKikwKSwgKCh2b2lk
ICopMCkpOyBkbyB7IHNwaW5sb2NrX2NoZWNrKCYoJnpvbmUtPnNwYW5fc2VxbG9jayktPmxvY2sp
OyBkbyB7ICooJigmKCZ6b25lLT5zcGFuX3NlcWxvY2spLT5sb2NrKS0+cmxvY2spID0gKHJhd19z
cGlubG9ja190KSB7IC5yYXdfbG9jayA9IHsgeyAudmFsID0geyAoMCkgfSB9IH0sIH07IH0gd2hp
bGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7Cn0KZXh0ZXJuIGludCB6b25lX2dyb3df
ZnJlZV9saXN0cyhzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgbG9uZyBuZXdfbnJfcGFnZXMp
OwpleHRlcm4gaW50IHpvbmVfZ3Jvd193YWl0cXVldWVzKHN0cnVjdCB6b25lICp6b25lLCB1bnNp
Z25lZCBsb25nIG5yX3BhZ2VzKTsKZXh0ZXJuIGludCBhZGRfb25lX2hpZ2hwYWdlKHN0cnVjdCBw
YWdlICpwYWdlLCBpbnQgcGZuLCBpbnQgYmFkX3Bwcm8pOwoKZXh0ZXJuIGludCBvbmxpbmVfcGFn
ZXModW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAgIGludCBvbmxp
bmVfdHlwZSwgaW50IG5pZCk7CmV4dGVybiBzdHJ1Y3Qgem9uZSAqdGVzdF9wYWdlc19pbl9hX3pv
bmUodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAgICAgIHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7
CmV4dGVybiB1bnNpZ25lZCBsb25nIF9fb2ZmbGluZV9pc29sYXRlZF9wYWdlcyh1bnNpZ25lZCBs
b25nIHN0YXJ0X3BmbiwKICAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKCnR5cGVkZWYgdm9p
ZCAoKm9ubGluZV9wYWdlX2NhbGxiYWNrX3QpKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBp
bnQgb3JkZXIpOwoKZXh0ZXJuIHZvaWQgZ2VuZXJpY19vbmxpbmVfcGFnZShzdHJ1Y3QgcGFnZSAq
cGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKTsKZXh0ZXJuIGludCBzZXRfb25saW5lX3BhZ2VfY2Fs
bGJhY2sob25saW5lX3BhZ2VfY2FsbGJhY2tfdCBjYWxsYmFjayk7CmV4dGVybiBpbnQgcmVzdG9y
ZV9vbmxpbmVfcGFnZV9jYWxsYmFjayhvbmxpbmVfcGFnZV9jYWxsYmFja190IGNhbGxiYWNrKTsK
CmV4dGVybiBpbnQgdHJ5X29ubGluZV9ub2RlKGludCBuaWQpOwoKZXh0ZXJuIGludCBhcmNoX2Fk
ZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSwKICAgc3RydWN0IG1ocF9yZXN0
cmljdGlvbnMgKnJlc3RyaWN0aW9ucyk7CmV4dGVybiB1NjQgbWF4X21lbV9zaXplOwoKZXh0ZXJu
IGJvb2wgbWVtaHBfYXV0b19vbmxpbmU7CgpleHRlcm4gYm9vbCBtb3ZhYmxlX25vZGVfZW5hYmxl
ZDsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBtb3ZhYmxlX25vZGVfaXNfZW5hYmxlZCh2b2lkKQp7CiByZXR1cm4gbW92YWJsZV9u
b2RlX2VuYWJsZWQ7Cn0KCmV4dGVybiB2b2lkIGFyY2hfcmVtb3ZlX21lbW9yeShpbnQgbmlkLCB1
NjQgc3RhcnQsIHU2NCBzaXplLAogICAgICAgICAgc3RydWN0IHZtZW1fYWx0bWFwICphbHRtYXAp
OwpleHRlcm4gdm9pZCBfX3JlbW92ZV9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5z
aWduZWQgbG9uZyBucl9wYWdlcywKICAgICAgc3RydWN0IHZtZW1fYWx0bWFwICphbHRtYXApOwoK
CmV4dGVybiBpbnQgX19hZGRfcGFnZXMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4s
IHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAgICAgICAgIHN0cnVjdCBtaHBfcmVzdHJpY3Rpb25z
ICpyZXN0cmljdGlvbnMpOwojIDE0MCAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgi
CmludCBhZGRfcGFnZXMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVk
IGxvbmcgbnJfcGFnZXMsCiAgICAgICBzdHJ1Y3QgbWhwX3Jlc3RyaWN0aW9ucyAqcmVzdHJpY3Rp
b25zKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgbWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQodTY0IHN0YXJ0KQp7CiBy
ZXR1cm4gMDsKfQojIDE5OSAiLi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBnX2Rh
dGFfdCAqZ2VuZXJpY19hbGxvY19ub2RlZGF0YShpbnQgbmlkKQp7CiBkbyB7IGRvIHsgYXNtIF9f
aW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0
aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJc
dCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxu
IiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xu
IiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgi
KSwgImkiICgyMDEpLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9
IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9u
IC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoMTYpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91
bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiByZXR1cm4gKCh2b2lkICop
MCk7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBnZW5lcmljX2ZyZWVfbm9kZWRhdGEocGdfZGF0YV90ICpwZ2RhdCkKewp9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYXJjaF9yZWZyZXNoX25vZGVkYXRhKGludCBuaWQsIHBnX2RhdGFfdCAqcGdkYXQpCnsKfQoK
CgoKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkp
IF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgcmVnaXN0ZXJfcGFnZV9ib290bWVtX2luZm9fbm9k
ZShzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0KTsKCgoKCgpleHRlcm4gdm9pZCBwdXRfcGFnZV9i
b290bWVtKHN0cnVjdCBwYWdlICpwYWdlKTsKZXh0ZXJuIHZvaWQgZ2V0X3BhZ2VfYm9vdG1lbSh1
bnNpZ25lZCBsb25nIGluZ28sIHN0cnVjdCBwYWdlICpwYWdlLAogICAgICAgIHVuc2lnbmVkIGxv
bmcgdHlwZSk7Cgp2b2lkIGdldF9vbmxpbmVfbWVtcyh2b2lkKTsKdm9pZCBwdXRfb25saW5lX21l
bXModm9pZCk7Cgp2b2lkIG1lbV9ob3RwbHVnX2JlZ2luKHZvaWQpOwp2b2lkIG1lbV9ob3RwbHVn
X2RvbmUodm9pZCk7CiMgMjgzICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkKdm9p
ZCBwZ2RhdF9yZXNpemVfbG9jayhzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LCB1bnNpZ25lZCBs
b25nICpmbGFncykKewogZG8geyBkbyB7ICh7IHVuc2lnbmVkIGxvbmcgX19kdW1teTsgdHlwZW9m
KCpmbGFncykgX19kdW1teTI7ICh2b2lkKSgmX19kdW1teSA9PSAmX19kdW1teTIpOyAxOyB9KTsg
KmZsYWdzID0gX3Jhd19zcGluX2xvY2tfaXJxc2F2ZShzcGlubG9ja19jaGVjaygmcGdkYXQtPm5v
ZGVfc2l6ZV9sb2NrKSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKfQpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQp2b2lkIHBnZGF0X3Jl
c2l6ZV91bmxvY2soc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCwgdW5zaWduZWQgbG9uZyAqZmxh
Z3MpCnsKIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZGF0LT5ub2RlX3NpemVfbG9jaywgKmZs
YWdzKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKQp2b2lkIHBnZGF0X3Jlc2l6ZV9pbml0KHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQp
CnsKIGRvIHsgc3BpbmxvY2tfY2hlY2soJnBnZGF0LT5ub2RlX3NpemVfbG9jayk7IGRvIHsgKigm
KCZwZ2RhdC0+bm9kZV9zaXplX2xvY2spLT5ybG9jaykgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJh
d19sb2NrID0geyB7IC52YWwgPSB7ICgwKSB9IH0gfSwgfTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUg
KDApOwp9CiMgMzA5ICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIKZXh0ZXJuIGJv
b2wgaXNfbWVtX3NlY3Rpb25fcmVtb3ZhYmxlKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBs
b25nIG5yX3BhZ2VzKTsKZXh0ZXJuIHZvaWQgdHJ5X29mZmxpbmVfbm9kZShpbnQgbmlkKTsKZXh0
ZXJuIGludCBvZmZsaW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBs
b25nIG5yX3BhZ2VzKTsKZXh0ZXJuIGludCByZW1vdmVfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFy
dCwgdTY0IHNpemUpOwpleHRlcm4gdm9pZCBfX3JlbW92ZV9tZW1vcnkoaW50IG5pZCwgdTY0IHN0
YXJ0LCB1NjQgc2l6ZSk7CiMgMzM3ICIuL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCIK
ZXh0ZXJuIHZvaWQgc2V0X3pvbmVfY29udGlndW91cyhzdHJ1Y3Qgem9uZSAqem9uZSk7CmV4dGVy
biB2b2lkIGNsZWFyX3pvbmVfY29udGlndW91cyhzdHJ1Y3Qgem9uZSAqem9uZSk7CgpleHRlcm4g
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLnJlZi50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX25vaW5saW5lX18pKSBmcmVlX2FyZWFfaW5pdF9jb3JlX2hvdHBsdWcoaW50IG5pZCk7
CmV4dGVybiBpbnQgX19hZGRfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwpl
eHRlcm4gaW50IGFkZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSk7CmV4dGVy
biBpbnQgYWRkX21lbW9yeV9yZXNvdXJjZShpbnQgbmlkLCBzdHJ1Y3QgcmVzb3VyY2UgKnJlc291
cmNlKTsKZXh0ZXJuIHZvaWQgbW92ZV9wZm5fcmFuZ2VfdG9fem9uZShzdHJ1Y3Qgem9uZSAqem9u
ZSwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAgdW5zaWduZWQgbG9uZyBucl9wYWdlcywgc3Ry
dWN0IHZtZW1fYWx0bWFwICphbHRtYXApOwpleHRlcm4gdm9pZCByZW1vdmVfcGZuX3JhbmdlX2Zy
b21fem9uZShzdHJ1Y3Qgem9uZSAqem9uZSwKICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0
X3BmbiwKICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKTsKZXh0ZXJuIGJvb2wgaXNf
bWVtYmxvY2tfb2ZmbGluZWQoc3RydWN0IG1lbW9yeV9ibG9jayAqbWVtKTsKZXh0ZXJuIGludCBz
cGFyc2VfYWRkX3NlY3Rpb24oaW50IG5pZCwgdW5zaWduZWQgbG9uZyBwZm4sCiAgdW5zaWduZWQg
bG9uZyBucl9wYWdlcywgc3RydWN0IHZtZW1fYWx0bWFwICphbHRtYXApOwpleHRlcm4gdm9pZCBz
cGFyc2VfcmVtb3ZlX3NlY3Rpb24oc3RydWN0IG1lbV9zZWN0aW9uICptcywKICB1bnNpZ25lZCBs
b25nIHBmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKICB1bnNpZ25lZCBsb25nIG1hcF9vZmZz
ZXQsIHN0cnVjdCB2bWVtX2FsdG1hcCAqYWx0bWFwKTsKZXh0ZXJuIHN0cnVjdCBwYWdlICpzcGFy
c2VfZGVjb2RlX21lbV9tYXAodW5zaWduZWQgbG9uZyBjb2RlZF9tZW1fbWFwLAogICAgICAgdW5z
aWduZWQgbG9uZyBwbnVtKTsKZXh0ZXJuIGJvb2wgYWxsb3dfb25saW5lX3Bmbl9yYW5nZShpbnQg
bmlkLCB1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKICBpbnQgb25s
aW5lX3R5cGUpOwpleHRlcm4gc3RydWN0IHpvbmUgKnpvbmVfZm9yX3Bmbl9yYW5nZShpbnQgb25s
aW5lX3R5cGUsIGludCBuaWQsIHVuc2lnbmVkIHN0YXJ0X3BmbiwKICB1bnNpZ25lZCBsb25nIG5y
X3BhZ2VzKTsKIyA4MjQgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgoKdm9pZCBidWlsZF9h
bGxfem9uZWxpc3RzKHBnX2RhdGFfdCAqcGdkYXQpOwp2b2lkIHdha2V1cF9rc3dhcGQoc3RydWN0
IHpvbmUgKnpvbmUsIGdmcF90IGdmcF9tYXNrLCBpbnQgb3JkZXIsCiAgICAgZW51bSB6b25lX3R5
cGUgY2xhc3N6b25lX2lkeCk7CmJvb2wgX196b25lX3dhdGVybWFya19vayhzdHJ1Y3Qgem9uZSAq
eiwgdW5zaWduZWQgaW50IG9yZGVyLCB1bnNpZ25lZCBsb25nIG1hcmssCiAgICBpbnQgY2xhc3N6
b25lX2lkeCwgdW5zaWduZWQgaW50IGFsbG9jX2ZsYWdzLAogICAgbG9uZyBmcmVlX3BhZ2VzKTsK
Ym9vbCB6b25lX3dhdGVybWFya19vayhzdHJ1Y3Qgem9uZSAqeiwgdW5zaWduZWQgaW50IG9yZGVy
LAogIHVuc2lnbmVkIGxvbmcgbWFyaywgaW50IGNsYXNzem9uZV9pZHgsCiAgdW5zaWduZWQgaW50
IGFsbG9jX2ZsYWdzKTsKYm9vbCB6b25lX3dhdGVybWFya19va19zYWZlKHN0cnVjdCB6b25lICp6
LCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAgdW5zaWduZWQgbG9uZyBtYXJrLCBpbnQgY2xhc3N6b25l
X2lkeCk7CmVudW0gbWVtbWFwX2NvbnRleHQgewogTUVNTUFQX0VBUkxZLAogTUVNTUFQX0hPVFBM
VUcsCn07CmV4dGVybiB2b2lkIGluaXRfY3VycmVudGx5X2VtcHR5X3pvbmUoc3RydWN0IHpvbmUg
KnpvbmUsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogICAgICAgICB1bnNpZ25lZCBsb25nIHNp
emUpOwoKZXh0ZXJuIHZvaWQgbHJ1dmVjX2luaXQoc3RydWN0IGxydXZlYyAqbHJ1dmVjKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBwZ2xpc3RfZGF0YSAqbHJ1dmVjX3BnZGF0KHN0cnVjdCBscnV2ZWMgKmxydXZlYykKewoK
IHJldHVybiBscnV2ZWMtPnBnZGF0OwoKCgp9CgpleHRlcm4gdW5zaWduZWQgbG9uZyBscnV2ZWNf
bHJ1X3NpemUoc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBlbnVtIGxydV9saXN0IGxydSwgaW50IHpv
bmVfaWR4KTsKCgp2b2lkIG1lbW9yeV9wcmVzZW50KGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3Rh
cnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKCgoKCgp2b2lkIG1lbWJsb2Nrc19wcmVzZW50KHZvaWQp
OwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IGxvY2FsX21lbW9yeV9ub2RlKGludCBub2RlX2lkKSB7IHJldHVybiBub2Rl
X2lkOyB9OwojIDg4NSAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG1hbmFnZWRfem9u
ZShzdHJ1Y3Qgem9uZSAqem9uZSkKewogcmV0dXJuIHpvbmVfbWFuYWdlZF9wYWdlcyh6b25lKTsK
fQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgcG9wdWxhdGVkX3pvbmUoc3RydWN0IHpvbmUgKnpvbmUpCnsKIHJldHVybiB6b25l
LT5wcmVzZW50X3BhZ2VzOwp9CiMgOTA3ICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB6
b25lX3RvX25pZChzdHJ1Y3Qgem9uZSAqem9uZSkKewogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgem9uZV9z
ZXRfbmlkKHN0cnVjdCB6b25lICp6b25lLCBpbnQgbmlkKSB7fQoKCmV4dGVybiBpbnQgbW92YWJs
ZV96b25lOwojIDkyOCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNfaGlnaG1lbV9p
ZHgoZW51bSB6b25lX3R5cGUgaWR4KQp7CgoKCgogcmV0dXJuIDA7Cgp9CgoKCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNf
aGlnaG1lbShzdHJ1Y3Qgem9uZSAqem9uZSkKewoKCgogcmV0dXJuIDA7Cgp9CgoKc3RydWN0IGN0
bF90YWJsZTsKaW50IG1pbl9mcmVlX2tieXRlc19zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3Rh
YmxlICosIGludCwKICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmludCB3YXRlcm1h
cmtfYm9vc3RfZmFjdG9yX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAog
ICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKaW50IHdhdGVybWFya19zY2FsZV9mYWN0
b3Jfc3lzY3RsX2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgICAgdm9pZCAqLCBz
aXplX3QgKiwgbG9mZl90ICopOwpleHRlcm4gaW50IHN5c2N0bF9sb3dtZW1fcmVzZXJ2ZV9yYXRp
b1s0XTsKaW50IGxvd21lbV9yZXNlcnZlX3JhdGlvX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxf
dGFibGUgKiwgaW50LAogICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKaW50IHBlcmNw
dV9wYWdlbGlzdF9mcmFjdGlvbl9zeXNjdGxfaGFuZGxlcihzdHJ1Y3QgY3RsX3RhYmxlICosIGlu
dCwKICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmludCBzeXNjdGxfbWluX3VubWFw
cGVkX3JhdGlvX3N5c2N0bF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAogICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmludCBzeXNjdGxfbWluX3NsYWJfcmF0aW9fc3lzY3Rs
X2hhbmRsZXIoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgIHZvaWQgKiwgc2l6ZV90ICosIGxv
ZmZfdCAqKTsKCmV4dGVybiBpbnQgbnVtYV96b25lbGlzdF9vcmRlcl9oYW5kbGVyKHN0cnVjdCBj
dGxfdGFibGUgKiwgaW50LAogICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBj
aGFyIG51bWFfem9uZWxpc3Rfb3JkZXJbXTsKCgoKCmV4dGVybiBzdHJ1Y3QgcGdsaXN0X2RhdGEg
Y29udGlnX3BhZ2VfZGF0YTsKIyA5ODggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKZXh0ZXJu
IHN0cnVjdCBwZ2xpc3RfZGF0YSAqZmlyc3Rfb25saW5lX3BnZGF0KHZvaWQpOwpleHRlcm4gc3Ry
dWN0IHBnbGlzdF9kYXRhICpuZXh0X29ubGluZV9wZ2RhdChzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBn
ZGF0KTsKZXh0ZXJuIHN0cnVjdCB6b25lICpuZXh0X3pvbmUoc3RydWN0IHpvbmUgKnpvbmUpOwoj
IDEwMjAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHpvbmUgKnpvbmVsaXN0X3pv
bmUoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCnsKIHJldHVybiB6b25lcmVmLT56b25lOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgem9uZWxpc3Rfem9uZV9pZHgoc3RydWN0IHpvbmVyZWYgKnpvbmVyZWYpCnsKIHJldHVybiB6
b25lcmVmLT56b25lX2lkeDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHpvbmVsaXN0X25vZGVfaWR4KHN0cnVjdCB6b25lcmVm
ICp6b25lcmVmKQp7CiByZXR1cm4gem9uZV90b19uaWQoem9uZXJlZi0+em9uZSk7Cn0KCnN0cnVj
dCB6b25lcmVmICpfX25leHRfem9uZXNfem9uZWxpc3Qoc3RydWN0IHpvbmVyZWYgKnosCiAgICAg
ZW51bSB6b25lX3R5cGUgaGlnaGVzdF96b25laWR4LAogICAgIG5vZGVtYXNrX3QgKm5vZGVzKTsK
IyAxMDUxICIuL2luY2x1ZGUvbGludXgvbW16b25lLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlz
X2lubGluZV9fKSkgc3RydWN0IHpvbmVyZWYgKm5leHRfem9uZXNfem9uZWxpc3Qoc3RydWN0IHpv
bmVyZWYgKnosCiAgICAgZW51bSB6b25lX3R5cGUgaGlnaGVzdF96b25laWR4LAogICAgIG5vZGVt
YXNrX3QgKm5vZGVzKQp7CiBpZiAoX19idWlsdGluX2V4cGVjdCghISghbm9kZXMgJiYgem9uZWxp
c3Rfem9uZV9pZHgoeikgPD0gaGlnaGVzdF96b25laWR4KSwgMSkpCiAgcmV0dXJuIHo7CiByZXR1
cm4gX19uZXh0X3pvbmVzX3pvbmVsaXN0KHosIGhpZ2hlc3Rfem9uZWlkeCwgbm9kZXMpOwp9CiMg
MTA3NiAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qgem9uZXJlZiAqZmlyc3Rfem9u
ZXNfem9uZWxpc3Qoc3RydWN0IHpvbmVsaXN0ICp6b25lbGlzdCwKICAgICBlbnVtIHpvbmVfdHlw
ZSBoaWdoZXN0X3pvbmVpZHgsCiAgICAgbm9kZW1hc2tfdCAqbm9kZXMpCnsKIHJldHVybiBuZXh0
X3pvbmVzX3pvbmVsaXN0KHpvbmVsaXN0LT5fem9uZXJlZnMsCiAgICAgICBoaWdoZXN0X3pvbmVp
ZHgsIG5vZGVzKTsKfQojIDExNjAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQg
bG9uZyBwZm5fdG9fc2VjdGlvbl9ucih1bnNpZ25lZCBsb25nIHBmbikKewogcmV0dXJuIHBmbiA+
PiAoMjcgLSAxMik7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBzZWN0aW9uX25yX3RvX3Bmbih1bnNpZ25lZCBs
b25nIHNlYykKewogcmV0dXJuIHNlYyA8PCAoMjcgLSAxMik7Cn0KIyAxMTg3ICIuL2luY2x1ZGUv
bGludXgvbW16b25lLmgiCnN0cnVjdCBtZW1fc2VjdGlvbl91c2FnZSB7CiB1bnNpZ25lZCBsb25n
IHN1YnNlY3Rpb25fbWFwWygoKCgxVUwgPDwgKDI3IC0gMjEpKSkgKyAoKHNpemVvZihsb25nKSAq
IDgpKSAtIDEpIC8gKChzaXplb2YobG9uZykgKiA4KSkpXTsKCiB1bnNpZ25lZCBsb25nIHBhZ2Vi
bG9ja19mbGFnc1swXTsKfTsKCnZvaWQgc3Vic2VjdGlvbl9tYXBfaW5pdCh1bnNpZ25lZCBsb25n
IHBmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcyk7CgpzdHJ1Y3QgcGFnZTsKc3RydWN0IHBhZ2Vf
ZXh0OwpzdHJ1Y3QgbWVtX3NlY3Rpb24gewojIDEyMTAgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUu
aCIKIHVuc2lnbmVkIGxvbmcgc2VjdGlvbl9tZW1fbWFwOwoKIHN0cnVjdCBtZW1fc2VjdGlvbl91
c2FnZSAqdXNhZ2U7CgoKCgoKIHN0cnVjdCBwYWdlX2V4dCAqcGFnZV9leHQ7CiB1bnNpZ25lZCBs
b25nIHBhZDsKCgoKCgp9OwojIDEyMzggIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKZXh0ZXJu
IHN0cnVjdCBtZW1fc2VjdGlvbiAqKm1lbV9zZWN0aW9uOwoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyAqc2Vj
dGlvbl90b191c2VtYXAoc3RydWN0IG1lbV9zZWN0aW9uICptcykKewogcmV0dXJuIG1zLT51c2Fn
ZS0+cGFnZWJsb2NrX2ZsYWdzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgbWVtX3NlY3Rpb24gKl9fbnJfdG9fc2VjdGlv
bih1bnNpZ25lZCBsb25nIG5yKQp7CgogaWYgKCFtZW1fc2VjdGlvbikKICByZXR1cm4gKCh2b2lk
ICopMCk7CgogaWYgKCFtZW1fc2VjdGlvblsoKG5yKSAvICgoKDFVTCkgPDwgMTIpIC8gc2l6ZW9m
IChzdHJ1Y3QgbWVtX3NlY3Rpb24pKSldKQogIHJldHVybiAoKHZvaWQgKikwKTsKIHJldHVybiAm
bWVtX3NlY3Rpb25bKChucikgLyAoKCgxVUwpIDw8IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9z
ZWN0aW9uKSkpXVtuciAmICgoKCgxVUwpIDw8IDEyKSAvIHNpemVvZiAoc3RydWN0IG1lbV9zZWN0
aW9uKSkgLSAxKV07Cn0KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19zZWN0aW9uX25yKHN0cnVjdCBt
ZW1fc2VjdGlvbiAqbXMpOwpleHRlcm4gc2l6ZV90IG1lbV9zZWN0aW9uX3VzYWdlX3NpemUodm9p
ZCk7CiMgMTI4MiAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGFnZSAqX19zZWN0
aW9uX21lbV9tYXBfYWRkcihzdHJ1Y3QgbWVtX3NlY3Rpb24gKnNlY3Rpb24pCnsKIHVuc2lnbmVk
IGxvbmcgbWFwID0gc2VjdGlvbi0+c2VjdGlvbl9tZW1fbWFwOwogbWFwICY9ICh+KCgxVUw8PDQp
LTEpKTsKIHJldHVybiAoc3RydWN0IHBhZ2UgKiltYXA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmVzZW50X3NlY3Rpb24o
c3RydWN0IG1lbV9zZWN0aW9uICpzZWN0aW9uKQp7CiByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rp
b24tPnNlY3Rpb25fbWVtX21hcCAmICgxVUw8PDApKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwcmVzZW50X3NlY3Rpb25f
bnIodW5zaWduZWQgbG9uZyBucikKewogcmV0dXJuIHByZXNlbnRfc2VjdGlvbihfX25yX3RvX3Nl
Y3Rpb24obnIpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHZhbGlkX3NlY3Rpb24oc3RydWN0IG1lbV9zZWN0aW9uICpzZWN0
aW9uKQp7CiByZXR1cm4gKHNlY3Rpb24gJiYgKHNlY3Rpb24tPnNlY3Rpb25fbWVtX21hcCAmICgx
VUw8PDEpKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBlYXJseV9zZWN0aW9uKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlv
bikKewogcmV0dXJuIChzZWN0aW9uICYmIChzZWN0aW9uLT5zZWN0aW9uX21lbV9tYXAgJiAoMVVM
PDwzKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgdmFsaWRfc2VjdGlvbl9ucih1bnNpZ25lZCBsb25nIG5yKQp7CiByZXR1
cm4gdmFsaWRfc2VjdGlvbihfX25yX3RvX3NlY3Rpb24obnIpKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG9ubGluZV9zZWN0
aW9uKHN0cnVjdCBtZW1fc2VjdGlvbiAqc2VjdGlvbikKewogcmV0dXJuIChzZWN0aW9uICYmIChz
ZWN0aW9uLT5zZWN0aW9uX21lbV9tYXAgJiAoMVVMPDwyKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgb25saW5lX3NlY3Rp
b25fbnIodW5zaWduZWQgbG9uZyBucikKewogcmV0dXJuIG9ubGluZV9zZWN0aW9uKF9fbnJfdG9f
c2VjdGlvbihucikpOwp9CgoKdm9pZCBvbmxpbmVfbWVtX3NlY3Rpb25zKHVuc2lnbmVkIGxvbmcg
c3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwoKdm9pZCBvZmZsaW5lX21lbV9zZWN0
aW9ucyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IG1lbV9zZWN0aW9uICpfX3Bmbl90b19zZWN0aW9uKHVuc2lnbmVkIGxvbmcgcGZuKQp7
CiByZXR1cm4gX19ucl90b19zZWN0aW9uKHBmbl90b19zZWN0aW9uX25yKHBmbikpOwp9CgpleHRl
cm4gdW5zaWduZWQgbG9uZyBfX2hpZ2hlc3RfcHJlc2VudF9zZWN0aW9uX25yOwoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN1YnNl
Y3Rpb25fbWFwX2luZGV4KHVuc2lnbmVkIGxvbmcgcGZuKQp7CiByZXR1cm4gKHBmbiAmIH4oKH4o
KDFVTCA8PCAoMjcgLSAxMikpLTEpKSkpIC8gKDFVTCA8PCAoMjEgLSAxMikpOwp9CgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHBm
bl9zZWN0aW9uX3ZhbGlkKHN0cnVjdCBtZW1fc2VjdGlvbiAqbXMsIHVuc2lnbmVkIGxvbmcgcGZu
KQp7CiBpbnQgaWR4ID0gc3Vic2VjdGlvbl9tYXBfaW5kZXgocGZuKTsKCiByZXR1cm4gdGVzdF9i
aXQoaWR4LCBtcy0+dXNhZ2UtPnN1YnNlY3Rpb25fbWFwKTsKfQojIDEzNTggIi4vaW5jbHVkZS9s
aW51eC9tbXpvbmUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHBmbl92YWxpZCh1bnNpZ25lZCBsb25nIHBmbikKewogc3RydWN0
IG1lbV9zZWN0aW9uICptczsKCiBpZiAocGZuX3RvX3NlY3Rpb25fbnIocGZuKSA+PSAoMVVMIDw8
ICgoMCA/IDUyIDogNDYpIC0gMjcpKSkKICByZXR1cm4gMDsKIG1zID0gX19ucl90b19zZWN0aW9u
KHBmbl90b19zZWN0aW9uX25yKHBmbikpOwogaWYgKCF2YWxpZF9zZWN0aW9uKG1zKSkKICByZXR1
cm4gMDsKCgoKCiByZXR1cm4gZWFybHlfc2VjdGlvbihtcykgfHwgcGZuX3NlY3Rpb25fdmFsaWQo
bXMsIHBmbik7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgcGZuX3ByZXNlbnQodW5zaWduZWQgbG9uZyBwZm4pCnsKIGlmIChw
Zm5fdG9fc2VjdGlvbl9ucihwZm4pID49ICgxVUwgPDwgKCgwID8gNTIgOiA0NikgLSAyNykpKQog
IHJldHVybiAwOwogcmV0dXJuIHByZXNlbnRfc2VjdGlvbihfX25yX3RvX3NlY3Rpb24ocGZuX3Rv
X3NlY3Rpb25fbnIocGZuKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25nIG5leHRfcHJlc2VudF9zZWN0aW9u
X25yKHVuc2lnbmVkIGxvbmcgc2VjdGlvbl9ucikKewogd2hpbGUgKCsrc2VjdGlvbl9uciA8PSBf
X2hpZ2hlc3RfcHJlc2VudF9zZWN0aW9uX25yKSB7CiAgaWYgKHByZXNlbnRfc2VjdGlvbl9ucihz
ZWN0aW9uX25yKSkKICAgcmV0dXJuIHNlY3Rpb25fbnI7CiB9CgogcmV0dXJuIC0xOwp9CiMgMTQw
OCAiLi9pbmNsdWRlL2xpbnV4L21tem9uZS5oIgp2b2lkIHNwYXJzZV9pbml0KHZvaWQpOwojIDE0
MjEgIi4vaW5jbHVkZS9saW51eC9tbXpvbmUuaCIKc3RydWN0IG1taW5pdF9wZm5uaWRfY2FjaGUg
ewogdW5zaWduZWQgbG9uZyBsYXN0X3N0YXJ0OwogdW5zaWduZWQgbG9uZyBsYXN0X2VuZDsKIGlu
dCBsYXN0X25pZDsKfTsKCgoKCgp2b2lkIG1lbW9yeV9wcmVzZW50KGludCBuaWQsIHVuc2lnbmVk
IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKIyAxNDY5ICIuL2luY2x1ZGUvbGludXgv
bW16b25lLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgbWVtbWFwX3ZhbGlkX3dpdGhpbih1bnNpZ25lZCBsb25nIHBmbiwKICAg
ICBzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHpvbmUgKnpvbmUpCnsKIHJldHVybiB0cnVlOwp9
CiMgNyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGludXgvdG9w
b2xvZ3kuaCIgMQojIDMwICIuL2luY2x1ZGUvbGludXgvdG9wb2xvZ3kuaCIKIyAxICIuL2luY2x1
ZGUvbGludXgvYXJjaF90b3BvbG9neS5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2FyY2hfdG9w
b2xvZ3kuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LmgiIDEKCgoKCgoKIyAxICIuL2lu
Y2x1ZGUvbGludXgvc21wLmgiIDEKIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIgojIDEgIi4v
aW5jbHVkZS9saW51eC9sbGlzdC5oIiAxCiMgNTQgIi4vaW5jbHVkZS9saW51eC9sbGlzdC5oIgpz
dHJ1Y3QgbGxpc3RfaGVhZCB7CiBzdHJ1Y3QgbGxpc3Rfbm9kZSAqZmlyc3Q7Cn07CgpzdHJ1Y3Qg
bGxpc3Rfbm9kZSB7CiBzdHJ1Y3QgbGxpc3Rfbm9kZSAqbmV4dDsKfTsKIyA2OSAiLi9pbmNsdWRl
L2xpbnV4L2xsaXN0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgaW5pdF9sbGlzdF9oZWFkKHN0cnVjdCBsbGlzdF9oZWFkICps
aXN0KQp7CiBsaXN0LT5maXJzdCA9ICgodm9pZCAqKTApOwp9CiMgMTg3ICIuL2luY2x1ZGUvbGlu
dXgvbGxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBsbGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgbGxpc3RfaGVhZCAqaGVh
ZCkKewogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKGhlYWQtPmZpcnN0KSBfX3ZhbDsgY2hhciBf
X2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGhlYWQtPmZpcnN0KSwgX191
Ll9fYywgc2l6ZW9mKGhlYWQtPmZpcnN0KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNr
KCYoaGVhZC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaGVhZC0+Zmlyc3QpKTsgZG8geyB9IHdo
aWxlICgwKTsgX191Ll9fdmFsOyB9KSA9PSAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGxsaXN0X25v
ZGUgKmxsaXN0X25leHQoc3RydWN0IGxsaXN0X25vZGUgKm5vZGUpCnsKIHJldHVybiBub2RlLT5u
ZXh0Owp9CgpleHRlcm4gYm9vbCBsbGlzdF9hZGRfYmF0Y2goc3RydWN0IGxsaXN0X25vZGUgKm5l
d19maXJzdCwKICAgICAgIHN0cnVjdCBsbGlzdF9ub2RlICpuZXdfbGFzdCwKICAgICAgIHN0cnVj
dCBsbGlzdF9oZWFkICpoZWFkKTsKCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgbGxpc3RfYWRkKHN0cnVjdCBsbGlzdF9u
b2RlICpuZXcsIHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQp7CiByZXR1cm4gbGxpc3RfYWRkX2Jh
dGNoKG5ldywgbmV3LCBoZWFkKTsKfQojIDIyMCAiLi9pbmNsdWRlL2xpbnV4L2xsaXN0LmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBsbGlzdF9ub2RlICpsbGlzdF9kZWxfYWxsKHN0cnVjdCBsbGlzdF9oZWFkICpoZWFkKQp7
CiByZXR1cm4gKHsgdHlwZW9mKCZoZWFkLT5maXJzdCkgX19haV9wdHIgPSAoJmhlYWQtPmZpcnN0
KTsga2FzYW5fY2hlY2tfd3JpdGUoX19haV9wdHIsIHNpemVvZigqX19haV9wdHIpKTsgKHsgX190
eXBlb2ZfXyAoKigoX19haV9wdHIpKSkgX19yZXQgPSAoKCgodm9pZCAqKTApKSk7IHN3aXRjaCAo
c2l6ZW9mKCooKF9fYWlfcHRyKSkpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIg
ImIgJWIwLCAlMVxuIiA6ICIrcSIgKF9fcmV0KSwgIittIiAoKigoX19haV9wdHIpKSkgOiA6ICJt
ZW1vcnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIgIncg
JXcwLCAlMVxuIiA6ICIrciIgKF9fcmV0KSwgIittIiAoKigoX19haV9wdHIpKSkgOiA6ICJtZW1v
cnkiLCAiY2MiKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgiIiAieGNoZyIgImwgJTAs
ICUxXG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIs
ICJjYyIpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCIiICJ4Y2hnIiAicSAlcTAsICUx
XG4iIDogIityIiAoX19yZXQpLCAiK20iICgqKChfX2FpX3B0cikpKSA6IDogIm1lbW9yeSIsICJj
YyIpOyBicmVhazsgZGVmYXVsdDogX194Y2hnX3dyb25nX3NpemUoKTsgfSBfX3JldDsgfSk7IH0p
Owp9CgpleHRlcm4gc3RydWN0IGxsaXN0X25vZGUgKmxsaXN0X2RlbF9maXJzdChzdHJ1Y3QgbGxp
c3RfaGVhZCAqaGVhZCk7CgpzdHJ1Y3QgbGxpc3Rfbm9kZSAqbGxpc3RfcmV2ZXJzZV9vcmRlcihz
dHJ1Y3QgbGxpc3Rfbm9kZSAqaGVhZCk7CiMgMTYgIi4vaW5jbHVkZS9saW51eC9zbXAuaCIgMgoK
dHlwZWRlZiB2b2lkICgqc21wX2NhbGxfZnVuY190KSh2b2lkICppbmZvKTsKdHlwZWRlZiBib29s
ICgqc21wX2NvbmRfZnVuY190KShpbnQgY3B1LCB2b2lkICppbmZvKTsKc3RydWN0IF9fY2FsbF9z
aW5nbGVfZGF0YSB7CiBzdHJ1Y3QgbGxpc3Rfbm9kZSBsbGlzdDsKIHNtcF9jYWxsX2Z1bmNfdCBm
dW5jOwogdm9pZCAqaW5mbzsKIHVuc2lnbmVkIGludCBmbGFnczsKfTsKCgp0eXBlZGVmIHN0cnVj
dCBfX2NhbGxfc2luZ2xlX2RhdGEgY2FsbF9zaW5nbGVfZGF0YV90CiBfX2F0dHJpYnV0ZV9fKChf
X2FsaWduZWRfXyhzaXplb2Yoc3RydWN0IF9fY2FsbF9zaW5nbGVfZGF0YSkpKSk7CgoKZXh0ZXJu
IHVuc2lnbmVkIGludCB0b3RhbF9jcHVzOwoKaW50IHNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShp
bnQgY3B1aWQsIHNtcF9jYWxsX2Z1bmNfdCBmdW5jLCB2b2lkICppbmZvLAogICAgICAgIGludCB3
YWl0KTsKCgoKCnZvaWQgb25fZWFjaF9jcHUoc21wX2NhbGxfZnVuY190IGZ1bmMsIHZvaWQgKmlu
Zm8sIGludCB3YWl0KTsKCgoKCgp2b2lkIG9uX2VhY2hfY3B1X21hc2soY29uc3Qgc3RydWN0IGNw
dW1hc2sgKm1hc2ssIHNtcF9jYWxsX2Z1bmNfdCBmdW5jLAogIHZvaWQgKmluZm8sIGJvb2wgd2Fp
dCk7CgoKCgoKCnZvaWQgb25fZWFjaF9jcHVfY29uZChzbXBfY29uZF9mdW5jX3QgY29uZF9mdW5j
LCBzbXBfY2FsbF9mdW5jX3QgZnVuYywKICAgICAgICB2b2lkICppbmZvLCBib29sIHdhaXQpOwoK
dm9pZCBvbl9lYWNoX2NwdV9jb25kX21hc2soc21wX2NvbmRfZnVuY190IGNvbmRfZnVuYywgc21w
X2NhbGxfZnVuY190IGZ1bmMsCiAgICAgIHZvaWQgKmluZm8sIGJvb2wgd2FpdCwgY29uc3Qgc3Ry
dWN0IGNwdW1hc2sgKm1hc2spOwoKaW50IHNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZV9hc3luYyhp
bnQgY3B1LCBjYWxsX3NpbmdsZV9kYXRhX3QgKmNzZCk7CgoKCgoKCgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vc21wLmgiIDEKIyAxMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIK
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlYy5oIiAxCgoKCgoKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIgMQojIDIyICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL21wc3BlY19kZWYuaCIKc3RydWN0IG1wZl9pbnRlbCB7CiBjaGFyIHNpZ25hdHVyZVs0XTsK
IHVuc2lnbmVkIGludCBwaHlzcHRyOwogdW5zaWduZWQgY2hhciBsZW5ndGg7CiB1bnNpZ25lZCBj
aGFyIHNwZWNpZmljYXRpb247CiB1bnNpZ25lZCBjaGFyIGNoZWNrc3VtOwogdW5zaWduZWQgY2hh
ciBmZWF0dXJlMTsKIHVuc2lnbmVkIGNoYXIgZmVhdHVyZTI7CiB1bnNpZ25lZCBjaGFyIGZlYXR1
cmUzOwogdW5zaWduZWQgY2hhciBmZWF0dXJlNDsKIHVuc2lnbmVkIGNoYXIgZmVhdHVyZTU7Cn07
CgoKCnN0cnVjdCBtcGNfdGFibGUgewogY2hhciBzaWduYXR1cmVbNF07CiB1bnNpZ25lZCBzaG9y
dCBsZW5ndGg7CiBjaGFyIHNwZWM7CiBjaGFyIGNoZWNrc3VtOwogY2hhciBvZW1bOF07CiBjaGFy
IHByb2R1Y3RpZFsxMl07CiB1bnNpZ25lZCBpbnQgb2VtcHRyOwogdW5zaWduZWQgc2hvcnQgb2Vt
c2l6ZTsKIHVuc2lnbmVkIHNob3J0IG9lbWNvdW50OwogdW5zaWduZWQgaW50IGxhcGljOwogdW5z
aWduZWQgaW50IHJlc2VydmVkOwp9OwojIDY4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3Bl
Y19kZWYuaCIKc3RydWN0IG1wY19jcHUgewogdW5zaWduZWQgY2hhciB0eXBlOwogdW5zaWduZWQg
Y2hhciBhcGljaWQ7CiB1bnNpZ25lZCBjaGFyIGFwaWN2ZXI7CiB1bnNpZ25lZCBjaGFyIGNwdWZs
YWc7CiB1bnNpZ25lZCBpbnQgY3B1ZmVhdHVyZTsKIHVuc2lnbmVkIGludCBmZWF0dXJlZmxhZzsK
IHVuc2lnbmVkIGludCByZXNlcnZlZFsyXTsKfTsKCnN0cnVjdCBtcGNfYnVzIHsKIHVuc2lnbmVk
IGNoYXIgdHlwZTsKIHVuc2lnbmVkIGNoYXIgYnVzaWQ7CiB1bnNpZ25lZCBjaGFyIGJ1c3R5cGVb
Nl07Cn07CiMgMTA2ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKc3RydWN0
IG1wY19pb2FwaWMgewogdW5zaWduZWQgY2hhciB0eXBlOwogdW5zaWduZWQgY2hhciBhcGljaWQ7
CiB1bnNpZ25lZCBjaGFyIGFwaWN2ZXI7CiB1bnNpZ25lZCBjaGFyIGZsYWdzOwogdW5zaWduZWQg
aW50IGFwaWNhZGRyOwp9OwoKc3RydWN0IG1wY19pbnRzcmMgewogdW5zaWduZWQgY2hhciB0eXBl
OwogdW5zaWduZWQgY2hhciBpcnF0eXBlOwogdW5zaWduZWQgc2hvcnQgaXJxZmxhZzsKIHVuc2ln
bmVkIGNoYXIgc3JjYnVzOwogdW5zaWduZWQgY2hhciBzcmNidXNpcnE7CiB1bnNpZ25lZCBjaGFy
IGRzdGFwaWM7CiB1bnNpZ25lZCBjaGFyIGRzdGlycTsKfTsKCmVudW0gbXBfaXJxX3NvdXJjZV90
eXBlcyB7CiBtcF9JTlQgPSAwLAogbXBfTk1JID0gMSwKIG1wX1NNSSA9IDIsCiBtcF9FeHRJTlQg
PSAzCn07CiMgMTQ1ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlY19kZWYuaCIKc3RydWN0
IG1wY19saW50c3JjIHsKIHVuc2lnbmVkIGNoYXIgdHlwZTsKIHVuc2lnbmVkIGNoYXIgaXJxdHlw
ZTsKIHVuc2lnbmVkIHNob3J0IGlycWZsYWc7CiB1bnNpZ25lZCBjaGFyIHNyY2J1c2lkOwogdW5z
aWduZWQgY2hhciBzcmNidXNpcnE7CiB1bnNpZ25lZCBjaGFyIGRlc3RhcGljOwogdW5zaWduZWQg
Y2hhciBkZXN0YXBpY2xpbnQ7Cn07CgoKCnN0cnVjdCBtcGNfb2VtdGFibGUgewogY2hhciBzaWdu
YXR1cmVbNF07CiB1bnNpZ25lZCBzaG9ydCBsZW5ndGg7CiBjaGFyIHJldjsKIGNoYXIgY2hlY2tz
dW07CiBjaGFyIG1wY1s4XTsKfTsKIyAxNzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVj
X2RlZi5oIgplbnVtIG1wX2J1c3R5cGUgewogTVBfQlVTX0lTQSA9IDEsCiBNUF9CVVNfRUlTQSwK
IE1QX0JVU19QQ0ksCn07CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWMuaCIgMgoj
IDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIgMQoKCgoKCgpzdHJ1Y3QgbXBj
X2J1czsKc3RydWN0IG1wY19jcHU7CnN0cnVjdCBtcGNfdGFibGU7CnN0cnVjdCBjcHVpbmZvX3g4
NjsKIyAyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3QgeDg2X2lu
aXRfbXBwYXJzZSB7CiB2b2lkICgqbXBjX3JlY29yZCkodW5zaWduZWQgaW50IG1vZGUpOwogdm9p
ZCAoKnNldHVwX2lvYXBpY19pZHMpKHZvaWQpOwogaW50ICgqbXBjX2FwaWNfaWQpKHN0cnVjdCBt
cGNfY3B1ICptKTsKIHZvaWQgKCpzbXBfcmVhZF9tcGNfb2VtKShzdHJ1Y3QgbXBjX3RhYmxlICpt
cGMpOwogdm9pZCAoKm1wY19vZW1fcGNpX2J1cykoc3RydWN0IG1wY19idXMgKm0pOwogdm9pZCAo
Km1wY19vZW1fYnVzX2luZm8pKHN0cnVjdCBtcGNfYnVzICptLCBjaGFyICpuYW1lKTsKIHZvaWQg
KCpmaW5kX3NtcF9jb25maWcpKHZvaWQpOwogdm9pZCAoKmdldF9zbXBfY29uZmlnKSh1bnNpZ25l
ZCBpbnQgZWFybHkpOwp9OwojIDQyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0Lmgi
CnN0cnVjdCB4ODZfaW5pdF9yZXNvdXJjZXMgewogdm9pZCAoKnByb2JlX3JvbXMpKHZvaWQpOwog
dm9pZCAoKnJlc2VydmVfcmVzb3VyY2VzKSh2b2lkKTsKIGNoYXIgKigqbWVtb3J5X3NldHVwKSh2
b2lkKTsKfTsKIyA1NyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3Qg
eDg2X2luaXRfaXJxcyB7CiB2b2lkICgqcHJlX3ZlY3Rvcl9pbml0KSh2b2lkKTsKIHZvaWQgKCpp
bnRyX2luaXQpKHZvaWQpOwogdm9pZCAoKnRyYXBfaW5pdCkodm9pZCk7CiB2b2lkICgqaW50cl9t
b2RlX3NlbGVjdCkodm9pZCk7CiB2b2lkICgqaW50cl9tb2RlX2luaXQpKHZvaWQpOwp9OwoKCgoK
CgpzdHJ1Y3QgeDg2X2luaXRfb2VtIHsKIHZvaWQgKCphcmNoX3NldHVwKSh2b2lkKTsKIHZvaWQg
KCpiYW5uZXIpKHZvaWQpOwp9OwojIDgyICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0
LmgiCnN0cnVjdCB4ODZfaW5pdF9wYWdpbmcgewogdm9pZCAoKnBhZ2V0YWJsZV9pbml0KSh2b2lk
KTsKfTsKIyA5MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3QgeDg2
X2luaXRfdGltZXJzIHsKIHZvaWQgKCpzZXR1cF9wZXJjcHVfY2xvY2tldikodm9pZCk7CiB2b2lk
ICgqdGltZXJfaW5pdCkodm9pZCk7CiB2b2lkICgqd2FsbGNsb2NrX2luaXQpKHZvaWQpOwp9OwoK
CgoKCnN0cnVjdCB4ODZfaW5pdF9pb21tdSB7CiBpbnQgKCppb21tdV9pbml0KSh2b2lkKTsKfTsK
IyAxMTQgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKc3RydWN0IHg4Nl9pbml0
X3BjaSB7CiBpbnQgKCphcmNoX2luaXQpKHZvaWQpOwogaW50ICgqaW5pdCkodm9pZCk7CiB2b2lk
ICgqaW5pdF9pcnEpKHZvaWQpOwogdm9pZCAoKmZpeHVwX2lycXMpKHZvaWQpOwp9OwojIDEyOSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpzdHJ1Y3QgeDg2X2h5cGVyX2luaXQg
ewogdm9pZCAoKmluaXRfcGxhdGZvcm0pKHZvaWQpOwogdm9pZCAoKmd1ZXN0X2xhdGVfaW5pdCko
dm9pZCk7CiBib29sICgqeDJhcGljX2F2YWlsYWJsZSkodm9pZCk7CiB2b2lkICgqaW5pdF9tZW1f
bWFwcGluZykodm9pZCk7CiB2b2lkICgqaW5pdF9hZnRlcl9ib290bWVtKSh2b2lkKTsKfTsKCgoK
CgoKCnN0cnVjdCB4ODZfaW5pdF9hY3BpIHsKIHZvaWQgKCpzZXRfcm9vdF9wb2ludGVyKSh1NjQg
YWRkcik7CiB1NjQgKCpnZXRfcm9vdF9wb2ludGVyKSh2b2lkKTsKIHZvaWQgKCpyZWR1Y2VkX2h3
X2Vhcmx5X2luaXQpKHZvaWQpOwp9OwoKCgoKCnN0cnVjdCB4ODZfaW5pdF9vcHMgewogc3RydWN0
IHg4Nl9pbml0X3Jlc291cmNlcyByZXNvdXJjZXM7CiBzdHJ1Y3QgeDg2X2luaXRfbXBwYXJzZSBt
cHBhcnNlOwogc3RydWN0IHg4Nl9pbml0X2lycXMgaXJxczsKIHN0cnVjdCB4ODZfaW5pdF9vZW0g
b2VtOwogc3RydWN0IHg4Nl9pbml0X3BhZ2luZyBwYWdpbmc7CiBzdHJ1Y3QgeDg2X2luaXRfdGlt
ZXJzIHRpbWVyczsKIHN0cnVjdCB4ODZfaW5pdF9pb21tdSBpb21tdTsKIHN0cnVjdCB4ODZfaW5p
dF9wY2kgcGNpOwogc3RydWN0IHg4Nl9oeXBlcl9pbml0IGh5cGVyOwogc3RydWN0IHg4Nl9pbml0
X2FjcGkgYWNwaTsKfTsKCgoKCgoKc3RydWN0IHg4Nl9jcHVpbml0X29wcyB7CiB2b2lkICgqc2V0
dXBfcGVyY3B1X2Nsb2NrZXYpKHZvaWQpOwogdm9pZCAoKmVhcmx5X3BlcmNwdV9jbG9ja19pbml0
KSh2b2lkKTsKIHZvaWQgKCpmaXh1cF9jcHVfaWQpKHN0cnVjdCBjcHVpbmZvX3g4NiAqYywgaW50
IG5vZGUpOwp9OwoKc3RydWN0IHRpbWVzcGVjNjQ7CiMgMTk4ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3g4Nl9pbml0LmgiCnN0cnVjdCB4ODZfbGVnYWN5X2RldmljZXMgewogaW50IHBucGJpb3M7
Cn07CiMgMjExICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3g4Nl9pbml0LmgiCmVudW0geDg2X2xl
Z2FjeV9pODA0Ml9zdGF0ZSB7CiBYODZfTEVHQUNZX0k4MDQyX1BMQVRGT1JNX0FCU0VOVCwKIFg4
Nl9MRUdBQ1lfSTgwNDJfRklSTVdBUkVfQUJTRU5ULAogWDg2X0xFR0FDWV9JODA0Ml9FWFBFQ1RF
RF9QUkVTRU5ULAp9OwojIDIyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ODZfaW5pdC5oIgpz
dHJ1Y3QgeDg2X2xlZ2FjeV9mZWF0dXJlcyB7CiBlbnVtIHg4Nl9sZWdhY3lfaTgwNDJfc3RhdGUg
aTgwNDI7CiBpbnQgcnRjOwogaW50IHdhcm1fcmVzZXQ7CiBpbnQgbm9fdmdhOwogaW50IHJlc2Vy
dmVfYmlvc19yZWdpb25zOwogc3RydWN0IHg4Nl9sZWdhY3lfZGV2aWNlcyBkZXZpY2VzOwp9OwoK
CgoKCgpzdHJ1Y3QgeDg2X2h5cGVyX3J1bnRpbWUgewogdm9pZCAoKnBpbl92Y3B1KShpbnQgY3B1
KTsKfTsKIyAyNjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20veDg2X2luaXQuaCIKc3RydWN0IHg4
Nl9wbGF0Zm9ybV9vcHMgewogdW5zaWduZWQgbG9uZyAoKmNhbGlicmF0ZV9jcHUpKHZvaWQpOwog
dW5zaWduZWQgbG9uZyAoKmNhbGlicmF0ZV90c2MpKHZvaWQpOwogdm9pZCAoKmdldF93YWxsY2xv
Y2spKHN0cnVjdCB0aW1lc3BlYzY0ICp0cyk7CiBpbnQgKCpzZXRfd2FsbGNsb2NrKShjb25zdCBz
dHJ1Y3QgdGltZXNwZWM2NCAqdHMpOwogdm9pZCAoKmlvbW11X3NodXRkb3duKSh2b2lkKTsKIGJv
b2wgKCppc191bnRyYWNrZWRfcGF0X3JhbmdlKSh1NjQgc3RhcnQsIHU2NCBlbmQpOwogdm9pZCAo
Km5taV9pbml0KSh2b2lkKTsKIHVuc2lnbmVkIGNoYXIgKCpnZXRfbm1pX3JlYXNvbikodm9pZCk7
CiB2b2lkICgqc2F2ZV9zY2hlZF9jbG9ja19zdGF0ZSkodm9pZCk7CiB2b2lkICgqcmVzdG9yZV9z
Y2hlZF9jbG9ja19zdGF0ZSkodm9pZCk7CiB2b2lkICgqYXBpY19wb3N0X2luaXQpKHZvaWQpOwog
c3RydWN0IHg4Nl9sZWdhY3lfZmVhdHVyZXMgbGVnYWN5Owogdm9pZCAoKnNldF9sZWdhY3lfZmVh
dHVyZXMpKHZvaWQpOwogc3RydWN0IHg4Nl9oeXBlcl9ydW50aW1lIGh5cGVyOwp9OwoKc3RydWN0
IHBjaV9kZXY7CgpzdHJ1Y3QgeDg2X21zaV9vcHMgewogaW50ICgqc2V0dXBfbXNpX2lycXMpKHN0
cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudmVjLCBpbnQgdHlwZSk7CiB2b2lkICgqdGVhcmRvd25f
bXNpX2lycSkodW5zaWduZWQgaW50IGlycSk7CiB2b2lkICgqdGVhcmRvd25fbXNpX2lycXMpKHN0
cnVjdCBwY2lfZGV2ICpkZXYpOwogdm9pZCAoKnJlc3RvcmVfbXNpX2lycXMpKHN0cnVjdCBwY2lf
ZGV2ICpkZXYpOwp9OwoKc3RydWN0IHg4Nl9hcGljX29wcyB7CiB1bnNpZ25lZCBpbnQgKCppb19h
cGljX3JlYWQpICh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZyk7CiB2b2lkICgq
cmVzdG9yZSkodm9pZCk7Cn07CgpleHRlcm4gc3RydWN0IHg4Nl9pbml0X29wcyB4ODZfaW5pdDsK
ZXh0ZXJuIHN0cnVjdCB4ODZfY3B1aW5pdF9vcHMgeDg2X2NwdWluaXQ7CmV4dGVybiBzdHJ1Y3Qg
eDg2X3BsYXRmb3JtX29wcyB4ODZfcGxhdGZvcm07CmV4dGVybiBzdHJ1Y3QgeDg2X21zaV9vcHMg
eDg2X21zaTsKZXh0ZXJuIHN0cnVjdCB4ODZfYXBpY19vcHMgeDg2X2FwaWNfb3BzOwoKZXh0ZXJu
IHZvaWQgeDg2X2Vhcmx5X2luaXRfcGxhdGZvcm1fcXVpcmtzKHZvaWQpOwpleHRlcm4gdm9pZCB4
ODZfaW5pdF9ub29wKHZvaWQpOwpleHRlcm4gdm9pZCB4ODZfaW5pdF91aW50X25vb3AodW5zaWdu
ZWQgaW50IHVudXNlZCk7CmV4dGVybiBib29sIGJvb2xfeDg2X2luaXRfbm9vcCh2b2lkKTsKZXh0
ZXJuIHZvaWQgeDg2X29wX2ludF9ub29wKGludCBjcHUpOwpleHRlcm4gYm9vbCB4ODZfcG5wYmlv
c19kaXNhYmxlZCh2b2lkKTsKIyA4ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21wc3BlYy5oIiAy
CiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljZGVmLmgiIDEKIyAxNzkgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vYXBpY2RlZi5oIgpzdHJ1Y3QgbG9jYWxfYXBpYyB7CgogICAgICAgIHN0
cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDE7CgogICAg
ICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMDI7
CgogICAgICAgIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMSA6IDI0LAogICBw
aHlzX2FwaWNfaWQgOiA0LAogICBfX3Jlc2VydmVkXzIgOiA0OwogIHVuc2lnbmVkIGludCBfX3Jl
c2VydmVkWzNdOwogfSBpZDsKCiAgICAgICAgY29uc3QKIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50
IHZlcnNpb24gOiA4LAogICBfX3Jlc2VydmVkXzEgOiA4LAogICBtYXhfbHZ0IDogOCwKICAgX19y
ZXNlcnZlZF8yIDogODsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZFszXTsKIH0gdmVyc2lvbjsK
CiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZl
ZF8wMzsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19y
ZXNlcnZlZF8wNDsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07
IH0gX19yZXNlcnZlZF8wNTsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRbNF07IH0gX19yZXNlcnZlZF8wNjsKCiAgICAgICAgc3RydWN0IHsKICB1bnNpZ25lZCBpbnQg
cHJpb3JpdHkgOiA4LAogICBfX3Jlc2VydmVkXzEgOiAyNDsKICB1bnNpZ25lZCBpbnQgX19yZXNl
cnZlZF8yWzNdOwogfSB0cHI7CgogICAgICAgIGNvbnN0CiBzdHJ1Y3QgewogIHVuc2lnbmVkIGlu
dCBwcmlvcml0eSA6IDgsCiAgIF9fcmVzZXJ2ZWRfMSA6IDI0OwogIHVuc2lnbmVkIGludCBfX3Jl
c2VydmVkXzJbM107CiB9IGFwcjsKCiAgICAgICAgY29uc3QKIHN0cnVjdCB7CiAgdW5zaWduZWQg
aW50IHByaW9yaXR5IDogOCwKICAgX19yZXNlcnZlZF8xIDogMjQ7CiAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfMlszXTsKIH0gcHByOwoKICAgICAgICBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCBl
b2k7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbM107CiB9IGVvaTsKCiAgICAgICAgc3RydWN0
IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wNzsKCiAgICAgICAg
c3RydWN0IHsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8xIDogMjQsCiAgIGxvZ2ljYWxfZGVz
dCA6IDg7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfMlszXTsKIH0gbGRyOwoKICAgICAgICBz
dHJ1Y3QgewogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzEgOiAyOCwKICAgbW9kZWwgOiA0Owog
IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzJbM107CiB9IGRmcjsKCiAgICAgICAgc3RydWN0IHsK
ICB1bnNpZ25lZCBpbnQgc3B1cmlvdXNfdmVjdG9yIDogOCwKICAgYXBpY19lbmFibGVkIDogMSwK
ICAgZm9jdXNfY3B1IDogMSwKICAgX19yZXNlcnZlZF8yIDogMjI7CiAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfM1szXTsKIH0gc3ZyOwoKICAgICAgICBzdHJ1Y3QgewogICAgICAgICB1bnNpZ25l
ZCBpbnQgYml0ZmllbGQ7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbM107CiB9IGlzciBbOF07
CgogICAgICAgIHN0cnVjdCB7CiAgICAgICAgIHVuc2lnbmVkIGludCBiaXRmaWVsZDsKICB1bnNp
Z25lZCBpbnQgX19yZXNlcnZlZFszXTsKIH0gdG1yIFs4XTsKCiAgICAgICAgc3RydWN0IHsKICAg
ICAgICAgdW5zaWduZWQgaW50IGJpdGZpZWxkOwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzNd
OwogfSBpcnIgWzhdOwoKICAgICAgICB1bmlvbiB7CiAgc3RydWN0IHsKICAgdW5zaWduZWQgaW50
IHNlbmRfY3NfZXJyb3IgOiAxLAogICAgcmVjZWl2ZV9jc19lcnJvciA6IDEsCiAgICBzZW5kX2Fj
Y2VwdF9lcnJvciA6IDEsCiAgICByZWNlaXZlX2FjY2VwdF9lcnJvciA6IDEsCiAgICBfX3Jlc2Vy
dmVkXzEgOiAxLAogICAgc2VuZF9pbGxlZ2FsX3ZlY3RvciA6IDEsCiAgICByZWNlaXZlX2lsbGVn
YWxfdmVjdG9yIDogMSwKICAgIGlsbGVnYWxfcmVnaXN0ZXJfYWRkcmVzcyA6IDEsCiAgICBfX3Jl
c2VydmVkXzIgOiAyNDsKICAgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRfM1szXTsKICB9IGVycm9y
X2JpdHM7CiAgc3RydWN0IHsKICAgdW5zaWduZWQgaW50IGVycm9yczsKICAgdW5zaWduZWQgaW50
IF9fcmVzZXJ2ZWRfM1szXTsKICB9IGFsbF9lcnJvcnM7CiB9IGVzcjsKCiAgICAgICAgc3RydWN0
IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wODsKCiAgICAgICAg
c3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8wOTsKCiAg
ICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8x
MDsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0gX19yZXNl
cnZlZF8xMTsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRbNF07IH0g
X19yZXNlcnZlZF8xMjsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVzZXJ2ZWRb
NF07IH0gX19yZXNlcnZlZF8xMzsKCiAgICAgICAgc3RydWN0IHsgdW5zaWduZWQgaW50IF9fcmVz
ZXJ2ZWRbNF07IH0gX19yZXNlcnZlZF8xNDsKCiAgICAgICAgc3RydWN0IHsKICB1bnNpZ25lZCBp
bnQgdmVjdG9yIDogOCwKICAgZGVsaXZlcnlfbW9kZSA6IDMsCiAgIGRlc3RpbmF0aW9uX21vZGUg
OiAxLAogICBkZWxpdmVyeV9zdGF0dXMgOiAxLAogICBfX3Jlc2VydmVkXzEgOiAxLAogICBsZXZl
bCA6IDEsCiAgIHRyaWdnZXIgOiAxLAogICBfX3Jlc2VydmVkXzIgOiAyLAogICBzaG9ydGhhbmQg
OiAyLAogICBfX3Jlc2VydmVkXzMgOiAxMjsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF80WzNd
OwogfSBpY3IxOwoKICAgICAgICBzdHJ1Y3QgewogIHVuaW9uIHsKICAgdW5zaWduZWQgaW50IF9f
cmVzZXJ2ZWRfMSA6IDI0LAogICAgcGh5c19kZXN0IDogNCwKICAgIF9fcmVzZXJ2ZWRfMiA6IDQ7
CiAgIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzMgOiAyNCwKICAgIGxvZ2ljYWxfZGVzdCA6IDg7
CiAgfSBkZXN0OwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzRbM107CiB9IGljcjI7CgogICAg
ICAgIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCiAgIF9fcmVzZXJ2ZWRfMSA6
IDQsCiAgIGRlbGl2ZXJ5X3N0YXR1cyA6IDEsCiAgIF9fcmVzZXJ2ZWRfMiA6IDMsCiAgIG1hc2sg
OiAxLAogICB0aW1lcl9tb2RlIDogMSwKICAgX19yZXNlcnZlZF8zIDogMTQ7CiAgdW5zaWduZWQg
aW50IF9fcmVzZXJ2ZWRfNFszXTsKIH0gbHZ0X3RpbWVyOwoKICAgICAgICBzdHJ1Y3QgewogIHVu
c2lnbmVkIGludCB2ZWN0b3IgOiA4LAogICBkZWxpdmVyeV9tb2RlIDogMywKICAgX19yZXNlcnZl
ZF8xIDogMSwKICAgZGVsaXZlcnlfc3RhdHVzIDogMSwKICAgX19yZXNlcnZlZF8yIDogMywKICAg
bWFzayA6IDEsCiAgIF9fcmVzZXJ2ZWRfMyA6IDE1OwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVk
XzRbM107CiB9IGx2dF90aGVybWFsOwoKICAgICAgICBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCB2
ZWN0b3IgOiA4LAogICBkZWxpdmVyeV9tb2RlIDogMywKICAgX19yZXNlcnZlZF8xIDogMSwKICAg
ZGVsaXZlcnlfc3RhdHVzIDogMSwKICAgX19yZXNlcnZlZF8yIDogMywKICAgbWFzayA6IDEsCiAg
IF9fcmVzZXJ2ZWRfMyA6IDE1OwogIHVuc2lnbmVkIGludCBfX3Jlc2VydmVkXzRbM107CiB9IGx2
dF9wYzsKCiAgICAgICAgc3RydWN0IHsKICB1bnNpZ25lZCBpbnQgdmVjdG9yIDogOCwKICAgZGVs
aXZlcnlfbW9kZSA6IDMsCiAgIF9fcmVzZXJ2ZWRfMSA6IDEsCiAgIGRlbGl2ZXJ5X3N0YXR1cyA6
IDEsCiAgIHBvbGFyaXR5IDogMSwKICAgcmVtb3RlX2lyciA6IDEsCiAgIHRyaWdnZXIgOiAxLAog
ICBtYXNrIDogMSwKICAgX19yZXNlcnZlZF8yIDogMTU7CiAgdW5zaWduZWQgaW50IF9fcmVzZXJ2
ZWRfM1szXTsKIH0gbHZ0X2xpbnQwOwoKICAgICAgICBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCB2
ZWN0b3IgOiA4LAogICBkZWxpdmVyeV9tb2RlIDogMywKICAgX19yZXNlcnZlZF8xIDogMSwKICAg
ZGVsaXZlcnlfc3RhdHVzIDogMSwKICAgcG9sYXJpdHkgOiAxLAogICByZW1vdGVfaXJyIDogMSwK
ICAgdHJpZ2dlciA6IDEsCiAgIG1hc2sgOiAxLAogICBfX3Jlc2VydmVkXzIgOiAxNTsKICB1bnNp
Z25lZCBpbnQgX19yZXNlcnZlZF8zWzNdOwogfSBsdnRfbGludDE7CgogICAgICAgIHN0cnVjdCB7
CiAgdW5zaWduZWQgaW50IHZlY3RvciA6IDgsCiAgIF9fcmVzZXJ2ZWRfMSA6IDQsCiAgIGRlbGl2
ZXJ5X3N0YXR1cyA6IDEsCiAgIF9fcmVzZXJ2ZWRfMiA6IDMsCiAgIG1hc2sgOiAxLAogICBfX3Jl
c2VydmVkXzMgOiAxNTsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF80WzNdOwogfSBsdnRfZXJy
b3I7CgogICAgICAgIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGluaXRpYWxfY291bnQ7CiAgdW5z
aWduZWQgaW50IF9fcmVzZXJ2ZWRfMlszXTsKIH0gdGltZXJfaWNyOwoKICAgICAgICBjb25zdAog
c3RydWN0IHsKICB1bnNpZ25lZCBpbnQgY3Vycl9jb3VudDsKICB1bnNpZ25lZCBpbnQgX19yZXNl
cnZlZF8yWzNdOwogfSB0aW1lcl9jY3I7CgogICAgICAgIHN0cnVjdCB7IHVuc2lnbmVkIGludCBf
X3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTY7CgogICAgICAgIHN0cnVjdCB7IHVuc2lnbmVk
IGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTc7CgogICAgICAgIHN0cnVjdCB7IHVu
c2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTg7CgogICAgICAgIHN0cnVj
dCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMTk7CgogICAgICAg
IHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGRpdmlzb3IgOiA0LAogICBfX3Jlc2VydmVkXzEgOiAy
ODsKICB1bnNpZ25lZCBpbnQgX19yZXNlcnZlZF8yWzNdOwogfSB0aW1lcl9kY3I7CgogICAgICAg
IHN0cnVjdCB7IHVuc2lnbmVkIGludCBfX3Jlc2VydmVkWzRdOyB9IF9fcmVzZXJ2ZWRfMjA7Cgp9
IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIyA0MzUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YXBpY2RlZi5oIgplbnVtIGlvYXBpY19pcnFfZGVzdGluYXRpb25fdHlwZXMgewogZGVzdF9GaXhl
ZCA9IDAsCiBkZXN0X0xvd2VzdFByaW8gPSAxLAogZGVzdF9TTUkgPSAyLAogZGVzdF9fcmVzZXJ2
ZWRfMSA9IDMsCiBkZXN0X05NSSA9IDQsCiBkZXN0X0lOSVQgPSA1LAogZGVzdF9fcmVzZXJ2ZWRf
MiA9IDYsCiBkZXN0X0V4dElOVCA9IDcKfTsKIyA5ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21w
c3BlYy5oIiAyCgpleHRlcm4gaW50IHBpY19tb2RlOwojIDQwICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL21wc3BlYy5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBtcF9idXNfbm90X3BjaVsoKCgyNTYp
ICsgKChzaXplb2YobG9uZykgKiA4KSkgLSAxKSAvICgoc2l6ZW9mKGxvbmcpICogOCkpKV07Cgpl
eHRlcm4gdW5zaWduZWQgaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZDsKZXh0ZXJuIHU4IGJv
b3RfY3B1X2FwaWNfdmVyc2lvbjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbXBfbGFwaWNfYWRkcjsK
CgpleHRlcm4gaW50IHNtcF9mb3VuZF9jb25maWc7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGdldF9zbXBfY29uZmlnKHZv
aWQpCnsKIHg4Nl9pbml0Lm1wcGFyc2UuZ2V0X3NtcF9jb25maWcoMCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZWFybHlf
Z2V0X3NtcF9jb25maWcodm9pZCkKewogeDg2X2luaXQubXBwYXJzZS5nZXRfc21wX2NvbmZpZygx
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBmaW5kX3NtcF9jb25maWcodm9pZCkKewogeDg2X2luaXQubXBwYXJzZS5maW5k
X3NtcF9jb25maWcoKTsKfQoKCmV4dGVybiB2b2lkIGU4MjBfX21lbWJsb2NrX2FsbG9jX3Jlc2Vy
dmVkX21wY19uZXcodm9pZCk7CmV4dGVybiBpbnQgZW5hYmxlX3VwZGF0ZV9tcHRhYmxlOwpleHRl
cm4gaW50IGRlZmF1bHRfbXBjX2FwaWNfaWQoc3RydWN0IG1wY19jcHUgKm0pOwpleHRlcm4gdm9p
ZCBkZWZhdWx0X3NtcF9yZWFkX21wY19vZW0oc3RydWN0IG1wY190YWJsZSAqbXBjKTsKCmV4dGVy
biB2b2lkIGRlZmF1bHRfbXBjX29lbV9idXNfaW5mbyhzdHJ1Y3QgbXBjX2J1cyAqbSwgY2hhciAq
c3RyKTsKCgoKZXh0ZXJuIHZvaWQgZGVmYXVsdF9maW5kX3NtcF9jb25maWcodm9pZCk7CmV4dGVy
biB2b2lkIGRlZmF1bHRfZ2V0X3NtcF9jb25maWcodW5zaWduZWQgaW50IGVhcmx5KTsKIyA4OSAi
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tcHNwZWMuaCIKaW50IGdlbmVyaWNfcHJvY2Vzc29yX2lu
Zm8oaW50IGFwaWNpZCwgaW50IHZlcnNpb24pOwoKCgpzdHJ1Y3QgcGh5c2lkX21hc2sgewogdW5z
aWduZWQgbG9uZyBtYXNrWygoKDMyNzY4KSArICgoc2l6ZW9mKGxvbmcpICogOCkpIC0gMSkgLyAo
KHNpemVvZihsb25nKSAqIDgpKSldOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgcGh5c2lkX21hc2sgcGh5
c2lkX21hc2tfdDsKIyAxMzIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXBzcGVjLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcgcGh5c2lkc19jb2VyY2UocGh5c2lkX21hc2tfdCAqbWFwKQp7CiByZXR1cm4gbWFw
LT5tYXNrWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHBoeXNpZHNfcHJvbW90ZSh1bnNpZ25lZCBsb25nIHBoeXNpZHMs
IHBoeXNpZF9tYXNrX3QgKm1hcCkKewogYml0bWFwX3plcm8oKCptYXApLm1hc2ssIDMyNzY4KTsK
IG1hcC0+bWFza1swXSA9IHBoeXNpZHM7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGh5c2lkX3NldF9tYXNrX29mX3BoeXNp
ZChpbnQgcGh5c2lkLCBwaHlzaWRfbWFza190ICptYXApCnsKIGJpdG1hcF96ZXJvKCgqbWFwKS5t
YXNrLCAzMjc2OCk7CiBzZXRfYml0KHBoeXNpZCwgKCptYXApLm1hc2spOwp9CgoKCgpleHRlcm4g
cGh5c2lkX21hc2tfdCBwaHlzX2NwdV9wcmVzZW50X21hcDsKIyAxMyAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zbXAuaCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oIiAxCiMg
MTEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oIgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vZml4bWFwLmgiIDEKIyAyOSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIK
IyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIgMQojIDkgIi4vYXJjaC94ODYvaW5j
bHVkZS9hc20vYWNwaS5oIgojIDEgIi4vaW5jbHVkZS9hY3BpL3BkY19pbnRlbC5oIiAxCiMgMTAg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIiAyCgojIDEgIi4vYXJjaC94ODYvaW5jbHVk
ZS9hc20vbnVtYS5oIiAxCgoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90b3BvbG9n
eS5oIiAxCiMgODUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG51bWFf
bm9kZV9pZCh2b2lkKQp7CiByZXR1cm4gMDsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBlYXJseV9jcHVfdG9fbm9kZShp
bnQgY3B1KQp7CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKHZv
aWQpIHsgfQoKCgojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oIiAxCiMgMTA0
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RvcG9sb2d5LmgiIDIKCmV4dGVybiBjb25zdCBzdHJ1
Y3QgY3B1bWFzayAqY3B1X2NvcmVncm91cF9tYXNrKGludCBjcHUpOwojIDExOCAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS90b3BvbG9neS5oIgpleHRlcm4gdW5zaWduZWQgaW50IF9fbWF4X2xvZ2lj
YWxfcGFja2FnZXM7CgoKZXh0ZXJuIHVuc2lnbmVkIGludCBfX21heF9kaWVfcGVyX3BhY2thZ2U7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgdG9wb2xvZ3lfbWF4X2RpZV9wZXJfcGFja2FnZSh2b2lkKQp7CiByZXR1cm4gX19tYXhf
ZGllX3Blcl9wYWNrYWdlOwp9CgpleHRlcm4gaW50IF9fbWF4X3NtdF90aHJlYWRzOwoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHRv
cG9sb2d5X21heF9zbXRfdGhyZWFkcyh2b2lkKQp7CiByZXR1cm4gX19tYXhfc210X3RocmVhZHM7
Cn0KCmludCB0b3BvbG9neV91cGRhdGVfcGFja2FnZV9tYXAodW5zaWduZWQgaW50IGFwaWNpZCwg
dW5zaWduZWQgaW50IGNwdSk7CmludCB0b3BvbG9neV91cGRhdGVfZGllX21hcCh1bnNpZ25lZCBp
bnQgZGllaWQsIHVuc2lnbmVkIGludCBjcHUpOwppbnQgdG9wb2xvZ3lfcGh5c190b19sb2dpY2Fs
X3BrZyh1bnNpZ25lZCBpbnQgcGtnKTsKaW50IHRvcG9sb2d5X3BoeXNfdG9fbG9naWNhbF9kaWUo
dW5zaWduZWQgaW50IGRpZSwgdW5zaWduZWQgaW50IGNwdSk7CmJvb2wgdG9wb2xvZ3lfaXNfcHJp
bWFyeV90aHJlYWQodW5zaWduZWQgaW50IGNwdSk7CmJvb2wgdG9wb2xvZ3lfc210X3N1cHBvcnRl
ZCh2b2lkKTsKIyAxNTYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBh
cmNoX2ZpeF9waHlzX3BhY2thZ2VfaWQoaW50IG51bSwgdTMyIHNsb3QpCnsKfQoKc3RydWN0IHBj
aV9idXM7CmludCB4ODZfcGNpX3Jvb3RfYnVzX25vZGUoaW50IGJ1cyk7CnZvaWQgeDg2X3BjaV9y
b290X2J1c19yZXNvdXJjZXMoaW50IGJ1cywgc3RydWN0IGxpc3RfaGVhZCAqcmVzb3VyY2VzKTsK
CmV4dGVybiBib29sIHg4Nl90b3BvbG9neV91cGRhdGU7CgoKCgpleHRlcm4gX19hdHRyaWJ1dGVf
Xygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIi4ucmVhZF9tb3N0bHkiKSkpIF9fdHlwZW9mX18o
aW50KSBzY2hlZF9jb3JlX3ByaW9yaXR5OwpleHRlcm4gdW5zaWduZWQgaW50IF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIHN5c2N0bF9zY2hlZF9pdG10
X2VuYWJsZWQ7CgoKdm9pZCBzY2hlZF9zZXRfaXRtdF9jb3JlX3ByaW8oaW50IHByaW8sIGludCBj
b3JlX2NwdSk7CgoKaW50IHNjaGVkX3NldF9pdG10X3N1cHBvcnQodm9pZCk7CgoKdm9pZCBzY2hl
ZF9jbGVhcl9pdG10X3N1cHBvcnQodm9pZCk7CiMgOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9u
dW1hLmgiIDIKIyA0NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9udW1hLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2Fw
aWNpZF90b19ub2RlKGludCBhcGljaWQsIHMxNiBub2RlKQp7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBudW1hX2NwdV9ub2Rl
KGludCBjcHUpCnsKIHJldHVybiAoLTEpOwp9CiMgNjYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bnVtYS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpIHsgfQpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG51
bWFfY2xlYXJfbm9kZShpbnQgY3B1KSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbml0X2NwdV90b19ub2RlKHZvaWQpIHsg
fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIG51bWFfYWRkX2NwdShpbnQgY3B1KSB7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBudW1hX3JlbW92ZV9jcHUoaW50
IGNwdSkgeyB9CiMgMTIgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWNwaS5oIiAyCiMgMSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIgMQojIDEzICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2FjcGkuaCIgMgojIDIzICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKZXh0ZXJu
IGludCBhY3BpX2xhcGljOwpleHRlcm4gaW50IGFjcGlfaW9hcGljOwpleHRlcm4gaW50IGFjcGlf
bm9pcnE7CmV4dGVybiBpbnQgYWNwaV9zdHJpY3Q7CmV4dGVybiBpbnQgYWNwaV9kaXNhYmxlZDsK
ZXh0ZXJuIGludCBhY3BpX3BjaV9kaXNhYmxlZDsKZXh0ZXJuIGludCBhY3BpX3NraXBfdGltZXJf
b3ZlcnJpZGU7CmV4dGVybiBpbnQgYWNwaV91c2VfdGltZXJfb3ZlcnJpZGU7CmV4dGVybiBpbnQg
YWNwaV9maXhfcGluMl9wb2xhcml0eTsKZXh0ZXJuIGludCBhY3BpX2Rpc2FibGVfY21jZmY7Cgpl
eHRlcm4gdTggYWNwaV9zY2lfZmxhZ3M7CmV4dGVybiB1MzIgYWNwaV9zY2lfb3ZlcnJpZGVfZ3Np
Owp2b2lkIGFjcGlfcGljX3NjaV9zZXRfdHJpZ2dlcih1bnNpZ25lZCBpbnQsIHUxNik7CgpzdHJ1
Y3QgZGV2aWNlOwoKZXh0ZXJuIGludCAoKl9fYWNwaV9yZWdpc3Rlcl9nc2kpKHN0cnVjdCBkZXZp
Y2UgKmRldiwgdTMyIGdzaSwKICAgICAgaW50IHRyaWdnZXIsIGludCBwb2xhcml0eSk7CmV4dGVy
biB2b2lkICgqX19hY3BpX3VucmVnaXN0ZXJfZ3NpKSh1MzIgZ3NpKTsKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGlzYWJsZV9h
Y3BpKHZvaWQpCnsKIGFjcGlfZGlzYWJsZWQgPSAxOwogYWNwaV9wY2lfZGlzYWJsZWQgPSAxOwog
YWNwaV9ub2lycSA9IDE7Cn0KCmV4dGVybiBpbnQgYWNwaV9nc2lfdG9faXJxKHUzMiBnc2ksIHVu
c2lnbmVkIGludCAqaXJxKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYWNwaV9ub2lycV9zZXQodm9pZCkgeyBhY3BpX25vaXJx
ID0gMTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGFjcGlfZGlzYWJsZV9wY2kodm9pZCkKewogYWNwaV9wY2lfZGlzYWJsZWQg
PSAxOwogYWNwaV9ub2lycV9zZXQoKTsKfQoKCmV4dGVybiBpbnQgKCphY3BpX3N1c3BlbmRfbG93
bGV2ZWwpKHZvaWQpOwoKCnVuc2lnbmVkIGxvbmcgYWNwaV9nZXRfd2FrZXVwX2FkZHJlc3Modm9p
ZCk7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1bnNpZ25lZCBpbnQgYWNwaV9wcm9jZXNzb3JfY3N0YXRlX2NoZWNrKHVuc2lnbmVk
IGludCBtYXhfY3N0YXRlKQp7CgoKCgoKCiBpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gMHgwRiAm
JgogICAgIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSAyICYmCiAgICAgYm9vdF9jcHVfZGF0
YS54ODZfbW9kZWwgPD0gMHgwNSAmJgogICAgIGJvb3RfY3B1X2RhdGEueDg2X3N0ZXBwaW5nIDwg
MHgwQSkKICByZXR1cm4gMTsKIGVsc2UgaWYgKChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTkqMzIg
KyAoNCkpKSAmJiAoICgoKCgxOSozMiArICg0KSkpPj41KT09KDApICYmICgxVUw8PCgoKDE5KjMy
ICsgKDQpKSkmMzEpICYgKCgxPDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisgNSkg
JiAzMSkpfCgxPDwoKCAwKjMyKyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8MHwo
MTw8KCggMCozMisyNCkgJiAzMSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAwKjMy
KzI1KSAmIDMxKSl8KDE8PCgoIDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKDE5KjMyICsgKDQp
KSk+PjUpPT0oMSkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDEqMzIr
MjkpICYgMzEpKXwwKSApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgyKSAmJiAoMVVMPDwo
KCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oMykg
JiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAoKDE8PCgoIDMqMzIrMjApICYgMzEpKSkg
KSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkp
KSYzMSkgJiAoMCkgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oNSkgJiYgKDFVTDw8KCgo
MTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDYpICYm
ICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+
NSk9PSg3KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMy
ICsgKDQpKSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8
ICgoKCgxOSozMiArICg0KSkpPj41KT09KDkpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEp
ICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoMTkqMzIg
KyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDExKSAmJiAoMVVM
PDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0o
MTIpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAo
NCkpKT4+NSk9PSgxMykgJiYgKDFVTDw8KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgo
KCgxOSozMiArICg0KSkpPj41KT09KDE0KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAm
IDAgKSkgfHwgKCgoKDE5KjMyICsgKDQpKSk+PjUpPT0oMTUpICYmICgxVUw8PCgoKDE5KjMyICsg
KDQpKSkmMzEpICYgMCApKSB8fCAoKCgoMTkqMzIgKyAoNCkpKT4+NSk9PSgxNikgJiYgKDFVTDw8
KCgoMTkqMzIgKyAoNCkpKSYzMSkgJiAwICkpIHx8ICgoKCgxOSozMiArICg0KSkpPj41KT09KDE3
KSAmJiAoMVVMPDwoKCgxOSozMiArICg0KSkpJjMxKSAmIDAgKSkgfHwgKCgoKDE5KjMyICsgKDQp
KSk+PjUpPT0oMTgpICYmICgxVUw8PCgoKDE5KjMyICsgKDQpKSkmMzEpICYgMCApKSB8fCAoKGlu
dCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQpKHNp
emVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2JpdCgo
MTkqMzIgKyAoNCkpLCAodW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZfY2Fw
YWJpbGl0eSkpKSkKICByZXR1cm4gMTsKIGVsc2UKICByZXR1cm4gbWF4X2NzdGF0ZTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBhcmNoX2hhc19hY3BpX3BkYyh2b2lkKQp7CiBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmKCoo
eyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2luZm8pKSAr
IDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNp
Z25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2Yo
KigoJihjcHVfaW5mbykpKSkgKikoKCYoY3B1X2luZm8pKSkpKTsgKHR5cGVvZigodHlwZW9mKCoo
KCYoY3B1X2luZm8pKSkpICopKCgmKGNwdV9pbmZvKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1
X29mZnNldFsoMCldKSkpKTsgfSk7IH0pKTsKIHJldHVybiAoYy0+eDg2X3ZlbmRvciA9PSAwIHx8
CiAgYy0+eDg2X3ZlbmRvciA9PSA1KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX2FjcGlfc2V0X3BkY19iaXRzKHUz
MiAqYnVmKQp7CiBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmKCooeyBkbyB7IGNvbnN0IHZvaWQg
Kl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2luZm8pKSArIDApKSgodm9pZCAqKTApOyAo
dm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBf
X2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfaW5mbykpKSkg
KikoKCYoY3B1X2luZm8pKSkpKTsgKHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2luZm8pKSkpICop
KCgmKGNwdV9pbmZvKSkpKSkgKF9fcHRyICsgKCgoX19wZXJfY3B1X29mZnNldFsoMCldKSkpKTsg
fSk7IH0pKTsKCiBidWZbMl0gfD0gKCgweDAwMTApIHwgKDB4MDAwOCkgfCAoMHgwMDAyKSB8ICgw
eDAxMDApIHwgKDB4MDIwMCkpOwoKIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AoKCA0KjMyKyA3
KSkgJiYgKCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgwKSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMx
KSAmICgoMTw8KCggMCozMisgMCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrIDUpICYgMzEpKXwoMTw8
KCggMCozMisgNikgJiAzMSkpfCAoMTw8KCggMCozMisgOCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIr
MjQpICYgMzEpKXwoMTw8KCggMCozMisxNSkgJiAzMSkpfCAoMTw8KCggMCozMisyNSkgJiAzMSkp
fCgxPDwoKCAwKjMyKzI2KSAmIDMxKSkpICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDEpICYm
ICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgKCgxPDwoKCAxKjMyKzI5KSAmIDMxKSl8MCkgKSkg
fHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMikgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAw
ICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDMpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEp
ICYgKCgxPDwoKCAzKjMyKzIwKSAmIDMxKSkpICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDQp
ICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgKDApICkpIHx8ICgoKCggNCozMisgNykpPj41
KT09KDUpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcp
KT4+NSk9PSg2KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMy
KyA3KSk+PjUpPT0oNykgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCgg
NCozMisgNykpPj41KT09KDgpICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAo
KCgoIDQqMzIrIDcpKT4+NSk9PSg5KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkg
fHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTApICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYg
MCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgxMSkgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYz
MSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDEyKSAmJiAoMVVMPDwoKCggNCozMisg
NykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTMpICYmICgxVUw8PCgoKCA0
KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9PSgxNCkgJiYgKDFVTDw8
KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykpPj41KT09KDE1KSAmJiAo
MVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyA3KSk+PjUpPT0oMTYp
ICYmICgxVUw8PCgoKCA0KjMyKyA3KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDcpKT4+NSk9
PSgxNykgJiYgKDFVTDw8KCgoIDQqMzIrIDcpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgNykp
Pj41KT09KDE4KSAmJiAoMVVMPDwoKCggNCozMisgNykpJjMxKSAmIDAgKSkgfHwgKChpbnQpKHNp
emVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpIHx8ICgoaW50KShzaXplb2Yo
c3RydWN0IHsgaW50OigtISEoMTkgIT0gMTkpKTsgfSkpKSkgPyAxIDogdGVzdF9iaXQoKCA0KjMy
KyA3KSwgKHVuc2lnbmVkIGxvbmcgKikoKGMpLT54ODZfY2FwYWJpbGl0eSkpKSkKICBidWZbMl0g
fD0gKCgweDAwMDgpIHwgKDB4MDAwMikgfCAoMHgwMDIwKSB8ICgweDA4MDApIHwgKDB4MDAwMSkp
OwoKIGlmICgoX19idWlsdGluX2NvbnN0YW50X3AoKCAwKjMyKzIyKSkgJiYgKCAoKCgoIDAqMzIr
MjIpKT4+NSk9PSgwKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmICgoMTw8KCggMCozMisg
MCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrIDUpICYgMzEpKXwoMTw8KCggMCozMisgNikgJiAzMSkp
fCAoMTw8KCggMCozMisgOCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrMjQpICYgMzEpKXwoMTw8KCgg
MCozMisxNSkgJiAzMSkpfCAoMTw8KCggMCozMisyNSkgJiAzMSkpfCgxPDwoKCAwKjMyKzI2KSAm
IDMxKSkpICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDEpICYmICgxVUw8PCgoKCAwKjMyKzIy
KSkmMzEpICYgKCgxPDwoKCAxKjMyKzI5KSAmIDMxKSl8MCkgKSkgfHwgKCgoKCAwKjMyKzIyKSk+
PjUpPT0oMikgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisy
MikpPj41KT09KDMpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgKCgxPDwoKCAzKjMyKzIw
KSAmIDMxKSkpICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDQpICYmICgxVUw8PCgoKCAwKjMy
KzIyKSkmMzEpICYgKDApICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDUpICYmICgxVUw8PCgo
KCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSg2KSAmJiAoMVVM
PDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oNykgJiYg
KDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDgp
ICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9
PSg5KSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+
PjUpPT0oMTApICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIr
MjIpKT4+NSk9PSgxMSkgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCgg
MCozMisyMikpPj41KT09KDEyKSAmJiAoMVVMPDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwg
KCgoKCAwKjMyKzIyKSk+PjUpPT0oMTMpICYmICgxVUw8PCgoKCAwKjMyKzIyKSkmMzEpICYgMCAp
KSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgxNCkgJiYgKDFVTDw8KCgoIDAqMzIrMjIpKSYzMSkg
JiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDE1KSAmJiAoMVVMPDwoKCggMCozMisyMikp
JjMxKSAmIDAgKSkgfHwgKCgoKCAwKjMyKzIyKSk+PjUpPT0oMTYpICYmICgxVUw8PCgoKCAwKjMy
KzIyKSkmMzEpICYgMCApKSB8fCAoKCgoIDAqMzIrMjIpKT4+NSk9PSgxNykgJiYgKDFVTDw8KCgo
IDAqMzIrMjIpKSYzMSkgJiAwICkpIHx8ICgoKCggMCozMisyMikpPj41KT09KDE4KSAmJiAoMVVM
PDwoKCggMCozMisyMikpJjMxKSAmIDAgKSkgfHwgKChpbnQpKHNpemVvZihzdHJ1Y3QgeyBpbnQ6
KC0hISgxOSAhPSAxOSkpOyB9KSkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEo
MTkgIT0gMTkpKTsgfSkpKSkgPyAxIDogdGVzdF9iaXQoKCAwKjMyKzIyKSwgKHVuc2lnbmVkIGxv
bmcgKikoKGMpLT54ODZfY2FwYWJpbGl0eSkpKSkKICBidWZbMl0gfD0gKDB4MDAwNCk7CgoKCgog
aWYgKCEoX19idWlsdGluX2NvbnN0YW50X3AoKCA0KjMyKyAzKSkgJiYgKCAoKCgoIDQqMzIrIDMp
KT4+NSk9PSgwKSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmICgoMTw8KCggMCozMisgMCkg
JiAzMSkpfDB8KDE8PCgoIDAqMzIrIDUpICYgMzEpKXwoMTw8KCggMCozMisgNikgJiAzMSkpfCAo
MTw8KCggMCozMisgOCkgJiAzMSkpfDB8KDE8PCgoIDAqMzIrMjQpICYgMzEpKXwoMTw8KCggMCoz
MisxNSkgJiAzMSkpfCAoMTw8KCggMCozMisyNSkgJiAzMSkpfCgxPDwoKCAwKjMyKzI2KSAmIDMx
KSkpICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDEpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkm
MzEpICYgKCgxPDwoKCAxKjMyKzI5KSAmIDMxKSl8MCkgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUp
PT0oMikgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykp
Pj41KT09KDMpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgKCgxPDwoKCAzKjMyKzIwKSAm
IDMxKSkpICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDQpICYmICgxVUw8PCgoKCA0KjMyKyAz
KSkmMzEpICYgKDApICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDUpICYmICgxVUw8PCgoKCA0
KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSg2KSAmJiAoMVVMPDwo
KCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oNykgJiYgKDFV
TDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDgpICYm
ICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSg5
KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUp
PT0oMTApICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMp
KT4+NSk9PSgxMSkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCoz
MisgMykpPj41KT09KDEyKSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKCgo
KCA0KjMyKyAzKSk+PjUpPT0oMTMpICYmICgxVUw8PCgoKCA0KjMyKyAzKSkmMzEpICYgMCApKSB8
fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgxNCkgJiYgKDFVTDw8KCgoIDQqMzIrIDMpKSYzMSkgJiAw
ICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDE1KSAmJiAoMVVMPDwoKCggNCozMisgMykpJjMx
KSAmIDAgKSkgfHwgKCgoKCA0KjMyKyAzKSk+PjUpPT0oMTYpICYmICgxVUw8PCgoKCA0KjMyKyAz
KSkmMzEpICYgMCApKSB8fCAoKCgoIDQqMzIrIDMpKT4+NSk9PSgxNykgJiYgKDFVTDw8KCgoIDQq
MzIrIDMpKSYzMSkgJiAwICkpIHx8ICgoKCggNCozMisgMykpPj41KT09KDE4KSAmJiAoMVVMPDwo
KCggNCozMisgMykpJjMxKSAmIDAgKSkgfHwgKChpbnQpKHNpemVvZihzdHJ1Y3QgeyBpbnQ6KC0h
ISgxOSAhPSAxOSkpOyB9KSkpIHx8ICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoMTkg
IT0gMTkpKTsgfSkpKSkgPyAxIDogdGVzdF9iaXQoKCA0KjMyKyAzKSwgKHVuc2lnbmVkIGxvbmcg
KikoKGMpLT54ODZfY2FwYWJpbGl0eSkpKSkKICBidWZbMl0gJj0gfigoMHgwMjAwKSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgYWNwaV9oYXNfY3B1X2luX21hZHQodm9pZCkKewogcmV0dXJuICEhYWNwaV9sYXBpYzsKfQoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgYWNwaV9hcmNoX3NldF9yb290X3BvaW50ZXIodTY0IGFkZHIpCnsKIHg4Nl9pbml0LmFj
cGkuc2V0X3Jvb3RfcG9pbnRlcihhZGRyKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBhY3BpX2FyY2hfZ2V0X3Jvb3RfcG9p
bnRlcih2b2lkKQp7CiByZXR1cm4geDg2X2luaXQuYWNwaS5nZXRfcm9vdF9wb2ludGVyKCk7Cn0K
CnZvaWQgYWNwaV9nZW5lcmljX3JlZHVjZWRfaHdfaW5pdCh2b2lkKTsKCnZvaWQgeDg2X2RlZmF1
bHRfc2V0X3Jvb3RfcG9pbnRlcih1NjQgYWRkcik7CnU2NCB4ODZfZGVmYXVsdF9nZXRfcm9vdF9w
b2ludGVyKHZvaWQpOwojIDE2NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hY3BpLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBncHJv
dF90IGFyY2hfYXBlaV9nZXRfbWVtX2F0dHJpYnV0ZShwaHlzX2FkZHJfdCBhZGRyKQp7CiMgMTgw
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FjcGkuaCIKIHJldHVybiAoKHBncHJvdF90KSB7ICgo
KCgoKHB0ZXZhbF90KSgxKSkgPDwgMCl8KCgocHRldmFsX3QpKDEpKSA8PCAxKXwgMHwoKChwdGV2
YWxfdCkoMSkpIDw8IDUpfCgoKHB0ZXZhbF90KSgxKSkgPDwgNjMpfCgoKHB0ZXZhbF90KSgxKSkg
PDwgNil8IDB8KCgocHRldmFsX3QpKDEpKSA8PCA4KSkgfCAwKSAmIF9fZGVmYXVsdF9rZXJuZWxf
cHRlX21hc2spIH0gKTsKfQojIDMwICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIiAy
CgoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3ZzeXNjYWxsLmgiIDEKCgoK
CmVudW0gdnN5c2NhbGxfbnVtIHsKIF9fTlJfdmdldHRpbWVvZmRheSwKIF9fTlJfdnRpbWUsCiBf
X05SX3ZnZXRjcHUsCn07CiMgMzcgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgiIDIK
IyA3NSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKZW51bSBmaXhlZF9hZGRyZXNz
ZXMgewoKCgoKIFZTWVNDQUxMX1BBR0UgPSAoKCgoKCgoLTEwVUwgPDwgMjApICsgKCgxVUwpIDw8
IDEyKSktMSkgfCAoKF9fdHlwZW9mX18oKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8PCAxMikpKSgo
MTw8MjEpLTEpKSkrMSkgLSAoKDFVTCkgPDwgMTIpKSAtICgtMTBVTCA8PCAyMCkpID4+IDEyLAoK
CiBGSVhfREJHUF9CQVNFLAogRklYX0VBUkxZQ09OX01FTV9CQVNFLAoKCgoKIEZJWF9BUElDX0JB
U0UsCgoKIEZJWF9JT19BUElDX0JBU0VfMCwKIEZJWF9JT19BUElDX0JBU0VfRU5EID0gRklYX0lP
X0FQSUNfQkFTRV8wICsgMTI4IC0gMSwKIyAxMDMgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZml4
bWFwLmgiCiBGSVhfUEFSQVZJUlRfQk9PVE1BUCwKCgoKCgoKCiBGSVhfQVBFSV9HSEVTX0lSUSwK
IEZJWF9BUEVJX0dIRVNfTk1JLAoKCiBfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2Vz
LAojIDEyNyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIKIEZJWF9CVE1BUF9FTkQg
PQogIChfX2VuZF9vZl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzIF4KICAgKF9fZW5kX29mX3Bl
cm1hbmVudF9maXhlZF9hZGRyZXNzZXMgKyAoNjQgKiA4KSAtIDEpKSAmCiAgLTUxMgogID8gX19l
bmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcyArICg2NCAqIDgpIC0KICAgIChfX2VuZF9v
Zl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzICYgKCg2NCAqIDgpIC0gMSkpCiAgOiBfX2VuZF9v
Zl9wZXJtYW5lbnRfZml4ZWRfYWRkcmVzc2VzLAogRklYX0JUTUFQX0JFR0lOID0gRklYX0JUTUFQ
X0VORCArICg2NCAqIDgpIC0gMSwKCgoKCgoKIF9fZW5kX29mX2ZpeGVkX2FkZHJlc3Nlcwp9OwoK
CmV4dGVybiB2b2lkIHJlc2VydmVfdG9wX2FkZHJlc3ModW5zaWduZWQgbG9uZyByZXNlcnZlKTsK
CgoKCgoKZXh0ZXJuIGludCBmaXhtYXBzX3NldDsKCmV4dGVybiBwdGVfdCAqa21hcF9wdGU7Cgpl
eHRlcm4gcHRlX3QgKnBrbWFwX3BhZ2VfdGFibGU7Cgp2b2lkIF9fbmF0aXZlX3NldF9maXhtYXAo
ZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwdGVfdCBwdGUpOwp2b2lkIG5hdGl2ZV9zZXRfZml4
bWFwKHVuc2lnbmVkIGlkeCwKICAgICAgICAgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgZmxh
Z3MpOwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwKICAgIHBo
eXNfYWRkcl90IHBoeXMsIHBncHJvdF90IGZsYWdzKQp7CiBuYXRpdmVfc2V0X2ZpeG1hcChpZHgs
IHBoeXMsIGZsYWdzKTsKfQojIDE4MSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCIK
dm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1
dGVfXygoX19jb2xkX18pKSAqZWFybHlfbWVtcmVtYXBfZW5jcnlwdGVkKHJlc291cmNlX3NpemVf
dCBwaHlzX2FkZHIsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpOwp2b2lkIF9fYXR0cmli
dXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRf
XykpICplYXJseV9tZW1yZW1hcF9lbmNyeXB0ZWRfd3AocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRk
ciwKICAgICAgdW5zaWduZWQgbG9uZyBzaXplKTsKdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rp
b25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSAqZWFybHlfbWVt
cmVtYXBfZGVjcnlwdGVkKHJlc291cmNlX3NpemVfdCBwaHlzX2FkZHIsCiAgICAgICAgICB1bnNp
Z25lZCBsb25nIHNpemUpOwp2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50
ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpICplYXJseV9tZW1yZW1hcF9kZWNyeXB0
ZWRfd3AocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwKICAgICAgdW5zaWduZWQgbG9uZyBzaXpl
KTsKCiMgMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL2ZpeG1hcC5oIiAxCiMgMzAgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9maXhtYXAuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18p
KSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2lnbmVkIGludCBpZHgpCnsKIGRv
IHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMzIodm9pZCkgX19hdHRyaWJ1dGVf
XygoX19lcnJvcl9fKCJCVUlMRF9CVUdfT04gZmFpbGVkOiAiICJpZHggPj0gX19lbmRfb2ZfZml4
ZWRfYWRkcmVzc2VzIikpKTsgaWYgKCEoIShpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2Vz
KSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzMyKCk7IH0gd2hpbGUgKDApOwogcmV0dXJuICgoKCgo
KCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwg
PDwgMjApICsgKCgxVUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikp
IC0gKChpZHgpIDw8IDEyKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgdmlydF90b19maXgoY29uc3QgdW5z
aWduZWQgbG9uZyB2YWRkcikKewogZG8geyBpZiAoX19idWlsdGluX2V4cGVjdCghISh2YWRkciA+
PSAoKCgoKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygo
LTEwVUwgPDwgMjApICsgKCgxVUwpIDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8
PCAxMikpIHx8IHZhZGRyIDwgKCgoKCgoKC0xMFVMIDw8IDIwKSArICgoMVVMKSA8PCAxMikpLTEp
IHwgKChfX3R5cGVvZl9fKCgtMTBVTCA8PCAyMCkgKyAoKDFVTCkgPDwgMTIpKSkoKDE8PDIxKS0x
KSkpKzEpIC0gKCgxVUwpIDw8IDEyKSkgLSAoX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJl
c3NlcyA8PCAxMikpKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQi
ICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wi
XG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRy
XG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAi
XHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBi
dWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJp
IiAoImluY2x1ZGUvYXNtLWdlbmVyaWMvZml4bWFwLmgiKSwgImkiICgzOCksICJpIiAoMCksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2
b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0
IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgxNykpOyB9
KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDAp
OyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiByZXR1cm4gKCgoKCgoKCgtMTBVTCA8PCAyMCkg
KyAoKDFVTCkgPDwgMTIpKS0xKSB8ICgoX190eXBlb2ZfXygoLTEwVUwgPDwgMjApICsgKCgxVUwp
IDw8IDEyKSkpKCgxPDwyMSktMSkpKSsxKSAtICgoMVVMKSA8PCAxMikpIC0gKCh2YWRkcikmKH4o
KCgxVUwpIDw8IDEyKS0xKSkpKSA+PiAxMik7Cn0KIyAxOTEgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vZml4bWFwLmgiIDIKCgoKCnZvaWQgX19lYXJseV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRk
cmVzc2VzIGlkeCwKICAgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgZmxhZ3MpOwojIDEyICIu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaCIgMgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9oYXJkaXJxLmgiIDEKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogdTE2IF9fc29mdGlycV9w
ZW5kaW5nOwoKCgogdW5zaWduZWQgaW50IF9fbm1pX2NvdW50OwoKIHVuc2lnbmVkIGludCBhcGlj
X3RpbWVyX2lycXM7CiB1bnNpZ25lZCBpbnQgaXJxX3NwdXJpb3VzX2NvdW50OwogdW5zaWduZWQg
aW50IGljcl9yZWFkX3JldHJ5X2NvdW50OwoKCiB1bnNpZ25lZCBpbnQga3ZtX3Bvc3RlZF9pbnRy
X2lwaXM7CiB1bnNpZ25lZCBpbnQga3ZtX3Bvc3RlZF9pbnRyX3dha2V1cF9pcGlzOwogdW5zaWdu
ZWQgaW50IGt2bV9wb3N0ZWRfaW50cl9uZXN0ZWRfaXBpczsKCiB1bnNpZ25lZCBpbnQgeDg2X3Bs
YXRmb3JtX2lwaXM7CiB1bnNpZ25lZCBpbnQgYXBpY19wZXJmX2lycXM7CiB1bnNpZ25lZCBpbnQg
YXBpY19pcnFfd29ya19pcnFzOwoKIHVuc2lnbmVkIGludCBpcnFfcmVzY2hlZF9jb3VudDsKIHVu
c2lnbmVkIGludCBpcnFfY2FsbF9jb3VudDsKCiB1bnNpZ25lZCBpbnQgaXJxX3RsYl9jb3VudDsK
CiB1bnNpZ25lZCBpbnQgaXJxX3RoZXJtYWxfY291bnQ7CgoKIHVuc2lnbmVkIGludCBpcnFfdGhy
ZXNob2xkX2NvdW50OwoKCiB1bnNpZ25lZCBpbnQgaXJxX2RlZmVycmVkX2Vycm9yX2NvdW50OwoK
CiB1bnNpZ25lZCBpbnQgaXJxX2h2X2NhbGxiYWNrX2NvdW50OwoKCiB1bnNpZ25lZCBpbnQgaXJx
X2h2X3JlZW5saWdodGVubWVudF9jb3VudDsKIHVuc2lnbmVkIGludCBoeXBlcnZfc3RpbWVyMF9j
b3VudDsKCn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkpKSBpcnFfY3B1
c3RhdF90OwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIi
KSkpIF9fdHlwZW9mX18oaXJxX2NwdXN0YXRfdCkgaXJxX3N0YXQgX19hdHRyaWJ1dGVfXygoX19h
bGlnbmVkX18oKDEgPDwgKDYpKSkpKTsKCgoKCgpleHRlcm4gdm9pZCBhY2tfYmFkX2lycSh1bnNp
Z25lZCBpbnQgaXJxKTsKCmV4dGVybiB1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50
IGNwdSk7CgoKZXh0ZXJuIHU2NCBhcmNoX2lycV9zdGF0KHZvaWQpOwojIDgwICIuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2hhcmRpcnEuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrdm1fc2V0X2NwdV9sMXRmX2ZsdXNoX2wxZCh2
b2lkKSB7IH0KIyAxNSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiIDIKIyA0NSAiLi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZ2VuZXJpY19hcGljX3Byb2JlKHZvaWQp
CnsKfQoKCgoKZXh0ZXJuIGludCBhcGljX3ZlcmJvc2l0eTsKZXh0ZXJuIGludCBsb2NhbF9hcGlj
X3RpbWVyX2MyX29rOwoKZXh0ZXJuIGludCBkaXNhYmxlX2FwaWM7CmV4dGVybiB1bnNpZ25lZCBp
bnQgbGFwaWNfdGltZXJfcGVyaW9kOwoKZXh0ZXJuIGVudW0gYXBpY19pbnRyX21vZGVfaWQgYXBp
Y19pbnRyX21vZGU7CmVudW0gYXBpY19pbnRyX21vZGVfaWQgewogQVBJQ19QSUMsCiBBUElDX1ZJ
UlRVQUxfV0lSRSwKIEFQSUNfVklSVFVBTF9XSVJFX05PX0NPTkZJRywKIEFQSUNfU1lNTUVUUklD
X0lPLAogQVBJQ19TWU1NRVRSSUNfSU9fTk9fUk9VVElORwp9OwoKCmV4dGVybiB2b2lkIF9faW5x
dWlyZV9yZW1vdGVfYXBpYyhpbnQgYXBpY2lkKTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZWZhdWx0X2lucXVpcmVf
cmVtb3RlX2FwaWMoaW50IGFwaWNpZCkKewogaWYgKGFwaWNfdmVyYm9zaXR5ID49IDIpCiAgX19p
bnF1aXJlX3JlbW90ZV9hcGljKGFwaWNpZCk7Cn0KIyA4OSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9hcGljLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgYXBpY19mcm9tX3NtcF9jb25maWcodm9pZCkKewogcmV0dXJuIHNtcF9m
b3VuZF9jb25maWcgJiYgIWRpc2FibGVfYXBpYzsKfQojIDEwMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9hcGljLmgiCmV4dGVybiBpbnQgc2V0dXBfcHJvZmlsaW5nX3RpbWVyKHVuc2lnbmVkIGlu
dCk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIG5hdGl2ZV9hcGljX21lbV93cml0ZSh1MzIgcmVnLCB1MzIgdikKewogdm9sYXRp
bGUgdTMyICphZGRyID0gKHZvbGF0aWxlIHUzMiAqKSgoZml4X3RvX3ZpcnQoRklYX0FQSUNfQkFT
RSkpICsgcmVnKTsKCiBhc20gX19pbmxpbmUgdm9sYXRpbGUgKCIjIEFMVDogb2xkbnN0clxuIiAi
NjYxOlxuXHQiICJtb3ZsICUwLCAlUDEiICJcbjY2MjpcbiIgIiMgQUxUOiBwYWRkaW5nXG4iICIu
c2tpcCAtKCgoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAiKSkg
PiAwKSAqICIgIigoIiAiNjY1IiIxIiJmLSIiNjY0IiIxIiJmIiAiKS0oIiAiNjYyYi02NjFiIiAi
KSksMHg5MFxuIiAiNjYzIiAiOlxuIiAiLnB1c2hzZWN0aW9uIC5hbHRpbnN0cnVjdGlvbnMsXCJh
XCJcbiIgIiAubG9uZyA2NjFiIC0gLlxuIiAiIC5sb25nICIgIjY2NCIiMSIiZiAtIC5cbiIgIiAu
d29yZCAiICIoMTkqMzIgKyAoNSkpIiAiXG4iICIgLmJ5dGUgIiAiNjYzIiJiLTY2MWIiICJcbiIg
IiAuYnl0ZSAiICI2NjUiIjEiImYtIiI2NjQiIjEiImYiICJcbiIgIiAuYnl0ZSAiICI2NjMiImIt
NjYyYiIgIlxuIiAiLnBvcHNlY3Rpb25cbiIgIi5wdXNoc2VjdGlvbiAuYWx0aW5zdHJfcmVwbGFj
ZW1lbnQsIFwiYXhcIlxuIiAiIyBBTFQ6IHJlcGxhY2VtZW50ICIgIjEiICJcbiIgIjY2NCIiMSIi
OlxuXHQiICJ4Y2hnbCAlMCwgJVAxIiAiXG4iICI2NjUiIjEiICI6XG4iICIucG9wc2VjdGlvblxu
IiA6ICI9ciIgKHYpLCAiPW0iICgqYWRkcikgOiAiaSIgKDApLCAiMCIgKHYpLCAibSIgKCphZGRy
KSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHUzMiBu
YXRpdmVfYXBpY19tZW1fcmVhZCh1MzIgcmVnKQp7CiByZXR1cm4gKigodm9sYXRpbGUgdTMyICop
KChmaXhfdG9fdmlydChGSVhfQVBJQ19CQVNFKSkgKyByZWcpKTsKfQoKZXh0ZXJuIHZvaWQgbmF0
aXZlX2FwaWNfd2FpdF9pY3JfaWRsZSh2b2lkKTsKZXh0ZXJuIHUzMiBuYXRpdmVfc2FmZV9hcGlj
X3dhaXRfaWNyX2lkbGUodm9pZCk7CmV4dGVybiB2b2lkIG5hdGl2ZV9hcGljX2ljcl93cml0ZSh1
MzIgbG93LCB1MzIgaWQpOwpleHRlcm4gdTY0IG5hdGl2ZV9hcGljX2ljcl9yZWFkKHZvaWQpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBhcGljX2lzX3gyYXBpY19lbmFibGVkKHZvaWQpCnsKIHU2NCBtc3I7CgogaWYgKHJkbXNy
bF9zYWZlKDB4MDAwMDAwMWIsICZtc3IpKQogIHJldHVybiBmYWxzZTsKIHJldHVybiBtc3IgJiAo
MVVMIDw8IDEwKTsKfQoKZXh0ZXJuIHZvaWQgZW5hYmxlX0lSX3gyYXBpYyh2b2lkKTsKCmV4dGVy
biBpbnQgZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCh2b2lkKTsKCmV4dGVybiBpbnQgbGFwaWNfZ2V0
X21heGx2dCh2b2lkKTsKZXh0ZXJuIHZvaWQgY2xlYXJfbG9jYWxfQVBJQyh2b2lkKTsKZXh0ZXJu
IHZvaWQgZGlzY29ubmVjdF9ic3BfQVBJQyhpbnQgdmlydF93aXJlX3NldHVwKTsKZXh0ZXJuIHZv
aWQgZGlzYWJsZV9sb2NhbF9BUElDKHZvaWQpOwpleHRlcm4gdm9pZCBhcGljX3NvZnRfZGlzYWJs
ZSh2b2lkKTsKZXh0ZXJuIHZvaWQgbGFwaWNfc2h1dGRvd24odm9pZCk7CmV4dGVybiB2b2lkIHN5
bmNfQXJiX0lEcyh2b2lkKTsKZXh0ZXJuIHZvaWQgaW5pdF9ic3BfQVBJQyh2b2lkKTsKZXh0ZXJu
IHZvaWQgYXBpY19pbnRyX21vZGVfc2VsZWN0KHZvaWQpOwpleHRlcm4gdm9pZCBhcGljX2ludHJf
bW9kZV9pbml0KHZvaWQpOwpleHRlcm4gdm9pZCBpbml0X2FwaWNfbWFwcGluZ3Modm9pZCk7CnZv
aWQgcmVnaXN0ZXJfbGFwaWNfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHJlc3MpOwpleHRlcm4g
dm9pZCBzZXR1cF9ib290X0FQSUNfY2xvY2sodm9pZCk7CmV4dGVybiB2b2lkIHNldHVwX3NlY29u
ZGFyeV9BUElDX2Nsb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBsYXBpY191cGRhdGVfdHNjX2ZyZXEo
dm9pZCk7CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IGFwaWNfZm9yY2VfZW5hYmxlKHVuc2lnbmVkIGxvbmcgYWRkcikKewogcmV0
dXJuIC0xOwp9CgoKCgpleHRlcm4gdm9pZCBhcGljX2FwX3NldHVwKHZvaWQpOwoKCgoKCmV4dGVy
biBpbnQgYXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOwoKCgoKCgoKZXh0ZXJuIGludCBzZXR1
cF9BUElDX2VpbHZ0KHU4IGx2dF9vZmYsIHU4IHZlY3RvciwgdTggbXNnX3R5cGUsIHU4IG1hc2sp
OwpleHRlcm4gdm9pZCBsYXBpY19hc3NpZ25fc3lzdGVtX3ZlY3RvcnModm9pZCk7CmV4dGVybiB2
b2lkIGxhcGljX2Fzc2lnbl9sZWdhY3lfdmVjdG9yKHVuc2lnbmVkIGludCBpc2FpcnEsIGJvb2wg
cmVwbGFjZSk7CmV4dGVybiB2b2lkIGxhcGljX29ubGluZSh2b2lkKTsKZXh0ZXJuIHZvaWQgbGFw
aWNfb2ZmbGluZSh2b2lkKTsKZXh0ZXJuIGJvb2wgYXBpY19uZWVkc19waXQodm9pZCk7CgpleHRl
cm4gdm9pZCBhcGljX3NlbmRfSVBJX2FsbGJ1dHNlbGYodW5zaWduZWQgaW50IHZlY3Rvcik7CiMg
MjcxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja194MmFwaWModm9p
ZCkgeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgeDJhcGljX3NldHVwKHZvaWQpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgeDJhcGljX2VuYWJsZWQodm9p
ZCkgeyByZXR1cm4gMDsgfQoKCgoKCnN0cnVjdCBpcnFfZGF0YTsKIyAyOTAgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vYXBpYy5oIgpzdHJ1Y3QgYXBpYyB7Cgogdm9pZCAoKmVvaV93cml0ZSkodTMy
IHJlZywgdTMyIHYpOwogdm9pZCAoKm5hdGl2ZV9lb2lfd3JpdGUpKHUzMiByZWcsIHUzMiB2KTsK
IHZvaWQgKCp3cml0ZSkodTMyIHJlZywgdTMyIHYpOwogdTMyICgqcmVhZCkodTMyIHJlZyk7CgoK
IHZvaWQgKCp3YWl0X2ljcl9pZGxlKSh2b2lkKTsKIHUzMiAoKnNhZmVfd2FpdF9pY3JfaWRsZSko
dm9pZCk7Cgogdm9pZCAoKnNlbmRfSVBJKShpbnQgY3B1LCBpbnQgdmVjdG9yKTsKIHZvaWQgKCpz
ZW5kX0lQSV9tYXNrKShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFzaywgaW50IHZlY3Rvcik7CiB2
b2lkICgqc2VuZF9JUElfbWFza19hbGxidXRzZWxmKShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbXNr
LCBpbnQgdmVjKTsKIHZvaWQgKCpzZW5kX0lQSV9hbGxidXRzZWxmKShpbnQgdmVjdG9yKTsKIHZv
aWQgKCpzZW5kX0lQSV9hbGwpKGludCB2ZWN0b3IpOwogdm9pZCAoKnNlbmRfSVBJX3NlbGYpKGlu
dCB2ZWN0b3IpOwoKCiB1MzIgZGVzdF9sb2dpY2FsOwogdTMyIGRpc2FibGVfZXNyOwogdTMyIGly
cV9kZWxpdmVyeV9tb2RlOwogdTMyIGlycV9kZXN0X21vZGU7CgogdTMyICgqY2FsY19kZXN0X2Fw
aWNpZCkodW5zaWduZWQgaW50IGNwdSk7CgoKIHU2NCAoKmljcl9yZWFkKSh2b2lkKTsKIHZvaWQg
KCppY3Jfd3JpdGUpKHUzMiBsb3csIHUzMiBoaWdoKTsKCgogaW50ICgqcHJvYmUpKHZvaWQpOwog
aW50ICgqYWNwaV9tYWR0X29lbV9jaGVjaykoY2hhciAqb2VtX2lkLCBjaGFyICpvZW1fdGFibGVf
aWQpOwogaW50ICgqYXBpY19pZF92YWxpZCkodTMyIGFwaWNpZCk7CiBpbnQgKCphcGljX2lkX3Jl
Z2lzdGVyZWQpKHZvaWQpOwoKIGJvb2wgKCpjaGVja19hcGljaWRfdXNlZCkocGh5c2lkX21hc2tf
dCAqbWFwLCBpbnQgYXBpY2lkKTsKIHZvaWQgKCppbml0X2FwaWNfbGRyKSh2b2lkKTsKIHZvaWQg
KCppb2FwaWNfcGh5c19pZF9tYXApKHBoeXNpZF9tYXNrX3QgKnBoeXNfbWFwLCBwaHlzaWRfbWFz
a190ICpyZXRtYXApOwogdm9pZCAoKnNldHVwX2FwaWNfcm91dGluZykodm9pZCk7CiBpbnQgKCpj
cHVfcHJlc2VudF90b19hcGljaWQpKGludCBtcHNfY3B1KTsKIHZvaWQgKCphcGljaWRfdG9fY3B1
X3ByZXNlbnQpKGludCBwaHlzX2FwaWNpZCwgcGh5c2lkX21hc2tfdCAqcmV0bWFwKTsKIGludCAo
KmNoZWNrX3BoeXNfYXBpY2lkX3ByZXNlbnQpKGludCBwaHlzX2FwaWNpZCk7CiBpbnQgKCpwaHlz
X3BrZ19pZCkoaW50IGNwdWlkX2FwaWMsIGludCBpbmRleF9tc2IpOwoKIHUzMiAoKmdldF9hcGlj
X2lkKSh1bnNpZ25lZCBsb25nIHgpOwogdTMyICgqc2V0X2FwaWNfaWQpKHVuc2lnbmVkIGludCBp
ZCk7CgoKIGludCAoKndha2V1cF9zZWNvbmRhcnlfY3B1KShpbnQgYXBpY2lkLCB1bnNpZ25lZCBs
b25nIHN0YXJ0X2VpcCk7Cgogdm9pZCAoKmlucXVpcmVfcmVtb3RlX2FwaWMpKGludCBhcGljaWQp
OwojIDM1NiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiCiBjaGFyICpuYW1lOwp9OwoK
CgoKCgpleHRlcm4gc3RydWN0IGFwaWMgKmFwaWM7CiMgMzg0ICIuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2FwaWMuaCIKZXh0ZXJuIHN0cnVjdCBhcGljICpfX2FwaWNkcml2ZXJzW10sICpfX2FwaWNk
cml2ZXJzX2VuZFtdOwoKCgoKCmV4dGVybiBpbnQgd2FrZXVwX3NlY29uZGFyeV9jcHVfdmlhX25t
aShpbnQgYXBpY2lkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X2VpcCk7CmV4dGVybiBpbnQgbGFwaWNf
Y2FuX3VucGx1Z19jcHUodm9pZCk7CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgYXBpY19yZWFkKHUzMiByZWcpCnsKIHJldHVy
biBhcGljLT5yZWFkKHJlZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXBpY193cml0ZSh1MzIgcmVnLCB1MzIgdmFsKQp7
CiBhcGljLT53cml0ZShyZWcsIHZhbCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXBpY19lb2kodm9pZCkKewogYXBpYy0+
ZW9pX3dyaXRlKDB4QjAsIDB4MCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBhcGljX2ljcl9yZWFkKHZvaWQpCnsKIHJldHVy
biBhcGljLT5pY3JfcmVhZCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFwaWNfaWNyX3dyaXRlKHUzMiBsb3csIHUzMiBo
aWdoKQp7CiBhcGljLT5pY3Jfd3JpdGUobG93LCBoaWdoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcGljX3dhaXRfaWNy
X2lkbGUodm9pZCkKewogYXBpYy0+d2FpdF9pY3JfaWRsZSgpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgc2FmZV9hcGljX3dh
aXRfaWNyX2lkbGUodm9pZCkKewogcmV0dXJuIGFwaWMtPnNhZmVfd2FpdF9pY3JfaWRsZSgpOwp9
CgpleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkg
X19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBhcGljX3NldF9lb2lfd3JpdGUodm9pZCAoKmVvaV93
cml0ZSkodTMyIHJlZywgdTMyIHYpKTsKIyA0NDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vYXBp
Yy5oIgpleHRlcm4gdm9pZCBhcGljX2Fja19pcnEoc3RydWN0IGlycV9kYXRhICpkYXRhKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgYWNrX0FQSUNfaXJxKHZvaWQpCnsKCgoKCiBhcGljX2VvaSgpOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBsYXBpY192
ZWN0b3Jfc2V0X2luX2lycih1bnNpZ25lZCBpbnQgdmVjdG9yKQp7CiB1MzIgaXJyID0gYXBpY19y
ZWFkKDB4MjAwICsgKHZlY3RvciAvIDMyICogMHgxMCkpOwoKIHJldHVybiAhIShpcnIgJiAoMVUg
PDwgKHZlY3RvciAlIDMyKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBkZWZhdWx0X2dldF9hcGljX2lkKHVuc2ln
bmVkIGxvbmcgeCkKewogdW5zaWduZWQgaW50IHZlciA9ICgoYXBpY19yZWFkKDB4MzApKSAmIDB4
RkZ1KTsKCiBpZiAoKCh2ZXIpID49IDB4MTQpIHx8IChfX2J1aWx0aW5fY29uc3RhbnRfcCgoIDMq
MzIrMjYpKSAmJiAoICgoKCggMyozMisyNikpPj41KT09KDApICYmICgxVUw8PCgoKCAzKjMyKzI2
KSkmMzEpICYgKCgxPDwoKCAwKjMyKyAwKSAmIDMxKSl8MHwoMTw8KCggMCozMisgNSkgJiAzMSkp
fCgxPDwoKCAwKjMyKyA2KSAmIDMxKSl8ICgxPDwoKCAwKjMyKyA4KSAmIDMxKSl8MHwoMTw8KCgg
MCozMisyNCkgJiAzMSkpfCgxPDwoKCAwKjMyKzE1KSAmIDMxKSl8ICgxPDwoKCAwKjMyKzI1KSAm
IDMxKSl8KDE8PCgoIDAqMzIrMjYpICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0o
MSkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoKDE8PCgoIDEqMzIrMjkpICYgMzEpKXww
KSApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgyKSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMx
KSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMykgJiYgKDFVTDw8KCgoIDMqMzIrMjYp
KSYzMSkgJiAoKDE8PCgoIDMqMzIrMjApICYgMzEpKSkgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUp
PT0oNCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAoMCkgKSkgfHwgKCgoKCAzKjMyKzI2
KSk+PjUpPT0oNSkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyoz
MisyNikpPj41KT09KDYpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgo
IDMqMzIrMjYpKT4+NSk9PSg3KSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwg
KCgoKCAzKjMyKzI2KSk+PjUpPT0oOCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkp
IHx8ICgoKCggMyozMisyNikpPj41KT09KDkpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYg
MCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxMCkgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYz
MSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDExKSAmJiAoMVVMPDwoKCggMyozMisy
NikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTIpICYmICgxVUw8PCgoKCAz
KjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9PSgxMykgJiYgKDFVTDw8
KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikpPj41KT09KDE0KSAmJiAo
MVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMyKzI2KSk+PjUpPT0oMTUp
ICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKCgoIDMqMzIrMjYpKT4+NSk9
PSgxNikgJiYgKDFVTDw8KCgoIDMqMzIrMjYpKSYzMSkgJiAwICkpIHx8ICgoKCggMyozMisyNikp
Pj41KT09KDE3KSAmJiAoMVVMPDwoKCggMyozMisyNikpJjMxKSAmIDAgKSkgfHwgKCgoKCAzKjMy
KzI2KSk+PjUpPT0oMTgpICYmICgxVUw8PCgoKCAzKjMyKzI2KSkmMzEpICYgMCApKSB8fCAoKGlu
dCkoc2l6ZW9mKHN0cnVjdCB7IGludDooLSEhKDE5ICE9IDE5KSk7IH0pKSkgfHwgKChpbnQpKHNp
emVvZihzdHJ1Y3QgeyBpbnQ6KC0hISgxOSAhPSAxOSkpOyB9KSkpKSA/IDEgOiB0ZXN0X2JpdCgo
IDMqMzIrMjYpLCAodW5zaWduZWQgbG9uZyAqKSgoJmJvb3RfY3B1X2RhdGEpLT54ODZfY2FwYWJp
bGl0eSkpKSkKICByZXR1cm4gKHggPj4gMjQpICYgMHhGRjsKIGVsc2UKICByZXR1cm4gKHggPj4g
MjQpICYgMHgwRjsKfQoKCgoKCgoKZXh0ZXJuIHZvaWQgZ2VuZXJpY19iaWdzbXBfcHJvYmUodm9p
ZCk7CgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIgMQojIDQ4NiAiLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9hcGljLmgiIDIKCgoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rp
b24oIi5kYXRhLi5wZXJjcHUiICIuLnJlYWRfbW9zdGx5IikpKSBfX3R5cGVvZl9fKHUxNikgeDg2
X2Jpb3NfY3B1X2FwaWNpZDsgZXh0ZXJuIF9fdHlwZW9mX18odTE2KSAqeDg2X2Jpb3NfY3B1X2Fw
aWNpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgeDg2X2Jpb3NfY3B1X2FwaWNp
ZF9lYXJseV9tYXBbXTsKCmV4dGVybiBzdHJ1Y3QgYXBpYyBhcGljX25vb3A7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBp
bnQgcmVhZF9hcGljX2lkKHZvaWQpCnsKIHVuc2lnbmVkIGludCByZWcgPSBhcGljX3JlYWQoMHgy
MCk7CgogcmV0dXJuIGFwaWMtPmdldF9hcGljX2lkKHJlZyk7Cn0KCmV4dGVybiBpbnQgZGVmYXVs
dF9hcGljX2lkX3ZhbGlkKHUzMiBhcGljaWQpOwpleHRlcm4gaW50IGRlZmF1bHRfYWNwaV9tYWR0
X29lbV9jaGVjayhjaGFyICosIGNoYXIgKik7CmV4dGVybiB2b2lkIGRlZmF1bHRfc2V0dXBfYXBp
Y19yb3V0aW5nKHZvaWQpOwoKZXh0ZXJuIHUzMiBhcGljX2RlZmF1bHRfY2FsY19hcGljaWQodW5z
aWduZWQgaW50IGNwdSk7CmV4dGVybiB1MzIgYXBpY19mbGF0X2NhbGNfYXBpY2lkKHVuc2lnbmVk
IGludCBjcHUpOwoKZXh0ZXJuIGJvb2wgZGVmYXVsdF9jaGVja19hcGljaWRfdXNlZChwaHlzaWRf
bWFza190ICptYXAsIGludCBhcGljaWQpOwpleHRlcm4gdm9pZCBkZWZhdWx0X2lvYXBpY19waHlz
X2lkX21hcChwaHlzaWRfbWFza190ICpwaHlzX21hcCwgcGh5c2lkX21hc2tfdCAqcmV0bWFwKTsK
ZXh0ZXJuIGludCBkZWZhdWx0X2NwdV9wcmVzZW50X3RvX2FwaWNpZChpbnQgbXBzX2NwdSk7CmV4
dGVybiBpbnQgZGVmYXVsdF9jaGVja19waHlzX2FwaWNpZF9wcmVzZW50KGludCBwaHlzX2FwaWNp
ZCk7CgoKCgpib29sIGFwaWNfaWRfaXNfcHJpbWFyeV90aHJlYWQodW5zaWduZWQgaW50IGlkKTsK
dm9pZCBhcGljX3NtdF91cGRhdGUodm9pZCk7CgoKCgoKZXh0ZXJuIHZvaWQgaXJxX2VudGVyKHZv
aWQpOwpleHRlcm4gdm9pZCBpcnFfZXhpdCh2b2lkKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZW50ZXJpbmdfaXJxKHZvaWQp
CnsKIGlycV9lbnRlcigpOwoga3ZtX3NldF9jcHVfbDF0Zl9mbHVzaF9sMWQoKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBl
bnRlcmluZ19hY2tfaXJxKHZvaWQpCnsKIGVudGVyaW5nX2lycSgpOwogYWNrX0FQSUNfaXJxKCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaXBpX2VudGVyaW5nX2Fja19pcnEodm9pZCkKewogaXJxX2VudGVyKCk7CiBhY2tf
QVBJQ19pcnEoKTsKIGt2bV9zZXRfY3B1X2wxdGZfZmx1c2hfbDFkKCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZXhpdGlu
Z19pcnEodm9pZCkKewogaXJxX2V4aXQoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0aW5nX2Fja19pcnEodm9pZCkK
ewogYWNrX0FQSUNfaXJxKCk7CiBpcnFfZXhpdCgpOwp9CgpleHRlcm4gdm9pZCBpb2FwaWNfemFw
X2xvY2tzKHZvaWQpOwojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NtcC5oIiAyCgojIDEg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIiAxCgoKCgoKCgojIDEgIi4vYXJjaC94
ODYvaW5jbHVkZS9hc20vaXJxX3ZlY3RvcnMuaCIgMQojIDkgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vaW9fYXBpYy5oIiAyCiMgMjggIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9fYXBpYy5oIgp1
bmlvbiBJT19BUElDX3JlZ18wMCB7CiB1MzIgcmF3Owogc3RydWN0IHsKICB1MzIgX19yZXNlcnZl
ZF8yIDogMTQsCiAgIExUUyA6IDEsCiAgIGRlbGl2ZXJ5X3R5cGUgOiAxLAogICBfX3Jlc2VydmVk
XzEgOiA4LAogICBJRCA6IDg7CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSBiaXRzOwp9OwoK
dW5pb24gSU9fQVBJQ19yZWdfMDEgewogdTMyIHJhdzsKIHN0cnVjdCB7CiAgdTMyIHZlcnNpb24g
OiA4LAogICBfX3Jlc2VydmVkXzIgOiA3LAogICBQUlEgOiAxLAogICBlbnRyaWVzIDogOCwKICAg
X19yZXNlcnZlZF8xIDogODsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGJpdHM7Cn07Cgp1
bmlvbiBJT19BUElDX3JlZ18wMiB7CiB1MzIgcmF3Owogc3RydWN0IHsKICB1MzIgX19yZXNlcnZl
ZF8yIDogMjQsCiAgIGFyYml0cmF0aW9uIDogNCwKICAgX19yZXNlcnZlZF8xIDogNDsKIH0gX19h
dHRyaWJ1dGVfXyAoKHBhY2tlZCkpIGJpdHM7Cn07Cgp1bmlvbiBJT19BUElDX3JlZ18wMyB7CiB1
MzIgcmF3Owogc3RydWN0IHsKICB1MzIgYm9vdF9EVCA6IDEsCiAgIF9fcmVzZXJ2ZWRfMSA6IDMx
OwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgYml0czsKfTsKCnN0cnVjdCBJT19BUElDX3Jv
dXRlX2VudHJ5IHsKIF9fdTMyIHZlY3RvciA6IDgsCiAgZGVsaXZlcnlfbW9kZSA6IDMsCgoKCiAg
ZGVzdF9tb2RlIDogMSwKICBkZWxpdmVyeV9zdGF0dXMgOiAxLAogIHBvbGFyaXR5IDogMSwKICBp
cnIgOiAxLAogIHRyaWdnZXIgOiAxLAogIG1hc2sgOiAxLAogIF9fcmVzZXJ2ZWRfMiA6IDE1OwoK
IF9fdTMyIF9fcmVzZXJ2ZWRfMyA6IDI0LAogIGRlc3QgOiA4Owp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKTsKCnN0cnVjdCBJUl9JT19BUElDX3JvdXRlX2VudHJ5IHsKIF9fdTY0IHZlY3RvciA6
IDgsCiAgemVybyA6IDMsCiAgaW5kZXgyIDogMSwKICBkZWxpdmVyeV9zdGF0dXMgOiAxLAogIHBv
bGFyaXR5IDogMSwKICBpcnIgOiAxLAogIHRyaWdnZXIgOiAxLAogIG1hc2sgOiAxLAogIHJlc2Vy
dmVkIDogMzEsCiAgZm9ybWF0IDogMSwKICBpbmRleCA6IDE1Owp9IF9fYXR0cmlidXRlX18gKChw
YWNrZWQpKTsKCnN0cnVjdCBpcnFfYWxsb2NfaW5mbzsKc3RydWN0IGlvYXBpY19kb21haW5fY2Zn
OwojIDEyMyAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pb19hcGljLmgiCmV4dGVybiBpbnQgbnJf
aW9hcGljczsKCmV4dGVybiBpbnQgbXBjX2lvYXBpY19pZChpbnQgaW9hcGljKTsKZXh0ZXJuIHVu
c2lnbmVkIGludCBtcGNfaW9hcGljX2FkZHIoaW50IGlvYXBpYyk7CgoKZXh0ZXJuIGludCBtcF9p
cnFfZW50cmllczsKCgpleHRlcm4gc3RydWN0IG1wY19pbnRzcmMgbXBfaXJxc1soMjU2ICogNCld
OwoKCmV4dGVybiBpbnQgc2tpcF9pb2FwaWNfc2V0dXA7CgoKZXh0ZXJuIGludCBub2lvYXBpY3F1
aXJrOwoKCmV4dGVybiBpbnQgbm9pb2FwaWNyZXJvdXRlOwoKZXh0ZXJuIHUzMiBnc2lfdG9wOwoK
ZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwojIDE1NiAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9pb19hcGljLmgiCnN0cnVjdCBpcnFfY2ZnOwpleHRlcm4gdm9pZCBpb2FwaWNfaW5z
ZXJ0X3Jlc291cmNlcyh2b2lkKTsKZXh0ZXJuIGludCBhcmNoX2Vhcmx5X2lvYXBpY19pbml0KHZv
aWQpOwoKZXh0ZXJuIGludCBzYXZlX2lvYXBpY19lbnRyaWVzKHZvaWQpOwpleHRlcm4gdm9pZCBt
YXNrX2lvYXBpY19lbnRyaWVzKHZvaWQpOwpleHRlcm4gaW50IHJlc3RvcmVfaW9hcGljX2VudHJp
ZXModm9pZCk7CgpleHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21fbXBjKHZvaWQpOwpl
eHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfaWRzX2Zyb21fbXBjX25vY2hlY2sodm9pZCk7CgpleHRl
cm4gaW50IG1wX2ZpbmRfaW9hcGljKHUzMiBnc2kpOwpleHRlcm4gaW50IG1wX2ZpbmRfaW9hcGlj
X3BpbihpbnQgaW9hcGljLCB1MzIgZ3NpKTsKZXh0ZXJuIGludCBtcF9tYXBfZ3NpX3RvX2lycSh1
MzIgZ3NpLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgICAgICAgc3RydWN0IGlycV9hbGxvY19pbmZv
ICppbmZvKTsKZXh0ZXJuIHZvaWQgbXBfdW5tYXBfaXJxKGludCBpcnEpOwpleHRlcm4gaW50IG1w
X3JlZ2lzdGVyX2lvYXBpYyhpbnQgaWQsIHUzMiBhZGRyZXNzLCB1MzIgZ3NpX2Jhc2UsCiAgICAg
ICAgIHN0cnVjdCBpb2FwaWNfZG9tYWluX2NmZyAqY2ZnKTsKZXh0ZXJuIGludCBtcF91bnJlZ2lz
dGVyX2lvYXBpYyh1MzIgZ3NpX2Jhc2UpOwpleHRlcm4gaW50IG1wX2lvYXBpY19yZWdpc3RlcmVk
KHUzMiBnc2lfYmFzZSk7CgpleHRlcm4gdm9pZCBpb2FwaWNfc2V0X2FsbG9jX2F0dHIoc3RydWN0
IGlycV9hbGxvY19pbmZvICppbmZvLAogICAgICBpbnQgbm9kZSwgaW50IHRyaWdnZXIsIGludCBw
b2xhcml0eSk7CgpleHRlcm4gdm9pZCBtcF9zYXZlX2lycShzdHJ1Y3QgbXBjX2ludHNyYyAqbSk7
CgpleHRlcm4gdm9pZCBkaXNhYmxlX2lvYXBpY19zdXBwb3J0KHZvaWQpOwoKZXh0ZXJuIHZvaWQg
X19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18o
KF9fY29sZF9fKSkgaW9fYXBpY19pbml0X21hcHBpbmdzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQg
aW50IG5hdGl2ZV9pb19hcGljX3JlYWQodW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBy
ZWcpOwpleHRlcm4gdm9pZCBuYXRpdmVfcmVzdG9yZV9ib290X2lycV9tb2RlKHZvaWQpOwoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5z
aWduZWQgaW50IGlvX2FwaWNfcmVhZCh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJl
ZykKewogcmV0dXJuIHg4Nl9hcGljX29wcy5pb19hcGljX3JlYWQoYXBpYywgcmVnKTsKfQoKZXh0
ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsKZXh0ZXJuIHZvaWQgZW5hYmxlX0lPX0FQSUMo
dm9pZCk7CmV4dGVybiB2b2lkIGNsZWFyX0lPX0FQSUModm9pZCk7CmV4dGVybiB2b2lkIHJlc3Rv
cmVfYm9vdF9pcnFfbW9kZSh2b2lkKTsKZXh0ZXJuIGludCBJT19BUElDX2dldF9QQ0lfaXJxX3Zl
Y3RvcihpbnQgYnVzLCBpbnQgZGV2Zm4sIGludCBwaW4pOwpleHRlcm4gdm9pZCBwcmludF9JT19B
UElDcyh2b2lkKTsKIyAxNiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaCIgMgoKCgoKCmV4
dGVybiBpbnQgc21wX251bV9zaWJsaW5nczsKZXh0ZXJuIHVuc2lnbmVkIGludCBudW1fcHJvY2Vz
c29yczsKCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5y
ZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfc2libGluZ19tYXA7
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21v
c3RseSIpKSkgX190eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfY29yZV9tYXA7CmV4dGVybiBf
X2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkg
X190eXBlb2ZfXyhjcHVtYXNrX3Zhcl90KSBjcHVfZGllX21hcDsKCmV4dGVybiBfX2F0dHJpYnV0
ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2Zf
XyhjcHVtYXNrX3Zhcl90KSBjcHVfbGxjX3NoYXJlZF9tYXA7CmV4dGVybiBfX2F0dHJpYnV0ZV9f
KChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1
MTYpIGNwdV9sbGNfaWQ7CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVy
Y3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyhpbnQpIGNwdV9udW1iZXI7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgY3B1bWFzayAqY3B1X2xsY19zaGFyZWRfbWFzayhpbnQgY3B1KQp7CiByZXR1cm4gKCooeyBk
byB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X2xsY19zaGFyZWRf
bWFwKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsg
KHsgdW5zaWduZWQgbG9uZyBfX3B0cjsgX19hc21fXyAoIiIgOiAiPXIiKF9fcHRyKSA6ICIwIigo
dHlwZW9mKCooKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgoJihjcHVfbGxjX3NoYXJlZF9t
YXApKSkpKTsgKHR5cGVvZigodHlwZW9mKCooKCYoY3B1X2xsY19zaGFyZWRfbWFwKSkpKSAqKSgo
JihjcHVfbGxjX3NoYXJlZF9tYXApKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVfb2Zmc2V0Wyhj
cHUpXSkpKSk7IH0pOyB9KSk7Cn0KCmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0
YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1MTYpIHg4Nl9jcHVfdG9f
YXBpY2lkOyBleHRlcm4gX190eXBlb2ZfXyh1MTYpICp4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9w
dHI7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgeDg2X2NwdV90b19hcGljaWRfZWFybHlfbWFwW107
CmV4dGVybiBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21v
c3RseSIpKSkgX190eXBlb2ZfXyh1MzIpIHg4Nl9jcHVfdG9fYWNwaWlkOyBleHRlcm4gX190eXBl
b2ZfXyh1MzIpICp4ODZfY3B1X3RvX2FjcGlpZF9lYXJseV9wdHI7IGV4dGVybiBfX3R5cGVvZl9f
KHUzMikgeDg2X2NwdV90b19hY3BpaWRfZWFybHlfbWFwW107CmV4dGVybiBfX2F0dHJpYnV0ZV9f
KChzZWN0aW9uKCIuZGF0YS4ucGVyY3B1IiAiLi5yZWFkX21vc3RseSIpKSkgX190eXBlb2ZfXyh1
MTYpIHg4Nl9iaW9zX2NwdV9hcGljaWQ7IGV4dGVybiBfX3R5cGVvZl9fKHUxNikgKng4Nl9iaW9z
X2NwdV9hcGljaWRfZWFybHlfcHRyOyBleHRlcm4gX190eXBlb2ZfXyh1MTYpIHg4Nl9iaW9zX2Nw
dV9hcGljaWRfZWFybHlfbWFwW107CgoKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpzdHJ1Y3Qgc21w
X29wcyB7CiB2b2lkICgqc21wX3ByZXBhcmVfYm9vdF9jcHUpKHZvaWQpOwogdm9pZCAoKnNtcF9w
cmVwYXJlX2NwdXMpKHVuc2lnbmVkIG1heF9jcHVzKTsKIHZvaWQgKCpzbXBfY3B1c19kb25lKSh1
bnNpZ25lZCBtYXhfY3B1cyk7Cgogdm9pZCAoKnN0b3Bfb3RoZXJfY3B1cykoaW50IHdhaXQpOwog
dm9pZCAoKmNyYXNoX3N0b3Bfb3RoZXJfY3B1cykodm9pZCk7CiB2b2lkICgqc21wX3NlbmRfcmVz
Y2hlZHVsZSkoaW50IGNwdSk7CgogaW50ICgqY3B1X3VwKSh1bnNpZ25lZCBjcHUsIHN0cnVjdCB0
YXNrX3N0cnVjdCAqdGlkbGUpOwogaW50ICgqY3B1X2Rpc2FibGUpKHZvaWQpOwogdm9pZCAoKmNw
dV9kaWUpKHVuc2lnbmVkIGludCBjcHUpOwogdm9pZCAoKnBsYXlfZGVhZCkodm9pZCk7Cgogdm9p
ZCAoKnNlbmRfY2FsbF9mdW5jX2lwaSkoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2spOwogdm9p
ZCAoKnNlbmRfY2FsbF9mdW5jX3NpbmdsZV9pcGkpKGludCBjcHUpOwp9OwoKCmV4dGVybiB2b2lk
IHNldF9jcHVfc2libGluZ19tYXAoaW50IGNwdSk7CgoKZXh0ZXJuIHN0cnVjdCBzbXBfb3BzIHNt
cF9vcHM7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCkKewogc21wX29wcy5zdG9wX290aGVyX2Nw
dXMoMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgc3RvcF9vdGhlcl9jcHVzKHZvaWQpCnsKIHNtcF9vcHMuc3RvcF9vdGhl
cl9jcHVzKDEpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHNtcF9wcmVwYXJlX2Jvb3RfY3B1KHZvaWQpCnsKIHNtcF9vcHMu
c21wX3ByZXBhcmVfYm9vdF9jcHUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVk
IGludCBtYXhfY3B1cykKewogc21wX29wcy5zbXBfcHJlcGFyZV9jcHVzKG1heF9jcHVzKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBzbXBfY3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhfY3B1cykKewogc21wX29wcy5zbXBf
Y3B1c19kb25lKG1heF9jcHVzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fY3B1X3VwKHVuc2lnbmVkIGludCBjcHUsIHN0
cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpCnsKIHJldHVybiBzbXBfb3BzLmNwdV91cChjcHUsIHRp
ZGxlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fY3B1X2Rpc2FibGUodm9pZCkKewogcmV0dXJuIHNtcF9vcHMuY3B1X2Rp
c2FibGUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBfX2NwdV9kaWUodW5zaWduZWQgaW50IGNwdSkKewogc21wX29wcy5j
cHVfZGllKGNwdSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGxheV9kZWFkKHZvaWQpCnsKIHNtcF9vcHMucGxheV9kZWFk
KCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgc21wX3NlbmRfcmVzY2hlZHVsZShpbnQgY3B1KQp7CiBzbXBfb3BzLnNtcF9z
ZW5kX3Jlc2NoZWR1bGUoY3B1KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBhcmNoX3NlbmRfY2FsbF9mdW5jdGlvbl9zaW5n
bGVfaXBpKGludCBjcHUpCnsKIHNtcF9vcHMuc2VuZF9jYWxsX2Z1bmNfc2luZ2xlX2lwaShjcHUp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGFyY2hfc2VuZF9jYWxsX2Z1bmN0aW9uX2lwaV9tYXNrKGNvbnN0IHN0cnVjdCBj
cHVtYXNrICptYXNrKQp7CiBzbXBfb3BzLnNlbmRfY2FsbF9mdW5jX2lwaShtYXNrKTsKfQoKdm9p
ZCBjcHVfZGlzYWJsZV9jb21tb24odm9pZCk7CnZvaWQgbmF0aXZlX3NtcF9wcmVwYXJlX2Jvb3Rf
Y3B1KHZvaWQpOwp2b2lkIG5hdGl2ZV9zbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVkIGludCBtYXhf
Y3B1cyk7CnZvaWQgY2FsY3VsYXRlX21heF9sb2dpY2FsX3BhY2thZ2VzKHZvaWQpOwp2b2lkIG5h
dGl2ZV9zbXBfY3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhfY3B1cyk7CmludCBjb21tb25fY3B1
X3VwKHVuc2lnbmVkIGludCBjcHVudW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwppbnQg
bmF0aXZlX2NwdV91cCh1bnNpZ25lZCBpbnQgY3B1bnVtLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRp
ZGxlKTsKaW50IG5hdGl2ZV9jcHVfZGlzYWJsZSh2b2lkKTsKaW50IGNvbW1vbl9jcHVfZGllKHVu
c2lnbmVkIGludCBjcHUpOwp2b2lkIG5hdGl2ZV9jcHVfZGllKHVuc2lnbmVkIGludCBjcHUpOwp2
b2lkIGhsdF9wbGF5X2RlYWQodm9pZCk7CnZvaWQgbmF0aXZlX3BsYXlfZGVhZCh2b2lkKTsKdm9p
ZCBwbGF5X2RlYWRfY29tbW9uKHZvaWQpOwp2b2lkIHdiaW52ZF9vbl9jcHUoaW50IGNwdSk7Cmlu
dCB3YmludmRfb25fYWxsX2NwdXModm9pZCk7Cgp2b2lkIG5hdGl2ZV9zbXBfc2VuZF9yZXNjaGVk
dWxlKGludCBjcHUpOwp2b2lkIG5hdGl2ZV9zZW5kX2NhbGxfZnVuY19pcGkoY29uc3Qgc3RydWN0
IGNwdW1hc2sgKm1hc2spOwp2b2lkIG5hdGl2ZV9zZW5kX2NhbGxfZnVuY19zaW5nbGVfaXBpKGlu
dCBjcHUpOwp2b2lkIHg4Nl9pZGxlX3RocmVhZF9pbml0KHVuc2lnbmVkIGludCBjcHUsIHN0cnVj
dCB0YXNrX3N0cnVjdCAqaWRsZSk7Cgp2b2lkIHNtcF9zdG9yZV9ib290X2NwdV9pbmZvKHZvaWQp
Owp2b2lkIHNtcF9zdG9yZV9jcHVfaW5mbyhpbnQgaWQpOwoKIF9fYXR0cmlidXRlX18oKF9fZXh0
ZXJuYWxseV92aXNpYmxlX18pKSB2b2lkIHNtcF9yZWJvb3RfaW50ZXJydXB0KHZvaWQpOwpfX2F0
dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgdm9pZCBzbXBfcmVzY2hlZHVsZV9p
bnRlcnJ1cHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwpfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFs
bHlfdmlzaWJsZV9fKSkgdm9pZCBzbXBfY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQoc3RydWN0IHB0
X3JlZ3MgKnJlZ3MpOwpfX2F0dHJpYnV0ZV9fKChfX2V4dGVybmFsbHlfdmlzaWJsZV9fKSkgdm9p
ZCBzbXBfY2FsbF9mdW5jdGlvbl9zaW5nbGVfaW50ZXJydXB0KHN0cnVjdCBwdF9yZWdzICpyKTsK
IyAxODUgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgiCmV4dGVybiB1bnNpZ25lZCBkaXNh
YmxlZF9jcHVzOwoKCmV4dGVybiBpbnQgaGFyZF9zbXBfcHJvY2Vzc29yX2lkKHZvaWQpOwojIDY4
ICIuL2luY2x1ZGUvbGludXgvc21wLmgiIDIKIyA3NyAiLi9pbmNsdWRlL2xpbnV4L3NtcC5oIgpl
eHRlcm4gdm9pZCBzbXBfc2VuZF9zdG9wKHZvaWQpOwoKCgoKZXh0ZXJuIHZvaWQgc21wX3NlbmRf
cmVzY2hlZHVsZShpbnQgY3B1KTsKCgoKCgpleHRlcm4gdm9pZCBzbXBfcHJlcGFyZV9jcHVzKHVu
c2lnbmVkIGludCBtYXhfY3B1cyk7CgoKCgpleHRlcm4gaW50IF9fY3B1X3VwKHVuc2lnbmVkIGlu
dCBjcHVudW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGlkbGUpOwoKCgoKZXh0ZXJuIHZvaWQgc21w
X2NwdXNfZG9uZSh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpOwoKCgoKdm9pZCBzbXBfY2FsbF9mdW5j
dGlvbihzbXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgaW50IHdhaXQpOwp2b2lkIHNt
cF9jYWxsX2Z1bmN0aW9uX21hbnkoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2ssCiAgICAgICBz
bXBfY2FsbF9mdW5jX3QgZnVuYywgdm9pZCAqaW5mbywgYm9vbCB3YWl0KTsKCmludCBzbXBfY2Fs
bF9mdW5jdGlvbl9hbnkoY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2ssCiAgICAgc21wX2NhbGxf
ZnVuY190IGZ1bmMsIHZvaWQgKmluZm8sIGludCB3YWl0KTsKCnZvaWQga2lja19hbGxfY3B1c19z
eW5jKHZvaWQpOwp2b2lkIHdha2VfdXBfYWxsX2lkbGVfY3B1cyh2b2lkKTsKCgoKCnZvaWQgX19h
dHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSkgY2FsbF9mdW5jdGlvbl9pbml0KHZvaWQpOwp2b2lkIGdlbmVyaWNfc21wX2NhbGxf
ZnVuY3Rpb25fc2luZ2xlX2ludGVycnVwdCh2b2lkKTsKCgoKCgoKCnZvaWQgc21wX3ByZXBhcmVf
Ym9vdF9jcHUodm9pZCk7CgpleHRlcm4gdW5zaWduZWQgaW50IHNldHVwX21heF9jcHVzOwpleHRl
cm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRy
aWJ1dGVfXygoX19jb2xkX18pKSBzZXR1cF9ucl9jcHVfaWRzKHZvaWQpOwpleHRlcm4gdm9pZCBf
X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygo
X19jb2xkX18pKSBzbXBfaW5pdCh2b2lkKTsKCmV4dGVybiBpbnQgX19ib290X2NwdV9pZDsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCBnZXRfYm9vdF9jcHVfaWQodm9pZCkKewogcmV0dXJuIF9fYm9vdF9jcHVfaWQ7Cn0KIyAyMjgg
Ii4vaW5jbHVkZS9saW51eC9zbXAuaCIKZXh0ZXJuIHZvaWQgYXJjaF9kaXNhYmxlX3NtcF9zdXBw
b3J0KHZvaWQpOwoKZXh0ZXJuIHZvaWQgYXJjaF9lbmFibGVfbm9uYm9vdF9jcHVzX2JlZ2luKHZv
aWQpOwpleHRlcm4gdm9pZCBhcmNoX2VuYWJsZV9ub25ib290X2NwdXNfZW5kKHZvaWQpOwoKdm9p
ZCBzbXBfc2V0dXBfcHJvY2Vzc29yX2lkKHZvaWQpOwoKaW50IHNtcF9jYWxsX29uX2NwdSh1bnNp
Z25lZCBpbnQgY3B1LCBpbnQgKCpmdW5jKSh2b2lkICopLCB2b2lkICpwYXIsCiAgICAgIGJvb2wg
cGh5cyk7CgoKaW50IHNtcGNmZF9wcmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKaW50IHNt
cGNmZF9kZWFkX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKaW50IHNtcGNmZF9keWluZ19jcHUodW5z
aWduZWQgaW50IGNwdSk7CiMgOCAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS5oIiAyCiMgNjUgIi4v
aW5jbHVkZS9saW51eC9wZXJjcHUuaCIKZXh0ZXJuIHZvaWQgKnBjcHVfYmFzZV9hZGRyOwpleHRl
cm4gY29uc3QgdW5zaWduZWQgbG9uZyAqcGNwdV91bml0X29mZnNldHM7CgpzdHJ1Y3QgcGNwdV9n
cm91cF9pbmZvIHsKIGludCBucl91bml0czsKIHVuc2lnbmVkIGxvbmcgYmFzZV9vZmZzZXQ7CiB1
bnNpZ25lZCBpbnQgKmNwdV9tYXA7Cgp9OwoKc3RydWN0IHBjcHVfYWxsb2NfaW5mbyB7CiBzaXpl
X3Qgc3RhdGljX3NpemU7CiBzaXplX3QgcmVzZXJ2ZWRfc2l6ZTsKIHNpemVfdCBkeW5fc2l6ZTsK
IHNpemVfdCB1bml0X3NpemU7CiBzaXplX3QgYXRvbV9zaXplOwogc2l6ZV90IGFsbG9jX3NpemU7
CiBzaXplX3QgX19haV9zaXplOwogaW50IG5yX2dyb3VwczsKIHN0cnVjdCBwY3B1X2dyb3VwX2lu
Zm8gZ3JvdXBzW107Cn07CgplbnVtIHBjcHVfZmMgewogUENQVV9GQ19BVVRPLAogUENQVV9GQ19F
TUJFRCwKIFBDUFVfRkNfUEFHRSwKCiBQQ1BVX0ZDX05SLAp9OwpleHRlcm4gY29uc3QgY2hhciAq
IGNvbnN0IHBjcHVfZmNfbmFtZXNbUENQVV9GQ19OUl07CgpleHRlcm4gZW51bSBwY3B1X2ZjIHBj
cHVfY2hvc2VuX2ZjOwoKdHlwZWRlZiB2b2lkICogKCpwY3B1X2ZjX2FsbG9jX2ZuX3QpKHVuc2ln
bmVkIGludCBjcHUsIHNpemVfdCBzaXplLAogICAgICAgICBzaXplX3QgYWxpZ24pOwp0eXBlZGVm
IHZvaWQgKCpwY3B1X2ZjX2ZyZWVfZm5fdCkodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CnR5cGVk
ZWYgdm9pZCAoKnBjcHVfZmNfcG9wdWxhdGVfcHRlX2ZuX3QpKHVuc2lnbmVkIGxvbmcgYWRkcik7
CnR5cGVkZWYgaW50IChwY3B1X2ZjX2NwdV9kaXN0YW5jZV9mbl90KSh1bnNpZ25lZCBpbnQgZnJv
bSwgdW5zaWduZWQgaW50IHRvKTsKCmV4dGVybiBzdHJ1Y3QgcGNwdV9hbGxvY19pbmZvICogX19h
dHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSkgcGNwdV9hbGxvY19hbGxvY19pbmZvKGludCBucl9ncm91cHMsCiAgICAgICAgICAg
IGludCBucl91bml0cyk7CmV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIu
aW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpIHBjcHVfZnJlZV9hbGxvY19p
bmZvKHN0cnVjdCBwY3B1X2FsbG9jX2luZm8gKmFpKTsKCmV4dGVybiB2b2lkIF9fYXR0cmlidXRl
X18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykp
IHBjcHVfc2V0dXBfZmlyc3RfY2h1bmsoY29uc3Qgc3RydWN0IHBjcHVfYWxsb2NfaW5mbyAqYWks
CiAgICAgIHZvaWQgKmJhc2VfYWRkcik7CgoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3Nl
Y3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBwY3B1X2Vt
YmVkX2ZpcnN0X2NodW5rKHNpemVfdCByZXNlcnZlZF9zaXplLCBzaXplX3QgZHluX3NpemUsCiAg
ICBzaXplX3QgYXRvbV9zaXplLAogICAgcGNwdV9mY19jcHVfZGlzdGFuY2VfZm5fdCBjcHVfZGlz
dGFuY2VfZm4sCiAgICBwY3B1X2ZjX2FsbG9jX2ZuX3QgYWxsb2NfZm4sCiAgICBwY3B1X2ZjX2Zy
ZWVfZm5fdCBmcmVlX2ZuKTsKCgoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBwY3B1X3BhZ2VfZmly
c3RfY2h1bmsoc2l6ZV90IHJlc2VydmVkX3NpemUsCiAgICBwY3B1X2ZjX2FsbG9jX2ZuX3QgYWxs
b2NfZm4sCiAgICBwY3B1X2ZjX2ZyZWVfZm5fdCBmcmVlX2ZuLAogICAgcGNwdV9mY19wb3B1bGF0
ZV9wdGVfZm5fdCBwb3B1bGF0ZV9wdGVfZm4pOwoKCmV4dGVybiB2b2lkICpfX2FsbG9jX3Jlc2Vy
dmVkX3BlcmNwdShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWduKTsKZXh0ZXJuIGJvb2wgX19pc19r
ZXJuZWxfcGVyY3B1X2FkZHJlc3ModW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nICpj
YW5fYWRkcik7CmV4dGVybiBib29sIGlzX2tlcm5lbF9wZXJjcHVfYWRkcmVzcyh1bnNpZ25lZCBs
b25nIGFkZHIpOwoKCgoKCmV4dGVybiB2b2lkICpfX2FsbG9jX3BlcmNwdV9nZnAoc2l6ZV90IHNp
emUsIHNpemVfdCBhbGlnbiwgZ2ZwX3QgZ2ZwKTsKZXh0ZXJuIHZvaWQgKl9fYWxsb2NfcGVyY3B1
KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ24pOwpleHRlcm4gdm9pZCBmcmVlX3BlcmNwdSh2b2lk
ICpfX3BkYXRhKTsKZXh0ZXJuIHBoeXNfYWRkcl90IHBlcl9jcHVfcHRyX3RvX3BoeXModm9pZCAq
YWRkcik7CiMgMTQ2ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LmgiCmV4dGVybiB1bnNpZ25lZCBs
b25nIHBjcHVfbnJfcGFnZXModm9pZCk7CiMgMTAgIi4vaW5jbHVkZS9saW51eC9hcmNoX3RvcG9s
b2d5LmgiIDIKCnZvaWQgdG9wb2xvZ3lfbm9ybWFsaXplX2NwdV9zY2FsZSh2b2lkKTsKaW50IHRv
cG9sb2d5X3VwZGF0ZV9jcHVfdG9wb2xvZ3kodm9pZCk7CgpzdHJ1Y3QgZGV2aWNlX25vZGU7CmJv
b2wgdG9wb2xvZ3lfcGFyc2VfY3B1X2NhcGFjaXR5KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY3B1X25v
ZGUsIGludCBjcHUpOwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJj
cHUiICIiKSkpIF9fdHlwZW9mX18odW5zaWduZWQgbG9uZykgY3B1X3NjYWxlOwoKc3RydWN0IHNj
aGVkX2RvbWFpbjsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkKdW5zaWduZWQgbG9uZyB0b3BvbG9neV9nZXRfY3B1X3NjYWxlKGludCBjcHUp
CnsKIHJldHVybiAoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigo
JihjcHVfc2NhbGUpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hp
bGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIp
IDogIjAiKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgmKGNwdV9zY2FsZSkpKSkpOyAo
dHlwZW9mKCh0eXBlb2YoKigoJihjcHVfc2NhbGUpKSkpICopKCgmKGNwdV9zY2FsZSkpKSkpIChf
X3B0ciArICgoKF9fcGVyX2NwdV9vZmZzZXRbKGNwdSldKSkpKTsgfSk7IH0pKTsKfQoKdm9pZCB0
b3BvbG9neV9zZXRfY3B1X3NjYWxlKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGxvbmcgY2Fw
YWNpdHkpOwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLi5wZXJjcHUiICIi
KSkpIF9fdHlwZW9mX18odW5zaWduZWQgbG9uZykgZnJlcV9zY2FsZTsKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpCnVuc2lnbmVkIGxvbmcg
dG9wb2xvZ3lfZ2V0X2ZyZXFfc2NhbGUoaW50IGNwdSkKewogcmV0dXJuICgqKHsgZG8geyBjb25z
dCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGZyZXFfc2NhbGUpKSArIDApKSgodm9p
ZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25n
IF9fcHRyOyBfX2FzbV9fICgiIiA6ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihmcmVx
X3NjYWxlKSkpKSAqKSgoJihmcmVxX3NjYWxlKSkpKSk7ICh0eXBlb2YoKHR5cGVvZigqKCgmKGZy
ZXFfc2NhbGUpKSkpICopKCgmKGZyZXFfc2NhbGUpKSkpKSAoX19wdHIgKyAoKChfX3Blcl9jcHVf
b2Zmc2V0WyhjcHUpXSkpKSk7IH0pOyB9KSk7Cn0KCnN0cnVjdCBjcHVfdG9wb2xvZ3kgewogaW50
IHRocmVhZF9pZDsKIGludCBjb3JlX2lkOwogaW50IHBhY2thZ2VfaWQ7CiBpbnQgbGxjX2lkOwog
Y3B1bWFza190IHRocmVhZF9zaWJsaW5nOwogY3B1bWFza190IGNvcmVfc2libGluZzsKIGNwdW1h
c2tfdCBsbGNfc2libGluZzsKfTsKIyAzMSAiLi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiIDIK
IyA0NiAiLi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgiCmludCBhcmNoX3VwZGF0ZV9jcHVfdG9w
b2xvZ3kodm9pZCk7CiMgNzUgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIgpleHRlcm4gaW50
IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuZGF0YS4ucmVhZF9tb3N0bHkiKSkpIG5vZGVf
cmVjbGFpbV9kaXN0YW5jZTsKIyAxNzcgIi4vaW5jbHVkZS9saW51eC90b3BvbG9neS5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
bnVtYV9tZW1faWQodm9pZCkKewogcmV0dXJuIG51bWFfbm9kZV9pZCgpOwp9CgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBub2Rl
X3RvX21lbV9ub2RlKGludCBub2RlKQp7CiByZXR1cm4gbm9kZTsKfQojIDIxOSAiLi9pbmNsdWRl
L2xpbnV4L3RvcG9sb2d5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVfc210X21hc2soaW50
IGNwdSkKewogcmV0dXJuICgoKih7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5
cGVvZigoJihjcHVfc2libGluZ19tYXApKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92
ZXJpZnk7IH0gd2hpbGUgKDApOyAoeyB1bnNpZ25lZCBsb25nIF9fcHRyOyBfX2FzbV9fICgiIiA6
ICI9ciIoX19wdHIpIDogIjAiKCh0eXBlb2YoKigoJihjcHVfc2libGluZ19tYXApKSkpICopKCgm
KGNwdV9zaWJsaW5nX21hcCkpKSkpOyAodHlwZW9mKCh0eXBlb2YoKigoJihjcHVfc2libGluZ19t
YXApKSkpICopKCgmKGNwdV9zaWJsaW5nX21hcCkpKSkpIChfX3B0ciArICgoKF9fcGVyX2NwdV9v
ZmZzZXRbKGNwdSldKSkpKTsgfSk7IH0pKSk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3B1
X2NwdV9tYXNrKGludCBjcHUpCnsKIHJldHVybiAoKHZvaWQpKCh2b2lkKShjcHUpLDApLCAoKGNv
bnN0IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSk7Cn0KIyAxMCAiLi9pbmNs
dWRlL2xpbnV4L2dmcC5oIiAyCgpzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CiMgMzA4ICIuL2luY2x1
ZGUvbGludXgvZ2ZwLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCBnZnBmbGFnc190b19taWdyYXRldHlwZShjb25zdCBnZnBfdCBn
ZnBfZmxhZ3MpCnsKICgodm9pZCkoc2l6ZW9mKCggbG9uZykoKGdmcF9mbGFncyAmICgoKCBnZnBf
dCkweDEwdSl8KCggZ2ZwX3QpMHgwOHUpKSkgPT0gKCgoIGdmcF90KTB4MTB1KXwoKCBnZnBfdCkw
eDA4dSkpKSkpKTsKIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMzExKHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiKDFV
TCA8PCBHRlBfTU9WQUJMRV9TSElGVCkgIT0gX19fR0ZQX01PVkFCTEUiKSkpOyBpZiAoISghKCgx
VUwgPDwgMykgIT0gMHgwOHUpKSkgX19jb21waWxldGltZV9hc3NlcnRfMzExKCk7IH0gd2hpbGUg
KDApOwogZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8zMTIodm9pZCkgX19h
dHRyaWJ1dGVfXygoX19lcnJvcl9fKCJCVUlMRF9CVUdfT04gZmFpbGVkOiAiICIoX19fR0ZQX01P
VkFCTEUgPj4gR0ZQX01PVkFCTEVfU0hJRlQpICE9IE1JR1JBVEVfTU9WQUJMRSIpKSk7IGlmICgh
KCEoKDB4MDh1ID4+IDMpICE9IE1JR1JBVEVfTU9WQUJMRSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8zMTIoKTsgfSB3aGlsZSAoMCk7CgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEocGFnZV9ncm91
cF9ieV9tb2JpbGl0eV9kaXNhYmxlZCksIDApKQogIHJldHVybiBNSUdSQVRFX1VOTU9WQUJMRTsK
CgogcmV0dXJuIChnZnBfZmxhZ3MgJiAoKCggZ2ZwX3QpMHgxMHUpfCgoIGdmcF90KTB4MDh1KSkp
ID4+IDM7Cn0KCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBnZnBmbGFnc19hbGxvd19ibG9ja2luZyhjb25zdCBnZnBfdCBnZnBf
ZmxhZ3MpCnsKIHJldHVybiAhIShnZnBfZmxhZ3MgJiAoKCBnZnBfdCkweDQwMHUpKTsKfQojIDM0
NSAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdmcGZsYWdzX25vcm1hbF9jb250ZXh0KGNv
bnN0IGdmcF90IGdmcF9mbGFncykKewogcmV0dXJuIChnZnBfZmxhZ3MgJiAoKCggZ2ZwX3QpMHg0
MDB1KSB8ICgoIGdmcF90KTB4MjAwMDB1KSkpID09CiAgKCggZ2ZwX3QpMHg0MDB1KTsKfQojIDQ0
MSAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIHpvbmVfdHlwZSBnZnBfem9uZShnZnBfdCBm
bGFncykKewogZW51bSB6b25lX3R5cGUgejsKIGludCBiaXQgPSAoIGludCkgKGZsYWdzICYgKCgo
IGdmcF90KTB4MDF1KXwoKCBnZnBfdCkweDAydSl8KCggZ2ZwX3QpMHgwNHUpfCgoIGdmcF90KTB4
MDh1KSkpOwoKIHogPSAoKCAoWk9ORV9OT1JNQUwgPDwgMCAqIDIpIHwgKFpPTkVfRE1BIDw8IDB4
MDF1ICogMikgfCAoWk9ORV9OT1JNQUwgPDwgMHgwMnUgKiAyKSB8IChaT05FX0RNQTMyIDw8IDB4
MDR1ICogMikgfCAoWk9ORV9OT1JNQUwgPDwgMHgwOHUgKiAyKSB8IChaT05FX0RNQSA8PCAoMHgw
OHUgfCAweDAxdSkgKiAyKSB8IChaT05FX01PVkFCTEUgPDwgKDB4MDh1IHwgMHgwMnUpICogMikg
fCAoWk9ORV9ETUEzMiA8PCAoMHgwOHUgfCAweDA0dSkgKiAyKSkgPj4gKGJpdCAqIDIpKSAmCiAg
ICAgICgoMSA8PCAyKSAtIDEpOwogKCh2b2lkKShzaXplb2YoKCBsb25nKSgoKCAxIDw8ICgweDAx
dSB8IDB4MDJ1KSB8IDEgPDwgKDB4MDF1IHwgMHgwNHUpIHwgMSA8PCAoMHgwNHUgfCAweDAydSkg
fCAxIDw8ICgweDAxdSB8IDB4MDR1IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDAydSB8IDB4
MDF1KSB8IDEgPDwgKDB4MDh1IHwgMHgwNHUgfCAweDAxdSkgfCAxIDw8ICgweDA4dSB8IDB4MDR1
IHwgMHgwMnUpIHwgMSA8PCAoMHgwOHUgfCAweDA0dSB8IDB4MDF1IHwgMHgwMnUpICkgPj4gYml0
KSAmIDEpKSkpOwogcmV0dXJuIHo7Cn0KIyA0NTkgIi4vaW5jbHVkZS9saW51eC9nZnAuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IGdmcF96b25lbGlzdChnZnBfdCBmbGFncykKewoKCgoKIHJldHVybiBaT05FTElTVF9GQUxMQkFD
SzsKfQojIDQ3NyAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qgem9uZWxpc3QgKm5vZGVf
em9uZWxpc3QoaW50IG5pZCwgZ2ZwX3QgZmxhZ3MpCnsKIHJldHVybiAoJmNvbnRpZ19wYWdlX2Rh
dGEpLT5ub2RlX3pvbmVsaXN0cyArIGdmcF96b25lbGlzdChmbGFncyk7Cn0KCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGFyY2hf
ZnJlZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgb3JkZXIpIHsgfQoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXJjaF9h
bGxvY19wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgb3JkZXIpIHsgfQoKCnN0cnVjdCBwYWdl
ICoKX19hbGxvY19wYWdlc19ub2RlbWFzayhnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9y
ZGVyLCBpbnQgcHJlZmVycmVkX25pZCwKICAgICAgIG5vZGVtYXNrX3QgKm5vZGVtYXNrKTsKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0
cnVjdCBwYWdlICoKX19hbGxvY19wYWdlcyhnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9y
ZGVyLCBpbnQgcHJlZmVycmVkX25pZCkKewogcmV0dXJuIF9fYWxsb2NfcGFnZXNfbm9kZW1hc2so
Z2ZwX21hc2ssIG9yZGVyLCBwcmVmZXJyZWRfbmlkLCAoKHZvaWQgKikwKSk7Cn0KCgoKCgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgcGFnZSAqCl9fYWxsb2NfcGFnZXNfbm9kZShpbnQgbmlkLCBnZnBfdCBnZnBfbWFzaywgdW5z
aWduZWQgaW50IG9yZGVyKQp7CiAoKHZvaWQpKHNpemVvZigoIGxvbmcpKG5pZCA8IDAgfHwgbmlk
ID49ICgxIDw8IDApKSkpKTsKICgodm9pZCkoc2l6ZW9mKCggbG9uZykoKGdmcF9tYXNrICYgKCgg
Z2ZwX3QpMHgyMDAwMDB1KSkgJiYgIW5vZGVfc3RhdGUoKG5pZCksIE5fT05MSU5FKSkpKSk7Cgog
cmV0dXJuIF9fYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyLCBuaWQpOwp9CgoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBwYWdlICphbGxvY19wYWdlc19ub2RlKGludCBuaWQsIGdmcF90IGdmcF9tYXNrLAogICAgICB1
bnNpZ25lZCBpbnQgb3JkZXIpCnsKIGlmIChuaWQgPT0gKC0xKSkKICBuaWQgPSBudW1hX21lbV9p
ZCgpOwoKIHJldHVybiBfX2FsbG9jX3BhZ2VzX25vZGUobmlkLCBnZnBfbWFzaywgb3JkZXIpOwp9
CiMgNTUzICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiCmV4dGVybiB1bnNpZ25lZCBsb25nIF9fZ2V0
X2ZyZWVfcGFnZXMoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcik7CmV4dGVybiB1
bnNpZ25lZCBsb25nIGdldF96ZXJvZWRfcGFnZShnZnBfdCBnZnBfbWFzayk7Cgp2b2lkICphbGxv
Y19wYWdlc19leGFjdChzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwX21hc2spOwp2b2lkIGZyZWVfcGFn
ZXNfZXhhY3Qodm9pZCAqdmlydCwgc2l6ZV90IHNpemUpOwp2b2lkICogX19hdHRyaWJ1dGVfXygo
X19zZWN0aW9uX18oIi5tZW1pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGFsbG9jX3BhZ2VzX2V4YWN0
X25pZChpbnQgbmlkLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwX21hc2spOwoKCgoKCgoKZXh0ZXJu
IHZvaWQgX19mcmVlX3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIp
OwpleHRlcm4gdm9pZCBmcmVlX3BhZ2VzKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgaW50
IG9yZGVyKTsKZXh0ZXJuIHZvaWQgZnJlZV91bnJlZl9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKTsK
ZXh0ZXJuIHZvaWQgZnJlZV91bnJlZl9wYWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqbGlzdCk7
CgpzdHJ1Y3QgcGFnZV9mcmFnX2NhY2hlOwpleHRlcm4gdm9pZCBfX3BhZ2VfZnJhZ19jYWNoZV9k
cmFpbihzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IGNvdW50KTsKZXh0ZXJuIHZvaWQg
KnBhZ2VfZnJhZ19hbGxvYyhzdHJ1Y3QgcGFnZV9mcmFnX2NhY2hlICpuYywKICAgICAgICB1bnNp
Z25lZCBpbnQgZnJhZ3N6LCBnZnBfdCBnZnBfbWFzayk7CmV4dGVybiB2b2lkIHBhZ2VfZnJhZ19m
cmVlKHZvaWQgKmFkZHIpOwoKCgoKdm9pZCBwYWdlX2FsbG9jX2luaXQodm9pZCk7CnZvaWQgZHJh
aW5fem9uZV9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSwgc3RydWN0IHBlcl9jcHVfcGFnZXMgKnBj
cCk7CnZvaWQgZHJhaW5fYWxsX3BhZ2VzKHN0cnVjdCB6b25lICp6b25lKTsKdm9pZCBkcmFpbl9s
b2NhbF9wYWdlcyhzdHJ1Y3Qgem9uZSAqem9uZSk7Cgp2b2lkIHBhZ2VfYWxsb2NfaW5pdF9sYXRl
KHZvaWQpOwojIDU5NCAiLi9pbmNsdWRlL2xpbnV4L2dmcC5oIgpleHRlcm4gZ2ZwX3QgZ2ZwX2Fs
bG93ZWRfbWFzazsKCgpib29sIGdmcF9wZm1lbWFsbG9jX2FsbG93ZWQoZ2ZwX3QgZ2ZwX21hc2sp
OwoKZXh0ZXJuIHZvaWQgcG1fcmVzdHJpY3RfZ2ZwX21hc2sodm9pZCk7CmV4dGVybiB2b2lkIHBt
X3Jlc3RvcmVfZ2ZwX21hc2sodm9pZCk7CgoKZXh0ZXJuIGJvb2wgcG1fc3VzcGVuZGVkX3N0b3Jh
Z2Uodm9pZCk7CiMgNjEzICIuL2luY2x1ZGUvbGludXgvZ2ZwLmgiCmV4dGVybiBpbnQgYWxsb2Nf
Y29udGlnX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAogICAg
ICAgICB1bnNpZ25lZCBtaWdyYXRldHlwZSwgZ2ZwX3QgZ2ZwX21hc2spOwpleHRlcm4gc3RydWN0
IHBhZ2UgKmFsbG9jX2NvbnRpZ19wYWdlcyh1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBnZnBfdCBn
ZnBfbWFzaywKICAgICAgICAgICBpbnQgbmlkLCBub2RlbWFza190ICpub2RlbWFzayk7Cgp2b2lk
IGZyZWVfY29udGlnX3JhbmdlKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBpbnQgbnJfcGFn
ZXMpOwojIDE2ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L292ZXJmbG93LmgiIDEKIyAyNTMgIi4vaW5jbHVkZS9saW51eC9vdmVyZmxvdy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc2l6ZV90IGFycmF5X3NpemUoc2l6ZV90
IGEsIHNpemVfdCBiKQp7CiBzaXplX3QgYnl0ZXM7CgogaWYgKCh7IHR5cGVvZihhKSBfX2EgPSAo
YSk7IHR5cGVvZihiKSBfX2IgPSAoYik7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAo
dm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVs
X292ZXJmbG93KF9fYSwgX19iLCBfX2QpOyB9KSkKICByZXR1cm4gKH4oc2l6ZV90KTApOwoKIHJl
dHVybiBieXRlczsKfQojIDI3NSAiLi9pbmNsdWRlL2xpbnV4L292ZXJmbG93LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzaXplX3QgYXJyYXkzX3NpemUoc2l6ZV90
IGEsIHNpemVfdCBiLCBzaXplX3QgYykKewogc2l6ZV90IGJ5dGVzOwoKIGlmICgoeyB0eXBlb2Yo
YSkgX19hID0gKGEpOyB0eXBlb2YoYikgX19iID0gKGIpOyB0eXBlb2YoJmJ5dGVzKSBfX2QgPSAo
JmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZfX2EgPT0gX19kKTsgX19i
dWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpCiAgcmV0dXJuICh+KHNpemVf
dCkwKTsKIGlmICgoeyB0eXBlb2YoYnl0ZXMpIF9fYSA9IChieXRlcyk7IHR5cGVvZihjKSBfX2Ig
PSAoYyk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9f
Yik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19i
LCBfX2QpOyB9KSkKICByZXR1cm4gKH4oc2l6ZV90KTApOwoKIHJldHVybiBieXRlczsKfQoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzaXplX3QgX19hYl9jX3Np
emUoc2l6ZV90IGEsIHNpemVfdCBiLCBzaXplX3QgYykKewogc2l6ZV90IGJ5dGVzOwoKIGlmICgo
eyB0eXBlb2YoYSkgX19hID0gKGEpOyB0eXBlb2YoYikgX19iID0gKGIpOyB0eXBlb2YoJmJ5dGVz
KSBfX2QgPSAoJmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZfX2EgPT0g
X19kKTsgX19idWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpCiAgcmV0dXJu
ICh+KHNpemVfdCkwKTsKIGlmICgoeyB0eXBlb2YoYnl0ZXMpIF9fYSA9IChieXRlcyk7IHR5cGVv
ZihjKSBfX2IgPSAoYyk7IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZf
X2EgPT0gJl9fYik7ICh2b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fYWRkX292ZXJmbG93
KF9fYSwgX19iLCBfX2QpOyB9KSkKICByZXR1cm4gKH4oc2l6ZV90KTApOwoKIHJldHVybiBieXRl
czsKfQojIDE3ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGlu
dXgvcGVyY3B1LXJlZmNvdW50LmgiIDEKIyA1OSAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZj
b3VudC5oIgpzdHJ1Y3QgcGVyY3B1X3JlZjsKdHlwZWRlZiB2b2lkIChwZXJjcHVfcmVmX2Z1bmNf
dCkoc3RydWN0IHBlcmNwdV9yZWYgKik7CgoKZW51bSB7CiBfX1BFUkNQVV9SRUZfQVRPTUlDID0g
MUxVIDw8IDAsCiBfX1BFUkNQVV9SRUZfREVBRCA9IDFMVSA8PCAxLAogX19QRVJDUFVfUkVGX0FU
T01JQ19ERUFEID0gX19QRVJDUFVfUkVGX0FUT01JQyB8IF9fUEVSQ1BVX1JFRl9ERUFELAoKIF9f
UEVSQ1BVX1JFRl9GTEFHX0JJVFMgPSAyLAp9OwoKCmVudW0gewoKCgoKCgoKIFBFUkNQVV9SRUZf
SU5JVF9BVE9NSUMgPSAxIDw8IDAsCgoKCgoKCiBQRVJDUFVfUkVGX0lOSVRfREVBRCA9IDEgPDwg
MSwKCgoKCiBQRVJDUFVfUkVGX0FMTE9XX1JFSU5JVCA9IDEgPDwgMiwKfTsKCnN0cnVjdCBwZXJj
cHVfcmVmIHsKIGF0b21pY19sb25nX3QgY291bnQ7CgoKCgogdW5zaWduZWQgbG9uZyBwZXJjcHVf
Y291bnRfcHRyOwogcGVyY3B1X3JlZl9mdW5jX3QgKnJlbGVhc2U7CiBwZXJjcHVfcmVmX2Z1bmNf
dCAqY29uZmlybV9zd2l0Y2g7CiBib29sIGZvcmNlX2F0b21pYzoxOwogYm9vbCBhbGxvd19yZWlu
aXQ6MTsKIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKfTsKCmludCBfX2F0dHJpYnV0ZV9fKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgcGVyY3B1X3JlZl9pbml0KHN0cnVjdCBwZXJjcHVfcmVm
ICpyZWYsCiAgICAgcGVyY3B1X3JlZl9mdW5jX3QgKnJlbGVhc2UsIHVuc2lnbmVkIGludCBmbGFn
cywKICAgICBnZnBfdCBnZnApOwp2b2lkIHBlcmNwdV9yZWZfZXhpdChzdHJ1Y3QgcGVyY3B1X3Jl
ZiAqcmVmKTsKdm9pZCBwZXJjcHVfcmVmX3N3aXRjaF90b19hdG9taWMoc3RydWN0IHBlcmNwdV9y
ZWYgKnJlZiwKICAgICBwZXJjcHVfcmVmX2Z1bmNfdCAqY29uZmlybV9zd2l0Y2gpOwp2b2lkIHBl
cmNwdV9yZWZfc3dpdGNoX3RvX2F0b21pY19zeW5jKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpOwp2
b2lkIHBlcmNwdV9yZWZfc3dpdGNoX3RvX3BlcmNwdShzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKTsK
dm9pZCBwZXJjcHVfcmVmX2tpbGxfYW5kX2NvbmZpcm0oc3RydWN0IHBlcmNwdV9yZWYgKnJlZiwK
ICAgICBwZXJjcHVfcmVmX2Z1bmNfdCAqY29uZmlybV9raWxsKTsKdm9pZCBwZXJjcHVfcmVmX3Jl
c3VycmVjdChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKTsKdm9pZCBwZXJjcHVfcmVmX3JlaW5pdChz
dHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKTsKIyAxMzQgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVm
Y291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX2tpbGwoc3RydWN0IHBlcmNwdV9yZWYgKnJlZikKewog
cGVyY3B1X3JlZl9raWxsX2FuZF9jb25maXJtKHJlZiwgKCh2b2lkICopMCkpOwp9CgoKCgoKCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIF9fcmVmX2lzX3BlcmNwdShzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmLAogICAgICAgdW5zaWdu
ZWQgbG9uZyAqKnBlcmNwdV9jb3VudHApCnsKIHVuc2lnbmVkIGxvbmcgcGVyY3B1X3B0cjsKIyAx
NjEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKIHBlcmNwdV9wdHIgPSAoeyB1
bmlvbiB7IHR5cGVvZihyZWYtPnBlcmNwdV9jb3VudF9wdHIpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYocmVmLT5wZXJjcHVfY291bnRfcHRyKSwg
X191Ll9fYywgc2l6ZW9mKHJlZi0+cGVyY3B1X2NvdW50X3B0cikpOyBlbHNlIF9fcmVhZF9vbmNl
X3NpemVfbm9jaGVjaygmKHJlZi0+cGVyY3B1X2NvdW50X3B0ciksIF9fdS5fX2MsIHNpemVvZihy
ZWYtPnBlcmNwdV9jb3VudF9wdHIpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsK
CgoKCgoKCiBpZiAoX19idWlsdGluX2V4cGVjdCghIShwZXJjcHVfcHRyICYgX19QRVJDUFVfUkVG
X0FUT01JQ19ERUFEKSwgMCkpCiAgcmV0dXJuIGZhbHNlOwoKICpwZXJjcHVfY291bnRwID0gKHVu
c2lnbmVkIGxvbmcgKilwZXJjcHVfcHRyOwogcmV0dXJuIHRydWU7Cn0KIyAxODUgIi4vaW5jbHVk
ZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfcmVmX2dldF9tYW55KHN0cnVj
dCBwZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCnsKIHVuc2lnbmVkIGxvbmcgKnBl
cmNwdV9jb3VudDsKCiByY3VfcmVhZF9sb2NrKCk7CgogaWYgKF9fcmVmX2lzX3BlcmNwdShyZWYs
ICZwZXJjcHVfY291bnQpKQogIGRvIHsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAo
dHlwZW9mKCgmKCpwZXJjcHVfY291bnQpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92
ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKCpwZXJjcHVfY291bnQpKSB7IGNhc2Ug
MTogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGlu
dCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAo
bnIpID09IC0xKSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsg
cGFvX3RtcF9fID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVy
Y3B1X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgi
aW5jYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIg
KChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2
b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRp
bGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkgOiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
YXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAo
cGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZv
bGF0aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjog
ZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBw
YW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAobnIp
ID09IC0xKSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFv
X3RtcF9fID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1
X2NvdW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5j
YiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChw
YW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xh
dGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUg
KCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkg
OiAicmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNt
IHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0
aWxlICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkp
OyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDogZG8g
eyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9f
SURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAobnIpID09
IC0xKSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3Rt
cF9fID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2Nv
dW50KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9f
VF9fKShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGls
ZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJh
ZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAi
cmkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZv
bGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lE
X18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxl
ICgiZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBl
bHNlIGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgODogZG8geyB0
eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURf
XyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcChucikgJiYgKChucikgPT0gMSB8fCAobnIpID09IC0x
KSkgPyAoaW50KShucikgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKG5yKTsgKHZvaWQpcGFvX3RtcF9fOyB9IHN3aXRjaCAoc2l6ZW9mKCgqcGVyY3B1X2NvdW50
KSkpIHsgY2FzZSAxOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jYiAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9f
SURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjYiAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGIgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJxaSIgKChwYW9fVF9f
KShucikpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAo
ImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGR3
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmki
ICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBicmVhazsgY2FzZSA4OiBpZiAocGFvX0lEX18g
PT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgi
ZGVjcSAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGFzbSB2b2xhdGlsZSAoImFkZHEgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSA6ICJyZSIgKChwYW9fVF9fKShucikpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsKIGVsc2UKICBhdG9taWNf
bG9uZ19hZGQobnIsICZyZWYtPmNvdW50KTsKCiByY3VfcmVhZF91bmxvY2soKTsKfQojIDIwNyAi
Li9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9yZWZfZ2V0KHN0
cnVjdCBwZXJjcHVfcmVmICpyZWYpCnsKIHBlcmNwdV9yZWZfZ2V0X21hbnkocmVmLCAxKTsKfQoj
IDIyMiAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHBlcmNwdV9yZWZf
dHJ5Z2V0X21hbnkoc3RydWN0IHBlcmNwdV9yZWYgKnJlZiwKICAgICAgIHVuc2lnbmVkIGxvbmcg
bnIpCnsKIHVuc2lnbmVkIGxvbmcgKnBlcmNwdV9jb3VudDsKIGJvb2wgcmV0OwoKIHJjdV9yZWFk
X2xvY2soKTsKCiBpZiAoX19yZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNwdV9jb3VudCkpIHsKICBk
byB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5ID0gKHR5cGVvZigoJigqcGVyY3B1X2Nv
dW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsg
c3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkgeyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBl
b2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWls
dGluX2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCko
bnIpIDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2Ug
MTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJy
ZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18p
KG5yKSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgi
aW5jbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNl
IGlmIChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwg
JTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIg
KChwYW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2
b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRp
bGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50
KSkgOiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRvIHsgdHlwZWRlZiB0eXBlb2Yo
KCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGlu
X2NvbnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCkobnIp
IDogMDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2b2lk
KXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTog
aWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5y
KSkpOyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5j
bCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlm
IChwYW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChw
YW9fVF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xh
dGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUg
KCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkg
OiAicmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6
ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpw
ZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2Nv
bnN0YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCkobnIpIDog
MDsgaWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2b2lkKXBh
b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTogaWYg
KHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2
b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBj
YXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkp
OyBicmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChw
YW9fSURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9f
VF9fKShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGls
ZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJh
ZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAi
cmUiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJj
cHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0
YW50X3AobnIpICYmICgobnIpID09IDEgfHwgKG5yKSA9PSAtMSkpID8gKGludCkobnIpIDogMDsg
aWYgKDApIHsgcGFvX1RfXyBwYW9fdG1wX187IHBhb190bXBfXyA9IChucik7ICh2b2lkKXBhb190
bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBh
b19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xh
dGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBjYXNl
IDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0x
KSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKG5yKSkpOyBi
cmVhazsgY2FzZSA0OiBpZiAocGFvX0lEX18gPT0gMSkgYXNtIHZvbGF0aWxlICgiaW5jbCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGlmIChwYW9f
SURfXyA9PSAtMSkgYXNtIHZvbGF0aWxlICgiZGVjbCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkpOyBlbHNlIGFzbSB2b2xhdGlsZSAoImFkZGwgJTEsICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSA6ICJyaSIgKChwYW9fVF9f
KShucikpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAo
ImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRx
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUi
ICgocGFvX1RfXykobnIpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9
IH0gd2hpbGUgKDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7
YnJlYWs7IH0gfSB3aGlsZSAoMCk7CiAgcmV0ID0gdHJ1ZTsKIH0gZWxzZSB7CiAgcmV0ID0gYXRv
bWljX2xvbmdfYWRkX3VubGVzcygmcmVmLT5jb3VudCwgbnIsIDApOwogfQoKIHJjdV9yZWFkX3Vu
bG9jaygpOwoKIHJldHVybiByZXQ7Cn0KIyAyNTEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVm
Y291bnQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBwZXJjcHVfcmVmX3RyeWdldChzdHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQp7
CiByZXR1cm4gcGVyY3B1X3JlZl90cnlnZXRfbWFueShyZWYsIDEpOwp9CiMgMjcxICIuL2luY2x1
ZGUvbGludXgvcGVyY3B1LXJlZmNvdW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcGVyY3B1X3JlZl90cnlnZXRfbGl2ZShz
dHJ1Y3QgcGVyY3B1X3JlZiAqcmVmKQp7CiB1bnNpZ25lZCBsb25nICpwZXJjcHVfY291bnQ7CiBi
b29sIHJldCA9IGZhbHNlOwoKIHJjdV9yZWFkX2xvY2soKTsKCiBpZiAoX19yZWZfaXNfcGVyY3B1
KHJlZiwgJnBlcmNwdV9jb3VudCkpIHsKICBkbyB7IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVy
aWZ5ID0gKHR5cGVvZigoJigqcGVyY3B1X2NvdW50KSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQp
X192cHBfdmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZigqcGVyY3B1X2NvdW50KSkg
eyBjYXNlIDE6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBj
b25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAx
IHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBf
XzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpw
ZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUg
KCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRk
YiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFp
IiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20g
dm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0
aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9
PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
YXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChw
YW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9s
YXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZh
dWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDI6IGRv
IHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFv
X0lEX18gPSAoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAt
MSkpID8gKGludCkoMSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9f
ID0gKDEpOyAodm9pZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQp
KSkgeyBjYXNlIDE6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUi
ImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19J
RF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19UX18p
KDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJp
bmN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2Ug
aWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAl
MSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAo
KHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9s
YXRpbGUgKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxl
ICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
IDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAx
KSBhc20gdm9sYXRpbGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJj
cHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNx
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNt
IHZvbGF0aWxlICgiYWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpIDogInJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDQ6IGRvIHsgdHlwZWRlZiB0
eXBlb2YoKCpwZXJjcHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19i
dWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCko
MSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9p
ZClwYW9fdG1wX187IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBh
c20gdm9sYXRpbGUgKCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVf
Y291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFr
OyBjYXNlIDI6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdz
IiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9f
ID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEp
KSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNs
ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRp
bGUgKCJpbmNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7
IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgi
YWRkcSAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDog
InJlIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgp
OyB9IH0gd2hpbGUgKDApO2JyZWFrOyBjYXNlIDg6IGRvIHsgdHlwZWRlZiB0eXBlb2YoKCpwZXJj
cHVfY291bnQpKSBwYW9fVF9fOyBjb25zdCBpbnQgcGFvX0lEX18gPSAoX19idWlsdGluX2NvbnN0
YW50X3AoMSkgJiYgKCgxKSA9PSAxIHx8ICgxKSA9PSAtMSkpID8gKGludCkoMSkgOiAwOyBpZiAo
MCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKDEpOyAodm9pZClwYW9fdG1wX187
IH0gc3dpdGNoIChzaXplb2YoKCpwZXJjcHVfY291bnQpKSkgeyBjYXNlIDE6IGlmIChwYW9fSURf
XyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUg
KCJkZWNiICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVs
c2UgYXNtIHZvbGF0aWxlICgiYWRkYiAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpIDogInFpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBjYXNlIDI6IGlm
IChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmN3ICIiJSUiImdzIiI6IiAiJSIgIjAi
IDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20g
dm9sYXRpbGUgKCJkZWN3ICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291
bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkdyAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7IGJyZWFrOyBj
YXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNsICIiJSUiImdzIiI6
IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpw
ZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKDEpKSk7
IGJyZWFrOyBjYXNlIDg6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gdm9sYXRpbGUgKCJpbmNxICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgaWYgKHBh
b19JRF9fID09IC0xKSBhc20gdm9sYXRpbGUgKCJkZWNxICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpwZXJjcHVfY291bnQpKSk7IGVsc2UgYXNtIHZvbGF0aWxlICgiYWRkcSAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpIDogInJlIiAoKHBhb19U
X18pKDEpKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IH0gd2hpbGUg
KDApO2JyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7YnJlYWs7IH0g
fSB3aGlsZSAoMCk7CiAgcmV0ID0gdHJ1ZTsKIH0gZWxzZSBpZiAoIShyZWYtPnBlcmNwdV9jb3Vu
dF9wdHIgJiBfX1BFUkNQVV9SRUZfREVBRCkpIHsKICByZXQgPSBhdG9taWNfbG9uZ19pbmNfbm90
X3plcm8oJnJlZi0+Y291bnQpOwogfQoKIHJjdV9yZWFkX3VubG9jaygpOwoKIHJldHVybiByZXQ7
Cn0KIyAzMDAgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcmVmY291bnQuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVf
cmVmX3B1dF9tYW55KHN0cnVjdCBwZXJjcHVfcmVmICpyZWYsIHVuc2lnbmVkIGxvbmcgbnIpCnsK
IHVuc2lnbmVkIGxvbmcgKnBlcmNwdV9jb3VudDsKCiByY3VfcmVhZF9sb2NrKCk7CgogaWYgKF9f
cmVmX2lzX3BlcmNwdShyZWYsICZwZXJjcHVfY291bnQpKQogIGRvIHsgZG8geyBjb25zdCB2b2lk
ICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKCpwZXJjcHVfY291bnQpKSArIDApKSgodm9pZCAq
KTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKCpwZXJj
cHVfY291bnQpKSB7IGNhc2UgMTogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3VudCkp
IHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgtKHR5
cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShu
cikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0xKSkgPyAoaW50
KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFv
X3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSk7ICh2b2lk
KXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2UgMTog
aWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBl
cmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFz
bSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9s
YXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2Nv
dW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsg
YnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2wgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRsICUxLCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFvX1Rf
XykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBh
b19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xh
dGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkp
KTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9j
b3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3
aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9jb3Vu
dCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgt
KHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVfY291bnQp
KShucikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0xKSkgPyAo
aW50KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBhb19UX18g
cGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSk7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNhc2Ug
MTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2Yo
KnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEp
IGFzbSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY3cg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20g
dm9sYXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1
X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkp
KTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2wg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAo
cGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRsICUxLCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFv
X1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgODogaWYg
KHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2
b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3Vu
dCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNw
dV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0g
fSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNwdV9j
b3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRf
cCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVfY291
bnQpKShucikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0xKSkg
PyAoaW50KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBhb19U
X18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSk7
ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7IGNh
c2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBl
b2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09
IDEpIGFzbSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBl
cmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRl
Y3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBh
c20gdm9sYXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVy
Y3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5y
KSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImlu
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBp
ZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRsICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmkiICgo
cGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgODog
aWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9j
b3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnBl
cmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7
IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgODogZG8geyB0eXBlZGVmIHR5cGVvZigoKnBlcmNw
dV9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3Rh
bnRfcCgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSAmJiAoKC0odHlwZW9mKCpwZXJjcHVf
Y291bnQpKShucikpID09IDEgfHwgKC0odHlwZW9mKCpwZXJjcHVfY291bnQpKShucikpID09IC0x
KSkgPyAoaW50KSgtKHR5cGVvZigqcGVyY3B1X2NvdW50KSkobnIpKSA6IDA7IGlmICgwKSB7IHBh
b19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5y
KSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnBlcmNwdV9jb3VudCkpKSB7
IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRiICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0
eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAo
ImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBhc20gdm9sYXRpbGUgKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
cGVyY3B1X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkp
KG5yKSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAo
ImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSB2b2xhdGlsZSAoImRlY2wgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRs
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmki
ICgocGFvX1RfXykoLSh0eXBlb2YoKnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGNhc2Ug
ODogaWYgKHBhb19JRF9fID09IDEpIGFzbSB2b2xhdGlsZSAoImluY3EgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnBlcmNwdV9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSB2b2xhdGlsZSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnBlcmNw
dV9jb3VudCkpKTsgZWxzZSBhc20gdm9sYXRpbGUgKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqcGVyY3B1X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2Yo
KnBlcmNwdV9jb3VudCkpKG5yKSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXpl
KCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0
ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsKIGVsc2UgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEo
YXRvbWljX2xvbmdfc3ViX2FuZF90ZXN0KG5yLCAmcmVmLT5jb3VudCkpLCAwKSkKICByZWYtPnJl
bGVhc2UocmVmKTsKCiByY3VfcmVhZF91bmxvY2soKTsKfQojIDMyMyAiLi9pbmNsdWRlL2xpbnV4
L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9yZWZfcHV0KHN0cnVjdCBwZXJjcHVfcmVm
ICpyZWYpCnsKIHBlcmNwdV9yZWZfcHV0X21hbnkocmVmLCAxKTsKfQojIDMzNyAiLi9pbmNsdWRl
L2xpbnV4L3BlcmNwdS1yZWZjb3VudC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHBlcmNwdV9yZWZfaXNfZHlpbmcoc3RydWN0
IHBlcmNwdV9yZWYgKnJlZikKewogcmV0dXJuIHJlZi0+cGVyY3B1X2NvdW50X3B0ciAmIF9fUEVS
Q1BVX1JFRl9ERUFEOwp9CiMgMzUwICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJlZmNvdW50Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgcGVyY3B1X3JlZl9pc196ZXJvKHN0cnVjdCBwZXJjcHVfcmVmICpyZWYpCnsKIHVuc2ln
bmVkIGxvbmcgKnBlcmNwdV9jb3VudDsKCiBpZiAoX19yZWZfaXNfcGVyY3B1KHJlZiwgJnBlcmNw
dV9jb3VudCkpCiAgcmV0dXJuIGZhbHNlOwogcmV0dXJuICFhdG9taWNfbG9uZ19yZWFkKCZyZWYt
PmNvdW50KTsKfQojIDIwICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCiMgMTM2ICIuL2luY2x1
ZGUvbGludXgvc2xhYi5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5oIiAxCgoKCgoKCnN0
cnVjdCBrbWVtX2NhY2hlOwpzdHJ1Y3QgcGFnZTsKc3RydWN0IHZtX3N0cnVjdDsKc3RydWN0IHRh
c2tfc3RydWN0OwojIDEwMSAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5w
b2lzb25fc2hhZG93KGNvbnN0IHZvaWQgKmFkZHJlc3MsIHNpemVfdCBzaXplKSB7fQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBr
YXNhbl91bnBvaXNvbl90YXNrX3N0YWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykge30Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBrYXNhbl91bnBvaXNvbl9zdGFja19hYm92ZV9zcF90byhjb25zdCB2b2lkICp3YXRlcm1hcmsp
IHt9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGthc2FuX2VuYWJsZV9jdXJyZW50KHZvaWQpIHt9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fZGlzYWJs
ZV9jdXJyZW50KHZvaWQpIHt9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2FsbG9jX3BhZ2VzKHN0cnVjdCBwYWdlICpw
YWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpIHt9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fZnJlZV9wYWdlcyhzdHJ1Y3Qg
cGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKSB7fQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9jYWNoZV9jcmVh
dGUoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLAogICAgICAgICAgdW5zaWduZWQgaW50ICpzaXpl
LAogICAgICAgICAgc2xhYl9mbGFnc190ICpmbGFncykge30KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcG9pc29uX3Ns
YWIoc3RydWN0IHBhZ2UgKnBhZ2UpIHt9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fb2JqZWN0X2RhdGEo
c3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLAogICAgIHZvaWQgKm9iamVjdCkge30Kc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNh
bl9wb2lzb25fb2JqZWN0X2RhdGEoc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLAogICAgIHZvaWQg
Km9iamVjdCkge30Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqa2FzYW5faW5pdF9zbGFiX29iaihzdHJ1Y3Qga21lbV9jYWNoZSAq
Y2FjaGUsCiAgICBjb25zdCB2b2lkICpvYmplY3QpCnsKIHJldHVybiAodm9pZCAqKW9iamVjdDsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqa2FzYW5fa21hbGxvY19sYXJnZSh2b2lkICpwdHIsIHNpemVfdCBzaXplLCBnZnBf
dCBmbGFncykKewogcmV0dXJuIHB0cjsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGthc2FuX2tmcmVlX2xhcmdlKHZvaWQgKnB0
ciwgdW5zaWduZWQgbG9uZyBpcCkge30Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9wb2lzb25fa2ZyZWUodm9pZCAqcHRy
LCB1bnNpZ25lZCBsb25nIGlwKSB7fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9rbWFsbG9jKHN0cnVjdCBrbWVtX2Nh
Y2hlICpzLCBjb25zdCB2b2lkICpvYmplY3QsCiAgICBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3Mp
CnsKIHJldHVybiAodm9pZCAqKW9iamVjdDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9rcmVhbGxvYyhjb25zdCB2
b2lkICpvYmplY3QsIHNpemVfdCBuZXdfc2l6ZSwKICAgICBnZnBfdCBmbGFncykKewogcmV0dXJu
ICh2b2lkICopb2JqZWN0Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprYXNhbl9zbGFiX2FsbG9jKHN0cnVjdCBrbWVtX2Nh
Y2hlICpzLCB2b2lkICpvYmplY3QsCiAgICAgICBnZnBfdCBmbGFncykKewogcmV0dXJuIG9iamVj
dDsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGthc2FuX3NsYWJfZnJlZShzdHJ1Y3Qga21lbV9jYWNoZSAqcywgdm9pZCAqb2Jq
ZWN0LAogICAgICAgdW5zaWduZWQgbG9uZyBpcCkKewogcmV0dXJuIGZhbHNlOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga2Fz
YW5fbW9kdWxlX2FsbG9jKHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKSB7IHJldHVybiAwOyB9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQga2FzYW5fZnJlZV9zaGFkb3coY29uc3Qgc3RydWN0IHZtX3N0cnVjdCAqdm0pIHt9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
a2FzYW5fYWRkX3plcm9fc2hhZG93KHZvaWQgKnN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpCnsK
IHJldHVybiAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcmVtb3ZlX3plcm9fc2hhZG93KHZvaWQgKnN0YXJ0LAog
ICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSkKe30KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fc2xhYihjb25z
dCB2b2lkICpwdHIpIHsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzaXplX3Qga2FzYW5fbWV0YWRhdGFfc2l6ZShzdHJ1Y3Qga21lbV9j
YWNoZSAqY2FjaGUpIHsgcmV0dXJuIDA7IH0KIyAxODAgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGthc2FuX2NhY2hlX3NocmluayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUpIHt9CnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQga2FzYW5fY2FjaGVfc2h1dGRvd24oc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKSB7fQojIDE5
OCAiLi9pbmNsdWRlL2xpbnV4L2thc2FuLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5faW5pdF90YWdzKHZvaWQpIHsg
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqa2FzYW5fcmVzZXRfdGFnKGNvbnN0IHZvaWQgKmFkZHIpCnsKIHJldHVybiAodm9p
ZCAqKWFkZHI7Cn0KIyAyMTUgIi4vaW5jbHVkZS9saW51eC9rYXNhbi5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQga2FzYW5fcG9w
dWxhdGVfdm1hbGxvYyh1bnNpZ25lZCBsb25nIHN0YXJ0LAogICAgIHVuc2lnbmVkIGxvbmcgc2l6
ZSkKewogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fcG9pc29uX3ZtYWxsb2MoY29uc3Qgdm9pZCAq
c3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKeyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fdW5wb2lzb25fdm1hbGxv
Yyhjb25zdCB2b2lkICpzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKQp7IH0Kc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrYXNhbl9y
ZWxlYXNlX3ZtYWxsb2ModW5zaWduZWQgbG9uZyBzdGFydCwKICAgICAgdW5zaWduZWQgbG9uZyBl
bmQsCiAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZV9yZWdpb25fc3RhcnQsCiAgICAgIHVuc2lnbmVk
IGxvbmcgZnJlZV9yZWdpb25fZW5kKSB7fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2FzYW5fbm9uX2Nhbm9uaWNhbF9o
b29rKHVuc2lnbmVkIGxvbmcgYWRkcikgeyB9CiMgMTM3ICIuL2luY2x1ZGUvbGludXgvc2xhYi5o
IiAyCgpzdHJ1Y3QgbWVtX2Nncm91cDsKCgoKdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25f
XygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBrbWVtX2NhY2hlX2lu
aXQodm9pZCk7CmJvb2wgc2xhYl9pc19hdmFpbGFibGUodm9pZCk7CgpleHRlcm4gYm9vbCB1c2Vy
Y29weV9mYWxsYmFjazsKCnN0cnVjdCBrbWVtX2NhY2hlICprbWVtX2NhY2hlX2NyZWF0ZShjb25z
dCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgc2l6ZSwKICAgdW5zaWduZWQgaW50IGFsaWduLCBz
bGFiX2ZsYWdzX3QgZmxhZ3MsCiAgIHZvaWQgKCpjdG9yKSh2b2lkICopKTsKc3RydWN0IGttZW1f
Y2FjaGUgKmttZW1fY2FjaGVfY3JlYXRlX3VzZXJjb3B5KGNvbnN0IGNoYXIgKm5hbWUsCiAgIHVu
c2lnbmVkIGludCBzaXplLCB1bnNpZ25lZCBpbnQgYWxpZ24sCiAgIHNsYWJfZmxhZ3NfdCBmbGFn
cywKICAgdW5zaWduZWQgaW50IHVzZXJvZmZzZXQsIHVuc2lnbmVkIGludCB1c2Vyc2l6ZSwKICAg
dm9pZCAoKmN0b3IpKHZvaWQgKikpOwp2b2lkIGttZW1fY2FjaGVfZGVzdHJveShzdHJ1Y3Qga21l
bV9jYWNoZSAqKTsKaW50IGttZW1fY2FjaGVfc2hyaW5rKHN0cnVjdCBrbWVtX2NhY2hlICopOwoK
dm9pZCBtZW1jZ19jcmVhdGVfa21lbV9jYWNoZShzdHJ1Y3QgbWVtX2Nncm91cCAqLCBzdHJ1Y3Qg
a21lbV9jYWNoZSAqKTsKdm9pZCBtZW1jZ19kZWFjdGl2YXRlX2ttZW1fY2FjaGVzKHN0cnVjdCBt
ZW1fY2dyb3VwICosIHN0cnVjdCBtZW1fY2dyb3VwICopOwojIDE4NyAiLi9pbmNsdWRlL2xpbnV4
L3NsYWIuaCIKdm9pZCAqIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBr
cmVhbGxvYyhjb25zdCB2b2lkICosIHNpemVfdCwgZ2ZwX3QpOwp2b2lkIGtmcmVlKGNvbnN0IHZv
aWQgKik7CnZvaWQga3pmcmVlKGNvbnN0IHZvaWQgKik7CnNpemVfdCBfX2tzaXplKGNvbnN0IHZv
aWQgKik7CnNpemVfdCBrc2l6ZShjb25zdCB2b2lkICopOwoKCnZvaWQgX19jaGVja19oZWFwX29i
amVjdChjb25zdCB2b2lkICpwdHIsIHVuc2lnbmVkIGxvbmcgbiwgc3RydWN0IHBhZ2UgKnBhZ2Us
CiAgIGJvb2wgdG9fdXNlcik7CiMgMzA4ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgplbnVtIGtt
YWxsb2NfY2FjaGVfdHlwZSB7CiBLTUFMTE9DX05PUk1BTCA9IDAsCiBLTUFMTE9DX1JFQ0xBSU0s
CgogS01BTExPQ19ETUEsCgogTlJfS01BTExPQ19UWVBFUwp9OwoKCmV4dGVybiBzdHJ1Y3Qga21l
bV9jYWNoZSAqCmttYWxsb2NfY2FjaGVzW05SX0tNQUxMT0NfVFlQRVNdWygoMTEgKyAxMiAtIDEp
IDw9IDI1ID8gKDExICsgMTIgLSAxKSA6IDI1KSArIDFdOwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSBlbnVtIGttYWxsb2NfY2FjaGVfdHlwZSBrbWFsbG9jX3R5cGUoZ2ZwX3Qg
ZmxhZ3MpCnsKCgoKCgogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKGZsYWdzICYgKCgoIGdmcF90
KTB4MDF1KSB8ICgoIGdmcF90KTB4MTB1KSkpID09IDApLCAxKSkKICByZXR1cm4gS01BTExPQ19O
T1JNQUw7CgoKCgoKIHJldHVybiBmbGFncyAmICgoIGdmcF90KTB4MDF1KSA/IEtNQUxMT0NfRE1B
IDogS01BTExPQ19SRUNMQUlNOwoKCgp9CiMgMzQ5ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBf
X2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIHVuc2lnbmVkIGludCBrbWFsbG9jX2lu
ZGV4KHNpemVfdCBzaXplKQp7CiBpZiAoIXNpemUpCiAgcmV0dXJuIDA7CgogaWYgKHNpemUgPD0g
KDEgPDwgNSkpCiAgcmV0dXJuIDU7CgogaWYgKCgxIDw8IDUpIDw9IDMyICYmIHNpemUgPiA2NCAm
JiBzaXplIDw9IDk2KQogIHJldHVybiAxOwogaWYgKCgxIDw8IDUpIDw9IDY0ICYmIHNpemUgPiAx
MjggJiYgc2l6ZSA8PSAxOTIpCiAgcmV0dXJuIDI7CiBpZiAoc2l6ZSA8PSA4KSByZXR1cm4gMzsK
IGlmIChzaXplIDw9IDE2KSByZXR1cm4gNDsKIGlmIChzaXplIDw9IDMyKSByZXR1cm4gNTsKIGlm
IChzaXplIDw9IDY0KSByZXR1cm4gNjsKIGlmIChzaXplIDw9IDEyOCkgcmV0dXJuIDc7CiBpZiAo
c2l6ZSA8PSAyNTYpIHJldHVybiA4OwogaWYgKHNpemUgPD0gNTEyKSByZXR1cm4gOTsKIGlmIChz
aXplIDw9IDEwMjQpIHJldHVybiAxMDsKIGlmIChzaXplIDw9IDIgKiAxMDI0KSByZXR1cm4gMTE7
CiBpZiAoc2l6ZSA8PSA0ICogMTAyNCkgcmV0dXJuIDEyOwogaWYgKHNpemUgPD0gOCAqIDEwMjQp
IHJldHVybiAxMzsKIGlmIChzaXplIDw9IDE2ICogMTAyNCkgcmV0dXJuIDE0OwogaWYgKHNpemUg
PD0gMzIgKiAxMDI0KSByZXR1cm4gMTU7CiBpZiAoc2l6ZSA8PSA2NCAqIDEwMjQpIHJldHVybiAx
NjsKIGlmIChzaXplIDw9IDEyOCAqIDEwMjQpIHJldHVybiAxNzsKIGlmIChzaXplIDw9IDI1NiAq
IDEwMjQpIHJldHVybiAxODsKIGlmIChzaXplIDw9IDUxMiAqIDEwMjQpIHJldHVybiAxOTsKIGlm
IChzaXplIDw9IDEwMjQgKiAxMDI0KSByZXR1cm4gMjA7CiBpZiAoc2l6ZSA8PSAyICogMTAyNCAq
IDEwMjQpIHJldHVybiAyMTsKIGlmIChzaXplIDw9IDQgKiAxMDI0ICogMTAyNCkgcmV0dXJuIDIy
OwogaWYgKHNpemUgPD0gOCAqIDEwMjQgKiAxMDI0KSByZXR1cm4gMjM7CiBpZiAoc2l6ZSA8PSAx
NiAqIDEwMjQgKiAxMDI0KSByZXR1cm4gMjQ7CiBpZiAoc2l6ZSA8PSAzMiAqIDEwMjQgKiAxMDI0
KSByZXR1cm4gMjU7CiBpZiAoc2l6ZSA8PSA2NCAqIDEwMjQgKiAxMDI0KSByZXR1cm4gMjY7CiBk
byB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIg
IlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIg
IjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIl
YzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1
Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAi
XHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3Ns
YWIuaCIpLCAiaSIgKDM4NSksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkp
KSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBv
cHNlY3Rpb25cblx0IiA6IDogImkiICgxOCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWls
dGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKCgogcmV0dXJuIC0x
Owp9CgoKdm9pZCAqX19rbWFsbG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykgX19hdHRyaWJ1
dGVfXygoX19hc3N1bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykp
KSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwp2b2lkICprbWVtX2NhY2hlX2FsbG9jKHN0
cnVjdCBrbWVtX2NhY2hlICosIGdmcF90IGZsYWdzKSBfX2F0dHJpYnV0ZV9fKChfX2Fzc3VtZV9h
bGlnbmVkX18oX19hbGlnbm9mX18odW5zaWduZWQgbG9uZyBsb25nKSkpKSBfX2F0dHJpYnV0ZV9f
KChfX21hbGxvY19fKSk7CnZvaWQga21lbV9jYWNoZV9mcmVlKHN0cnVjdCBrbWVtX2NhY2hlICos
IHZvaWQgKik7CiMgNDAzICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgp2b2lkIGttZW1fY2FjaGVf
ZnJlZV9idWxrKHN0cnVjdCBrbWVtX2NhY2hlICosIHNpemVfdCwgdm9pZCAqKik7CmludCBrbWVt
X2NhY2hlX2FsbG9jX2J1bGsoc3RydWN0IGttZW1fY2FjaGUgKiwgZ2ZwX3QsIHNpemVfdCwgdm9p
ZCAqKik7CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkIGtmcmVl
X2J1bGsoc2l6ZV90IHNpemUsIHZvaWQgKipwKQp7CiBrbWVtX2NhY2hlX2ZyZWVfYnVsaygoKHZv
aWQgKikwKSwgc2l6ZSwgcCk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgKl9fa21hbGxvY19ub2RlKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncywgaW50IG5v
ZGUpCnsKIHJldHVybiBfX2ttYWxsb2Moc2l6ZSwgZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChf
X2Fsd2F5c19pbmxpbmVfXykpIHZvaWQgKmttZW1fY2FjaGVfYWxsb2Nfbm9kZShzdHJ1Y3Qga21l
bV9jYWNoZSAqcywgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQp7CiByZXR1cm4ga21lbV9jYWNoZV9h
bGxvYyhzLCBmbGFncyk7Cn0KCgoKZXh0ZXJuIHZvaWQgKmttZW1fY2FjaGVfYWxsb2NfdHJhY2Uo
c3RydWN0IGttZW1fY2FjaGUgKiwgZ2ZwX3QsIHNpemVfdCkgX19hdHRyaWJ1dGVfXygoX19hc3N1
bWVfYWxpZ25lZF9fKF9fYWxpZ25vZl9fKHVuc2lnbmVkIGxvbmcgbG9uZykpKSkgX19hdHRyaWJ1
dGVfXygoX19tYWxsb2NfXykpOwoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVf
XykpIHZvaWQgKgprbWVtX2NhY2hlX2FsbG9jX25vZGVfdHJhY2Uoc3RydWN0IGttZW1fY2FjaGUg
KnMsCiAgICAgICAgIGdmcF90IGdmcGZsYWdzLAogICAgICAgICBpbnQgbm9kZSwgc2l6ZV90IHNp
emUpCnsKIHJldHVybiBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKHMsIGdmcGZsYWdzLCBzaXplKTsK
fQojIDQ2OSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKZXh0ZXJuIHZvaWQgKmttYWxsb2Nfb3Jk
ZXIoc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBpbnQgb3JkZXIpIF9fYXR0cmli
dXRlX18oKF9fYXNzdW1lX2FsaWduZWRfXygoKDFVTCkgPDwgMTIpKSkpIF9fYXR0cmlidXRlX18o
KF9fbWFsbG9jX18pKTsKCgpleHRlcm4gdm9pZCAqa21hbGxvY19vcmRlcl90cmFjZShzaXplX3Qg
c2l6ZSwgZ2ZwX3QgZmxhZ3MsIHVuc2lnbmVkIGludCBvcmRlcikgX19hdHRyaWJ1dGVfXygoX19h
c3N1bWVfYWxpZ25lZF9fKCgoMVVMKSA8PCAxMikpKSkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2Nf
XykpOwojIDQ4MSAiLi9pbmNsdWRlL2xpbnV4L3NsYWIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdh
eXNfaW5saW5lX18pKSB2b2lkICprbWFsbG9jX2xhcmdlKHNpemVfdCBzaXplLCBnZnBfdCBmbGFn
cykKewogdW5zaWduZWQgaW50IG9yZGVyID0gZ2V0X29yZGVyKHNpemUpOwogcmV0dXJuIGttYWxs
b2Nfb3JkZXJfdHJhY2Uoc2l6ZSwgZmxhZ3MsIG9yZGVyKTsKfQojIDU0MSAiLi9pbmNsdWRlL2xp
bnV4L3NsYWIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkICprbWFs
bG9jKHNpemVfdCBzaXplLCBnZnBfdCBmbGFncykKewogaWYgKF9fYnVpbHRpbl9jb25zdGFudF9w
KHNpemUpKSB7CgogIHVuc2lnbmVkIGludCBpbmRleDsKCiAgaWYgKHNpemUgPiAoMVVMIDw8ICgo
MTEgKyAxMiAtIDEpIDw9IDI1ID8gKDExICsgMTIgLSAxKSA6IDI1KSkpCiAgIHJldHVybiBrbWFs
bG9jX2xhcmdlKHNpemUsIGZsYWdzKTsKCiAgaW5kZXggPSBrbWFsbG9jX2luZGV4KHNpemUpOwoK
ICBpZiAoIWluZGV4KQogICByZXR1cm4gKCh2b2lkICopMTYpOwoKICByZXR1cm4ga21lbV9jYWNo
ZV9hbGxvY190cmFjZSgKICAgIGttYWxsb2NfY2FjaGVzW2ttYWxsb2NfdHlwZShmbGFncyldW2lu
ZGV4XSwKICAgIGZsYWdzLCBzaXplKTsKCiB9CiByZXR1cm4gX19rbWFsbG9jKHNpemUsIGZsYWdz
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2b2lkICprbWFsbG9jX25v
ZGUoc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzLCBpbnQgbm9kZSkKewoKIGlmIChfX2J1aWx0aW5f
Y29uc3RhbnRfcChzaXplKSAmJgogIHNpemUgPD0gKDFVTCA8PCAoKDExICsgMTIgLSAxKSA8PSAy
NSA/ICgxMSArIDEyIC0gMSkgOiAyNSkpKSB7CiAgdW5zaWduZWQgaW50IGkgPSBrbWFsbG9jX2lu
ZGV4KHNpemUpOwoKICBpZiAoIWkpCiAgIHJldHVybiAoKHZvaWQgKikxNik7CgogIHJldHVybiBr
bWVtX2NhY2hlX2FsbG9jX25vZGVfdHJhY2UoCiAgICBrbWFsbG9jX2NhY2hlc1trbWFsbG9jX3R5
cGUoZmxhZ3MpXVtpXSwKICAgICAgZmxhZ3MsIG5vZGUsIHNpemUpOwogfQoKIHJldHVybiBfX2tt
YWxsb2Nfbm9kZShzaXplLCBmbGFncywgbm9kZSk7Cn0KCmludCBtZW1jZ191cGRhdGVfYWxsX2Nh
Y2hlcyhpbnQgbnVtX21lbWNncyk7CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICprbWFsbG9jX2FycmF5KHNpemVfdCBu
LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCnsKIHNpemVfdCBieXRlczsKCiBpZiAoX19idWls
dGluX2V4cGVjdCghISgoeyB0eXBlb2YobikgX19hID0gKG4pOyB0eXBlb2Yoc2l6ZSkgX19iID0g
KHNpemUpOyB0eXBlb2YoJmJ5dGVzKSBfX2QgPSAoJmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZf
X2IpOyAodm9pZCkgKCZfX2EgPT0gX19kKTsgX19idWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9f
YiwgX19kKTsgfSkpLCAwKSkKICByZXR1cm4gKCh2b2lkICopMCk7CiBpZiAoX19idWlsdGluX2Nv
bnN0YW50X3AobikgJiYgX19idWlsdGluX2NvbnN0YW50X3Aoc2l6ZSkpCiAgcmV0dXJuIGttYWxs
b2MoYnl0ZXMsIGZsYWdzKTsKIHJldHVybiBfX2ttYWxsb2MoYnl0ZXMsIGZsYWdzKTsKfQoKCgoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqa2NhbGxvYyhzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQp7CiBy
ZXR1cm4ga21hbGxvY19hcnJheShuLCBzaXplLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSkpOwp9
CiMgNjE5ICIuL2luY2x1ZGUvbGludXgvc2xhYi5oIgpleHRlcm4gdm9pZCAqX19rbWFsbG9jX3Ry
YWNrX2NhbGxlcihzaXplX3QsIGdmcF90LCB1bnNpZ25lZCBsb25nKTsKCgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqa21hbGxv
Y19hcnJheV9ub2RlKHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MsCiAgICAgICAg
ICAgaW50IG5vZGUpCnsKIHNpemVfdCBieXRlczsKCiBpZiAoX19idWlsdGluX2V4cGVjdCghISgo
eyB0eXBlb2YobikgX19hID0gKG4pOyB0eXBlb2Yoc2l6ZSkgX19iID0gKHNpemUpOyB0eXBlb2Yo
JmJ5dGVzKSBfX2QgPSAoJmJ5dGVzKTsgKHZvaWQpICgmX19hID09ICZfX2IpOyAodm9pZCkgKCZf
X2EgPT0gX19kKTsgX19idWlsdGluX211bF9vdmVyZmxvdyhfX2EsIF9fYiwgX19kKTsgfSkpLCAw
KSkKICByZXR1cm4gKCh2b2lkICopMCk7CiBpZiAoX19idWlsdGluX2NvbnN0YW50X3AobikgJiYg
X19idWlsdGluX2NvbnN0YW50X3Aoc2l6ZSkpCiAgcmV0dXJuIGttYWxsb2Nfbm9kZShieXRlcywg
ZmxhZ3MsIG5vZGUpOwogcmV0dXJuIF9fa21hbGxvY19ub2RlKGJ5dGVzLCBmbGFncywgbm9kZSk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgKmtjYWxsb2Nfbm9kZShzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdz
LCBpbnQgbm9kZSkKewogcmV0dXJuIGttYWxsb2NfYXJyYXlfbm9kZShuLCBzaXplLCBmbGFncyB8
ICgoIGdmcF90KTB4MTAwdSksIG5vZGUpOwp9CiMgNjU3ICIuL2luY2x1ZGUvbGludXgvc2xhYi5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkICprbWVtX2NhY2hlX3phbGxvYyhzdHJ1Y3Qga21lbV9jYWNoZSAqaywgZ2ZwX3QgZmxh
Z3MpCnsKIHJldHVybiBrbWVtX2NhY2hlX2FsbG9jKGssIGZsYWdzIHwgKCggZ2ZwX3QpMHgxMDB1
KSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqa3phbGxvYyhzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCnsKIHJl
dHVybiBrbWFsbG9jKHNpemUsIGZsYWdzIHwgKCggZ2ZwX3QpMHgxMDB1KSk7Cn0KCgoKCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgKmt6YWxsb2Nfbm9kZShzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQp7CiBy
ZXR1cm4ga21hbGxvY19ub2RlKHNpemUsIGZsYWdzIHwgKCggZ2ZwX3QpMHgxMDB1KSwgbm9kZSk7
Cn0KCnVuc2lnbmVkIGludCBrbWVtX2NhY2hlX3NpemUoc3RydWN0IGttZW1fY2FjaGUgKnMpOwp2
b2lkIF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpIGttZW1fY2FjaGVfaW5pdF9sYXRlKHZvaWQpOwoKCmludCBzbGFiX3By
ZXBhcmVfY3B1KHVuc2lnbmVkIGludCBjcHUpOwppbnQgc2xhYl9kZWFkX2NwdSh1bnNpZ25lZCBp
bnQgY3B1KTsKIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L29zX3R5cGVzLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIiAxCiMgMzEg
Ii4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxl
LmgiIDEKIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiIDEKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIiAxCiMgMTAg
Ii4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIgpzdHJ1Y3Qgd2FpdF9iaXRfa2V5IHsKIHZvaWQg
KmZsYWdzOwogaW50IGJpdF9ucjsKIHVuc2lnbmVkIGxvbmcgdGltZW91dDsKfTsKCnN0cnVjdCB3
YWl0X2JpdF9xdWV1ZV9lbnRyeSB7CiBzdHJ1Y3Qgd2FpdF9iaXRfa2V5IGtleTsKIHN0cnVjdCB3
YWl0X3F1ZXVlX2VudHJ5IHdxX2VudHJ5Owp9OwoKCgoKdHlwZWRlZiBpbnQgd2FpdF9iaXRfYWN0
aW9uX2Yoc3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9kZSk7Cgp2b2lkIF9fd2FrZV91
cF9iaXQoc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgdm9pZCAqd29yZCwgaW50IGJp
dCk7CmludCBfX3dhaXRfb25fYml0KHN0cnVjdCB3YWl0X3F1ZXVlX2hlYWQgKndxX2hlYWQsIHN0
cnVjdCB3YWl0X2JpdF9xdWV1ZV9lbnRyeSAqd2JxX2VudHJ5LCB3YWl0X2JpdF9hY3Rpb25fZiAq
YWN0aW9uLCB1bnNpZ25lZCBpbnQgbW9kZSk7CmludCBfX3dhaXRfb25fYml0X2xvY2soc3RydWN0
IHdhaXRfcXVldWVfaGVhZCAqd3FfaGVhZCwgc3RydWN0IHdhaXRfYml0X3F1ZXVlX2VudHJ5ICp3
YnFfZW50cnksIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2RlKTsK
dm9pZCB3YWtlX3VwX2JpdCh2b2lkICp3b3JkLCBpbnQgYml0KTsKaW50IG91dF9vZl9saW5lX3dh
aXRfb25fYml0KHZvaWQgKndvcmQsIGludCwgd2FpdF9iaXRfYWN0aW9uX2YgKmFjdGlvbiwgdW5z
aWduZWQgaW50IG1vZGUpOwppbnQgb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfdGltZW91dCh2b2lk
ICp3b3JkLCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGludCBtb2Rl
LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwppbnQgb3V0X29mX2xpbmVfd2FpdF9vbl9iaXRfbG9j
ayh2b2lkICp3b3JkLCBpbnQsIHdhaXRfYml0X2FjdGlvbl9mICphY3Rpb24sIHVuc2lnbmVkIGlu
dCBtb2RlKTsKc3RydWN0IHdhaXRfcXVldWVfaGVhZCAqYml0X3dhaXRxdWV1ZSh2b2lkICp3b3Jk
LCBpbnQgYml0KTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0
LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgd2FpdF9iaXRfaW5pdCh2b2lkKTsK
CmludCB3YWtlX2JpdF9mdW5jdGlvbihzdHJ1Y3Qgd2FpdF9xdWV1ZV9lbnRyeSAqd3FfZW50cnks
IHVuc2lnbmVkIG1vZGUsIGludCBzeW5jLCB2b2lkICprZXkpOwojIDQ5ICIuL2luY2x1ZGUvbGlu
dXgvd2FpdF9iaXQuaCIKZXh0ZXJuIGludCBiaXRfd2FpdChzdHJ1Y3Qgd2FpdF9iaXRfa2V5ICpr
ZXksIGludCBtb2RlKTsKZXh0ZXJuIGludCBiaXRfd2FpdF9pbyhzdHJ1Y3Qgd2FpdF9iaXRfa2V5
ICprZXksIGludCBtb2RlKTsKZXh0ZXJuIGludCBiaXRfd2FpdF90aW1lb3V0KHN0cnVjdCB3YWl0
X2JpdF9rZXkgKmtleSwgaW50IG1vZGUpOwpleHRlcm4gaW50IGJpdF93YWl0X2lvX3RpbWVvdXQo
c3RydWN0IHdhaXRfYml0X2tleSAqa2V5LCBpbnQgbW9kZSk7CiMgNzAgIi4vaW5jbHVkZS9saW51
eC93YWl0X2JpdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQKd2FpdF9vbl9iaXQodW5zaWduZWQgbG9uZyAqd29yZCwgaW50IGJp
dCwgdW5zaWduZWQgbW9kZSkKewogZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
IGlmICghdGVzdF9iaXQoYml0LCB3b3JkKSkKICByZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGlu
ZV93YWl0X29uX2JpdCh3b3JkLCBiaXQsCiAgICAgICAgICAgYml0X3dhaXQsCiAgICAgICAgICAg
bW9kZSk7Cn0KIyA5NSAiLi9pbmNsdWRlL2xpbnV4L3dhaXRfYml0LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAp3YWl0X29uX2Jp
dF9pbyh1bnNpZ25lZCBsb25nICp3b3JkLCBpbnQgYml0LCB1bnNpZ25lZCBtb2RlKQp7CiBkbyB7
IGRvIHsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogaWYgKCF0ZXN0X2JpdChiaXQsIHdvcmQp
KQogIHJldHVybiAwOwogcmV0dXJuIG91dF9vZl9saW5lX3dhaXRfb25fYml0KHdvcmQsIGJpdCwK
ICAgICAgICAgICBiaXRfd2FpdF9pbywKICAgICAgICAgICBtb2RlKTsKfQojIDEyMSAiLi9pbmNs
dWRlL2xpbnV4L3dhaXRfYml0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGludAp3YWl0X29uX2JpdF90aW1lb3V0KHVuc2lnbmVkIGxv
bmcgKndvcmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUsCiAgICAgIHVuc2lnbmVkIGxvbmcgdGlt
ZW91dCkKewogZG8geyBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmICghdGVzdF9i
aXQoYml0LCB3b3JkKSkKICByZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2Jp
dF90aW1lb3V0KHdvcmQsIGJpdCwKICAgICAgICAgICAgYml0X3dhaXRfdGltZW91dCwKICAgICAg
ICAgICAgbW9kZSwgdGltZW91dCk7Cn0KIyAxNDkgIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQKd2FpdF9vbl9iaXRfYWN0aW9uKHVuc2lnbmVkIGxvbmcgKndvcmQsIGludCBiaXQsIHdh
aXRfYml0X2FjdGlvbl9mICphY3Rpb24sCiAgICAgdW5zaWduZWQgbW9kZSkKewogZG8geyBkbyB7
IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmICghdGVzdF9iaXQoYml0LCB3b3JkKSkKICBy
ZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2JpdCh3b3JkLCBiaXQsIGFjdGlv
biwgbW9kZSk7Cn0KIyAxNzggIi4vaW5jbHVkZS9saW51eC93YWl0X2JpdC5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQKd2FpdF9v
bl9iaXRfbG9jayh1bnNpZ25lZCBsb25nICp3b3JkLCBpbnQgYml0LCB1bnNpZ25lZCBtb2RlKQp7
CiBkbyB7IGRvIHsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogaWYgKCF0ZXN0X2FuZF9zZXRf
Yml0KGJpdCwgd29yZCkpCiAgcmV0dXJuIDA7CiByZXR1cm4gb3V0X29mX2xpbmVfd2FpdF9vbl9i
aXRfbG9jayh3b3JkLCBiaXQsIGJpdF93YWl0LCBtb2RlKTsKfQojIDIwMiAiLi9pbmNsdWRlL2xp
bnV4L3dhaXRfYml0LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludAp3YWl0X29uX2JpdF9sb2NrX2lvKHVuc2lnbmVkIGxvbmcgKndv
cmQsIGludCBiaXQsIHVuc2lnbmVkIG1vZGUpCnsKIGRvIHsgZG8geyB9IHdoaWxlICgwKTsgfSB3
aGlsZSAoMCk7CiBpZiAoIXRlc3RfYW5kX3NldF9iaXQoYml0LCB3b3JkKSkKICByZXR1cm4gMDsK
IHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2JpdF9sb2NrKHdvcmQsIGJpdCwgYml0X3dhaXRf
aW8sIG1vZGUpOwp9CiMgMjI4ICIuL2luY2x1ZGUvbGludXgvd2FpdF9iaXQuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50CndhaXRf
b25fYml0X2xvY2tfYWN0aW9uKHVuc2lnbmVkIGxvbmcgKndvcmQsIGludCBiaXQsIHdhaXRfYml0
X2FjdGlvbl9mICphY3Rpb24sCiAgIHVuc2lnbmVkIG1vZGUpCnsKIGRvIHsgZG8geyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CiBpZiAoIXRlc3RfYW5kX3NldF9iaXQoYml0LCB3b3JkKSkKICBy
ZXR1cm4gMDsKIHJldHVybiBvdXRfb2ZfbGluZV93YWl0X29uX2JpdF9sb2NrKHdvcmQsIGJpdCwg
YWN0aW9uLCBtb2RlKTsKfQoKZXh0ZXJuIHZvaWQgaW5pdF93YWl0X3Zhcl9lbnRyeShzdHJ1Y3Qg
d2FpdF9iaXRfcXVldWVfZW50cnkgKndicV9lbnRyeSwgdm9pZCAqdmFyLCBpbnQgZmxhZ3MpOwpl
eHRlcm4gdm9pZCB3YWtlX3VwX3Zhcih2b2lkICp2YXIpOwpleHRlcm4gd2FpdF9xdWV1ZV9oZWFk
X3QgKl9fdmFyX3dhaXRxdWV1ZSh2b2lkICpwKTsKIyAzMzAgIi4vaW5jbHVkZS9saW51eC93YWl0
X2JpdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGNsZWFyX2FuZF93YWtlX3VwX2JpdChpbnQgYml0LCB2b2lkICp3b3JkKQp7
CiBjbGVhcl9iaXRfdW5sb2NrKGJpdCwgd29yZCk7CgogZG8geyB9IHdoaWxlICgwKTsKIHdha2Vf
dXBfYml0KHdvcmQsIGJpdCk7Cn0KIyA3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4v
aW5jbHVkZS9saW51eC9rZGV2X3QuaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9r
ZGV2X3QuaCIgMQojIDYgIi4vaW5jbHVkZS9saW51eC9rZGV2X3QuaCIgMgojIDI0ICIuL2luY2x1
ZGUvbGludXgva2Rldl90LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgb2xkX3ZhbGlkX2RldihkZXZfdCBkZXYpCnsKIHJldHVy
biAoKHVuc2lnbmVkIGludCkgKChkZXYpID4+IDIwKSkgPCAyNTYgJiYgKCh1bnNpZ25lZCBpbnQp
ICgoZGV2KSAmICgoMVUgPDwgMjApIC0gMSkpKSA8IDI1NjsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTE2IG9sZF9lbmNvZGVfZGV2
KGRldl90IGRldikKewogcmV0dXJuICgoKHVuc2lnbmVkIGludCkgKChkZXYpID4+IDIwKSkgPDwg
OCkgfCAoKHVuc2lnbmVkIGludCkgKChkZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBkZXZf
dCBvbGRfZGVjb2RlX2Rldih1MTYgdmFsKQp7CiByZXR1cm4gKCgoKHZhbCA+PiA4KSAmIDI1NSkg
PDwgMjApIHwgKHZhbCAmIDI1NSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgbmV3X2VuY29kZV9kZXYoZGV2X3QgZGV2KQp7
CiB1bnNpZ25lZCBtYWpvciA9ICgodW5zaWduZWQgaW50KSAoKGRldikgPj4gMjApKTsKIHVuc2ln
bmVkIG1pbm9yID0gKCh1bnNpZ25lZCBpbnQpICgoZGV2KSAmICgoMVUgPDwgMjApIC0gMSkpKTsK
IHJldHVybiAobWlub3IgJiAweGZmKSB8IChtYWpvciA8PCA4KSB8ICgobWlub3IgJiB+MHhmZikg
PDwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBkZXZfdCBuZXdfZGVjb2RlX2Rldih1MzIgZGV2KQp7CiB1bnNpZ25lZCBtYWpv
ciA9IChkZXYgJiAweGZmZjAwKSA+PiA4OwogdW5zaWduZWQgbWlub3IgPSAoZGV2ICYgMHhmZikg
fCAoKGRldiA+PiAxMikgJiAweGZmZjAwKTsKIHJldHVybiAoKChtYWpvcikgPDwgMjApIHwgKG1p
bm9yKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHU2NCBodWdlX2VuY29kZV9kZXYoZGV2X3QgZGV2KQp7CiByZXR1cm4gbmV3X2Vu
Y29kZV9kZXYoZGV2KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgZGV2X3QgaHVnZV9kZWNvZGVfZGV2KHU2NCBkZXYpCnsKIHJldHVy
biBuZXdfZGVjb2RlX2RldihkZXYpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3lzdl92YWxpZF9kZXYoZGV2X3QgZGV2KQp7
CiByZXR1cm4gKCh1bnNpZ25lZCBpbnQpICgoZGV2KSA+PiAyMCkpIDwgKDE8PDE0KSAmJiAoKHVu
c2lnbmVkIGludCkgKChkZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpIDwgKDE8PDE4KTsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMy
IHN5c3ZfZW5jb2RlX2RldihkZXZfdCBkZXYpCnsKIHJldHVybiAoKHVuc2lnbmVkIGludCkgKChk
ZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpIHwgKCgodW5zaWduZWQgaW50KSAoKGRldikgPj4gMjAp
KSA8PCAxOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHVuc2lnbmVkIHN5c3ZfbWFqb3IodTMyIGRldikKewogcmV0dXJuIChkZXYg
Pj4gMTgpICYgMHgzZmZmOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBzeXN2X21pbm9yKHUzMiBkZXYpCnsKIHJldHVy
biBkZXYgJiAweDNmZmZmOwp9CiMgOCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvZGNhY2hlLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIiAxCiMgMzEgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgSU5JVF9MSVNUX0hF
QURfUkNVKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCnsKICh7IHVuaW9uIHsgdHlwZW9mKGxpc3Qt
Pm5leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKGxp
c3QtPm5leHQpKSAobGlzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihsaXN0LT5uZXh0KSwgX191
Ll9fYywgc2l6ZW9mKGxpc3QtPm5leHQpKTsgX191Ll9fdmFsOyB9KTsKICh7IHVuaW9uIHsgdHlw
ZW9mKGxpc3QtPnByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICgg
dHlwZW9mKGxpc3QtPnByZXYpKSAobGlzdCkgfTsgX193cml0ZV9vbmNlX3NpemUoJihsaXN0LT5w
cmV2KSwgX191Ll9fYywgc2l6ZW9mKGxpc3QtPnByZXYpKTsgX191Ll9fdmFsOyB9KTsKfQojIDc3
ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIF9fbGlzdF9hZGRfcmN1KHN0cnVjdCBs
aXN0X2hlYWQgKm5ldywKICBzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2LCBzdHJ1Y3QgbGlzdF9oZWFk
ICpuZXh0KQp7CiBpZiAoIV9fbGlzdF9hZGRfdmFsaWQobmV3LCBwcmV2LCBuZXh0KSkKICByZXR1
cm47CgogbmV3LT5uZXh0ID0gbmV4dDsKIG5ldy0+cHJldiA9IHByZXY7CiBkbyB7IHVpbnRwdHJf
dCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRf
cChuZXcpICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9u
IHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpIF9f
dmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0
IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVvZigoKigoc3RydWN0IGxp
c3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25j
ZV9zaXplKCYoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSksIF9f
dS5fX2MsIHNpemVvZigoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkp
KSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRp
bWVfYXNzZXJ0Xzg1KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUg
d29yZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9m
KComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihj
aGFyKSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkp
KSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBs
aXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihsb25nKSkpKSBfX2NvbXBp
bGV0aW1lX2Fzc2VydF84NSgpOyB9IHdoaWxlICgwKTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihwcmV2KS0+bmV4dCkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFs
ID0gKCB0eXBlb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkp
ICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4
dCkpKSkpX3JfYV9wX192KSkgKikoKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihw
cmV2KS0+bmV4dCkpKSkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChz
dHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSwgX191Ll9fYywgc2l6ZW9mKCom
KCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKTsgX191Ll9fdmFsOyB9
KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogbmV4dC0+cHJldiA9IG5ldzsKfQojIDEwNSAi
Li9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X2FkZF9yY3Uoc3RydWN0IGxpc3Rf
aGVhZCAqbmV3LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfYWRkX3JjdShuZXcs
IGhlYWQsIGhlYWQtPm5leHQpOwp9CiMgMTI2ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkIGxpc3RfYWRkX3RhaWxfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKm5ldywKICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpoZWFkKQp7CiBfX2xpc3RfYWRkX3JjdShuZXcsIGhlYWQtPnByZXYsIGhlYWQp
Owp9CiMgMTU2ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGxpc3RfZGVsX3JjdShz
dHJ1Y3QgbGlzdF9oZWFkICplbnRyeSkKewogX19saXN0X2RlbF9lbnRyeShlbnRyeSk7CiBlbnRy
eS0+cHJldiA9ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwp9CiMg
MTgyICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2RlbF9pbml0X3JjdShz
dHJ1Y3QgaGxpc3Rfbm9kZSAqbikKewogaWYgKCFobGlzdF91bmhhc2hlZChuKSkgewogIF9faGxp
c3RfZGVsKG4pOwogICh7IHVuaW9uIHsgdHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2Nb
MV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZihuLT5wcHJldikpICgoKHZvaWQgKikwKSkg
fTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihuLT5wcHJl
dikpOyBfX3UuX192YWw7IH0pOwogfQp9CiMgMTk4ICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIGxpc3RfcmVwbGFjZV9yY3Uoc3RydWN0IGxpc3RfaGVhZCAqb2xkLAogICAgc3RydWN0
IGxpc3RfaGVhZCAqbmV3KQp7CiBuZXctPm5leHQgPSBvbGQtPm5leHQ7CiBuZXctPnByZXYgPSBv
bGQtPnByZXY7CiBkbyB7IHVpbnRwdHJfdCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuZXcpOyA7
IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChuZXcpICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRy
X3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihuZXctPnByZXYpLT5uZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsg
Ll9fdmFsID0gKCB0eXBlb2YoKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldikt
Pm5leHQpKSkpKSkgKCh0eXBlb2YoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2
KS0+bmV4dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9m
KCgoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSkpOyBfX3Uu
X192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2Vy
dF8yMDModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNp
emVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXplb2YoKiYoKigo
c3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hh
cikgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYobmV3LT5wcmV2KS0+bmV4
dCkpKSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigo
c3RydWN0IGxpc3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9u
ZykpKSkgX19jb21waWxldGltZV9hc3NlcnRfMjAzKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9f
dm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFyIF9fY1sx
XTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiop
KCYobmV3LT5wcmV2KS0+bmV4dCkpKSkpICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGxp
c3RfaGVhZCAqKikoJihuZXctPnByZXYpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSAqKSgodHlwZW9m
KCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKG5ldy0+cHJldiktPm5leHQpKSkpKV9yX2FfcF9f
dikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihu
ZXctPnByZXYpLT5uZXh0KSkpKSwgX191Ll9fYywgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hl
YWQgKiopKCYobmV3LT5wcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgw
KTsgfSB3aGlsZSAoMCk7CiBuZXctPm5leHQtPnByZXYgPSBuZXc7CiBvbGQtPnByZXYgPSAoKHZv
aWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwpKTsKfQojIDIyNyAiLi9pbmNsdWRl
L2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBfX2xpc3Rfc3BsaWNlX2luaXRfcmN1KHN0cnVjdCBsaXN0
X2hlYWQgKmxpc3QsCiAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwcmV2LAogICAgICAgc3RydWN0
IGxpc3RfaGVhZCAqbmV4dCwKICAgICAgIHZvaWQgKCpzeW5jKSh2b2lkKSkKewogc3RydWN0IGxp
c3RfaGVhZCAqZmlyc3QgPSBsaXN0LT5uZXh0Owogc3RydWN0IGxpc3RfaGVhZCAqbGFzdCA9IGxp
c3QtPnByZXY7CgoKCgoKCgogSU5JVF9MSVNUX0hFQURfUkNVKGxpc3QpOwojIDI1MCAiLi9pbmNs
dWRlL2xpbnV4L3JjdWxpc3QuaCIKIHN5bmMoKTsKIyAyNjAgIi4vaW5jbHVkZS9saW51eC9yY3Vs
aXN0LmgiCiBsYXN0LT5uZXh0ID0gbmV4dDsKIGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1
aW50cHRyX3QpKGZpcnN0KTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoZmlyc3QpICYmIChf
cl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKCgo
Kigoc3RydWN0IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGxpc3RfaGVhZCAq
KikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVvZigoKigoc3RydWN0IGxpc3RfaGVhZCAqKiko
JihwcmV2KS0+bmV4dCkpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKCgq
KChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSksIF9fdS5fX2MsIHNpemVv
ZigoKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3Zh
bDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI2
MSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQg
c3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1
Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YoY2hhcikgfHwgc2l6
ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVv
ZihzaG9ydCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBsaXN0X2hlYWQgKiopKCYocHJldiktPm5l
eHQpKSkpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoq
KSgmKHByZXYpLT5uZXh0KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfMjYxKCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYp
LT5uZXh0KSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVv
ZigqJigqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2Yo
KigodHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0KSkpKSlfcl9h
X3BfX3YpKSAqKSgodHlwZW9mKCgqKChzdHJ1Y3QgbGlzdF9oZWFkICoqKSgmKHByZXYpLT5uZXh0
KSkpKSlfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKComKCooKHN0cnVjdCBsaXN0
X2hlYWQgKiopKCYocHJldiktPm5leHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0
IGxpc3RfaGVhZCAqKikoJihwcmV2KS0+bmV4dCkpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxl
ICgwKTsgfSB3aGlsZSAoMCk7CiBmaXJzdC0+cHJldiA9IHByZXY7CiBuZXh0LT5wcmV2ID0gbGFz
dDsKfQojIDI3MyAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3NwbGljZV9p
bml0X3JjdShzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LAogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhl
YWQsCiAgICAgdm9pZCAoKnN5bmMpKHZvaWQpKQp7CiBpZiAoIWxpc3RfZW1wdHkobGlzdCkpCiAg
X19saXN0X3NwbGljZV9pbml0X3JjdShsaXN0LCBoZWFkLCBoZWFkLT5uZXh0LCBzeW5jKTsKfQoj
IDI4OCAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBsaXN0X3NwbGljZV90YWlsX2lu
aXRfcmN1KHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsCiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk
ICpoZWFkLAogICAgICAgICAgdm9pZCAoKnN5bmMpKHZvaWQpKQp7CiBpZiAoIWxpc3RfZW1wdHko
bGlzdCkpCiAgX19saXN0X3NwbGljZV9pbml0X3JjdShsaXN0LCBoZWFkLT5wcmV2LCBoZWFkLCBz
eW5jKTsKfQojIDQ4MyAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9kZWxf
cmN1KHN0cnVjdCBobGlzdF9ub2RlICpuKQp7CiBfX2hsaXN0X2RlbChuKTsKICh7IHVuaW9uIHsg
dHlwZW9mKG4tPnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAo
IHR5cGVvZihuLT5wcHJldikpICgoKHZvaWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAw
VUwpKSkgfTsgX193cml0ZV9vbmNlX3NpemUoJihuLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihu
LT5wcHJldikpOyBfX3UuX192YWw7IH0pOwp9CiMgNDk2ICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGhsaXN0X3JlcGxhY2VfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpvbGQsCiAgICAg
c3RydWN0IGhsaXN0X25vZGUgKm5ldykKewogc3RydWN0IGhsaXN0X25vZGUgKm5leHQgPSBvbGQt
Pm5leHQ7CgogbmV3LT5uZXh0ID0gbmV4dDsKICh7IHVuaW9uIHsgdHlwZW9mKG5ldy0+cHByZXYp
IF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG5ldy0+cHBy
ZXYpKSAob2xkLT5wcHJldikgfTsgX193cml0ZV9vbmNlX3NpemUoJihuZXctPnBwcmV2KSwgX191
Ll9fYywgc2l6ZW9mKG5ldy0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKIGRvIHsgdWludHB0cl90
IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKG5ldyk7IDsgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9w
KG5ldykgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5pb24g
eyB0eXBlb2YoKCooc3RydWN0IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikpIF9fdmFsOyBjaGFy
IF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgqKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKW5ldy0+cHByZXYpKSkgKCh0eXBlb2YoKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBw
cmV2KSkoX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKihzdHJ1Y3QgaGxpc3Rf
bm9kZSAqKiluZXctPnBwcmV2KSksIF9fdS5fX2MsIHNpemVvZigoKihzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKiluZXctPnBwcmV2KSkpOyBfX3UuX192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4g
dm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF81MDModm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJv
cl9fKCJOZWVkIG5hdGl2ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIp
KSk7IGlmICghKChzaXplb2YoKiYqKHN0cnVjdCBobGlzdF9ub2RlICoqKW5ldy0+cHByZXYpID09
IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYqKHN0cnVjdCBobGlzdF9ub2RlICoqKW5ldy0+cHBy
ZXYpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKilu
ZXctPnBwcmV2KSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYqKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKW5ldy0+cHByZXYpID09IHNpemVvZihsb25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF81
MDMoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7
ICh7IHVuaW9uIHsgdHlwZW9mKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSBf
X3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqJiooc3RydWN0
IGhsaXN0X25vZGUgKiopbmV3LT5wcHJldikpICgodHlwZW9mKCooKHR5cGVvZigqKHN0cnVjdCBo
bGlzdF9ub2RlICoqKW5ldy0+cHByZXYpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoKihzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSlfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6
ZSgmKComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KComKihzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiluZXctPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7IH0g
d2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmIChuZXh0KQogICh7IHVuaW9uIHsgdHlwZW9mKG5l
dy0+bmV4dC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICgg
dHlwZW9mKG5ldy0+bmV4dC0+cHByZXYpKSAoJm5ldy0+bmV4dCkgfTsgX193cml0ZV9vbmNlX3Np
emUoJihuZXctPm5leHQtPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG5ldy0+bmV4dC0+cHByZXYp
KTsgX191Ll9fdmFsOyB9KTsKICh7IHVuaW9uIHsgdHlwZW9mKG9sZC0+cHByZXYpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG9sZC0+cHByZXYpKSAoKCh2
b2lkICopIDB4MTIyICsgKDB4ZGVhZDAwMDAwMDAwMDAwMFVMKSkpIH07IF9fd3JpdGVfb25jZV9z
aXplKCYob2xkLT5wcHJldiksIF9fdS5fX2MsIHNpemVvZihvbGQtPnBwcmV2KSk7IF9fdS5fX3Zh
bDsgfSk7Cn0KIyA1MzUgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYWRk
X2hlYWRfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAgIHN0cnVjdCBobGlzdF9oZWFkICpo
KQp7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqZmlyc3QgPSBoLT5maXJzdDsKCiBuLT5uZXh0ID0gZmly
c3Q7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJmgtPmZpcnN0KSB9OyBfX3dyaXRl
X29uY2Vfc2l6ZSgmKG4tPnBwcmV2KSwgX191Ll9fYywgc2l6ZW9mKG4tPnBwcmV2KSk7IF9fdS5f
X3ZhbDsgfSk7CiBkbyB7IHVpbnRwdHJfdCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuKTsgOyBp
ZiAoX19idWlsdGluX2NvbnN0YW50X3AobikgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCko
KHZvaWQgKikwKSkgKHsgdW5pb24geyB0eXBlb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
JihoKS0+Zmlyc3QpKSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAo
IHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkpKSAoKHR5
cGVvZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSkoX3JfYV9wX192
KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGgp
LT5maXJzdCkpKSkpLCBfX3UuX19jLCBzaXplb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
JihoKS0+Zmlyc3QpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzU0Mih2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9y
X18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikp
KTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3Qp
KSkpID09IHNpemVvZihjaGFyKSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiop
KCYoaCktPmZpcnN0KSkpKSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigq
JigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpID09IHNpemVvZihsb25n
KSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF81NDIoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComKCooKHN0cnVj
dCBobGlzdF9ub2RlICoqKSgmKGgpLT5maXJzdCkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9f
dSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCkt
PmZpcnN0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKiko
JihoKS0+Zmlyc3QpKSkpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKGgpLT5maXJzdCkpKSkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUo
JigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihoKS0+Zmlyc3QpKSkpLCBfX3UuX19jLCBz
aXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYoaCktPmZpcnN0KSkpKSk7IF9fdS5f
X3ZhbDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIGlmIChmaXJzdCkKICAoeyB1bmlv
biB7IHR5cGVvZihmaXJzdC0+cHByZXYpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5f
X3ZhbCA9ICggdHlwZW9mKGZpcnN0LT5wcHJldikpICgmbi0+bmV4dCkgfTsgX193cml0ZV9vbmNl
X3NpemUoJihmaXJzdC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2YoZmlyc3QtPnBwcmV2KSk7IF9f
dS5fX3ZhbDsgfSk7Cn0KIyA1NjYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0LmgiCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxp
c3RfYWRkX3RhaWxfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAgICAgICAgc3RydWN0IGhs
aXN0X2hlYWQgKmgpCnsKIHN0cnVjdCBobGlzdF9ub2RlICppLCAqbGFzdCA9ICgodm9pZCAqKTAp
OwoKCiBmb3IgKGkgPSBoLT5maXJzdDsgaTsgaSA9IGktPm5leHQpCiAgbGFzdCA9IGk7CgogaWYg
KGxhc3QpIHsKICBuLT5uZXh0ID0gbGFzdC0+bmV4dDsKICAoeyB1bmlvbiB7IHR5cGVvZihuLT5w
cHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+
cHByZXYpKSAoJmxhc3QtPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBf
X3UuX19jLCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKICBkbyB7IHVpbnRwdHJf
dCBfcl9hX3BfX3YgPSAodWludHB0cl90KShuKTsgOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3Ao
bikgJiYgKF9yX2FfcF9fdikgPT0gKHVpbnRwdHJfdCkoKHZvaWQgKikwKSkgKHsgdW5pb24geyB0
eXBlb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+bmV4dCkpKSkpIF9fdmFs
OyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCgoKigoc3RydWN0IGhs
aXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpKSkgKCh0eXBlb2YoKCooKHN0cnVjdCBobGlz
dF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSkoX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNl
X3NpemUoJigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSksIF9f
dS5fX2MsIHNpemVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkp
KSkpOyBfX3UuX192YWw7IH0pOyBlbHNlIGRvIHsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0
aW1lX2Fzc2VydF81Nzgodm9pZCkgX19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJOZWVkIG5hdGl2
ZSB3b3JkIHNpemVkIHN0b3Jlcy9sb2FkcyBmb3IgYXRvbWljaXR5LiIpKSk7IGlmICghKChzaXpl
b2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpID09IHNpemVv
ZihjaGFyKSB8fCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5l
eHQpKSkpID09IHNpemVvZihzaG9ydCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKSgmKGxhc3QpLT5uZXh0KSkpKSA9PSBzaXplb2YoaW50KSB8fCBzaXplb2YoKiYoKigoc3Ry
dWN0IGhsaXN0X25vZGUgKiopKCYobGFzdCktPm5leHQpKSkpID09IHNpemVvZihsb25nKSkpKSBf
X2NvbXBpbGV0aW1lX2Fzc2VydF81NzgoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18gX192b2xhdGls
ZV9fKCIiOiA6IDoibWVtb3J5Iik7ICh7IHVuaW9uIHsgdHlwZW9mKComKCooKHN0cnVjdCBobGlz
dF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0g
eyAuX192YWwgPSAoIHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihsYXN0KS0+
bmV4dCkpKSkpICgodHlwZW9mKCooKHR5cGVvZigoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYo
bGFzdCktPm5leHQpKSkpKV9yX2FfcF9fdikpICopKCh0eXBlb2YoKCooKHN0cnVjdCBobGlzdF9u
b2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSlfcl9hX3BfX3YpKSB9OyBfX3dyaXRlX29uY2Vfc2l6
ZSgmKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSwgX191Ll9f
Yywgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKGxhc3QpLT5uZXh0KSkpKSk7
IF9fdS5fX3ZhbDsgfSk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIH0gZWxzZSB7CiAgaGxp
c3RfYWRkX2hlYWRfcmN1KG4sIGgpOwogfQp9CiMgNjAyICIuL2luY2x1ZGUvbGludXgvcmN1bGlz
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB2b2lkIGhsaXN0X2FkZF9iZWZvcmVfcmN1KHN0cnVjdCBobGlzdF9ub2RlICpuLAogICAg
IHN0cnVjdCBobGlzdF9ub2RlICpuZXh0KQp7CiAoeyB1bmlvbiB7IHR5cGVvZihuLT5wcHJldikg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yobi0+cHByZXYp
KSAobmV4dC0+cHByZXYpIH07IF9fd3JpdGVfb25jZV9zaXplKCYobi0+cHByZXYpLCBfX3UuX19j
LCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKIG4tPm5leHQgPSBuZXh0OwogZG8g
eyB1aW50cHRyX3QgX3JfYV9wX192ID0gKHVpbnRwdHJfdCkobik7IDsgaWYgKF9fYnVpbHRpbl9j
b25zdGFudF9wKG4pICYmIChfcl9hX3BfX3YpID09ICh1aW50cHRyX3QpKCh2b2lkICopMCkpICh7
IHVuaW9uIHsgdHlwZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkp
KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigoKCooKHN0
cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSkpICgodHlwZW9mKCgqKChzdHJ1Y3Qg
aGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25j
ZV9zaXplKCYoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpLCBfX3Uu
X19jLCBzaXplb2YoKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpKTsg
X191Ll9fdmFsOyB9KTsgZWxzZSBkbyB7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9h
c3NlcnRfNjA3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29y
ZCBzaXplZCBzdG9yZXMvbG9hZHMgZm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKCom
KCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YoY2hhcikg
fHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSA9PSBz
aXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5w
cHJldikpKSkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKSgobiktPnBwcmV2KSkpKSA9PSBzaXplb2YobG9uZykpKSkgX19jb21waWxldGltZV9hc3Nl
cnRfNjA3KCk7IH0gd2hpbGUgKDApOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpOyAoeyB1bmlvbiB7IHR5cGVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5w
cHJldikpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
KiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKChuKS0+cHByZXYpKSkpKSAoKHR5cGVvZigqKCh0
eXBlb2YoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgobiktPnBwcmV2KSkpKSlfcl9hX3BfX3Yp
KSAqKSgodHlwZW9mKCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoKG4pLT5wcHJldikpKSkpX3Jf
YV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoKG4pLT5wcHJldikpKSksIF9fdS5fX2MsIHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqKikoKG4pLT5wcHJldikpKSkpOyBfX3UuX192YWw7IH0pOyB9IHdoaWxlICgwKTsgfSB3aGls
ZSAoMCk7CiAoeyB1bmlvbiB7IHR5cGVvZihuZXh0LT5wcHJldikgX192YWw7IGNoYXIgX19jWzFd
OyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YobmV4dC0+cHByZXYpKSAoJm4tPm5leHQpIH07
IF9fd3JpdGVfb25jZV9zaXplKCYobmV4dC0+cHByZXYpLCBfX3UuX19jLCBzaXplb2YobmV4dC0+
cHByZXYpKTsgX191Ll9fdmFsOyB9KTsKfQojIDYyOSAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3Qu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBobGlzdF9hZGRfYmVoaW5kX3JjdShzdHJ1Y3QgaGxpc3Rfbm9kZSAqbiwKICAgICBz
dHJ1Y3QgaGxpc3Rfbm9kZSAqcHJldikKewogbi0+bmV4dCA9IHByZXYtPm5leHQ7CiAoeyB1bmlv
biB7IHR5cGVvZihuLT5wcHJldikgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFs
ID0gKCB0eXBlb2Yobi0+cHByZXYpKSAoJnByZXYtPm5leHQpIH07IF9fd3JpdGVfb25jZV9zaXpl
KCYobi0+cHByZXYpLCBfX3UuX19jLCBzaXplb2Yobi0+cHByZXYpKTsgX191Ll9fdmFsOyB9KTsK
IGRvIHsgdWludHB0cl90IF9yX2FfcF9fdiA9ICh1aW50cHRyX3QpKG4pOyA7IGlmIChfX2J1aWx0
aW5fY29uc3RhbnRfcChuKSAmJiAoX3JfYV9wX192KSA9PSAodWludHB0cl90KSgodm9pZCAqKTAp
KSAoeyB1bmlvbiB7IHR5cGVvZigoKCooKHN0cnVjdCBobGlzdF9ub2RlICoqKSgmKHByZXYpLT5u
ZXh0KSkpKSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2Yo
KCgqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpKSAoKHR5cGVvZigo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKShfcl9hX3BfX3YpKSB9
OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldikt
Pm5leHQpKSkpKSwgX191Ll9fYywgc2l6ZW9mKCgoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYo
cHJldiktPm5leHQpKSkpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2UgZG8geyBkbyB7IGV4dGVybiB2
b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9y
X18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9taWNpdHkuIikp
KTsgaWYgKCEoKHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4
dCkpKSkgPT0gc2l6ZW9mKGNoYXIpIHx8IHNpemVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAq
KikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiYoKigoc3Ry
dWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpID09IHNpemVvZihpbnQpIHx8IHNp
emVvZigqJigqKChzdHJ1Y3QgaGxpc3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkgPT0gc2l6
ZW9mKGxvbmcpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzYzNCgpOyB9IHdoaWxlICgwKTsgX19h
c21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2YoKiYo
Kigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKComKCooKHN0cnVjdCBobGlzdF9ub2Rl
ICoqKSgmKHByZXYpLT5uZXh0KSkpKSkgKCh0eXBlb2YoKigodHlwZW9mKCgqKChzdHJ1Y3QgaGxp
c3Rfbm9kZSAqKikoJihwcmV2KS0+bmV4dCkpKSkpX3JfYV9wX192KSkgKikoKHR5cGVvZigoKigo
c3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5leHQpKSkpKV9yX2FfcF9fdikpIH07IF9f
d3JpdGVfb25jZV9zaXplKCYoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJldiktPm5l
eHQpKSkpLCBfX3UuX19jLCBzaXplb2YoKiYoKigoc3RydWN0IGhsaXN0X25vZGUgKiopKCYocHJl
diktPm5leHQpKSkpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwog
aWYgKG4tPm5leHQpCiAgKHsgdW5pb24geyB0eXBlb2Yobi0+bmV4dC0+cHByZXYpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKG4tPm5leHQtPnBwcmV2KSkg
KCZuLT5uZXh0KSB9OyBfX3dyaXRlX29uY2Vfc2l6ZSgmKG4tPm5leHQtPnBwcmV2KSwgX191Ll9f
Yywgc2l6ZW9mKG4tPm5leHQtPnBwcmV2KSk7IF9fdS5fX3ZhbDsgfSk7Cn0KIyA4ICIuL2luY2x1
ZGUvbGludXgvZGNhY2hlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIiAx
CgoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiIDEKCgoKCgojIDEgIi4vaW5j
bHVkZS9saW51eC9iaXRfc3BpbmxvY2suaCIgMQojIDE2ICIuL2luY2x1ZGUvbGludXgvYml0X3Nw
aW5sb2NrLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgYml0X3NwaW5fbG9jayhpbnQgYml0bnVtLCB1bnNpZ25lZCBsb25nICph
ZGRyKQp7CgoKCgoKCgogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKCiB3
aGlsZSAoX19idWlsdGluX2V4cGVjdCghISh0ZXN0X2FuZF9zZXRfYml0X2xvY2soYml0bnVtLCBh
ZGRyKSksIDApKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICBk
byB7CiAgIGNwdV9yZWxheCgpOwogIH0gd2hpbGUgKHRlc3RfYml0KGJpdG51bSwgYWRkcikpOwog
IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiB9CgogKHZvaWQpMDsKfQoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGJpdF9zcGluX3RyeWxvY2soaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRkcikK
ewogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKCiBpZiAoX19idWlsdGlu
X2V4cGVjdCghISh0ZXN0X2FuZF9zZXRfYml0X2xvY2soYml0bnVtLCBhZGRyKSksIDApKSB7CiAg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICByZXR1cm4gMDsKIH0KCiAo
dm9pZCkwOwogcmV0dXJuIDE7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYml0X3NwaW5fdW5sb2NrKGludCBiaXRudW0s
IHVuc2lnbmVkIGxvbmcgKmFkZHIpCnsKCgoKCiBjbGVhcl9iaXRfdW5sb2NrKGJpdG51bSwgYWRk
cik7CgogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICh2b2lkKTA7Cn0K
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBfX2JpdF9zcGluX3VubG9jayhpbnQgYml0bnVtLCB1bnNpZ25lZCBsb25nICph
ZGRyKQp7CgoKCgogX19jbGVhcl9iaXRfdW5sb2NrKGJpdG51bSwgYWRkcik7CgogX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKICh2b2lkKTA7Cn0KCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBiaXRfc3Bp
bl9pc19sb2NrZWQoaW50IGJpdG51bSwgdW5zaWduZWQgbG9uZyAqYWRkcikKewoKIHJldHVybiB0
ZXN0X2JpdChiaXRudW0sIGFkZHIpOwoKCgoKCn0KIyA3ICIuL2luY2x1ZGUvbGludXgvbGlzdF9i
bC5oIiAyCiMgMzQgIi4vaW5jbHVkZS9saW51eC9saXN0X2JsLmgiCnN0cnVjdCBobGlzdF9ibF9o
ZWFkIHsKIHN0cnVjdCBobGlzdF9ibF9ub2RlICpmaXJzdDsKfTsKCnN0cnVjdCBobGlzdF9ibF9u
b2RlIHsKIHN0cnVjdCBobGlzdF9ibF9ub2RlICpuZXh0LCAqKnBwcmV2Owp9OwoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIElO
SVRfSExJU1RfQkxfTk9ERShzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaCkKewogaC0+bmV4dCA9ICgo
dm9pZCAqKTApOwogaC0+cHByZXYgPSAoKHZvaWQgKikwKTsKfQoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGhsaXN0X2JsX3Vu
aGFzaGVkKGNvbnN0IHN0cnVjdCBobGlzdF9ibF9ub2RlICpoKQp7CiByZXR1cm4gIWgtPnBwcmV2
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqaGxpc3RfYmxfZmlyc3Qoc3RydWN0IGhsaXN0X2Js
X2hlYWQgKmgpCnsKIHJldHVybiAoc3RydWN0IGhsaXN0X2JsX25vZGUgKikKICAoKHVuc2lnbmVk
IGxvbmcpaC0+Zmlyc3QgJiB+MVVMKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9zZXRfZmlyc3Qoc3RydWN0
IGhsaXN0X2JsX2hlYWQgKmgsCiAgICAgc3RydWN0IGhsaXN0X2JsX25vZGUgKm4pCnsKIGRvIHsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKHVuc2lnbmVkIGxvbmcpbiAmIDFVTCksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2xpc3Rf
YmwuaCIpLCAiaSIgKDY2KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkp
KTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2Vj
dGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9w
c2VjdGlvblxuXHQiIDogOiAiaSIgKDE5KSk7IH0pOyBhc20gdm9sYXRpbGUoIiIpOyBfX2J1aWx0
aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
IGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoKCh1bnNpZ25lZCBsb25nKWgtPmZpcnN0ICYg
MVVMKSAhPSAxVUwpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIg
Ii5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJc
biIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJc
biIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJc
dC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1
Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImki
ICgiaW5jbHVkZS9saW51eC9saXN0X2JsLmgiKSwgImkiICg2NyksICJpIiAoMCksICJpIiAoc2l6
ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGls
ZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxv
bmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgyMCkpOyB9KTsgYXNt
IHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdo
aWxlICgwKTsgfSB3aGlsZSAoMCkKICAgICAgICAgICAgICAgICAgICAgICAgOwogaC0+Zmlyc3Qg
PSAoc3RydWN0IGhsaXN0X2JsX25vZGUgKikoKHVuc2lnbmVkIGxvbmcpbiB8IDFVTCk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgaGxpc3RfYmxfZW1wdHkoY29uc3Qgc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgpCnsKIHJldHVy
biAhKCh1bnNpZ25lZCBsb25nKSh7IHVuaW9uIHsgdHlwZW9mKGgtPmZpcnN0KSBfX3ZhbDsgY2hh
ciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGgtPmZpcnN0KSwgX191
Ll9fYywgc2l6ZW9mKGgtPmZpcnN0KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYo
aC0+Zmlyc3QpLCBfX3UuX19jLCBzaXplb2YoaC0+Zmlyc3QpKTsgZG8geyB9IHdoaWxlICgwKTsg
X191Ll9fdmFsOyB9KSAmIH4xVUwpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2FkZF9oZWFkKHN0cnVjdCBo
bGlzdF9ibF9ub2RlICpuLAogICAgIHN0cnVjdCBobGlzdF9ibF9oZWFkICpoKQp7CiBzdHJ1Y3Qg
aGxpc3RfYmxfbm9kZSAqZmlyc3QgPSBobGlzdF9ibF9maXJzdChoKTsKCiBuLT5uZXh0ID0gZmly
c3Q7CiBpZiAoZmlyc3QpCiAgZmlyc3QtPnBwcmV2ID0gJm4tPm5leHQ7CiBuLT5wcHJldiA9ICZo
LT5maXJzdDsKIGhsaXN0X2JsX3NldF9maXJzdChoLCBuKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9hZGRf
YmVmb3JlKHN0cnVjdCBobGlzdF9ibF9ub2RlICpuLAogICAgICAgICAgIHN0cnVjdCBobGlzdF9i
bF9ub2RlICpuZXh0KQp7CiBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqKnBwcmV2ID0gbmV4dC0+cHBy
ZXY7Cgogbi0+cHByZXYgPSBwcHJldjsKIG4tPm5leHQgPSBuZXh0OwogbmV4dC0+cHByZXYgPSAm
bi0+bmV4dDsKCgogKHsgdW5pb24geyB0eXBlb2YoKnBwcmV2KSBfX3ZhbDsgY2hhciBfX2NbMV07
IH0gX191ID0geyAuX192YWwgPSAoIHR5cGVvZigqcHByZXYpKSAoKHN0cnVjdCBobGlzdF9ibF9u
b2RlICopICgodWludHB0cl90KW4gfCAoKHVpbnRwdHJfdCkqcHByZXYgJiAxVUwpKSkgfTsgX193
cml0ZV9vbmNlX3NpemUoJigqcHByZXYpLCBfX3UuX19jLCBzaXplb2YoKnBwcmV2KSk7IF9fdS5f
X3ZhbDsgfSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhsaXN0X2JsX2FkZF9iZWhpbmQoc3RydWN0IGhsaXN0X2Js
X25vZGUgKm4sCiAgICAgICAgICAgc3RydWN0IGhsaXN0X2JsX25vZGUgKnByZXYpCnsKIG4tPm5l
eHQgPSBwcmV2LT5uZXh0Owogbi0+cHByZXYgPSAmcHJldi0+bmV4dDsKIHByZXYtPm5leHQgPSBu
OwoKIGlmIChuLT5uZXh0KQogIG4tPm5leHQtPnBwcmV2ID0gJm4tPm5leHQ7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19o
bGlzdF9ibF9kZWwoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4pCnsKIHN0cnVjdCBobGlzdF9ibF9u
b2RlICpuZXh0ID0gbi0+bmV4dDsKIHN0cnVjdCBobGlzdF9ibF9ub2RlICoqcHByZXYgPSBuLT5w
cHJldjsKCiBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKW4gJiAx
VUwpLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4
MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQi
ICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAi
LmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVj
MSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6
ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVk
ZS9saW51eC9saXN0X2JsLmgiKSwgImkiICgxMjApLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1
Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpc
blx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIg
LSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjEpKTsgfSk7IGFzbSB2b2xhdGls
ZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7
IH0gd2hpbGUgKDApOwoKCiAoeyB1bmlvbiB7IHR5cGVvZigqcHByZXYpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKCpwcHJldikpICgoc3RydWN0IGhsaXN0
X2JsX25vZGUgKikgKCh1bnNpZ25lZCBsb25nKW5leHQgfCAoKHVuc2lnbmVkIGxvbmcpKnBwcmV2
ICYgMVVMKSkpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKnBwcmV2KSwgX191Ll9fYywgc2l6ZW9m
KCpwcHJldikpOyBfX3UuX192YWw7IH0pCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOwogaWYgKG5leHQpCiAgbmV4dC0+cHByZXYgPSBwcHJldjsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBobGlzdF9ibF9kZWwoc3RydWN0IGhsaXN0X2JsX25vZGUgKm4pCnsKIF9faGxpc3RfYmxf
ZGVsKG4pOwogbi0+bmV4dCA9ICgodm9pZCAqKSAweDEwMCArICgweGRlYWQwMDAwMDAwMDAwMDBV
TCkpOwogbi0+cHByZXYgPSAoKHZvaWQgKikgMHgxMjIgKyAoMHhkZWFkMDAwMDAwMDAwMDAwVUwp
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBobGlzdF9ibF9kZWxfaW5pdChzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKewog
aWYgKCFobGlzdF9ibF91bmhhc2hlZChuKSkgewogIF9faGxpc3RfYmxfZGVsKG4pOwogIElOSVRf
SExJU1RfQkxfTk9ERShuKTsKIH0KfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBobGlzdF9ibF9sb2NrKHN0cnVjdCBobGlzdF9i
bF9oZWFkICpiKQp7CiBiaXRfc3Bpbl9sb2NrKDAsICh1bnNpZ25lZCBsb25nICopYik7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgaGxpc3RfYmxfdW5sb2NrKHN0cnVjdCBobGlzdF9ibF9oZWFkICpiKQp7CiBfX2JpdF9zcGlu
X3VubG9jaygwLCAodW5zaWduZWQgbG9uZyAqKWIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGhsaXN0X2JsX2lzX2xvY2tl
ZChzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAqYikKewogcmV0dXJuIGJpdF9zcGluX2lzX2xvY2tlZCgw
LCAodW5zaWduZWQgbG9uZyAqKWIpOwp9CiMgOSAiLi9pbmNsdWRlL2xpbnV4L3JjdWxpc3RfYmwu
aCIgMgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgaGxpc3RfYmxfc2V0X2ZpcnN0X3JjdShzdHJ1Y3QgaGxpc3RfYmxfaGVhZCAq
aCwKICAgICBzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKewogZG8geyBpZiAoX19idWlsdGluX2V4
cGVjdCghISgodW5zaWduZWQgbG9uZyluICYgMVVMKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxp
bmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24g
X19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBi
dWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1
Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJc
dC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIu
cG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcmN1bGlzdF9ibC5oIiksICJpIiAo
MTQpLCAiaSIgKDApLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgw
KTsgZG8geyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJk
LnVucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMjIpKTsgfSk7IGFzbSB2b2xhdGlsZSgiIik7IF9fYnVpbHRpbl91bnJlYWNoYWJs
ZSgpOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOwogZG8geyBpZiAoX19i
dWlsdGluX2V4cGVjdCghISgoKHVuc2lnbmVkIGxvbmcpaC0+Zmlyc3QgJiAxVUwpICE9IDFVTCks
IDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwg
MHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5s
b25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9u
ZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAi
XHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFn
c1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xp
bnV4L3JjdWxpc3RfYmwuaCIpLCAiaSIgKDE1KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0g
LlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDIzKSk7IH0pOyBhc20gdm9sYXRpbGUo
IiIpOyBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9
IHdoaWxlICgwKQogICAgICAgICAgICAgICAgICAgICAgICA7CiBkbyB7IHVpbnRwdHJfdCBfcl9h
X3BfX3YgPSAodWludHB0cl90KSgoc3RydWN0IGhsaXN0X2JsX25vZGUgKikoKHVuc2lnbmVkIGxv
bmcpbiB8IDFVTCkpOyA7IGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoc3RydWN0IGhsaXN0X2Js
X25vZGUgKikoKHVuc2lnbmVkIGxvbmcpbiB8IDFVTCkpICYmIChfcl9hX3BfX3YpID09ICh1aW50
cHRyX3QpKCh2b2lkICopMCkpICh7IHVuaW9uIHsgdHlwZW9mKChoLT5maXJzdCkpIF9fdmFsOyBj
aGFyIF9fY1sxXTsgfSBfX3UgPSB7IC5fX3ZhbCA9ICggdHlwZW9mKChoLT5maXJzdCkpKSAoKHR5
cGVvZihoLT5maXJzdCkpKF9yX2FfcF9fdikpIH07IF9fd3JpdGVfb25jZV9zaXplKCYoKGgtPmZp
cnN0KSksIF9fdS5fX2MsIHNpemVvZigoaC0+Zmlyc3QpKSk7IF9fdS5fX3ZhbDsgfSk7IGVsc2Ug
ZG8geyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzE3KHZvaWQpIF9fYXR0
cmlidXRlX18oKF9fZXJyb3JfXygiTmVlZCBuYXRpdmUgd29yZCBzaXplZCBzdG9yZXMvbG9hZHMg
Zm9yIGF0b21pY2l0eS4iKSkpOyBpZiAoISgoc2l6ZW9mKComaC0+Zmlyc3QpID09IHNpemVvZihj
aGFyKSB8fCBzaXplb2YoKiZoLT5maXJzdCkgPT0gc2l6ZW9mKHNob3J0KSB8fCBzaXplb2YoKiZo
LT5maXJzdCkgPT0gc2l6ZW9mKGludCkgfHwgc2l6ZW9mKComaC0+Zmlyc3QpID09IHNpemVvZihs
b25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNygpOyB9IHdoaWxlICgwKTsgX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKHsgdW5pb24geyB0eXBlb2YoKiZoLT5maXJz
dCkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdSA9IHsgLl9fdmFsID0gKCB0eXBlb2YoKiZoLT5m
aXJzdCkpICgodHlwZW9mKCooKHR5cGVvZihoLT5maXJzdCkpX3JfYV9wX192KSkgKikoKHR5cGVv
ZihoLT5maXJzdCkpX3JfYV9wX192KSkgfTsgX193cml0ZV9vbmNlX3NpemUoJigqJmgtPmZpcnN0
KSwgX191Ll9fYywgc2l6ZW9mKComaC0+Zmlyc3QpKTsgX191Ll9fdmFsOyB9KTsgfSB3aGlsZSAo
MCk7IH0gd2hpbGUgKDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBobGlzdF9ibF9ub2RlICpobGlzdF9i
bF9maXJzdF9yY3Uoc3RydWN0IGhsaXN0X2JsX2hlYWQgKmgpCnsKIHJldHVybiAoc3RydWN0IGhs
aXN0X2JsX25vZGUgKikKICAoKHVuc2lnbmVkIGxvbmcpKHsgdHlwZW9mKCooaC0+Zmlyc3QpKSAq
X19fX19fX19wMSA9ICh0eXBlb2YoKihoLT5maXJzdCkpICopKHsgdW5pb24geyB0eXBlb2YoKGgt
PmZpcnN0KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJigoaC0+Zmlyc3QpKSwgX191Ll9fYywgc2l6ZW9mKChoLT5maXJzdCkpKTsgZWxzZSBfX3Jl
YWRfb25jZV9zaXplX25vY2hlY2soJigoaC0+Zmlyc3QpKSwgX191Ll9fYywgc2l6ZW9mKChoLT5m
aXJzdCkpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgw
KTsgOyAoKHR5cGVvZigqKGgtPmZpcnN0KSkgKikoX19fX19fX19wMSkpOyB9KSAmIH4xVUwpOwp9
CiMgNDYgIi4vaW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYmxfZGVsX3Jj
dShzdHJ1Y3QgaGxpc3RfYmxfbm9kZSAqbikKewogX19obGlzdF9ibF9kZWwobik7CiBuLT5wcHJl
diA9ICgodm9pZCAqKSAweDEyMiArICgweGRlYWQwMDAwMDAwMDAwMDBVTCkpOwp9CiMgNzEgIi4v
aW5jbHVkZS9saW51eC9yY3VsaXN0X2JsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaGxpc3RfYmxfYWRkX2hlYWRfcmN1KHN0
cnVjdCBobGlzdF9ibF9ub2RlICpuLAogICAgIHN0cnVjdCBobGlzdF9ibF9oZWFkICpoKQp7CiBz
dHJ1Y3QgaGxpc3RfYmxfbm9kZSAqZmlyc3Q7CgoKIGZpcnN0ID0gaGxpc3RfYmxfZmlyc3QoaCk7
Cgogbi0+bmV4dCA9IGZpcnN0OwogaWYgKGZpcnN0KQogIGZpcnN0LT5wcHJldiA9ICZuLT5uZXh0
Owogbi0+cHByZXYgPSAmaC0+Zmlyc3Q7CgoKIGhsaXN0X2JsX3NldF9maXJzdF9yY3UoaCwgbik7
Cn0KIyA5ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2xvY2tyZWYuaCIgMQojIDI1ICIuL2luY2x1ZGUvbGludXgvbG9ja3JlZi5oIgpzdHJ1Y3Qg
bG9ja3JlZiB7CiB1bmlvbiB7CgogIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBs
b2NrX2NvdW50OwoKICBzdHJ1Y3QgewogICBzcGlubG9ja190IGxvY2s7CiAgIGludCBjb3VudDsK
ICB9OwogfTsKfTsKCmV4dGVybiB2b2lkIGxvY2tyZWZfZ2V0KHN0cnVjdCBsb2NrcmVmICopOwpl
eHRlcm4gaW50IGxvY2tyZWZfcHV0X3JldHVybihzdHJ1Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGlu
dCBsb2NrcmVmX2dldF9ub3RfemVybyhzdHJ1Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGludCBsb2Nr
cmVmX3B1dF9ub3RfemVybyhzdHJ1Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGludCBsb2NrcmVmX2dl
dF9vcl9sb2NrKHN0cnVjdCBsb2NrcmVmICopOwpleHRlcm4gaW50IGxvY2tyZWZfcHV0X29yX2xv
Y2soc3RydWN0IGxvY2tyZWYgKik7CgpleHRlcm4gdm9pZCBsb2NrcmVmX21hcmtfZGVhZChzdHJ1
Y3QgbG9ja3JlZiAqKTsKZXh0ZXJuIGludCBsb2NrcmVmX2dldF9ub3RfZGVhZChzdHJ1Y3QgbG9j
a3JlZiAqKTsKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIF9fbG9ja3JlZl9pc19kZWFkKGNvbnN0IHN0cnVjdCBsb2NrcmVmICps
KQp7CiByZXR1cm4gKChpbnQpbC0+Y291bnQgPCAwKTsKfQojIDE0ICIuL2luY2x1ZGUvbGludXgv
ZGNhY2hlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvc3RyaW5naGFzaC5oIiAxCgoKCgoKCiMg
MSAiLi9pbmNsdWRlL2xpbnV4L2hhc2guaCIgMQoKCgoKCiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRl
L2dlbmVyYXRlZC91YXBpL2FzbS90eXBlcy5oIiAxCiMgNyAiLi9pbmNsdWRlL2xpbnV4L2hhc2gu
aCIgMgojIDYwICIuL2luY2x1ZGUvbGludXgvaGFzaC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MzIgX19oYXNoXzMyX2dlbmVyaWMo
dTMyIHZhbCkKewogcmV0dXJuIHZhbCAqIDB4NjFDODg2NDc7Cn0KCgoKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHUzMiBoYXNoXzMyX2dl
bmVyaWModTMyIHZhbCwgdW5zaWduZWQgaW50IGJpdHMpCnsKCiByZXR1cm4gX19oYXNoXzMyX2dl
bmVyaWModmFsKSA+PiAoMzIgLSBiaXRzKTsKfQoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNf
aW5saW5lX18pKSB1MzIgaGFzaF82NF9nZW5lcmljKHU2NCB2YWwsIHVuc2lnbmVkIGludCBiaXRz
KQp7CgoKIHJldHVybiB2YWwgKiAweDYxQzg4NjQ2ODBCNTgzRUJ1bGwgPj4gKDY0IC0gYml0cyk7
CgoKCgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB1MzIgaGFzaF9wdHIoY29uc3Qgdm9pZCAqcHRyLCB1bnNpZ25lZCBpbnQgYml0cykK
ewogcmV0dXJuIGhhc2hfNjRfZ2VuZXJpYygodW5zaWduZWQgbG9uZylwdHIsIGJpdHMpOwp9CgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dTMyIGhhc2gzMl9wdHIoY29uc3Qgdm9pZCAqcHRyKQp7CiB1bnNpZ25lZCBsb25nIHZhbCA9ICh1
bnNpZ25lZCBsb25nKXB0cjsKCgogdmFsIF49ICh2YWwgPj4gMzIpOwoKIHJldHVybiAodTMyKXZh
bDsKfQojIDggIi4vaW5jbHVkZS9saW51eC9zdHJpbmdoYXNoLmgiIDIKIyA0MiAiLi9pbmNsdWRl
L2xpbnV4L3N0cmluZ2hhc2guaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZwpwYXJ0aWFsX25hbWVfaGFzaCh1bnNp
Z25lZCBsb25nIGMsIHVuc2lnbmVkIGxvbmcgcHJldmhhc2gpCnsKIHJldHVybiAocHJldmhhc2gg
KyAoYyA8PCA0KSArIChjID4+IDQpKSAqIDExOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBlbmRfbmFt
ZV9oYXNoKHVuc2lnbmVkIGxvbmcgaGFzaCkKewogcmV0dXJuIGhhc2hfNjRfZ2VuZXJpYyhoYXNo
LCAzMik7Cn0KIyA2NiAiLi9pbmNsdWRlL2xpbnV4L3N0cmluZ2hhc2guaCIKZXh0ZXJuIHVuc2ln
bmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIGZ1bGxfbmFtZV9oYXNoKGNvbnN0IHZv
aWQgKnNhbHQsIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50KTsKIyA3NyAiLi9pbmNsdWRlL2xp
bnV4L3N0cmluZ2hhc2guaCIKZXh0ZXJuIHU2NCBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpIGhh
c2hsZW5fc3RyaW5nKGNvbnN0IHZvaWQgKnNhbHQsIGNvbnN0IGNoYXIgKm5hbWUpOwojIDE1ICIu
L2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDIKCgpzdHJ1Y3QgcGF0aDsKc3RydWN0IHZmc21vdW50
OwojIDQ3ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0cnVjdCBxc3RyIHsKIHVuaW9uIHsK
ICBzdHJ1Y3QgewogICB1MzIgaGFzaDsgdTMyIGxlbjsKICB9OwogIHU2NCBoYXNoX2xlbjsKIH07
CiBjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lOwp9OwoKCgpleHRlcm4gY29uc3Qgc3RydWN0IHFz
dHIgZW1wdHlfbmFtZTsKZXh0ZXJuIGNvbnN0IHN0cnVjdCBxc3RyIHNsYXNoX25hbWU7CgpzdHJ1
Y3QgZGVudHJ5X3N0YXRfdCB7CiBsb25nIG5yX2RlbnRyeTsKIGxvbmcgbnJfdW51c2VkOwogbG9u
ZyBhZ2VfbGltaXQ7CiBsb25nIHdhbnRfcGFnZXM7CiBsb25nIG5yX25lZ2F0aXZlOwogbG9uZyBk
dW1teTsKfTsKZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRyeV9zdGF0OwojIDg5ICIu
L2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0cnVjdCBkZW50cnkgewoKIHVuc2lnbmVkIGludCBk
X2ZsYWdzOwogc2VxY291bnRfdCBkX3NlcTsKIHN0cnVjdCBobGlzdF9ibF9ub2RlIGRfaGFzaDsK
IHN0cnVjdCBkZW50cnkgKmRfcGFyZW50Owogc3RydWN0IHFzdHIgZF9uYW1lOwogc3RydWN0IGlu
b2RlICpkX2lub2RlOwoKIHVuc2lnbmVkIGNoYXIgZF9pbmFtZVszMl07CgoKIHN0cnVjdCBsb2Nr
cmVmIGRfbG9ja3JlZjsKIGNvbnN0IHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyAqZF9vcDsKIHN0
cnVjdCBzdXBlcl9ibG9jayAqZF9zYjsKIHVuc2lnbmVkIGxvbmcgZF90aW1lOwogdm9pZCAqZF9m
c2RhdGE7CgogdW5pb24gewogIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CiAgd2FpdF9xdWV1ZV9o
ZWFkX3QgKmRfd2FpdDsKIH07CiBzdHJ1Y3QgbGlzdF9oZWFkIGRfY2hpbGQ7CiBzdHJ1Y3QgbGlz
dF9oZWFkIGRfc3ViZGlyczsKCgoKIHVuaW9uIHsKICBzdHJ1Y3QgaGxpc3Rfbm9kZSBkX2FsaWFz
OwogIHN0cnVjdCBobGlzdF9ibF9ub2RlIGRfaW5fbG9va3VwX2hhc2g7CiAgIHN0cnVjdCBjYWxs
YmFja19oZWFkIGRfcmN1OwogfSBkX3U7Cn0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2lu
aXRfXykpOwoKCgoKCgoKZW51bSBkZW50cnlfZF9sb2NrX2NsYXNzCnsKIERFTlRSWV9EX0xPQ0tf
Tk9STUFMLAogREVOVFJZX0RfTE9DS19ORVNURUQKfTsKCnN0cnVjdCBkZW50cnlfb3BlcmF0aW9u
cyB7CiBpbnQgKCpkX3JldmFsaWRhdGUpKHN0cnVjdCBkZW50cnkgKiwgdW5zaWduZWQgaW50KTsK
IGludCAoKmRfd2Vha19yZXZhbGlkYXRlKShzdHJ1Y3QgZGVudHJ5ICosIHVuc2lnbmVkIGludCk7
CiBpbnQgKCpkX2hhc2gpKGNvbnN0IHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CiBp
bnQgKCpkX2NvbXBhcmUpKGNvbnN0IHN0cnVjdCBkZW50cnkgKiwKICAgdW5zaWduZWQgaW50LCBj
b25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCBxc3RyICopOwogaW50ICgqZF9kZWxldGUpKGNvbnN0
IHN0cnVjdCBkZW50cnkgKik7CiBpbnQgKCpkX2luaXQpKHN0cnVjdCBkZW50cnkgKik7CiB2b2lk
ICgqZF9yZWxlYXNlKShzdHJ1Y3QgZGVudHJ5ICopOwogdm9pZCAoKmRfcHJ1bmUpKHN0cnVjdCBk
ZW50cnkgKik7CiB2b2lkICgqZF9pcHV0KShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAq
KTsKIGNoYXIgKigqZF9kbmFtZSkoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7CiBzdHJ1
Y3QgdmZzbW91bnQgKigqZF9hdXRvbW91bnQpKHN0cnVjdCBwYXRoICopOwogaW50ICgqZF9tYW5h
Z2UpKGNvbnN0IHN0cnVjdCBwYXRoICosIGJvb2wpOwogc3RydWN0IGRlbnRyeSAqKCpkX3JlYWwp
KHN0cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IGlub2RlICopOwp9IF9fYXR0cmlidXRlX18o
KF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CiMgMjIxICIuL2luY2x1ZGUvbGludXgvZGNhY2hl
LmgiCmV4dGVybiBzZXFsb2NrX3QgcmVuYW1lX2xvY2s7CgoKCgpleHRlcm4gdm9pZCBkX2luc3Rh
bnRpYXRlKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBkX2lu
c3RhbnRpYXRlX25ldyhzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0
cnVjdCBkZW50cnkgKiBkX2luc3RhbnRpYXRlX3VuaXF1ZShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj
dCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2luc3RhbnRpYXRlX2Fub24oc3Ry
dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIF9fZF9kcm9wKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSk7CmV4dGVybiB2b2lkIGRfZHJvcChzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpOwpleHRlcm4gdm9pZCBkX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICopOwpleHRlcm4gdm9pZCBk
X3NldF9kX29wKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3Qgc3RydWN0IGRlbnRyeV9vcGVy
YXRpb25zICpvcCk7CgoKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2FsbG9jKHN0cnVjdCBkZW50
cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKik7CmV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9hbGxv
Y19hbm9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2Fs
bG9jX3BhcmFsbGVsKHN0cnVjdCBkZW50cnkgKiwgY29uc3Qgc3RydWN0IHFzdHIgKiwKICAgICB3
YWl0X3F1ZXVlX2hlYWRfdCAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX3NwbGljZV9hbGlh
cyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkg
KiBkX2FkZF9jaShzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcXN0ciAq
KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX2V4YWN0X2FsaWFzKHN0cnVjdCBkZW50cnkgKiwg
c3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9maW5kX2FueV9hbGlhcyhz
dHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBkX29idGFpbl9hbGlh
cyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBzdHJ1Y3QgZGVudHJ5ICogZF9vYnRhaW5fcm9vdChz
dHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHNocmlua19kY2FjaGVfc2Ioc3RydWN0IHN1cGVy
X2Jsb2NrICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3BhcmVudChzdHJ1Y3QgZGVudHJ5
ICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX2Zvcl91bW91bnQoc3RydWN0IHN1cGVyX2Js
b2NrICopOwpleHRlcm4gdm9pZCBkX2ludmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqKTsKCgpleHRl
cm4gc3RydWN0IGRlbnRyeSAqIGRfbWFrZV9yb290KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4g
dm9pZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gdm9pZCBkX3RtcGZpbGUo
c3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CgpleHRlcm4gc3RydWN0IGRlbnRyeSAq
ZF9maW5kX2FsaWFzKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgZF9wcnVuZV9hbGlhc2Vz
KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4gaW50IHBhdGhfaGFzX3N1Ym1vdW50cyhjb25zdCBz
dHJ1Y3QgcGF0aCAqKTsKCgoKCmV4dGVybiB2b2lkIGRfcmVoYXNoKHN0cnVjdCBkZW50cnkgKik7
CgpleHRlcm4gdm9pZCBkX2FkZChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKTsKCgpl
eHRlcm4gdm9pZCBkX21vdmUoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwpleHRl
cm4gdm9pZCBkX2V4Y2hhbmdlKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0
ZXJuIHN0cnVjdCBkZW50cnkgKmRfYW5jZXN0b3Ioc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVu
dHJ5ICopOwoKCmV4dGVybiBzdHJ1Y3QgZGVudHJ5ICpkX2xvb2t1cChjb25zdCBzdHJ1Y3QgZGVu
dHJ5ICosIGNvbnN0IHN0cnVjdCBxc3RyICopOwpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9oYXNo
X2FuZF9sb29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgcXN0ciAqKTsKZXh0ZXJuIHN0cnVj
dCBkZW50cnkgKl9fZF9sb29rdXAoY29uc3Qgc3RydWN0IGRlbnRyeSAqLCBjb25zdCBzdHJ1Y3Qg
cXN0ciAqKTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKl9fZF9sb29rdXBfcmN1KGNvbnN0IHN0cnVj
dCBkZW50cnkgKnBhcmVudCwKICAgIGNvbnN0IHN0cnVjdCBxc3RyICpuYW1lLCB1bnNpZ25lZCAq
c2VxKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGRfY291bnQoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiBy
ZXR1cm4gZGVudHJ5LT5kX2xvY2tyZWYuY291bnQ7Cn0KCgoKCmV4dGVybiBfX2F0dHJpYnV0ZV9f
KChfX2Zvcm1hdF9fKHByaW50ZiwgNCwgNSkpKQpjaGFyICpkeW5hbWljX2RuYW1lKHN0cnVjdCBk
ZW50cnkgKiwgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKTsKCmV4dGVybiBjaGFyICpf
X2RfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjaGFyICos
IGludCk7CmV4dGVybiBjaGFyICpkX2Fic29sdXRlX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKiwg
Y2hhciAqLCBpbnQpOwpleHRlcm4gY2hhciAqZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICosIGNo
YXIgKiwgaW50KTsKZXh0ZXJuIGNoYXIgKmRlbnRyeV9wYXRoX3JhdyhzdHJ1Y3QgZGVudHJ5ICos
IGNoYXIgKiwgaW50KTsKZXh0ZXJuIGNoYXIgKmRlbnRyeV9wYXRoKHN0cnVjdCBkZW50cnkgKiwg
Y2hhciAqLCBpbnQpOwojIDMxMSAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGVu
dHJ5ICpkZ2V0X2Rsb2NrKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogaWYgKGRlbnRyeSkKICBk
ZW50cnktPmRfbG9ja3JlZi5jb3VudCsrOwogcmV0dXJuIGRlbnRyeTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRlbnRy
eSAqZGdldChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIGlmIChkZW50cnkpCiAgbG9ja3JlZl9n
ZXQoJmRlbnRyeS0+ZF9sb2NrcmVmKTsKIHJldHVybiBkZW50cnk7Cn0KCmV4dGVybiBzdHJ1Y3Qg
ZGVudHJ5ICpkZ2V0X3BhcmVudChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwojIDMzNCAiLi9pbmNs
dWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZF91bmhhc2hlZChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpCnsKIHJldHVybiBobGlzdF9ibF91bmhhc2hlZCgmZGVudHJ5LT5kX2hhc2gpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgZF91bmxpbmtlZChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVybiBkX3Vu
aGFzaGVkKGRlbnRyeSkgJiYgISgoZGVudHJ5KSA9PSAoZGVudHJ5KS0+ZF9wYXJlbnQpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgY2FudF9tb3VudChjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVybiAoZGVu
dHJ5LT5kX2ZsYWdzICYgMHgwMDAwMDEwMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZG9udF9tb3VudChzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpCnsKIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CiBkZW50
cnktPmRfZmxhZ3MgfD0gMHgwMDAwMDEwMDsKIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9ja3Jl
Zi5sb2NrKTsKfQoKZXh0ZXJuIHZvaWQgX19kX2xvb2t1cF9kb25lKHN0cnVjdCBkZW50cnkgKik7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgZF9pbl9sb29rdXAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4g
ZGVudHJ5LT5kX2ZsYWdzICYgMHgxMDAwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkX2xvb2t1cF9kb25lKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkKewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoZF9pbl9sb29rdXAo
ZGVudHJ5KSksIDApKSB7CiAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9ja3JlZi5sb2NrKTsKICBf
X2RfbG9va3VwX2RvbmUoZGVudHJ5KTsKICBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2tyZWYu
bG9jayk7CiB9Cn0KCmV4dGVybiB2b2lkIGRwdXQoc3RydWN0IGRlbnRyeSAqKTsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9t
YW5hZ2VkKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9m
bGFncyAmICgweDAwMDEwMDAwfDB4MDAwMjAwMDB8MHgwMDA0MDAwMCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9tb3Vu
dHBvaW50KGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9m
bGFncyAmIDB4MDAwMTAwMDA7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIF9fZF9lbnRyeV90eXBlKGNvbnN0IHN0
cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MDA3MDAw
MDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZF9pc19taXNzKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0
dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgwMDAwMDAwMDsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3do
aXRlb3V0KGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIF9fZF9lbnRyeV90
eXBlKGRlbnRyeSkgPT0gMHgwMDEwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2Nhbl9sb29rdXAoY29uc3Qgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gX19kX2VudHJ5X3R5cGUoZGVudHJ5KSA9PSAw
eDAwMjAwMDAwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGRfaXNfYXV0b2Rpcihjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpCnsKIHJldHVybiBfX2RfZW50cnlfdHlwZShkZW50cnkpID09IDB4MDAzMDAwMDA7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgZF9pc19kaXIoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gZF9jYW5f
bG9va3VwKGRlbnRyeSkgfHwgZF9pc19hdXRvZGlyKGRlbnRyeSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZF9pc19zeW1s
aW5rKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIF9fZF9lbnRyeV90eXBl
KGRlbnRyeSkgPT0gMHgwMDYwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3JlZyhjb25zdCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpCnsKIHJldHVybiBfX2RfZW50cnlfdHlwZShkZW50cnkpID09IDB4MDA0MDAw
MDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZF9pc19zcGVjaWFsKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewog
cmV0dXJuIF9fZF9lbnRyeV90eXBlKGRlbnRyeSkgPT0gMHgwMDUwMDAwMDsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lz
X2ZpbGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gZF9pc19yZWcoZGVu
dHJ5KSB8fCBkX2lzX3NwZWNpYWwoZGVudHJ5KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX25lZ2F0aXZlKGNvbnN0
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewoKIHJldHVybiBkX2lzX21pc3MoZGVudHJ5KTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBkX2ZsYWdzX25lZ2F0aXZlKHVuc2lnbmVkIGZsYWdzKQp7CiByZXR1cm4gKGZsYWdzICYg
MHgwMDcwMDAwMCkgPT0gMHgwMDAwMDAwMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX3Bvc2l0aXZlKGNvbnN0IHN0
cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuICFkX2lzX25lZ2F0aXZlKGRlbnRyeSk7Cn0K
IyA0NjggIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX3JlYWxseV9pc19uZWdhdGl2
ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVybiBkZW50cnktPmRfaW5vZGUg
PT0gKCh2b2lkICopMCk7Cn0KIyA0ODYgIi4vaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBk
X3JlYWxseV9pc19wb3NpdGl2ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKIHJldHVy
biBkZW50cnktPmRfaW5vZGUgIT0gKCh2b2lkICopMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBzaW1wbGVfcG9zaXRpdmUo
Y29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiByZXR1cm4gZF9yZWFsbHlfaXNfcG9zaXRp
dmUoZGVudHJ5KSAmJiAhZF91bmhhc2hlZChkZW50cnkpOwp9CgpleHRlcm4gdm9pZCBkX3NldF9m
YWxsdGhydShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkX2lzX2ZhbGx0aHJ1KGNvbnN0
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9mbGFncyAmIDB4MDEw
MDAwMDA7Cn0KCgpleHRlcm4gaW50IHN5c2N0bF92ZnNfY2FjaGVfcHJlc3N1cmU7CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBsb25nIHZmc19wcmVzc3VyZV9yYXRpbyh1bnNpZ25lZCBsb25nIHZhbCkKewogcmV0dXJuICgg
eyB0eXBlb2YodmFsKSBxdW90ID0gKHZhbCkgLyAoMTAwKTsgdHlwZW9mKHZhbCkgcmVtID0gKHZh
bCkgJSAoMTAwKTsgKHF1b3QgKiAoc3lzY3RsX3Zmc19jYWNoZV9wcmVzc3VyZSkpICsgKChyZW0g
KiAoc3lzY3RsX3Zmc19jYWNoZV9wcmVzc3VyZSkpIC8gKDEwMCkpOyB9ICk7Cn0KIyA1MTggIi4v
aW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGlub2RlICpkX2lub2RlKGNvbnN0IHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuIGRlbnRyeS0+ZF9pbm9kZTsKfQojIDUzMCAiLi9p
bmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgaW5vZGUgKmRfaW5vZGVfcmN1KGNvbnN0IHN0
cnVjdCBkZW50cnkgKmRlbnRyeSkKewogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKGRlbnRyeS0+
ZF9pbm9kZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJihkZW50cnktPmRfaW5vZGUpLCBfX3UuX19jLCBzaXplb2YoZGVudHJ5LT5kX2lub2RlKSk7
IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoZGVudHJ5LT5kX2lub2RlKSwgX191Ll9f
Yywgc2l6ZW9mKGRlbnRyeS0+ZF9pbm9kZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7
IH0pOwp9CiMgNTQ1ICIuL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpbm9kZSAqZF9i
YWNraW5nX2lub2RlKGNvbnN0IHN0cnVjdCBkZW50cnkgKnVwcGVyKQp7CiBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gdXBwZXItPmRfaW5vZGU7CgogcmV0dXJuIGlub2RlOwp9CiMgNTYyICIuL2luY2x1
ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkgKmRfYmFja2luZ19kZW50cnkoc3RydWN0
IGRlbnRyeSAqdXBwZXIpCnsKIHJldHVybiB1cHBlcjsKfQojIDU3NyAiLi9pbmNsdWRlL2xpbnV4
L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZGVudHJ5ICpkX3JlYWwoc3RydWN0IGRlbnRyeSAqZGVudHJ5LAog
ICAgICAgIGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0
KCEhKGRlbnRyeS0+ZF9mbGFncyAmIDB4MDQwMDAwMDApLCAwKSkKICByZXR1cm4gZGVudHJ5LT5k
X29wLT5kX3JlYWwoZGVudHJ5LCBpbm9kZSk7CiBlbHNlCiAgcmV0dXJuIGRlbnRyeTsKfQojIDU5
MyAiLi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgaW5vZGUgKmRfcmVhbF9pbm9kZShj
b25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKCiByZXR1cm4gZF9iYWNraW5nX2lub2RlKGRf
cmVhbCgoc3RydWN0IGRlbnRyeSAqKSBkZW50cnksICgodm9pZCAqKTApKSk7Cn0KCnN0cnVjdCBu
YW1lX3NuYXBzaG90IHsKIHN0cnVjdCBxc3RyIG5hbWU7CiB1bnNpZ25lZCBjaGFyIGlubGluZV9u
YW1lWzMyXTsKfTsKdm9pZCB0YWtlX2RlbnRyeV9uYW1lX3NuYXBzaG90KHN0cnVjdCBuYW1lX3Nu
YXBzaG90ICosIHN0cnVjdCBkZW50cnkgKik7CnZvaWQgcmVsZWFzZV9kZW50cnlfbmFtZV9zbmFw
c2hvdChzdHJ1Y3QgbmFtZV9zbmFwc2hvdCAqKTsKIyA5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIg
MgojIDEgIi4vaW5jbHVkZS9saW51eC9wYXRoLmgiIDEKCgoKCnN0cnVjdCBkZW50cnk7CnN0cnVj
dCB2ZnNtb3VudDsKCnN0cnVjdCBwYXRoIHsKIHN0cnVjdCB2ZnNtb3VudCAqbW50Owogc3RydWN0
IGRlbnRyeSAqZGVudHJ5Owp9IF9fYXR0cmlidXRlX18oKF9fZGVzaWduYXRlZF9pbml0X18pKTsK
CmV4dGVybiB2b2lkIHBhdGhfZ2V0KGNvbnN0IHN0cnVjdCBwYXRoICopOwpleHRlcm4gdm9pZCBw
YXRoX3B1dChjb25zdCBzdHJ1Y3QgcGF0aCAqKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwYXRoX2VxdWFsKGNvbnN0IHN0cnVj
dCBwYXRoICpwYXRoMSwgY29uc3Qgc3RydWN0IHBhdGggKnBhdGgyKQp7CiByZXR1cm4gcGF0aDEt
Pm1udCA9PSBwYXRoMi0+bW50ICYmIHBhdGgxLT5kZW50cnkgPT0gcGF0aDItPmRlbnRyeTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBwYXRoX3B1dF9pbml0KHN0cnVjdCBwYXRoICpwYXRoKQp7CiBwYXRoX3B1dChwYXRoKTsK
ICpwYXRoID0gKHN0cnVjdCBwYXRoKSB7IH07Cn0KIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKIyAxICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIiAxCgoKCgoKIyAxICIuL2FyY2gveDg2L2lu
Y2x1ZGUvdWFwaS9hc20vc3RhdC5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
cG9zaXhfdHlwZXMuaCIgMQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zdGF0Lmgi
IDIKIyA4MyAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3N0YXQuaCIKc3RydWN0IHN0YXQg
ewogX19rZXJuZWxfdWxvbmdfdCBzdF9kZXY7CiBfX2tlcm5lbF91bG9uZ190IHN0X2lubzsKIF9f
a2VybmVsX3Vsb25nX3Qgc3Rfbmxpbms7CgogdW5zaWduZWQgaW50IHN0X21vZGU7CiB1bnNpZ25l
ZCBpbnQgc3RfdWlkOwogdW5zaWduZWQgaW50IHN0X2dpZDsKIHVuc2lnbmVkIGludCBfX3BhZDA7
CiBfX2tlcm5lbF91bG9uZ190IHN0X3JkZXY7CiBfX2tlcm5lbF9sb25nX3Qgc3Rfc2l6ZTsKIF9f
a2VybmVsX2xvbmdfdCBzdF9ibGtzaXplOwogX19rZXJuZWxfbG9uZ190IHN0X2Jsb2NrczsKCiBf
X2tlcm5lbF91bG9uZ190IHN0X2F0aW1lOwogX19rZXJuZWxfdWxvbmdfdCBzdF9hdGltZV9uc2Vj
OwogX19rZXJuZWxfdWxvbmdfdCBzdF9tdGltZTsKIF9fa2VybmVsX3Vsb25nX3Qgc3RfbXRpbWVf
bnNlYzsKIF9fa2VybmVsX3Vsb25nX3Qgc3RfY3RpbWU7CiBfX2tlcm5lbF91bG9uZ190IHN0X2N0
aW1lX25zZWM7CiBfX2tlcm5lbF9sb25nX3QgX191bnVzZWRbM107Cn07CiMgMTE3ICIuL2FyY2gv
eDg2L2luY2x1ZGUvdWFwaS9hc20vc3RhdC5oIgpzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgewog
dW5zaWduZWQgc2hvcnQgc3RfZGV2OwogdW5zaWduZWQgc2hvcnQgc3RfaW5vOwogdW5zaWduZWQg
c2hvcnQgc3RfbW9kZTsKIHVuc2lnbmVkIHNob3J0IHN0X25saW5rOwogdW5zaWduZWQgc2hvcnQg
c3RfdWlkOwogdW5zaWduZWQgc2hvcnQgc3RfZ2lkOwogdW5zaWduZWQgc2hvcnQgc3RfcmRldjsK
CgoKCgoKIHVuc2lnbmVkIGludCBzdF9zaXplOwogdW5zaWduZWQgaW50IHN0X2F0aW1lOwogdW5z
aWduZWQgaW50IHN0X210aW1lOwogdW5zaWduZWQgaW50IHN0X2N0aW1lOwoKfTsKIyA3ICIuL2lu
Y2x1ZGUvbGludXgvc3RhdC5oIiAyCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3RhdC5oIiAx
CiMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3N0YXQuaCIKc3RydWN0IHN0YXR4X3RpbWVzdGFt
cCB7CiBfX3M2NCB0dl9zZWM7CiBfX3UzMiB0dl9uc2VjOwogX19zMzIgX19yZXNlcnZlZDsKfTsK
IyA5OSAiLi9pbmNsdWRlL3VhcGkvbGludXgvc3RhdC5oIgpzdHJ1Y3Qgc3RhdHggewoKIF9fdTMy
IHN0eF9tYXNrOwogX191MzIgc3R4X2Jsa3NpemU7CiBfX3U2NCBzdHhfYXR0cmlidXRlczsKCiBf
X3UzMiBzdHhfbmxpbms7CiBfX3UzMiBzdHhfdWlkOwogX191MzIgc3R4X2dpZDsKIF9fdTE2IHN0
eF9tb2RlOwogX191MTYgX19zcGFyZTBbMV07CgogX191NjQgc3R4X2lubzsKIF9fdTY0IHN0eF9z
aXplOwogX191NjQgc3R4X2Jsb2NrczsKIF9fdTY0IHN0eF9hdHRyaWJ1dGVzX21hc2s7Cgogc3Ry
dWN0IHN0YXR4X3RpbWVzdGFtcCBzdHhfYXRpbWU7CiBzdHJ1Y3Qgc3RhdHhfdGltZXN0YW1wIHN0
eF9idGltZTsKIHN0cnVjdCBzdGF0eF90aW1lc3RhbXAgc3R4X2N0aW1lOwogc3RydWN0IHN0YXR4
X3RpbWVzdGFtcCBzdHhfbXRpbWU7CgogX191MzIgc3R4X3JkZXZfbWFqb3I7CiBfX3UzMiBzdHhf
cmRldl9taW5vcjsKIF9fdTMyIHN0eF9kZXZfbWFqb3I7CiBfX3UzMiBzdHhfZGV2X21pbm9yOwoK
IF9fdTY0IF9fc3BhcmUyWzE0XTsKCn07CiMgOCAiLi9pbmNsdWRlL2xpbnV4L3N0YXQuaCIgMgoj
IDIwICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC91aWRnaWQu
aCIgMQojIDE2ICIuL2luY2x1ZGUvbGludXgvdWlkZ2lkLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L2hpZ2h1aWQuaCIgMQojIDM1ICIuL2luY2x1ZGUvbGludXgvaGlnaHVpZC5oIgpleHRlcm4gaW50
IG92ZXJmbG93dWlkOwpleHRlcm4gaW50IG92ZXJmbG93Z2lkOwoKZXh0ZXJuIHZvaWQgX19iYWRf
dWlkKHZvaWQpOwpleHRlcm4gdm9pZCBfX2JhZF9naWQodm9pZCk7CiMgODIgIi4vaW5jbHVkZS9s
aW51eC9oaWdodWlkLmgiCmV4dGVybiBpbnQgZnNfb3ZlcmZsb3d1aWQ7CmV4dGVybiBpbnQgZnNf
b3ZlcmZsb3dnaWQ7CiMgMTcgIi4vaW5jbHVkZS9saW51eC91aWRnaWQuaCIgMgoKc3RydWN0IHVz
ZXJfbmFtZXNwYWNlOwpleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRfdXNlcl9uczsK
CnR5cGVkZWYgc3RydWN0IHsKIHVpZF90IHZhbDsKfSBrdWlkX3Q7CgoKdHlwZWRlZiBzdHJ1Y3Qg
ewogZ2lkX3QgdmFsOwp9IGtnaWRfdDsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1aWRfdCBfX2t1aWRfdmFsKGt1aWRfdCB1aWQp
CnsKIHJldHVybiB1aWQudmFsOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBnaWRfdCBfX2tnaWRfdmFsKGtnaWRfdCBnaWQpCnsKIHJl
dHVybiBnaWQudmFsOwp9CiMgNjEgIi4vaW5jbHVkZS9saW51eC91aWRnaWQuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRf
ZXEoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKewogcmV0dXJuIF9fa3VpZF92YWwobGVmdCkg
PT0gX19rdWlkX3ZhbChyaWdodCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2lkX2VxKGtnaWRfdCBsZWZ0LCBrZ2lkX3Qg
cmlnaHQpCnsKIHJldHVybiBfX2tnaWRfdmFsKGxlZnQpID09IF9fa2dpZF92YWwocmlnaHQpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIHVpZF9ndChrdWlkX3QgbGVmdCwga3VpZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rdWlk
X3ZhbChsZWZ0KSA+IF9fa3VpZF92YWwocmlnaHQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGdpZF9ndChrZ2lkX3QgbGVm
dCwga2dpZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rZ2lkX3ZhbChsZWZ0KSA+IF9fa2dpZF92YWwo
cmlnaHQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIHVpZF9ndGUoa3VpZF90IGxlZnQsIGt1aWRfdCByaWdodCkKewogcmV0
dXJuIF9fa3VpZF92YWwobGVmdCkgPj0gX19rdWlkX3ZhbChyaWdodCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZ2lkX2d0
ZShrZ2lkX3QgbGVmdCwga2dpZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rZ2lkX3ZhbChsZWZ0KSA+
PSBfX2tnaWRfdmFsKHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRfbHQoa3VpZF90IGxlZnQsIGt1aWRfdCBy
aWdodCkKewogcmV0dXJuIF9fa3VpZF92YWwobGVmdCkgPCBfX2t1aWRfdmFsKHJpZ2h0KTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBnaWRfbHQoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKewogcmV0dXJuIF9fa2dpZF92
YWwobGVmdCkgPCBfX2tnaWRfdmFsKHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1aWRfbHRlKGt1aWRfdCBsZWZ0
LCBrdWlkX3QgcmlnaHQpCnsKIHJldHVybiBfX2t1aWRfdmFsKGxlZnQpIDw9IF9fa3VpZF92YWwo
cmlnaHQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIGdpZF9sdGUoa2dpZF90IGxlZnQsIGtnaWRfdCByaWdodCkKewogcmV0
dXJuIF9fa2dpZF92YWwobGVmdCkgPD0gX19rZ2lkX3ZhbChyaWdodCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdWlkX3Zh
bGlkKGt1aWRfdCB1aWQpCnsKIHJldHVybiBfX2t1aWRfdmFsKHVpZCkgIT0gKHVpZF90KSAtMTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgYm9vbCBnaWRfdmFsaWQoa2dpZF90IGdpZCkKewogcmV0dXJuIF9fa2dpZF92YWwoZ2lkKSAh
PSAoZ2lkX3QpIC0xOwp9CgoKCmV4dGVybiBrdWlkX3QgbWFrZV9rdWlkKHN0cnVjdCB1c2VyX25h
bWVzcGFjZSAqZnJvbSwgdWlkX3QgdWlkKTsKZXh0ZXJuIGtnaWRfdCBtYWtlX2tnaWQoc3RydWN0
IHVzZXJfbmFtZXNwYWNlICpmcm9tLCBnaWRfdCBnaWQpOwoKZXh0ZXJuIHVpZF90IGZyb21fa3Vp
ZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrdWlkX3QgdWlkKTsKZXh0ZXJuIGdpZF90IGZy
b21fa2dpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBrZ2lkX3QgZ2lkKTsKZXh0ZXJuIHVp
ZF90IGZyb21fa3VpZF9tdW5nZWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bywga3VpZF90IHVp
ZCk7CmV4dGVybiBnaWRfdCBmcm9tX2tnaWRfbXVuZ2VkKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
dG8sIGtnaWRfdCBnaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBrdWlkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVz
cGFjZSAqbnMsIGt1aWRfdCB1aWQpCnsKIHJldHVybiBmcm9tX2t1aWQobnMsIHVpZCkgIT0gKHVp
ZF90KSAtMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBrZ2lkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAq
bnMsIGtnaWRfdCBnaWQpCnsKIHJldHVybiBmcm9tX2tnaWQobnMsIGdpZCkgIT0gKGdpZF90KSAt
MTsKfQojIDIxICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIiAyCgoKCnN0cnVjdCBrc3RhdCB7CiB1
MzIgcmVzdWx0X21hc2s7CiB1bW9kZV90IG1vZGU7CiB1bnNpZ25lZCBpbnQgbmxpbms7CiB1aW50
MzJfdCBibGtzaXplOwogdTY0IGF0dHJpYnV0ZXM7CiB1NjQgYXR0cmlidXRlc19tYXNrOwojIDM5
ICIuL2luY2x1ZGUvbGludXgvc3RhdC5oIgogdTY0IGlubzsKIGRldl90IGRldjsKIGRldl90IHJk
ZXY7CiBrdWlkX3QgdWlkOwoga2dpZF90IGdpZDsKIGxvZmZfdCBzaXplOwogc3RydWN0IHRpbWVz
cGVjNjQgYXRpbWU7CiBzdHJ1Y3QgdGltZXNwZWM2NCBtdGltZTsKIHN0cnVjdCB0aW1lc3BlYzY0
IGN0aW1lOwogc3RydWN0IHRpbWVzcGVjNjQgYnRpbWU7CiB1NjQgYmxvY2tzOwp9OwojIDExICIu
L2luY2x1ZGUvbGludXgvZnMuaCIgMgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1Lmgi
IDEKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L3Nocmlua2VyLmgiIDEKIyAxMiAiLi9pbmNsdWRlL2xpbnV4L3Nocmlua2VyLmgiCnN0cnVjdCBz
aHJpbmtfY29udHJvbCB7CiBnZnBfdCBnZnBfbWFzazsKCgogaW50IG5pZDsKCgoKCgoKIHVuc2ln
bmVkIGxvbmcgbnJfdG9fc2NhbjsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgbnJfc2Nhbm5lZDsKCgog
c3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNnOwp9OwojIDYwICIuL2luY2x1ZGUvbGludXgvc2hyaW5r
ZXIuaCIKc3RydWN0IHNocmlua2VyIHsKIHVuc2lnbmVkIGxvbmcgKCpjb3VudF9vYmplY3RzKShz
dHJ1Y3Qgc2hyaW5rZXIgKiwKICAgICAgICAgICBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKTsK
IHVuc2lnbmVkIGxvbmcgKCpzY2FuX29iamVjdHMpKHN0cnVjdCBzaHJpbmtlciAqLAogICAgICAg
ICAgc3RydWN0IHNocmlua19jb250cm9sICpzYyk7CgogbG9uZyBiYXRjaDsKIGludCBzZWVrczsK
IHVuc2lnbmVkIGZsYWdzOwoKCiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CgoKIGludCBpZDsKCgog
YXRvbWljX2xvbmdfdCAqbnJfZGVmZXJyZWQ7Cn07CiMgOTAgIi4vaW5jbHVkZS9saW51eC9zaHJp
bmtlci5oIgpleHRlcm4gaW50IHByZWFsbG9jX3Nocmlua2VyKHN0cnVjdCBzaHJpbmtlciAqc2hy
aW5rZXIpOwpleHRlcm4gdm9pZCByZWdpc3Rlcl9zaHJpbmtlcl9wcmVwYXJlZChzdHJ1Y3Qgc2hy
aW5rZXIgKnNocmlua2VyKTsKZXh0ZXJuIGludCByZWdpc3Rlcl9zaHJpbmtlcihzdHJ1Y3Qgc2hy
aW5rZXIgKnNocmlua2VyKTsKZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9zaHJpbmtlcihzdHJ1Y3Qg
c2hyaW5rZXIgKnNocmlua2VyKTsKZXh0ZXJuIHZvaWQgZnJlZV9wcmVhbGxvY2VkX3Nocmlua2Vy
KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIpOwojIDE0ICIuL2luY2x1ZGUvbGludXgvbGlzdF9s
cnUuaCIgMgoKc3RydWN0IG1lbV9jZ3JvdXA7CgoKZW51bSBscnVfc3RhdHVzIHsKIExSVV9SRU1P
VkVELAogTFJVX1JFTU9WRURfUkVUUlksCgogTFJVX1JPVEFURSwKIExSVV9TS0lQLAogTFJVX1JF
VFJZLAoKfTsKCnN0cnVjdCBsaXN0X2xydV9vbmUgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoK
IGxvbmcgbnJfaXRlbXM7Cn07CgpzdHJ1Y3QgbGlzdF9scnVfbWVtY2cgewogc3RydWN0IGNhbGxi
YWNrX2hlYWQgcmN1OwoKIHN0cnVjdCBsaXN0X2xydV9vbmUgKmxydVswXTsKfTsKCnN0cnVjdCBs
aXN0X2xydV9ub2RlIHsKCiBzcGlubG9ja190IGxvY2s7Cgogc3RydWN0IGxpc3RfbHJ1X29uZSBs
cnU7CgoKIHN0cnVjdCBsaXN0X2xydV9tZW1jZyAqbWVtY2dfbHJ1czsKCiBsb25nIG5yX2l0ZW1z
Owp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSk7CgpzdHJ1Y3QgbGlz
dF9scnUgewogc3RydWN0IGxpc3RfbHJ1X25vZGUgKm5vZGU7Cgogc3RydWN0IGxpc3RfaGVhZCBs
aXN0OwogaW50IHNocmlua2VyX2lkOwogYm9vbCBtZW1jZ19hd2FyZTsKCn07Cgp2b2lkIGxpc3Rf
bHJ1X2Rlc3Ryb3koc3RydWN0IGxpc3RfbHJ1ICpscnUpOwppbnQgX19saXN0X2xydV9pbml0KHN0
cnVjdCBsaXN0X2xydSAqbHJ1LCBib29sIG1lbWNnX2F3YXJlLAogICAgICBzdHJ1Y3QgbG9ja19j
bGFzc19rZXkgKmtleSwgc3RydWN0IHNocmlua2VyICpzaHJpbmtlcik7CiMgNzIgIi4vaW5jbHVk
ZS9saW51eC9saXN0X2xydS5oIgppbnQgbWVtY2dfdXBkYXRlX2FsbF9saXN0X2xydXMoaW50IG51
bV9tZW1jZ3MpOwp2b2lkIG1lbWNnX2RyYWluX2FsbF9saXN0X2xydXMoaW50IHNyY19pZHgsIHN0
cnVjdCBtZW1fY2dyb3VwICpkc3RfbWVtY2cpOwojIDkxICIuL2luY2x1ZGUvbGludXgvbGlzdF9s
cnUuaCIKYm9vbCBsaXN0X2xydV9hZGQoc3RydWN0IGxpc3RfbHJ1ICpscnUsIHN0cnVjdCBsaXN0
X2hlYWQgKml0ZW0pOwojIDEwNCAiLi9pbmNsdWRlL2xpbnV4L2xpc3RfbHJ1LmgiCmJvb2wgbGlz
dF9scnVfZGVsKHN0cnVjdCBsaXN0X2xydSAqbHJ1LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsK
IyAxMTYgIi4vaW5jbHVkZS9saW51eC9saXN0X2xydS5oIgp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1
X2NvdW50X29uZShzdHJ1Y3QgbGlzdF9scnUgKmxydSwKICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVt
X2Nncm91cCAqbWVtY2cpOwp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1X2NvdW50X25vZGUoc3RydWN0
IGxpc3RfbHJ1ICpscnUsIGludCBuaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9uZyBsaXN0X2xydV9zaHJpbmtf
Y291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUsCiAgICAgICAgc3RydWN0IHNocmlua19jb250cm9s
ICpzYykKewogcmV0dXJuIGxpc3RfbHJ1X2NvdW50X29uZShscnUsIHNjLT5uaWQsIHNjLT5tZW1j
Zyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgbGlzdF9scnVfY291bnQoc3RydWN0IGxpc3RfbHJ1ICpscnUp
CnsKIGxvbmcgY291bnQgPSAwOwogaW50IG5pZDsKCiBmb3IgKCAobmlkKSA9IDA7IChuaWQpID09
IDA7IChuaWQpID0gMSkKICBjb3VudCArPSBsaXN0X2xydV9jb3VudF9ub2RlKGxydSwgbmlkKTsK
CiByZXR1cm4gY291bnQ7Cn0KCnZvaWQgbGlzdF9scnVfaXNvbGF0ZShzdHJ1Y3QgbGlzdF9scnVf
b25lICpsaXN0LCBzdHJ1Y3QgbGlzdF9oZWFkICppdGVtKTsKdm9pZCBsaXN0X2xydV9pc29sYXRl
X21vdmUoc3RydWN0IGxpc3RfbHJ1X29uZSAqbGlzdCwgc3RydWN0IGxpc3RfaGVhZCAqaXRlbSwK
ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCk7Cgp0eXBlZGVmIGVudW0gbHJ1X3N0YXR1cyAo
Kmxpc3RfbHJ1X3dhbGtfY2IpKHN0cnVjdCBsaXN0X2hlYWQgKml0ZW0sCiAgc3RydWN0IGxpc3Rf
bHJ1X29uZSAqbGlzdCwgc3BpbmxvY2tfdCAqbG9jaywgdm9pZCAqY2JfYXJnKTsKIyAxNjYgIi4v
aW5jbHVkZS9saW51eC9saXN0X2xydS5oIgp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1X3dhbGtfb25l
KHN0cnVjdCBsaXN0X2xydSAqbHJ1LAogICAgaW50IG5pZCwgc3RydWN0IG1lbV9jZ3JvdXAgKm1l
bWNnLAogICAgbGlzdF9scnVfd2Fsa19jYiBpc29sYXRlLCB2b2lkICpjYl9hcmcsCiAgICB1bnNp
Z25lZCBsb25nICpucl90b193YWxrKTsKIyAxODMgIi4vaW5jbHVkZS9saW51eC9saXN0X2xydS5o
Igp1bnNpZ25lZCBsb25nIGxpc3RfbHJ1X3dhbGtfb25lX2lycShzdHJ1Y3QgbGlzdF9scnUgKmxy
dSwKICAgICAgICBpbnQgbmlkLCBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2csCiAgICAgICAgbGlz
dF9scnVfd2Fsa19jYiBpc29sYXRlLCB2b2lkICpjYl9hcmcsCiAgICAgICAgdW5zaWduZWQgbG9u
ZyAqbnJfdG9fd2Fsayk7CnVuc2lnbmVkIGxvbmcgbGlzdF9scnVfd2Fsa19ub2RlKHN0cnVjdCBs
aXN0X2xydSAqbHJ1LCBpbnQgbmlkLAogICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9p
ZCAqY2JfYXJnLAogICAgIHVuc2lnbmVkIGxvbmcgKm5yX3RvX3dhbGspOwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgbG9u
ZwpsaXN0X2xydV9zaHJpbmtfd2FsayhzdHJ1Y3QgbGlzdF9scnUgKmxydSwgc3RydWN0IHNocmlu
a19jb250cm9sICpzYywKICAgICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAqY2Jf
YXJnKQp7CiByZXR1cm4gbGlzdF9scnVfd2Fsa19vbmUobHJ1LCBzYy0+bmlkLCBzYy0+bWVtY2cs
IGlzb2xhdGUsIGNiX2FyZywKICAgICAmc2MtPm5yX3RvX3NjYW4pOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBsb25n
Cmxpc3RfbHJ1X3Nocmlua193YWxrX2lycShzdHJ1Y3QgbGlzdF9scnUgKmxydSwgc3RydWN0IHNo
cmlua19jb250cm9sICpzYywKICAgIGxpc3RfbHJ1X3dhbGtfY2IgaXNvbGF0ZSwgdm9pZCAqY2Jf
YXJnKQp7CiByZXR1cm4gbGlzdF9scnVfd2Fsa19vbmVfaXJxKGxydSwgc2MtPm5pZCwgc2MtPm1l
bWNnLCBpc29sYXRlLCBjYl9hcmcsCiAgICAgICAgICZzYy0+bnJfdG9fc2Nhbik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcKbGlzdF9scnVfd2FsayhzdHJ1Y3QgbGlzdF9scnUgKmxydSwgbGlzdF9scnVfd2Fs
a19jYiBpc29sYXRlLAogICAgICAgdm9pZCAqY2JfYXJnLCB1bnNpZ25lZCBsb25nIG5yX3RvX3dh
bGspCnsKIGxvbmcgaXNvbGF0ZWQgPSAwOwogaW50IG5pZDsKCiBmb3IgKCAobmlkKSA9IDA7IChu
aWQpID09IDA7IChuaWQpID0gMSkgewogIGlzb2xhdGVkICs9IGxpc3RfbHJ1X3dhbGtfbm9kZShs
cnUsIG5pZCwgaXNvbGF0ZSwKICAgICAgICAgICAgY2JfYXJnLCAmbnJfdG9fd2Fsayk7CiAgaWYg
KG5yX3RvX3dhbGsgPD0gMCkKICAgYnJlYWs7CiB9CiByZXR1cm4gaXNvbGF0ZWQ7Cn0KIyAxNCAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUu
aCIgMQojIDE4ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgojIDEgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIgMQojIDE1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L2tjb25maWcuaCIgMQojIDE2ICIuL2luY2x1ZGUvbGludXgveGFycmF5Lmgi
IDIKIyA1MiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9ta192YWx1ZSh1bnNp
Z25lZCBsb25nIHYpCnsKICh7IGludCBfX3JldF93YXJuX29uID0gISEoKGxvbmcpdiA8IDApOyBp
ZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20g
X19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNl
Y3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIg
Ilx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAi
XHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5l
XG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMz
XG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgveGFycmF5LmgiKSwgImki
ICg1NCksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1
Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVz
aHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5w
b3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjQpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5f
ZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiByZXR1cm4gKHZvaWQgKikoKHYgPDwg
MSkgfCAxKTsKfQojIDY1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcg
eGFfdG9fdmFsdWUoY29uc3Qgdm9pZCAqZW50cnkpCnsKIHJldHVybiAodW5zaWduZWQgbG9uZyll
bnRyeSA+PiAxOwp9CiMgNzcgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc192
YWx1ZShjb25zdCB2b2lkICplbnRyeSkKewogcmV0dXJuICh1bnNpZ25lZCBsb25nKWVudHJ5ICYg
MTsKfQojIDk1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX3RhZ19wb2ludGVy
KHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgdGFnKQp7CiByZXR1cm4gKHZvaWQgKikoKHVuc2lnbmVk
IGxvbmcpcCB8IHRhZyk7Cn0KIyAxMTAgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAq
eGFfdW50YWdfcG9pbnRlcih2b2lkICplbnRyeSkKewogcmV0dXJuICh2b2lkICopKCh1bnNpZ25l
ZCBsb25nKWVudHJ5ICYgfjNVTCk7Cn0KIyAxMjUgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dW5zaWduZWQgaW50IHhhX3BvaW50ZXJfdGFnKHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2ln
bmVkIGxvbmcpZW50cnkgJiAzVUw7Cn0KIyAxNDMgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCAqeGFfbWtfaW50ZXJuYWwodW5zaWduZWQgbG9uZyB2KQp7CiByZXR1cm4gKHZvaWQgKiko
KHYgPDwgMikgfCAyKTsKfQojIDE1NSAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25l
ZCBsb25nIHhhX3RvX2ludGVybmFsKGNvbnN0IHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKHVuc2ln
bmVkIGxvbmcpZW50cnkgPj4gMjsKfQojIDE2NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHhhX2lzX2ludGVybmFsKGNvbnN0IHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKCh1bnNpZ25l
ZCBsb25nKWVudHJ5ICYgMykgPT0gMjsKfQojIDE4MyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBib29sIHhhX2lzX3plcm8oY29uc3Qgdm9pZCAqZW50cnkpCnsKIHJldHVybiBfX2J1aWx0aW5f
ZXhwZWN0KCEhKGVudHJ5ID09IHhhX21rX2ludGVybmFsKDI1NykpLCAwKTsKfQojIDE5OSAiLi9p
bmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX2Vycihjb25zdCB2b2lkICplbnRyeSkK
ewogcmV0dXJuIF9fYnVpbHRpbl9leHBlY3QoISEoeGFfaXNfaW50ZXJuYWwoZW50cnkpICYmIGVu
dHJ5ID49IHhhX21rX2ludGVybmFsKC00MDk1KSksIDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDsKfQojIDIxNyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
eGFfZXJyKHZvaWQgKmVudHJ5KQp7CgogaWYgKHhhX2lzX2VycihlbnRyeSkpCiAgcmV0dXJuIChs
b25nKWVudHJ5ID4+IDI7CiByZXR1cm4gMDsKfQojIDIzNiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJh
eS5oIgpzdHJ1Y3QgeGFfbGltaXQgewogdTMyIG1heDsKIHUzMiBtaW47Cn07CgoKCgoKCnR5cGVk
ZWYgdW5zaWduZWQgeGFfbWFya190OwoKCgoKCgoKZW51bSB4YV9sb2NrX3R5cGUgewogWEFfTE9D
S19JUlEgPSAxLAogWEFfTE9DS19CSCA9IDIsCn07CiMgMjkyICIuL2luY2x1ZGUvbGludXgveGFy
cmF5LmgiCnN0cnVjdCB4YXJyYXkgewogc3BpbmxvY2tfdCB4YV9sb2NrOwoKIGdmcF90IHhhX2Zs
YWdzOwogdm9pZCAqIHhhX2hlYWQ7Cn07CiMgMzQ3ICIuL2luY2x1ZGUvbGludXgveGFycmF5Lmgi
CnZvaWQgKnhhX2xvYWQoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKdm9p
ZCAqeGFfc3RvcmUoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICpl
bnRyeSwgZ2ZwX3QpOwp2b2lkICp4YV9lcmFzZShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwp2b2lkICp4YV9zdG9yZV9yYW5nZShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVk
IGxvbmcgZmlyc3QsIHVuc2lnbmVkIGxvbmcgbGFzdCwKICAgdm9pZCAqZW50cnksIGdmcF90KTsK
Ym9vbCB4YV9nZXRfbWFyayhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHhh
X21hcmtfdCk7CnZvaWQgeGFfc2V0X21hcmsoc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25n
IGluZGV4LCB4YV9tYXJrX3QpOwp2b2lkIHhhX2NsZWFyX21hcmsoc3RydWN0IHhhcnJheSAqLCB1
bnNpZ25lZCBsb25nIGluZGV4LCB4YV9tYXJrX3QpOwp2b2lkICp4YV9maW5kKHN0cnVjdCB4YXJy
YXkgKnhhLCB1bnNpZ25lZCBsb25nICppbmRleCwKICB1bnNpZ25lZCBsb25nIG1heCwgeGFfbWFy
a190KSBfX2F0dHJpYnV0ZV9fKChub25udWxsKDIpKSk7CnZvaWQgKnhhX2ZpbmRfYWZ0ZXIoc3Ry
dWN0IHhhcnJheSAqeGEsIHVuc2lnbmVkIGxvbmcgKmluZGV4LAogIHVuc2lnbmVkIGxvbmcgbWF4
LCB4YV9tYXJrX3QpIF9fYXR0cmlidXRlX18oKG5vbm51bGwoMikpKTsKdW5zaWduZWQgaW50IHhh
X2V4dHJhY3Qoc3RydWN0IHhhcnJheSAqLCB2b2lkICoqZHN0LCB1bnNpZ25lZCBsb25nIHN0YXJ0
LAogIHVuc2lnbmVkIGxvbmcgbWF4LCB1bnNpZ25lZCBpbnQgbiwgeGFfbWFya190KTsKdm9pZCB4
YV9kZXN0cm95KHN0cnVjdCB4YXJyYXkgKik7CiMgMzc0ICIuL2luY2x1ZGUvbGludXgveGFycmF5
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgeGFfaW5pdF9mbGFncyhzdHJ1Y3QgeGFycmF5ICp4YSwgZ2ZwX3QgZmxhZ3MpCnsK
IGRvIHsgc3BpbmxvY2tfY2hlY2soJnhhLT54YV9sb2NrKTsgZG8geyAqKCYoJnhhLT54YV9sb2Nr
KS0+cmxvY2spID0gKHJhd19zcGlubG9ja190KSB7IC5yYXdfbG9jayA9IHsgeyAudmFsID0geyAo
MCkgfSB9IH0sIH07IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIHhhLT54YV9mbGFncyA9IGZs
YWdzOwogeGEtPnhhX2hlYWQgPSAoKHZvaWQgKikwKTsKfQojIDM4OSAiLi9pbmNsdWRlL2xpbnV4
L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHhhX2luaXQoc3RydWN0IHhhcnJheSAqeGEpCnsKIHhhX2luaXRfZmxh
Z3MoeGEsIDApOwp9CiMgNDAxICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFfZW1w
dHkoY29uc3Qgc3RydWN0IHhhcnJheSAqeGEpCnsKIHJldHVybiB4YS0+eGFfaGVhZCA9PSAoKHZv
aWQgKikwKTsKfQojIDQxNCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX21hcmtl
ZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwgeGFfbWFya190IG1hcmspCnsKIHJldHVybiB4YS0+
eGFfZmxhZ3MgJiAoKCBnZnBfdCkoKDFVIDw8ICgyMyArIDApKSA8PCAoIHVuc2lnbmVkKShtYXJr
KSkpOwp9CiMgNTU0ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnZvaWQgKl9feGFfZXJhc2Uo
c3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKdm9pZCAqX194YV9zdG9yZShz
dHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCk7
CnZvaWQgKl9feGFfY21weGNoZyhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcgaW5kZXgs
IHZvaWQgKm9sZCwKICB2b2lkICplbnRyeSwgZ2ZwX3QpOwppbnQgX19hdHRyaWJ1dGVfXygoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpIF9feGFfaW5zZXJ0KHN0cnVjdCB4YXJyYXkgKiwgdW5zaWdu
ZWQgbG9uZyBpbmRleCwKICB2b2lkICplbnRyeSwgZ2ZwX3QpOwppbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9feGFfYWxsb2Moc3RydWN0IHhhcnJheSAqLCB1MzIg
KmlkLCB2b2lkICplbnRyeSwKICBzdHJ1Y3QgeGFfbGltaXQsIGdmcF90KTsKaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBfX3hhX2FsbG9jX2N5Y2xpYyhzdHJ1Y3Qg
eGFycmF5ICosIHUzMiAqaWQsIHZvaWQgKmVudHJ5LAogIHN0cnVjdCB4YV9saW1pdCwgdTMyICpu
ZXh0LCBnZnBfdCk7CnZvaWQgX194YV9zZXRfbWFyayhzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVk
IGxvbmcgaW5kZXgsIHhhX21hcmtfdCk7CnZvaWQgX194YV9jbGVhcl9tYXJrKHN0cnVjdCB4YXJy
YXkgKiwgdW5zaWduZWQgbG9uZyBpbmRleCwgeGFfbWFya190KTsKIyA1ODEgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfc3RvcmVfYmgoc3RydWN0IHhhcnJheSAqeGEsIHVuc2ln
bmVkIGxvbmcgaW5kZXgsCiAgdm9pZCAqZW50cnksIGdmcF90IGdmcCkKewogdm9pZCAqY3VycjsK
CiBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwogY3VyciA9IF9feGFfc3RvcmUoeGEsIGlu
ZGV4LCBlbnRyeSwgZ2ZwKTsKIHNwaW5fdW5sb2NrX2JoKCYoeGEpLT54YV9sb2NrKTsKCiByZXR1
cm4gY3VycjsKfQojIDYwNyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9zdG9y
ZV9pcnEoc3RydWN0IHhhcnJheSAqeGEsIHVuc2lnbmVkIGxvbmcgaW5kZXgsCiAgdm9pZCAqZW50
cnksIGdmcF90IGdmcCkKewogdm9pZCAqY3VycjsKCiBzcGluX2xvY2tfaXJxKCYoeGEpLT54YV9s
b2NrKTsKIGN1cnIgPSBfX3hhX3N0b3JlKHhhLCBpbmRleCwgZW50cnksIGdmcCk7CiBzcGluX3Vu
bG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoKIHJldHVybiBjdXJyOwp9CiMgNjMyICIuL2luY2x1
ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX2VyYXNlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1
bnNpZ25lZCBsb25nIGluZGV4KQp7CiB2b2lkICplbnRyeTsKCiBzcGluX2xvY2tfYmgoJih4YSkt
PnhhX2xvY2spOwogZW50cnkgPSBfX3hhX2VyYXNlKHhhLCBpbmRleCk7CiBzcGluX3VubG9ja19i
aCgmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVudHJ5Owp9CiMgNjU2ICIuL2luY2x1ZGUvbGlu
dXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgKnhhX2VyYXNlX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWdu
ZWQgbG9uZyBpbmRleCkKewogdm9pZCAqZW50cnk7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFf
bG9jayk7CiBlbnRyeSA9IF9feGFfZXJhc2UoeGEsIGluZGV4KTsKIHNwaW5fdW5sb2NrX2lycSgm
KHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVudHJ5Owp9CiMgNjgyICIuL2luY2x1ZGUvbGludXgv
eGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKnhhX2NtcHhjaGcoc3RydWN0IHhhcnJheSAqeGEsIHVuc2lnbmVkIGxv
bmcgaW5kZXgsCiAgIHZvaWQgKm9sZCwgdm9pZCAqZW50cnksIGdmcF90IGdmcCkKewogdm9pZCAq
Y3VycjsKCiBzcGluX2xvY2soJih4YSktPnhhX2xvY2spOwogY3VyciA9IF9feGFfY21weGNoZyh4
YSwgaW5kZXgsIG9sZCwgZW50cnksIGdmcCk7CiBzcGluX3VubG9jaygmKHhhKS0+eGFfbG9jayk7
CgogcmV0dXJuIGN1cnI7Cn0KIyA3MDkgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAq
eGFfY21weGNoZ19iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwKICAg
dm9pZCAqb2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQp7CiB2b2lkICpjdXJyOwoKIHNwaW5f
bG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CiBjdXJyID0gX194YV9jbXB4Y2hnKHhhLCBpbmRleCwg
b2xkLCBlbnRyeSwgZ2ZwKTsKIHNwaW5fdW5sb2NrX2JoKCYoeGEpLT54YV9sb2NrKTsKCiByZXR1
cm4gY3VycjsKfQojIDczNiAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICp4YV9jbXB4
Y2hnX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRleCwKICAgdm9pZCAq
b2xkLCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQp7CiB2b2lkICpjdXJyOwoKIHNwaW5fbG9ja19p
cnEoJih4YSktPnhhX2xvY2spOwogY3VyciA9IF9feGFfY21weGNoZyh4YSwgaW5kZXgsIG9sZCwg
ZW50cnksIGdmcCk7CiBzcGluX3VubG9ja19pcnEoJih4YSktPnhhX2xvY2spOwoKIHJldHVybiBj
dXJyOwp9CiMgNzY1ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBfX2F0dHJpYnV0ZV9f
KChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgeGFfaW5zZXJ0KHN0cnVjdCB4YXJyYXkgKnhhLAog
IHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCnsKIGludCBlcnI7
Cgogc3Bpbl9sb2NrKCYoeGEpLT54YV9sb2NrKTsKIGVyciA9IF9feGFfaW5zZXJ0KHhhLCBpbmRl
eCwgZW50cnksIGdmcCk7CiBzcGluX3VubG9jaygmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVy
cjsKfQojIDc5NCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygo
X193YXJuX3VudXNlZF9yZXN1bHRfXykpIHhhX2luc2VydF9iaChzdHJ1Y3QgeGFycmF5ICp4YSwK
ICB1bnNpZ25lZCBsb25nIGluZGV4LCB2b2lkICplbnRyeSwgZ2ZwX3QgZ2ZwKQp7CiBpbnQgZXJy
OwoKIHNwaW5fbG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CiBlcnIgPSBfX3hhX2luc2VydCh4YSwg
aW5kZXgsIGVudHJ5LCBnZnApOwogc3Bpbl91bmxvY2tfYmgoJih4YSktPnhhX2xvY2spOwoKIHJl
dHVybiBlcnI7Cn0KIyA4MjMgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB4YV9pbnNlcnRfaXJxKHN0cnVjdCB4YXJy
YXkgKnhhLAogIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHZvaWQgKmVudHJ5LCBnZnBfdCBnZnApCnsK
IGludCBlcnI7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CiBlcnIgPSBfX3hhX2lu
c2VydCh4YSwgaW5kZXgsIGVudHJ5LCBnZnApOwogc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9s
b2NrKTsKCiByZXR1cm4gZXJyOwp9CiMgODUyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBpbnQgeGFfYWxsb2Moc3RydWN0
IHhhcnJheSAqeGEsIHUzMiAqaWQsCiAgdm9pZCAqZW50cnksIHN0cnVjdCB4YV9saW1pdCBsaW1p
dCwgZ2ZwX3QgZ2ZwKQp7CiBpbnQgZXJyOwoKIHNwaW5fbG9jaygmKHhhKS0+eGFfbG9jayk7CiBl
cnIgPSBfX3hhX2FsbG9jKHhhLCBpZCwgZW50cnksIGxpbWl0LCBnZnApOwogc3Bpbl91bmxvY2so
Jih4YSktPnhhX2xvY2spOwoKIHJldHVybiBlcnI7Cn0KIyA4ODEgIi4vaW5jbHVkZS9saW51eC94
YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSB4YV9h
bGxvY19iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwKICB2b2lkICplbnRyeSwgc3RydWN0
IHhhX2xpbWl0IGxpbWl0LCBnZnBfdCBnZnApCnsKIGludCBlcnI7Cgogc3Bpbl9sb2NrX2JoKCYo
eGEpLT54YV9sb2NrKTsKIGVyciA9IF9feGFfYWxsb2MoeGEsIGlkLCBlbnRyeSwgbGltaXQsIGdm
cCk7CiBzcGluX3VubG9ja19iaCgmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVycjsKfQojIDkx
MCAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIHhhX2FsbG9jX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwK
ICB2b2lkICplbnRyeSwgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCBnZnBfdCBnZnApCnsKIGludCBl
cnI7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CiBlcnIgPSBfX3hhX2FsbG9jKHhh
LCBpZCwgZW50cnksIGxpbWl0LCBnZnApOwogc3Bpbl91bmxvY2tfaXJxKCYoeGEpLT54YV9sb2Nr
KTsKCiByZXR1cm4gZXJyOwp9CiMgOTQzICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB4
YV9hbGxvY19jeWNsaWMoc3RydWN0IHhhcnJheSAqeGEsIHUzMiAqaWQsIHZvaWQgKmVudHJ5LAog
IHN0cnVjdCB4YV9saW1pdCBsaW1pdCwgdTMyICpuZXh0LCBnZnBfdCBnZnApCnsKIGludCBlcnI7
Cgogc3Bpbl9sb2NrKCYoeGEpLT54YV9sb2NrKTsKIGVyciA9IF9feGFfYWxsb2NfY3ljbGljKHhh
LCBpZCwgZW50cnksIGxpbWl0LCBuZXh0LCBnZnApOwogc3Bpbl91bmxvY2soJih4YSktPnhhX2xv
Y2spOwoKIHJldHVybiBlcnI7Cn0KIyA5NzYgIi4vaW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50
IHhhX2FsbG9jX2N5Y2xpY19iaChzdHJ1Y3QgeGFycmF5ICp4YSwgdTMyICppZCwgdm9pZCAqZW50
cnksCiAgc3RydWN0IHhhX2xpbWl0IGxpbWl0LCB1MzIgKm5leHQsIGdmcF90IGdmcCkKewogaW50
IGVycjsKCiBzcGluX2xvY2tfYmgoJih4YSktPnhhX2xvY2spOwogZXJyID0gX194YV9hbGxvY19j
eWNsaWMoeGEsIGlkLCBlbnRyeSwgbGltaXQsIG5leHQsIGdmcCk7CiBzcGluX3VubG9ja19iaCgm
KHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVycjsKfQojIDEwMDkgIi4vaW5jbHVkZS9saW51eC94
YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgaW50IHhhX2FsbG9jX2N5Y2xpY19pcnEoc3RydWN0IHhhcnJheSAqeGEsIHUzMiAq
aWQsIHZvaWQgKmVudHJ5LAogIHN0cnVjdCB4YV9saW1pdCBsaW1pdCwgdTMyICpuZXh0LCBnZnBf
dCBnZnApCnsKIGludCBlcnI7Cgogc3Bpbl9sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CiBlcnIg
PSBfX3hhX2FsbG9jX2N5Y2xpYyh4YSwgaWQsIGVudHJ5LCBsaW1pdCwgbmV4dCwgZ2ZwKTsKIHNw
aW5fdW5sb2NrX2lycSgmKHhhKS0+eGFfbG9jayk7CgogcmV0dXJuIGVycjsKfQojIDEwMzkgIi4v
aW5jbHVkZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpCmludCB4YV9yZXNlcnZlKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGlu
ZGV4LCBnZnBfdCBnZnApCnsKIHJldHVybiB4YV9lcnIoeGFfY21weGNoZyh4YSwgaW5kZXgsICgo
dm9pZCAqKTApLCB4YV9ta19pbnRlcm5hbCgyNTcpLCBnZnApKTsKfQojIDEwNTcgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
CmludCB4YV9yZXNlcnZlX2JoKHN0cnVjdCB4YXJyYXkgKnhhLCB1bnNpZ25lZCBsb25nIGluZGV4
LCBnZnBfdCBnZnApCnsKIHJldHVybiB4YV9lcnIoeGFfY21weGNoZ19iaCh4YSwgaW5kZXgsICgo
dm9pZCAqKTApLCB4YV9ta19pbnRlcm5hbCgyNTcpLCBnZnApKTsKfQojIDEwNzUgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
CmludCB4YV9yZXNlcnZlX2lycShzdHJ1Y3QgeGFycmF5ICp4YSwgdW5zaWduZWQgbG9uZyBpbmRl
eCwgZ2ZwX3QgZ2ZwKQp7CiByZXR1cm4geGFfZXJyKHhhX2NtcHhjaGdfaXJxKHhhLCBpbmRleCwg
KCh2b2lkICopMCksIHhhX21rX2ludGVybmFsKDI1NyksIGdmcCkpOwp9CiMgMTA5MCAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHhhX3JlbGVhc2Uoc3RydWN0IHhhcnJheSAqeGEsIHVu
c2lnbmVkIGxvbmcgaW5kZXgpCnsKIHhhX2NtcHhjaGcoeGEsIGluZGV4LCB4YV9ta19pbnRlcm5h
bCgyNTcpLCAoKHZvaWQgKikwKSwgMCk7Cn0KIyAxMTIyICIuL2luY2x1ZGUvbGludXgveGFycmF5
LmgiCnN0cnVjdCB4YV9ub2RlIHsKIHVuc2lnbmVkIGNoYXIgc2hpZnQ7CiB1bnNpZ25lZCBjaGFy
IG9mZnNldDsKIHVuc2lnbmVkIGNoYXIgY291bnQ7CiB1bnNpZ25lZCBjaGFyIG5yX3ZhbHVlczsK
IHN0cnVjdCB4YV9ub2RlICpwYXJlbnQ7CiBzdHJ1Y3QgeGFycmF5ICphcnJheTsKIHVuaW9uIHsK
ICBzdHJ1Y3QgbGlzdF9oZWFkIHByaXZhdGVfbGlzdDsKICBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCBj
YWxsYmFja19oZWFkOwogfTsKIHZvaWQgKnNsb3RzWygxVUwgPDwgKDAgPyA0IDogNikpXTsKIHVu
aW9uIHsKICB1bnNpZ25lZCBsb25nIHRhZ3NbM11bKCgoKDFVTCA8PCAoMCA/IDQgOiA2KSkpICsg
KDY0KSAtIDEpIC8gKDY0KSldOwogIHVuc2lnbmVkIGxvbmcgbWFya3NbM11bKCgoKDFVTCA8PCAo
MCA/IDQgOiA2KSkpICsgKDY0KSAtIDEpIC8gKDY0KSldOwogfTsKfTsKCnZvaWQgeGFfZHVtcChj
b25zdCBzdHJ1Y3QgeGFycmF5ICopOwp2b2lkIHhhX2R1bXBfbm9kZShjb25zdCBzdHJ1Y3QgeGFf
bm9kZSAqKTsKIyAxMTYyICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX2hlYWQo
Y29uc3Qgc3RydWN0IHhhcnJheSAqeGEpCnsKIHJldHVybiAoeyB0eXBlb2YoKih4YS0+eGFfaGVh
ZCkpICpfX19fX19fX3AxID0gKHR5cGVvZigqKHhhLT54YV9oZWFkKSkgKikoeyB1bmlvbiB7IHR5
cGVvZigoeGEtPnhhX2hlYWQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkgX19y
ZWFkX29uY2Vfc2l6ZSgmKCh4YS0+eGFfaGVhZCkpLCBfX3UuX19jLCBzaXplb2YoKHhhLT54YV9o
ZWFkKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCh4YS0+eGFfaGVhZCkpLCBf
X3UuX19jLCBzaXplb2YoKHhhLT54YV9oZWFkKSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192
YWw7IH0pOyBkbyB7IH0gd2hpbGUgKDApOyA7ICgodHlwZW9mKCooeGEtPnhhX2hlYWQpKSAqKShf
X19fX19fX3AxKSk7IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgKnhhX2hlYWRfbG9ja2VkKGNvbnN0IHN0cnVjdCB4YXJyYXkgKnhhKQp7CiByZXR1cm4g
KHsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKHhhLT54YV9oZWFkKSkgKikoKHhhLT54
YV9oZWFkKSkpOyB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cn0KCgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2
b2lkICp4YV9lbnRyeShjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKICAgIGNvbnN0IHN0cnVjdCB4
YV9ub2RlICpub2RlLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQp7CiBkbyB7IH0gd2hpbGUgKDApOwog
cmV0dXJuICh7IHR5cGVvZigqKG5vZGUtPnNsb3RzW29mZnNldF0pKSAqX19fX19fX19wMSA9ICh0
eXBlb2YoKihub2RlLT5zbG90c1tvZmZzZXRdKSkgKikoeyB1bmlvbiB7IHR5cGVvZigobm9kZS0+
c2xvdHNbb2Zmc2V0XSkpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRf
b25jZV9zaXplKCYoKG5vZGUtPnNsb3RzW29mZnNldF0pKSwgX191Ll9fYywgc2l6ZW9mKChub2Rl
LT5zbG90c1tvZmZzZXRdKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChub2Rl
LT5zbG90c1tvZmZzZXRdKSksIF9fdS5fX2MsIHNpemVvZigobm9kZS0+c2xvdHNbb2Zmc2V0XSkp
KTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAo
KHR5cGVvZigqKG5vZGUtPnNsb3RzW29mZnNldF0pKSAqKShfX19fX19fX3AxKSk7IH0pCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKnhhX2VudHJ5X2xvY2tl
ZChjb25zdCBzdHJ1Y3QgeGFycmF5ICp4YSwKICAgIGNvbnN0IHN0cnVjdCB4YV9ub2RlICpub2Rl
LCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQp7CiBkbyB7IH0gd2hpbGUgKDApOwogcmV0dXJuICh7IGRv
IHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihub2RlLT5zbG90c1tvZmZzZXRdKSkgKikoKG5v
ZGUtPnNsb3RzW29mZnNldF0pKSk7IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCB4YV9ub2RlICp4YV9wYXJlbnQoY29uc3Qgc3RydWN0IHhhcnJheSAq
eGEsCiAgICAgY29uc3Qgc3RydWN0IHhhX25vZGUgKm5vZGUpCnsKIHJldHVybiAoeyB0eXBlb2Yo
Kihub2RlLT5wYXJlbnQpKSAqX19fX19fX19wMSA9ICh0eXBlb2YoKihub2RlLT5wYXJlbnQpKSAq
KSh7IHVuaW9uIHsgdHlwZW9mKChub2RlLT5wYXJlbnQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0g
X191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKChub2RlLT5wYXJlbnQpKSwgX191Ll9fYywg
c2l6ZW9mKChub2RlLT5wYXJlbnQpKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYo
KG5vZGUtPnBhcmVudCkpLCBfX3UuX19jLCBzaXplb2YoKG5vZGUtPnBhcmVudCkpKTsgZG8geyB9
IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigq
KG5vZGUtPnBhcmVudCkpICopKF9fX19fX19fcDEpKTsgfSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHhhX25vZGUgKnhhX3BhcmVudF9sb2NrZWQoY29u
c3Qgc3RydWN0IHhhcnJheSAqeGEsCiAgICAgY29uc3Qgc3RydWN0IHhhX25vZGUgKm5vZGUpCnsK
IHJldHVybiAoeyBkbyB7IH0gd2hpbGUgKDApOyA7ICgodHlwZW9mKCoobm9kZS0+cGFyZW50KSkg
KikoKG5vZGUtPnBhcmVudCkpKTsgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCAqeGFfbWtfbm9kZShjb25zdCBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSkKewog
cmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBsb25nKW5vZGUgfCAyKTsKfQoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB4YV9u
b2RlICp4YV90b19ub2RlKGNvbnN0IHZvaWQgKmVudHJ5KQp7CiByZXR1cm4gKHN0cnVjdCB4YV9u
b2RlICopKCh1bnNpZ25lZCBsb25nKWVudHJ5IC0gMik7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX25vZGUoY29u
c3Qgdm9pZCAqZW50cnkpCnsKIHJldHVybiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYgKHVuc2ln
bmVkIGxvbmcpZW50cnkgPiA0MDk2Owp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqeGFfbWtfc2libGluZyh1bnNpZ25lZCBp
bnQgb2Zmc2V0KQp7CiByZXR1cm4geGFfbWtfaW50ZXJuYWwob2Zmc2V0KTsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVk
IGxvbmcgeGFfdG9fc2libGluZyhjb25zdCB2b2lkICplbnRyeSkKewogcmV0dXJuIHhhX3RvX2lu
dGVybmFsKGVudHJ5KTsKfQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YV9pc19zaWJsaW5nKGNvbnN0IHZvaWQgKmVu
dHJ5KQp7CiByZXR1cm4gMSAmJiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYKICAoZW50cnkgPCB4
YV9ta19zaWJsaW5nKCgxVUwgPDwgKDAgPyA0IDogNikpIC0gMSkpOwp9CiMgMTI1OSAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhX2lzX3JldHJ5KGNvbnN0IHZvaWQgKmVudHJ5KQp7
CiByZXR1cm4gX19idWlsdGluX2V4cGVjdCghIShlbnRyeSA9PSB4YV9ta19pbnRlcm5hbCgyNTYp
KSwgMCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgeGFfaXNfYWR2YW5jZWQoY29uc3Qgdm9pZCAqZW50cnkpCnsK
IHJldHVybiB4YV9pc19pbnRlcm5hbChlbnRyeSkgJiYgKGVudHJ5IDw9IHhhX21rX2ludGVybmFs
KDI1NikpOwp9CiMgMTI4NyAiLi9pbmNsdWRlL2xpbnV4L3hhcnJheS5oIgp0eXBlZGVmIHZvaWQg
KCp4YV91cGRhdGVfbm9kZV90KShzdHJ1Y3QgeGFfbm9kZSAqbm9kZSk7CiMgMTMwNiAiLi9pbmNs
dWRlL2xpbnV4L3hhcnJheS5oIgpzdHJ1Y3QgeGFfc3RhdGUgewogc3RydWN0IHhhcnJheSAqeGE7
CiB1bnNpZ25lZCBsb25nIHhhX2luZGV4OwogdW5zaWduZWQgY2hhciB4YV9zaGlmdDsKIHVuc2ln
bmVkIGNoYXIgeGFfc2liczsKIHVuc2lnbmVkIGNoYXIgeGFfb2Zmc2V0OwogdW5zaWduZWQgY2hh
ciB4YV9wYWQ7CiBzdHJ1Y3QgeGFfbm9kZSAqeGFfbm9kZTsKIHN0cnVjdCB4YV9ub2RlICp4YV9h
bGxvYzsKIHhhX3VwZGF0ZV9ub2RlX3QgeGFfdXBkYXRlOwp9OwojIDEzODUgIi4vaW5jbHVkZS9s
aW51eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHhhc19lcnJvcihjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKnhhcykK
ewogcmV0dXJuIHhhX2Vycih4YXMtPnhhX25vZGUpOwp9CiMgMTM5OSAiLi9pbmNsdWRlL2xpbnV4
L3hhcnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIHhhc19zZXRfZXJyKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCBsb25nIGVy
cikKewogeGFzLT54YV9ub2RlID0gKChzdHJ1Y3QgeGFfbm9kZSAqKSgoKHVuc2lnbmVkIGxvbmcp
ZXJyIDw8IDIpIHwgMlVMKSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgeGFzX2ludmFsaWQoY29uc3Qgc3RydWN0
IHhhX3N0YXRlICp4YXMpCnsKIHJldHVybiAodW5zaWduZWQgbG9uZyl4YXMtPnhhX25vZGUgJiAz
Owp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBib29sIHhhc192YWxpZChjb25zdCBzdHJ1Y3QgeGFfc3RhdGUgKnhhcykKewog
cmV0dXJuICF4YXNfaW52YWxpZCh4YXMpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHhhc19pc19ub2RlKGNvbnN0
IHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQp7CiByZXR1cm4geGFzX3ZhbGlkKHhhcykgJiYgeGFzLT54
YV9ub2RlOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCB4YXNfbm90X25vZGUoc3RydWN0IHhhX25vZGUgKm5vZGUpCnsKIHJl
dHVybiAoKHVuc2lnbmVkIGxvbmcpbm9kZSAmIDMpIHx8ICFub2RlOwp9CgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB4YXNfZnJv
emVuKHN0cnVjdCB4YV9ub2RlICpub2RlKQp7CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcpbm9kZSAm
IDI7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIHhhc190b3Aoc3RydWN0IHhhX25vZGUgKm5vZGUpCnsKIHJldHVybiBub2Rl
IDw9ICgoc3RydWN0IHhhX25vZGUgKikzVUwpOwp9CiMgMTQ2NSAiLi9pbmNsdWRlL2xpbnV4L3hh
cnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHhhc19yZXNldChzdHJ1Y3QgeGFfc3RhdGUgKnhhcykKewogeGFzLT54YV9u
b2RlID0gKChzdHJ1Y3QgeGFfbm9kZSAqKTNVTCk7Cn0KIyAxNDgyICIuL2luY2x1ZGUvbGludXgv
eGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgeGFzX3JldHJ5KHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCBjb25zdCB2b2lk
ICplbnRyeSkKewogaWYgKHhhX2lzX3plcm8oZW50cnkpKQogIHJldHVybiB0cnVlOwogaWYgKCF4
YV9pc19yZXRyeShlbnRyeSkpCiAgcmV0dXJuIGZhbHNlOwogeGFzX3Jlc2V0KHhhcyk7CiByZXR1
cm4gdHJ1ZTsKfQoKdm9pZCAqeGFzX2xvYWQoc3RydWN0IHhhX3N0YXRlICopOwp2b2lkICp4YXNf
c3RvcmUoc3RydWN0IHhhX3N0YXRlICosIHZvaWQgKmVudHJ5KTsKdm9pZCAqeGFzX2ZpbmQoc3Ry
dWN0IHhhX3N0YXRlICosIHVuc2lnbmVkIGxvbmcgbWF4KTsKdm9pZCAqeGFzX2ZpbmRfY29uZmxp
Y3Qoc3RydWN0IHhhX3N0YXRlICopOwoKYm9vbCB4YXNfZ2V0X21hcmsoY29uc3Qgc3RydWN0IHhh
X3N0YXRlICosIHhhX21hcmtfdCk7CnZvaWQgeGFzX3NldF9tYXJrKGNvbnN0IHN0cnVjdCB4YV9z
dGF0ZSAqLCB4YV9tYXJrX3QpOwp2b2lkIHhhc19jbGVhcl9tYXJrKGNvbnN0IHN0cnVjdCB4YV9z
dGF0ZSAqLCB4YV9tYXJrX3QpOwp2b2lkICp4YXNfZmluZF9tYXJrZWQoc3RydWN0IHhhX3N0YXRl
ICosIHVuc2lnbmVkIGxvbmcgbWF4LCB4YV9tYXJrX3QpOwp2b2lkIHhhc19pbml0X21hcmtzKGNv
bnN0IHN0cnVjdCB4YV9zdGF0ZSAqKTsKCmJvb2wgeGFzX25vbWVtKHN0cnVjdCB4YV9zdGF0ZSAq
LCBnZnBfdCk7CnZvaWQgeGFzX3BhdXNlKHN0cnVjdCB4YV9zdGF0ZSAqKTsKCnZvaWQgeGFzX2Ny
ZWF0ZV9yYW5nZShzdHJ1Y3QgeGFfc3RhdGUgKik7CiMgMTUyMiAiLi9pbmNsdWRlL2xpbnV4L3hh
cnJheS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkICp4YXNfcmVsb2FkKHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQp7CiBzdHJ1Y3Qg
eGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFfbm9kZTsKCiBpZiAobm9kZSkKICByZXR1cm4geGFfZW50
cnkoeGFzLT54YSwgbm9kZSwgeGFzLT54YV9vZmZzZXQpOwogcmV0dXJuIHhhX2hlYWQoeGFzLT54
YSk7Cn0KIyAxNTQwICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFzX3NldChzdHJ1
Y3QgeGFfc3RhdGUgKnhhcywgdW5zaWduZWQgbG9uZyBpbmRleCkKewogeGFzLT54YV9pbmRleCA9
IGluZGV4OwogeGFzLT54YV9ub2RlID0gKChzdHJ1Y3QgeGFfbm9kZSAqKTNVTCk7Cn0KCgoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgeGFzX3NldF9vcmRlcihzdHJ1Y3QgeGFfc3RhdGUgKnhhcywgdW5zaWduZWQgbG9uZyBp
bmRleCwKICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCnsKCiB4YXMtPnhhX2luZGV4ID0gb3JkZXIg
PCA2NCA/IChpbmRleCA+PiBvcmRlcikgPDwgb3JkZXIgOiAwOwogeGFzLT54YV9zaGlmdCA9IG9y
ZGVyIC0gKG9yZGVyICUgKDAgPyA0IDogNikpOwogeGFzLT54YV9zaWJzID0gKDEgPDwgKG9yZGVy
ICUgKDAgPyA0IDogNikpKSAtIDE7CiB4YXMtPnhhX25vZGUgPSAoKHN0cnVjdCB4YV9ub2RlICop
M1VMKTsKCgoKCn0KIyAxNTc0ICIuL2luY2x1ZGUvbGludXgveGFycmF5LmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgeGFzX3Nl
dF91cGRhdGUoc3RydWN0IHhhX3N0YXRlICp4YXMsIHhhX3VwZGF0ZV9ub2RlX3QgdXBkYXRlKQp7
CiB4YXMtPnhhX3VwZGF0ZSA9IHVwZGF0ZTsKfQojIDE1OTAgIi4vaW5jbHVkZS9saW51eC94YXJy
YXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCAqeGFzX25leHRfZW50cnkoc3RydWN0IHhhX3N0YXRlICp4YXMsIHVuc2lnbmVk
IGxvbmcgbWF4KQp7CiBzdHJ1Y3QgeGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFfbm9kZTsKIHZvaWQg
KmVudHJ5OwoKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhc19ub3Rfbm9kZShub2RlKSB8fCBu
b2RlLT5zaGlmdCB8fCB4YXMtPnhhX29mZnNldCAhPSAoeGFzLT54YV9pbmRleCAmICgoMVVMIDw8
ICgwID8gNCA6IDYpKSAtIDEpKSksIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKQogIHJldHVybiB4YXNfZmluZCh4YXMsIG1heCk7CgogZG8g
ewogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKHhhcy0+eGFfaW5kZXggPj0gbWF4KSwgMCkpCiAg
IHJldHVybiB4YXNfZmluZCh4YXMsIG1heCk7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFz
LT54YV9vZmZzZXQgPT0gKCgxVUwgPDwgKDAgPyA0IDogNikpIC0gMSkpLCAwKSkKICAgcmV0dXJu
IHhhc19maW5kKHhhcywgbWF4KTsKICBlbnRyeSA9IHhhX2VudHJ5KHhhcy0+eGEsIG5vZGUsIHhh
cy0+eGFfb2Zmc2V0ICsgMSk7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoeGFfaXNfaW50ZXJu
YWwoZW50cnkpKSwgMCkpCiAgIHJldHVybiB4YXNfZmluZCh4YXMsIG1heCk7CiAgeGFzLT54YV9v
ZmZzZXQrKzsKICB4YXMtPnhhX2luZGV4Kys7CiB9IHdoaWxlICghZW50cnkpOwoKIHJldHVybiBl
bnRyeTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHVuc2lnbmVkIGludCB4YXNfZmluZF9jaHVuayhzdHJ1Y3QgeGFfc3RhdGUgKnhh
cywgYm9vbCBhZHZhbmNlLAogIHhhX21hcmtfdCBtYXJrKQp7CiB1bnNpZ25lZCBsb25nICphZGRy
ID0geGFzLT54YV9ub2RlLT5tYXJrc1soIHVuc2lnbmVkKW1hcmtdOwogdW5zaWduZWQgaW50IG9m
ZnNldCA9IHhhcy0+eGFfb2Zmc2V0OwoKIGlmIChhZHZhbmNlKQogIG9mZnNldCsrOwogaWYgKCgx
VUwgPDwgKDAgPyA0IDogNikpID09IDY0KSB7CiAgaWYgKG9mZnNldCA8ICgxVUwgPDwgKDAgPyA0
IDogNikpKSB7CiAgIHVuc2lnbmVkIGxvbmcgZGF0YSA9ICphZGRyICYgKH4wVUwgPDwgb2Zmc2V0
KTsKICAgaWYgKGRhdGEpCiAgICByZXR1cm4gX19mZnMoZGF0YSk7CiAgfQogIHJldHVybiAoMVVM
IDw8ICgwID8gNCA6IDYpKTsKIH0KCiByZXR1cm4gZmluZF9uZXh0X2JpdChhZGRyLCAoMVVMIDw8
ICgwID8gNCA6IDYpKSwgb2Zmc2V0KTsKfQojIDE2NDcgIi4vaW5jbHVkZS9saW51eC94YXJyYXku
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqeGFzX25leHRfbWFya2VkKHN0cnVjdCB4YV9zdGF0ZSAqeGFzLCB1bnNpZ25lZCBs
b25nIG1heCwKICAgICAgICB4YV9tYXJrX3QgbWFyaykKewogc3RydWN0IHhhX25vZGUgKm5vZGUg
PSB4YXMtPnhhX25vZGU7CiB1bnNpZ25lZCBpbnQgb2Zmc2V0OwoKIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKHhhc19ub3Rfbm9kZShub2RlKSB8fCBub2RlLT5zaGlmdCksIDApKQogIHJldHVybiB4
YXNfZmluZF9tYXJrZWQoeGFzLCBtYXgsIG1hcmspOwogb2Zmc2V0ID0geGFzX2ZpbmRfY2h1bmso
eGFzLCB0cnVlLCBtYXJrKTsKIHhhcy0+eGFfb2Zmc2V0ID0gb2Zmc2V0OwogeGFzLT54YV9pbmRl
eCA9ICh4YXMtPnhhX2luZGV4ICYgfigoMVVMIDw8ICgwID8gNCA6IDYpKSAtIDEpKSArIG9mZnNl
dDsKIGlmICh4YXMtPnhhX2luZGV4ID4gbWF4KQogIHJldHVybiAoKHZvaWQgKikwKTsKIGlmIChv
ZmZzZXQgPT0gKDFVTCA8PCAoMCA/IDQgOiA2KSkpCiAgcmV0dXJuIHhhc19maW5kX21hcmtlZCh4
YXMsIG1heCwgbWFyayk7CiByZXR1cm4geGFfZW50cnkoeGFzLT54YSwgbm9kZSwgb2Zmc2V0KTsK
fQoKCgoKCmVudW0gewogWEFfQ0hFQ0tfU0NIRUQgPSA0MDk2LAp9OwojIDE3MjQgIi4vaW5jbHVk
ZS9saW51eC94YXJyYXkuaCIKdm9pZCAqX194YXNfbmV4dChzdHJ1Y3QgeGFfc3RhdGUgKik7CnZv
aWQgKl9feGFzX3ByZXYoc3RydWN0IHhhX3N0YXRlICopOwojIDE3NDMgIi4vaW5jbHVkZS9saW51
eC94YXJyYXkuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqeGFzX3ByZXYoc3RydWN0IHhhX3N0YXRlICp4YXMpCnsKIHN0cnVj
dCB4YV9ub2RlICpub2RlID0geGFzLT54YV9ub2RlOwoKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KHhhc19ub3Rfbm9kZShub2RlKSB8fCBub2RlLT5zaGlmdCB8fCB4YXMtPnhhX29mZnNldCA9PSAw
KSwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgKQogIHJldHVybiBfX3hhc19wcmV2KHhhcyk7
CgogeGFzLT54YV9pbmRleC0tOwogeGFzLT54YV9vZmZzZXQtLTsKIHJldHVybiB4YV9lbnRyeSh4
YXMtPnhhLCBub2RlLCB4YXMtPnhhX29mZnNldCk7Cn0KIyAxNzcyICIuL2luY2x1ZGUvbGludXgv
eGFycmF5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgKnhhc19uZXh0KHN0cnVjdCB4YV9zdGF0ZSAqeGFzKQp7CiBzdHJ1Y3Qg
eGFfbm9kZSAqbm9kZSA9IHhhcy0+eGFfbm9kZTsKCiBpZiAoX19idWlsdGluX2V4cGVjdCghISh4
YXNfbm90X25vZGUobm9kZSkgfHwgbm9kZS0+c2hpZnQgfHwgeGFzLT54YV9vZmZzZXQgPT0gKCgx
VUwgPDwgKDAgPyA0IDogNikpIC0gMSkpLCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCiAgcmV0dXJuIF9feGFzX25leHQoeGFzKTsKCiB4YXMtPnhhX2luZGV4Kys7CiB4
YXMtPnhhX29mZnNldCsrOwogcmV0dXJuIHhhX2VudHJ5KHhhcy0+eGEsIG5vZGUsIHhhcy0+eGFf
b2Zmc2V0KTsKfQojIDE5ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIiAyCiMgNDMgIi4v
aW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcmFkaXhfdHJlZV9pc19pbnRlcm5hbF9u
b2RlKHZvaWQgKnB0cikKewogcmV0dXJuICgodW5zaWduZWQgbG9uZylwdHIgJiAzVUwpID09CiAg
ICAyVUw7Cn0KIyA3NCAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCByYWRpeF90
cmVlX2VtcHR5KGNvbnN0IHN0cnVjdCB4YXJyYXkgKnJvb3QpCnsKIHJldHVybiByb290LT54YV9o
ZWFkID09ICgodm9pZCAqKTApOwp9CiMgOTQgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgi
CnN0cnVjdCByYWRpeF90cmVlX2l0ZXIgewogdW5zaWduZWQgbG9uZyBpbmRleDsKIHVuc2lnbmVk
IGxvbmcgbmV4dF9pbmRleDsKIHVuc2lnbmVkIGxvbmcgdGFnczsKIHN0cnVjdCB4YV9ub2RlICpu
b2RlOwp9OwojIDE2NSAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqcmFkaXhf
dHJlZV9kZXJlZl9zbG90KHZvaWQgKipzbG90KQp7CiByZXR1cm4gKHsgdHlwZW9mKCooKnNsb3Qp
KSAqX19fX19fX19wMSA9ICh0eXBlb2YoKigqc2xvdCkpICopKHsgdW5pb24geyB0eXBlb2YoKCpz
bG90KSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUo
JigoKnNsb3QpKSwgX191Ll9fYywgc2l6ZW9mKCgqc2xvdCkpKTsgZWxzZSBfX3JlYWRfb25jZV9z
aXplX25vY2hlY2soJigoKnNsb3QpKSwgX191Ll9fYywgc2l6ZW9mKCgqc2xvdCkpKTsgZG8geyB9
IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9IHdoaWxlICgwKTsgOyAoKHR5cGVvZigq
KCpzbG90KSkgKikoX19fX19fX19wMSkpOyB9KTsKfQojIDE3OSAiLi9pbmNsdWRlL2xpbnV4L3Jh
ZGl4LXRyZWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCAqcmFkaXhfdHJlZV9kZXJlZl9zbG90X3Byb3RlY3RlZCh2b2lkICoq
c2xvdCwKICAgICAgIHNwaW5sb2NrX3QgKnRyZWVsb2NrKQp7CiByZXR1cm4gKHsgZG8geyB9IHdo
aWxlICgwKTsgOyAoKHR5cGVvZigqKCpzbG90KSkgKikoKCpzbG90KSkpOyB9KTsKfQojIDE5MiAi
Li9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJhZGl4X3RyZWVfZGVyZWZfcmV0cnko
dm9pZCAqYXJnKQp7CiByZXR1cm4gX19idWlsdGluX2V4cGVjdCghIShyYWRpeF90cmVlX2lzX2lu
dGVybmFsX25vZGUoYXJnKSksIDApOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCByYWRpeF90cmVlX2V4Y2VwdGlvbih2
b2lkICphcmcpCnsKIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKCh1bnNpZ25lZCBsb25nKWFy
ZyAmIDNVTCksIDApOwp9CgppbnQgcmFkaXhfdHJlZV9pbnNlcnQoc3RydWN0IHhhcnJheSAqLCB1
bnNpZ25lZCBsb25nIGluZGV4LAogICB2b2lkICopOwp2b2lkICpfX3JhZGl4X3RyZWVfbG9va3Vw
KGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwgdW5zaWduZWQgbG9uZyBpbmRleCwKICAgICBzdHJ1Y3Qg
eGFfbm9kZSAqKm5vZGVwLCB2b2lkICoqKnNsb3RwKTsKdm9pZCAqcmFkaXhfdHJlZV9sb29rdXAo
Y29uc3Qgc3RydWN0IHhhcnJheSAqLCB1bnNpZ25lZCBsb25nKTsKdm9pZCAqKnJhZGl4X3RyZWVf
bG9va3VwX3Nsb3QoY29uc3Qgc3RydWN0IHhhcnJheSAqLAogICAgIHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwp2b2lkIF9fcmFkaXhfdHJlZV9yZXBsYWNlKHN0cnVjdCB4YXJyYXkgKiwgc3RydWN0IHhh
X25vZGUgKiwKICAgICB2b2lkICoqc2xvdCwgdm9pZCAqZW50cnkpOwp2b2lkIHJhZGl4X3RyZWVf
aXRlcl9yZXBsYWNlKHN0cnVjdCB4YXJyYXkgKiwKICBjb25zdCBzdHJ1Y3QgcmFkaXhfdHJlZV9p
dGVyICosIHZvaWQgKipzbG90LCB2b2lkICplbnRyeSk7CnZvaWQgcmFkaXhfdHJlZV9yZXBsYWNl
X3Nsb3Qoc3RydWN0IHhhcnJheSAqLAogICAgICAgIHZvaWQgKipzbG90LCB2b2lkICplbnRyeSk7
CnZvaWQgcmFkaXhfdHJlZV9pdGVyX2RlbGV0ZShzdHJ1Y3QgeGFycmF5ICosCiAgIHN0cnVjdCBy
YWRpeF90cmVlX2l0ZXIgKml0ZXIsIHZvaWQgKipzbG90KTsKdm9pZCAqcmFkaXhfdHJlZV9kZWxl
dGVfaXRlbShzdHJ1Y3QgeGFycmF5ICosIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CnZvaWQgKnJh
ZGl4X3RyZWVfZGVsZXRlKHN0cnVjdCB4YXJyYXkgKiwgdW5zaWduZWQgbG9uZyk7CnVuc2lnbmVk
IGludCByYWRpeF90cmVlX2dhbmdfbG9va3VwKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwKICAgdm9p
ZCAqKnJlc3VsdHMsIHVuc2lnbmVkIGxvbmcgZmlyc3RfaW5kZXgsCiAgIHVuc2lnbmVkIGludCBt
YXhfaXRlbXMpOwppbnQgcmFkaXhfdHJlZV9wcmVsb2FkKGdmcF90IGdmcF9tYXNrKTsKaW50IHJh
ZGl4X3RyZWVfbWF5YmVfcHJlbG9hZChnZnBfdCBnZnBfbWFzayk7CnZvaWQgcmFkaXhfdHJlZV9p
bml0KHZvaWQpOwp2b2lkICpyYWRpeF90cmVlX3RhZ19zZXQoc3RydWN0IHhhcnJheSAqLAogICB1
bnNpZ25lZCBsb25nIGluZGV4LCB1bnNpZ25lZCBpbnQgdGFnKTsKdm9pZCAqcmFkaXhfdHJlZV90
YWdfY2xlYXIoc3RydWN0IHhhcnJheSAqLAogICB1bnNpZ25lZCBsb25nIGluZGV4LCB1bnNpZ25l
ZCBpbnQgdGFnKTsKaW50IHJhZGl4X3RyZWVfdGFnX2dldChjb25zdCBzdHJ1Y3QgeGFycmF5ICos
CiAgIHVuc2lnbmVkIGxvbmcgaW5kZXgsIHVuc2lnbmVkIGludCB0YWcpOwp2b2lkIHJhZGl4X3Ry
ZWVfaXRlcl90YWdfY2xlYXIoc3RydWN0IHhhcnJheSAqLAogIGNvbnN0IHN0cnVjdCByYWRpeF90
cmVlX2l0ZXIgKml0ZXIsIHVuc2lnbmVkIGludCB0YWcpOwp1bnNpZ25lZCBpbnQgcmFkaXhfdHJl
ZV9nYW5nX2xvb2t1cF90YWcoY29uc3Qgc3RydWN0IHhhcnJheSAqLAogIHZvaWQgKipyZXN1bHRz
LCB1bnNpZ25lZCBsb25nIGZpcnN0X2luZGV4LAogIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsIHVu
c2lnbmVkIGludCB0YWcpOwp1bnNpZ25lZCBpbnQgcmFkaXhfdHJlZV9nYW5nX2xvb2t1cF90YWdf
c2xvdChjb25zdCBzdHJ1Y3QgeGFycmF5ICosCiAgdm9pZCAqKipyZXN1bHRzLCB1bnNpZ25lZCBs
b25nIGZpcnN0X2luZGV4LAogIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsIHVuc2lnbmVkIGludCB0
YWcpOwppbnQgcmFkaXhfdHJlZV90YWdnZWQoY29uc3Qgc3RydWN0IHhhcnJheSAqLCB1bnNpZ25l
ZCBpbnQgdGFnKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgcmFkaXhfdHJlZV9wcmVsb2FkX2VuZCh2b2lkKQp7CiBfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwp9Cgp2b2lkICoqaWRyX2dldF9mcmVlKHN0
cnVjdCB4YXJyYXkgKnJvb3QsCiAgICAgICAgIHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIs
IGdmcF90IGdmcCwKICAgICAgICAgdW5zaWduZWQgbG9uZyBtYXgpOwoKZW51bSB7CiBSQURJWF9U
UkVFX0lURVJfVEFHX01BU0sgPSAweDBmLAogUkFESVhfVFJFRV9JVEVSX1RBR0dFRCA9IDB4MTAs
CiBSQURJWF9UUkVFX0lURVJfQ09OVElHID0gMHgyMCwKfTsKIyAyNjggIi4vaW5jbHVkZS9saW51
eC9yYWRpeC10cmVlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAq
KgpyYWRpeF90cmVlX2l0ZXJfaW5pdChzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyICppdGVyLCB1bnNp
Z25lZCBsb25nIHN0YXJ0KQp7CiMgMjc5ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgog
aXRlci0+aW5kZXggPSAwOwogaXRlci0+bmV4dF9pbmRleCA9IHN0YXJ0OwogcmV0dXJuICgodm9p
ZCAqKTApOwp9CiMgMjk3ICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgp2b2lkICoqcmFk
aXhfdHJlZV9uZXh0X2NodW5rKGNvbnN0IHN0cnVjdCB4YXJyYXkgKiwKICAgICAgICBzdHJ1Y3Qg
cmFkaXhfdHJlZV9pdGVyICppdGVyLCB1bnNpZ25lZCBmbGFncyk7CiMgMzEwICIuL2luY2x1ZGUv
bGludXgvcmFkaXgtdHJlZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICoqCnJhZGl4X3RyZWVfaXRlcl9sb29rdXAoY29uc3Qg
c3RydWN0IHhhcnJheSAqcm9vdCwKICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlciwgdW5z
aWduZWQgbG9uZyBpbmRleCkKewogcmFkaXhfdHJlZV9pdGVyX2luaXQoaXRlciwgaW5kZXgpOwog
cmV0dXJuIHJhZGl4X3RyZWVfbmV4dF9jaHVuayhyb290LCBpdGVyLCBSQURJWF9UUkVFX0lURVJf
Q09OVElHKTsKfQojIDMyNyAiLi9pbmNsdWRlL2xpbnV4L3JhZGl4LXRyZWUuaCIKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgX19hdHRyaWJ1
dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpCnZvaWQgKipyYWRpeF90cmVlX2l0ZXJfcmV0
cnkoc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcikKewogaXRlci0+bmV4dF9pbmRleCA9IGl0
ZXItPmluZGV4OwogaXRlci0+dGFncyA9IDA7CiByZXR1cm4gKCh2b2lkICopMCk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGxvbmcKX19yYWRpeF90cmVlX2l0ZXJfYWRkKHN0cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0
ZXIsIHVuc2lnbmVkIGxvbmcgc2xvdHMpCnsKIHJldHVybiBpdGVyLT5pbmRleCArIHNsb3RzOwp9
CiMgMzUxICIuL2luY2x1ZGUvbGludXgvcmFkaXgtdHJlZS5oIgp2b2lkICoqX19hdHRyaWJ1dGVf
XygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHJhZGl4X3RyZWVfaXRlcl9yZXN1bWUodm9pZCAq
KnNsb3QsCiAgICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlcik7CgoKCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJp
YnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGxvbmcKcmFkaXhfdHJlZV9jaHVua19zaXplKHN0
cnVjdCByYWRpeF90cmVlX2l0ZXIgKml0ZXIpCnsKIHJldHVybiBpdGVyLT5uZXh0X2luZGV4IC0g
aXRlci0+aW5kZXg7Cn0KIyAzODUgIi4vaW5jbHVkZS9saW51eC9yYWRpeC10cmVlLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0
cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkgdm9pZCAqKnJhZGl4X3RyZWVfbmV4dF9zbG90
KHZvaWQgKipzbG90LAogICAgc3RydWN0IHJhZGl4X3RyZWVfaXRlciAqaXRlciwgdW5zaWduZWQg
ZmxhZ3MpCnsKIGlmIChmbGFncyAmIFJBRElYX1RSRUVfSVRFUl9UQUdHRUQpIHsKICBpdGVyLT50
YWdzID4+PSAxOwogIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKCFpdGVyLT50YWdzKSwgMCkpCiAg
IHJldHVybiAoKHZvaWQgKikwKTsKICBpZiAoX19idWlsdGluX2V4cGVjdCghIShpdGVyLT50YWdz
ICYgMXVsKSwgMSkpIHsKICAgaXRlci0+aW5kZXggPSBfX3JhZGl4X3RyZWVfaXRlcl9hZGQoaXRl
ciwgMSk7CiAgIHNsb3QrKzsKICAgZ290byBmb3VuZDsKICB9CiAgaWYgKCEoZmxhZ3MgJiBSQURJ
WF9UUkVFX0lURVJfQ09OVElHKSkgewogICB1bnNpZ25lZCBvZmZzZXQgPSBfX2ZmcyhpdGVyLT50
YWdzKTsKCiAgIGl0ZXItPnRhZ3MgPj49IG9mZnNldCsrOwogICBpdGVyLT5pbmRleCA9IF9fcmFk
aXhfdHJlZV9pdGVyX2FkZChpdGVyLCBvZmZzZXQpOwogICBzbG90ICs9IG9mZnNldDsKICAgZ290
byBmb3VuZDsKICB9CiB9IGVsc2UgewogIGxvbmcgY291bnQgPSByYWRpeF90cmVlX2NodW5rX3Np
emUoaXRlcik7CgogIHdoaWxlICgtLWNvdW50ID4gMCkgewogICBzbG90Kys7CiAgIGl0ZXItPmlu
ZGV4ID0gX19yYWRpeF90cmVlX2l0ZXJfYWRkKGl0ZXIsIDEpOwoKICAgaWYgKF9fYnVpbHRpbl9l
eHBlY3QoISEoKnNsb3QpLCAxKSkKICAgIGdvdG8gZm91bmQ7CiAgIGlmIChmbGFncyAmIFJBRElY
X1RSRUVfSVRFUl9DT05USUcpIHsKCiAgICBpdGVyLT5uZXh0X2luZGV4ID0gMDsKICAgIGJyZWFr
OwogICB9CiAgfQogfQogcmV0dXJuICgodm9pZCAqKTApOwoKIGZvdW5kOgogcmV0dXJuIHNsb3Q7
Cn0KIyAxNiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvbGludXgv
cGlkLmgiIDEKIyA5ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCmVudW0gcGlkX3R5cGUKewogUElE
VFlQRV9QSUQsCiBQSURUWVBFX1RHSUQsCiBQSURUWVBFX1BHSUQsCiBQSURUWVBFX1NJRCwKIFBJ
RFRZUEVfTUFYLAp9OwojIDU0ICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCnN0cnVjdCB1cGlkIHsK
IGludCBucjsKIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpuczsKfTsKCnN0cnVjdCBwaWQKewogcmVm
Y291bnRfdCBjb3VudDsKIHVuc2lnbmVkIGludCBsZXZlbDsKCiBzdHJ1Y3QgaGxpc3RfaGVhZCB0
YXNrc1tQSURUWVBFX01BWF07Cgogd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdF9waWRmZDsKIHN0cnVj
dCBjYWxsYmFja19oZWFkIHJjdTsKIHN0cnVjdCB1cGlkIG51bWJlcnNbMV07Cn07CgpleHRlcm4g
c3RydWN0IHBpZCBpbml0X3N0cnVjdF9waWQ7CgpleHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3Bl
cmF0aW9ucyBwaWRmZF9mb3BzOwoKc3RydWN0IGZpbGU7CgpleHRlcm4gc3RydWN0IHBpZCAqcGlk
ZmRfcGlkKGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwaWQgKmdldF9waWQoc3Ry
dWN0IHBpZCAqcGlkKQp7CiBpZiAocGlkKQogIHJlZmNvdW50X2luYygmcGlkLT5jb3VudCk7CiBy
ZXR1cm4gcGlkOwp9CgpleHRlcm4gdm9pZCBwdXRfcGlkKHN0cnVjdCBwaWQgKnBpZCk7CmV4dGVy
biBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpZF90YXNrKHN0cnVjdCBwaWQgKnBpZCwgZW51bSBwaWRf
dHlwZSk7CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgcGlkX2hhc190YXNrKHN0cnVjdCBwaWQgKnBpZCwgZW51bSBwaWRfdHlwZSB0
eXBlKQp7CiByZXR1cm4gIWhsaXN0X2VtcHR5KCZwaWQtPnRhc2tzW3R5cGVdKTsKfQpleHRlcm4g
c3RydWN0IHRhc2tfc3RydWN0ICpnZXRfcGlkX3Rhc2soc3RydWN0IHBpZCAqcGlkLCBlbnVtIHBp
ZF90eXBlKTsKCmV4dGVybiBzdHJ1Y3QgcGlkICpnZXRfdGFza19waWQoc3RydWN0IHRhc2tfc3Ry
dWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlIHR5cGUpOwoKCgoKZXh0ZXJuIHZvaWQgYXR0YWNoX3Bp
ZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGVudW0gcGlkX3R5cGUpOwpleHRlcm4gdm9pZCBk
ZXRhY2hfcGlkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgZW51bSBwaWRfdHlwZSk7CmV4dGVy
biB2b2lkIGNoYW5nZV9waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBl
LAogICBzdHJ1Y3QgcGlkICpwaWQpOwpleHRlcm4gdm9pZCB0cmFuc2Zlcl9waWQoc3RydWN0IHRh
c2tfc3RydWN0ICpvbGQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqbmV3LAogICAgZW51bSBwaWRfdHlw
ZSk7CgpzdHJ1Y3QgcGlkX25hbWVzcGFjZTsKZXh0ZXJuIHN0cnVjdCBwaWRfbmFtZXNwYWNlIGlu
aXRfcGlkX25zOwojIDExOCAiLi9pbmNsdWRlL2xpbnV4L3BpZC5oIgpleHRlcm4gc3RydWN0IHBp
ZCAqZmluZF9waWRfbnMoaW50IG5yLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpOwpleHRlcm4g
c3RydWN0IHBpZCAqZmluZF92cGlkKGludCBucik7CgoKCgpleHRlcm4gc3RydWN0IHBpZCAqZmlu
ZF9nZXRfcGlkKGludCBucik7CmV4dGVybiBzdHJ1Y3QgcGlkICpmaW5kX2dlX3BpZChpbnQgbnIs
IHN0cnVjdCBwaWRfbmFtZXNwYWNlICopOwoKZXh0ZXJuIHN0cnVjdCBwaWQgKmFsbG9jX3BpZChz
dHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMsIHBpZF90ICpzZXRfdGlkLAogICAgICAgIHNpemVfdCBz
ZXRfdGlkX3NpemUpOwpleHRlcm4gdm9pZCBmcmVlX3BpZChzdHJ1Y3QgcGlkICpwaWQpOwpleHRl
cm4gdm9pZCBkaXNhYmxlX3BpZF9hbGxvY2F0aW9uKHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucyk7
CiMgMTQyICIuL2luY2x1ZGUvbGludXgvcGlkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpuc19v
Zl9waWQoc3RydWN0IHBpZCAqcGlkKQp7CiBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMgPSAoKHZv
aWQgKikwKTsKIGlmIChwaWQpCiAgbnMgPSBwaWQtPm51bWJlcnNbcGlkLT5sZXZlbF0ubnM7CiBy
ZXR1cm4gbnM7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfY2hpbGRfcmVhcGVyKHN0cnVjdCBwaWQgKnBpZCkK
ewogcmV0dXJuIHBpZC0+bnVtYmVyc1twaWQtPmxldmVsXS5uciA9PSAxOwp9CiMgMTcyICIuL2lu
Y2x1ZGUvbGludXgvcGlkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHBpZF90IHBpZF9ucihzdHJ1Y3QgcGlkICpwaWQpCnsKIHBpZF90
IG5yID0gMDsKIGlmIChwaWQpCiAgbnIgPSBwaWQtPm51bWJlcnNbMF0ubnI7CiByZXR1cm4gbnI7
Cn0KCnBpZF90IHBpZF9ucl9ucyhzdHJ1Y3QgcGlkICpwaWQsIHN0cnVjdCBwaWRfbmFtZXNwYWNl
ICpucyk7CnBpZF90IHBpZF92bnIoc3RydWN0IHBpZCAqcGlkKTsKIyAyMCAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIgMQojIDE2
ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4
L2NhcGFiaWxpdHkuaCIgMQojIDM5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9jYXBhYmlsaXR5Lmgi
CnR5cGVkZWYgc3RydWN0IF9fdXNlcl9jYXBfaGVhZGVyX3N0cnVjdCB7CiBfX3UzMiB2ZXJzaW9u
OwogaW50IHBpZDsKfSAqY2FwX3VzZXJfaGVhZGVyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfX3VzZXJf
Y2FwX2RhdGFfc3RydWN0IHsKICAgICAgICBfX3UzMiBlZmZlY3RpdmU7CiAgICAgICAgX191MzIg
cGVybWl0dGVkOwogICAgICAgIF9fdTMyIGluaGVyaXRhYmxlOwp9ICpjYXBfdXNlcl9kYXRhX3Q7
CiMgNzIgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2NhcGFiaWxpdHkuaCIKc3RydWN0IHZmc19jYXBf
ZGF0YSB7CiBfX2xlMzIgbWFnaWNfZXRjOwogc3RydWN0IHsKICBfX2xlMzIgcGVybWl0dGVkOwog
IF9fbGUzMiBpbmhlcml0YWJsZTsKIH0gZGF0YVsyXTsKfTsKCgoKCnN0cnVjdCB2ZnNfbnNfY2Fw
X2RhdGEgewogX19sZTMyIG1hZ2ljX2V0YzsKIHN0cnVjdCB7CiAgX19sZTMyIHBlcm1pdHRlZDsK
ICBfX2xlMzIgaW5oZXJpdGFibGU7CiB9IGRhdGFbMl07CiBfX2xlMzIgcm9vdGlkOwp9OwojIDE3
ICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIiAyCgoKCgoKZXh0ZXJuIGludCBmaWxlX2Nh
cHNfZW5hYmxlZDsKCnR5cGVkZWYgc3RydWN0IGtlcm5lbF9jYXBfc3RydWN0IHsKIF9fdTMyIGNh
cFsyXTsKfSBrZXJuZWxfY2FwX3Q7CgoKc3RydWN0IGNwdV92ZnNfY2FwX2RhdGEgewogX191MzIg
bWFnaWNfZXRjOwoga2VybmVsX2NhcF90IHBlcm1pdHRlZDsKIGtlcm5lbF9jYXBfdCBpbmhlcml0
YWJsZTsKIGt1aWRfdCByb290aWQ7Cn07CgoKCgoKc3RydWN0IGZpbGU7CnN0cnVjdCBpbm9kZTsK
c3RydWN0IGRlbnRyeTsKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1Y3QgdXNlcl9uYW1lc3BhY2U7
CgpleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2VtcHR5X3NldDsKZXh0ZXJuIGNvbnN0
IGtlcm5lbF9jYXBfdCBfX2NhcF9pbml0X2VmZl9zZXQ7CiMgMTE4ICIuL2luY2x1ZGUvbGludXgv
Y2FwYWJpbGl0eS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX2NvbWJpbmUoY29uc3Qga2VybmVsX2NhcF90
IGEsCiAgICAgICAgICAgY29uc3Qga2VybmVsX2NhcF90IGIpCnsKIGtlcm5lbF9jYXBfdCBkZXN0
OwogZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAoX19jYXBpID0gMDsgX19jYXBpIDwgMjsgKytf
X2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IGEuY2FwW19fY2FwaV0gfCBiLmNhcFtfX2NhcGld
OyB9IH0gd2hpbGUgKDApOwogcmV0dXJuIGRlc3Q7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfaW50ZXJz
ZWN0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLAogICAgICBjb25zdCBrZXJuZWxfY2FwX3QgYikKewog
a2VybmVsX2NhcF90IGRlc3Q7CiBkbyB7IHVuc2lnbmVkIF9fY2FwaTsgZm9yIChfX2NhcGkgPSAw
OyBfX2NhcGkgPCAyOyArK19fY2FwaSkgeyBkZXN0LmNhcFtfX2NhcGldID0gYS5jYXBbX19jYXBp
XSAmIGIuY2FwW19fY2FwaV07IH0gfSB3aGlsZSAoMCk7CiByZXR1cm4gZGVzdDsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga2VybmVs
X2NhcF90IGNhcF9kcm9wKGNvbnN0IGtlcm5lbF9jYXBfdCBhLAogICAgICAgIGNvbnN0IGtlcm5l
bF9jYXBfdCBkcm9wKQp7CiBrZXJuZWxfY2FwX3QgZGVzdDsKIGRvIHsgdW5zaWduZWQgX19jYXBp
OyBmb3IgKF9fY2FwaSA9IDA7IF9fY2FwaSA8IDI7ICsrX19jYXBpKSB7IGRlc3QuY2FwW19fY2Fw
aV0gPSBhLmNhcFtfX2NhcGldICZ+IGRyb3AuY2FwW19fY2FwaV07IH0gfSB3aGlsZSAoMCk7CiBy
ZXR1cm4gZGVzdDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkga2VybmVsX2NhcF90IGNhcF9pbnZlcnQoY29uc3Qga2VybmVsX2NhcF90
IGMpCnsKIGtlcm5lbF9jYXBfdCBkZXN0OwogZG8geyB1bnNpZ25lZCBfX2NhcGk7IGZvciAoX19j
YXBpID0gMDsgX19jYXBpIDwgMjsgKytfX2NhcGkpIHsgZGVzdC5jYXBbX19jYXBpXSA9IH4gYy5j
YXBbX19jYXBpXTsgfSB9IHdoaWxlICgwKTsKIHJldHVybiBkZXN0Owp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGNhcF9pc2Ns
ZWFyKGNvbnN0IGtlcm5lbF9jYXBfdCBhKQp7CiB1bnNpZ25lZCBfX2NhcGk7CiBmb3IgKF9fY2Fw
aSA9IDA7IF9fY2FwaSA8IDI7ICsrX19jYXBpKSB7CiAgaWYgKGEuY2FwW19fY2FwaV0gIT0gMCkK
ICAgcmV0dXJuIGZhbHNlOwogfQogcmV0dXJuIHRydWU7Cn0KIyAxNjYgIi4vaW5jbHVkZS9saW51
eC9jYXBhYmlsaXR5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGJvb2wgY2FwX2lzc3Vic2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBhLCBj
b25zdCBrZXJuZWxfY2FwX3Qgc2V0KQp7CiBrZXJuZWxfY2FwX3QgZGVzdDsKIGRlc3QgPSBjYXBf
ZHJvcChhLCBzZXQpOwogcmV0dXJuIGNhcF9pc2NsZWFyKGRlc3QpOwp9CgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBf
dCBjYXBfZHJvcF9mc19zZXQoY29uc3Qga2VybmVsX2NhcF90IGEpCnsKIGNvbnN0IGtlcm5lbF9j
YXBfdCBfX2NhcF9mc19zZXQgPSAoKGtlcm5lbF9jYXBfdCl7eyAoKDEgPDwgKCgwKSAmIDMxKSkg
fCAoMSA8PCAoKDI3KSAmIDMxKSkgfCAoMSA8PCAoKDEpICYgMzEpKSB8ICgxIDw8ICgoMikgJiAz
MSkpIHwgKDEgPDwgKCgzKSAmIDMxKSkgfCAoMSA8PCAoKDQpICYgMzEpKSkgfCAoMSA8PCAoKDkp
ICYgMzEpKSwgKCgxIDw8ICgoMzIpICYgMzEpKSkgfSB9KTsKIHJldHVybiBjYXBfZHJvcChhLCBf
X2NhcF9mc19zZXQpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBrZXJuZWxfY2FwX3QgY2FwX3JhaXNlX2ZzX3NldChjb25zdCBrZXJu
ZWxfY2FwX3QgYSwKICAgICAgICAgY29uc3Qga2VybmVsX2NhcF90IHBlcm1pdHRlZCkKewogY29u
c3Qga2VybmVsX2NhcF90IF9fY2FwX2ZzX3NldCA9ICgoa2VybmVsX2NhcF90KXt7ICgoMSA8PCAo
KDApICYgMzEpKSB8ICgxIDw8ICgoMjcpICYgMzEpKSB8ICgxIDw8ICgoMSkgJiAzMSkpIHwgKDEg
PDwgKCgyKSAmIDMxKSkgfCAoMSA8PCAoKDMpICYgMzEpKSB8ICgxIDw8ICgoNCkgJiAzMSkpKSB8
ICgxIDw8ICgoOSkgJiAzMSkpLCAoKDEgPDwgKCgzMikgJiAzMSkpKSB9IH0pOwogcmV0dXJuIGNh
cF9jb21iaW5lKGEsCiAgICAgIGNhcF9pbnRlcnNlY3QocGVybWl0dGVkLCBfX2NhcF9mc19zZXQp
KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkga2VybmVsX2NhcF90IGNhcF9kcm9wX25mc2Rfc2V0KGNvbnN0IGtlcm5lbF9jYXBfdCBh
KQp7CiBjb25zdCBrZXJuZWxfY2FwX3QgX19jYXBfZnNfc2V0ID0gKChrZXJuZWxfY2FwX3Qpe3sg
KCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwgKCgyNykgJiAzMSkpIHwgKDEgPDwgKCgxKSAmIDMx
KSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgxIDw8ICgoMykgJiAzMSkpIHwgKDEgPDwgKCg0KSAm
IDMxKSkpIHwgKDEgPDwgKCgyNCkgJiAzMSkpLCAoKDEgPDwgKCgzMikgJiAzMSkpKSB9IH0pOwog
cmV0dXJuIGNhcF9kcm9wKGEsIF9fY2FwX2ZzX3NldCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGtlcm5lbF9jYXBfdCBjYXBfcmFp
c2VfbmZzZF9zZXQoY29uc3Qga2VybmVsX2NhcF90IGEsCiAgICAgICAgICAgY29uc3Qga2VybmVs
X2NhcF90IHBlcm1pdHRlZCkKewogY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX25mc2Rfc2V0ID0g
KChrZXJuZWxfY2FwX3Qpe3sgKCgxIDw8ICgoMCkgJiAzMSkpIHwgKDEgPDwgKCgyNykgJiAzMSkp
IHwgKDEgPDwgKCgxKSAmIDMxKSkgfCAoMSA8PCAoKDIpICYgMzEpKSB8ICgxIDw8ICgoMykgJiAz
MSkpIHwgKDEgPDwgKCg0KSAmIDMxKSkpIHwgKDEgPDwgKCgyNCkgJiAzMSkpLCAoKDEgPDwgKCgz
MikgJiAzMSkpKSB9IH0pOwogcmV0dXJuIGNhcF9jb21iaW5lKGEsCiAgICAgIGNhcF9pbnRlcnNl
Y3QocGVybWl0dGVkLCBfX2NhcF9uZnNkX3NldCkpOwp9CgoKZXh0ZXJuIGJvb2wgaGFzX2NhcGFi
aWxpdHkoc3RydWN0IHRhc2tfc3RydWN0ICp0LCBpbnQgY2FwKTsKZXh0ZXJuIGJvb2wgaGFzX25z
X2NhcGFiaWxpdHkoc3RydWN0IHRhc2tfc3RydWN0ICp0LAogICAgICAgICBzdHJ1Y3QgdXNlcl9u
YW1lc3BhY2UgKm5zLCBpbnQgY2FwKTsKZXh0ZXJuIGJvb2wgaGFzX2NhcGFiaWxpdHlfbm9hdWRp
dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsIGludCBjYXApOwpleHRlcm4gYm9vbCBoYXNfbnNfY2Fw
YWJpbGl0eV9ub2F1ZGl0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwKICAgICAgICAgIHN0cnVjdCB1
c2VyX25hbWVzcGFjZSAqbnMsIGludCBjYXApOwpleHRlcm4gYm9vbCBjYXBhYmxlKGludCBjYXAp
OwpleHRlcm4gYm9vbCBuc19jYXBhYmxlKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIGludCBj
YXApOwpleHRlcm4gYm9vbCBuc19jYXBhYmxlX25vYXVkaXQoc3RydWN0IHVzZXJfbmFtZXNwYWNl
ICpucywgaW50IGNhcCk7CmV4dGVybiBib29sIG5zX2NhcGFibGVfc2V0aWQoc3RydWN0IHVzZXJf
bmFtZXNwYWNlICpucywgaW50IGNhcCk7CiMgMjUwICIuL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0
eS5oIgpleHRlcm4gYm9vbCBwcml2aWxlZ2VkX3dydF9pbm9kZV91aWRnaWQoc3RydWN0IHVzZXJf
bmFtZXNwYWNlICpucywgY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSk7CmV4dGVybiBib29sIGNh
cGFibGVfd3J0X2lub2RlX3VpZGdpZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgY2Fw
KTsKZXh0ZXJuIGJvb2wgZmlsZV9uc19jYXBhYmxlKGNvbnN0IHN0cnVjdCBmaWxlICpmaWxlLCBz
dHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5zLCBpbnQgY2FwKTsKZXh0ZXJuIGJvb2wgcHRyYWNlcl9j
YXBhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm5z
KTsKCgpleHRlcm4gaW50IGdldF92ZnNfY2Fwc19mcm9tX2Rpc2soY29uc3Qgc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCBzdHJ1Y3QgY3B1X3Zmc19jYXBfZGF0YSAqY3B1X2NhcHMpOwoKZXh0ZXJuIGlu
dCBjYXBfY29udmVydF9uc2NhcChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHZvaWQgKippdmFsdWUs
IHNpemVfdCBzaXplKTsKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIuL2luY2x1
ZGUvbGludXgvc2VtYXBob3JlLmgiIDEKIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3NlbWFwaG9yZS5o
IgpzdHJ1Y3Qgc2VtYXBob3JlIHsKIHJhd19zcGlubG9ja190IGxvY2s7CiB1bnNpZ25lZCBpbnQg
Y291bnQ7CiBzdHJ1Y3QgbGlzdF9oZWFkIHdhaXRfbGlzdDsKfTsKIyAzMSAiLi9pbmNsdWRlL2xp
bnV4L3NlbWFwaG9yZS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNlbWFfaW5pdChzdHJ1Y3Qgc2VtYXBob3JlICpzZW0sIGlu
dCB2YWwpCnsKIHN0YXRpYyBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgX19rZXk7CiAqc2VtID0gKHN0
cnVjdCBzZW1hcGhvcmUpIHsgLmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpIHsgLnJhd19sb2NrID0g
eyB7IC52YWwgPSB7ICgwKSB9IH0gfSwgfSwgLmNvdW50ID0gdmFsLCAud2FpdF9saXN0ID0geyAm
KCgqc2VtKS53YWl0X2xpc3QpLCAmKCgqc2VtKS53YWl0X2xpc3QpIH0sIH07CiBkbyB7ICh2b2lk
KSgic2VtYXBob3JlLT5sb2NrIik7ICh2b2lkKSgmX19rZXkpOyB9IHdoaWxlICgwKTsKfQoKZXh0
ZXJuIHZvaWQgZG93bihzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwpleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkb3duX2ludGVycnVwdGlibGUoc3RydWN0
IHNlbWFwaG9yZSAqc2VtKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2Vk
X3Jlc3VsdF9fKSkgZG93bl9raWxsYWJsZShzdHJ1Y3Qgc2VtYXBob3JlICpzZW0pOwpleHRlcm4g
aW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkb3duX3RyeWxvY2so
c3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgZG93bl90aW1lb3V0KHN0cnVjdCBzZW1hcGhvcmUgKnNlbSwgbG9u
ZyBqaWZmaWVzKTsKZXh0ZXJuIHZvaWQgdXAoc3RydWN0IHNlbWFwaG9yZSAqc2VtKTsKIyAyNiAi
Li9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvZmNudGwuaCIgMQoK
CgoKCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIgMQoKCgoKIyAxICIuL2FyY2gv
eDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2ZjbnRsLmgiIDEKIyAxICIuL2luY2x1ZGUv
dWFwaS9hc20tZ2VuZXJpYy9mY250bC5oIiAxCiMgMTU2ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2Vu
ZXJpYy9mY250bC5oIgpzdHJ1Y3QgZl9vd25lcl9leCB7CiBpbnQgdHlwZTsKIF9fa2VybmVsX3Bp
ZF90IHBpZDsKfTsKIyAxOTYgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ZjbnRsLmgiCnN0
cnVjdCBmbG9jayB7CiBzaG9ydCBsX3R5cGU7CiBzaG9ydCBsX3doZW5jZTsKIF9fa2VybmVsX29m
Zl90IGxfc3RhcnQ7CiBfX2tlcm5lbF9vZmZfdCBsX2xlbjsKIF9fa2VybmVsX3BpZF90IGxfcGlk
OwoKfTsKCgoKCgoKCnN0cnVjdCBmbG9jazY0IHsKIHNob3J0IGxfdHlwZTsKIHNob3J0IGxfd2hl
bmNlOwogX19rZXJuZWxfbG9mZl90IGxfc3RhcnQ7CiBfX2tlcm5lbF9sb2ZmX3QgbF9sZW47CiBf
X2tlcm5lbF9waWRfdCBsX3BpZDsKCn07CiMgMiAiLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRl
ZC91YXBpL2FzbS9mY250bC5oIiAyCiMgNiAiLi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaCIg
MgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L29wZW5hdDIuaCIgMQojIDE5ICIuL2luY2x1ZGUv
dWFwaS9saW51eC9vcGVuYXQyLmgiCnN0cnVjdCBvcGVuX2hvdyB7CiBfX3U2NCBmbGFnczsKIF9f
dTY0IG1vZGU7CiBfX3U2NCByZXNvbHZlOwp9OwojIDcgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2Zj
bnRsLmgiIDIKIyA3ICIuL2luY2x1ZGUvbGludXgvZmNudGwuaCIgMgojIDI3ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIiAxCiMgMTcg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L2ZpZW1hcC5oIgpzdHJ1Y3QgZmllbWFwX2V4dGVudCB7CiBf
X3U2NCBmZV9sb2dpY2FsOwoKIF9fdTY0IGZlX3BoeXNpY2FsOwoKIF9fdTY0IGZlX2xlbmd0aDsK
IF9fdTY0IGZlX3Jlc2VydmVkNjRbMl07CiBfX3UzMiBmZV9mbGFnczsKIF9fdTMyIGZlX3Jlc2Vy
dmVkWzNdOwp9OwoKc3RydWN0IGZpZW1hcCB7CiBfX3U2NCBmbV9zdGFydDsKCiBfX3U2NCBmbV9s
ZW5ndGg7CgogX191MzIgZm1fZmxhZ3M7CiBfX3UzMiBmbV9tYXBwZWRfZXh0ZW50czsKIF9fdTMy
IGZtX2V4dGVudF9jb3VudDsKIF9fdTMyIGZtX3Jlc2VydmVkOwogc3RydWN0IGZpZW1hcF9leHRl
bnQgZm1fZXh0ZW50c1swXTsKfTsKIyAyOCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoKIyAx
ICIuL2luY2x1ZGUvbGludXgvbWlncmF0ZV9tb2RlLmgiIDEKIyAxNSAiLi9pbmNsdWRlL2xpbnV4
L21pZ3JhdGVfbW9kZS5oIgplbnVtIG1pZ3JhdGVfbW9kZSB7CiBNSUdSQVRFX0FTWU5DLAogTUlH
UkFURV9TWU5DX0xJR0hULAogTUlHUkFURV9TWU5DLAogTUlHUkFURV9TWU5DX05PX0NPUFksCn07
CiMgMzIgIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcGVy
Y3B1LXJ3c2VtLmgiIDEKCgoKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3JjdXdhaXQuaCIgMQoj
IDE1ICIuL2luY2x1ZGUvbGludXgvcmN1d2FpdC5oIgpzdHJ1Y3QgcmN1d2FpdCB7CiBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRhc2s7Cn07CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJjdXdhaXRfaW5pdChzdHJ1Y3QgcmN1d2Fp
dCAqdykKewogdy0+dGFzayA9ICgodm9pZCAqKTApOwp9CgpleHRlcm4gdm9pZCByY3V3YWl0X3dh
a2VfdXAoc3RydWN0IHJjdXdhaXQgKncpOwojIDkgIi4vaW5jbHVkZS9saW51eC9wZXJjcHUtcndz
ZW0uaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9yY3Vfc3luYy5oIiAxCiMgMTcgIi4vaW5jbHVk
ZS9saW51eC9yY3Vfc3luYy5oIgpzdHJ1Y3QgcmN1X3N5bmMgewogaW50IGdwX3N0YXRlOwogaW50
IGdwX2NvdW50Owogd2FpdF9xdWV1ZV9oZWFkX3QgZ3Bfd2FpdDsKCiBzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCBjYl9oZWFkOwp9OwojIDMyICIuL2luY2x1ZGUvbGludXgvcmN1X3N5bmMuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBy
Y3Vfc3luY19pc19pZGxlKHN0cnVjdCByY3Vfc3luYyAqcnNwKQp7CiBkbyB7IH0gd2hpbGUgKDAp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKIHJldHVybiAhKHsg
dW5pb24geyB0eXBlb2YocnNwLT5ncF9zdGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsg
aWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihyc3AtPmdwX3N0YXRlKSwgX191Ll9fYywgc2l6ZW9m
KHJzcC0+Z3Bfc3RhdGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJihyc3AtPmdw
X3N0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHJzcC0+Z3Bfc3RhdGUpKTsgZG8geyB9IHdoaWxlICgw
KTsgX191Ll9fdmFsOyB9KTsKfQoKZXh0ZXJuIHZvaWQgcmN1X3N5bmNfaW5pdChzdHJ1Y3QgcmN1
X3N5bmMgKik7CmV4dGVybiB2b2lkIHJjdV9zeW5jX2VudGVyX3N0YXJ0KHN0cnVjdCByY3Vfc3lu
YyAqKTsKZXh0ZXJuIHZvaWQgcmN1X3N5bmNfZW50ZXIoc3RydWN0IHJjdV9zeW5jICopOwpleHRl
cm4gdm9pZCByY3Vfc3luY19leGl0KHN0cnVjdCByY3Vfc3luYyAqKTsKZXh0ZXJuIHZvaWQgcmN1
X3N5bmNfZHRvcihzdHJ1Y3QgcmN1X3N5bmMgKik7CiMgMTAgIi4vaW5jbHVkZS9saW51eC9wZXJj
cHUtcndzZW0uaCIgMgoKCnN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlIHsKIHN0cnVjdCByY3Vf
c3luYyByc3M7CiB1bnNpZ25lZCBpbnQgKnJlYWRfY291bnQ7CiBzdHJ1Y3Qgcndfc2VtYXBob3Jl
IHJ3X3NlbTsKIHN0cnVjdCByY3V3YWl0IHdyaXRlcjsKIGludCByZWFkZXJzX2Jsb2NrOwp9Owoj
IDMzICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJ3c2VtLmgiCmV4dGVybiBpbnQgX19wZXJjcHVf
ZG93bl9yZWFkKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICosIGludCk7CmV4dGVybiB2b2lk
IF9fcGVyY3B1X3VwX3JlYWQoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBl
cmNwdV9kb3duX3JlYWQoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSkKewogZG8geyBk
byB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKCiBkbyB7IH0gd2hpbGUgKDApOwoKIF9fYXNt
X18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7CiMgNTEgIi4vaW5jbHVkZS9saW51eC9w
ZXJjcHUtcndzZW0uaCIKICh7IF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjaygiYWRkIik7IGRvIHsg
ZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKCpzZW0tPnJlYWRfY291
bnQpKSArIDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBz
d2l0Y2goc2l6ZW9mKCpzZW0tPnJlYWRfY291bnQpKSB7IGNhc2UgMTogZG8geyB0eXBlZGVmIHR5
cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChf
X2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50
KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2
b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNh
c2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYg
KHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2Nv
dW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRs
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAi
cmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFv
X1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGls
ZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3Vu
dCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgx
KSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBh
b19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0
Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09
IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWki
ICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAo
ImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1Rf
XykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAo
cGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsg
YnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDog
ZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGlu
dCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEp
ID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9f
dG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVh
ZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJl
YWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2Ug
NDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAo
ImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5y
ZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBh
b19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20g
KCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50
KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgODogZG8geyB0eXBlZGVmIHR5cGVvZigo
KnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0
aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6
IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBh
b190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTog
aWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFk
X2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19J
RF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJh
ZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkg
OiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEp
IGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgo
cGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXyko
MSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7
YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdo
aWxlICgwKTsgfSk7CiBpZiAoX19idWlsdGluX2V4cGVjdCghISghcmN1X3N5bmNfaXNfaWRsZSgm
c2VtLT5yc3MpKSwgMCkpCiAgX19wZXJjcHVfZG93bl9yZWFkKHNlbSwgZmFsc2UpOwoKCgoKIF9f
YXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBwZXJjcHVfZG93bl9y
ZWFkX3RyeWxvY2soc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSkKewogaW50IHJldCA9
IDE7CgogX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKCgoKICh7IF9fdGhp
c19jcHVfcHJlZW1wdF9jaGVjaygiYWRkIik7IGRvIHsgZG8geyBjb25zdCB2b2lkICpfX3ZwcF92
ZXJpZnkgPSAodHlwZW9mKCgmKCpzZW0tPnJlYWRfY291bnQpKSArIDApKSgodm9pZCAqKTApOyAo
dm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2goc2l6ZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSB7IGNhc2UgMTogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkp
IHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAm
JiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19U
X18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2gg
KHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEp
IGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAi
IiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgo
cGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXyko
MSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJl
YWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0g
LTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIg
KCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgMjogZG8g
eyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBw
YW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09
IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1w
X18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9j
b3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7
IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEp
IGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3Vu
dCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgq
c2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDog
aWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFk
X2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19J
RF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJh
ZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkg
OiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXpl
KCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGNhc2UgNDogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNl
bS0+cmVhZF9jb3VudCkpIHBhb19UX187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5f
Y29uc3RhbnRfcCgxKSAmJiAoKDEpID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7
IGlmICgwKSB7IHBhb19UX18gcGFvX3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190
bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYg
KHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2Ig
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2Nv
dW50KSkgOiAicWkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSAoImluY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAi
cmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFz
bSAoImluY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAi
MCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFv
X1RfXykoMSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3Eg
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBp
ZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIg
IiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkp
KTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJl
YWs7IGNhc2UgODogZG8geyB0eXBlZGVmIHR5cGVvZigoKnNlbS0+cmVhZF9jb3VudCkpIHBhb19U
X187IGNvbnN0IGludCBwYW9fSURfXyA9IChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoKDEp
ID09IDEgfHwgKDEpID09IC0xKSkgPyAoaW50KSgxKSA6IDA7IGlmICgwKSB7IHBhb19UX18gcGFv
X3RtcF9fOyBwYW9fdG1wX18gPSAoMSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVv
ZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAo
ImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1Rf
XykoMSkpKTsgYnJlYWs7IGNhc2UgMjogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3cgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAo
cGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3cgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGR3ICUxLCAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsg
YnJlYWs7IGNhc2UgNDogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2wgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18g
PT0gLTEpIGFzbSAoImRlY2wgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRsICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIr
bSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmkiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGNh
c2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFz
bSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkp
KTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoMSkpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gfSB3aGlsZSAoMCk7YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfY2FsbF9wYXJhbWV0ZXIoKTticmVhazsgfSB9IHdoaWxlICgwKTsgfSk7CiBpZiAoX19idWls
dGluX2V4cGVjdCghISghcmN1X3N5bmNfaXNfaWRsZSgmc2VtLT5yc3MpKSwgMCkpCiAgcmV0ID0g
X19wZXJjcHVfZG93bl9yZWFkKHNlbSwgdHJ1ZSk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjog
OiA6Im1lbW9yeSIpOwoKCgoKCiBpZiAocmV0KQogIGRvIHsgfSB3aGlsZSAoMCk7CgogcmV0dXJu
IHJldDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBwZXJjcHVfdXBfcmVhZChzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFwaG9yZSAq
c2VtKQp7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoKCgogaWYgKF9f
YnVpbHRpbl9leHBlY3QoISEocmN1X3N5bmNfaXNfaWRsZSgmc2VtLT5yc3MpKSwgMSkpCiAgKHsg
X190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKCJhZGQiKTsgZG8geyBkbyB7IGNvbnN0IHZvaWQgKl9f
dnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoKnNlbS0+cmVhZF9jb3VudCkpICsgMCkpKCh2b2lkICop
MCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoKnNlbS0+
cmVhZF9jb3VudCkpIHsgY2FzZSAxOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqc2VtLT5yZWFkX2Nv
dW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9w
KC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgJiYgKCgtKHR5cGVvZigqc2VtLT5yZWFk
X2NvdW50KSkoMSkpID09IDEgfHwgKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0g
LTEpKSA/IChpbnQpKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgOiAwOyBpZiAoMCkg
eyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0odHlwZW9mKCpzZW0tPnJlYWRfY291
bnQpKSgxKSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9j
b3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lE
X18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+
cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNl
bS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkg
YXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50
KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjdyAiIiUlIiJncyIiOiIgIiUi
ICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHcgJTEsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyaSIgKChw
YW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDQ6
IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIitt
IiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJk
ZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVs
c2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgx
KSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIi
Z3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFv
X0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNl
bS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIw
IiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2Yo
KnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3Np
emUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSAyOiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgq
c2VtLT5yZWFkX2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9fID0gKF9fYnVpbHRp
bl9jb25zdGFudF9wKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgJiYgKCgtKHR5cGVv
Zigqc2VtLT5yZWFkX2NvdW50KSkoMSkpID09IDEgfHwgKC0odHlwZW9mKCpzZW0tPnJlYWRfY291
bnQpKSgxKSkgPT0gLTEpKSA/IChpbnQpKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkg
OiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0gKC0odHlwZW9mKCpz
ZW0tPnJlYWRfY291bnQpKSgxKSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigo
KnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09IDEpIGFzbSAoImlu
Y2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAi
K20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUxLCAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWkiICgocGFvX1RfXyko
LSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2FzZSAyOiBpZiAocGFv
X0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2Vt
LT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNtICgiZGVjdyAiIiUl
IiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAo
ImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSA6ICJyaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpKSk7IGJy
ZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIiJSUiImdzIiI6IiAi
JSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYgKHBhb19JRF9fID09
IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRf
Y291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlwZW9mKCpzZW0tPnJl
YWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9fID09IDEpIGFzbSAo
ImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsg
ZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIg
OiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRxICUxLCAiIiUlIiJn
cyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicmUiICgocGFvX1Rf
XykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgZGVmYXVsdDogX19i
YWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA0OiBkbyB7IHR5cGVk
ZWYgdHlwZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkgcGFvX1RfXzsgY29uc3QgaW50IHBhb19JRF9f
ID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkg
JiYgKCgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpID09IDEgfHwgKC0odHlwZW9mKCpz
ZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gLTEpKSA/IChpbnQpKC0odHlwZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSgxKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsgcGFvX3RtcF9fID0g
KC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSk7ICh2b2lkKXBhb190bXBfXzsgfSBzd2l0
Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYgKHBhb19JRF9fID09
IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9j
b3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2IgIiIlJSIiZ3MiIjoi
ICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRiICUx
LCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAicWki
ICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsgY2Fz
ZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6
ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURfXyA9PSAtMSkgYXNt
ICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkp
OyBlbHNlIGFzbSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0t
PnJlYWRfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50
KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBhc20gKCJpbmNsICIi
JSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgaWYg
KHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAo
KCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIlJSIiZ3MiIjoiICIl
IiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBhb19UX18pKC0odHlw
ZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgODogaWYgKHBhb19JRF9f
ID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVh
ZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY3EgIiIlJSIiZ3Mi
IjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBhc20gKCJhZGRx
ICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkgOiAi
cmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTticmVhazsgY2FzZSA4
OiBkbyB7IHR5cGVkZWYgdHlwZW9mKCgqc2VtLT5yZWFkX2NvdW50KSkgcGFvX1RfXzsgY29uc3Qg
aW50IHBhb19JRF9fID0gKF9fYnVpbHRpbl9jb25zdGFudF9wKC0odHlwZW9mKCpzZW0tPnJlYWRf
Y291bnQpKSgxKSkgJiYgKCgtKHR5cGVvZigqc2VtLT5yZWFkX2NvdW50KSkoMSkpID09IDEgfHwg
KC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkgPT0gLTEpKSA/IChpbnQpKC0odHlwZW9m
KCpzZW0tPnJlYWRfY291bnQpKSgxKSkgOiAwOyBpZiAoMCkgeyBwYW9fVF9fIHBhb190bXBfXzsg
cGFvX3RtcF9fID0gKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSk7ICh2b2lkKXBhb190
bXBfXzsgfSBzd2l0Y2ggKHNpemVvZigoKnNlbS0+cmVhZF9jb3VudCkpKSB7IGNhc2UgMTogaWYg
KHBhb19JRF9fID09IDEpIGFzbSAoImluY2IgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgo
KnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRlY2Ig
IiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBh
c20gKCJhZGRiICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2Nv
dW50KSkgOiAicWkiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEpKSkp
OyBicmVhazsgY2FzZSAyOiBpZiAocGFvX0lEX18gPT0gMSkgYXNtICgiaW5jdyAiIiUlIiJncyIi
OiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFkX2NvdW50KSkpOyBlbHNlIGlmIChwYW9fSURf
XyA9PSAtMSkgYXNtICgiZGVjdyAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5y
ZWFkX2NvdW50KSkpOyBlbHNlIGFzbSAoImFkZHcgJTEsICIiJSUiImdzIiI6IiAiJSIgIjAiIDog
IittIiAoKCpzZW0tPnJlYWRfY291bnQpKSA6ICJyaSIgKChwYW9fVF9fKSgtKHR5cGVvZigqc2Vt
LT5yZWFkX2NvdW50KSkoMSkpKSk7IGJyZWFrOyBjYXNlIDQ6IGlmIChwYW9fSURfXyA9PSAxKSBh
c20gKCJpbmNsICIiJSUiImdzIiI6IiAiJSIgIjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQp
KSk7IGVsc2UgaWYgKHBhb19JRF9fID09IC0xKSBhc20gKCJkZWNsICIiJSUiImdzIiI6IiAiJSIg
IjAiIDogIittIiAoKCpzZW0tPnJlYWRfY291bnQpKSk7IGVsc2UgYXNtICgiYWRkbCAlMSwgIiIl
JSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpIDogInJpIiAoKHBh
b19UX18pKC0odHlwZW9mKCpzZW0tPnJlYWRfY291bnQpKSgxKSkpKTsgYnJlYWs7IGNhc2UgODog
aWYgKHBhb19JRF9fID09IDEpIGFzbSAoImluY3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20i
ICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxzZSBpZiAocGFvX0lEX18gPT0gLTEpIGFzbSAoImRl
Y3EgIiIlJSIiZ3MiIjoiICIlIiAiMCIgOiAiK20iICgoKnNlbS0+cmVhZF9jb3VudCkpKTsgZWxz
ZSBhc20gKCJhZGRxICUxLCAiIiUlIiJncyIiOiIgIiUiICIwIiA6ICIrbSIgKCgqc2VtLT5yZWFk
X2NvdW50KSkgOiAicmUiICgocGFvX1RfXykoLSh0eXBlb2YoKnNlbS0+cmVhZF9jb3VudCkpKDEp
KSkpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSB9IHdoaWxlICgwKTti
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpO2JyZWFrOyB9IH0gd2hp
bGUgKDApOyB9KTsKIGVsc2UKICBfX3BlcmNwdV91cF9yZWFkKHNlbSk7CiBfX2FzbV9fIF9fdm9s
YXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwoKIGRvIHsgfSB3aGlsZSAoMCk7Cn0KCmV4dGVybiB2
b2lkIHBlcmNwdV9kb3duX3dyaXRlKHN0cnVjdCBwZXJjcHVfcndfc2VtYXBob3JlICopOwpleHRl
cm4gdm9pZCBwZXJjcHVfdXBfd3JpdGUoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7Cgpl
eHRlcm4gaW50IF9fcGVyY3B1X2luaXRfcndzZW0oc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUg
KiwKICAgIGNvbnN0IGNoYXIgKiwgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICopOwoKZXh0ZXJuIHZv
aWQgcGVyY3B1X2ZyZWVfcndzZW0oc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKik7CiMgMTE4
ICIuL2luY2x1ZGUvbGludXgvcGVyY3B1LXJ3c2VtLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3J3c2VtX3JlbGVh
c2Uoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSwKICAgICBib29sIHJlYWQsIHVuc2ln
bmVkIGxvbmcgaXApCnsKIGRvIHsgfSB3aGlsZSAoMCk7CgogaWYgKCFyZWFkKQogIGF0b21pY19s
b25nX3NldCgmc2VtLT5yd19zZW0ub3duZXIsICgtMkwpKTsKCn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X3J3c2Vt
X2FjcXVpcmUoc3RydWN0IHBlcmNwdV9yd19zZW1hcGhvcmUgKnNlbSwKICAgICBib29sIHJlYWQs
IHVuc2lnbmVkIGxvbmcgaXApCnsKIGRvIHsgfSB3aGlsZSAoMCk7CgogaWYgKCFyZWFkKQogIGF0
b21pY19sb25nX3NldCgmc2VtLT5yd19zZW0ub3duZXIsIChsb25nKWdldF9jdXJyZW50KCkpOwoK
fQojIDM1ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgoKIyAxICIuL2luY2x1ZGUvbGludXgvZGVs
YXllZF9jYWxsLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xpbnV4L2RlbGF5ZWRfY2FsbC5oIgpzdHJ1
Y3QgZGVsYXllZF9jYWxsIHsKIHZvaWQgKCpmbikodm9pZCAqKTsKIHZvaWQgKmFyZzsKfTsKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHZvaWQgc2V0X2RlbGF5ZWRfY2FsbChzdHJ1Y3QgZGVsYXllZF9jYWxsICpjYWxsLAogIHZvaWQg
KCpmbikodm9pZCAqKSwgdm9pZCAqYXJnKQp7CiBjYWxsLT5mbiA9IGZuOwogY2FsbC0+YXJnID0g
YXJnOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRvX2RlbGF5ZWRfY2FsbChzdHJ1Y3QgZGVsYXllZF9jYWxsICpjYWxsKQp7
CiBpZiAoY2FsbC0+Zm4pCiAgY2FsbC0+Zm4oY2FsbC0+YXJnKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjbGVhcl9kZWxh
eWVkX2NhbGwoc3RydWN0IGRlbGF5ZWRfY2FsbCAqY2FsbCkKewogY2FsbC0+Zm4gPSAoKHZvaWQg
KikwKTsKfQojIDM3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51
eC91dWlkLmgiIDEKIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3V1aWQuaCIKIyAxICIuL2luY2x1ZGUv
dWFwaS9saW51eC91dWlkLmgiIDEKIyAyMyAiLi9pbmNsdWRlL3VhcGkvbGludXgvdXVpZC5oIgp0
eXBlZGVmIHN0cnVjdCB7CiBfX3U4IGJbMTZdOwp9IGd1aWRfdDsKIyAzNSAiLi9pbmNsdWRlL3Vh
cGkvbGludXgvdXVpZC5oIgp0eXBlZGVmIGd1aWRfdCB1dWlkX2xlOwojIDEyICIuL2luY2x1ZGUv
bGludXgvdXVpZC5oIiAyCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiBfX3U4IGJbMTZdOwp9IHV1aWRf
dDsKIyAzMyAiLi9pbmNsdWRlL2xpbnV4L3V1aWQuaCIKZXh0ZXJuIGNvbnN0IGd1aWRfdCBndWlk
X251bGw7CmV4dGVybiBjb25zdCB1dWlkX3QgdXVpZF9udWxsOwoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBndWlkX2VxdWFsKGNv
bnN0IGd1aWRfdCAqdTEsIGNvbnN0IGd1aWRfdCAqdTIpCnsKIHJldHVybiBtZW1jbXAodTEsIHUy
LCBzaXplb2YoZ3VpZF90KSkgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBndWlkX2NvcHkoZ3VpZF90ICpkc3QsIGNv
bnN0IGd1aWRfdCAqc3JjKQp7CiBtZW1jcHkoZHN0LCBzcmMsIHNpemVvZihndWlkX3QpKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBndWlkX2lzX251bGwoY29uc3QgZ3VpZF90ICpndWlkKQp7CiByZXR1cm4gZ3VpZF9lcXVh
bChndWlkLCAmZ3VpZF9udWxsKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1dWlkX2VxdWFsKGNvbnN0IHV1aWRfdCAqdTEs
IGNvbnN0IHV1aWRfdCAqdTIpCnsKIHJldHVybiBtZW1jbXAodTEsIHUyLCBzaXplb2YodXVpZF90
KSkgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB1dWlkX2NvcHkodXVpZF90ICpkc3QsIGNvbnN0IHV1aWRfdCAqc3Jj
KQp7CiBtZW1jcHkoZHN0LCBzcmMsIHNpemVvZih1dWlkX3QpKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB1dWlkX2lzX251
bGwoY29uc3QgdXVpZF90ICp1dWlkKQp7CiByZXR1cm4gdXVpZF9lcXVhbCh1dWlkLCAmdXVpZF9u
dWxsKTsKfQoKdm9pZCBnZW5lcmF0ZV9yYW5kb21fdXVpZCh1bnNpZ25lZCBjaGFyIHV1aWRbMTZd
KTsKCmV4dGVybiB2b2lkIGd1aWRfZ2VuKGd1aWRfdCAqdSk7CmV4dGVybiB2b2lkIHV1aWRfZ2Vu
KHV1aWRfdCAqdSk7Cgpib29sIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSB1dWlkX2lzX3ZhbGlkKGNvbnN0IGNoYXIgKnV1aWQpOwoKZXh0ZXJuIGNvbnN0IHU4IGd1aWRf
aW5kZXhbMTZdOwpleHRlcm4gY29uc3QgdTggdXVpZF9pbmRleFsxNl07CgppbnQgZ3VpZF9wYXJz
ZShjb25zdCBjaGFyICp1dWlkLCBndWlkX3QgKnUpOwppbnQgdXVpZF9wYXJzZShjb25zdCBjaGFy
ICp1dWlkLCB1dWlkX3QgKnUpOwoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB1dWlkX2xlX2NtcChjb25zdCBndWlkX3QgdTEs
IGNvbnN0IGd1aWRfdCB1MikKewogcmV0dXJuIG1lbWNtcCgmdTEsICZ1Miwgc2l6ZW9mKGd1aWRf
dCkpOwp9CiMgMzggIi4vaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4
L2VycnNlcS5oIiAxCgoKCgoKCgp0eXBlZGVmIHUzMiBlcnJzZXFfdDsKCmVycnNlcV90IGVycnNl
cV9zZXQoZXJyc2VxX3QgKmVzZXEsIGludCBlcnIpOwplcnJzZXFfdCBlcnJzZXFfc2FtcGxlKGVy
cnNlcV90ICplc2VxKTsKaW50IGVycnNlcV9jaGVjayhlcnJzZXFfdCAqZXNlcSwgZXJyc2VxX3Qg
c2luY2UpOwppbnQgZXJyc2VxX2NoZWNrX2FuZF9hZHZhbmNlKGVycnNlcV90ICplc2VxLCBlcnJz
ZXFfdCAqc2luY2UpOwojIDM5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVk
ZS9saW51eC9pb3ByaW8uaCIgMQoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMQoj
IDEwICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9z
Y2hlZC5oIiAxCiMgODkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NjaGVkLmgiCnN0cnVjdCBjbG9u
ZV9hcmdzIHsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBmbGFnczsKIF9fdTY0
IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBwaWRmZDsKIF9fdTY0IF9fYXR0cmlidXRlX18o
KGFsaWduZWQoOCkpKSBjaGlsZF90aWQ7CiBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgp
KSkgcGFyZW50X3RpZDsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBleGl0X3Np
Z25hbDsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBzdGFjazsKIF9fdTY0IF9f
YXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBzdGFja19zaXplOwogX191NjQgX19hdHRyaWJ1dGVf
XygoYWxpZ25lZCg4KSkpIHRsczsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBz
ZXRfdGlkOwogX191NjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpIHNldF90aWRfc2l6ZTsK
fTsKIyAxMSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCgoKCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L3NlbS5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAxCgoKCgoj
IDEgIi4vaW5jbHVkZS9saW51eC9pcGMuaCIgMQoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9y
aGFzaHRhYmxlLXR5cGVzLmgiIDEKIyAxNyAiLi9pbmNsdWRlL2xpbnV4L3JoYXNodGFibGUtdHlw
ZXMuaCIKc3RydWN0IHJoYXNoX2hlYWQgewogc3RydWN0IHJoYXNoX2hlYWQgKm5leHQ7Cn07Cgpz
dHJ1Y3QgcmhsaXN0X2hlYWQgewogc3RydWN0IHJoYXNoX2hlYWQgcmhlYWQ7CiBzdHJ1Y3Qgcmhs
aXN0X2hlYWQgKm5leHQ7Cn07CgpzdHJ1Y3QgYnVja2V0X3RhYmxlOwoKCgoKCgpzdHJ1Y3Qgcmhh
c2h0YWJsZV9jb21wYXJlX2FyZyB7CiBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CiBjb25zdCB2b2lk
ICprZXk7Cn07Cgp0eXBlZGVmIHUzMiAoKnJodF9oYXNoZm5fdCkoY29uc3Qgdm9pZCAqZGF0YSwg
dTMyIGxlbiwgdTMyIHNlZWQpOwp0eXBlZGVmIHUzMiAoKnJodF9vYmpfaGFzaGZuX3QpKGNvbnN0
IHZvaWQgKmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVkKTsKdHlwZWRlZiBpbnQgKCpyaHRfb2JqX2Nt
cGZuX3QpKHN0cnVjdCByaGFzaHRhYmxlX2NvbXBhcmVfYXJnICphcmcsCiAgICAgICAgICBjb25z
dCB2b2lkICpvYmopOwojIDU2ICIuL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS10eXBlcy5oIgpz
dHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgewogdTE2IG5lbGVtX2hpbnQ7CiB1MTYga2V5X2xlbjsK
IHUxNiBrZXlfb2Zmc2V0OwogdTE2IGhlYWRfb2Zmc2V0OwogdW5zaWduZWQgaW50IG1heF9zaXpl
OwogdTE2IG1pbl9zaXplOwogYm9vbCBhdXRvbWF0aWNfc2hyaW5raW5nOwogcmh0X2hhc2hmbl90
IGhhc2hmbjsKIHJodF9vYmpfaGFzaGZuX3Qgb2JqX2hhc2hmbjsKIHJodF9vYmpfY21wZm5fdCBv
YmpfY21wZm47Cn07CiMgODEgIi4vaW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLXR5cGVzLmgiCnN0
cnVjdCByaGFzaHRhYmxlIHsKIHN0cnVjdCBidWNrZXRfdGFibGUgKnRibDsKIHVuc2lnbmVkIGlu
dCBrZXlfbGVuOwogdW5zaWduZWQgaW50IG1heF9lbGVtczsKIHN0cnVjdCByaGFzaHRhYmxlX3Bh
cmFtcyBwOwogYm9vbCByaGxpc3Q7CiBzdHJ1Y3Qgd29ya19zdHJ1Y3QgcnVuX3dvcms7CiBzdHJ1
Y3QgbXV0ZXggbXV0ZXg7CiBzcGlubG9ja190IGxvY2s7CiBhdG9taWNfdCBuZWxlbXM7Cn07CgoK
CgoKc3RydWN0IHJobHRhYmxlIHsKIHN0cnVjdCByaGFzaHRhYmxlIGh0Owp9OwoKCgoKCgpzdHJ1
Y3Qgcmhhc2h0YWJsZV93YWxrZXIgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0Owogc3RydWN0IGJ1
Y2tldF90YWJsZSAqdGJsOwp9OwojIDEyMCAiLi9pbmNsdWRlL2xpbnV4L3JoYXNodGFibGUtdHlw
ZXMuaCIKc3RydWN0IHJoYXNodGFibGVfaXRlciB7CiBzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CiBz
dHJ1Y3Qgcmhhc2hfaGVhZCAqcDsKIHN0cnVjdCByaGxpc3RfaGVhZCAqbGlzdDsKIHN0cnVjdCBy
aGFzaHRhYmxlX3dhbGtlciB3YWxrZXI7CiB1bnNpZ25lZCBpbnQgc2xvdDsKIHVuc2lnbmVkIGlu
dCBza2lwOwogYm9vbCBlbmRfb2ZfdGFibGU7Cn07CgppbnQgcmhhc2h0YWJsZV9pbml0KHN0cnVj
dCByaGFzaHRhYmxlICpodCwKICAgICAgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zICpw
YXJhbXMpOwppbnQgcmhsdGFibGVfaW5pdChzdHJ1Y3QgcmhsdGFibGUgKmhsdCwKICAgIGNvbnN0
IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyAqcGFyYW1zKTsKIyA4ICIuL2luY2x1ZGUvbGludXgv
aXBjLmgiIDIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9pcGMuaCIgMQojIDEwICIuL2luY2x1
ZGUvdWFwaS9saW51eC9pcGMuaCIKc3RydWN0IGlwY19wZXJtCnsKIF9fa2VybmVsX2tleV90IGtl
eTsKIF9fa2VybmVsX3VpZF90IHVpZDsKIF9fa2VybmVsX2dpZF90IGdpZDsKIF9fa2VybmVsX3Vp
ZF90IGN1aWQ7CiBfX2tlcm5lbF9naWRfdCBjZ2lkOwogX19rZXJuZWxfbW9kZV90IG1vZGU7CiB1
bnNpZ25lZCBzaG9ydCBzZXE7Cn07CgoKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVk
L3VhcGkvYXNtL2lwY2J1Zi5oIiAxCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaXBj
YnVmLmgiIDEKIyAyMiAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaXBjYnVmLmgiCnN0cnVj
dCBpcGM2NF9wZXJtIHsKIF9fa2VybmVsX2tleV90IGtleTsKIF9fa2VybmVsX3VpZDMyX3QgdWlk
OwogX19rZXJuZWxfZ2lkMzJfdCBnaWQ7CiBfX2tlcm5lbF91aWQzMl90IGN1aWQ7CiBfX2tlcm5l
bF9naWQzMl90IGNnaWQ7CiBfX2tlcm5lbF9tb2RlX3QgbW9kZTsKCiB1bnNpZ25lZCBjaGFyIF9f
cGFkMVs0IC0gc2l6ZW9mKF9fa2VybmVsX21vZGVfdCldOwogdW5zaWduZWQgc2hvcnQgc2VxOwog
dW5zaWduZWQgc2hvcnQgX19wYWQyOwogX19rZXJuZWxfdWxvbmdfdCBfX3VudXNlZDE7CiBfX2tl
cm5lbF91bG9uZ190IF9fdW51c2VkMjsKfTsKIyAyICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJh
dGVkL3VhcGkvYXNtL2lwY2J1Zi5oIiAyCiMgMjMgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2lwYy5o
IiAyCiMgNTggIi4vaW5jbHVkZS91YXBpL2xpbnV4L2lwYy5oIgpzdHJ1Y3QgaXBjX2tsdWRnZSB7
CiBzdHJ1Y3QgbXNnYnVmICptc2dwOwogbG9uZyBtc2d0eXA7Cn07CiMgOSAiLi9pbmNsdWRlL2xp
bnV4L2lwYy5oIiAyCgoKCnN0cnVjdCBrZXJuX2lwY19wZXJtIHsKIHNwaW5sb2NrX3QgbG9jazsK
IGJvb2wgZGVsZXRlZDsKIGludCBpZDsKIGtleV90IGtleTsKIGt1aWRfdCB1aWQ7CiBrZ2lkX3Qg
Z2lkOwoga3VpZF90IGN1aWQ7CiBrZ2lkX3QgY2dpZDsKIHVtb2RlX3QgbW9kZTsKIHVuc2lnbmVk
IGxvbmcgc2VxOwogdm9pZCAqc2VjdXJpdHk7Cgogc3RydWN0IHJoYXNoX2hlYWQga2h0bm9kZTsK
CiBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCByY3U7CiByZWZjb3VudF90IHJlZmNvdW50Owp9IF9fYXR0
cmlidXRlX18oKF9fYWxpZ25lZF9fKCgxIDw8ICg2KSkpKSkgX19hdHRyaWJ1dGVfXygoX19kZXNp
Z25hdGVkX2luaXRfXykpOwojIDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIiAyCiMgMjUg
Ii4vaW5jbHVkZS91YXBpL2xpbnV4L3NlbS5oIgpzdHJ1Y3Qgc2VtaWRfZHMgewogc3RydWN0IGlw
Y19wZXJtIHNlbV9wZXJtOwogX19rZXJuZWxfb2xkX3RpbWVfdCBzZW1fb3RpbWU7CiBfX2tlcm5l
bF9vbGRfdGltZV90IHNlbV9jdGltZTsKIHN0cnVjdCBzZW0gKnNlbV9iYXNlOwogc3RydWN0IHNl
bV9xdWV1ZSAqc2VtX3BlbmRpbmc7CiBzdHJ1Y3Qgc2VtX3F1ZXVlICoqc2VtX3BlbmRpbmdfbGFz
dDsKIHN0cnVjdCBzZW1fdW5kbyAqdW5kbzsKIHVuc2lnbmVkIHNob3J0IHNlbV9uc2VtczsKfTsK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zZW1idWYuaCIgMQoKCgoKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lwY2J1Zi5oIiAxCiMgNiAiLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NlbWJ1Zi5oIiAyCiMgMTggIi4vYXJjaC94ODYvaW5j
bHVkZS91YXBpL2FzbS9zZW1idWYuaCIKc3RydWN0IHNlbWlkNjRfZHMgewogc3RydWN0IGlwYzY0
X3Blcm0gc2VtX3Blcm07CgoKCgoKCiBfX2tlcm5lbF9sb25nX3Qgc2VtX290aW1lOwogX19rZXJu
ZWxfdWxvbmdfdCBfX3VudXNlZDE7CiBfX2tlcm5lbF9sb25nX3Qgc2VtX2N0aW1lOwogX19rZXJu
ZWxfdWxvbmdfdCBfX3VudXNlZDI7CgogX19rZXJuZWxfdWxvbmdfdCBzZW1fbnNlbXM7CiBfX2tl
cm5lbF91bG9uZ190IF9fdW51c2VkMzsKIF9fa2VybmVsX3Vsb25nX3QgX191bnVzZWQ0Owp9Owoj
IDM4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zZW0uaCIgMgoKCnN0cnVjdCBzZW1idWYgewogdW5z
aWduZWQgc2hvcnQgc2VtX251bTsKIHNob3J0IHNlbV9vcDsKIHNob3J0IHNlbV9mbGc7Cn07CgoK
dW5pb24gc2VtdW4gewogaW50IHZhbDsKIHN0cnVjdCBzZW1pZF9kcyAqYnVmOwogdW5zaWduZWQg
c2hvcnQgKmFycmF5Owogc3RydWN0IHNlbWluZm8gKl9fYnVmOwogdm9pZCAqX19wYWQ7Cn07Cgpz
dHJ1Y3Qgc2VtaW5mbyB7CiBpbnQgc2VtbWFwOwogaW50IHNlbW1uaTsKIGludCBzZW1tbnM7CiBp
bnQgc2VtbW51OwogaW50IHNlbW1zbDsKIGludCBzZW1vcG07CiBpbnQgc2VtdW1lOwogaW50IHNl
bXVzejsKIGludCBzZW12bXg7CiBpbnQgc2VtYWVtOwp9OwojIDYgIi4vaW5jbHVkZS9saW51eC9z
ZW0uaCIgMgoKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1Y3Qgc2VtX3VuZG9fbGlzdDsKCgoKc3Ry
dWN0IHN5c3Zfc2VtIHsKIHN0cnVjdCBzZW1fdW5kb19saXN0ICp1bmRvX2xpc3Q7Cn07CgpleHRl
cm4gaW50IGNvcHlfc2VtdW5kbyh1bnNpZ25lZCBsb25nIGNsb25lX2ZsYWdzLCBzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnRzayk7CmV4dGVybiB2b2lkIGV4aXRfc2VtKHN0cnVjdCB0YXNrX3N0cnVjdCAq
dHNrKTsKIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2luY2x1ZGUvbGlu
dXgvc2htLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zaG0uaCIgMQoKCgoK
CgojIDEgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2h1Z2V0bGJfZW5jb2RlLmgiIDEKIyA4
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zaG0uaCIgMgojIDI4ICIuL2luY2x1ZGUvdWFwaS9saW51
eC9zaG0uaCIKc3RydWN0IHNobWlkX2RzIHsKIHN0cnVjdCBpcGNfcGVybSBzaG1fcGVybTsKIGlu
dCBzaG1fc2Vnc3o7CiBfX2tlcm5lbF9vbGRfdGltZV90IHNobV9hdGltZTsKIF9fa2VybmVsX29s
ZF90aW1lX3Qgc2htX2R0aW1lOwogX19rZXJuZWxfb2xkX3RpbWVfdCBzaG1fY3RpbWU7CiBfX2tl
cm5lbF9pcGNfcGlkX3Qgc2htX2NwaWQ7CiBfX2tlcm5lbF9pcGNfcGlkX3Qgc2htX2xwaWQ7CiB1
bnNpZ25lZCBzaG9ydCBzaG1fbmF0dGNoOwogdW5zaWduZWQgc2hvcnQgc2htX3VudXNlZDsKIHZv
aWQgKnNobV91bnVzZWQyOwogdm9pZCAqc2htX3VudXNlZDM7Cn07CgoKIyAxICIuL2FyY2gveDg2
L2luY2x1ZGUvdWFwaS9hc20vc2htYnVmLmgiIDEKCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL3NobWJ1Zi5oIiAxCiMgMjUgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3No
bWJ1Zi5oIgpzdHJ1Y3Qgc2htaWQ2NF9kcyB7CiBzdHJ1Y3QgaXBjNjRfcGVybSBzaG1fcGVybTsK
IHNpemVfdCBzaG1fc2Vnc3o7CgogbG9uZyBzaG1fYXRpbWU7CiBsb25nIHNobV9kdGltZTsKIGxv
bmcgc2htX2N0aW1lOwojIDQwICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaG1idWYuaCIK
IF9fa2VybmVsX3BpZF90IHNobV9jcGlkOwogX19rZXJuZWxfcGlkX3Qgc2htX2xwaWQ7CiB1bnNp
Z25lZCBsb25nIHNobV9uYXR0Y2g7CiB1bnNpZ25lZCBsb25nIF9fdW51c2VkNDsKIHVuc2lnbmVk
IGxvbmcgX191bnVzZWQ1Owp9OwoKc3RydWN0IHNobWluZm82NCB7CiB1bnNpZ25lZCBsb25nIHNo
bW1heDsKIHVuc2lnbmVkIGxvbmcgc2htbWluOwogdW5zaWduZWQgbG9uZyBzaG1tbmk7CiB1bnNp
Z25lZCBsb25nIHNobXNlZzsKIHVuc2lnbmVkIGxvbmcgc2htYWxsOwogdW5zaWduZWQgbG9uZyBf
X3VudXNlZDE7CiB1bnNpZ25lZCBsb25nIF9fdW51c2VkMjsKIHVuc2lnbmVkIGxvbmcgX191bnVz
ZWQzOwogdW5zaWduZWQgbG9uZyBfX3VudXNlZDQ7Cn07CiMgNyAiLi9hcmNoL3g4Ni9pbmNsdWRl
L3VhcGkvYXNtL3NobWJ1Zi5oIiAyCiMgNDQgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NobS5oIiAy
CiMgOTMgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NobS5oIgpzdHJ1Y3Qgc2htaW5mbyB7CiBpbnQg
c2htbWF4OwogaW50IHNobW1pbjsKIGludCBzaG1tbmk7CiBpbnQgc2htc2VnOwogaW50IHNobWFs
bDsKfTsKCnN0cnVjdCBzaG1faW5mbyB7CiBpbnQgdXNlZF9pZHM7CiBfX2tlcm5lbF91bG9uZ190
IHNobV90b3Q7CiBfX2tlcm5lbF91bG9uZ190IHNobV9yc3M7CiBfX2tlcm5lbF91bG9uZ190IHNo
bV9zd3A7CiBfX2tlcm5lbF91bG9uZ190IHN3YXBfYXR0ZW1wdHM7CiBfX2tlcm5lbF91bG9uZ190
IHN3YXBfc3VjY2Vzc2VzOwp9OwojIDggIi4vaW5jbHVkZS9saW51eC9zaG0uaCIgMgojIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vc2htcGFyYW0uaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC9z
aG0uaCIgMgoKc3RydWN0IGZpbGU7CgoKc3RydWN0IHN5c3Zfc2htIHsKIHN0cnVjdCBsaXN0X2hl
YWQgc2htX2NsaXN0Owp9OwoKbG9uZyBkb19zaG1hdChpbnQgc2htaWQsIGNoYXIgKnNobWFkZHIs
IGludCBzaG1mbGcsIHVuc2lnbmVkIGxvbmcgKmFkZHIsCiAgICAgICB1bnNpZ25lZCBsb25nIHNo
bWxiYSk7CmJvb2wgaXNfZmlsZV9zaG1faHVnZXBhZ2VzKHN0cnVjdCBmaWxlICpmaWxlKTsKdm9p
ZCBleGl0X3NobShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwojIDE3ICIuL2luY2x1ZGUvbGlu
dXgvc2NoZWQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9rY292LmgiIDEKCgoKCiMgMSAiLi9p
bmNsdWRlL3VhcGkvbGludXgva2Nvdi5oIiAxCiMgMTEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tj
b3YuaCIKc3RydWN0IGtjb3ZfcmVtb3RlX2FyZyB7CiBfX3UzMiB0cmFjZV9tb2RlOwogX191MzIg
YXJlYV9zaXplOwogX191MzIgbnVtX2hhbmRsZXM7CiBfX3U2NCBfX2F0dHJpYnV0ZV9fKChhbGln
bmVkKDgpKSkgY29tbW9uX2hhbmRsZTsKIF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkp
KSBoYW5kbGVzWzBdOwp9OwojIDI2ICIuL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgiCmVudW0g
ewojIDM1ICIuL2luY2x1ZGUvdWFwaS9saW51eC9rY292LmgiCiBLQ09WX1RSQUNFX1BDID0gMCwK
CiBLQ09WX1RSQUNFX0NNUCA9IDEsCn07CiMgNTYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L2tjb3Yu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgX191NjQga2Nvdl9yZW1vdGVfaGFuZGxlKF9fdTY0IHN1YnN5cywgX191NjQgaW5zdCkKewog
aWYgKHN1YnN5cyAmIH4oMHhmZnVsbCA8PCA1NikgfHwgaW5zdCAmIH4oMHhmZmZmZmZmZnVsbCkp
CiAgcmV0dXJuIDA7CiByZXR1cm4gc3Vic3lzIHwgaW5zdDsKfQojIDYgIi4vaW5jbHVkZS9saW51
eC9rY292LmgiIDIKCnN0cnVjdCB0YXNrX3N0cnVjdDsKIyA1NyAiLi9pbmNsdWRlL2xpbnV4L2tj
b3YuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBrY292X3Rhc2tfaW5pdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpIHt9CnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
a2Nvdl90YXNrX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICp0KSB7fQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtjb3ZfcHJlcGFy
ZV9zd2l0Y2goc3RydWN0IHRhc2tfc3RydWN0ICp0KSB7fQpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtjb3ZfZmluaXNoX3N3aXRj
aChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpIHt9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQga2Nvdl9yZW1vdGVfc3RhcnQodTY0IGhh
bmRsZSkge30Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdG9wKHZvaWQpIHt9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHU2NCBrY292X2NvbW1vbl9o
YW5kbGUodm9pZCkKewogcmV0dXJuIDA7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrY292X3JlbW90ZV9zdGFydF9jb21tb24o
dTY0IGlkKSB7fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGtjb3ZfcmVtb3RlX3N0YXJ0X3VzYih1NjQgaWQpIHt9CiMgMTggIi4v
aW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCgojIDEgIi4vaW5jbHVkZS9saW51eC9wbGlzdC5oIiAx
CiMgNzkgIi4vaW5jbHVkZS9saW51eC9wbGlzdC5oIgpzdHJ1Y3QgcGxpc3RfaGVhZCB7CiBzdHJ1
Y3QgbGlzdF9oZWFkIG5vZGVfbGlzdDsKfTsKCnN0cnVjdCBwbGlzdF9ub2RlIHsKIGludCBwcmlv
Owogc3RydWN0IGxpc3RfaGVhZCBwcmlvX2xpc3Q7CiBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGVfbGlz
dDsKfTsKIyAxMjEgIi4vaW5jbHVkZS9saW51eC9wbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkCnBsaXN0X2hlYWRfaW5p
dChzdHJ1Y3QgcGxpc3RfaGVhZCAqaGVhZCkKewogSU5JVF9MSVNUX0hFQUQoJmhlYWQtPm5vZGVf
bGlzdCk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBwbGlzdF9ub2RlX2luaXQoc3RydWN0IHBsaXN0X25vZGUgKm5v
ZGUsIGludCBwcmlvKQp7CiBub2RlLT5wcmlvID0gcHJpbzsKIElOSVRfTElTVF9IRUFEKCZub2Rl
LT5wcmlvX2xpc3QpOwogSU5JVF9MSVNUX0hFQUQoJm5vZGUtPm5vZGVfbGlzdCk7Cn0KCmV4dGVy
biB2b2lkIHBsaXN0X2FkZChzdHJ1Y3QgcGxpc3Rfbm9kZSAqbm9kZSwgc3RydWN0IHBsaXN0X2hl
YWQgKmhlYWQpOwpleHRlcm4gdm9pZCBwbGlzdF9kZWwoc3RydWN0IHBsaXN0X25vZGUgKm5vZGUs
IHN0cnVjdCBwbGlzdF9oZWFkICpoZWFkKTsKCmV4dGVybiB2b2lkIHBsaXN0X3JlcXVldWUoc3Ry
dWN0IHBsaXN0X25vZGUgKm5vZGUsIHN0cnVjdCBwbGlzdF9oZWFkICpoZWFkKTsKIyAyMTAgIi4v
aW5jbHVkZS9saW51eC9wbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGxpc3RfaGVhZF9lbXB0eShjb25zdCBzdHJ1Y3Qg
cGxpc3RfaGVhZCAqaGVhZCkKewogcmV0dXJuIGxpc3RfZW1wdHkoJmhlYWQtPm5vZGVfbGlzdCk7
Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgcGxpc3Rfbm9kZV9lbXB0eShjb25zdCBzdHJ1Y3QgcGxpc3Rfbm9kZSAqbm9k
ZSkKewogcmV0dXJuIGxpc3RfZW1wdHkoJm5vZGUtPm5vZGVfbGlzdCk7Cn0KIyAyODAgIi4vaW5j
bHVkZS9saW51eC9wbGlzdC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgcGxpc3Rfbm9kZSAqcGxpc3RfZmlyc3QoY29uc3Qg
c3RydWN0IHBsaXN0X2hlYWQgKmhlYWQpCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9p
ZCAqKShoZWFkLT5ub2RlX2xpc3QubmV4dCk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGlt
ZV9hc3NlcnRfMjgyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBl
IG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVz
X2NvbXBhdGlibGVfcCh0eXBlb2YoKihoZWFkLT5ub2RlX2xpc3QubmV4dCkpLCB0eXBlb2YoKChz
dHJ1Y3QgcGxpc3Rfbm9kZSAqKTApLT5ub2RlX2xpc3QpKSAmJiAhX19idWlsdGluX3R5cGVzX2Nv
bXBhdGlibGVfcCh0eXBlb2YoKihoZWFkLT5ub2RlX2xpc3QubmV4dCkpLCB0eXBlb2Yodm9pZCkp
KSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzI4MigpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgcGxp
c3Rfbm9kZSAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBsaXN0X25vZGUs
IG5vZGVfbGlzdCkpKTsgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IHBsaXN0X25vZGUgKnBsaXN0X2xhc3QoY29uc3Qgc3RydWN0IHBsaXN0X2hl
YWQgKmhlYWQpCnsKIHJldHVybiAoeyB2b2lkICpfX21wdHIgPSAodm9pZCAqKShoZWFkLT5ub2Rl
X2xpc3QucHJldik7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMjk0KHZv
aWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNv
bnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0
eXBlb2YoKihoZWFkLT5ub2RlX2xpc3QucHJldikpLCB0eXBlb2YoKChzdHJ1Y3QgcGxpc3Rfbm9k
ZSAqKTApLT5ub2RlX2xpc3QpKSAmJiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBl
b2YoKihoZWFkLT5ub2RlX2xpc3QucHJldikpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRp
bWVfYXNzZXJ0XzI5NCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgcGxpc3Rfbm9kZSAqKShfX21w
dHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IHBsaXN0X25vZGUsIG5vZGVfbGlzdCkpKTsg
fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQojIDIwICIuL2luY2x1ZGUv
bGludXgvc2NoZWQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiIDEKIyAxNSAi
Li9pbmNsdWRlL2xpbnV4L2hydGltZXIuaCIKIyAxICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lcl9k
ZWZzLmgiIDEKIyAxNiAiLi9pbmNsdWRlL2xpbnV4L2hydGltZXIuaCIgMgoKCgoKCiMgMSAiLi9p
bmNsdWRlL2xpbnV4L3RpbWVycXVldWUuaCIgMQojIDkgIi4vaW5jbHVkZS9saW51eC90aW1lcnF1
ZXVlLmgiCnN0cnVjdCB0aW1lcnF1ZXVlX25vZGUgewogc3RydWN0IHJiX25vZGUgbm9kZTsKIGt0
aW1lX3QgZXhwaXJlczsKfTsKCnN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgewogc3RydWN0IHJiX3Jv
b3RfY2FjaGVkIHJiX3Jvb3Q7Cn07CgoKZXh0ZXJuIGJvb2wgdGltZXJxdWV1ZV9hZGQoc3RydWN0
IHRpbWVycXVldWVfaGVhZCAqaGVhZCwKICAgICAgc3RydWN0IHRpbWVycXVldWVfbm9kZSAqbm9k
ZSk7CmV4dGVybiBib29sIHRpbWVycXVldWVfZGVsKHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhl
YWQsCiAgICAgIHN0cnVjdCB0aW1lcnF1ZXVlX25vZGUgKm5vZGUpOwpleHRlcm4gc3RydWN0IHRp
bWVycXVldWVfbm9kZSAqdGltZXJxdWV1ZV9pdGVyYXRlX25leHQoCiAgICAgIHN0cnVjdCB0aW1l
cnF1ZXVlX25vZGUgKm5vZGUpOwojIDMzICIuL2luY2x1ZGUvbGludXgvdGltZXJxdWV1ZS5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQpz
dHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICp0aW1lcnF1ZXVlX2dldG5leHQoc3RydWN0IHRpbWVycXVl
dWVfaGVhZCAqaGVhZCkKewogc3RydWN0IHJiX25vZGUgKmxlZnRtb3N0ID0gKCZoZWFkLT5yYl9y
b290KS0+cmJfbGVmdG1vc3Q7CgogcmV0dXJuICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICopKGxl
ZnRtb3N0KTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8zOCh2b2lkKSBf
X2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWlu
ZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9m
KCoobGVmdG1vc3QpKSwgdHlwZW9mKCgoc3RydWN0IHRpbWVycXVldWVfbm9kZSAqKTApLT5ub2Rl
KSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCoobGVmdG1vc3QpKSwg
dHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF8zOCgpOyB9IHdoaWxlICgwKTsg
KChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICopKF9fbXB0ciAtIF9fYnVpbHRpbl9vZmZzZXRvZihz
dHJ1Y3QgdGltZXJxdWV1ZV9ub2RlLCBub2RlKSkpOyB9KTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0aW1lcnF1ZXVlX2lu
aXQoc3RydWN0IHRpbWVycXVldWVfbm9kZSAqbm9kZSkKewogKCgmbm9kZS0+bm9kZSktPl9fcmJf
cGFyZW50X2NvbG9yID0gKHVuc2lnbmVkIGxvbmcpKCZub2RlLT5ub2RlKSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGlt
ZXJxdWV1ZV9ub2RlX3F1ZXVlZChzdHJ1Y3QgdGltZXJxdWV1ZV9ub2RlICpub2RlKQp7CiByZXR1
cm4gISgoJm5vZGUtPm5vZGUpLT5fX3JiX3BhcmVudF9jb2xvciA9PSAodW5zaWduZWQgbG9uZyko
Jm5vZGUtPm5vZGUpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0aW1lcnF1ZXVlX25vZGVfZXhwaXJlcyhzdHJ1Y3QgdGlt
ZXJxdWV1ZV9ub2RlICpub2RlKQp7CiByZXR1cm4gbm9kZS0+ZXhwaXJlczsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0aW1l
cnF1ZXVlX2luaXRfaGVhZChzdHJ1Y3QgdGltZXJxdWV1ZV9oZWFkICpoZWFkKQp7CiBoZWFkLT5y
Yl9yb290ID0gKHN0cnVjdCByYl9yb290X2NhY2hlZCkgeyB7KCh2b2lkICopMCksIH0sICgodm9p
ZCAqKTApIH07Cn0KIyAyMiAiLi9pbmNsdWRlL2xpbnV4L2hydGltZXIuaCIgMgoKc3RydWN0IGhy
dGltZXJfY2xvY2tfYmFzZTsKc3RydWN0IGhydGltZXJfY3B1X2Jhc2U7CiMgMzggIi4vaW5jbHVk
ZS9saW51eC9ocnRpbWVyLmgiCmVudW0gaHJ0aW1lcl9tb2RlIHsKIEhSVElNRVJfTU9ERV9BQlMg
PSAweDAwLAogSFJUSU1FUl9NT0RFX1JFTCA9IDB4MDEsCiBIUlRJTUVSX01PREVfUElOTkVEID0g
MHgwMiwKIEhSVElNRVJfTU9ERV9TT0ZUID0gMHgwNCwKIEhSVElNRVJfTU9ERV9IQVJEID0gMHgw
OCwKCiBIUlRJTUVSX01PREVfQUJTX1BJTk5FRCA9IEhSVElNRVJfTU9ERV9BQlMgfCBIUlRJTUVS
X01PREVfUElOTkVELAogSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQgPSBIUlRJTUVSX01PREVfUkVM
IHwgSFJUSU1FUl9NT0RFX1BJTk5FRCwKCiBIUlRJTUVSX01PREVfQUJTX1NPRlQgPSBIUlRJTUVS
X01PREVfQUJTIHwgSFJUSU1FUl9NT0RFX1NPRlQsCiBIUlRJTUVSX01PREVfUkVMX1NPRlQgPSBI
UlRJTUVSX01PREVfUkVMIHwgSFJUSU1FUl9NT0RFX1NPRlQsCgogSFJUSU1FUl9NT0RFX0FCU19Q
SU5ORURfU09GVCA9IEhSVElNRVJfTU9ERV9BQlNfUElOTkVEIHwgSFJUSU1FUl9NT0RFX1NPRlQs
CiBIUlRJTUVSX01PREVfUkVMX1BJTk5FRF9TT0ZUID0gSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQg
fCBIUlRJTUVSX01PREVfU09GVCwKCiBIUlRJTUVSX01PREVfQUJTX0hBUkQgPSBIUlRJTUVSX01P
REVfQUJTIHwgSFJUSU1FUl9NT0RFX0hBUkQsCiBIUlRJTUVSX01PREVfUkVMX0hBUkQgPSBIUlRJ
TUVSX01PREVfUkVMIHwgSFJUSU1FUl9NT0RFX0hBUkQsCgogSFJUSU1FUl9NT0RFX0FCU19QSU5O
RURfSEFSRCA9IEhSVElNRVJfTU9ERV9BQlNfUElOTkVEIHwgSFJUSU1FUl9NT0RFX0hBUkQsCiBI
UlRJTUVSX01PREVfUkVMX1BJTk5FRF9IQVJEID0gSFJUSU1FUl9NT0RFX1JFTF9QSU5ORUQgfCBI
UlRJTUVSX01PREVfSEFSRCwKfTsKCgoKCmVudW0gaHJ0aW1lcl9yZXN0YXJ0IHsKIEhSVElNRVJf
Tk9SRVNUQVJULAogSFJUSU1FUl9SRVNUQVJULAp9OwojIDExNyAiLi9pbmNsdWRlL2xpbnV4L2hy
dGltZXIuaCIKc3RydWN0IGhydGltZXIgewogc3RydWN0IHRpbWVycXVldWVfbm9kZSBub2RlOwog
a3RpbWVfdCBfc29mdGV4cGlyZXM7CiBlbnVtIGhydGltZXJfcmVzdGFydCAoKmZ1bmN0aW9uKShz
dHJ1Y3QgaHJ0aW1lciAqKTsKIHN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2UgKmJhc2U7CiB1OCBz
dGF0ZTsKIHU4IGlzX3JlbDsKIHU4IGlzX3NvZnQ7CiB1OCBpc19oYXJkOwp9OwojIDEzNSAiLi9p
bmNsdWRlL2xpbnV4L2hydGltZXIuaCIKc3RydWN0IGhydGltZXJfc2xlZXBlciB7CiBzdHJ1Y3Qg
aHJ0aW1lciB0aW1lcjsKIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKfTsKIyAxNTggIi4vaW5j
bHVkZS9saW51eC9ocnRpbWVyLmgiCnN0cnVjdCBocnRpbWVyX2Nsb2NrX2Jhc2Ugewogc3RydWN0
IGhydGltZXJfY3B1X2Jhc2UgKmNwdV9iYXNlOwogdW5zaWduZWQgaW50IGluZGV4OwogY2xvY2tp
ZF90IGNsb2NraWQ7CiBzZXFjb3VudF90IHNlcTsKIHN0cnVjdCBocnRpbWVyICpydW5uaW5nOwog
c3RydWN0IHRpbWVycXVldWVfaGVhZCBhY3RpdmU7CiBrdGltZV90ICgqZ2V0X3RpbWUpKHZvaWQp
Owoga3RpbWVfdCBvZmZzZXQ7Cn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYp
KSkpKTsKCmVudW0gaHJ0aW1lcl9iYXNlX3R5cGUgewogSFJUSU1FUl9CQVNFX01PTk9UT05JQywK
IEhSVElNRVJfQkFTRV9SRUFMVElNRSwKIEhSVElNRVJfQkFTRV9CT09UVElNRSwKIEhSVElNRVJf
QkFTRV9UQUksCiBIUlRJTUVSX0JBU0VfTU9OT1RPTklDX1NPRlQsCiBIUlRJTUVSX0JBU0VfUkVB
TFRJTUVfU09GVCwKIEhSVElNRVJfQkFTRV9CT09UVElNRV9TT0ZULAogSFJUSU1FUl9CQVNFX1RB
SV9TT0ZULAogSFJUSU1FUl9NQVhfQ0xPQ0tfQkFTRVMsCn07CiMgMjEzICIuL2luY2x1ZGUvbGlu
dXgvaHJ0aW1lci5oIgpzdHJ1Y3QgaHJ0aW1lcl9jcHVfYmFzZSB7CiByYXdfc3BpbmxvY2tfdCBs
b2NrOwogdW5zaWduZWQgaW50IGNwdTsKIHVuc2lnbmVkIGludCBhY3RpdmVfYmFzZXM7CiB1bnNp
Z25lZCBpbnQgY2xvY2tfd2FzX3NldF9zZXE7CiB1bnNpZ25lZCBpbnQgaHJlc19hY3RpdmUgOiAx
LAogICAgIGluX2hydGlycSA6IDEsCiAgICAgaGFuZ19kZXRlY3RlZCA6IDEsCiAgICAgc29mdGly
cV9hY3RpdmF0ZWQgOiAxOwoKIHVuc2lnbmVkIGludCBucl9ldmVudHM7CiB1bnNpZ25lZCBzaG9y
dCBucl9yZXRyaWVzOwogdW5zaWduZWQgc2hvcnQgbnJfaGFuZ3M7CiB1bnNpZ25lZCBpbnQgbWF4
X2hhbmdfdGltZTsKCgoKCgoga3RpbWVfdCBleHBpcmVzX25leHQ7CiBzdHJ1Y3QgaHJ0aW1lciAq
bmV4dF90aW1lcjsKIGt0aW1lX3Qgc29mdGlycV9leHBpcmVzX25leHQ7CiBzdHJ1Y3QgaHJ0aW1l
ciAqc29mdGlycV9uZXh0X3RpbWVyOwogc3RydWN0IGhydGltZXJfY2xvY2tfYmFzZSBjbG9ja19i
YXNlW0hSVElNRVJfTUFYX0NMT0NLX0JBU0VTXTsKfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRf
XygoMSA8PCAoNikpKSkpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX3NldF9leHBpcmVzKHN0cnVjdCBocnRpbWVy
ICp0aW1lciwga3RpbWVfdCB0aW1lKQp7CiB0aW1lci0+bm9kZS5leHBpcmVzID0gdGltZTsKIHRp
bWVyLT5fc29mdGV4cGlyZXMgPSB0aW1lOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfc2V0X2V4cGlyZXNfcmFu
Z2Uoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbWUsIGt0aW1lX3QgZGVsdGEpCnsK
IHRpbWVyLT5fc29mdGV4cGlyZXMgPSB0aW1lOwogdGltZXItPm5vZGUuZXhwaXJlcyA9IGt0aW1l
X2FkZF9zYWZlKHRpbWUsIGRlbHRhKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRpbWVyX3NldF9leHBpcmVzX3Jhbmdl
X25zKHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCB0aW1lLCB1NjQgZGVsdGEpCnsKIHRp
bWVyLT5fc29mdGV4cGlyZXMgPSB0aW1lOwogdGltZXItPm5vZGUuZXhwaXJlcyA9IGt0aW1lX2Fk
ZF9zYWZlKHRpbWUsIG5zX3RvX2t0aW1lKGRlbHRhKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9zZXRfZXhw
aXJlc190djY0KHN0cnVjdCBocnRpbWVyICp0aW1lciwgczY0IHR2NjQpCnsKIHRpbWVyLT5ub2Rl
LmV4cGlyZXMgPSB0djY0OwogdGltZXItPl9zb2Z0ZXhwaXJlcyA9IHR2NjQ7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0
aW1lcl9hZGRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsIGt0aW1lX3QgdGltZSkKewog
dGltZXItPm5vZGUuZXhwaXJlcyA9IGt0aW1lX2FkZF9zYWZlKHRpbWVyLT5ub2RlLmV4cGlyZXMs
IHRpbWUpOwogdGltZXItPl9zb2Z0ZXhwaXJlcyA9IGt0aW1lX2FkZF9zYWZlKHRpbWVyLT5fc29m
dGV4cGlyZXMsIHRpbWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJfYWRkX2V4cGlyZXNfbnMoc3RydWN0IGhy
dGltZXIgKnRpbWVyLCB1NjQgbnMpCnsKIHRpbWVyLT5ub2RlLmV4cGlyZXMgPSAoKHRpbWVyLT5u
b2RlLmV4cGlyZXMpICsgKG5zKSk7CiB0aW1lci0+X3NvZnRleHBpcmVzID0gKCh0aW1lci0+X3Nv
ZnRleHBpcmVzKSArIChucykpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90IGhydGltZXJfZ2V0X2V4cGlyZXMoY29uc3Qg
c3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiByZXR1cm4gdGltZXItPm5vZGUuZXhwaXJlczsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
a3RpbWVfdCBocnRpbWVyX2dldF9zb2Z0ZXhwaXJlcyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGlt
ZXIpCnsKIHJldHVybiB0aW1lci0+X3NvZnRleHBpcmVzOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQgaHJ0aW1lcl9nZXRfZXhw
aXJlc190djY0KGNvbnN0IHN0cnVjdCBocnRpbWVyICp0aW1lcikKewogcmV0dXJuIHRpbWVyLT5u
b2RlLmV4cGlyZXM7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgczY0IGhydGltZXJfZ2V0X3NvZnRleHBpcmVzX3R2NjQoY29uc3Qgc3Ry
dWN0IGhydGltZXIgKnRpbWVyKQp7CiByZXR1cm4gdGltZXItPl9zb2Z0ZXhwaXJlczsKfQoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgczY0
IGhydGltZXJfZ2V0X2V4cGlyZXNfbnMoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiBy
ZXR1cm4ga3RpbWVfdG9fbnModGltZXItPm5vZGUuZXhwaXJlcyk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGt0aW1lX3QgaHJ0aW1l
cl9leHBpcmVzX3JlbWFpbmluZyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCnsKIHJldHVy
biAoKHRpbWVyLT5ub2RlLmV4cGlyZXMpIC0gKHRpbWVyLT5iYXNlLT5nZXRfdGltZSgpKSk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGt0aW1lX3QgaHJ0aW1lcl9jYl9nZXRfdGltZShzdHJ1Y3QgaHJ0aW1lciAqdGltZXIpCnsKIHJl
dHVybiB0aW1lci0+YmFzZS0+Z2V0X3RpbWUoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGhydGltZXJfaXNfaHJlc19hY3Rp
dmUoc3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiByZXR1cm4gMSA/CiAgdGltZXItPmJhc2UtPmNw
dV9iYXNlLT5ocmVzX2FjdGl2ZSA6IDA7Cn0KCgpzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlOwoK
ZXh0ZXJuIHZvaWQgaHJ0aW1lcl9pbnRlcnJ1cHQoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAq
ZGV2KTsKCmV4dGVybiB2b2lkIGNsb2NrX3dhc19zZXRfZGVsYXllZCh2b2lkKTsKCmV4dGVybiB1
bnNpZ25lZCBpbnQgaHJ0aW1lcl9yZXNvbHV0aW9uOwojIDMzMiAiLi9pbmNsdWRlL2xpbnV4L2hy
dGltZXIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkga3RpbWVfdApfX2hydGltZXJfZXhwaXJlc19yZW1haW5pbmdfYWRqdXN0ZWQoY29u
c3Qgc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IG5vdykKewoga3RpbWVfdCByZW0gPSAo
KHRpbWVyLT5ub2RlLmV4cGlyZXMpIC0gKG5vdykpOwoKCgoKCiBpZiAoMCAmJiB0aW1lci0+aXNf
cmVsKQogIHJlbSAtPSBocnRpbWVyX3Jlc29sdXRpb247CiByZXR1cm4gcmVtOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrdGltZV90
CmhydGltZXJfZXhwaXJlc19yZW1haW5pbmdfYWRqdXN0ZWQoY29uc3Qgc3RydWN0IGhydGltZXIg
KnRpbWVyKQp7CiByZXR1cm4gX19ocnRpbWVyX2V4cGlyZXNfcmVtYWluaW5nX2FkanVzdGVkKHRp
bWVyLAogICAgICAgICAgdGltZXItPmJhc2UtPmdldF90aW1lKCkpOwp9CgpleHRlcm4gdm9pZCBj
bG9ja193YXNfc2V0KHZvaWQpOwoKZXh0ZXJuIHZvaWQgdGltZXJmZF9jbG9ja193YXNfc2V0KHZv
aWQpOwoKCgpleHRlcm4gdm9pZCBocnRpbWVyc19yZXN1bWUodm9pZCk7CgpleHRlcm4gX19hdHRy
aWJ1dGVfXygoc2VjdGlvbigiLmRhdGEuLnBlcmNwdSIgIiIpKSkgX190eXBlb2ZfXyhzdHJ1Y3Qg
dGlja19kZXZpY2UpIHRpY2tfY3B1X2RldmljZTsKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9jYW5jZWxfd2Fp
dF9ydW5uaW5nKHN0cnVjdCBocnRpbWVyICp0aW1lcikKewogY3B1X3JlbGF4KCk7Cn0KCgoKCgpl
eHRlcm4gdm9pZCBocnRpbWVyX2luaXQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBjbG9ja2lkX3Qg
d2hpY2hfY2xvY2ssCiAgICBlbnVtIGhydGltZXJfbW9kZSBtb2RlKTsKZXh0ZXJuIHZvaWQgaHJ0
aW1lcl9pbml0X3NsZWVwZXIoc3RydWN0IGhydGltZXJfc2xlZXBlciAqc2wsIGNsb2NraWRfdCBj
bG9ja19pZCwKICAgICBlbnVtIGhydGltZXJfbW9kZSBtb2RlKTsKIyAzODkgIi4vaW5jbHVkZS9s
aW51eC9ocnRpbWVyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgaHJ0aW1lcl9pbml0X29uX3N0YWNrKHN0cnVjdCBocnRpbWVy
ICp0aW1lciwKICAgICAgY2xvY2tpZF90IHdoaWNoX2Nsb2NrLAogICAgICBlbnVtIGhydGltZXJf
bW9kZSBtb2RlKQp7CiBocnRpbWVyX2luaXQodGltZXIsIHdoaWNoX2Nsb2NrLCBtb2RlKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBocnRpbWVyX2luaXRfc2xlZXBlcl9vbl9zdGFjayhzdHJ1Y3QgaHJ0aW1lcl9zbGVlcGVy
ICpzbCwKICAgICAgIGNsb2NraWRfdCBjbG9ja19pZCwKICAgICAgIGVudW0gaHJ0aW1lcl9tb2Rl
IG1vZGUpCnsKIGhydGltZXJfaW5pdF9zbGVlcGVyKHNsLCBjbG9ja19pZCwgbW9kZSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZv
aWQgZGVzdHJveV9ocnRpbWVyX29uX3N0YWNrKHN0cnVjdCBocnRpbWVyICp0aW1lcikgeyB9CgoK
CmV4dGVybiB2b2lkIGhydGltZXJfc3RhcnRfcmFuZ2VfbnMoc3RydWN0IGhydGltZXIgKnRpbWVy
LCBrdGltZV90IHRpbSwKICAgICAgIHU2NCByYW5nZV9ucywgY29uc3QgZW51bSBocnRpbWVyX21v
ZGUgbW9kZSk7CiMgNDE4ICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGhydGltZXJf
c3RhcnQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IHRpbSwKICAgICBjb25zdCBlbnVt
IGhydGltZXJfbW9kZSBtb2RlKQp7CiBocnRpbWVyX3N0YXJ0X3JhbmdlX25zKHRpbWVyLCB0aW0s
IDAsIG1vZGUpOwp9CgpleHRlcm4gaW50IGhydGltZXJfY2FuY2VsKHN0cnVjdCBocnRpbWVyICp0
aW1lcik7CmV4dGVybiBpbnQgaHJ0aW1lcl90cnlfdG9fY2FuY2VsKHN0cnVjdCBocnRpbWVyICp0
aW1lcik7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGhydGltZXJfc3RhcnRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIs
CiAgICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpCnsKIHU2NCBkZWx0YTsKIGt0aW1lX3Qgc29m
dCwgaGFyZDsKIHNvZnQgPSBocnRpbWVyX2dldF9zb2Z0ZXhwaXJlcyh0aW1lcik7CiBoYXJkID0g
aHJ0aW1lcl9nZXRfZXhwaXJlcyh0aW1lcik7CiBkZWx0YSA9IGt0aW1lX3RvX25zKCgoaGFyZCkg
LSAoc29mdCkpKTsKIGhydGltZXJfc3RhcnRfcmFuZ2VfbnModGltZXIsIHNvZnQsIGRlbHRhLCBt
b2RlKTsKfQoKdm9pZCBocnRpbWVyX3NsZWVwZXJfc3RhcnRfZXhwaXJlcyhzdHJ1Y3QgaHJ0aW1l
cl9zbGVlcGVyICpzbCwKICAgICAgIGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBocnRp
bWVyX3Jlc3RhcnQoc3RydWN0IGhydGltZXIgKnRpbWVyKQp7CiBocnRpbWVyX3N0YXJ0X2V4cGly
ZXModGltZXIsIEhSVElNRVJfTU9ERV9BQlMpOwp9CgoKZXh0ZXJuIGt0aW1lX3QgX19ocnRpbWVy
X2dldF9yZW1haW5pbmcoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyLCBib29sIGFkanVzdCk7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBrdGltZV90IGhydGltZXJfZ2V0X3JlbWFpbmluZyhjb25zdCBzdHJ1Y3QgaHJ0aW1lciAqdGlt
ZXIpCnsKIHJldHVybiBfX2hydGltZXJfZ2V0X3JlbWFpbmluZyh0aW1lciwgZmFsc2UpOwp9Cgpl
eHRlcm4gdTY0IGhydGltZXJfZ2V0X25leHRfZXZlbnQodm9pZCk7CmV4dGVybiB1NjQgaHJ0aW1l
cl9uZXh0X2V2ZW50X3dpdGhvdXQoY29uc3Qgc3RydWN0IGhydGltZXIgKmV4Y2x1ZGUpOwoKZXh0
ZXJuIGJvb2wgaHJ0aW1lcl9hY3RpdmUoY29uc3Qgc3RydWN0IGhydGltZXIgKnRpbWVyKTsKIyA0
NjcgIi4vaW5jbHVkZS9saW51eC9ocnRpbWVyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaHJ0aW1lcl9pc19xdWV1ZWQoc3Ry
dWN0IGhydGltZXIgKnRpbWVyKQp7CgogcmV0dXJuICEhKCh7IHVuaW9uIHsgdHlwZW9mKHRpbWVy
LT5zdGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3Np
emUoJih0aW1lci0+c3RhdGUpLCBfX3UuX19jLCBzaXplb2YodGltZXItPnN0YXRlKSk7IGVsc2Ug
X19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYodGltZXItPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9m
KHRpbWVyLT5zdGF0ZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pICYgMHgwMSk7
Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgaHJ0aW1lcl9jYWxsYmFja19ydW5uaW5nKHN0cnVjdCBocnRpbWVyICp0aW1l
cikKewogcmV0dXJuIHRpbWVyLT5iYXNlLT5ydW5uaW5nID09IHRpbWVyOwp9CgoKZXh0ZXJuIHU2
NApocnRpbWVyX2ZvcndhcmQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IG5vdywga3Rp
bWVfdCBpbnRlcnZhbCk7CiMgNTAyICIuL2luY2x1ZGUvbGludXgvaHJ0aW1lci5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1NjQgaHJ0
aW1lcl9mb3J3YXJkX25vdyhzdHJ1Y3QgaHJ0aW1lciAqdGltZXIsCiAgICAgICAgICBrdGltZV90
IGludGVydmFsKQp7CiByZXR1cm4gaHJ0aW1lcl9mb3J3YXJkKHRpbWVyLCB0aW1lci0+YmFzZS0+
Z2V0X3RpbWUoKSwgaW50ZXJ2YWwpOwp9CgoKCmV4dGVybiBpbnQgbmFub3NsZWVwX2NvcHlvdXQo
c3RydWN0IHJlc3RhcnRfYmxvY2sgKiwgc3RydWN0IHRpbWVzcGVjNjQgKik7CmV4dGVybiBsb25n
IGhydGltZXJfbmFub3NsZWVwKGt0aW1lX3QgcnF0cCwgY29uc3QgZW51bSBocnRpbWVyX21vZGUg
bW9kZSwKICAgICAgICAgY29uc3QgY2xvY2tpZF90IGNsb2NraWQpOwoKZXh0ZXJuIGludCBzY2hl
ZHVsZV9ocnRpbWVvdXRfcmFuZ2Uoa3RpbWVfdCAqZXhwaXJlcywgdTY0IGRlbHRhLAogICAgICAg
IGNvbnN0IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwpleHRlcm4gaW50IHNjaGVkdWxlX2hydGlt
ZW91dF9yYW5nZV9jbG9jayhrdGltZV90ICpleHBpcmVzLAogICAgICAgdTY0IGRlbHRhLAogICAg
ICAgY29uc3QgZW51bSBocnRpbWVyX21vZGUgbW9kZSwKICAgICAgIGNsb2NraWRfdCBjbG9ja19p
ZCk7CmV4dGVybiBpbnQgc2NoZWR1bGVfaHJ0aW1lb3V0KGt0aW1lX3QgKmV4cGlyZXMsIGNvbnN0
IGVudW0gaHJ0aW1lcl9tb2RlIG1vZGUpOwoKCmV4dGVybiB2b2lkIGhydGltZXJfcnVuX3F1ZXVl
cyh2b2lkKTsKCgpleHRlcm4gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQu
dGV4dCIpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKSBocnRpbWVyc19pbml0KHZvaWQpOwoK
CmV4dGVybiB2b2lkIHN5c3JxX3RpbWVyX2xpc3Rfc2hvdyh2b2lkKTsKCmludCBocnRpbWVyc19w
cmVwYXJlX2NwdSh1bnNpZ25lZCBpbnQgY3B1KTsKCmludCBocnRpbWVyc19kZWFkX2NwdSh1bnNp
Z25lZCBpbnQgY3B1KTsKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvc2VjY29tcC5oIiAxCgoKCgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3Nl
Y2NvbXAuaCIgMQojIDU5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zZWNjb21wLmgiCnN0cnVjdCBz
ZWNjb21wX2RhdGEgewogaW50IG5yOwogX191MzIgYXJjaDsKIF9fdTY0IGluc3RydWN0aW9uX3Bv
aW50ZXI7CiBfX3U2NCBhcmdzWzZdOwp9OwoKc3RydWN0IHNlY2NvbXBfbm90aWZfc2l6ZXMgewog
X191MTYgc2VjY29tcF9ub3RpZjsKIF9fdTE2IHNlY2NvbXBfbm90aWZfcmVzcDsKIF9fdTE2IHNl
Y2NvbXBfZGF0YTsKfTsKCnN0cnVjdCBzZWNjb21wX25vdGlmIHsKIF9fdTY0IGlkOwogX191MzIg
cGlkOwogX191MzIgZmxhZ3M7CiBzdHJ1Y3Qgc2VjY29tcF9kYXRhIGRhdGE7Cn07CiMgMTA4ICIu
L2luY2x1ZGUvdWFwaS9saW51eC9zZWNjb21wLmgiCnN0cnVjdCBzZWNjb21wX25vdGlmX3Jlc3Ag
ewogX191NjQgaWQ7CiBfX3M2NCB2YWw7CiBfX3MzMiBlcnJvcjsKIF9fdTMyIGZsYWdzOwp9Owoj
IDYgIi4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiIDIKIyAxNSAiLi9pbmNsdWRlL2xpbnV4L3Nl
Y2NvbXAuaCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NlY2NvbXAuaCIgMQoKCgoKIyAx
ICIuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAxCgoKCgojIDEgIi4vYXJjaC94ODYv
aW5jbHVkZS91YXBpL2FzbS91bmlzdGQuaCIgMQojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20v
dW5pc3RkLmgiIDIKIyAxOCAiLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS91bmlzdGQuaCIKIyAxICIu
L2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL3VuaXN0ZF82NC5oIiAxCiMgMTkg
Ii4vYXJjaC94ODYvaW5jbHVkZS9hc20vdW5pc3RkLmgiIDIKIyAxICIuL2FyY2gveDg2L2luY2x1
ZGUvZ2VuZXJhdGVkL2FzbS91bmlzdGRfNjRfeDMyLmgiIDEKIyAyMCAiLi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS91bmlzdGQuaCIgMgojIDYgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VjY29tcC5o
IiAyCiMgMTkgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2VjY29tcC5oIgojIDEgIi4vaW5jbHVk
ZS9hc20tZ2VuZXJpYy9zZWNjb21wLmgiIDEKIyAxMSAiLi9pbmNsdWRlL2FzbS1nZW5lcmljL3Nl
Y2NvbXAuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC91bmlzdGQuaCIgMQojIDEyICIuL2lu
Y2x1ZGUvYXNtLWdlbmVyaWMvc2VjY29tcC5oIiAyCiMgMjAgIi4vYXJjaC94ODYvaW5jbHVkZS9h
c20vc2VjY29tcC5oIiAyCiMgMTYgIi4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiIDIKCnN0cnVj
dCBzZWNjb21wX2ZpbHRlcjsKIyAyOSAiLi9pbmNsdWRlL2xpbnV4L3NlY2NvbXAuaCIKc3RydWN0
IHNlY2NvbXAgewogaW50IG1vZGU7CiBzdHJ1Y3Qgc2VjY29tcF9maWx0ZXIgKmZpbHRlcjsKfTsK
CgpleHRlcm4gaW50IF9fc2VjdXJlX2NvbXB1dGluZyhjb25zdCBzdHJ1Y3Qgc2VjY29tcF9kYXRh
ICpzZCk7CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCBzZWN1cmVfY29tcHV0aW5nKHZvaWQpCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0
KCEhKHRlc3RfdGlfdGhyZWFkX2ZsYWcoKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilnZXRfY3VycmVu
dCgpKSwgOCkpLCAwKSkKICByZXR1cm4gX19zZWN1cmVfY29tcHV0aW5nKCgodm9pZCAqKTApKTsK
IHJldHVybiAwOwp9CgoKCgpleHRlcm4gbG9uZyBwcmN0bF9nZXRfc2VjY29tcCh2b2lkKTsKZXh0
ZXJuIGxvbmcgcHJjdGxfc2V0X3NlY2NvbXAodW5zaWduZWQgbG9uZywgdm9pZCAqKTsKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBz
ZWNjb21wX21vZGUoc3RydWN0IHNlY2NvbXAgKnMpCnsKIHJldHVybiBzLT5tb2RlOwp9CiMgODQg
Ii4vaW5jbHVkZS9saW51eC9zZWNjb21wLmgiCmV4dGVybiB2b2lkIHB1dF9zZWNjb21wX2ZpbHRl
cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CmV4dGVybiB2b2lkIGdldF9zZWNjb21wX2ZpbHRl
cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7CiMgOTggIi4vaW5jbHVkZS9saW51eC9zZWNjb21w
LmgiCmV4dGVybiBsb25nIHNlY2NvbXBfZ2V0X2ZpbHRlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh
c2ssCiAgICAgICAgICB1bnNpZ25lZCBsb25nIGZpbHRlcl9vZmYsIHZvaWQgKmRhdGEpOwpleHRl
cm4gbG9uZyBzZWNjb21wX2dldF9tZXRhZGF0YShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssCiAg
ICAgdW5zaWduZWQgbG9uZyBmaWx0ZXJfb2ZmLCB2b2lkICpkYXRhKTsKIyAyMiAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiIDIKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvcmVzb3VyY2UuaCIgMQoK
CgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9yZXNvdXJjZS5oIiAxCiMgMjQgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3Jlc291cmNlLmgiCnN0cnVjdCBydXNhZ2Ugewogc3RydWN0IF9fa2VybmVs
X29sZF90aW1ldmFsIHJ1X3V0aW1lOwogc3RydWN0IF9fa2VybmVsX29sZF90aW1ldmFsIHJ1X3N0
aW1lOwogX19rZXJuZWxfbG9uZ190IHJ1X21heHJzczsKIF9fa2VybmVsX2xvbmdfdCBydV9peHJz
czsKIF9fa2VybmVsX2xvbmdfdCBydV9pZHJzczsKIF9fa2VybmVsX2xvbmdfdCBydV9pc3JzczsK
IF9fa2VybmVsX2xvbmdfdCBydV9taW5mbHQ7CiBfX2tlcm5lbF9sb25nX3QgcnVfbWFqZmx0Owog
X19rZXJuZWxfbG9uZ190IHJ1X25zd2FwOwogX19rZXJuZWxfbG9uZ190IHJ1X2luYmxvY2s7CiBf
X2tlcm5lbF9sb25nX3QgcnVfb3VibG9jazsKIF9fa2VybmVsX2xvbmdfdCBydV9tc2dzbmQ7CiBf
X2tlcm5lbF9sb25nX3QgcnVfbXNncmN2OwogX19rZXJuZWxfbG9uZ190IHJ1X25zaWduYWxzOwog
X19rZXJuZWxfbG9uZ190IHJ1X252Y3N3OwogX19rZXJuZWxfbG9uZ190IHJ1X25pdmNzdzsKfTsK
CnN0cnVjdCBybGltaXQgewogX19rZXJuZWxfdWxvbmdfdCBybGltX2N1cjsKIF9fa2VybmVsX3Vs
b25nX3QgcmxpbV9tYXg7Cn07CgoKCnN0cnVjdCBybGltaXQ2NCB7CiBfX3U2NCBybGltX2N1cjsK
IF9fdTY0IHJsaW1fbWF4Owp9OwojIDc4ICIuL2luY2x1ZGUvdWFwaS9saW51eC9yZXNvdXJjZS5o
IgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaS9hc20vcmVzb3VyY2UuaCIg
MQojIDEgIi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9yZXNvdXJjZS5oIiAxCgoKCgojIDEgIi4vaW5j
bHVkZS91YXBpL2FzbS1nZW5lcmljL3Jlc291cmNlLmgiIDEKIyA2ICIuL2luY2x1ZGUvYXNtLWdl
bmVyaWMvcmVzb3VyY2UuaCIgMgojIDIgIi4vYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFw
aS9hc20vcmVzb3VyY2UuaCIgMgojIDc5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9yZXNvdXJjZS5o
IiAyCiMgNiAiLi9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKCgpzdHJ1Y3QgdGFza19zdHJ1
Y3Q7Cgp2b2lkIGdldHJ1c2FnZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCB3aG8sIHN0cnVj
dCBydXNhZ2UgKnJ1KTsKaW50IGRvX3BybGltaXQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHVu
c2lnbmVkIGludCByZXNvdXJjZSwKICBzdHJ1Y3QgcmxpbWl0ICpuZXdfcmxpbSwgc3RydWN0IHJs
aW1pdCAqb2xkX3JsaW0pOwojIDI2ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi4v
aW5jbHVkZS9saW51eC9sYXRlbmN5dG9wLmgiIDEKIyAxNCAiLi9pbmNsdWRlL2xpbnV4L2xhdGVu
Y3l0b3AuaCIKc3RydWN0IHRhc2tfc3RydWN0OwoKCgoKCgpzdHJ1Y3QgbGF0ZW5jeV9yZWNvcmQg
ewogdW5zaWduZWQgbG9uZyBiYWNrdHJhY2VbMTJdOwogdW5zaWduZWQgaW50IGNvdW50OwogdW5z
aWduZWQgbG9uZyB0aW1lOwogdW5zaWduZWQgbG9uZyBtYXg7Cn07CgoKCmV4dGVybiBpbnQgbGF0
ZW5jeXRvcF9lbmFibGVkOwp2b2lkIF9fYWNjb3VudF9zY2hlZHVsZXJfbGF0ZW5jeShzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRhc2ssIGludCB1c2VjcywgaW50IGludGVyKTsKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZAphY2NvdW50X3Nj
aGVkdWxlcl9sYXRlbmN5KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IHVzZWNzLCBpbnQg
aW50ZXIpCnsKIGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGxhdGVuY3l0b3BfZW5hYmxlZCksIDAp
KQogIF9fYWNjb3VudF9zY2hlZHVsZXJfbGF0ZW5jeSh0YXNrLCB1c2VjcywgaW50ZXIpOwp9Cgp2
b2lkIGNsZWFyX3Rza19sYXRlbmN5X3RyYWNpbmcoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKCmV4
dGVybiBpbnQgc3lzY3RsX2xhdGVuY3l0b3Aoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3
cml0ZSwKICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CiMgMjcg
Ii4vaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkL3By
aW8uaCIgMQojIDQ4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvcHJpby5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBsb25nIG5pY2VfdG9f
cmxpbWl0KGxvbmcgbmljZSkKewogcmV0dXJuICgxOSAtIG5pY2UgKyAxKTsKfQoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgbG9uZyBy
bGltaXRfdG9fbmljZShsb25nIHByaW8pCnsKIHJldHVybiAoMTkgLSBwcmlvICsgMSk7Cn0KIyAy
OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQv
dHlwZXMuaCIgMQojIDE3ICIuL2luY2x1ZGUvbGludXgvc2NoZWQvdHlwZXMuaCIKc3RydWN0IHRh
c2tfY3B1dGltZSB7CiB1NjQgc3RpbWU7CiB1NjQgdXRpbWU7CiB1bnNpZ25lZCBsb25nIGxvbmcg
c3VtX2V4ZWNfcnVudGltZTsKfTsKIyAyOSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAx
ICIuL2luY2x1ZGUvbGludXgvc2lnbmFsX3R5cGVzLmgiIDEKIyAxMCAiLi9pbmNsdWRlL2xpbnV4
L3NpZ25hbF90eXBlcy5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NpZ25hbC5oIiAxCgoK
CgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vc2lnbmFsLmgiIDEKIyAyMSAiLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9zaWduYWwuaCIKdHlwZWRlZiB1bnNpZ25lZCBsb25nIG9sZF9zaWdzZXRf
dDsKCnR5cGVkZWYgc3RydWN0IHsKIHVuc2lnbmVkIGxvbmcgc2lnWyg2NCAvIDY0KV07Cn0gc2ln
c2V0X3Q7CgoKCgoKCnR5cGVkZWYgc2lnc2V0X3QgY29tcGF0X3NpZ3NldF90OwoKCgojIDEgIi4v
YXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9zaWduYWwuaCIgMQojIDExICIuL2FyY2gveDg2L2lu
Y2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiCnN0cnVjdCBzaWdpbmZvOwojIDk0ICIuL2FyY2gveDg2
L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiCiMgMSAiLi9pbmNsdWRlL3VhcGkvYXNtLWdlbmVy
aWMvc2lnbmFsLWRlZnMuaCIgMQojIDE4ICIuL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9zaWdu
YWwtZGVmcy5oIgp0eXBlZGVmIHZvaWQgX19zaWduYWxmbl90KGludCk7CnR5cGVkZWYgX19zaWdu
YWxmbl90ICpfX3NpZ2hhbmRsZXJfdDsKCnR5cGVkZWYgdm9pZCBfX3Jlc3RvcmVmbl90KHZvaWQp
Owp0eXBlZGVmIF9fcmVzdG9yZWZuX3QgKl9fc2lncmVzdG9yZV90OwojIDk1ICIuL2FyY2gveDg2
L2luY2x1ZGUvdWFwaS9hc20vc2lnbmFsLmgiIDIKIyAxMjggIi4vYXJjaC94ODYvaW5jbHVkZS91
YXBpL2FzbS9zaWduYWwuaCIKdHlwZWRlZiBzdHJ1Y3Qgc2lnYWx0c3RhY2sgewogdm9pZCAqc3Nf
c3A7CiBpbnQgc3NfZmxhZ3M7CiBzaXplX3Qgc3Nfc2l6ZTsKfSBzdGFja190OwojIDM3ICIuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL3NpZ25hbC5oIiAyCgpleHRlcm4gdm9pZCBkb19zaWduYWwoc3Ry
dWN0IHB0X3JlZ3MgKnJlZ3MpOwojIDYgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3NpZ25hbC5oIiAy
CiMgMSAiLi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL3NpZ2luZm8uaCIgMQojIDEzICIuL2Fy
Y2gveDg2L2luY2x1ZGUvdWFwaS9hc20vc2lnaW5mby5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL3NpZ2luZm8uaCIgMQoKCgoKCgoKdHlwZWRlZiB1bmlvbiBzaWd2YWwgewogaW50
IHNpdmFsX2ludDsKIHZvaWQgKnNpdmFsX3B0cjsKfSBzaWd2YWxfdDsKIyAzMiAiLi9pbmNsdWRl
L3VhcGkvYXNtLWdlbmVyaWMvc2lnaW5mby5oIgp1bmlvbiBfX3NpZmllbGRzIHsKCiBzdHJ1Y3Qg
ewogIF9fa2VybmVsX3BpZF90IF9waWQ7CiAgX19rZXJuZWxfdWlkMzJfdCBfdWlkOwogfSBfa2ls
bDsKCgogc3RydWN0IHsKICBfX2tlcm5lbF90aW1lcl90IF90aWQ7CiAgaW50IF9vdmVycnVuOwog
IHNpZ3ZhbF90IF9zaWd2YWw7CiAgaW50IF9zeXNfcHJpdmF0ZTsKIH0gX3RpbWVyOwoKCiBzdHJ1
Y3QgewogIF9fa2VybmVsX3BpZF90IF9waWQ7CiAgX19rZXJuZWxfdWlkMzJfdCBfdWlkOwogIHNp
Z3ZhbF90IF9zaWd2YWw7CiB9IF9ydDsKCgogc3RydWN0IHsKICBfX2tlcm5lbF9waWRfdCBfcGlk
OwogIF9fa2VybmVsX3VpZDMyX3QgX3VpZDsKICBpbnQgX3N0YXR1czsKICBfX2tlcm5lbF9jbG9j
a190IF91dGltZTsKICBfX2tlcm5lbF9jbG9ja190IF9zdGltZTsKIH0gX3NpZ2NobGQ7CgoKIHN0
cnVjdCB7CiAgdm9pZCAqX2FkZHI7CiMgNzcgIi4vaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL3Np
Z2luZm8uaCIKICB1bmlvbiB7CgoKCgogICBzaG9ydCBfYWRkcl9sc2I7CgogICBzdHJ1Y3Qgewog
ICAgY2hhciBfZHVtbXlfYm5kWyhfX2FsaWdub2ZfXyh2b2lkICopIDwgc2l6ZW9mKHNob3J0KSA/
IHNpemVvZihzaG9ydCkgOiBfX2FsaWdub2ZfXyh2b2lkICopKV07CiAgICB2b2lkICpfbG93ZXI7
CiAgICB2b2lkICpfdXBwZXI7CiAgIH0gX2FkZHJfYm5kOwoKICAgc3RydWN0IHsKICAgIGNoYXIg
X2R1bW15X3BrZXlbKF9fYWxpZ25vZl9fKHZvaWQgKikgPCBzaXplb2Yoc2hvcnQpID8gc2l6ZW9m
KHNob3J0KSA6IF9fYWxpZ25vZl9fKHZvaWQgKikpXTsKICAgIF9fdTMyIF9wa2V5OwogICB9IF9h
ZGRyX3BrZXk7CiAgfTsKIH0gX3NpZ2ZhdWx0OwoKCiBzdHJ1Y3QgewogIGxvbmcgX2JhbmQ7CiAg
aW50IF9mZDsKIH0gX3NpZ3BvbGw7CgoKIHN0cnVjdCB7CiAgdm9pZCAqX2NhbGxfYWRkcjsKICBp
bnQgX3N5c2NhbGw7CiAgdW5zaWduZWQgaW50IF9hcmNoOwogfSBfc2lnc3lzOwp9OwojIDEyOSAi
Li9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvc2lnaW5mby5oIgp0eXBlZGVmIHN0cnVjdCBzaWdp
bmZvIHsKIHVuaW9uIHsKICBzdHJ1Y3QgeyBpbnQgc2lfc2lnbm87IGludCBzaV9lcnJubzsgaW50
IHNpX2NvZGU7IHVuaW9uIF9fc2lmaWVsZHMgX3NpZmllbGRzOyB9OwogIGludCBfc2lfcGFkWzEy
OC9zaXplb2YoaW50KV07CiB9Owp9IHNpZ2luZm9fdDsKIyAzMjAgIi4vaW5jbHVkZS91YXBpL2Fz
bS1nZW5lcmljL3NpZ2luZm8uaCIKdHlwZWRlZiBzdHJ1Y3Qgc2lnZXZlbnQgewogc2lndmFsX3Qg
c2lnZXZfdmFsdWU7CiBpbnQgc2lnZXZfc2lnbm87CiBpbnQgc2lnZXZfbm90aWZ5OwogdW5pb24g
ewogIGludCBfcGFkWygoNjQgLSAoc2l6ZW9mKGludCkgKiAyICsgc2l6ZW9mKHNpZ3ZhbF90KSkp
IC8gc2l6ZW9mKGludCkpXTsKICAgaW50IF90aWQ7CgogIHN0cnVjdCB7CiAgIHZvaWQgKCpfZnVu
Y3Rpb24pKHNpZ3ZhbF90KTsKICAgdm9pZCAqX2F0dHJpYnV0ZTsKICB9IF9zaWdldl90aHJlYWQ7
CiB9IF9zaWdldl91bjsKfSBzaWdldmVudF90OwojIDE0ICIuL2FyY2gveDg2L2luY2x1ZGUvdWFw
aS9hc20vc2lnaW5mby5oIiAyCiMgNyAiLi9pbmNsdWRlL3VhcGkvbGludXgvc2lnbmFsLmgiIDIK
IyAxMSAiLi9pbmNsdWRlL2xpbnV4L3NpZ25hbF90eXBlcy5oIiAyCgp0eXBlZGVmIHN0cnVjdCBr
ZXJuZWxfc2lnaW5mbyB7CiBzdHJ1Y3QgeyBpbnQgc2lfc2lnbm87IGludCBzaV9lcnJubzsgaW50
IHNpX2NvZGU7IHVuaW9uIF9fc2lmaWVsZHMgX3NpZmllbGRzOyB9Owp9IGtlcm5lbF9zaWdpbmZv
X3Q7CgoKCgoKc3RydWN0IHNpZ3F1ZXVlIHsKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIGludCBm
bGFnczsKIGtlcm5lbF9zaWdpbmZvX3QgaW5mbzsKIHN0cnVjdCB1c2VyX3N0cnVjdCAqdXNlcjsK
fTsKCgoKCnN0cnVjdCBzaWdwZW5kaW5nIHsKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIHNpZ3Nl
dF90IHNpZ25hbDsKfTsKCnN0cnVjdCBzaWdhY3Rpb24gewoKIF9fc2lnaGFuZGxlcl90IHNhX2hh
bmRsZXI7CiB1bnNpZ25lZCBsb25nIHNhX2ZsYWdzOwoKCgoKCiBfX3NpZ3Jlc3RvcmVfdCBzYV9y
ZXN0b3JlcjsKCiBzaWdzZXRfdCBzYV9tYXNrOwp9OwoKc3RydWN0IGtfc2lnYWN0aW9uIHsKIHN0
cnVjdCBzaWdhY3Rpb24gc2E7CgoKCn07CiMgNjUgIi4vaW5jbHVkZS9saW51eC9zaWduYWxfdHlw
ZXMuaCIKc3RydWN0IGtzaWduYWwgewogc3RydWN0IGtfc2lnYWN0aW9uIGthOwoga2VybmVsX3Np
Z2luZm9fdCBpbmZvOwogaW50IHNpZzsKfTsKIyAzMCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgi
IDIKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3Rhc2tfaW9fYWNjb3VudGluZy5oIiAxCiMgMTIgIi4v
aW5jbHVkZS9saW51eC90YXNrX2lvX2FjY291bnRpbmcuaCIKc3RydWN0IHRhc2tfaW9fYWNjb3Vu
dGluZyB7CgoKIHU2NCByY2hhcjsKCiB1NjQgd2NoYXI7CgogdTY0IHN5c2NyOwoKIHU2NCBzeXNj
dzsKCgoKCgoKCiB1NjQgcmVhZF9ieXRlczsKCgoKCgogdTY0IHdyaXRlX2J5dGVzOwojIDQ0ICIu
L2luY2x1ZGUvbGludXgvdGFza19pb19hY2NvdW50aW5nLmgiCiB1NjQgY2FuY2VsbGVkX3dyaXRl
X2J5dGVzOwoKfTsKIyAzMiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIuL2luY2x1
ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiIDEKCgoKCgoKIyAxICIuL2luY2x1ZGUvbGludXgvYWxh
cm10aW1lci5oIiAxCiMgOSAiLi9pbmNsdWRlL2xpbnV4L2FsYXJtdGltZXIuaCIKc3RydWN0IHJ0
Y19kZXZpY2U7CgplbnVtIGFsYXJtdGltZXJfdHlwZSB7CiBBTEFSTV9SRUFMVElNRSwKIEFMQVJN
X0JPT1RUSU1FLAoKCiBBTEFSTV9OVU1UWVBFLAoKCiBBTEFSTV9SRUFMVElNRV9GUkVFWkVSLAog
QUxBUk1fQk9PVFRJTUVfRlJFRVpFUiwKfTsKCmVudW0gYWxhcm10aW1lcl9yZXN0YXJ0IHsKIEFM
QVJNVElNRVJfTk9SRVNUQVJULAogQUxBUk1USU1FUl9SRVNUQVJULAp9OwojIDQyICIuL2luY2x1
ZGUvbGludXgvYWxhcm10aW1lci5oIgpzdHJ1Y3QgYWxhcm0gewogc3RydWN0IHRpbWVycXVldWVf
bm9kZSBub2RlOwogc3RydWN0IGhydGltZXIgdGltZXI7CiBlbnVtIGFsYXJtdGltZXJfcmVzdGFy
dCAoKmZ1bmN0aW9uKShzdHJ1Y3QgYWxhcm0gKiwga3RpbWVfdCBub3cpOwogZW51bSBhbGFybXRp
bWVyX3R5cGUgdHlwZTsKIGludCBzdGF0ZTsKIHZvaWQgKmRhdGE7Cn07Cgp2b2lkIGFsYXJtX2lu
aXQoc3RydWN0IGFsYXJtICphbGFybSwgZW51bSBhbGFybXRpbWVyX3R5cGUgdHlwZSwKICBlbnVt
IGFsYXJtdGltZXJfcmVzdGFydCAoKmZ1bmN0aW9uKShzdHJ1Y3QgYWxhcm0gKiwga3RpbWVfdCkp
Owp2b2lkIGFsYXJtX3N0YXJ0KHN0cnVjdCBhbGFybSAqYWxhcm0sIGt0aW1lX3Qgc3RhcnQpOwp2
b2lkIGFsYXJtX3N0YXJ0X3JlbGF0aXZlKHN0cnVjdCBhbGFybSAqYWxhcm0sIGt0aW1lX3Qgc3Rh
cnQpOwp2b2lkIGFsYXJtX3Jlc3RhcnQoc3RydWN0IGFsYXJtICphbGFybSk7CmludCBhbGFybV90
cnlfdG9fY2FuY2VsKHN0cnVjdCBhbGFybSAqYWxhcm0pOwppbnQgYWxhcm1fY2FuY2VsKHN0cnVj
dCBhbGFybSAqYWxhcm0pOwoKdTY0IGFsYXJtX2ZvcndhcmQoc3RydWN0IGFsYXJtICphbGFybSwg
a3RpbWVfdCBub3csIGt0aW1lX3QgaW50ZXJ2YWwpOwp1NjQgYWxhcm1fZm9yd2FyZF9ub3coc3Ry
dWN0IGFsYXJtICphbGFybSwga3RpbWVfdCBpbnRlcnZhbCk7Cmt0aW1lX3QgYWxhcm1fZXhwaXJl
c19yZW1haW5pbmcoY29uc3Qgc3RydWN0IGFsYXJtICphbGFybSk7CgoKCnN0cnVjdCBydGNfZGV2
aWNlICphbGFybXRpbWVyX2dldF9ydGNkZXYodm9pZCk7CiMgOCAiLi9pbmNsdWRlL2xpbnV4L3Bv
c2l4LXRpbWVycy5oIiAyCgoKc3RydWN0IGtlcm5lbF9zaWdpbmZvOwpzdHJ1Y3QgdGFza19zdHJ1
Y3Q7CiMgMzggIi4vaW5jbHVkZS9saW51eC9wb3NpeC10aW1lcnMuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY2xvY2tpZF90IG1ha2Vf
cHJvY2Vzc19jcHVjbG9jayhjb25zdCB1bnNpZ25lZCBpbnQgcGlkLAogIGNvbnN0IGNsb2NraWRf
dCBjbG9jaykKewogcmV0dXJuICgofnBpZCkgPDwgMykgfCBjbG9jazsKfQpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjbG9ja2lkX3QgbWFr
ZV90aHJlYWRfY3B1Y2xvY2soY29uc3QgdW5zaWduZWQgaW50IHRpZCwKICBjb25zdCBjbG9ja2lk
X3QgY2xvY2spCnsKIHJldHVybiBtYWtlX3Byb2Nlc3NfY3B1Y2xvY2sodGlkLCBjbG9jayB8IDQp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBjbG9ja2lkX3QgZmRfdG9fY2xvY2tpZChjb25zdCBpbnQgZmQpCnsKIHJldHVybiBtYWtl
X3Byb2Nlc3NfY3B1Y2xvY2soKHVuc2lnbmVkIGludCkgZmQsIDMpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgY2xvY2tpZF90
b19mZChjb25zdCBjbG9ja2lkX3QgY2xrKQp7CiByZXR1cm4gfihjbGsgPj4gMyk7Cn0KIyA2OSAi
Li9pbmNsdWRlL2xpbnV4L3Bvc2l4LXRpbWVycy5oIgpzdHJ1Y3QgY3B1X3RpbWVyIHsKIHN0cnVj
dCB0aW1lcnF1ZXVlX25vZGUgbm9kZTsKIHN0cnVjdCB0aW1lcnF1ZXVlX2hlYWQgKmhlYWQ7CiBz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiBzdHJ1Y3QgbGlzdF9oZWFkIGVsaXN0OwogaW50IGZp
cmluZzsKfTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgY3B1X3RpbWVyX2VucXVldWUoc3RydWN0IHRpbWVycXVldWVfaGVhZCAq
aGVhZCwKICAgICAgICAgc3RydWN0IGNwdV90aW1lciAqY3RtcikKewogY3Rtci0+aGVhZCA9IGhl
YWQ7CiByZXR1cm4gdGltZXJxdWV1ZV9hZGQoaGVhZCwgJmN0bXItPm5vZGUpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNw
dV90aW1lcl9kZXF1ZXVlKHN0cnVjdCBjcHVfdGltZXIgKmN0bXIpCnsKIGlmIChjdG1yLT5oZWFk
KSB7CiAgdGltZXJxdWV1ZV9kZWwoY3Rtci0+aGVhZCwgJmN0bXItPm5vZGUpOwogIGN0bXItPmhl
YWQgPSAoKHZvaWQgKikwKTsKIH0KfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTY0IGNwdV90aW1lcl9nZXRleHBpcmVzKHN0cnVjdCBj
cHVfdGltZXIgKmN0bXIpCnsKIHJldHVybiBjdG1yLT5ub2RlLmV4cGlyZXM7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgY3B1
X3RpbWVyX3NldGV4cGlyZXMoc3RydWN0IGNwdV90aW1lciAqY3RtciwgdTY0IGV4cCkKewogY3Rt
ci0+bm9kZS5leHBpcmVzID0gZXhwOwp9CgoKCgoKCnN0cnVjdCBwb3NpeF9jcHV0aW1lcl9iYXNl
IHsKIHU2NCBuZXh0ZXZ0Owogc3RydWN0IHRpbWVycXVldWVfaGVhZCB0cWhlYWQ7Cn07CiMgMTIy
ICIuL2luY2x1ZGUvbGludXgvcG9zaXgtdGltZXJzLmgiCnN0cnVjdCBwb3NpeF9jcHV0aW1lcnMg
ewogc3RydWN0IHBvc2l4X2NwdXRpbWVyX2Jhc2UgYmFzZXNbM107CiB1bnNpZ25lZCBpbnQgdGlt
ZXJzX2FjdGl2ZTsKIHVuc2lnbmVkIGludCBleHBpcnlfYWN0aXZlOwp9OwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwb3NpeF9j
cHV0aW1lcnNfaW5pdChzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzICpwY3QpCnsKIG1lbXNldChwY3Qs
IDAsIHNpemVvZigqcGN0KSk7CiBwY3QtPmJhc2VzWzBdLm5leHRldnQgPSAoKHU2NCl+MFVMTCk7
CiBwY3QtPmJhc2VzWzFdLm5leHRldnQgPSAoKHU2NCl+MFVMTCk7CiBwY3QtPmJhc2VzWzJdLm5l
eHRldnQgPSAoKHU2NCl+MFVMTCk7Cn0KCnZvaWQgcG9zaXhfY3B1dGltZXJzX2dyb3VwX2luaXQo
c3RydWN0IHBvc2l4X2NwdXRpbWVycyAqcGN0LCB1NjQgY3B1X2xpbWl0KTsKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcG9zaXhf
Y3B1dGltZXJzX3J0X3dhdGNoZG9nKHN0cnVjdCBwb3NpeF9jcHV0aW1lcnMgKnBjdCwKICAgICAg
ICAgICAgdTY0IHJ1bnRpbWUpCnsKIHBjdC0+YmFzZXNbMl0ubmV4dGV2dCA9IHJ1bnRpbWU7Cn0K
IyAxOTMgIi4vaW5jbHVkZS9saW51eC9wb3NpeC10aW1lcnMuaCIKc3RydWN0IGtfaXRpbWVyIHsK
IHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIHN0cnVjdCBobGlzdF9ub2RlIHRfaGFzaDsKIHNwaW5s
b2NrX3QgaXRfbG9jazsKIGNvbnN0IHN0cnVjdCBrX2Nsb2NrICprY2xvY2s7CiBjbG9ja2lkX3Qg
aXRfY2xvY2s7CiB0aW1lcl90IGl0X2lkOwogaW50IGl0X2FjdGl2ZTsKIHM2NCBpdF9vdmVycnVu
OwogczY0IGl0X292ZXJydW5fbGFzdDsKIGludCBpdF9yZXF1ZXVlX3BlbmRpbmc7CiBpbnQgaXRf
c2lnZXZfbm90aWZ5Owoga3RpbWVfdCBpdF9pbnRlcnZhbDsKIHN0cnVjdCBzaWduYWxfc3RydWN0
ICppdF9zaWduYWw7CiB1bmlvbiB7CiAgc3RydWN0IHBpZCAqaXRfcGlkOwogIHN0cnVjdCB0YXNr
X3N0cnVjdCAqaXRfcHJvY2VzczsKIH07CiBzdHJ1Y3Qgc2lncXVldWUgKnNpZ3E7CiB1bmlvbiB7
CiAgc3RydWN0IHsKICAgc3RydWN0IGhydGltZXIgdGltZXI7CiAgfSByZWFsOwogIHN0cnVjdCBj
cHVfdGltZXIgY3B1OwogIHN0cnVjdCB7CiAgIHN0cnVjdCBhbGFybSBhbGFybXRpbWVyOwogIH0g
YWxhcm07CiB9IGl0Owogc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1Owp9OwoKdm9pZCBydW5fcG9z
aXhfY3B1X3RpbWVycyh2b2lkKTsKdm9pZCBwb3NpeF9jcHVfdGltZXJzX2V4aXQoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrKTsKdm9pZCBwb3NpeF9jcHVfdGltZXJzX2V4aXRfZ3JvdXAoc3RydWN0
IHRhc2tfc3RydWN0ICp0YXNrKTsKdm9pZCBzZXRfcHJvY2Vzc19jcHVfdGltZXIoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrLCB1bnNpZ25lZCBpbnQgY2xvY2tfaWR4LAogICAgICB1NjQgKm5ld3Zh
bCwgdTY0ICpvbGR2YWwpOwoKdm9pZCB1cGRhdGVfcmxpbWl0X2NwdShzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnRhc2ssIHVuc2lnbmVkIGxvbmcgcmxpbV9uZXcpOwoKdm9pZCBwb3NpeHRpbWVyX3JlYXJt
KHN0cnVjdCBrZXJuZWxfc2lnaW5mbyAqaW5mbyk7CiMgMzMgIi4vaW5jbHVkZS9saW51eC9zY2hl
ZC5oIiAyCiMgMSAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIiAxCiMgMTYgIi4vaW5jbHVk
ZS91YXBpL2xpbnV4L3JzZXEuaCIKZW51bSByc2VxX2NwdV9pZF9zdGF0ZSB7CiBSU0VRX0NQVV9J
RF9VTklOSVRJQUxJWkVEID0gLTEsCiBSU0VRX0NQVV9JRF9SRUdJU1RSQVRJT05fRkFJTEVEID0g
LTIsCn07CgplbnVtIHJzZXFfZmxhZ3MgewogUlNFUV9GTEFHX1VOUkVHSVNURVIgPSAoMSA8PCAw
KSwKfTsKCmVudW0gcnNlcV9jc19mbGFnc19iaXQgewogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRf
T05fUFJFRU1QVF9CSVQgPSAwLAogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fU0lHTkFMX0JJ
VCA9IDEsCiBSU0VRX0NTX0ZMQUdfTk9fUkVTVEFSVF9PTl9NSUdSQVRFX0JJVCA9IDIsCn07Cgpl
bnVtIHJzZXFfY3NfZmxhZ3MgewogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVCA9
CiAgKDFVIDw8IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX1BSRUVNUFRfQklUKSwKIFJTRVFf
Q1NfRkxBR19OT19SRVNUQVJUX09OX1NJR05BTCA9CiAgKDFVIDw8IFJTRVFfQ1NfRkxBR19OT19S
RVNUQVJUX09OX1NJR05BTF9CSVQpLAogUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fTUlHUkFU
RSA9CiAgKDFVIDw8IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX01JR1JBVEVfQklUKSwKfTsK
CgoKCgoKc3RydWN0IHJzZXFfY3MgewoKIF9fdTMyIHZlcnNpb247CgogX191MzIgZmxhZ3M7CiBf
X3U2NCBzdGFydF9pcDsKCiBfX3U2NCBwb3N0X2NvbW1pdF9vZmZzZXQ7CiBfX3U2NCBhYm9ydF9p
cDsKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQgKiBzaXplb2YoX191NjQpKSkpOwoKCgoKCgoK
c3RydWN0IHJzZXEgewojIDc1ICIuL2luY2x1ZGUvdWFwaS9saW51eC9yc2VxLmgiCiBfX3UzMiBj
cHVfaWRfc3RhcnQ7CiMgOTAgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKIF9fdTMyIGNw
dV9pZDsKIyAxMDkgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3JzZXEuaCIKIHVuaW9uIHsKICBfX3U2
NCBwdHI2NDsKCiAgX191NjQgcHRyOwojIDEyNCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5o
IgogfSByc2VxX2NzOwojIDE0NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcnNlcS5oIgogX191MzIg
ZmxhZ3M7Cn0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0ICogc2l6ZW9mKF9fdTY0KSkpKTsKIyAz
NCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCgpzdHJ1Y3QgYXVkaXRfY29udGV4dDsKc3Ry
dWN0IGJhY2tpbmdfZGV2X2luZm87CnN0cnVjdCBiaW9fbGlzdDsKc3RydWN0IGJsa19wbHVnOwpz
dHJ1Y3QgY2FwdHVyZV9jb250cm9sOwpzdHJ1Y3QgY2ZzX3JxOwpzdHJ1Y3QgZnNfc3RydWN0Owpz
dHJ1Y3QgZnV0ZXhfcGlfc3RhdGU7CnN0cnVjdCBpb19jb250ZXh0OwpzdHJ1Y3QgbWVtcG9saWN5
OwpzdHJ1Y3QgbmFtZWlkYXRhOwpzdHJ1Y3QgbnNwcm94eTsKc3RydWN0IHBlcmZfZXZlbnRfY29u
dGV4dDsKc3RydWN0IHBpZF9uYW1lc3BhY2U7CnN0cnVjdCBwaXBlX2lub2RlX2luZm87CnN0cnVj
dCByY3Vfbm9kZTsKc3RydWN0IHJlY2xhaW1fc3RhdGU7CnN0cnVjdCByb2J1c3RfbGlzdF9oZWFk
OwpzdHJ1Y3Qgcm9vdF9kb21haW47CnN0cnVjdCBycTsKc3RydWN0IHNjaGVkX2F0dHI7CnN0cnVj
dCBzY2hlZF9wYXJhbTsKc3RydWN0IHNlcV9maWxlOwpzdHJ1Y3Qgc2lnaGFuZF9zdHJ1Y3Q7CnN0
cnVjdCBzaWduYWxfc3RydWN0OwpzdHJ1Y3QgdGFza19kZWxheV9pbmZvOwpzdHJ1Y3QgdGFza19n
cm91cDsKIyAyMTUgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gdm9pZCBzY2hlZHVs
ZXJfdGljayh2b2lkKTsKCgoKZXh0ZXJuIGxvbmcgc2NoZWR1bGVfdGltZW91dChsb25nIHRpbWVv
dXQpOwpleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUobG9uZyB0aW1l
b3V0KTsKZXh0ZXJuIGxvbmcgc2NoZWR1bGVfdGltZW91dF9raWxsYWJsZShsb25nIHRpbWVvdXQp
OwpleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X3VuaW50ZXJydXB0aWJsZShsb25nIHRpbWVv
dXQpOwpleHRlcm4gbG9uZyBzY2hlZHVsZV90aW1lb3V0X2lkbGUobG9uZyB0aW1lb3V0KTsKIHZv
aWQgc2NoZWR1bGUodm9pZCk7CmV4dGVybiB2b2lkIHNjaGVkdWxlX3ByZWVtcHRfZGlzYWJsZWQo
dm9pZCk7CiB2b2lkIHByZWVtcHRfc2NoZWR1bGVfaXJxKHZvaWQpOwoKZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgaW9fc2NoZWR1bGVfcHJlcGFyZSh2
b2lkKTsKZXh0ZXJuIHZvaWQgaW9fc2NoZWR1bGVfZmluaXNoKGludCB0b2tlbik7CmV4dGVybiBs
b25nIGlvX3NjaGVkdWxlX3RpbWVvdXQobG9uZyB0aW1lb3V0KTsKZXh0ZXJuIHZvaWQgaW9fc2No
ZWR1bGUodm9pZCk7CiMgMjQyICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHByZXZf
Y3B1dGltZSB7CgogdTY0IHV0aW1lOwogdTY0IHN0aW1lOwogcmF3X3NwaW5sb2NrX3QgbG9jazsK
Cn07CgplbnVtIHZ0aW1lX3N0YXRlIHsKCiBWVElNRV9JTkFDVElWRSA9IDAsCgogVlRJTUVfSURM
RSwKCiBWVElNRV9TWVMsCgogVlRJTUVfVVNFUiwKCiBWVElNRV9HVUVTVCwKfTsKCnN0cnVjdCB2
dGltZSB7CiBzZXFjb3VudF90IHNlcWNvdW50OwogdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0dGlt
ZTsKIGVudW0gdnRpbWVfc3RhdGUgc3RhdGU7CiB1bnNpZ25lZCBpbnQgY3B1OwogdTY0IHV0aW1l
OwogdTY0IHN0aW1lOwogdTY0IGd0aW1lOwp9OwoKCgoKCgoKZW51bSB1Y2xhbXBfaWQgewogVUNM
QU1QX01JTiA9IDAsCiBVQ0xBTVBfTUFYLAogVUNMQU1QX0NOVAp9OwoKCmV4dGVybiBzdHJ1Y3Qg
cm9vdF9kb21haW4gZGVmX3Jvb3RfZG9tYWluOwpleHRlcm4gc3RydWN0IG11dGV4IHNjaGVkX2Rv
bWFpbnNfbXV0ZXg7CgoKc3RydWN0IHNjaGVkX2luZm8gewoKCgoKIHVuc2lnbmVkIGxvbmcgcGNv
dW50OwoKCiB1bnNpZ25lZCBsb25nIGxvbmcgcnVuX2RlbGF5OwoKCgoKIHVuc2lnbmVkIGxvbmcg
bG9uZyBsYXN0X2Fycml2YWw7CgoKIHVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0X3F1ZXVlZDsKCgp9
OwojIDMyNSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnN0cnVjdCBsb2FkX3dlaWdodCB7CiB1
bnNpZ25lZCBsb25nIHdlaWdodDsKIHUzMiBpbnZfd2VpZ2h0Owp9OwojIDM1MiAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiCnN0cnVjdCB1dGlsX2VzdCB7CiB1bnNpZ25lZCBpbnQgZW5xdWV1ZWQ7
CiB1bnNpZ25lZCBpbnQgZXdtYTsKCn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oc2l6ZW9m
KHU2NCkpKSk7CiMgNDAxICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHNjaGVkX2F2
ZyB7CiB1NjQgbGFzdF91cGRhdGVfdGltZTsKIHU2NCBsb2FkX3N1bTsKIHU2NCBydW5uYWJsZV9s
b2FkX3N1bTsKIHUzMiB1dGlsX3N1bTsKIHUzMiBwZXJpb2RfY29udHJpYjsKIHVuc2lnbmVkIGxv
bmcgbG9hZF9hdmc7CiB1bnNpZ25lZCBsb25nIHJ1bm5hYmxlX2xvYWRfYXZnOwogdW5zaWduZWQg
bG9uZyB1dGlsX2F2ZzsKIHN0cnVjdCB1dGlsX2VzdCB1dGlsX2VzdDsKfSBfX2F0dHJpYnV0ZV9f
KChfX2FsaWduZWRfXygoMSA8PCAoNikpKSkpOwoKc3RydWN0IHNjaGVkX3N0YXRpc3RpY3MgewoK
IHU2NCB3YWl0X3N0YXJ0OwogdTY0IHdhaXRfbWF4OwogdTY0IHdhaXRfY291bnQ7CiB1NjQgd2Fp
dF9zdW07CiB1NjQgaW93YWl0X2NvdW50OwogdTY0IGlvd2FpdF9zdW07CgogdTY0IHNsZWVwX3N0
YXJ0OwogdTY0IHNsZWVwX21heDsKIHM2NCBzdW1fc2xlZXBfcnVudGltZTsKCiB1NjQgYmxvY2tf
c3RhcnQ7CiB1NjQgYmxvY2tfbWF4OwogdTY0IGV4ZWNfbWF4OwogdTY0IHNsaWNlX21heDsKCiB1
NjQgbnJfbWlncmF0aW9uc19jb2xkOwogdTY0IG5yX2ZhaWxlZF9taWdyYXRpb25zX2FmZmluZTsK
IHU2NCBucl9mYWlsZWRfbWlncmF0aW9uc19ydW5uaW5nOwogdTY0IG5yX2ZhaWxlZF9taWdyYXRp
b25zX2hvdDsKIHU2NCBucl9mb3JjZWRfbWlncmF0aW9uczsKCiB1NjQgbnJfd2FrZXVwczsKIHU2
NCBucl93YWtldXBzX3N5bmM7CiB1NjQgbnJfd2FrZXVwc19taWdyYXRlOwogdTY0IG5yX3dha2V1
cHNfbG9jYWw7CiB1NjQgbnJfd2FrZXVwc19yZW1vdGU7CiB1NjQgbnJfd2FrZXVwc19hZmZpbmU7
CiB1NjQgbnJfd2FrZXVwc19hZmZpbmVfYXR0ZW1wdHM7CiB1NjQgbnJfd2FrZXVwc19wYXNzaXZl
OwogdTY0IG5yX3dha2V1cHNfaWRsZTsKCn07CgpzdHJ1Y3Qgc2NoZWRfZW50aXR5IHsKCiBzdHJ1
Y3QgbG9hZF93ZWlnaHQgbG9hZDsKIHVuc2lnbmVkIGxvbmcgcnVubmFibGVfd2VpZ2h0Owogc3Ry
dWN0IHJiX25vZGUgcnVuX25vZGU7CiBzdHJ1Y3QgbGlzdF9oZWFkIGdyb3VwX25vZGU7CiB1bnNp
Z25lZCBpbnQgb25fcnE7CgogdTY0IGV4ZWNfc3RhcnQ7CiB1NjQgc3VtX2V4ZWNfcnVudGltZTsK
IHU2NCB2cnVudGltZTsKIHU2NCBwcmV2X3N1bV9leGVjX3J1bnRpbWU7CgogdTY0IG5yX21pZ3Jh
dGlvbnM7Cgogc3RydWN0IHNjaGVkX3N0YXRpc3RpY3Mgc3RhdGlzdGljczsKCgogaW50IGRlcHRo
Owogc3RydWN0IHNjaGVkX2VudGl0eSAqcGFyZW50OwoKIHN0cnVjdCBjZnNfcnEgKmNmc19ycTsK
CiBzdHJ1Y3QgY2ZzX3JxICpteV9xOwojIDQ4MiAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBz
dHJ1Y3Qgc2NoZWRfYXZnIGF2ZzsKCn07CgpzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5IHsKIHN0cnVj
dCBsaXN0X2hlYWQgcnVuX2xpc3Q7CiB1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiB1bnNpZ25lZCBs
b25nIHdhdGNoZG9nX3N0YW1wOwogdW5zaWduZWQgaW50IHRpbWVfc2xpY2U7CiB1bnNpZ25lZCBz
aG9ydCBvbl9ycTsKIHVuc2lnbmVkIHNob3J0IG9uX2xpc3Q7Cgogc3RydWN0IHNjaGVkX3J0X2Vu
dGl0eSAqYmFjazsKCgoKCgoKCn0gX19hdHRyaWJ1dGVfXygoX19kZXNpZ25hdGVkX2luaXRfXykp
OwoKc3RydWN0IHNjaGVkX2RsX2VudGl0eSB7CiBzdHJ1Y3QgcmJfbm9kZSByYl9ub2RlOwoKCgoK
CgogdTY0IGRsX3J1bnRpbWU7CiB1NjQgZGxfZGVhZGxpbmU7CiB1NjQgZGxfcGVyaW9kOwogdTY0
IGRsX2J3OwogdTY0IGRsX2RlbnNpdHk7CgoKCgoKCiBzNjQgcnVudGltZTsKIHU2NCBkZWFkbGlu
ZTsKIHVuc2lnbmVkIGludCBmbGFnczsKIyA1NTEgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgog
dW5zaWduZWQgaW50IGRsX3Rocm90dGxlZCA6IDE7CiB1bnNpZ25lZCBpbnQgZGxfYm9vc3RlZCA6
IDE7CiB1bnNpZ25lZCBpbnQgZGxfeWllbGRlZCA6IDE7CiB1bnNpZ25lZCBpbnQgZGxfbm9uX2Nv
bnRlbmRpbmcgOiAxOwogdW5zaWduZWQgaW50IGRsX292ZXJydW4gOiAxOwoKCgoKCiBzdHJ1Y3Qg
aHJ0aW1lciBkbF90aW1lcjsKIyA1NzAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgogc3RydWN0
IGhydGltZXIgaW5hY3RpdmVfdGltZXI7Cn07CiMgNjA4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQu
aCIKdW5pb24gcmN1X3NwZWNpYWwgewogc3RydWN0IHsKICB1OCBibG9ja2VkOwogIHU4IG5lZWRf
cXM7CiAgdTggZXhwX2hpbnQ7CiAgdTggZGVmZXJyZWRfcXM7CiB9IGI7CiB1MzIgczsKfTsKCmVu
dW0gcGVyZl9ldmVudF90YXNrX2NvbnRleHQgewogcGVyZl9pbnZhbGlkX2NvbnRleHQgPSAtMSwK
IHBlcmZfaHdfY29udGV4dCA9IDAsCiBwZXJmX3N3X2NvbnRleHQsCiBwZXJmX25yX3Rhc2tfY29u
dGV4dHMsCn07CgpzdHJ1Y3Qgd2FrZV9xX25vZGUgewogc3RydWN0IHdha2VfcV9ub2RlICpuZXh0
Owp9OwoKc3RydWN0IHRhc2tfc3RydWN0IHsKCgoKCgogc3RydWN0IHRocmVhZF9pbmZvIHRocmVh
ZF9pbmZvOwoKCiB2b2xhdGlsZSBsb25nIHN0YXRlOwoKCgoKCgoKIHZvaWQgKnN0YWNrOwogcmVm
Y291bnRfdCB1c2FnZTsKCiB1bnNpZ25lZCBpbnQgZmxhZ3M7CiB1bnNpZ25lZCBpbnQgcHRyYWNl
OwoKCiBzdHJ1Y3QgbGxpc3Rfbm9kZSB3YWtlX2VudHJ5OwogaW50IG9uX2NwdTsKCgogdW5zaWdu
ZWQgaW50IGNwdTsKCiB1bnNpZ25lZCBpbnQgd2FrZWVfZmxpcHM7CiB1bnNpZ25lZCBsb25nIHdh
a2VlX2ZsaXBfZGVjYXlfdHM7CiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmxhc3Rfd2FrZWU7CiMgNjcw
ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKIGludCByZWNlbnRfdXNlZF9jcHU7CiBpbnQgd2Fr
ZV9jcHU7CgogaW50IG9uX3JxOwoKIGludCBwcmlvOwogaW50IHN0YXRpY19wcmlvOwogaW50IG5v
cm1hbF9wcmlvOwogdW5zaWduZWQgaW50IHJ0X3ByaW9yaXR5OwoKIGNvbnN0IHN0cnVjdCBzY2hl
ZF9jbGFzcyAqc2NoZWRfY2xhc3M7CiBzdHJ1Y3Qgc2NoZWRfZW50aXR5IHNlOwogc3RydWN0IHNj
aGVkX3J0X2VudGl0eSBydDsKCiBzdHJ1Y3QgdGFza19ncm91cCAqc2NoZWRfdGFza19ncm91cDsK
CiBzdHJ1Y3Qgc2NoZWRfZGxfZW50aXR5IGRsOwojIDY5NyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiCiBzdHJ1Y3QgaGxpc3RfaGVhZCBwcmVlbXB0X25vdGlmaWVyczsKCgoKIHVuc2lnbmVkIGlu
dCBidHJhY2Vfc2VxOwoKCiB1bnNpZ25lZCBpbnQgcG9saWN5OwogaW50IG5yX2NwdXNfYWxsb3dl
ZDsKIGNvbnN0IGNwdW1hc2tfdCAqY3B1c19wdHI7CiBjcHVtYXNrX3QgY3B1c19tYXNrOwojIDcy
NCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBzdHJ1Y3Qgc2NoZWRfaW5mbyBzY2hlZF9pbmZv
OwoKIHN0cnVjdCBsaXN0X2hlYWQgdGFza3M7Cgogc3RydWN0IHBsaXN0X25vZGUgcHVzaGFibGVf
dGFza3M7CiBzdHJ1Y3QgcmJfbm9kZSBwdXNoYWJsZV9kbF90YXNrczsKCgogc3RydWN0IG1tX3N0
cnVjdCAqbW07CiBzdHJ1Y3QgbW1fc3RydWN0ICphY3RpdmVfbW07CgoKIHN0cnVjdCB2bWFjYWNo
ZSB2bWFjYWNoZTsKCgogc3RydWN0IHRhc2tfcnNzX3N0YXQgcnNzX3N0YXQ7CgogaW50IGV4aXRf
c3RhdGU7CiBpbnQgZXhpdF9jb2RlOwogaW50IGV4aXRfc2lnbmFsOwoKIGludCBwZGVhdGhfc2ln
bmFsOwoKIHVuc2lnbmVkIGxvbmcgam9iY3RsOwoKCiB1bnNpZ25lZCBpbnQgcGVyc29uYWxpdHk7
CgoKIHVuc2lnbmVkIHNjaGVkX3Jlc2V0X29uX2Zvcms6MTsKIHVuc2lnbmVkIHNjaGVkX2NvbnRy
aWJ1dGVzX3RvX2xvYWQ6MTsKIHVuc2lnbmVkIHNjaGVkX21pZ3JhdGVkOjE7CiB1bnNpZ25lZCBz
Y2hlZF9yZW1vdGVfd2FrZXVwOjE7CgoKCgoKIHVuc2lnbmVkIDowOwoKCgoKIHVuc2lnbmVkIGlu
X2V4ZWN2ZToxOwogdW5zaWduZWQgaW5faW93YWl0OjE7CgogdW5zaWduZWQgcmVzdG9yZV9zaWdt
YXNrOjE7CgoKIHVuc2lnbmVkIGluX3VzZXJfZmF1bHQ6MTsKCgoKCgoKIHVuc2lnbmVkIG5vX2Nn
cm91cF9taWdyYXRpb246MTsKCiB1bnNpZ25lZCBmcm96ZW46MTsKCgoKIHVuc2lnbmVkIHVzZV9t
ZW1kZWxheToxOwoKCiB1bnNpZ25lZCBsb25nIGF0b21pY19mbGFnczsKCiBzdHJ1Y3QgcmVzdGFy
dF9ibG9jayByZXN0YXJ0X2Jsb2NrOwoKIHBpZF90IHBpZDsKIHBpZF90IHRnaWQ7CgoKCiB1bnNp
Z25lZCBsb25nIHN0YWNrX2NhbmFyeTsKIyA4MDcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgog
c3RydWN0IHRhc2tfc3RydWN0ICpyZWFsX3BhcmVudDsKCgogc3RydWN0IHRhc2tfc3RydWN0ICpw
YXJlbnQ7CgoKCgogc3RydWN0IGxpc3RfaGVhZCBjaGlsZHJlbjsKIHN0cnVjdCBsaXN0X2hlYWQg
c2libGluZzsKIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ3JvdXBfbGVhZGVyOwoKCgoKCgoKIHN0cnVj
dCBsaXN0X2hlYWQgcHRyYWNlZDsKIHN0cnVjdCBsaXN0X2hlYWQgcHRyYWNlX2VudHJ5OwoKCiBz
dHJ1Y3QgcGlkICp0aHJlYWRfcGlkOwogc3RydWN0IGhsaXN0X25vZGUgcGlkX2xpbmtzW1BJRFRZ
UEVfTUFYXTsKIHN0cnVjdCBsaXN0X2hlYWQgdGhyZWFkX2dyb3VwOwogc3RydWN0IGxpc3RfaGVh
ZCB0aHJlYWRfbm9kZTsKCiBzdHJ1Y3QgY29tcGxldGlvbiAqdmZvcmtfZG9uZTsKCgogaW50ICpz
ZXRfY2hpbGRfdGlkOwoKCiBpbnQgKmNsZWFyX2NoaWxkX3RpZDsKCiB1NjQgdXRpbWU7CiB1NjQg
c3RpbWU7CgoKCgogdTY0IGd0aW1lOwogc3RydWN0IHByZXZfY3B1dGltZSBwcmV2X2NwdXRpbWU7
CiMgODU4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKIHVuc2lnbmVkIGxvbmcgbnZjc3c7CiB1
bnNpZ25lZCBsb25nIG5pdmNzdzsKCgogdTY0IHN0YXJ0X3RpbWU7CgoKIHU2NCBzdGFydF9ib290
dGltZTsKCgogdW5zaWduZWQgbG9uZyBtaW5fZmx0OwogdW5zaWduZWQgbG9uZyBtYWpfZmx0OwoK
CiBzdHJ1Y3QgcG9zaXhfY3B1dGltZXJzIHBvc2l4X2NwdXRpbWVyczsKCgoKCiBjb25zdCBzdHJ1
Y3QgY3JlZCAqcHRyYWNlcl9jcmVkOwoKCiBjb25zdCBzdHJ1Y3QgY3JlZCAqcmVhbF9jcmVkOwoK
CiBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZDsKCgoKIHN0cnVjdCBrZXkgKmNhY2hlZF9yZXF1ZXN0
ZWRfa2V5OwojIDg5NyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBjaGFyIGNvbW1bMTZdOwoK
IHN0cnVjdCBuYW1laWRhdGEgKm5hbWVpZGF0YTsKCgogc3RydWN0IHN5c3Zfc2VtIHN5c3ZzZW07
CiBzdHJ1Y3Qgc3lzdl9zaG0gc3lzdnNobTsKCgogdW5zaWduZWQgbG9uZyBsYXN0X3N3aXRjaF9j
b3VudDsKIHVuc2lnbmVkIGxvbmcgbGFzdF9zd2l0Y2hfdGltZTsKCgogc3RydWN0IGZzX3N0cnVj
dCAqZnM7CgoKIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZpbGVzOwoKCiBzdHJ1Y3QgbnNwcm94eSAq
bnNwcm94eTsKCgogc3RydWN0IHNpZ25hbF9zdHJ1Y3QgKnNpZ25hbDsKIHN0cnVjdCBzaWdoYW5k
X3N0cnVjdCAqc2lnaGFuZDsKIHNpZ3NldF90IGJsb2NrZWQ7CiBzaWdzZXRfdCByZWFsX2Jsb2Nr
ZWQ7Cgogc2lnc2V0X3Qgc2F2ZWRfc2lnbWFzazsKIHN0cnVjdCBzaWdwZW5kaW5nIHBlbmRpbmc7
CiB1bnNpZ25lZCBsb25nIHNhc19zc19zcDsKIHNpemVfdCBzYXNfc3Nfc2l6ZTsKIHVuc2lnbmVk
IGludCBzYXNfc3NfZmxhZ3M7Cgogc3RydWN0IGNhbGxiYWNrX2hlYWQgKnRhc2tfd29ya3M7CgoK
CiBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYXVkaXRfY29udGV4dDsKCiBrdWlkX3QgbG9naW51aWQ7
CiB1bnNpZ25lZCBpbnQgc2Vzc2lvbmlkOwoKIHN0cnVjdCBzZWNjb21wIHNlY2NvbXA7CgoKIHUz
MiBwYXJlbnRfZXhlY19pZDsKIHUzMiBzZWxmX2V4ZWNfaWQ7CgoKIHNwaW5sb2NrX3QgYWxsb2Nf
bG9jazsKCgogcmF3X3NwaW5sb2NrX3QgcGlfbG9jazsKCiBzdHJ1Y3Qgd2FrZV9xX25vZGUgd2Fr
ZV9xOwoKCgogc3RydWN0IHJiX3Jvb3RfY2FjaGVkIHBpX3dhaXRlcnM7Cgogc3RydWN0IHRhc2tf
c3RydWN0ICpwaV90b3BfdGFzazsKCiBzdHJ1Y3QgcnRfbXV0ZXhfd2FpdGVyICpwaV9ibG9ja2Vk
X29uOwojIDEwMDAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgogdm9pZCAqam91cm5hbF9pbmZv
OwoKCiBzdHJ1Y3QgYmlvX2xpc3QgKmJpb19saXN0OwoKCgogc3RydWN0IGJsa19wbHVnICpwbHVn
OwoKCgogc3RydWN0IHJlY2xhaW1fc3RhdGUgKnJlY2xhaW1fc3RhdGU7Cgogc3RydWN0IGJhY2tp
bmdfZGV2X2luZm8gKmJhY2tpbmdfZGV2X2luZm87Cgogc3RydWN0IGlvX2NvbnRleHQgKmlvX2Nv
bnRleHQ7CgoKIHN0cnVjdCBjYXB0dXJlX2NvbnRyb2wgKmNhcHR1cmVfY29udHJvbDsKCgogdW5z
aWduZWQgbG9uZyBwdHJhY2VfbWVzc2FnZTsKIGtlcm5lbF9zaWdpbmZvX3QgKmxhc3Rfc2lnaW5m
bzsKCiBzdHJ1Y3QgdGFza19pb19hY2NvdW50aW5nIGlvYWM7CgoKCgoKCiB1NjQgYWNjdF9yc3Nf
bWVtMTsKCiB1NjQgYWNjdF92bV9tZW0xOwoKIHU2NCBhY2N0X3RpbWV4cGQ7CgoKCiBub2RlbWFz
a190IG1lbXNfYWxsb3dlZDsKCiBzZXFjb3VudF90IG1lbXNfYWxsb3dlZF9zZXE7CiBpbnQgY3B1
c2V0X21lbV9zcHJlYWRfcm90b3I7CiBpbnQgY3B1c2V0X3NsYWJfc3ByZWFkX3JvdG9yOwoKCgog
c3RydWN0IGNzc19zZXQgKmNncm91cHM7Cgogc3RydWN0IGxpc3RfaGVhZCBjZ19saXN0OwoKCgoK
Cgogc3RydWN0IHJvYnVzdF9saXN0X2hlYWQgKnJvYnVzdF9saXN0OwoKCgogc3RydWN0IGxpc3Rf
aGVhZCBwaV9zdGF0ZV9saXN0Owogc3RydWN0IGZ1dGV4X3BpX3N0YXRlICpwaV9zdGF0ZV9jYWNo
ZTsKIHN0cnVjdCBtdXRleCBmdXRleF9leGl0X211dGV4OwogdW5zaWduZWQgaW50IGZ1dGV4X3N0
YXRlOwoKCiBzdHJ1Y3QgcGVyZl9ldmVudF9jb250ZXh0ICpwZXJmX2V2ZW50X2N0eHBbcGVyZl9u
cl90YXNrX2NvbnRleHRzXTsKIHN0cnVjdCBtdXRleCBwZXJmX2V2ZW50X211dGV4Owogc3RydWN0
IGxpc3RfaGVhZCBwZXJmX2V2ZW50X2xpc3Q7CiMgMTEzMCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiCiBzdHJ1Y3QgcnNlcSAqcnNlcTsKIHUzMiByc2VxX3NpZzsKCgoKCiB1bnNpZ25lZCBsb25n
IHJzZXFfZXZlbnRfbWFzazsKCgogc3RydWN0IHRsYmZsdXNoX3VubWFwX2JhdGNoIHRsYl91YmM7
CgogdW5pb24gewogIHJlZmNvdW50X3QgcmN1X3VzZXJzOwogIHN0cnVjdCBjYWxsYmFja19oZWFk
IHJjdTsKIH07CgoKIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnNwbGljZV9waXBlOwoKIHN0cnVj
dCBwYWdlX2ZyYWcgdGFza19mcmFnOwoKCiBzdHJ1Y3QgdGFza19kZWxheV9pbmZvICpkZWxheXM7
CiMgMTE2MyAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiBpbnQgbnJfZGlydGllZDsKIGludCBu
cl9kaXJ0aWVkX3BhdXNlOwoKIHVuc2lnbmVkIGxvbmcgZGlydHlfcGF1c2VkX3doZW47CgoKIGlu
dCBsYXRlbmN5X3JlY29yZF9jb3VudDsKIHN0cnVjdCBsYXRlbmN5X3JlY29yZCBsYXRlbmN5X3Jl
Y29yZFszMl07CgoKCgoKIHU2NCB0aW1lcl9zbGFja19uczsKIHU2NCBkZWZhdWx0X3RpbWVyX3Ns
YWNrX25zOwoKCgoKCgoKIGludCBjdXJyX3JldF9zdGFjazsKIGludCBjdXJyX3JldF9kZXB0aDsK
Cgogc3RydWN0IGZ0cmFjZV9yZXRfc3RhY2sgKnJldF9zdGFjazsKCgogdW5zaWduZWQgbG9uZyBs
b25nIGZ0cmFjZV90aW1lc3RhbXA7CgoKCgoKIGF0b21pY190IHRyYWNlX292ZXJydW47CgoKIGF0
b21pY190IHRyYWNpbmdfZ3JhcGhfcGF1c2U7CgoKCgogdW5zaWduZWQgbG9uZyB0cmFjZTsKCgog
dW5zaWduZWQgbG9uZyB0cmFjZV9yZWN1cnNpb247CiMgMTIzNSAiLi9pbmNsdWRlL2xpbnV4L3Nj
aGVkLmgiCiBzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2dfaW5fb29tOwogZ2ZwX3QgbWVtY2dfb29t
X2dmcF9tYXNrOwogaW50IG1lbWNnX29vbV9vcmRlcjsKCgogdW5zaWduZWQgaW50IG1lbWNnX25y
X3BhZ2VzX292ZXJfaGlnaDsKCgogc3RydWN0IG1lbV9jZ3JvdXAgKmFjdGl2ZV9tZW1jZzsKCgoK
IHN0cnVjdCByZXF1ZXN0X3F1ZXVlICp0aHJvdHRsZV9xdWV1ZTsKCgoKCgoKIHVuc2lnbmVkIGlu
dCBzZXF1ZW50aWFsX2lvOwogdW5zaWduZWQgaW50IHNlcXVlbnRpYWxfaW9fYXZnOwoKCgoKIGlu
dCBwYWdlZmF1bHRfZGlzYWJsZWQ7Cgogc3RydWN0IHRhc2tfc3RydWN0ICpvb21fcmVhcGVyX2xp
c3Q7CgoKIHN0cnVjdCB2bV9zdHJ1Y3QgKnN0YWNrX3ZtX2FyZWE7CgoKCiByZWZjb3VudF90IHN0
YWNrX3JlZmNvdW50OwoKCgoKCgogdm9pZCAqc2VjdXJpdHk7CiMgMTI4OCAiLi9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiCgoKCiBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB0aHJlYWQ7CgoKCgoKCgp9OwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IHBpZCAqdGFza19waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQp7CiByZXR1cm4g
dGFzay0+dGhyZWFkX3BpZDsKfQojIDEzMTcgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpwaWRf
dCBfX3Rhc2tfcGlkX25yX25zKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgZW51bSBwaWRfdHlw
ZSB0eXBlLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpOwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19waWRfbnIoc3Ry
dWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIHJldHVybiB0c2stPnBpZDsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19w
aWRfbnJfbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpu
cykKewogcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURUWVBFX1BJRCwgbnMpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBw
aWRfdCB0YXNrX3BpZF92bnIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIHJldHVybiBfX3Rh
c2tfcGlkX25yX25zKHRzaywgUElEVFlQRV9QSUQsICgodm9pZCAqKTApKTsKfQoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHBpZF90IHRh
c2tfdGdpZF9ucihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIHRzay0+dGdpZDsK
fQojIDEzNTAgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgcGlkX2FsaXZlKGNvbnN0IHN0
cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogcmV0dXJuIHAtPnRocmVhZF9waWQgIT0gKCh2b2lkICop
MCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHBpZF90IHRhc2tfcGdycF9ucl9ucyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3Ry
dWN0IHBpZF9uYW1lc3BhY2UgKm5zKQp7CiByZXR1cm4gX190YXNrX3BpZF9ucl9ucyh0c2ssIFBJ
RFRZUEVfUEdJRCwgbnMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3BncnBfdm5yKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdHNrKQp7CiByZXR1cm4gX190YXNrX3BpZF9ucl9ucyh0c2ssIFBJRFRZUEVfUEdJRCwgKCh2
b2lkICopMCkpOwp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19zZXNzaW9uX25yX25zKHN0cnVjdCB0YXNrX3N0cnVj
dCAqdHNrLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCnsKIHJldHVybiBfX3Rhc2tfcGlkX25y
X25zKHRzaywgUElEVFlQRV9TSUQsIG5zKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19zZXNzaW9uX3ZucihzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNrLCBQSURU
WVBFX1NJRCwgKCh2b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBwaWRfdCB0YXNrX3RnaWRfbnJfbnMoc3RydWN0IHRh
c2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucykKewogcmV0dXJuIF9fdGFz
a19waWRfbnJfbnModHNrLCBQSURUWVBFX1RHSUQsIG5zKTsKfQoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza190Z2lkX3Zu
cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIF9fdGFza19waWRfbnJfbnModHNr
LCBQSURUWVBFX1RHSUQsICgodm9pZCAqKTApKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19wcGlkX25yX25zKGNv
bnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpCnsK
IHBpZF90IHBpZCA9IDA7CgogcmN1X3JlYWRfbG9jaygpOwogaWYgKHBpZF9hbGl2ZSh0c2spKQog
IHBpZCA9IHRhc2tfdGdpZF9ucl9ucygoeyB0eXBlb2YoKih0c2stPnJlYWxfcGFyZW50KSkgKl9f
X19fX19fcDEgPSAodHlwZW9mKCoodHNrLT5yZWFsX3BhcmVudCkpICopKHsgdW5pb24geyB0eXBl
b2YoKHRzay0+cmVhbF9wYXJlbnQpKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191OyBpZiAoMSkg
X19yZWFkX29uY2Vfc2l6ZSgmKCh0c2stPnJlYWxfcGFyZW50KSksIF9fdS5fX2MsIHNpemVvZigo
dHNrLT5yZWFsX3BhcmVudCkpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigodHNr
LT5yZWFsX3BhcmVudCkpLCBfX3UuX19jLCBzaXplb2YoKHRzay0+cmVhbF9wYXJlbnQpKSk7IGRv
IHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBl
b2YoKih0c2stPnJlYWxfcGFyZW50KSkgKikoX19fX19fX19wMSkpOyB9KSwgbnMpOwogcmN1X3Jl
YWRfdW5sb2NrKCk7CgogcmV0dXJuIHBpZDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcGlkX3QgdGFza19wcGlkX25yKGNvbnN0IHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQp7CiByZXR1cm4gdGFza19wcGlkX25yX25zKHRzaywgJmlu
aXRfcGlkX25zKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHBpZF90IHRhc2tfcGdycF9ucihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRz
aykKewogcmV0dXJuIHRhc2tfcGdycF9ucl9ucyh0c2ssICZpbml0X3BpZF9ucyk7Cn0KCgoKCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVu
c2lnbmVkIGludCB0YXNrX3N0YXRlX2luZGV4KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQp7CiB1
bnNpZ25lZCBpbnQgdHNrX3N0YXRlID0gKHsgdW5pb24geyB0eXBlb2YodHNrLT5zdGF0ZSkgX192
YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJih0c2stPnN0
YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3RhdGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXpl
X25vY2hlY2soJih0c2stPnN0YXRlKSwgX191Ll9fYywgc2l6ZW9mKHRzay0+c3RhdGUpKTsgZG8g
eyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsKIHVuc2lnbmVkIGludCBzdGF0ZSA9ICh0c2tf
c3RhdGUgfCB0c2stPmV4aXRfc3RhdGUpICYgKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4
MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCk7CgogZG8geyBleHRlcm4g
dm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDE3KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJy
b3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAw
MiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAx
KSkgPT0gMCB8fCAoKCgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAw
MDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKCgoKCgweDAwMDAg
fCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAw
eDAwNDApICsgMSkgPDwgMSkpIC0gMSkpICE9IDApIikpKTsgaWYgKCEoISgoKCgoMHgwMDAwIHwg
MHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgw
MDQwKSArIDEpIDw8IDEpKSA9PSAwIHx8ICgoKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8
IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkg
JiAoKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgLSAxKSkgIT0gMCkpKSkgX19jb21waWxl
dGltZV9hc3NlcnRfMTQxNygpOyB9IHdoaWxlICgwKTsKCiBpZiAodHNrX3N0YXRlID09ICgweDAw
MDIgfCAweDA0MDApKQogIHN0YXRlID0gKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSk7CgogcmV0dXJuIGZs
cyhzdGF0ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGNoYXIgdGFza19pbmRleF90b19jaGFyKHVuc2lnbmVkIGludCBzdGF0ZSkK
ewogc3RhdGljIGNvbnN0IGNoYXIgc3RhdGVfY2hhcltdID0gIlJTRFR0WFpQSSI7CgogZG8geyBl
eHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8xNDI5KHZvaWQpIF9fYXR0cmlidXRlX18o
KF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiMSArIGlsb2cyKFRBU0tfUkVQT1JU
X01BWCkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSIpKSk7IGlmICghKCEoMSArICggX19idWls
dGluX2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggX19idWlsdGlu
X2NvbnN0YW50X3AoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA/ICggKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgPCAyID8gMCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIg
fCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkp
ICYgKDFVTEwgPDwgNjMpID8gNjMgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgw
MDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgx
VUxMIDw8IDYyKSA/IDYyIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8
IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8
PCA2MSkgPyA2MSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAw
MDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNjAp
ID8gNjAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU5KSA/IDU5
IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAx
MCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1OCkgPyA1OCA6ICgo
KCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAw
eDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTcpID8gNTcgOiAoKCgoMHgw
MDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIw
IHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDU2KSA/IDU2IDogKCgoKDB4MDAwMCB8
IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4
MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1NSkgPyA1NSA6ICgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNTQpID8gNTQgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwg
MHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEp
IDw8IDEpKSAmICgxVUxMIDw8IDUzKSA/IDUzIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAw
MiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAx
KSkgJiAoMVVMTCA8PCA1MikgPyA1MiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAw
eDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYg
KDFVTEwgPDwgNTEpID8gNTEgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0
IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxM
IDw8IDUwKSA/IDUwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0
OSkgPyA0OSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDgg
fCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDgpID8g
NDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ3KSA/IDQ3IDog
KCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8
IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0NikgPyA0NiA6ICgoKCgw
eDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAw
MjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgNDUpID8gNDUgOiAoKCgoMHgwMDAw
IHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwg
MHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQ0KSA/IDQ0IDogKCgoKDB4MDAwMCB8IDB4
MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0
MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA0MykgPyA0MyA6ICgoKCgweDAwMDAgfCAweDAwMDEg
fCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsg
MSkgPDwgMSkpICYgKDFVTEwgPDwgNDIpID8gNDIgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgw
MDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8
IDEpKSAmICgxVUxMIDw8IDQxKSA/IDQxIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8
IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkg
JiAoMVVMTCA8PCA0MCkgPyA0MCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgMzkpID8gMzkgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwg
MHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8
IDM4KSA/IDM4IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAw
OCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNykg
PyAzNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAw
eDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzYpID8gMzYg
OiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEw
IHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDM1KSA/IDM1IDogKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzNCkgPyAzNCA6ICgoKCgweDAw
MDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAg
fCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMzMpID8gMzMgOiAoKCgoMHgwMDAwIHwg
MHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgw
MDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDMyKSA/IDMyIDogKCgoKDB4MDAwMCB8IDB4MDAw
MSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkg
KyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAzMSkgPyAzMSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAw
eDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkg
PDwgMSkpICYgKDFVTEwgPDwgMzApID8gMzAgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDI5KSA/IDI5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4
MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAo
MVVMTCA8PCAyOCkgPyAyOCA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQg
fCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwg
PDwgMjcpID8gMjcgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgw
MDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDI2
KSA/IDI2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8
IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyNSkgPyAy
NSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAw
MTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjQpID8gMjQgOiAo
KCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwg
MHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIzKSA/IDIzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyMikgPyAyMiA6ICgoKCgweDAwMDAg
fCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAw
eDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMjEpID8gMjEgOiAoKCgoMHgwMDAwIHwgMHgw
MDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQw
KSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDIwKSA/IDIwIDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCAxOSkgPyAxOSA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAw
MDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwg
MSkpICYgKDFVTEwgPDwgMTgpID8gMTggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwg
MHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAm
ICgxVUxMIDw8IDE3KSA/IDE3IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAw
NCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVM
TCA8PCAxNikgPyAxNiA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAw
eDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwg
MTUpID8gMTUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4
IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDE0KSA/
IDE0IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4
MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMykgPyAxMyA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMTIpID8gMTIgOiAoKCgo
MHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgw
MDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDExKSA/IDExIDogKCgoKDB4MDAw
MCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8
IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAxMCkgPyAxMCA6ICgoKCgweDAwMDAgfCAw
eDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAw
NDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgOSkgPyA5IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8
IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAx
KSA8PCAxKSkgJiAoMVVMTCA8PCA4KSA/IDggOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAy
IHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEp
KSAmICgxVUxMIDw8IDcpID8gNyA6ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAw
MDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFV
TEwgPDwgNikgPyA2IDogKCgoKDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4
MDAwOCB8IDB4MDAxMCB8IDB4MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCA1
KSA/IDUgOiAoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwg
MHgwMDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSAmICgxVUxMIDw8IDQpID8gNCA6
ICgoKCgweDAwMDAgfCAweDAwMDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAg
fCAweDAwMjAgfCAweDAwNDApICsgMSkgPDwgMSkpICYgKDFVTEwgPDwgMykgPyAzIDogKCgoKDB4
MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4MDAy
MCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgJiAoMVVMTCA8PCAyKSA/IDIgOiAxKSA6IC0xKSA6IChz
aXplb2YoKCgoMHgwMDAwIHwgMHgwMDAxIHwgMHgwMDAyIHwgMHgwMDA0IHwgMHgwMDA4IHwgMHgw
MDEwIHwgMHgwMDIwIHwgMHgwMDQwKSArIDEpIDw8IDEpKSA8PSA0KSA/IF9faWxvZzJfdTMyKCgo
KDB4MDAwMCB8IDB4MDAwMSB8IDB4MDAwMiB8IDB4MDAwNCB8IDB4MDAwOCB8IDB4MDAxMCB8IDB4
MDAyMCB8IDB4MDA0MCkgKyAxKSA8PCAxKSkgOiBfX2lsb2cyX3U2NCgoKCgweDAwMDAgfCAweDAw
MDEgfCAweDAwMDIgfCAweDAwMDQgfCAweDAwMDggfCAweDAwMTAgfCAweDAwMjAgfCAweDAwNDAp
ICsgMSkgPDwgMSkpICkgIT0gc2l6ZW9mKHN0YXRlX2NoYXIpIC0gMSkpKSBfX2NvbXBpbGV0aW1l
X2Fzc2VydF8xNDI5KCk7IH0gd2hpbGUgKDApOwoKIHJldHVybiBzdGF0ZV9jaGFyW3N0YXRlXTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgY2hhciB0YXNrX3N0YXRlX3RvX2NoYXIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIHJl
dHVybiB0YXNrX2luZGV4X3RvX2NoYXIodGFza19zdGF0ZV9pbmRleCh0c2spKTsKfQojIDE0NDgg
Ii4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaXNfZ2xvYmFsX2luaXQoc3RydWN0IHRhc2tf
c3RydWN0ICp0c2spCnsKIHJldHVybiB0YXNrX3RnaWRfbnIodHNrKSA9PSAxOwp9CgpleHRlcm4g
c3RydWN0IHBpZCAqY2FkX3BpZDsKIyAxNTE3ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9v
bCBpc19wZXJjcHVfdGhyZWFkKHZvaWQpCnsKCiByZXR1cm4gKGdldF9jdXJyZW50KCktPmZsYWdz
ICYgMHgwNDAwMDAwMCkgJiYKICAoZ2V0X2N1cnJlbnQoKS0+bnJfY3B1c19hbGxvd2VkID09IDEp
OwoKCgp9CiMgMTU0OSAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19ub19uZXdf
cHJpdnMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCgwLCAmcC0+YXRv
bWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X25vX25ld19wcml2cyhzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnApIHsgc2V0X2JpdCgwLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwcmVh
ZF9wYWdlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyByZXR1cm4gdGVzdF9iaXQoMSwgJnAtPmF0
b21pY19mbGFncyk7IH0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCB0YXNrX3NldF9zcHJlYWRfcGFnZShzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnApIHsgc2V0X2JpdCgxLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfY2xlYXJf
c3ByZWFkX3BhZ2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNsZWFyX2JpdCgxLCAmcC0+YXRv
bWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwcmVhZF9zbGFiKHN0cnVjdCB0YXNrX3N0cnVjdCAq
cCkgeyByZXR1cm4gdGVzdF9iaXQoMiwgJnAtPmF0b21pY19mbGFncyk7IH0Kc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB0YXNrX3Nl
dF9zcHJlYWRfc2xhYihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgc2V0X2JpdCgyLCAmcC0+YXRv
bWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfY2xlYXJfc3ByZWFkX3NsYWIoc3RydWN0IHRhc2tfc3Ry
dWN0ICpwKSB7IGNsZWFyX2JpdCgyLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3Nw
ZWNfc3NiX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCgz
LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX2Rpc2FibGUoc3Ry
dWN0IHRhc2tfc3RydWN0ICpwKSB7IHNldF9iaXQoMywgJnAtPmF0b21pY19mbGFncyk7IH0Kc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCB0YXNrX2NsZWFyX3NwZWNfc3NiX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNs
ZWFyX2JpdCgzLCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwZWNfc3NiX25vZXhl
YyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApIHsgcmV0dXJuIHRlc3RfYml0KDcsICZwLT5hdG9taWNf
ZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgdGFza19zZXRfc3BlY19zc2Jfbm9leGVjKHN0cnVjdCB0YXNrX3N0cnVj
dCAqcCkgeyBzZXRfYml0KDcsICZwLT5hdG9taWNfZmxhZ3MpOyB9CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdGFza19jbGVhcl9z
cGVjX3NzYl9ub2V4ZWMoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IGNsZWFyX2JpdCg3LCAmcC0+
YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0YXNrX3NwZWNfc3NiX2ZvcmNlX2Rpc2FibGUoc3RydWN0
IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCg0LCAmcC0+YXRvbWljX2ZsYWdzKTsg
fQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHRhc2tfc2V0X3NwZWNfc3NiX2ZvcmNlX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0
ICpwKSB7IHNldF9iaXQoNCwgJnAtPmF0b21pY19mbGFncyk7IH0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19zcGVjX2li
X2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCg1LCAmcC0+
YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfaWJfZGlzYWJsZShzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnApIHsgc2V0X2JpdCg1LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHRhc2tf
Y2xlYXJfc3BlY19pYl9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkgeyBjbGVhcl9iaXQo
NSwgJnAtPmF0b21pY19mbGFncyk7IH0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19zcGVjX2liX2ZvcmNlX2Rpc2FibGUo
c3RydWN0IHRhc2tfc3RydWN0ICpwKSB7IHJldHVybiB0ZXN0X2JpdCg2LCAmcC0+YXRvbWljX2Zs
YWdzKTsgfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHRhc2tfc2V0X3NwZWNfaWJfZm9yY2VfZGlzYWJsZShzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnApIHsgc2V0X2JpdCg2LCAmcC0+YXRvbWljX2ZsYWdzKTsgfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZApjdXJyZW50
X3Jlc3RvcmVfZmxhZ3ModW5zaWduZWQgbG9uZyBvcmlnX2ZsYWdzLCB1bnNpZ25lZCBsb25nIGZs
YWdzKQp7CiBnZXRfY3VycmVudCgpLT5mbGFncyAmPSB+ZmxhZ3M7CiBnZXRfY3VycmVudCgpLT5m
bGFncyB8PSBvcmlnX2ZsYWdzICYgZmxhZ3M7Cn0KCmV4dGVybiBpbnQgY3B1c2V0X2NwdW1hc2tf
Y2FuX3Nocmluayhjb25zdCBzdHJ1Y3QgY3B1bWFzayAqY3VyLCBjb25zdCBzdHJ1Y3QgY3B1bWFz
ayAqdHJpYWwpOwpleHRlcm4gaW50IHRhc2tfY2FuX2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnAsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjc19jcHVzX2FsbG93ZWQpOwoKZXh0ZXJuIHZvaWQg
ZG9fc2V0X2NwdXNfYWxsb3dlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNvbnN0IHN0cnVjdCBj
cHVtYXNrICpuZXdfbWFzayk7CmV4dGVybiBpbnQgc2V0X2NwdXNfYWxsb3dlZF9wdHIoc3RydWN0
IHRhc2tfc3RydWN0ICpwLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbmV3X21hc2spOwojIDE2MDIg
Ii4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gaW50IHlpZWxkX3RvKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCwgYm9vbCBwcmVlbXB0KTsKZXh0ZXJuIHZvaWQgc2V0X3VzZXJfbmljZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnAsIGxvbmcgbmljZSk7CmV4dGVybiBpbnQgdGFza19wcmlvKGNvbnN0
IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGFza19uaWNlKGNvbnN0IHN0cnVj
dCB0YXNrX3N0cnVjdCAqcCkKewogcmV0dXJuICgoKHApLT5zdGF0aWNfcHJpbykgLSAoMTAwICsg
KDE5IC0gLTIwICsgMSkgLyAyKSk7Cn0KCmV4dGVybiBpbnQgY2FuX25pY2UoY29uc3Qgc3RydWN0
IHRhc2tfc3RydWN0ICpwLCBjb25zdCBpbnQgbmljZSk7CmV4dGVybiBpbnQgdGFza19jdXJyKGNv
bnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CmV4dGVybiBpbnQgaWRsZV9jcHUoaW50IGNwdSk7
CmV4dGVybiBpbnQgYXZhaWxhYmxlX2lkbGVfY3B1KGludCBjcHUpOwpleHRlcm4gaW50IHNjaGVk
X3NldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgaW50LCBjb25zdCBzdHJ1Y3Qgc2No
ZWRfcGFyYW0gKik7CmV4dGVybiBpbnQgc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2soc3RydWN0
IHRhc2tfc3RydWN0ICosIGludCwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICopOwpleHRlcm4g
aW50IHNjaGVkX3NldGF0dHIoc3RydWN0IHRhc2tfc3RydWN0ICosIGNvbnN0IHN0cnVjdCBzY2hl
ZF9hdHRyICopOwpleHRlcm4gaW50IHNjaGVkX3NldGF0dHJfbm9jaGVjayhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKiwgY29uc3Qgc3RydWN0IHNjaGVkX2F0dHIgKik7CmV4dGVybiBzdHJ1Y3QgdGFza19z
dHJ1Y3QgKmlkbGVfdGFzayhpbnQgY3B1KTsKCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgaXNfaWRsZV90YXNrKGNvbnN0
IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogcmV0dXJuICEhKHAtPmZsYWdzICYgMHgwMDAwMDAw
Mik7Cn0KCmV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnJfdGFzayhpbnQgY3B1KTsKZXh0
ZXJuIHZvaWQgaWE2NF9zZXRfY3Vycl90YXNrKGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAq
cCk7Cgp2b2lkIHlpZWxkKHZvaWQpOwoKdW5pb24gdGhyZWFkX3VuaW9uIHsKCiBzdHJ1Y3QgdGFz
a19zdHJ1Y3QgdGFzazsKCgoKCiB1bnNpZ25lZCBsb25nIHN0YWNrWygoKDFVTCkgPDwgMTIpIDw8
ICgyICsgMCkpL3NpemVvZihsb25nKV07Cn07CgoKCgoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5p
dF9zdGFja1soKCgxVUwpIDw8IDEyKSA8PCAoMiArIDApKSAvIHNpemVvZih1bnNpZ25lZCBsb25n
KV07CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IHRocmVhZF9pbmZvICp0YXNrX3RocmVhZF9pbmZvKHN0cnVjdCB0YXNrX3N0
cnVjdCAqdGFzaykKewogcmV0dXJuICZ0YXNrLT50aHJlYWRfaW5mbzsKfQojIDE2NzkgIi4vaW5j
bHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpmaW5kX3Rhc2tf
YnlfdnBpZChwaWRfdCBucik7CmV4dGVybiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmZpbmRfdGFza19i
eV9waWRfbnMocGlkX3QgbnIsIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucyk7CgoKCgpleHRlcm4g
c3RydWN0IHRhc2tfc3RydWN0ICpmaW5kX2dldF90YXNrX2J5X3ZwaWQocGlkX3QgbnIpOwoKZXh0
ZXJuIGludCB3YWtlX3VwX3N0YXRlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBp
bnQgc3RhdGUpOwpleHRlcm4gaW50IHdha2VfdXBfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnRzayk7CmV4dGVybiB2b2lkIHdha2VfdXBfbmV3X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICp0
c2spOwoKCmV4dGVybiB2b2lkIGtpY2tfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7
CgoKCgpleHRlcm4gdm9pZCBfX3NldF90YXNrX2NvbW0oc3RydWN0IHRhc2tfc3RydWN0ICp0c2ss
IGNvbnN0IGNoYXIgKmZyb20sIGJvb2wgZXhlYyk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNldF90YXNrX2NvbW0oc3RydWN0
IHRhc2tfc3RydWN0ICp0c2ssIGNvbnN0IGNoYXIgKmZyb20pCnsKIF9fc2V0X3Rhc2tfY29tbSh0
c2ssIGZyb20sIGZhbHNlKTsKfQoKZXh0ZXJuIGNoYXIgKl9fZ2V0X3Rhc2tfY29tbShjaGFyICp0
bywgc2l6ZV90IGxlbiwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwoKCgoKCgp2b2lkIHNjaGVk
dWxlcl9pcGkodm9pZCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIHdhaXRfdGFza19pbmFjdGl2ZShz
dHJ1Y3QgdGFza19zdHJ1Y3QgKiwgbG9uZyBtYXRjaF9zdGF0ZSk7CiMgMTcyNSAiLi9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19zdHJ1
Y3QgKnRzaywgaW50IGZsYWcpCnsKIHNldF90aV90aHJlYWRfZmxhZyh0YXNrX3RocmVhZF9pbmZv
KHRzayksIGZsYWcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnRzaywgaW50IGZsYWcpCnsKIGNsZWFyX3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFk
X2luZm8odHNrKSwgZmxhZyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdXBkYXRlX3Rza190aHJlYWRfZmxhZyhzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRzaywgaW50IGZsYWcsCiAgICAgICBib29sIHZhbHVlKQp7CiB1cGRhdGVf
dGlfdGhyZWFkX2ZsYWcodGFza190aHJlYWRfaW5mbyh0c2spLCBmbGFnLCB2YWx1ZSk7Cn0KCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlu
dCB0ZXN0X2FuZF9zZXRfdHNrX3RocmVhZF9mbGFnKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBp
bnQgZmxhZykKewogcmV0dXJuIHRlc3RfYW5kX3NldF90aV90aHJlYWRfZmxhZyh0YXNrX3RocmVh
ZF9pbmZvKHRzayksIGZsYWcpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGVzdF9hbmRfY2xlYXJfdHNrX3RocmVhZF9mbGFn
KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgZmxhZykKewogcmV0dXJuIHRlc3RfYW5kX2Ns
ZWFyX3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCB0
ZXN0X3Rza190aHJlYWRfZmxhZyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGZsYWcpCnsK
IHJldHVybiB0ZXN0X3RpX3RocmVhZF9mbGFnKHRhc2tfdGhyZWFkX2luZm8odHNrKSwgZmxhZyk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgc2V0X3Rza19uZWVkX3Jlc2NoZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsK
IHNldF90c2tfdGhyZWFkX2ZsYWcodHNrLDMpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNsZWFyX3Rza19uZWVkX3Jlc2No
ZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKIGNsZWFyX3Rza190aHJlYWRfZmxhZyh0c2ss
Myk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGludCB0ZXN0X3Rza19uZWVkX3Jlc2NoZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2sp
CnsKIHJldHVybiBfX2J1aWx0aW5fZXhwZWN0KCEhKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRzaywz
KSksIDApOwp9CiMgMTc3OCAiLi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCmV4dGVybiBpbnQgX2Nv
bmRfcmVzY2hlZCh2b2lkKTsKIyAxNzg4ICIuL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKZXh0ZXJu
IGludCBfX2NvbmRfcmVzY2hlZF9sb2NrKHNwaW5sb2NrX3QgKmxvY2spOwoKCgoKCgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGNv
bmRfcmVzY2hlZF9yY3Uodm9pZCkKewoKIHJjdV9yZWFkX3VubG9jaygpOwogKHsgX19fbWlnaHRf
c2xlZXAoImluY2x1ZGUvbGludXgvc2NoZWQuaCIsIDE3OTksIDApOyBfY29uZF9yZXNjaGVkKCk7
IH0pOwogcmN1X3JlYWRfbG9jaygpOwoKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc3Bpbl9uZWVkYnJlYWsoc3Bpbmxv
Y2tfdCAqbG9jaykKewoKCgogcmV0dXJuIDA7Cgp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19p
bmxpbmVfXykpIGJvb2wgbmVlZF9yZXNjaGVkKHZvaWQpCnsKIHJldHVybiBfX2J1aWx0aW5fZXhw
ZWN0KCEhKHRlc3RfdGlfdGhyZWFkX2ZsYWcoKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilnZXRfY3Vy
cmVudCgpKSwgMykpLCAwKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbnQgdGFza19jcHUoY29uc3Qgc3Ry
dWN0IHRhc2tfc3RydWN0ICpwKQp7CgogcmV0dXJuICh7IHVuaW9uIHsgdHlwZW9mKHAtPmNwdSkg
X192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJihwLT5j
cHUpLCBfX3UuX19jLCBzaXplb2YocC0+Y3B1KSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2No
ZWNrKCYocC0+Y3B1KSwgX191Ll9fYywgc2l6ZW9mKHAtPmNwdSkpOyBkbyB7IH0gd2hpbGUgKDAp
OyBfX3UuX192YWw7IH0pOwoKCgp9CgpleHRlcm4gdm9pZCBzZXRfdGFza19jcHUoc3RydWN0IHRh
c2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KTsKIyAxODY3ICIuL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIKZXh0ZXJuIGxvbmcgc2NoZWRfc2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqbmV3X21hc2spOwpleHRlcm4gbG9uZyBzY2hlZF9nZXRhZmZpbml0eShw
aWRfdCBwaWQsIHN0cnVjdCBjcHVtYXNrICptYXNrKTsKIyAxODgwICIuL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIKZW51bSByc2VxX2V2ZW50X21hc2tfYml0cyB7CiBSU0VRX0VWRU5UX1BSRUVNUFRf
QklUID0gUlNFUV9DU19GTEFHX05PX1JFU1RBUlRfT05fUFJFRU1QVF9CSVQsCiBSU0VRX0VWRU5U
X1NJR05BTF9CSVQgPSBSU0VRX0NTX0ZMQUdfTk9fUkVTVEFSVF9PTl9TSUdOQUxfQklULAogUlNF
UV9FVkVOVF9NSUdSQVRFX0JJVCA9IFJTRVFfQ1NfRkxBR19OT19SRVNUQVJUX09OX01JR1JBVEVf
QklULAp9OwoKZW51bSByc2VxX2V2ZW50X21hc2sgewogUlNFUV9FVkVOVF9QUkVFTVBUID0gKDFV
IDw8IFJTRVFfRVZFTlRfUFJFRU1QVF9CSVQpLAogUlNFUV9FVkVOVF9TSUdOQUwgPSAoMVUgPDwg
UlNFUV9FVkVOVF9TSUdOQUxfQklUKSwKIFJTRVFfRVZFTlRfTUlHUkFURSA9ICgxVSA8PCBSU0VR
X0VWRU5UX01JR1JBVEVfQklUKSwKfTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9zZXRfbm90aWZ5X3Jlc3VtZShzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnQpCnsKIGlmICh0LT5yc2VxKQogIHNldF90c2tfdGhyZWFkX2ZsYWco
dCwgMSk7Cn0KCnZvaWQgX19yc2VxX2hhbmRsZV9ub3RpZnlfcmVzdW1lKHN0cnVjdCBrc2lnbmFs
ICpzaWcsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9oYW5kbGVfbm90aWZ5X3Jl
c3VtZShzdHJ1Y3Qga3NpZ25hbCAqa3NpZywKICAgICAgICAgIHN0cnVjdCBwdF9yZWdzICpyZWdz
KQp7CiBpZiAoZ2V0X2N1cnJlbnQoKS0+cnNlcSkKICBfX3JzZXFfaGFuZGxlX25vdGlmeV9yZXN1
bWUoa3NpZywgcmVncyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9zaWduYWxfZGVsaXZlcihzdHJ1Y3Qga3NpZ25h
bCAqa3NpZywKICAgICAgICAgICBzdHJ1Y3QgcHRfcmVncyAqcmVncykKewogX19hc21fXyBfX3Zv
bGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIF9fc2V0X2JpdChSU0VRX0VWRU5UX1NJR05BTF9C
SVQsICZnZXRfY3VycmVudCgpLT5yc2VxX2V2ZW50X21hc2spOwogX19hc21fXyBfX3ZvbGF0aWxl
X18oIiI6IDogOiJtZW1vcnkiKTsKIHJzZXFfaGFuZGxlX25vdGlmeV9yZXN1bWUoa3NpZywgcmVn
cyk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIHJzZXFfcHJlZW1wdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpCnsKIF9fc2V0
X2JpdChSU0VRX0VWRU5UX1BSRUVNUFRfQklULCAmdC0+cnNlcV9ldmVudF9tYXNrKTsKIHJzZXFf
c2V0X25vdGlmeV9yZXN1bWUodCk7Cn0KCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfbWlncmF0ZShzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnQpCnsKIF9fc2V0X2JpdChSU0VRX0VWRU5UX01JR1JBVEVfQklULCAmdC0+cnNlcV9l
dmVudF9tYXNrKTsKIHJzZXFfc2V0X25vdGlmeV9yZXN1bWUodCk7Cn0KCgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFf
Zm9yayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsIHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MpCnsK
IGlmIChjbG9uZV9mbGFncyAmIDB4MDAwMDAxMDApIHsKICB0LT5yc2VxID0gKCh2b2lkICopMCk7
CiAgdC0+cnNlcV9zaWcgPSAwOwogIHQtPnJzZXFfZXZlbnRfbWFzayA9IDA7CiB9IGVsc2Ugewog
IHQtPnJzZXEgPSBnZXRfY3VycmVudCgpLT5yc2VxOwogIHQtPnJzZXFfc2lnID0gZ2V0X2N1cnJl
bnQoKS0+cnNlcV9zaWc7CiAgdC0+cnNlcV9ldmVudF9tYXNrID0gZ2V0X2N1cnJlbnQoKS0+cnNl
cV9ldmVudF9tYXNrOwogfQp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJzZXFfZXhlY3ZlKHN0cnVjdCB0YXNrX3N0cnVjdCAq
dCkKewogdC0+cnNlcSA9ICgodm9pZCAqKTApOwogdC0+cnNlcV9zaWcgPSAwOwogdC0+cnNlcV9l
dmVudF9tYXNrID0gMDsKfQojIDE5ODIgIi4vaW5jbHVkZS9saW51eC9zY2hlZC5oIgp2b2lkIF9f
ZXhpdF91bWgoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spOwoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBleGl0X3VtaChzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKnRzaykKewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEodHNrLT5mbGFncyAm
IDB4MDIwMDAwMDApLCAwKSkKICBfX2V4aXRfdW1oKHRzayk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcnNlcV9z
eXNjYWxsKHN0cnVjdCBwdF9yZWdzICpyZWdzKQp7Cn0KCgoKY29uc3Qgc3RydWN0IHNjaGVkX2F2
ZyAqc2NoZWRfdHJhY2VfY2ZzX3JxX2F2ZyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEpOwpjaGFyICpz
Y2hlZF90cmFjZV9jZnNfcnFfcGF0aChzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIGNoYXIgKnN0ciwg
aW50IGxlbik7CmludCBzY2hlZF90cmFjZV9jZnNfcnFfY3B1KHN0cnVjdCBjZnNfcnEgKmNmc19y
cSk7Cgpjb25zdCBzdHJ1Y3Qgc2NoZWRfYXZnICpzY2hlZF90cmFjZV9ycV9hdmdfcnQoc3RydWN0
IHJxICpycSk7CmNvbnN0IHN0cnVjdCBzY2hlZF9hdmcgKnNjaGVkX3RyYWNlX3JxX2F2Z19kbChz
dHJ1Y3QgcnEgKnJxKTsKY29uc3Qgc3RydWN0IHNjaGVkX2F2ZyAqc2NoZWRfdHJhY2VfcnFfYXZn
X2lycShzdHJ1Y3QgcnEgKnJxKTsKCmludCBzY2hlZF90cmFjZV9ycV9jcHUoc3RydWN0IHJxICpy
cSk7Cgpjb25zdCBzdHJ1Y3QgY3B1bWFzayAqc2NoZWRfdHJhY2VfcmRfc3BhbihzdHJ1Y3Qgcm9v
dF9kb21haW4gKnJkKTsKIyA2ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgiIDIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvc2NoZWQvcnQuaCIgMQoKCgoKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
cnRfcHJpbyhpbnQgcHJpbykKewogaWYgKF9fYnVpbHRpbl9leHBlY3QoISEocHJpbyA8IDEwMCks
IDApKQogIHJldHVybiAxOwogcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBydF90YXNrKHN0cnVjdCB0YXNrX3N0
cnVjdCAqcCkKewogcmV0dXJuIHJ0X3ByaW8ocC0+cHJpbyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdGFza19pc19yZWFs
dGltZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogaW50IHBvbGljeSA9IHRzay0+cG9saWN5
OwoKIGlmIChwb2xpY3kgPT0gMSB8fCBwb2xpY3kgPT0gMikKICByZXR1cm4gdHJ1ZTsKIGlmIChw
b2xpY3kgPT0gNikKICByZXR1cm4gdHJ1ZTsKIHJldHVybiBmYWxzZTsKfQoKCgoKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB0
YXNrX3N0cnVjdCAqcnRfbXV0ZXhfZ2V0X3RvcF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkK
ewogcmV0dXJuIHAtPnBpX3RvcF90YXNrOwp9CmV4dGVybiB2b2lkIHJ0X211dGV4X3NldHByaW8o
c3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpX3Rhc2spOwpleHRl
cm4gdm9pZCBydF9tdXRleF9hZGp1c3RfcGkoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCB0
c2tfaXNfcGlfYmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKewogcmV0dXJuIHRzay0+
cGlfYmxvY2tlZF9vbiAhPSAoKHZvaWQgKikwKTsKfQojIDU4ICIuL2luY2x1ZGUvbGludXgvc2No
ZWQvcnQuaCIKZXh0ZXJuIHZvaWQgbm9ybWFsaXplX3J0X3Rhc2tzKHZvaWQpOwojIDcgIi4vaW5j
bHVkZS9saW51eC9pb3ByaW8uaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCIg
MQojIDkgIi4vaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaCIKZW51bSB7CiBJQ1FfRVhJVEVEID0g
MSA8PCAyLAp9OwojIDcyICIuL2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgiCnN0cnVjdCBpb19j
cSB7CiBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcTsKIHN0cnVjdCBpb19jb250ZXh0ICppb2M7CgoK
CgoKCgogdW5pb24gewogIHN0cnVjdCBsaXN0X2hlYWQgcV9ub2RlOwogIHN0cnVjdCBrbWVtX2Nh
Y2hlICpfX3JjdV9pY3FfY2FjaGU7CiB9OwogdW5pb24gewogIHN0cnVjdCBobGlzdF9ub2RlIGlv
Y19ub2RlOwogIHN0cnVjdCBjYWxsYmFja19oZWFkIF9fcmN1X2hlYWQ7CiB9OwoKIHVuc2lnbmVk
IGludCBmbGFnczsKfTsKCgoKCgpzdHJ1Y3QgaW9fY29udGV4dCB7CiBhdG9taWNfbG9uZ190IHJl
ZmNvdW50OwogYXRvbWljX3QgYWN0aXZlX3JlZjsKIGF0b21pY190IG5yX3Rhc2tzOwoKCiBzcGlu
bG9ja190IGxvY2s7CgogdW5zaWduZWQgc2hvcnQgaW9wcmlvOwoKCgoKIGludCBucl9iYXRjaF9y
ZXF1ZXN0czsKIHVuc2lnbmVkIGxvbmcgbGFzdF93YWl0ZWQ7Cgogc3RydWN0IHhhcnJheSBpY3Ff
dHJlZTsKIHN0cnVjdCBpb19jcSAqaWNxX2hpbnQ7CiBzdHJ1Y3QgaGxpc3RfaGVhZCBpY3FfbGlz
dDsKCiBzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVsZWFzZV93b3JrOwp9OwojIDEyOSAiLi9pbmNsdWRl
L2xpbnV4L2lvY29udGV4dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGdldF9pb19jb250ZXh0X2FjdGl2ZShzdHJ1Y3QgaW9f
Y29udGV4dCAqaW9jKQp7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGF0b21pY19sb25nX3Jl
YWQoJmlvYy0+cmVmY291bnQpIDw9IDApOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93
YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0
ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIy
Olx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJc
dCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29y
ZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50
cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImlu
Y2x1ZGUvbGludXgvaW9jb250ZXh0LmgiKSwgImkiICgxMzEpLCAiaSIgKCgxIDw8IDApfCgoMSA8
PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3
aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMjUpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0
X3dhcm5fb24pLCAwKTsgfSk7CiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGF0b21pY19yZWFk
KCZpb2MtPmFjdGl2ZV9yZWYpIDw9IDApOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93
YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0
ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIy
Olx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJc
dCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29y
ZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50
cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImlu
Y2x1ZGUvbGludXgvaW9jb250ZXh0LmgiKSwgImkiICgxMzIpLCAiaSIgKCgxIDw8IDApfCgoMSA8
PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3
aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2Nh
cmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIg
OiA6ICJpIiAoMjYpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0
X3dhcm5fb24pLCAwKTsgfSk7CiBhdG9taWNfbG9uZ19pbmMoJmlvYy0+cmVmY291bnQpOwogYXRv
bWljX2luYygmaW9jLT5hY3RpdmVfcmVmKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpb2NfdGFza19saW5rKHN0cnVjdCBp
b19jb250ZXh0ICppb2MpCnsKIGdldF9pb19jb250ZXh0X2FjdGl2ZShpb2MpOwoKICh7IGludCBf
X3JldF93YXJuX29uID0gISEoYXRvbWljX3JlYWQoJmlvYy0+bnJfdGFza3MpIDw9IDApOyBpZiAo
X19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19p
bmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rp
b24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0
IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQj
IGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4i
ICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4i
ICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvaW9jb250ZXh0LmgiKSwgImki
ICgxNDEpLCAiaSIgKCgxIDw8IDApfCgoMSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXpl
b2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMw
OlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIg
LSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMjcpKTsgfSk7IH0gd2hpbGUgKDAp
OyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiBhdG9taWNfaW5j
KCZpb2MtPm5yX3Rhc2tzKTsKfQoKc3RydWN0IHRhc2tfc3RydWN0OwoKdm9pZCBwdXRfaW9fY29u
dGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKTsKdm9pZCBwdXRfaW9fY29udGV4dF9hY3RpdmUo
c3RydWN0IGlvX2NvbnRleHQgKmlvYyk7CnZvaWQgZXhpdF9pb19jb250ZXh0KHN0cnVjdCB0YXNr
X3N0cnVjdCAqdGFzayk7CnN0cnVjdCBpb19jb250ZXh0ICpnZXRfdGFza19pb19jb250ZXh0KHN0
cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKICAgICAgICAgICBnZnBfdCBnZnBfZmxhZ3MsIGludCBu
b2RlKTsKIyA4ICIuL2luY2x1ZGUvbGludXgvaW9wcmlvLmgiIDIKIyAyNyAiLi9pbmNsdWRlL2xp
bnV4L2lvcHJpby5oIgplbnVtIHsKIElPUFJJT19DTEFTU19OT05FLAogSU9QUklPX0NMQVNTX1JU
LAogSU9QUklPX0NMQVNTX0JFLAogSU9QUklPX0NMQVNTX0lETEUsCn07CgoKCgoKCmVudW0gewog
SU9QUklPX1dIT19QUk9DRVNTID0gMSwKIElPUFJJT19XSE9fUEdSUCwKIElPUFJJT19XSE9fVVNF
UiwKfTsKIyA1NCAiLi9pbmNsdWRlL2xpbnV4L2lvcHJpby5oIgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdGFza19uaWNlX2lvcHJp
byhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCnsKIHJldHVybiAodGFza19uaWNlKHRhc2spICsg
MjApIC8gNTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIGludCB0YXNrX25pY2VfaW9jbGFzcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnRhc2spCnsKIGlmICh0YXNrLT5wb2xpY3kgPT0gNSkKICByZXR1cm4gSU9QUklPX0NMQVNTX0lE
TEU7CiBlbHNlIGlmICh0YXNrX2lzX3JlYWx0aW1lKHRhc2spKQogIHJldHVybiBJT1BSSU9fQ0xB
U1NfUlQ7CiBlbHNlCiAgcmV0dXJuIElPUFJJT19DTEFTU19CRTsKfQoKCgoKCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBnZXRfY3Vy
cmVudF9pb3ByaW8odm9pZCkKewogc3RydWN0IGlvX2NvbnRleHQgKmlvYyA9IGdldF9jdXJyZW50
KCktPmlvX2NvbnRleHQ7CgogaWYgKGlvYykKICByZXR1cm4gaW9jLT5pb3ByaW87CiByZXR1cm4g
KCgoSU9QUklPX0NMQVNTX05PTkUpIDw8ICgxMykpIHwgMCk7Cn0KCgoKCmV4dGVybiBpbnQgaW9w
cmlvX2Jlc3QodW5zaWduZWQgc2hvcnQgYXByaW8sIHVuc2lnbmVkIHNob3J0IGJwcmlvKTsKCmV4
dGVybiBpbnQgc2V0X3Rhc2tfaW9wcmlvKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgaW50IGlv
cHJpbyk7CgoKZXh0ZXJuIGludCBpb3ByaW9fY2hlY2tfY2FwKGludCBpb3ByaW8pOwojIDQwICIu
L2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9mc190eXBlcy5oIiAx
CiMgNzEgIi4vaW5jbHVkZS9saW51eC9mc190eXBlcy5oIgpleHRlcm4gdW5zaWduZWQgY2hhciBm
c19mdHlwZV90b19kdHlwZSh1bnNpZ25lZCBpbnQgZmlsZXR5cGUpOwpleHRlcm4gdW5zaWduZWQg
Y2hhciBmc191bW9kZV90b19mdHlwZSh1bW9kZV90IG1vZGUpOwpleHRlcm4gdW5zaWduZWQgY2hh
ciBmc191bW9kZV90b19kdHlwZSh1bW9kZV90IG1vZGUpOwojIDQxICIuL2luY2x1ZGUvbGludXgv
ZnMuaCIgMgoKCgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9mcy5oIiAxCiMgNTQgIi4vaW5j
bHVkZS91YXBpL2xpbnV4L2ZzLmgiCnN0cnVjdCBmaWxlX2Nsb25lX3JhbmdlIHsKIF9fczY0IHNy
Y19mZDsKIF9fdTY0IHNyY19vZmZzZXQ7CiBfX3U2NCBzcmNfbGVuZ3RoOwogX191NjQgZGVzdF9v
ZmZzZXQ7Cn07CgpzdHJ1Y3QgZnN0cmltX3JhbmdlIHsKIF9fdTY0IHN0YXJ0OwogX191NjQgbGVu
OwogX191NjQgbWlubGVuOwp9OwoKCgoKCgpzdHJ1Y3QgZmlsZV9kZWR1cGVfcmFuZ2VfaW5mbyB7
CiBfX3M2NCBkZXN0X2ZkOwogX191NjQgZGVzdF9vZmZzZXQ7CiBfX3U2NCBieXRlc19kZWR1cGVk
OwoKCgoKCgogX19zMzIgc3RhdHVzOwogX191MzIgcmVzZXJ2ZWQ7Cn07CgoKc3RydWN0IGZpbGVf
ZGVkdXBlX3JhbmdlIHsKIF9fdTY0IHNyY19vZmZzZXQ7CiBfX3U2NCBzcmNfbGVuZ3RoOwogX191
MTYgZGVzdF9jb3VudDsKIF9fdTE2IHJlc2VydmVkMTsKIF9fdTMyIHJlc2VydmVkMjsKIHN0cnVj
dCBmaWxlX2RlZHVwZV9yYW5nZV9pbmZvIGluZm9bMF07Cn07CgoKc3RydWN0IGZpbGVzX3N0YXRf
c3RydWN0IHsKIHVuc2lnbmVkIGxvbmcgbnJfZmlsZXM7CiB1bnNpZ25lZCBsb25nIG5yX2ZyZWVf
ZmlsZXM7CiB1bnNpZ25lZCBsb25nIG1heF9maWxlczsKfTsKCnN0cnVjdCBpbm9kZXNfc3RhdF90
IHsKIGxvbmcgbnJfaW5vZGVzOwogbG9uZyBucl91bnVzZWQ7CiBsb25nIGR1bW15WzVdOwp9OwoK
CgoKCgoKc3RydWN0IGZzeGF0dHIgewogX191MzIgZnN4X3hmbGFnczsKIF9fdTMyIGZzeF9leHRz
aXplOwogX191MzIgZnN4X25leHRlbnRzOwogX191MzIgZnN4X3Byb2ppZDsKIF9fdTMyIGZzeF9j
b3dleHRzaXplOwogdW5zaWduZWQgY2hhciBmc3hfcGFkWzhdOwp9OwojIDI4NSAiLi9pbmNsdWRl
L3VhcGkvbGludXgvZnMuaCIKdHlwZWRlZiBpbnQgX19rZXJuZWxfcndmX3Q7CiMgNDYgIi4vaW5j
bHVkZS9saW51eC9mcy5oIiAyCgpzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbzsKc3RydWN0IGJkaV93
cml0ZWJhY2s7CnN0cnVjdCBiaW87CnN0cnVjdCBleHBvcnRfb3BlcmF0aW9uczsKc3RydWN0IGhk
X2dlb21ldHJ5OwpzdHJ1Y3QgaW92ZWM7CnN0cnVjdCBraW9jYjsKc3RydWN0IGtvYmplY3Q7CnN0
cnVjdCBwaXBlX2lub2RlX2luZm87CnN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdDsKc3RydWN0IGtz
dGF0ZnM7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3RydWN0IHZmc21vdW50OwpzdHJ1Y3QgY3Jl
ZDsKc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Q7CnN0cnVjdCBzZXFfZmlsZTsKc3RydWN0IHdvcmtx
dWV1ZV9zdHJ1Y3Q7CnN0cnVjdCBpb3ZfaXRlcjsKc3RydWN0IGZzY3J5cHRfaW5mbzsKc3RydWN0
IGZzY3J5cHRfb3BlcmF0aW9uczsKc3RydWN0IGZzdmVyaXR5X2luZm87CnN0cnVjdCBmc3Zlcml0
eV9vcGVyYXRpb25zOwpzdHJ1Y3QgZnNfY29udGV4dDsKc3RydWN0IGZzX3BhcmFtZXRlcl9zcGVj
OwoKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkp
IF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgaW5vZGVfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQg
X19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18o
KF9fY29sZF9fKSkgaW5vZGVfaW5pdF9lYXJseSh2b2lkKTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1
dGVfXygoX19zZWN0aW9uX18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9f
KSkgZmlsZXNfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9u
X18oIi5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgZmlsZXNfbWF4Zmls
ZXNfaW5pdCh2b2lkKTsKCmV4dGVybiBzdHJ1Y3QgZmlsZXNfc3RhdF9zdHJ1Y3QgZmlsZXNfc3Rh
dDsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZ2V0X21heF9maWxlcyh2b2lkKTsKZXh0ZXJuIHVuc2ln
bmVkIGludCBzeXNjdGxfbnJfb3BlbjsKZXh0ZXJuIHN0cnVjdCBpbm9kZXNfc3RhdF90IGlub2Rl
c19zdGF0OwpleHRlcm4gaW50IGxlYXNlc19lbmFibGUsIGxlYXNlX2JyZWFrX3RpbWU7CmV4dGVy
biBpbnQgc3lzY3RsX3Byb3RlY3RlZF9zeW1saW5rczsKZXh0ZXJuIGludCBzeXNjdGxfcHJvdGVj
dGVkX2hhcmRsaW5rczsKZXh0ZXJuIGludCBzeXNjdGxfcHJvdGVjdGVkX2ZpZm9zOwpleHRlcm4g
aW50IHN5c2N0bF9wcm90ZWN0ZWRfcmVndWxhcjsKCnR5cGVkZWYgX19rZXJuZWxfcndmX3Qgcndm
X3Q7CgpzdHJ1Y3QgYnVmZmVyX2hlYWQ7CnR5cGVkZWYgaW50IChnZXRfYmxvY2tfdCkoc3RydWN0
IGlub2RlICppbm9kZSwgc2VjdG9yX3QgaWJsb2NrLAogICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo
X3Jlc3VsdCwgaW50IGNyZWF0ZSk7CnR5cGVkZWYgaW50IChkaW9faW9kb25lX3QpKHN0cnVjdCBr
aW9jYiAqaW9jYiwgbG9mZl90IG9mZnNldCwKICAgc3NpemVfdCBieXRlcywgdm9pZCAqcHJpdmF0
ZSk7CiMgMjI0ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RydWN0IGlhdHRyIHsKIHVuc2lnbmVk
IGludCBpYV92YWxpZDsKIHVtb2RlX3QgaWFfbW9kZTsKIGt1aWRfdCBpYV91aWQ7CiBrZ2lkX3Qg
aWFfZ2lkOwogbG9mZl90IGlhX3NpemU7CiBzdHJ1Y3QgdGltZXNwZWM2NCBpYV9hdGltZTsKIHN0
cnVjdCB0aW1lc3BlYzY0IGlhX210aW1lOwogc3RydWN0IHRpbWVzcGVjNjQgaWFfY3RpbWU7CgoK
CgoKCiBzdHJ1Y3QgZmlsZSAqaWFfZmlsZTsKfTsKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3F1
b3RhLmgiIDEKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L3BlcmNwdV9jb3VudGVyLmgiIDEKIyAyMCAiLi9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3Vu
dGVyLmgiCnN0cnVjdCBwZXJjcHVfY291bnRlciB7CiByYXdfc3BpbmxvY2tfdCBsb2NrOwogczY0
IGNvdW50OwoKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKCiBzMzIgKmNvdW50ZXJzOwp9OwoKZXh0
ZXJuIGludCBwZXJjcHVfY291bnRlcl9iYXRjaDsKCmludCBfX3BlcmNwdV9jb3VudGVyX2luaXQo
c3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQsIGdmcF90IGdmcCwKICAgICBz
dHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSk7CiMgNDEgIi4vaW5jbHVkZS9saW51eC9wZXJjcHVf
Y291bnRlci5oIgp2b2lkIHBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koc3RydWN0IHBlcmNwdV9jb3Vu
dGVyICpmYmMpOwp2b2lkIHBlcmNwdV9jb3VudGVyX3NldChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIg
KmZiYywgczY0IGFtb3VudCk7CnZvaWQgcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKHN0cnVjdCBw
ZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50LAogICAgICAgICBzMzIgYmF0Y2gpOwpzNjQg
X19wZXJjcHVfY291bnRlcl9zdW0oc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpOwppbnQgX19w
ZXJjcHVfY291bnRlcl9jb21wYXJlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgcmhz
LCBzMzIgYmF0Y2gpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHBlcmNwdV9jb3VudGVyX2NvbXBhcmUoc3RydWN0IHBlcmNwdV9j
b3VudGVyICpmYmMsIHM2NCByaHMpCnsKIHJldHVybiBfX3BlcmNwdV9jb3VudGVyX2NvbXBhcmUo
ZmJjLCByaHMsIHBlcmNwdV9jb3VudGVyX2JhdGNoKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwZXJjcHVfY291bnRlcl9h
ZGQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQpCnsKIHBlcmNwdV9jb3Vu
dGVyX2FkZF9iYXRjaChmYmMsIGFtb3VudCwgcGVyY3B1X2NvdW50ZXJfYmF0Y2gpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzNjQg
cGVyY3B1X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQp7
CiBzNjQgcmV0ID0gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjKTsKIHJldHVybiByZXQgPCAwID8g
MCA6IHJldDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgczY0IHBlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIg
KmZiYykKewogcmV0dXJuIF9fcGVyY3B1X2NvdW50ZXJfc3VtKGZiYyk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHM2NCBwZXJjcHVf
Y291bnRlcl9yZWFkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQp7CiByZXR1cm4gZmJjLT5j
b3VudDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzNjQgcGVyY3B1X2NvdW50ZXJfcmVhZF9wb3NpdGl2ZShzdHJ1Y3QgcGVy
Y3B1X2NvdW50ZXIgKmZiYykKewogczY0IHJldCA9IGZiYy0+Y291bnQ7CgogX19hc21fXyBfX3Zv
bGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsKIGlmIChyZXQgPj0gMCkKICByZXR1cm4gcmV0Owog
cmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgcGVyY3B1X2NvdW50ZXJfaW5pdGlhbGl6ZWQoc3RydWN0IHBlcmNw
dV9jb3VudGVyICpmYmMpCnsKIHJldHVybiAoZmJjLT5jb3VudGVycyAhPSAoKHZvaWQgKikwKSk7
Cn0KIyAxNzcgIi4vaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oIgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBlcmNwdV9j
b3VudGVyX2luYyhzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKewogcGVyY3B1X2NvdW50ZXJf
YWRkKGZiYywgMSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1X2NvdW50ZXJfZGVjKHN0cnVjdCBwZXJjcHVfY291
bnRlciAqZmJjKQp7CiBwZXJjcHVfY291bnRlcl9hZGQoZmJjLCAtMSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcGVyY3B1
X2NvdW50ZXJfc3ViKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KQp7CiBw
ZXJjcHVfY291bnRlcl9hZGQoZmJjLCAtYW1vdW50KTsKfQojIDQxICIuL2luY2x1ZGUvbGludXgv
cXVvdGEuaCIgMgoKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9kcWJsa194ZnMuaCIgMQojIDUz
ICIuL2luY2x1ZGUvdWFwaS9saW51eC9kcWJsa194ZnMuaCIKdHlwZWRlZiBzdHJ1Y3QgZnNfZGlz
a19xdW90YSB7CiBfX3M4IGRfdmVyc2lvbjsKIF9fczggZF9mbGFnczsKIF9fdTE2IGRfZmllbGRt
YXNrOwogX191MzIgZF9pZDsKIF9fdTY0IGRfYmxrX2hhcmRsaW1pdDsKIF9fdTY0IGRfYmxrX3Nv
ZnRsaW1pdDsKIF9fdTY0IGRfaW5vX2hhcmRsaW1pdDsKIF9fdTY0IGRfaW5vX3NvZnRsaW1pdDsK
IF9fdTY0IGRfYmNvdW50OwogX191NjQgZF9pY291bnQ7CiBfX3MzMiBkX2l0aW1lcjsKCiBfX3Mz
MiBkX2J0aW1lcjsKIF9fdTE2IGRfaXdhcm5zOwogX191MTYgZF9id2FybnM7CiBfX3MzMiBkX3Bh
ZGRpbmcyOwogX191NjQgZF9ydGJfaGFyZGxpbWl0OwogX191NjQgZF9ydGJfc29mdGxpbWl0Owog
X191NjQgZF9ydGJjb3VudDsKIF9fczMyIGRfcnRidGltZXI7CiBfX3UxNiBkX3J0Yndhcm5zOwog
X19zMTYgZF9wYWRkaW5nMzsKIGNoYXIgZF9wYWRkaW5nNFs4XTsKfSBmc19kaXNrX3F1b3RhX3Q7
CiMgMTQ5ICIuL2luY2x1ZGUvdWFwaS9saW51eC9kcWJsa194ZnMuaCIKdHlwZWRlZiBzdHJ1Y3Qg
ZnNfcWZpbGVzdGF0IHsKIF9fdTY0IHFmc19pbm87CiBfX3U2NCBxZnNfbmJsa3M7CiBfX3UzMiBx
ZnNfbmV4dGVudHM7Cn0gZnNfcWZpbGVzdGF0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBmc19xdW90YV9z
dGF0IHsKIF9fczggcXNfdmVyc2lvbjsKIF9fdTE2IHFzX2ZsYWdzOwogX19zOCBxc19wYWQ7CiBm
c19xZmlsZXN0YXRfdCBxc191cXVvdGE7CiBmc19xZmlsZXN0YXRfdCBxc19ncXVvdGE7CiBfX3Uz
MiBxc19pbmNvcmVkcXM7CiBfX3MzMiBxc19idGltZWxpbWl0OwogX19zMzIgcXNfaXRpbWVsaW1p
dDsKIF9fczMyIHFzX3J0YnRpbWVsaW1pdDsKIF9fdTE2IHFzX2J3YXJubGltaXQ7CiBfX3UxNiBx
c19pd2FybmxpbWl0Owp9IGZzX3F1b3RhX3N0YXRfdDsKIyAxOTIgIi4vaW5jbHVkZS91YXBpL2xp
bnV4L2RxYmxrX3hmcy5oIgpzdHJ1Y3QgZnNfcWZpbGVzdGF0diB7CiBfX3U2NCBxZnNfaW5vOwog
X191NjQgcWZzX25ibGtzOwogX191MzIgcWZzX25leHRlbnRzOwogX191MzIgcWZzX3BhZDsKfTsK
CnN0cnVjdCBmc19xdW90YV9zdGF0diB7CiBfX3M4IHFzX3ZlcnNpb247CiBfX3U4IHFzX3BhZDE7
CiBfX3UxNiBxc19mbGFnczsKIF9fdTMyIHFzX2luY29yZWRxczsKIHN0cnVjdCBmc19xZmlsZXN0
YXR2IHFzX3VxdW90YTsKIHN0cnVjdCBmc19xZmlsZXN0YXR2IHFzX2dxdW90YTsKIHN0cnVjdCBm
c19xZmlsZXN0YXR2IHFzX3BxdW90YTsKIF9fczMyIHFzX2J0aW1lbGltaXQ7CiBfX3MzMiBxc19p
dGltZWxpbWl0OwogX19zMzIgcXNfcnRidGltZWxpbWl0OwogX191MTYgcXNfYndhcm5saW1pdDsK
IF9fdTE2IHFzX2l3YXJubGltaXQ7CiBfX3U2NCBxc19wYWQyWzhdOwp9OwojIDQzICIuL2luY2x1
ZGUvbGludXgvcXVvdGEuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9kcWJsa192MS5oIiAxCiMg
NDQgIi4vaW5jbHVkZS9saW51eC9xdW90YS5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2RxYmxr
X3YyLmgiIDEKIyA5ICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIKIyAxICIuL2luY2x1ZGUv
bGludXgvZHFibGtfcXRyZWUuaCIgMQojIDE4ICIuL2luY2x1ZGUvbGludXgvZHFibGtfcXRyZWUu
aCIKc3RydWN0IGRxdW90OwpzdHJ1Y3Qga3FpZDsKCgpzdHJ1Y3QgcXRyZWVfZm10X29wZXJhdGlv
bnMgewogdm9pZCAoKm1lbTJkaXNrX2RxYmxrKSh2b2lkICpkaXNrLCBzdHJ1Y3QgZHF1b3QgKmRx
dW90KTsKIHZvaWQgKCpkaXNrMm1lbV9kcWJsaykoc3RydWN0IGRxdW90ICpkcXVvdCwgdm9pZCAq
ZGlzayk7CiBpbnQgKCppc19pZCkodm9pZCAqZGlzaywgc3RydWN0IGRxdW90ICpkcXVvdCk7Cn07
CgoKc3RydWN0IHF0cmVlX21lbV9kcWluZm8gewogc3RydWN0IHN1cGVyX2Jsb2NrICpkcWlfc2I7
CiBpbnQgZHFpX3R5cGU7CiB1bnNpZ25lZCBpbnQgZHFpX2Jsb2NrczsKIHVuc2lnbmVkIGludCBk
cWlfZnJlZV9ibGs7CiB1bnNpZ25lZCBpbnQgZHFpX2ZyZWVfZW50cnk7CiB1bnNpZ25lZCBpbnQg
ZHFpX2Jsb2Nrc2l6ZV9iaXRzOwogdW5zaWduZWQgaW50IGRxaV9lbnRyeV9zaXplOwogdW5zaWdu
ZWQgaW50IGRxaV91c2FibGVfYnM7CiB1bnNpZ25lZCBpbnQgZHFpX3F0cmVlX2RlcHRoOwogY29u
c3Qgc3RydWN0IHF0cmVlX2ZtdF9vcGVyYXRpb25zICpkcWlfb3BzOwp9OwoKaW50IHF0cmVlX3dy
aXRlX2RxdW90KHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICppbmZvLCBzdHJ1Y3QgZHF1b3QgKmRx
dW90KTsKaW50IHF0cmVlX3JlYWRfZHF1b3Qoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8s
IHN0cnVjdCBkcXVvdCAqZHF1b3QpOwppbnQgcXRyZWVfZGVsZXRlX2RxdW90KHN0cnVjdCBxdHJl
ZV9tZW1fZHFpbmZvICppbmZvLCBzdHJ1Y3QgZHF1b3QgKmRxdW90KTsKaW50IHF0cmVlX3JlbGVh
c2VfZHF1b3Qoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8sIHN0cnVjdCBkcXVvdCAqZHF1
b3QpOwppbnQgcXRyZWVfZW50cnlfdW51c2VkKHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICppbmZv
LCBjaGFyICpkaXNrKTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgaW50IHF0cmVlX2RlcHRoKHN0cnVjdCBxdHJlZV9tZW1fZHFpbmZvICpp
bmZvKQp7CiB1bnNpZ25lZCBpbnQgZXBiID0gaW5mby0+ZHFpX3VzYWJsZV9icyA+PiAyOwogdW5z
aWduZWQgbG9uZyBsb25nIGVudHJpZXMgPSBlcGI7CiBpbnQgaTsKCiBmb3IgKGkgPSAxOyBlbnRy
aWVzIDwgKDFVTEwgPDwgMzIpOyBpKyspCiAgZW50cmllcyAqPSBlcGI7CiByZXR1cm4gaTsKfQpp
bnQgcXRyZWVfZ2V0X25leHRfaWQoc3RydWN0IHF0cmVlX21lbV9kcWluZm8gKmluZm8sIHN0cnVj
dCBrcWlkICpxaWQpOwojIDEwICIuL2luY2x1ZGUvbGludXgvZHFibGtfdjIuaCIgMgojIDQ1ICIu
L2luY2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9wcm9qaWQu
aCIgMQojIDE3ICIuL2luY2x1ZGUvbGludXgvcHJvamlkLmgiCnN0cnVjdCB1c2VyX25hbWVzcGFj
ZTsKZXh0ZXJuIHN0cnVjdCB1c2VyX25hbWVzcGFjZSBpbml0X3VzZXJfbnM7Cgp0eXBlZGVmIF9f
a2VybmVsX3VpZDMyX3QgcHJvamlkX3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiBwcm9qaWRfdCB2YWw7
Cn0ga3Byb2ppZF90OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgcHJvamlkX3QgX19rcHJvamlkX3ZhbChrcHJvamlkX3QgcHJvamlkKQp7
CiByZXR1cm4gcHJvamlkLnZhbDsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHByb2ppZF9lcShrcHJvamlkX3QgbGVm
dCwga3Byb2ppZF90IHJpZ2h0KQp7CiByZXR1cm4gX19rcHJvamlkX3ZhbChsZWZ0KSA9PSBfX2tw
cm9qaWRfdmFsKHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBwcm9qaWRfbHQoa3Byb2ppZF90IGxlZnQsIGtwcm9q
aWRfdCByaWdodCkKewogcmV0dXJuIF9fa3Byb2ppZF92YWwobGVmdCkgPCBfX2twcm9qaWRfdmFs
KHJpZ2h0KTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBwcm9qaWRfdmFsaWQoa3Byb2ppZF90IHByb2ppZCkKewogcmV0dXJu
ICFwcm9qaWRfZXEocHJvamlkLCAoa3Byb2ppZF90KXsgLTEgfSk7Cn0KCgoKZXh0ZXJuIGtwcm9q
aWRfdCBtYWtlX2twcm9qaWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpmcm9tLCBwcm9qaWRfdCBw
cm9qaWQpOwoKZXh0ZXJuIHByb2ppZF90IGZyb21fa3Byb2ppZChzdHJ1Y3QgdXNlcl9uYW1lc3Bh
Y2UgKnRvLCBrcHJvamlkX3QgcHJvamlkKTsKZXh0ZXJuIHByb2ppZF90IGZyb21fa3Byb2ppZF9t
dW5nZWQoc3RydWN0IHVzZXJfbmFtZXNwYWNlICp0bywga3Byb2ppZF90IHByb2ppZCk7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29s
IGtwcm9qaWRfaGFzX21hcHBpbmcoc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywga3Byb2ppZF90
IHByb2ppZCkKewogcmV0dXJuIGZyb21fa3Byb2ppZChucywgcHJvamlkKSAhPSAocHJvamlkX3Qp
LTE7Cn0KIyA0OSAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiIDIKIyAxICIuL2luY2x1ZGUvdWFw
aS9saW51eC9xdW90YS5oIiAxCiMgOTAgIi4vaW5jbHVkZS91YXBpL2xpbnV4L3F1b3RhLmgiCmVu
dW0gewogUUlGX0JMSU1JVFNfQiA9IDAsCiBRSUZfU1BBQ0VfQiwKIFFJRl9JTElNSVRTX0IsCiBR
SUZfSU5PREVTX0IsCiBRSUZfQlRJTUVfQiwKIFFJRl9JVElNRV9CLAp9OwojIDExMCAiLi9pbmNs
dWRlL3VhcGkvbGludXgvcXVvdGEuaCIKc3RydWN0IGlmX2RxYmxrIHsKIF9fdTY0IGRxYl9iaGFy
ZGxpbWl0OwogX191NjQgZHFiX2Jzb2Z0bGltaXQ7CiBfX3U2NCBkcWJfY3Vyc3BhY2U7CiBfX3U2
NCBkcWJfaWhhcmRsaW1pdDsKIF9fdTY0IGRxYl9pc29mdGxpbWl0OwogX191NjQgZHFiX2N1cmlu
b2RlczsKIF9fdTY0IGRxYl9idGltZTsKIF9fdTY0IGRxYl9pdGltZTsKIF9fdTMyIGRxYl92YWxp
ZDsKfTsKCnN0cnVjdCBpZl9uZXh0ZHFibGsgewogX191NjQgZHFiX2JoYXJkbGltaXQ7CiBfX3U2
NCBkcWJfYnNvZnRsaW1pdDsKIF9fdTY0IGRxYl9jdXJzcGFjZTsKIF9fdTY0IGRxYl9paGFyZGxp
bWl0OwogX191NjQgZHFiX2lzb2Z0bGltaXQ7CiBfX3U2NCBkcWJfY3VyaW5vZGVzOwogX191NjQg
ZHFiX2J0aW1lOwogX191NjQgZHFiX2l0aW1lOwogX191MzIgZHFiX3ZhbGlkOwogX191MzIgZHFi
X2lkOwp9OwojIDE0NCAiLi9pbmNsdWRlL3VhcGkvbGludXgvcXVvdGEuaCIKZW51bSB7CiBEUUZf
Uk9PVF9TUVVBU0hfQiA9IDAsCiBEUUZfU1lTX0ZJTEVfQiA9IDE2LAoKIERRRl9QUklWQVRFCn07
CgoKCgoKCnN0cnVjdCBpZl9kcWluZm8gewogX191NjQgZHFpX2JncmFjZTsKIF9fdTY0IGRxaV9p
Z3JhY2U7CiBfX3UzMiBkcWlfZmxhZ3M7CiBfX3UzMiBkcWlfdmFsaWQ7Cn07CiMgMTc4ICIuL2lu
Y2x1ZGUvdWFwaS9saW51eC9xdW90YS5oIgplbnVtIHsKIFFVT1RBX05MX0NfVU5TUEVDLAogUVVP
VEFfTkxfQ19XQVJOSU5HLAogX19RVU9UQV9OTF9DX01BWCwKfTsKCgplbnVtIHsKIFFVT1RBX05M
X0FfVU5TUEVDLAogUVVPVEFfTkxfQV9RVFlQRSwKIFFVT1RBX05MX0FfRVhDRVNTX0lELAogUVVP
VEFfTkxfQV9XQVJOSU5HLAogUVVPVEFfTkxfQV9ERVZfTUFKT1IsCiBRVU9UQV9OTF9BX0RFVl9N
SU5PUiwKIFFVT1RBX05MX0FfQ0FVU0VEX0lELAogUVVPVEFfTkxfQV9QQUQsCiBfX1FVT1RBX05M
X0FfTUFYLAp9OwojIDUwICIuL2luY2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgoKZW51bSBxdW90
YV90eXBlIHsKIFVTUlFVT1RBID0gMCwKIEdSUFFVT1RBID0gMSwKIFBSSlFVT1RBID0gMiwKfTsK
CgoKCgoKdHlwZWRlZiBfX2tlcm5lbF91aWQzMl90IHFpZF90Owp0eXBlZGVmIGxvbmcgbG9uZyBx
c2l6ZV90OwoKc3RydWN0IGtxaWQgewogdW5pb24gewogIGt1aWRfdCB1aWQ7CiAga2dpZF90IGdp
ZDsKICBrcHJvamlkX3QgcHJvamlkOwogfTsKIGVudW0gcXVvdGFfdHlwZSB0eXBlOwp9OwoKZXh0
ZXJuIGJvb2wgcWlkX2VxKHN0cnVjdCBrcWlkIGxlZnQsIHN0cnVjdCBrcWlkIHJpZ2h0KTsKZXh0
ZXJuIGJvb2wgcWlkX2x0KHN0cnVjdCBrcWlkIGxlZnQsIHN0cnVjdCBrcWlkIHJpZ2h0KTsKZXh0
ZXJuIHFpZF90IGZyb21fa3FpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKnRvLCBzdHJ1Y3Qga3Fp
ZCBxaWQpOwpleHRlcm4gcWlkX3QgZnJvbV9rcWlkX211bmdlZChzdHJ1Y3QgdXNlcl9uYW1lc3Bh
Y2UgKnRvLCBzdHJ1Y3Qga3FpZCBxaWQpOwpleHRlcm4gYm9vbCBxaWRfdmFsaWQoc3RydWN0IGtx
aWQgcWlkKTsKIyA5NyAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrcWlkIG1ha2Vf
a3FpZChzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKmZyb20sCiAgICAgICAgZW51bSBxdW90YV90eXBl
IHR5cGUsIHFpZF90IHFpZCkKewogc3RydWN0IGtxaWQga3FpZDsKCiBrcWlkLnR5cGUgPSB0eXBl
Owogc3dpdGNoICh0eXBlKSB7CiBjYXNlIFVTUlFVT1RBOgogIGtxaWQudWlkID0gbWFrZV9rdWlk
KGZyb20sIHFpZCk7CiAgYnJlYWs7CiBjYXNlIEdSUFFVT1RBOgogIGtxaWQuZ2lkID0gbWFrZV9r
Z2lkKGZyb20sIHFpZCk7CiAgYnJlYWs7CiBjYXNlIFBSSlFVT1RBOgogIGtxaWQucHJvamlkID0g
bWFrZV9rcHJvamlkKGZyb20sIHFpZCk7CiAgYnJlYWs7CiBkZWZhdWx0OgogIGRvIHsgZG8geyBh
c20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVz
aHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAy
YiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJi
IiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5Ojps
aW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIr
JWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUvbGludXgvcXVvdGEuaCIpLCAi
aSIgKDExNCksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hp
bGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRp
c2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgyOCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVh
Y2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsKIH0KIHJldHVybiBrcWlkOwp9CgoK
CgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3Qga3FpZCBtYWtlX2txaWRfaW52YWxpZChlbnVtIHF1b3RhX3R5cGUgdHlwZSkK
ewogc3RydWN0IGtxaWQga3FpZDsKCiBrcWlkLnR5cGUgPSB0eXBlOwogc3dpdGNoICh0eXBlKSB7
CiBjYXNlIFVTUlFVT1RBOgogIGtxaWQudWlkID0gKGt1aWRfdCl7IC0xIH07CiAgYnJlYWs7CiBj
YXNlIEdSUFFVT1RBOgogIGtxaWQuZ2lkID0gKGtnaWRfdCl7IC0xIH07CiAgYnJlYWs7CiBjYXNl
IFBSSlFVT1RBOgogIGtxaWQucHJvamlkID0gKGtwcm9qaWRfdCl7IC0xIH07CiAgYnJlYWs7CiBk
ZWZhdWx0OgogIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAw
eDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0
IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIg
Ii5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAl
YzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6
OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1
ZGUvbGludXgvcXVvdGEuaCIpLCAiaSIgKDE0MSksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVj
dCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxu
XHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAt
IC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgyOSkpOyB9KTsgYXNtIHZvbGF0aWxl
KCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsK
IH0KIHJldHVybiBrcWlkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlkX3VpZChrdWlkX3Qg
dWlkKQp7CiBzdHJ1Y3Qga3FpZCBrcWlkOwoga3FpZC50eXBlID0gVVNSUVVPVEE7CiBrcWlkLnVp
ZCA9IHVpZDsKIHJldHVybiBrcWlkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlkX2dpZChr
Z2lkX3QgZ2lkKQp7CiBzdHJ1Y3Qga3FpZCBrcWlkOwoga3FpZC50eXBlID0gR1JQUVVPVEE7CiBr
cWlkLmdpZCA9IGdpZDsKIHJldHVybiBrcWlkOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtxaWQgbWFrZV9rcWlk
X3Byb2ppZChrcHJvamlkX3QgcHJvamlkKQp7CiBzdHJ1Y3Qga3FpZCBrcWlkOwoga3FpZC50eXBl
ID0gUFJKUVVPVEE7CiBrcWlkLnByb2ppZCA9IHByb2ppZDsKIHJldHVybiBrcWlkOwp9CgoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgcWlkX2hhc19tYXBwaW5nKHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBr
cWlkIHFpZCkKewogcmV0dXJuIGZyb21fa3FpZChucywgcWlkKSAhPSAocWlkX3QpIC0xOwp9CgoK
ZXh0ZXJuIHNwaW5sb2NrX3QgZHFfZGF0YV9sb2NrOwojIDIwNSAiLi9pbmNsdWRlL2xpbnV4L3F1
b3RhLmgiCnN0cnVjdCBtZW1fZHFibGsgewogcXNpemVfdCBkcWJfYmhhcmRsaW1pdDsKIHFzaXpl
X3QgZHFiX2Jzb2Z0bGltaXQ7CiBxc2l6ZV90IGRxYl9jdXJzcGFjZTsKIHFzaXplX3QgZHFiX3Jz
dnNwYWNlOwogcXNpemVfdCBkcWJfaWhhcmRsaW1pdDsKIHFzaXplX3QgZHFiX2lzb2Z0bGltaXQ7
CiBxc2l6ZV90IGRxYl9jdXJpbm9kZXM7CiB0aW1lNjRfdCBkcWJfYnRpbWU7CiB0aW1lNjRfdCBk
cWJfaXRpbWU7Cn07CgoKCgpzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGU7CgpzdHJ1Y3QgbWVtX2Rx
aW5mbyB7CiBzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgKmRxaV9mb3JtYXQ7CiBpbnQgZHFpX2Zt
dF9pZDsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGRxaV9kaXJ0eV9saXN0OwogdW5zaWduZWQgbG9uZyBk
cWlfZmxhZ3M7CiB1bnNpZ25lZCBpbnQgZHFpX2JncmFjZTsKIHVuc2lnbmVkIGludCBkcWlfaWdy
YWNlOwogcXNpemVfdCBkcWlfbWF4X3NwY19saW1pdDsKIHFzaXplX3QgZHFpX21heF9pbm9fbGlt
aXQ7CiB2b2lkICpkcWlfcHJpdjsKfTsKCnN0cnVjdCBzdXBlcl9ibG9jazsKCgoKCgoKZW51bSB7
CiBEUUZfSU5GT19ESVJUWV9CID0gRFFGX1BSSVZBVEUsCn07CgoKZXh0ZXJuIHZvaWQgbWFya19p
bmZvX2RpcnR5KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlKTsKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGluZm9fZGly
dHkoc3RydWN0IG1lbV9kcWluZm8gKmluZm8pCnsKIHJldHVybiB0ZXN0X2JpdChEUUZfSU5GT19E
SVJUWV9CLCAmaW5mby0+ZHFpX2ZsYWdzKTsKfQoKZW51bSB7CiBEUVNUX0xPT0tVUFMsCiBEUVNU
X0RST1BTLAogRFFTVF9SRUFEUywKIERRU1RfV1JJVEVTLAogRFFTVF9DQUNIRV9ISVRTLAogRFFT
VF9BTExPQ19EUVVPVFMsCiBEUVNUX0ZSRUVfRFFVT1RTLAogRFFTVF9TWU5DUywKIF9EUVNUX0RR
U1RBVF9MQVNUCn07CgpzdHJ1Y3QgZHFzdGF0cyB7CiB1bnNpZ25lZCBsb25nIHN0YXRbX0RRU1Rf
RFFTVEFUX0xBU1RdOwogc3RydWN0IHBlcmNwdV9jb3VudGVyIGNvdW50ZXJbX0RRU1RfRFFTVEFU
X0xBU1RdOwp9OwoKZXh0ZXJuIHN0cnVjdCBkcXN0YXRzIGRxc3RhdHM7CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRxc3RhdHNf
aW5jKHVuc2lnbmVkIGludCB0eXBlKQp7CiBwZXJjcHVfY291bnRlcl9pbmMoJmRxc3RhdHMuY291
bnRlclt0eXBlXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZHFzdGF0c19kZWModW5zaWduZWQgaW50IHR5cGUpCnsKIHBl
cmNwdV9jb3VudGVyX2RlYygmZHFzdGF0cy5jb3VudGVyW3R5cGVdKTsKfQojIDI5NCAiLi9pbmNs
dWRlL2xpbnV4L3F1b3RhLmgiCnN0cnVjdCBkcXVvdCB7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSBkcV9o
YXNoOwogc3RydWN0IGxpc3RfaGVhZCBkcV9pbnVzZTsKIHN0cnVjdCBsaXN0X2hlYWQgZHFfZnJl
ZTsKIHN0cnVjdCBsaXN0X2hlYWQgZHFfZGlydHk7CiBzdHJ1Y3QgbXV0ZXggZHFfbG9jazsKIHNw
aW5sb2NrX3QgZHFfZHFiX2xvY2s7CiBhdG9taWNfdCBkcV9jb3VudDsKIHN0cnVjdCBzdXBlcl9i
bG9jayAqZHFfc2I7CiBzdHJ1Y3Qga3FpZCBkcV9pZDsKIGxvZmZfdCBkcV9vZmY7CiB1bnNpZ25l
ZCBsb25nIGRxX2ZsYWdzOwogc3RydWN0IG1lbV9kcWJsayBkcV9kcWI7Cn07CgoKc3RydWN0IHF1
b3RhX2Zvcm1hdF9vcHMgewogaW50ICgqY2hlY2tfcXVvdGFfZmlsZSkoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgaW50IHR5cGUpOwogaW50ICgqcmVhZF9maWxlX2luZm8pKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IsIGludCB0eXBlKTsKIGludCAoKndyaXRlX2ZpbGVfaW5mbykoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYiwgaW50IHR5cGUpOwogaW50ICgqZnJlZV9maWxlX2luZm8pKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIGludCB0eXBlKTsKIGludCAoKnJlYWRfZHFibGspKHN0cnVjdCBkcXVvdCAq
ZHF1b3QpOwogaW50ICgqY29tbWl0X2RxYmxrKShzdHJ1Y3QgZHF1b3QgKmRxdW90KTsKIGludCAo
KnJlbGVhc2VfZHFibGspKHN0cnVjdCBkcXVvdCAqZHF1b3QpOwogaW50ICgqZ2V0X25leHRfaWQp
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrcWlkICpxaWQpOwp9OwoKCnN0cnVjdCBk
cXVvdF9vcGVyYXRpb25zIHsKIGludCAoKndyaXRlX2RxdW90KSAoc3RydWN0IGRxdW90ICopOwog
c3RydWN0IGRxdW90ICooKmFsbG9jX2RxdW90KShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50KTsK
IHZvaWQgKCpkZXN0cm95X2RxdW90KShzdHJ1Y3QgZHF1b3QgKik7CiBpbnQgKCphY3F1aXJlX2Rx
dW90KSAoc3RydWN0IGRxdW90ICopOwogaW50ICgqcmVsZWFzZV9kcXVvdCkgKHN0cnVjdCBkcXVv
dCAqKTsKIGludCAoKm1hcmtfZGlydHkpIChzdHJ1Y3QgZHF1b3QgKik7CiBpbnQgKCp3cml0ZV9p
bmZvKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CgoKIHFzaXplX3QgKigqZ2V0X3Jlc2Vy
dmVkX3NwYWNlKSAoc3RydWN0IGlub2RlICopOwogaW50ICgqZ2V0X3Byb2ppZCkgKHN0cnVjdCBp
bm9kZSAqLCBrcHJvamlkX3QgKik7CgogaW50ICgqZ2V0X2lub2RlX3VzYWdlKSAoc3RydWN0IGlu
b2RlICosIHFzaXplX3QgKik7CgogaW50ICgqZ2V0X25leHRfaWQpIChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiLCBzdHJ1Y3Qga3FpZCAqcWlkKTsKfTsKCnN0cnVjdCBwYXRoOwoKCnN0cnVjdCBxY19k
cWJsayB7CiBpbnQgZF9maWVsZG1hc2s7CiB1NjQgZF9zcGNfaGFyZGxpbWl0OwogdTY0IGRfc3Bj
X3NvZnRsaW1pdDsKIHU2NCBkX2lub19oYXJkbGltaXQ7CiB1NjQgZF9pbm9fc29mdGxpbWl0Owog
dTY0IGRfc3BhY2U7CiB1NjQgZF9pbm9fY291bnQ7CiBzNjQgZF9pbm9fdGltZXI7CgogczY0IGRf
c3BjX3RpbWVyOwogaW50IGRfaW5vX3dhcm5zOwogaW50IGRfc3BjX3dhcm5zOwogdTY0IGRfcnRf
c3BjX2hhcmRsaW1pdDsKIHU2NCBkX3J0X3NwY19zb2Z0bGltaXQ7CiB1NjQgZF9ydF9zcGFjZTsK
IHM2NCBkX3J0X3NwY190aW1lcjsKIGludCBkX3J0X3NwY193YXJuczsKfTsKIyAzOTUgIi4vaW5j
bHVkZS9saW51eC9xdW90YS5oIgpzdHJ1Y3QgcWNfdHlwZV9zdGF0ZSB7CiB1bnNpZ25lZCBpbnQg
ZmxhZ3M7CiB1bnNpZ25lZCBpbnQgc3BjX3RpbWVsaW1pdDsKCiB1bnNpZ25lZCBpbnQgaW5vX3Rp
bWVsaW1pdDsKIHVuc2lnbmVkIGludCBydF9zcGNfdGltZWxpbWl0OwogdW5zaWduZWQgaW50IHNw
Y193YXJubGltaXQ7CiB1bnNpZ25lZCBpbnQgaW5vX3dhcm5saW1pdDsKIHVuc2lnbmVkIGludCBy
dF9zcGNfd2FybmxpbWl0OwogdW5zaWduZWQgbG9uZyBsb25nIGlubzsKIGJsa2NudF90IGJsb2Nr
czsKIGJsa2NudF90IG5leHRlbnRzOwp9OwoKc3RydWN0IHFjX3N0YXRlIHsKIHVuc2lnbmVkIGlu
dCBzX2luY29yZWRxczsKIHN0cnVjdCBxY190eXBlX3N0YXRlIHNfc3RhdGVbM107Cn07CgoKc3Ry
dWN0IHFjX2luZm8gewogaW50IGlfZmllbGRtYXNrOwogdW5zaWduZWQgaW50IGlfZmxhZ3M7CiB1
bnNpZ25lZCBpbnQgaV9zcGNfdGltZWxpbWl0OwoKIHVuc2lnbmVkIGludCBpX2lub190aW1lbGlt
aXQ7CiB1bnNpZ25lZCBpbnQgaV9ydF9zcGNfdGltZWxpbWl0OwogdW5zaWduZWQgaW50IGlfc3Bj
X3dhcm5saW1pdDsKIHVuc2lnbmVkIGludCBpX2lub193YXJubGltaXQ7CiB1bnNpZ25lZCBpbnQg
aV9ydF9zcGNfd2FybmxpbWl0Owp9OwoKCnN0cnVjdCBxdW90YWN0bF9vcHMgewogaW50ICgqcXVv
dGFfb24pKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQsIGludCwgY29uc3Qgc3RydWN0IHBhdGgg
Kik7CiBpbnQgKCpxdW90YV9vZmYpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQpOwogaW50ICgq
cXVvdGFfZW5hYmxlKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdW5zaWduZWQgaW50KTsKIGludCAo
KnF1b3RhX2Rpc2FibGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBpbnQpOwogaW50
ICgqcXVvdGFfc3luYykoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CiBpbnQgKCpzZXRfaW5m
bykoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwgc3RydWN0IHFjX2luZm8gKik7CiBpbnQgKCpn
ZXRfZHFibGspKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBzdHJ1Y3Qga3FpZCwgc3RydWN0IHFjX2Rx
YmxrICopOwogaW50ICgqZ2V0X25leHRkcWJsaykoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVj
dCBrcWlkICosCiAgICAgICAgc3RydWN0IHFjX2RxYmxrICopOwogaW50ICgqc2V0X2RxYmxrKShz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGtxaWQsIHN0cnVjdCBxY19kcWJsayAqKTsKIGlu
dCAoKmdldF9zdGF0ZSkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBxY19zdGF0ZSAqKTsK
IGludCAoKnJtX3hxdW90YSkoc3RydWN0IHN1cGVyX2Jsb2NrICosIHVuc2lnbmVkIGludCk7Cn07
CgpzdHJ1Y3QgcXVvdGFfZm9ybWF0X3R5cGUgewogaW50IHFmX2ZtdF9pZDsKIGNvbnN0IHN0cnVj
dCBxdW90YV9mb3JtYXRfb3BzICpxZl9vcHM7CiBzdHJ1Y3QgbW9kdWxlICpxZl9vd25lcjsKIHN0
cnVjdCBxdW90YV9mb3JtYXRfdHlwZSAqcWZfbmV4dDsKfTsKIyA0NjMgIi4vaW5jbHVkZS9saW51
eC9xdW90YS5oIgplbnVtIHsKIF9EUVVPVF9VU0FHRV9FTkFCTEVEID0gMCwKIF9EUVVPVF9MSU1J
VFNfRU5BQkxFRCwKIF9EUVVPVF9TVVNQRU5ERUQsCgoKIF9EUVVPVF9TVEFURV9GTEFHUwp9Owoj
IDQ5MCAiLi9pbmNsdWRlL2xpbnV4L3F1b3RhLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGludCBkcXVvdF9zdGF0ZV9m
bGFnKHVuc2lnbmVkIGludCBmbGFncywgaW50IHR5cGUpCnsKIHJldHVybiBmbGFncyA8PCB0eXBl
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBpbnQgZHF1b3RfZ2VuZXJpY19mbGFnKHVuc2lnbmVkIGludCBmbGFncywg
aW50IHR5cGUpCnsKIHJldHVybiAoZmxhZ3MgPj4gdHlwZSkgJiAoKDEgPDwgX0RRVU9UX1VTQUdF
X0VOQUJMRUQgKiAzKSB8ICgxIDw8IF9EUVVPVF9MSU1JVFNfRU5BQkxFRCAqIDMpIHwgKDEgPDwg
X0RRVU9UX1NVU1BFTkRFRCAqIDMpKTsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGlu
ZV9fKSkgdW5zaWduZWQgZHF1b3Rfc3RhdGVfdHlwZXModW5zaWduZWQgZmxhZ3MsIHVuc2lnbmVk
IGZsYWcpCnsKIGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfNTAzKHZvaWQp
IF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygiQlVJTERfQlVHX09OIGZhaWxlZDogIiAiKGZsYWcp
ID09IDAgfHwgKCgoZmxhZykgJiAoKGZsYWcpIC0gMSkpICE9IDApIikpKTsgaWYgKCEoISgoZmxh
ZykgPT0gMCB8fCAoKChmbGFnKSAmICgoZmxhZykgLSAxKSkgIT0gMCkpKSkgX19jb21waWxldGlt
ZV9hc3NlcnRfNTAzKCk7IH0gd2hpbGUgKDApOwogcmV0dXJuIChmbGFncyAvIGZsYWcpICYgKCgx
IDw8IDMpIC0gMSk7Cn0KCgpleHRlcm4gdm9pZCBxdW90YV9zZW5kX3dhcm5pbmcoc3RydWN0IGtx
aWQgcWlkLCBkZXZfdCBkZXYsCiAgICAgICAgICBjb25zdCBjaGFyIHdhcm50eXBlKTsKIyA1MTgg
Ii4vaW5jbHVkZS9saW51eC9xdW90YS5oIgpzdHJ1Y3QgcXVvdGFfaW5mbyB7CiB1bnNpZ25lZCBp
bnQgZmxhZ3M7CiBzdHJ1Y3Qgcndfc2VtYXBob3JlIGRxaW9fc2VtOwogc3RydWN0IGlub2RlICpm
aWxlc1szXTsKIHN0cnVjdCBtZW1fZHFpbmZvIGluZm9bM107CiBjb25zdCBzdHJ1Y3QgcXVvdGFf
Zm9ybWF0X29wcyAqb3BzWzNdOwp9OwoKaW50IHJlZ2lzdGVyX3F1b3RhX2Zvcm1hdChzdHJ1Y3Qg
cXVvdGFfZm9ybWF0X3R5cGUgKmZtdCk7CnZvaWQgdW5yZWdpc3Rlcl9xdW90YV9mb3JtYXQoc3Ry
dWN0IHF1b3RhX2Zvcm1hdF90eXBlICpmbXQpOwoKc3RydWN0IHF1b3RhX21vZHVsZV9uYW1lIHsK
IGludCBxbV9mbXRfaWQ7CiBjaGFyICpxbV9tb2RfbmFtZTsKfTsKIyAyNDYgIi4vaW5jbHVkZS9s
aW51eC9mcy5oIiAyCiMgMjc5ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKZW51bSBwb3NpdGl2ZV9h
b3BfcmV0dXJucyB7CiBBT1BfV1JJVEVQQUdFX0FDVElWQVRFID0gMHg4MDAwMCwKIEFPUF9UUlVO
Q0FURURfUEFHRSA9IDB4ODAwMDEsCn07CiMgMjkyICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3Ry
dWN0IHBhZ2U7CnN0cnVjdCBhZGRyZXNzX3NwYWNlOwpzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2w7
CgoKCgoKZW51bSByd19oaW50IHsKIFdSSVRFX0xJRkVfTk9UX1NFVCA9IDAsCiBXUklURV9MSUZF
X05PTkUgPSAxLAogV1JJVEVfTElGRV9TSE9SVCA9IDIsCiBXUklURV9MSUZFX01FRElVTSA9IDMs
CiBXUklURV9MSUZFX0xPTkcgPSA0LAogV1JJVEVfTElGRV9FWFRSRU1FID0gNSwKfTsKIyAzMTgg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgpzdHJ1Y3Qga2lvY2Igewogc3RydWN0IGZpbGUgKmtpX2Zp
bHA7CgoKCgogbG9mZl90IGtpX3BvczsKIHZvaWQgKCpraV9jb21wbGV0ZSkoc3RydWN0IGtpb2Ni
ICppb2NiLCBsb25nIHJldCwgbG9uZyByZXQyKTsKIHZvaWQgKnByaXZhdGU7CiBpbnQga2lfZmxh
Z3M7CiB1MTYga2lfaGludDsKIHUxNiBraV9pb3ByaW87CiB1bnNpZ25lZCBpbnQga2lfY29va2ll
OwoKCn07CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIGlzX3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYikKewogcmV0dXJu
IGtpb2NiLT5raV9jb21wbGV0ZSA9PSAoKHZvaWQgKikwKTsKfQojIDM0OSAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiCnR5cGVkZWYgc3RydWN0IHsKIHNpemVfdCB3cml0dGVuOwogc2l6ZV90IGNvdW50
OwogdW5pb24gewogIGNoYXIgKmJ1ZjsKICB2b2lkICpkYXRhOwogfSBhcmc7CiBpbnQgZXJyb3I7
Cn0gcmVhZF9kZXNjcmlwdG9yX3Q7Cgp0eXBlZGVmIGludCAoKnJlYWRfYWN0b3JfdCkocmVhZF9k
ZXNjcmlwdG9yX3QgKiwgc3RydWN0IHBhZ2UgKiwKICB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBs
b25nKTsKCnN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgewogaW50ICgqd3JpdGVwYWdl
KShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpOwogaW50
ICgqcmVhZHBhZ2UpKHN0cnVjdCBmaWxlICosIHN0cnVjdCBwYWdlICopOwoKCiBpbnQgKCp3cml0
ZXBhZ2VzKShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wg
Kik7CgoKIGludCAoKnNldF9wYWdlX2RpcnR5KShzdHJ1Y3QgcGFnZSAqcGFnZSk7CgoKCgoKIGlu
dCAoKnJlYWRwYWdlcykoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nLAogICBzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlcywgdW5zaWduZWQgbnJfcGFnZXMpOwoK
IGludCAoKndyaXRlX2JlZ2luKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq
bWFwcGluZywKICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsCiAg
ICBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKTsKIGludCAoKndyaXRlX2VuZCko
c3RydWN0IGZpbGUgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAgICBsb2ZmX3Qg
cG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwKICAgIHN0cnVjdCBwYWdlICpwYWdl
LCB2b2lkICpmc2RhdGEpOwoKCiBzZWN0b3JfdCAoKmJtYXApKHN0cnVjdCBhZGRyZXNzX3NwYWNl
ICosIHNlY3Rvcl90KTsKIHZvaWQgKCppbnZhbGlkYXRlcGFnZSkgKHN0cnVjdCBwYWdlICosIHVu
c2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKIGludCAoKnJlbGVhc2VwYWdlKSAoc3RydWN0IHBh
Z2UgKiwgZ2ZwX3QpOwogdm9pZCAoKmZyZWVwYWdlKShzdHJ1Y3QgcGFnZSAqKTsKIHNzaXplX3Qg
KCpkaXJlY3RfSU8pKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpOwoKCgoK
IGludCAoKm1pZ3JhdGVwYWdlKSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKICAgc3RydWN0IHBh
Z2UgKiwgc3RydWN0IHBhZ2UgKiwgZW51bSBtaWdyYXRlX21vZGUpOwogYm9vbCAoKmlzb2xhdGVf
cGFnZSkoc3RydWN0IHBhZ2UgKiwgaXNvbGF0ZV9tb2RlX3QpOwogdm9pZCAoKnB1dGJhY2tfcGFn
ZSkoc3RydWN0IHBhZ2UgKik7CiBpbnQgKCpsYXVuZGVyX3BhZ2UpIChzdHJ1Y3QgcGFnZSAqKTsK
IGludCAoKmlzX3BhcnRpYWxseV91cHRvZGF0ZSkgKHN0cnVjdCBwYWdlICosIHVuc2lnbmVkIGxv
bmcsCiAgICAgdW5zaWduZWQgbG9uZyk7CiB2b2lkICgqaXNfZGlydHlfd3JpdGViYWNrKSAoc3Ry
dWN0IHBhZ2UgKiwgYm9vbCAqLCBib29sICopOwogaW50ICgqZXJyb3JfcmVtb3ZlX3BhZ2UpKHN0
cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVjdCBwYWdlICopOwoKCiBpbnQgKCpzd2FwX2FjdGl2
YXRlKShzdHJ1Y3Qgc3dhcF9pbmZvX3N0cnVjdCAqc2lzLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKICAg
IHNlY3Rvcl90ICpzcGFuKTsKIHZvaWQgKCpzd2FwX2RlYWN0aXZhdGUpKHN0cnVjdCBmaWxlICpm
aWxlKTsKfTsKCmV4dGVybiBjb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGVt
cHR5X2FvcHM7CgoKCgoKaW50IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqLCBz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxl
biwgdW5zaWduZWQgZmxhZ3MsCiAgICBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRh
KTsKCmludCBwYWdlY2FjaGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNz
X3NwYWNlICptYXBwaW5nLAogICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBj
b3BpZWQsCiAgICBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKTsKIyA0NDUgIi4vaW5j
bHVkZS9saW51eC9mcy5oIgpzdHJ1Y3QgYWRkcmVzc19zcGFjZSB7CiBzdHJ1Y3QgaW5vZGUgKmhv
c3Q7CiBzdHJ1Y3QgeGFycmF5IGlfcGFnZXM7CiBnZnBfdCBnZnBfbWFzazsKIGF0b21pY190IGlf
bW1hcF93cml0YWJsZTsKCgoKCiBzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgaV9tbWFwOwogc3RydWN0
IHJ3X3NlbWFwaG9yZSBpX21tYXBfcndzZW07CiB1bnNpZ25lZCBsb25nIG5ycGFnZXM7CiB1bnNp
Z25lZCBsb25nIG5yZXhjZXB0aW9uYWw7CiB1bnNpZ25lZCBsb25nIHdyaXRlYmFja19pbmRleDsK
IGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgKmFfb3BzOwogdW5zaWduZWQg
bG9uZyBmbGFnczsKIGVycnNlcV90IHdiX2VycjsKIHNwaW5sb2NrX3QgcHJpdmF0ZV9sb2NrOwog
c3RydWN0IGxpc3RfaGVhZCBwcml2YXRlX2xpc3Q7CiB2b2lkICpwcml2YXRlX2RhdGE7Cn0gX19h
dHRyaWJ1dGVfXygoYWxpZ25lZChzaXplb2YobG9uZykpKSkgX19hdHRyaWJ1dGVfXygoX19kZXNp
Z25hdGVkX2luaXRfXykpOwoKCgoKCnN0cnVjdCByZXF1ZXN0X3F1ZXVlOwoKc3RydWN0IGJsb2Nr
X2RldmljZSB7CiBkZXZfdCBiZF9kZXY7CiBpbnQgYmRfb3BlbmVyczsKIHN0cnVjdCBpbm9kZSAq
IGJkX2lub2RlOwogc3RydWN0IHN1cGVyX2Jsb2NrICogYmRfc3VwZXI7CiBzdHJ1Y3QgbXV0ZXgg
YmRfbXV0ZXg7CiB2b2lkICogYmRfY2xhaW1pbmc7CiB2b2lkICogYmRfaG9sZGVyOwogaW50IGJk
X2hvbGRlcnM7CiBib29sIGJkX3dyaXRlX2hvbGRlcjsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGJkX2hv
bGRlcl9kaXNrczsKCiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICogYmRfY29udGFpbnM7CiB1bnNpZ25l
ZCBiZF9ibG9ja19zaXplOwogdTggYmRfcGFydG5vOwogc3RydWN0IGhkX3N0cnVjdCAqIGJkX3Bh
cnQ7CgogdW5zaWduZWQgYmRfcGFydF9jb3VudDsKIGludCBiZF9pbnZhbGlkYXRlZDsKIHN0cnVj
dCBnZW5kaXNrICogYmRfZGlzazsKIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICogYmRfcXVldWU7CiBz
dHJ1Y3QgYmFja2luZ19kZXZfaW5mbyAqYmRfYmRpOwogc3RydWN0IGxpc3RfaGVhZCBiZF9saXN0
OwoKCgoKCgogdW5zaWduZWQgbG9uZyBiZF9wcml2YXRlOwoKCiBpbnQgYmRfZnNmcmVlemVfY291
bnQ7Cgogc3RydWN0IG11dGV4IGJkX2ZzZnJlZXplX211dGV4Owp9IF9fYXR0cmlidXRlX18oKF9f
ZGVzaWduYXRlZF9pbml0X18pKTsKIyA1MTkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIG1h
cHBpbmdfdGFnZ2VkKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCB4YV9tYXJrX3QgdGFn
KQp7CiByZXR1cm4geGFfbWFya2VkKCZtYXBwaW5nLT5pX3BhZ2VzLCB0YWcpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlf
bW1hcF9sb2NrX3dyaXRlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQp7CiBkb3duX3dy
aXRlKCZtYXBwaW5nLT5pX21tYXBfcndzZW0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfbW1hcF91bmxvY2tfd3JpdGUo
c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCnsKIHVwX3dyaXRlKCZtYXBwaW5nLT5pX21t
YXBfcndzZW0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGlfbW1hcF9sb2NrX3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
Km1hcHBpbmcpCnsKIGRvd25fcmVhZCgmbWFwcGluZy0+aV9tbWFwX3J3c2VtKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBp
X21tYXBfdW5sb2NrX3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCnsKIHVwX3Jl
YWQoJm1hcHBpbmctPmlfbW1hcF9yd3NlbSk7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtYXBwaW5nX21hcHBlZChzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewogcmV0dXJuICEoKHsgdW5pb24geyB0eXBlb2Yo
KCZtYXBwaW5nLT5pX21tYXAucmJfcm9vdCktPnJiX25vZGUpIF9fdmFsOyBjaGFyIF9fY1sxXTsg
fSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZtYXBwaW5nLT5pX21tYXAucmJfcm9v
dCktPnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZtYXBwaW5nLT5pX21tYXAucmJfcm9vdCkt
PnJiX25vZGUpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXplX25vY2hlY2soJigoJm1hcHBpbmctPmlf
bW1hcC5yYl9yb290KS0+cmJfbm9kZSksIF9fdS5fX2MsIHNpemVvZigoJm1hcHBpbmctPmlfbW1h
cC5yYl9yb290KS0+cmJfbm9kZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pID09
ICgodm9pZCAqKTApKTsKfQojIDU2MSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBtYXBwaW5n
X3dyaXRhYmx5X21hcHBlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewogcmV0dXJu
IGF0b21pY19yZWFkKCZtYXBwaW5nLT5pX21tYXBfd3JpdGFibGUpID4gMDsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IG1hcHBp
bmdfbWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQp7CiByZXR1cm4g
YXRvbWljX2luY191bmxlc3NfbmVnYXRpdmUoJm1hcHBpbmctPmlfbW1hcF93cml0YWJsZSkgPwog
IDAgOiAtMTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBtYXBwaW5nX3VubWFwX3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nKQp7CiBhdG9taWNfZGVjKCZtYXBwaW5nLT5pX21tYXBfd3JpdGFibGUpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgbWFwcGluZ19kZW55X3dyaXRhYmxlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
KQp7CiByZXR1cm4gYXRvbWljX2RlY191bmxlc3NfcG9zaXRpdmUoJm1hcHBpbmctPmlfbW1hcF93
cml0YWJsZSkgPwogIDAgOiAtMTY7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWFwcGluZ19hbGxvd193cml0YWJsZShzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewogYXRvbWljX2luYygmbWFwcGluZy0+aV9tbWFw
X3dyaXRhYmxlKTsKfQojIDU5OSAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0cnVjdCBwb3NpeF9h
Y2w7CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHN0cnVjdCBwb3NpeF9hY2wgKgp1bmNhY2hlZF9hY2xfc2VudGluZWwoc3RydWN0IHRh
c2tfc3RydWN0ICp0YXNrKQp7CiByZXR1cm4gKHZvaWQgKil0YXNrICsgMTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbAppc191
bmNhY2hlZF9hY2woc3RydWN0IHBvc2l4X2FjbCAqYWNsKQp7CiByZXR1cm4gKGxvbmcpYWNsICYg
MTsKfQoKCgoKCgoKc3RydWN0IGZzbm90aWZ5X21hcmtfY29ubmVjdG9yOwoKCgoKCgpzdHJ1Y3Qg
aW5vZGUgewogdW1vZGVfdCBpX21vZGU7CiB1bnNpZ25lZCBzaG9ydCBpX29wZmxhZ3M7CiBrdWlk
X3QgaV91aWQ7CiBrZ2lkX3QgaV9naWQ7CiB1bnNpZ25lZCBpbnQgaV9mbGFnczsKCgogc3RydWN0
IHBvc2l4X2FjbCAqaV9hY2w7CiBzdHJ1Y3QgcG9zaXhfYWNsICppX2RlZmF1bHRfYWNsOwoKCiBj
b25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyAqaV9vcDsKIHN0cnVjdCBzdXBlcl9ibG9jayAq
aV9zYjsKIHN0cnVjdCBhZGRyZXNzX3NwYWNlICppX21hcHBpbmc7CgoKIHZvaWQgKmlfc2VjdXJp
dHk7CgoKCiB1bnNpZ25lZCBsb25nIGlfaW5vOwoKCgoKCgoKIHVuaW9uIHsKICBjb25zdCB1bnNp
Z25lZCBpbnQgaV9ubGluazsKICB1bnNpZ25lZCBpbnQgX19pX25saW5rOwogfTsKIGRldl90IGlf
cmRldjsKIGxvZmZfdCBpX3NpemU7CiBzdHJ1Y3QgdGltZXNwZWM2NCBpX2F0aW1lOwogc3RydWN0
IHRpbWVzcGVjNjQgaV9tdGltZTsKIHN0cnVjdCB0aW1lc3BlYzY0IGlfY3RpbWU7CiBzcGlubG9j
a190IGlfbG9jazsKIHVuc2lnbmVkIHNob3J0IGlfYnl0ZXM7CiB1OCBpX2Jsa2JpdHM7CiB1OCBp
X3dyaXRlX2hpbnQ7CiBibGtjbnRfdCBpX2Jsb2NrczsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgaV9z
dGF0ZTsKIHN0cnVjdCByd19zZW1hcGhvcmUgaV9yd3NlbTsKCiB1bnNpZ25lZCBsb25nIGRpcnRp
ZWRfd2hlbjsKIHVuc2lnbmVkIGxvbmcgZGlydGllZF90aW1lX3doZW47Cgogc3RydWN0IGhsaXN0
X25vZGUgaV9oYXNoOwogc3RydWN0IGxpc3RfaGVhZCBpX2lvX2xpc3Q7Cgogc3RydWN0IGJkaV93
cml0ZWJhY2sgKmlfd2I7CgoKIGludCBpX3diX2Zybl93aW5uZXI7CiB1MTYgaV93Yl9mcm5fYXZn
X3RpbWU7CiB1MTYgaV93Yl9mcm5faGlzdG9yeTsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGlfbHJ1Owog
c3RydWN0IGxpc3RfaGVhZCBpX3NiX2xpc3Q7CiBzdHJ1Y3QgbGlzdF9oZWFkIGlfd2JfbGlzdDsK
IHVuaW9uIHsKICBzdHJ1Y3QgaGxpc3RfaGVhZCBpX2RlbnRyeTsKICBzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCBpX3JjdTsKIH07CiBhdG9taWM2NF90IGlfdmVyc2lvbjsKIGF0b21pYzY0X3QgaV9zZXF1
ZW5jZTsKIGF0b21pY190IGlfY291bnQ7CiBhdG9taWNfdCBpX2Rpb19jb3VudDsKIGF0b21pY190
IGlfd3JpdGVjb3VudDsKCiBhdG9taWNfdCBpX3JlYWRjb3VudDsKCiB1bmlvbiB7CiAgY29uc3Qg
c3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CiAgdm9pZCAoKmZyZWVfaW5vZGUpKHN0cnVj
dCBpbm9kZSAqKTsKIH07CiBzdHJ1Y3QgZmlsZV9sb2NrX2NvbnRleHQgKmlfZmxjdHg7CiBzdHJ1
Y3QgYWRkcmVzc19zcGFjZSBpX2RhdGE7CiBzdHJ1Y3QgbGlzdF9oZWFkIGlfZGV2aWNlczsKIHVu
aW9uIHsKICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICppX3BpcGU7CiAgc3RydWN0IGJsb2NrX2Rl
dmljZSAqaV9iZGV2OwogIHN0cnVjdCBjZGV2ICppX2NkZXY7CiAgY2hhciAqaV9saW5rOwogIHVu
c2lnbmVkIGlfZGlyX3NlcTsKIH07CgogX191MzIgaV9nZW5lcmF0aW9uOwoKCiBfX3UzMiBpX2Zz
bm90aWZ5X21hc2s7CiBzdHJ1Y3QgZnNub3RpZnlfbWFya19jb25uZWN0b3IgKmlfZnNub3RpZnlf
bWFya3M7CiMgNzM4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKIHZvaWQgKmlfcHJpdmF0ZTsKfSBf
X2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3QgdGltZXNwZWM2NCB0
aW1lc3RhbXBfdHJ1bmNhdGUoc3RydWN0IHRpbWVzcGVjNjQgdCwgc3RydWN0IGlub2RlICppbm9k
ZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBpbnQgaV9ibG9ja3NpemUoY29uc3Qgc3RydWN0IGlub2RlICpub2RlKQp7
CiByZXR1cm4gKDEgPDwgbm9kZS0+aV9ibGtiaXRzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3VuaGFzaGVkKHN0
cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiBobGlzdF91bmhhc2hlZCgmaW5vZGUtPmlfaGFz
aCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfZmFrZV9oYXNoKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK
IGhsaXN0X2FkZF9mYWtlKCZpbm9kZS0+aV9oYXNoKTsKfQojIDc4MCAiLi9pbmNsdWRlL2xpbnV4
L2ZzLmgiCmVudW0gaW5vZGVfaV9tdXRleF9sb2NrX2NsYXNzCnsKIElfTVVURVhfTk9STUFMLAog
SV9NVVRFWF9QQVJFTlQsCiBJX01VVEVYX0NISUxELAogSV9NVVRFWF9YQVRUUiwKIElfTVVURVhf
Tk9ORElSMiwKIElfTVVURVhfUEFSRU5UMiwKfTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfbG9jayhzdHJ1Y3QgaW5v
ZGUgKmlub2RlKQp7CiBkb3duX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVf
dW5sb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHVwX3dyaXRlKCZpbm9kZS0+aV9yd3NlbSk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaW5vZGVfbG9ja19zaGFyZWQoc3RydWN0IGlub2RlICppbm9kZSkKewogZG93bl9y
ZWFkKCZpbm9kZS0+aV9yd3NlbSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW5vZGVfdW5sb2NrX3NoYXJlZChzdHJ1Y3Qg
aW5vZGUgKmlub2RlKQp7CiB1cF9yZWFkKCZpbm9kZS0+aV9yd3NlbSk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpbm9kZV90
cnlsb2NrKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiBkb3duX3dyaXRlX3RyeWxvY2so
Jmlub2RlLT5pX3J3c2VtKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGlub2RlX3RyeWxvY2tfc2hhcmVkKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpCnsKIHJldHVybiBkb3duX3JlYWRfdHJ5bG9jaygmaW5vZGUtPmlfcndzZW0pOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgaW5vZGVfaXNfbG9ja2VkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiByd3Nl
bV9pc19sb2NrZWQoJmlub2RlLT5pX3J3c2VtKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9sb2NrX25lc3RlZChz
dHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBzdWJjbGFzcykKewogZG93bl93cml0ZSgmaW5v
ZGUtPmlfcndzZW0pOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2xvY2tfc2hhcmVkX25lc3RlZChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCB1bnNpZ25lZCBzdWJjbGFzcykKewogZG93bl9yZWFkKCZpbm9kZS0+aV9yd3Nl
bSk7Cn0KCnZvaWQgbG9ja190d29fbm9uZGlyZWN0b3JpZXMoc3RydWN0IGlub2RlICosIHN0cnVj
dCBpbm9kZSopOwp2b2lkIHVubG9ja190d29fbm9uZGlyZWN0b3JpZXMoc3RydWN0IGlub2RlICos
IHN0cnVjdCBpbm9kZSopOwojIDg0OCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvZmZfdCBpX3Np
emVfcmVhZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiMgODY3ICIuL2luY2x1ZGUvbGlu
dXgvZnMuaCIKIHJldHVybiBpbm9kZS0+aV9zaXplOwoKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfc2l6ZV93cml0
ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgaV9zaXplKQp7CiMgODg5ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIKIGlub2RlLT5pX3NpemUgPSBpX3NpemU7Cgp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbWlub3Io
Y29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKewogcmV0dXJuICgodW5zaWduZWQgaW50KSAoKGlu
b2RlLT5pX3JkZXYpICYgKCgxVSA8PCAyMCkgLSAxKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1bnNpZ25lZCBpbWFqb3IoY29u
c3Qgc3RydWN0IGlub2RlICppbm9kZSkKewogcmV0dXJuICgodW5zaWduZWQgaW50KSAoKGlub2Rl
LT5pX3JkZXYpID4+IDIwKSk7Cn0KCmV4dGVybiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpJX0JERVYo
c3RydWN0IGlub2RlICppbm9kZSk7CgpzdHJ1Y3QgZm93bl9zdHJ1Y3Qgewogcndsb2NrX3QgbG9j
azsKIHN0cnVjdCBwaWQgKnBpZDsKIGVudW0gcGlkX3R5cGUgcGlkX3R5cGU7CiBrdWlkX3QgdWlk
LCBldWlkOwogaW50IHNpZ251bTsKfTsKCgoKCnN0cnVjdCBmaWxlX3JhX3N0YXRlIHsKIHVuc2ln
bmVkIGxvbmcgc3RhcnQ7CiB1bnNpZ25lZCBpbnQgc2l6ZTsKIHVuc2lnbmVkIGludCBhc3luY19z
aXplOwoKCiB1bnNpZ25lZCBpbnQgcmFfcGFnZXM7CiB1bnNpZ25lZCBpbnQgbW1hcF9taXNzOwog
bG9mZl90IHByZXZfcG9zOwp9OwoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJhX2hhc19pbmRleChzdHJ1Y3QgZmlsZV9yYV9z
dGF0ZSAqcmEsIHVuc2lnbmVkIGxvbmcgaW5kZXgpCnsKIHJldHVybiAoaW5kZXggPj0gcmEtPnN0
YXJ0ICYmCiAgaW5kZXggPCByYS0+c3RhcnQgKyByYS0+c2l6ZSk7Cn0KCnN0cnVjdCBmaWxlIHsK
IHVuaW9uIHsKICBzdHJ1Y3QgbGxpc3Rfbm9kZSBmdV9sbGlzdDsKICBzdHJ1Y3QgY2FsbGJhY2tf
aGVhZCBmdV9yY3VoZWFkOwogfSBmX3U7CiBzdHJ1Y3QgcGF0aCBmX3BhdGg7CiBzdHJ1Y3QgaW5v
ZGUgKmZfaW5vZGU7CiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmX29wOwoKCgoKCiBz
cGlubG9ja190IGZfbG9jazsKIGVudW0gcndfaGludCBmX3dyaXRlX2hpbnQ7CiBhdG9taWNfbG9u
Z190IGZfY291bnQ7CiB1bnNpZ25lZCBpbnQgZl9mbGFnczsKIGZtb2RlX3QgZl9tb2RlOwogc3Ry
dWN0IG11dGV4IGZfcG9zX2xvY2s7CiBsb2ZmX3QgZl9wb3M7CiBzdHJ1Y3QgZm93bl9zdHJ1Y3Qg
Zl9vd25lcjsKIGNvbnN0IHN0cnVjdCBjcmVkICpmX2NyZWQ7CiBzdHJ1Y3QgZmlsZV9yYV9zdGF0
ZSBmX3JhOwoKIHU2NCBmX3ZlcnNpb247Cgogdm9pZCAqZl9zZWN1cml0eTsKCgogdm9pZCAqcHJp
dmF0ZV9kYXRhOwoKCgogc3RydWN0IGxpc3RfaGVhZCBmX2VwX2xpbmtzOwogc3RydWN0IGxpc3Rf
aGVhZCBmX3RmaWxlX2xsaW5rOwoKIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpmX21hcHBpbmc7CiBl
cnJzZXFfdCBmX3diX2VycjsKfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSkK
ICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpKSk7CgpzdHJ1Y3QgZmlsZV9oYW5kbGUgewogX191
MzIgaGFuZGxlX2J5dGVzOwogaW50IGhhbmRsZV90eXBlOwoKIHVuc2lnbmVkIGNoYXIgZl9oYW5k
bGVbMF07Cn07CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZmlsZSAqZ2V0X2ZpbGUoc3RydWN0IGZpbGUgKmYpCnsKIGF0b21p
Y19sb25nX2luYygmZi0+Zl9jb3VudCk7CiByZXR1cm4gZjsKfQojIDEwMjYgIi4vaW5jbHVkZS9s
aW51eC9mcy5oIgp0eXBlZGVmIHZvaWQgKmZsX293bmVyX3Q7CgpzdHJ1Y3QgZmlsZV9sb2NrOwoK
c3RydWN0IGZpbGVfbG9ja19vcGVyYXRpb25zIHsKIHZvaWQgKCpmbF9jb3B5X2xvY2spKHN0cnVj
dCBmaWxlX2xvY2sgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKIHZvaWQgKCpmbF9yZWxlYXNlX3By
aXZhdGUpKHN0cnVjdCBmaWxlX2xvY2sgKik7Cn07CgpzdHJ1Y3QgbG9ja19tYW5hZ2VyX29wZXJh
dGlvbnMgewogZmxfb3duZXJfdCAoKmxtX2dldF9vd25lcikoZmxfb3duZXJfdCk7CiB2b2lkICgq
bG1fcHV0X293bmVyKShmbF9vd25lcl90KTsKIHZvaWQgKCpsbV9ub3RpZnkpKHN0cnVjdCBmaWxl
X2xvY2sgKik7CiBpbnQgKCpsbV9ncmFudCkoc3RydWN0IGZpbGVfbG9jayAqLCBpbnQpOwogYm9v
bCAoKmxtX2JyZWFrKShzdHJ1Y3QgZmlsZV9sb2NrICopOwogaW50ICgqbG1fY2hhbmdlKShzdHJ1
Y3QgZmlsZV9sb2NrICosIGludCwgc3RydWN0IGxpc3RfaGVhZCAqKTsKIHZvaWQgKCpsbV9zZXR1
cCkoc3RydWN0IGZpbGVfbG9jayAqLCB2b2lkICoqKTsKfTsKCnN0cnVjdCBsb2NrX21hbmFnZXIg
ewogc3RydWN0IGxpc3RfaGVhZCBsaXN0OwoKCgoKIGJvb2wgYmxvY2tfb3BlbnM7Cn07CgpzdHJ1
Y3QgbmV0Owp2b2lkIGxvY2tzX3N0YXJ0X2dyYWNlKHN0cnVjdCBuZXQgKiwgc3RydWN0IGxvY2tf
bWFuYWdlciAqKTsKdm9pZCBsb2Nrc19lbmRfZ3JhY2Uoc3RydWN0IGxvY2tfbWFuYWdlciAqKTsK
Ym9vbCBsb2Nrc19pbl9ncmFjZShzdHJ1Y3QgbmV0ICopOwpib29sIG9wZW5zX2luX2dyYWNlKHN0
cnVjdCBuZXQgKik7CgoKIyAxICIuL2luY2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIgMQoKCgoKc3Ry
dWN0IG5sbV9sb2Nrb3duZXI7CgoKCgpzdHJ1Y3QgbmZzX2xvY2tfaW5mbyB7CiB1MzIgc3RhdGU7
CiBzdHJ1Y3QgbmxtX2xvY2tvd25lciAqb3duZXI7CiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cn07
CgpzdHJ1Y3QgbmZzNF9sb2NrX3N0YXRlOwpzdHJ1Y3QgbmZzNF9sb2NrX2luZm8gewogc3RydWN0
IG5mczRfbG9ja19zdGF0ZSAqb3duZXI7Cn07CiMgMTA2MiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKIyAxMDgwICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RydWN0IGZpbGVfbG9jayB7CiBzdHJ1
Y3QgZmlsZV9sb2NrICpmbF9ibG9ja2VyOwogc3RydWN0IGxpc3RfaGVhZCBmbF9saXN0Owogc3Ry
dWN0IGhsaXN0X25vZGUgZmxfbGluazsKIHN0cnVjdCBsaXN0X2hlYWQgZmxfYmxvY2tlZF9yZXF1
ZXN0czsKCgogc3RydWN0IGxpc3RfaGVhZCBmbF9ibG9ja2VkX21lbWJlcjsKCgogZmxfb3duZXJf
dCBmbF9vd25lcjsKIHVuc2lnbmVkIGludCBmbF9mbGFnczsKIHVuc2lnbmVkIGNoYXIgZmxfdHlw
ZTsKIHVuc2lnbmVkIGludCBmbF9waWQ7CiBpbnQgZmxfbGlua19jcHU7CiB3YWl0X3F1ZXVlX2hl
YWRfdCBmbF93YWl0Owogc3RydWN0IGZpbGUgKmZsX2ZpbGU7CiBsb2ZmX3QgZmxfc3RhcnQ7CiBs
b2ZmX3QgZmxfZW5kOwoKIHN0cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoKIHVuc2ln
bmVkIGxvbmcgZmxfYnJlYWtfdGltZTsKIHVuc2lnbmVkIGxvbmcgZmxfZG93bmdyYWRlX3RpbWU7
CgogY29uc3Qgc3RydWN0IGZpbGVfbG9ja19vcGVyYXRpb25zICpmbF9vcHM7CiBjb25zdCBzdHJ1
Y3QgbG9ja19tYW5hZ2VyX29wZXJhdGlvbnMgKmZsX2xtb3BzOwogdW5pb24gewogIHN0cnVjdCBu
ZnNfbG9ja19pbmZvIG5mc19mbDsKICBzdHJ1Y3QgbmZzNF9sb2NrX2luZm8gbmZzNF9mbDsKICBz
dHJ1Y3QgewogICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7CiAgIGludCBzdGF0ZTsKICAgdW5zaWdu
ZWQgaW50IGRlYnVnX2lkOwogIH0gYWZzOwogfSBmbF91Owp9IF9fYXR0cmlidXRlX18oKF9fZGVz
aWduYXRlZF9pbml0X18pKTsKCnN0cnVjdCBmaWxlX2xvY2tfY29udGV4dCB7CiBzcGlubG9ja190
IGZsY19sb2NrOwogc3RydWN0IGxpc3RfaGVhZCBmbGNfZmxvY2s7CiBzdHJ1Y3QgbGlzdF9oZWFk
IGZsY19wb3NpeDsKIHN0cnVjdCBsaXN0X2hlYWQgZmxjX2xlYXNlOwp9OwojIDExMzIgIi4vaW5j
bHVkZS9saW51eC9mcy5oIgpleHRlcm4gdm9pZCBzZW5kX3NpZ2lvKHN0cnVjdCBmb3duX3N0cnVj
dCAqZm93biwgaW50IGZkLCBpbnQgYmFuZCk7CgoKCgpleHRlcm4gaW50IGZjbnRsX2dldGxrKHN0
cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgc3RydWN0IGZsb2NrICopOwpleHRlcm4gaW50IGZj
bnRsX3NldGxrKHVuc2lnbmVkIGludCwgc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LAogICBz
dHJ1Y3QgZmxvY2sgKik7CgoKCgoKCgpleHRlcm4gaW50IGZjbnRsX3NldGxlYXNlKHVuc2lnbmVk
IGludCBmZCwgc3RydWN0IGZpbGUgKmZpbHAsIGxvbmcgYXJnKTsKZXh0ZXJuIGludCBmY250bF9n
ZXRsZWFzZShzdHJ1Y3QgZmlsZSAqZmlscCk7CgoKdm9pZCBsb2Nrc19mcmVlX2xvY2tfY29udGV4
dChzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKdm9pZCBsb2Nrc19mcmVlX2xvY2soc3RydWN0IGZpbGVf
bG9jayAqZmwpOwpleHRlcm4gdm9pZCBsb2Nrc19pbml0X2xvY2soc3RydWN0IGZpbGVfbG9jayAq
KTsKZXh0ZXJuIHN0cnVjdCBmaWxlX2xvY2sgKiBsb2Nrc19hbGxvY19sb2NrKHZvaWQpOwpleHRl
cm4gdm9pZCBsb2Nrc19jb3B5X2xvY2soc3RydWN0IGZpbGVfbG9jayAqLCBzdHJ1Y3QgZmlsZV9s
b2NrICopOwpleHRlcm4gdm9pZCBsb2Nrc19jb3B5X2NvbmZsb2NrKHN0cnVjdCBmaWxlX2xvY2sg
Kiwgc3RydWN0IGZpbGVfbG9jayAqKTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVtb3ZlX3Bvc2l4KHN0
cnVjdCBmaWxlICosIGZsX293bmVyX3QpOwpleHRlcm4gdm9pZCBsb2Nrc19yZW1vdmVfZmlsZShz
dHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVsZWFzZV9wcml2YXRlKHN0cnVjdCBm
aWxlX2xvY2sgKik7CmV4dGVybiB2b2lkIHBvc2l4X3Rlc3RfbG9jayhzdHJ1Y3QgZmlsZSAqLCBz
dHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gaW50IHBvc2l4X2xvY2tfZmlsZShzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiBpbnQg
bG9ja3NfZGVsZXRlX2Jsb2NrKHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiBpbnQgdmZzX3Rl
c3RfbG9jayhzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gaW50IHZm
c19sb2NrX2ZpbGUoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3QgZmlsZV9sb2Nr
ICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiBpbnQgdmZzX2NhbmNlbF9sb2NrKHN0cnVj
dCBmaWxlICpmaWxwLCBzdHJ1Y3QgZmlsZV9sb2NrICpmbCk7CmV4dGVybiBpbnQgbG9ja3NfbG9j
a19pbm9kZV93YWl0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlX2xvY2sgKmZsKTsK
ZXh0ZXJuIGludCBfX2JyZWFrX2xlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGlu
dCBmbGFncywgdW5zaWduZWQgaW50IHR5cGUpOwpleHRlcm4gdm9pZCBsZWFzZV9nZXRfbXRpbWUo
c3RydWN0IGlub2RlICosIHN0cnVjdCB0aW1lc3BlYzY0ICp0aW1lKTsKZXh0ZXJuIGludCBnZW5l
cmljX3NldGxlYXNlKHN0cnVjdCBmaWxlICosIGxvbmcsIHN0cnVjdCBmaWxlX2xvY2sgKiosIHZv
aWQgKipwcml2KTsKZXh0ZXJuIGludCB2ZnNfc2V0bGVhc2Uoc3RydWN0IGZpbGUgKiwgbG9uZywg
c3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CmV4dGVybiBpbnQgbGVhc2VfbW9kaWZ5KHN0
cnVjdCBmaWxlX2xvY2sgKiwgaW50LCBzdHJ1Y3QgbGlzdF9oZWFkICopOwoKc3RydWN0IG5vdGlm
aWVyX2Jsb2NrOwpleHRlcm4gaW50IGxlYXNlX3JlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBub3Rp
Zmllcl9ibG9jayAqKTsKZXh0ZXJuIHZvaWQgbGVhc2VfdW5yZWdpc3Rlcl9ub3RpZmllcihzdHJ1
Y3Qgbm90aWZpZXJfYmxvY2sgKik7CgpzdHJ1Y3QgZmlsZXNfc3RydWN0OwpleHRlcm4gdm9pZCBz
aG93X2ZkX2xvY2tzKHN0cnVjdCBzZXFfZmlsZSAqZiwKICAgIHN0cnVjdCBmaWxlICpmaWxwLCBz
dHJ1Y3QgZmlsZXNfc3RydWN0ICpmaWxlcyk7CiMgMTMxNyAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBpbm9kZSAqZmlsZV9pbm9kZShjb25zdCBzdHJ1Y3QgZmlsZSAqZikKewogcmV0dXJu
IGYtPmZfaW5vZGU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZW50cnkgKmZpbGVfZGVudHJ5KGNvbnN0IHN0cnVjdCBm
aWxlICpmaWxlKQp7CiByZXR1cm4gZF9yZWFsKGZpbGUtPmZfcGF0aC5kZW50cnksIGZpbGVfaW5v
ZGUoZmlsZSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgbG9ja3NfbG9ja19maWxlX3dhaXQoc3RydWN0IGZpbGUgKmZpbHAs
IHN0cnVjdCBmaWxlX2xvY2sgKmZsKQp7CiByZXR1cm4gbG9ja3NfbG9ja19pbm9kZV93YWl0KGZp
bGVfaW5vZGUoZmlscCksIGZsKTsKfQoKc3RydWN0IGZhc3luY19zdHJ1Y3Qgewogcndsb2NrX3Qg
ZmFfbG9jazsKIGludCBtYWdpYzsKIGludCBmYV9mZDsKIHN0cnVjdCBmYXN5bmNfc3RydWN0ICpm
YV9uZXh0Owogc3RydWN0IGZpbGUgKmZhX2ZpbGU7CiBzdHJ1Y3QgY2FsbGJhY2tfaGVhZCBmYV9y
Y3U7Cn07CgoKCgpleHRlcm4gaW50IGZhc3luY19oZWxwZXIoaW50LCBzdHJ1Y3QgZmlsZSAqLCBp
bnQsIHN0cnVjdCBmYXN5bmNfc3RydWN0ICoqKTsKZXh0ZXJuIHN0cnVjdCBmYXN5bmNfc3RydWN0
ICpmYXN5bmNfaW5zZXJ0X2VudHJ5KGludCwgc3RydWN0IGZpbGUgKiwgc3RydWN0IGZhc3luY19z
dHJ1Y3QgKiosIHN0cnVjdCBmYXN5bmNfc3RydWN0ICopOwpleHRlcm4gaW50IGZhc3luY19yZW1v
dmVfZW50cnkoc3RydWN0IGZpbGUgKiwgc3RydWN0IGZhc3luY19zdHJ1Y3QgKiopOwpleHRlcm4g
c3RydWN0IGZhc3luY19zdHJ1Y3QgKmZhc3luY19hbGxvYyh2b2lkKTsKZXh0ZXJuIHZvaWQgZmFz
eW5jX2ZyZWUoc3RydWN0IGZhc3luY19zdHJ1Y3QgKik7CgoKZXh0ZXJuIHZvaWQga2lsbF9mYXN5
bmMoc3RydWN0IGZhc3luY19zdHJ1Y3QgKiosIGludCwgaW50KTsKCmV4dGVybiB2b2lkIF9fZl9z
ZXRvd24oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBwaWQgKiwgZW51bSBwaWRfdHlwZSwgaW50
IGZvcmNlKTsKZXh0ZXJuIGludCBmX3NldG93bihzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQg
bG9uZyBhcmcsIGludCBmb3JjZSk7CmV4dGVybiB2b2lkIGZfZGVsb3duKHN0cnVjdCBmaWxlICpm
aWxwKTsKZXh0ZXJuIHBpZF90IGZfZ2V0b3duKHN0cnVjdCBmaWxlICpmaWxwKTsKZXh0ZXJuIGlu
dCBzZW5kX3NpZ3VyZyhzdHJ1Y3QgZm93bl9zdHJ1Y3QgKmZvd24pOwojIDE0MDggIi4vaW5jbHVk
ZS9saW51eC9mcy5oIgplbnVtIHsKIFNCX1VORlJPWkVOID0gMCwKIFNCX0ZSRUVaRV9XUklURSA9
IDEsCiBTQl9GUkVFWkVfUEFHRUZBVUxUID0gMiwKIFNCX0ZSRUVaRV9GUyA9IDMsCgogU0JfRlJF
RVpFX0NPTVBMRVRFID0gNCwKfTsKCgoKc3RydWN0IHNiX3dyaXRlcnMgewogaW50IGZyb3plbjsK
IHdhaXRfcXVldWVfaGVhZF90IHdhaXRfdW5mcm96ZW47CiBzdHJ1Y3QgcGVyY3B1X3J3X3NlbWFw
aG9yZSByd19zZW1bKFNCX0ZSRUVaRV9DT01QTEVURSAtIDEpXTsKfTsKCnN0cnVjdCBzdXBlcl9i
bG9jayB7CiBzdHJ1Y3QgbGlzdF9oZWFkIHNfbGlzdDsKIGRldl90IHNfZGV2OwogdW5zaWduZWQg
Y2hhciBzX2Jsb2Nrc2l6ZV9iaXRzOwogdW5zaWduZWQgbG9uZyBzX2Jsb2Nrc2l6ZTsKIGxvZmZf
dCBzX21heGJ5dGVzOwogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKnNfdHlwZTsKIGNvbnN0IHN0
cnVjdCBzdXBlcl9vcGVyYXRpb25zICpzX29wOwogY29uc3Qgc3RydWN0IGRxdW90X29wZXJhdGlv
bnMgKmRxX29wOwogY29uc3Qgc3RydWN0IHF1b3RhY3RsX29wcyAqc19xY29wOwogY29uc3Qgc3Ry
dWN0IGV4cG9ydF9vcGVyYXRpb25zICpzX2V4cG9ydF9vcDsKIHVuc2lnbmVkIGxvbmcgc19mbGFn
czsKIHVuc2lnbmVkIGxvbmcgc19pZmxhZ3M7CiB1bnNpZ25lZCBsb25nIHNfbWFnaWM7CiBzdHJ1
Y3QgZGVudHJ5ICpzX3Jvb3Q7CiBzdHJ1Y3Qgcndfc2VtYXBob3JlIHNfdW1vdW50OwogaW50IHNf
Y291bnQ7CiBhdG9taWNfdCBzX2FjdGl2ZTsKCiB2b2lkICpzX3NlY3VyaXR5OwoKIGNvbnN0IHN0
cnVjdCB4YXR0cl9oYW5kbGVyICoqc194YXR0cjsKCgoKCgoKCiBzdHJ1Y3QgaGxpc3RfYmxfaGVh
ZCBzX3Jvb3RzOwogc3RydWN0IGxpc3RfaGVhZCBzX21vdW50czsKIHN0cnVjdCBibG9ja19kZXZp
Y2UgKnNfYmRldjsKIHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvICpzX2JkaTsKIHN0cnVjdCBtdGRf
aW5mbyAqc19tdGQ7CiBzdHJ1Y3QgaGxpc3Rfbm9kZSBzX2luc3RhbmNlczsKIHVuc2lnbmVkIGlu
dCBzX3F1b3RhX3R5cGVzOwogc3RydWN0IHF1b3RhX2luZm8gc19kcXVvdDsKCiBzdHJ1Y3Qgc2Jf
d3JpdGVycyBzX3dyaXRlcnM7CgoKCgoKCiB2b2lkICpzX2ZzX2luZm87CgoKIHUzMiBzX3RpbWVf
Z3JhbjsKCiB0aW1lNjRfdCBzX3RpbWVfbWluOwogdGltZTY0X3Qgc190aW1lX21heDsKCiBfX3Uz
MiBzX2Zzbm90aWZ5X21hc2s7CiBzdHJ1Y3QgZnNub3RpZnlfbWFya19jb25uZWN0b3IgKnNfZnNu
b3RpZnlfbWFya3M7CgoKIGNoYXIgc19pZFszMl07CiB1dWlkX3Qgc191dWlkOwoKIHVuc2lnbmVk
IGludCBzX21heF9saW5rczsKIGZtb2RlX3Qgc19tb2RlOwoKCgoKCiBzdHJ1Y3QgbXV0ZXggc192
ZnNfcmVuYW1lX211dGV4OwoKCgoKCiBjb25zdCBjaGFyICpzX3N1YnR5cGU7CgogY29uc3Qgc3Ry
dWN0IGRlbnRyeV9vcGVyYXRpb25zICpzX2Rfb3A7CgoKCgogaW50IGNsZWFuY2FjaGVfcG9vbGlk
OwoKIHN0cnVjdCBzaHJpbmtlciBzX3NocmluazsKCgogYXRvbWljX2xvbmdfdCBzX3JlbW92ZV9j
b3VudDsKCgogYXRvbWljX2xvbmdfdCBzX2Zzbm90aWZ5X2lub2RlX3JlZnM7CgoKIGludCBzX3Jl
YWRvbmx5X3JlbW91bnQ7CgoKIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzX2Rpb19kb25lX3dx
Owogc3RydWN0IGhsaXN0X2hlYWQgc19waW5zOwoKCgoKCgogc3RydWN0IHVzZXJfbmFtZXNwYWNl
ICpzX3VzZXJfbnM7CgoKCgoKCiBzdHJ1Y3QgbGlzdF9scnUgc19kZW50cnlfbHJ1Owogc3RydWN0
IGxpc3RfbHJ1IHNfaW5vZGVfbHJ1Owogc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1Owogc3RydWN0
IHdvcmtfc3RydWN0IGRlc3Ryb3lfd29yazsKCiBzdHJ1Y3QgbXV0ZXggc19zeW5jX2xvY2s7CgoK
CgogaW50IHNfc3RhY2tfZGVwdGg7CgoKIHNwaW5sb2NrX3Qgc19pbm9kZV9saXN0X2xvY2sgX19h
dHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkpKTsKIHN0cnVjdCBsaXN0X2hlYWQg
c19pbm9kZXM7Cgogc3BpbmxvY2tfdCBzX2lub2RlX3dibGlzdF9sb2NrOwogc3RydWN0IGxpc3Rf
aGVhZCBzX2lub2Rlc193YjsKfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7
CgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVpZF90IGlfdWlkX3JlYWQoY29uc3Qgc3RydWN0IGlub2RlICppbm9kZSkKewogcmV0
dXJuIGZyb21fa3VpZChpbm9kZS0+aV9zYi0+c191c2VyX25zLCBpbm9kZS0+aV91aWQpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBn
aWRfdCBpX2dpZF9yZWFkKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIHJldHVybiBmcm9t
X2tnaWQoaW5vZGUtPmlfc2ItPnNfdXNlcl9ucywgaW5vZGUtPmlfZ2lkKTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpX3Vp
ZF93cml0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aWRfdCB1aWQpCnsKIGlub2RlLT5pX3VpZCA9
IG1ha2Vfa3VpZChpbm9kZS0+aV9zYi0+c191c2VyX25zLCB1aWQpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlfZ2lkX3dy
aXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGdpZF90IGdpZCkKewogaW5vZGUtPmlfZ2lkID0gbWFr
ZV9rZ2lkKGlub2RlLT5pX3NiLT5zX3VzZXJfbnMsIGdpZCk7Cn0KCmV4dGVybiBzdHJ1Y3QgdGlt
ZXNwZWM2NCBjdXJyZW50X3RpbWUoc3RydWN0IGlub2RlICppbm9kZSk7CgoKCgoKdm9pZCBfX3Ni
X2VuZF93cml0ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbGV2ZWwpOwppbnQgX19zYl9z
dGFydF93cml0ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbGV2ZWwsIGJvb2wgd2FpdCk7
CiMgMTYwMCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2JfZW5kX3dyaXRlKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IpCnsKIF9fc2JfZW5kX3dyaXRlKHNiLCBTQl9GUkVFWkVfV1JJVEUpOwp9
CiMgMTYxMiAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2JfZW5kX3BhZ2VmYXVsdChzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiBfX3NiX2VuZF93cml0ZShzYiwgU0JfRlJFRVpFX1BBR0VG
QVVMVCk7Cn0KIyAxNjI0ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9lbmRfaW50d3Jp
dGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKewogX19zYl9lbmRfd3JpdGUoc2IsIFNCX0ZSRUVa
RV9GUyk7Cn0KIyAxNjQ4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9zdGFydF93cml0
ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiBfX3NiX3N0YXJ0X3dyaXRlKHNiLCBTQl9GUkVF
WkVfV1JJVEUsIHRydWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc2Jfc3RhcnRfd3JpdGVfdHJ5bG9jayhzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiKQp7CiByZXR1cm4gX19zYl9zdGFydF93cml0ZShzYiwgU0JfRlJFRVpFX1dS
SVRFLCBmYWxzZSk7Cn0KIyAxNjc3ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzYl9zdGFy
dF9wYWdlZmF1bHQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKewogX19zYl9zdGFydF93cml0ZShz
YiwgU0JfRlJFRVpFX1BBR0VGQVVMVCwgdHJ1ZSk7Cn0KIyAxNjk1ICIuL2luY2x1ZGUvbGludXgv
ZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBzYl9zdGFydF9pbnR3cml0ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiBf
X3NiX3N0YXJ0X3dyaXRlKHNiLCBTQl9GUkVFWkVfRlMsIHRydWUpOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgc2Jfc3RhcnRf
aW50d3JpdGVfdHJ5bG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiByZXR1cm4gX19zYl9z
dGFydF93cml0ZShzYiwgU0JfRlJFRVpFX0ZTLCBmYWxzZSk7Cn0KCgpleHRlcm4gYm9vbCBpbm9k
ZV9vd25lcl9vcl9jYXBhYmxlKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpOwoKCgoKZXh0ZXJu
IGludCB2ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVtb2RlX3Qs
IGJvb2wpOwpleHRlcm4gaW50IHZmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRy
eSAqLCB1bW9kZV90KTsKZXh0ZXJuIGludCB2ZnNfbWtub2Qoc3RydWN0IGlub2RlICosIHN0cnVj
dCBkZW50cnkgKiwgdW1vZGVfdCwgZGV2X3QpOwpleHRlcm4gaW50IHZmc19zeW1saW5rKHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdmZz
X2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBz
dHJ1Y3QgaW5vZGUgKiopOwpleHRlcm4gaW50IHZmc19ybWRpcihzdHJ1Y3QgaW5vZGUgKiwgc3Ry
dWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqLCBzdHJ1
Y3QgZGVudHJ5ICosIHN0cnVjdCBpbm9kZSAqKik7CmV4dGVybiBpbnQgdmZzX3JlbmFtZShzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRy
eSAqLCBzdHJ1Y3QgaW5vZGUgKiosIHVuc2lnbmVkIGludCk7CmV4dGVybiBpbnQgdmZzX3doaXRl
b3V0KHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoKZXh0ZXJuIHN0cnVjdCBkZW50
cnkgKnZmc190bXBmaWxlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlLAogICAg
ICBpbnQgb3Blbl9mbGFnKTsKCmludCB2ZnNfbWtvYmooc3RydWN0IGRlbnRyeSAqLCB1bW9kZV90
LAogIGludCAoKmYpKHN0cnVjdCBkZW50cnkgKiwgdW1vZGVfdCwgdm9pZCAqKSwKICB2b2lkICop
OwoKZXh0ZXJuIGxvbmcgdmZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQg
Y21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CiMgMTc0MCAiLi9pbmNsdWRlL2xpbnV4L2ZzLmgiCmV4
dGVybiB2b2lkIGlub2RlX2luaXRfb3duZXIoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3Ry
dWN0IGlub2RlICpkaXIsCiAgIHVtb2RlX3QgbW9kZSk7CmV4dGVybiBib29sIG1heV9vcGVuX2Rl
dihjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CgoKCnN0cnVjdCBmaWVtYXBfZXh0ZW50X2luZm8g
ewogdW5zaWduZWQgaW50IGZpX2ZsYWdzOwogdW5zaWduZWQgaW50IGZpX2V4dGVudHNfbWFwcGVk
OwogdW5zaWduZWQgaW50IGZpX2V4dGVudHNfbWF4Owogc3RydWN0IGZpZW1hcF9leHRlbnQgKmZp
X2V4dGVudHNfc3RhcnQ7Cgp9OwppbnQgZmllbWFwX2ZpbGxfbmV4dF9leHRlbnQoc3RydWN0IGZp
ZW1hcF9leHRlbnRfaW5mbyAqaW5mbywgdTY0IGxvZ2ljYWwsCiAgICAgICB1NjQgcGh5cywgdTY0
IGxlbiwgdTMyIGZsYWdzKTsKaW50IGZpZW1hcF9jaGVja19mbGFncyhzdHJ1Y3QgZmllbWFwX2V4
dGVudF9pbmZvICpmaWVpbmZvLCB1MzIgZnNfZmxhZ3MpOwoKCgoKCgoKc3RydWN0IGRpcl9jb250
ZXh0Owp0eXBlZGVmIGludCAoKmZpbGxkaXJfdCkoc3RydWN0IGRpcl9jb250ZXh0ICosIGNvbnN0
IGNoYXIgKiwgaW50LCBsb2ZmX3QsIHU2NCwKICAgIHVuc2lnbmVkKTsKCnN0cnVjdCBkaXJfY29u
dGV4dCB7CiBmaWxsZGlyX3QgYWN0b3I7CiBsb2ZmX3QgcG9zOwp9OwoKc3RydWN0IGJsb2NrX2Rl
dmljZV9vcGVyYXRpb25zOwojIDE4MTkgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdHJ1Y3QgaW92
X2l0ZXI7CgpzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHsKIHN0cnVjdCBtb2R1bGUgKm93bmVyOwog
bG9mZl90ICgqbGxzZWVrKSAoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwogc3NpemVfdCAo
KnJlYWQpIChzdHJ1Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwogc3NpemVf
dCAoKndyaXRlKSAoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAq
KTsKIHNzaXplX3QgKCpyZWFkX2l0ZXIpIChzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9pdGVy
ICopOwogc3NpemVfdCAoKndyaXRlX2l0ZXIpIChzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9p
dGVyICopOwogaW50ICgqaW9wb2xsKShzdHJ1Y3Qga2lvY2IgKmtpb2NiLCBib29sIHNwaW4pOwog
aW50ICgqaXRlcmF0ZSkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKIGlu
dCAoKml0ZXJhdGVfc2hhcmVkKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRpcl9jb250ZXh0ICop
OwogX19wb2xsX3QgKCpwb2xsKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBvbGxfdGFibGVfc3Ry
dWN0ICopOwogbG9uZyAoKnVubG9ja2VkX2lvY3RsKSAoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQg
aW50LCB1bnNpZ25lZCBsb25nKTsKIGxvbmcgKCpjb21wYXRfaW9jdGwpIChzdHJ1Y3QgZmlsZSAq
LCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwogaW50ICgqbW1hcCkgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKIHVuc2lnbmVkIGxvbmcgbW1hcF9zdXBwb3J0
ZWRfZmxhZ3M7CiBpbnQgKCpvcGVuKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwog
aW50ICgqZmx1c2gpIChzdHJ1Y3QgZmlsZSAqLCBmbF9vd25lcl90IGlkKTsKIGludCAoKnJlbGVh
c2UpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKik7CiBpbnQgKCpmc3luYykgKHN0cnVj
dCBmaWxlICosIGxvZmZfdCwgbG9mZl90LCBpbnQgZGF0YXN5bmMpOwogaW50ICgqZmFzeW5jKSAo
aW50LCBzdHJ1Y3QgZmlsZSAqLCBpbnQpOwogaW50ICgqbG9jaykgKHN0cnVjdCBmaWxlICosIGlu
dCwgc3RydWN0IGZpbGVfbG9jayAqKTsKIHNzaXplX3QgKCpzZW5kcGFnZSkgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBwYWdlICosIGludCwgc2l6ZV90LCBsb2ZmX3QgKiwgaW50KTsKIHVuc2lnbmVk
IGxvbmcgKCpnZXRfdW5tYXBwZWRfYXJlYSkoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywg
dW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CiBpbnQgKCpjaGVj
a19mbGFncykoaW50KTsKIGludCAoKmZsb2NrKSAoc3RydWN0IGZpbGUgKiwgaW50LCBzdHJ1Y3Qg
ZmlsZV9sb2NrICopOwogc3NpemVfdCAoKnNwbGljZV93cml0ZSkoc3RydWN0IHBpcGVfaW5vZGVf
aW5mbyAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc2l6ZV90LCB1bnNpZ25lZCBpbnQpOwog
c3NpemVfdCAoKnNwbGljZV9yZWFkKShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgc3RydWN0IHBp
cGVfaW5vZGVfaW5mbyAqLCBzaXplX3QsIHVuc2lnbmVkIGludCk7CiBpbnQgKCpzZXRsZWFzZSko
c3RydWN0IGZpbGUgKiwgbG9uZywgc3RydWN0IGZpbGVfbG9jayAqKiwgdm9pZCAqKik7CiBsb25n
ICgqZmFsbG9jYXRlKShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQs
CiAgICAgbG9mZl90IGxlbik7CiB2b2lkICgqc2hvd19mZGluZm8pKHN0cnVjdCBzZXFfZmlsZSAq
bSwgc3RydWN0IGZpbGUgKmYpOwoKCgogc3NpemVfdCAoKmNvcHlfZmlsZV9yYW5nZSkoc3RydWN0
IGZpbGUgKiwgbG9mZl90LCBzdHJ1Y3QgZmlsZSAqLAogICBsb2ZmX3QsIHNpemVfdCwgdW5zaWdu
ZWQgaW50KTsKIGxvZmZfdCAoKnJlbWFwX2ZpbGVfcmFuZ2UpKHN0cnVjdCBmaWxlICpmaWxlX2lu
LCBsb2ZmX3QgcG9zX2luLAogICAgICAgc3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9z
X291dCwKICAgICAgIGxvZmZfdCBsZW4sIHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CiBpbnQg
KCpmYWR2aXNlKShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgaW50KTsKfSBfX2F0dHJp
YnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyB7
CiBzdHJ1Y3QgZGVudHJ5ICogKCpsb29rdXApIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5
ICosIHVuc2lnbmVkIGludCk7CiBjb25zdCBjaGFyICogKCpnZXRfbGluaykgKHN0cnVjdCBkZW50
cnkgKiwgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZWxheWVkX2NhbGwgKik7CiBpbnQgKCpwZXJt
aXNzaW9uKSAoc3RydWN0IGlub2RlICosIGludCk7CiBzdHJ1Y3QgcG9zaXhfYWNsICogKCpnZXRf
YWNsKShzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKCiBpbnQgKCpyZWFkbGluaykgKHN0cnVjdCBkZW50
cnkgKiwgY2hhciAqLGludCk7CgogaW50ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0
IGRlbnRyeSAqLCB1bW9kZV90LCBib29sKTsKIGludCAoKmxpbmspIChzdHJ1Y3QgZGVudHJ5ICos
c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqKTsKIGludCAoKnVubGluaykgKHN0cnVjdCBp
bm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiBpbnQgKCpzeW1saW5rKSAoc3RydWN0IGlub2RlICos
c3RydWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CiBpbnQgKCpta2RpcikgKHN0cnVjdCBpbm9k
ZSAqLHN0cnVjdCBkZW50cnkgKix1bW9kZV90KTsKIGludCAoKnJtZGlyKSAoc3RydWN0IGlub2Rl
ICosc3RydWN0IGRlbnRyeSAqKTsKIGludCAoKm1rbm9kKSAoc3RydWN0IGlub2RlICosc3RydWN0
IGRlbnRyeSAqLHVtb2RlX3QsZGV2X3QpOwogaW50ICgqcmVuYW1lKSAoc3RydWN0IGlub2RlICos
IHN0cnVjdCBkZW50cnkgKiwKICAgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwgdW5z
aWduZWQgaW50KTsKIGludCAoKnNldGF0dHIpIChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0
ciAqKTsKIGludCAoKmdldGF0dHIpIChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQg
KiwgdTMyLCB1bnNpZ25lZCBpbnQpOwogc3NpemVfdCAoKmxpc3R4YXR0cikgKHN0cnVjdCBkZW50
cnkgKiwgY2hhciAqLCBzaXplX3QpOwogaW50ICgqZmllbWFwKShzdHJ1Y3QgaW5vZGUgKiwgc3Ry
dWN0IGZpZW1hcF9leHRlbnRfaW5mbyAqLCB1NjQgc3RhcnQsCiAgICAgICAgdTY0IGxlbik7CiBp
bnQgKCp1cGRhdGVfdGltZSkoc3RydWN0IGlub2RlICosIHN0cnVjdCB0aW1lc3BlYzY0ICosIGlu
dCk7CiBpbnQgKCphdG9taWNfb3Blbikoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwK
ICAgICAgc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgb3Blbl9mbGFnLAogICAgICB1bW9kZV90IGNy
ZWF0ZV9tb2RlKTsKIGludCAoKnRtcGZpbGUpIChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRy
eSAqLCB1bW9kZV90KTsKIGludCAoKnNldF9hY2wpKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcG9z
aXhfYWNsICosIGludCk7Cn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oKDEgPDwgKDYpKSkp
KTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHNzaXplX3QgY2FsbF9yZWFkX2l0ZXIoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBraW9j
YiAqa2lvLAogICAgICAgICBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpCnsKIHJldHVybiBmaWxlLT5m
X29wLT5yZWFkX2l0ZXIoa2lvLCBpdGVyKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3NpemVfdCBjYWxsX3dyaXRlX2l0ZXIoc3Ry
dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBraW9jYiAqa2lvLAogICAgICAgICAgc3RydWN0IGlvdl9p
dGVyICppdGVyKQp7CiByZXR1cm4gZmlsZS0+Zl9vcC0+d3JpdGVfaXRlcihraW8sIGl0ZXIpOwp9
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgY2FsbF9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KnZtYSkKewogcmV0dXJuIGZpbGUtPmZfb3AtPm1tYXAoZmlsZSwgdm1hKTsKfQoKc3NpemVfdCBy
d19jb3B5X2NoZWNrX3V2ZWN0b3IoaW50IHR5cGUsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqIHV2ZWN0
b3IsCiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfc2VncywgdW5zaWduZWQgbG9uZyBmYXN0X3Nl
Z3MsCiAgICAgICAgIHN0cnVjdCBpb3ZlYyAqZmFzdF9wb2ludGVyLAogICAgICAgICBzdHJ1Y3Qg
aW92ZWMgKipyZXRfcG9pbnRlcik7CgpleHRlcm4gc3NpemVfdCBfX3Zmc19yZWFkKHN0cnVjdCBm
aWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVybiBzc2l6ZV90IHZmc19yZWFk
KHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVybiBzc2l6ZV90
IHZmc193cml0ZShzdHJ1Y3QgZmlsZSAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgbG9mZl90ICop
OwpleHRlcm4gc3NpemVfdCB2ZnNfcmVhZHYoc3RydWN0IGZpbGUgKiwgY29uc3Qgc3RydWN0IGlv
dmVjICosCiAgdW5zaWduZWQgbG9uZywgbG9mZl90ICosIHJ3Zl90KTsKZXh0ZXJuIHNzaXplX3Qg
dmZzX2NvcHlfZmlsZV9yYW5nZShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgLCBzdHJ1Y3QgZmlsZSAq
LAogICAgICAgbG9mZl90LCBzaXplX3QsIHVuc2lnbmVkIGludCk7CmV4dGVybiBzc2l6ZV90IGdl
bmVyaWNfY29weV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2lu
LAogICAgICAgICAgIHN0cnVjdCBmaWxlICpmaWxlX291dCwgbG9mZl90IHBvc19vdXQsCiAgICAg
ICAgICAgc2l6ZV90IGxlbiwgdW5zaWduZWQgaW50IGZsYWdzKTsKZXh0ZXJuIGludCBnZW5lcmlj
X3JlbWFwX2ZpbGVfcmFuZ2VfcHJlcChzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9mZl90IHBvc19p
biwKICAgICAgc3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9zX291dCwKICAgICAgbG9m
Zl90ICpjb3VudCwKICAgICAgdW5zaWduZWQgaW50IHJlbWFwX2ZsYWdzKTsKZXh0ZXJuIGxvZmZf
dCBkb19jbG9uZV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2lu
LAogICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAogICAgICBsb2Zm
X3QgbGVuLCB1bnNpZ25lZCBpbnQgcmVtYXBfZmxhZ3MpOwpleHRlcm4gbG9mZl90IHZmc19jbG9u
ZV9maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2luLAogICAgICAg
c3RydWN0IGZpbGUgKmZpbGVfb3V0LCBsb2ZmX3QgcG9zX291dCwKICAgICAgIGxvZmZfdCBsZW4s
IHVuc2lnbmVkIGludCByZW1hcF9mbGFncyk7CmV4dGVybiBpbnQgdmZzX2RlZHVwZV9maWxlX3Jh
bmdlKHN0cnVjdCBmaWxlICpmaWxlLAogICAgIHN0cnVjdCBmaWxlX2RlZHVwZV9yYW5nZSAqc2Ft
ZSk7CmV4dGVybiBsb2ZmX3QgdmZzX2RlZHVwZV9maWxlX3JhbmdlX29uZShzdHJ1Y3QgZmlsZSAq
c3JjX2ZpbGUsIGxvZmZfdCBzcmNfcG9zLAogICAgIHN0cnVjdCBmaWxlICpkc3RfZmlsZSwgbG9m
Zl90IGRzdF9wb3MsCiAgICAgbG9mZl90IGxlbiwgdW5zaWduZWQgaW50IHJlbWFwX2ZsYWdzKTsK
CgpzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyB7CiAgICBzdHJ1Y3QgaW5vZGUgKigqYWxsb2NfaW5v
ZGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogdm9pZCAoKmRlc3Ryb3lfaW5vZGUpKHN0cnVj
dCBpbm9kZSAqKTsKIHZvaWQgKCpmcmVlX2lub2RlKShzdHJ1Y3QgaW5vZGUgKik7CgogICAgdm9p
ZCAoKmRpcnR5X2lub2RlKSAoc3RydWN0IGlub2RlICosIGludCBmbGFncyk7CiBpbnQgKCp3cml0
ZV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYyk7
CiBpbnQgKCpkcm9wX2lub2RlKSAoc3RydWN0IGlub2RlICopOwogdm9pZCAoKmV2aWN0X2lub2Rl
KSAoc3RydWN0IGlub2RlICopOwogdm9pZCAoKnB1dF9zdXBlcikgKHN0cnVjdCBzdXBlcl9ibG9j
ayAqKTsKIGludCAoKnN5bmNfZnMpKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB3YWl0KTsK
IGludCAoKmZyZWV6ZV9zdXBlcikgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGludCAoKmZyZWV6
ZV9mcykgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGludCAoKnRoYXdfc3VwZXIpIChzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKik7CiBpbnQgKCp1bmZyZWV6ZV9mcykgKHN0cnVjdCBzdXBlcl9ibG9jayAq
KTsKIGludCAoKnN0YXRmcykgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGtzdGF0ZnMgKik7CiBp
bnQgKCpyZW1vdW50X2ZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCAqLCBjaGFyICopOwog
dm9pZCAoKnVtb3VudF9iZWdpbikgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKCiBpbnQgKCpzaG93
X29wdGlvbnMpKHN0cnVjdCBzZXFfZmlsZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwogaW50ICgqc2hv
d19kZXZuYW1lKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKIGludCAoKnNo
b3dfcGF0aCkoc3RydWN0IHNlcV9maWxlICosIHN0cnVjdCBkZW50cnkgKik7CiBpbnQgKCpzaG93
X3N0YXRzKShzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKCiBzc2l6ZV90ICgq
cXVvdGFfcmVhZCkoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwgY2hhciAqLCBzaXplX3QsIGxv
ZmZfdCk7CiBzc2l6ZV90ICgqcXVvdGFfd3JpdGUpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQs
IGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QpOwogc3RydWN0IGRxdW90ICoqKCpnZXRfZHF1
b3RzKShzdHJ1Y3QgaW5vZGUgKik7CgogaW50ICgqYmRldl90cnlfdG9fZnJlZV9wYWdlKShzdHJ1
Y3Qgc3VwZXJfYmxvY2sqLCBzdHJ1Y3QgcGFnZSosIGdmcF90KTsKIGxvbmcgKCpucl9jYWNoZWRf
b2JqZWN0cykoc3RydWN0IHN1cGVyX2Jsb2NrICosCiAgICAgIHN0cnVjdCBzaHJpbmtfY29udHJv
bCAqKTsKIGxvbmcgKCpmcmVlX2NhY2hlZF9vYmplY3RzKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwK
ICAgICAgICBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKik7Cn07CiMgMjAxNyAiLi9pbmNsdWRlL2xp
bnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGJvb2wgc2JfcmRvbmx5KGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpIHsg
cmV0dXJuIHNiLT5zX2ZsYWdzICYgMTsgfQojIDIwNDcgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIEhBU19VTk1BUFBFRF9JRChzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4gIXVpZF92
YWxpZChpbm9kZS0+aV91aWQpIHx8ICFnaWRfdmFsaWQoaW5vZGUtPmlfZ2lkKTsKfQoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgZW51bSBy
d19oaW50IGZpbGVfd3JpdGVfaGludChzdHJ1Y3QgZmlsZSAqZmlsZSkKewogaWYgKGZpbGUtPmZf
d3JpdGVfaGludCAhPSBXUklURV9MSUZFX05PVF9TRVQpCiAgcmV0dXJuIGZpbGUtPmZfd3JpdGVf
aGludDsKCiByZXR1cm4gZmlsZV9pbm9kZShmaWxlKS0+aV93cml0ZV9oaW50Owp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaW9j
Yl9mbGFncyhzdHJ1Y3QgZmlsZSAqZmlsZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1MTYga2lfaGludF92YWxpZGF0ZShlbnVtIHJ3
X2hpbnQgaGludCkKewogdHlwZW9mKCgoc3RydWN0IGtpb2NiICopMCktPmtpX2hpbnQpIG1heF9o
aW50ID0gLTE7CgogaWYgKGhpbnQgPD0gbWF4X2hpbnQpCiAgcmV0dXJuIGhpbnQ7CiByZXR1cm4g
MDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdm9pZCBpbml0X3N5bmNfa2lvY2Ioc3RydWN0IGtpb2NiICpraW9jYiwgc3RydWN0IGZp
bGUgKmZpbHApCnsKICpraW9jYiA9IChzdHJ1Y3Qga2lvY2IpIHsKICAua2lfZmlscCA9IGZpbHAs
CiAgLmtpX2ZsYWdzID0gaW9jYl9mbGFncyhmaWxwKSwKICAua2lfaGludCA9IGtpX2hpbnRfdmFs
aWRhdGUoZmlsZV93cml0ZV9oaW50KGZpbHApKSwKICAua2lfaW9wcmlvID0gZ2V0X2N1cnJlbnRf
aW9wcmlvKCksCiB9Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtpb2NiX2Nsb25lKHN0cnVjdCBraW9jYiAqa2lvY2IsIHN0
cnVjdCBraW9jYiAqa2lvY2Jfc3JjLAogICAgICAgICAgc3RydWN0IGZpbGUgKmZpbHApCnsKICpr
aW9jYiA9IChzdHJ1Y3Qga2lvY2IpIHsKICAua2lfZmlscCA9IGZpbHAsCiAgLmtpX2ZsYWdzID0g
a2lvY2Jfc3JjLT5raV9mbGFncywKICAua2lfaGludCA9IGtpb2NiX3NyYy0+a2lfaGludCwKICAu
a2lfaW9wcmlvID0ga2lvY2Jfc3JjLT5raV9pb3ByaW8sCiAgLmtpX3BvcyA9IGtpb2NiX3NyYy0+
a2lfcG9zLAogfTsKfQojIDIxODEgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpleHRlcm4gdm9pZCBf
X21hcmtfaW5vZGVfZGlydHkoc3RydWN0IGlub2RlICosIGludCk7CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgbWFya19pbm9kZV9k
aXJ0eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBfX21hcmtfaW5vZGVfZGlydHkoaW5vZGUsICgo
KDEgPDwgMCkgfCAoMSA8PCAxKSkgfCAoMSA8PCAyKSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIG1hcmtfaW5vZGVfZGly
dHlfc3luYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBfX21hcmtfaW5vZGVfZGlydHkoaW5vZGUs
ICgxIDw8IDApKTsKfQoKZXh0ZXJuIHZvaWQgaW5jX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUp
OwpleHRlcm4gdm9pZCBkcm9wX25saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gdm9p
ZCBjbGVhcl9ubGluayhzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHZvaWQgc2V0X25saW5r
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBubGluayk7CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlub2RlX2lu
Y19saW5rX2NvdW50KHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGluY19ubGluayhpbm9kZSk7CiBt
YXJrX2lub2RlX2RpcnR5KGlub2RlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9kZWNfbGlua19jb3VudChzdHJ1
Y3QgaW5vZGUgKmlub2RlKQp7CiBkcm9wX25saW5rKGlub2RlKTsKIG1hcmtfaW5vZGVfZGlydHko
aW5vZGUpOwp9CgplbnVtIGZpbGVfdGltZV9mbGFncyB7CiBTX0FUSU1FID0gMSwKIFNfTVRJTUUg
PSAyLAogU19DVElNRSA9IDQsCiBTX1ZFUlNJT04gPSA4LAp9OwoKZXh0ZXJuIGJvb2wgYXRpbWVf
bmVlZHNfdXBkYXRlKGNvbnN0IHN0cnVjdCBwYXRoICosIHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgdG91Y2hfYXRpbWUoY29uc3Qgc3RydWN0IHBhdGggKik7CnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmlsZV9hY2Nlc3Nl
ZChzdHJ1Y3QgZmlsZSAqZmlsZSkKewogaWYgKCEoZmlsZS0+Zl9mbGFncyAmIDAxMDAwMDAwKSkK
ICB0b3VjaF9hdGltZSgmZmlsZS0+Zl9wYXRoKTsKfQoKZXh0ZXJuIGludCBmaWxlX21vZGlmaWVk
KHN0cnVjdCBmaWxlICpmaWxlKTsKCmludCBzeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUs
IHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKTsKaW50IHN5bmNfaW5vZGVfbWV0YWRhdGEo
c3RydWN0IGlub2RlICppbm9kZSwgaW50IHdhaXQpOwoKc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg
ewogY29uc3QgY2hhciAqbmFtZTsKIGludCBmc19mbGFnczsKCgoKCgoKIGludCAoKmluaXRfZnNf
Y29udGV4dCkoc3RydWN0IGZzX2NvbnRleHQgKik7CiBjb25zdCBzdHJ1Y3QgZnNfcGFyYW1ldGVy
X3NwZWMgKnBhcmFtZXRlcnM7CiBzdHJ1Y3QgZGVudHJ5ICooKm1vdW50KSAoc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgKiwgaW50LAogICAgICAgICBjb25zdCBjaGFyICosIHZvaWQgKik7CiB2b2lk
ICgqa2lsbF9zYikgKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIHN0cnVjdCBtb2R1bGUgKm93bmVy
Owogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKiBuZXh0Owogc3RydWN0IGhsaXN0X2hlYWQgZnNf
c3VwZXJzOwoKIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX2xvY2tfa2V5Owogc3RydWN0IGxvY2tf
Y2xhc3Nfa2V5IHNfdW1vdW50X2tleTsKIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBzX3Zmc19yZW5h
bWVfa2V5Owogc3RydWN0IGxvY2tfY2xhc3Nfa2V5IHNfd3JpdGVyc19rZXlbKFNCX0ZSRUVaRV9D
T01QTEVURSAtIDEpXTsKCiBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgaV9sb2NrX2tleTsKIHN0cnVj
dCBsb2NrX2NsYXNzX2tleSBpX211dGV4X2tleTsKIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBpX211
dGV4X2Rpcl9rZXk7Cn07CgoKCgpleHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRfYmRldihzdHJ1
Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2
X25hbWUsIHZvaWQgKmRhdGEsCiBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sg
Kiwgdm9pZCAqLCBpbnQpKTsKIyAyMjcxICIuL2luY2x1ZGUvbGludXgvZnMuaCIKZXh0ZXJuIHN0
cnVjdCBkZW50cnkgKm1vdW50X3NpbmdsZShzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw
ZSwKIGludCBmbGFncywgdm9pZCAqZGF0YSwKIGludCAoKmZpbGxfc3VwZXIpKHN0cnVjdCBzdXBl
cl9ibG9jayAqLCB2b2lkICosIGludCkpOwpleHRlcm4gc3RydWN0IGRlbnRyeSAqbW91bnRfbm9k
ZXYoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsCiBpbnQgZmxhZ3MsIHZvaWQgKmRh
dGEsCiBpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqLCBpbnQp
KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKm1vdW50X3N1YnRyZWUoc3RydWN0IHZmc21vdW50ICpt
bnQsIGNvbnN0IGNoYXIgKnBhdGgpOwp2b2lkIGdlbmVyaWNfc2h1dGRvd25fc3VwZXIoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYik7Cgp2b2lkIGtpbGxfYmxvY2tfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICpzYik7CgoKCgoKCnZvaWQga2lsbF9hbm9uX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IpOwp2b2lkIGtpbGxfbGl0dGVyX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwp2b2lk
IGRlYWN0aXZhdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CnZvaWQgZGVhY3RpdmF0
ZV9sb2NrZWRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmludCBzZXRfYW5vbl9zdXBl
cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEpOwppbnQgc2V0X2Fub25fc3VwZXJf
ZmMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOwppbnQgZ2V0
X2Fub25fYmRldihkZXZfdCAqKTsKdm9pZCBmcmVlX2Fub25fYmRldihkZXZfdCk7CnN0cnVjdCBz
dXBlcl9ibG9jayAqc2dldF9mYyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsCiAgICAgICBpbnQgKCp0
ZXN0KShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGZzX2NvbnRleHQgKiksCiAgICAgICBp
bnQgKCpzZXQpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBzdHJ1Y3QgZnNfY29udGV4dCAqKSk7CnN0
cnVjdCBzdXBlcl9ibG9jayAqc2dldChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqdHlwZSwKICAg
aW50ICgqdGVzdCkoc3RydWN0IHN1cGVyX2Jsb2NrICosdm9pZCAqKSwKICAgaW50ICgqc2V0KShz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKix2b2lkICopLAogICBpbnQgZmxhZ3MsIHZvaWQgKmRhdGEpOwoj
IDIzMjAgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpleHRlcm4gaW50IHJlZ2lzdGVyX2ZpbGVzeXN0
ZW0oc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKik7CmV4dGVybiBpbnQgdW5yZWdpc3Rlcl9maWxl
c3lzdGVtKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gc3RydWN0IHZmc21vdW50
ICprZXJuX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gdm9pZCBrZXJu
X3VubW91bnQoc3RydWN0IHZmc21vdW50ICptbnQpOwpleHRlcm4gaW50IG1heV91bW91bnRfdHJl
ZShzdHJ1Y3QgdmZzbW91bnQgKik7CmV4dGVybiBpbnQgbWF5X3Vtb3VudChzdHJ1Y3QgdmZzbW91
bnQgKik7CmV4dGVybiBsb25nIGRvX21vdW50KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAog
ICAgICAgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwpleHRlcm4gc3RydWN0
IHZmc21vdW50ICpjb2xsZWN0X21vdW50cyhjb25zdCBzdHJ1Y3QgcGF0aCAqKTsKZXh0ZXJuIHZv
aWQgZHJvcF9jb2xsZWN0ZWRfbW91bnRzKHN0cnVjdCB2ZnNtb3VudCAqKTsKZXh0ZXJuIGludCBp
dGVyYXRlX21vdW50cyhpbnQgKCopKHN0cnVjdCB2ZnNtb3VudCAqLCB2b2lkICopLCB2b2lkICos
CiAgICAgc3RydWN0IHZmc21vdW50ICopOwpleHRlcm4gaW50IHZmc19zdGF0ZnMoY29uc3Qgc3Ry
dWN0IHBhdGggKiwgc3RydWN0IGtzdGF0ZnMgKik7CmV4dGVybiBpbnQgdXNlcl9zdGF0ZnMoY29u
c3QgY2hhciAqLCBzdHJ1Y3Qga3N0YXRmcyAqKTsKZXh0ZXJuIGludCBmZF9zdGF0ZnMoaW50LCBz
dHJ1Y3Qga3N0YXRmcyAqKTsKZXh0ZXJuIGludCBmcmVlemVfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICpzdXBlcik7CmV4dGVybiBpbnQgdGhhd19zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnN1
cGVyKTsKZXh0ZXJuIGJvb2wgb3VyX21udChzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CmV4dGVybiBf
X2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKQppbnQgc3VwZXJfc2V0dXBf
YmRpX25hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY2hhciAqZm10LCAuLi4pOwpleHRlcm4g
aW50IHN1cGVyX3NldHVwX2JkaShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKCmV4dGVybiBpbnQg
Y3VycmVudF91bWFzayh2b2lkKTsKCmV4dGVybiB2b2lkIGlob2xkKHN0cnVjdCBpbm9kZSAqIGlu
b2RlKTsKZXh0ZXJuIHZvaWQgaXB1dChzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgZ2VuZXJp
Y191cGRhdGVfdGltZShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHRpbWVzcGVjNjQgKiwgaW50KTsK
CgpleHRlcm4gc3RydWN0IGtvYmplY3QgKmZzX2tvYmo7CgoKCgpleHRlcm4gaW50IGxvY2tzX21h
bmRhdG9yeV9sb2NrZWQoc3RydWN0IGZpbGUgKik7CmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5
X2FyZWEoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIGxvZmZfdCwgbG9mZl90LCB1bnNp
Z25lZCBjaGFyKTsKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fbWFuZGF0b3J5X2xvY2soc3RydWN0IGlub2RlICppbm8p
CnsKIHJldHVybiAoaW5vLT5pX21vZGUgJiAoMDAwMjAwMCB8IDAwMDEwKSkgPT0gMDAwMjAwMDsK
fQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBpbnQgbWFuZGF0b3J5X2xvY2soc3RydWN0IGlub2RlICppbm8pCnsKIHJldHVybiAo
KGlubyktPmlfc2ItPnNfZmxhZ3MgJiAoNjQpKSAmJiBfX21hbmRhdG9yeV9sb2NrKGlubyk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBsb2Nrc192ZXJpZnlfbG9ja2VkKHN0cnVjdCBmaWxlICpmaWxlKQp7CiBpZiAobWFuZGF0
b3J5X2xvY2soZmlsZV9pbm9kZShmaWxlKSkpCiAgcmV0dXJuIGxvY2tzX21hbmRhdG9yeV9sb2Nr
ZWQoZmlsZSk7CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGxvY2tzX3ZlcmlmeV90cnVuY2F0ZShzdHJ1Y3Qg
aW5vZGUgKmlub2RlLAogICAgICAgIHN0cnVjdCBmaWxlICpmLAogICAgICAgIGxvZmZfdCBzaXpl
KQp7CiBpZiAoIWlub2RlLT5pX2ZsY3R4IHx8ICFtYW5kYXRvcnlfbG9jayhpbm9kZSkpCiAgcmV0
dXJuIDA7CgogaWYgKHNpemUgPCBpbm9kZS0+aV9zaXplKSB7CiAgcmV0dXJuIGxvY2tzX21hbmRh
dG9yeV9hcmVhKGlub2RlLCBmLCBzaXplLCBpbm9kZS0+aV9zaXplIC0gMSwKICAgIDEpOwogfSBl
bHNlIHsKICByZXR1cm4gbG9ja3NfbWFuZGF0b3J5X2FyZWEoaW5vZGUsIGYsIGlub2RlLT5pX3Np
emUsIHNpemUgLSAxLAogICAgMSk7CiB9Cn0KIyAyNDM4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGJyZWFrX2xlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBtb2RlKQp7
CgoKCgoKCiBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwgJDAsLTQoJSVyc3ApIiA6OjogIm1lbW9y
eSIsICJjYyIpOwogaWYgKGlub2RlLT5pX2ZsY3R4ICYmICFsaXN0X2VtcHR5X2NhcmVmdWwoJmlu
b2RlLT5pX2ZsY3R4LT5mbGNfbGVhc2UpKQogIHJldHVybiBfX2JyZWFrX2xlYXNlKGlub2RlLCBt
b2RlLCAzMik7CiByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2RlbGVnKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIHVuc2lnbmVkIGludCBtb2RlKQp7CgoKCgoKCiBhc20gdm9sYXRpbGUoImxvY2s7IGFkZGwg
JDAsLTQoJSVyc3ApIiA6OjogIm1lbW9yeSIsICJjYyIpOwogaWYgKGlub2RlLT5pX2ZsY3R4ICYm
ICFsaXN0X2VtcHR5X2NhcmVmdWwoJmlub2RlLT5pX2ZsY3R4LT5mbGNfbGVhc2UpKQogIHJldHVy
biBfX2JyZWFrX2xlYXNlKGlub2RlLCBtb2RlLCA0KTsKIHJldHVybiAwOwp9CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdHJ5X2Jy
ZWFrX2RlbGVnKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqKmRlbGVnYXRlZF9p
bm9kZSkKewogaW50IHJldDsKCiByZXQgPSBicmVha19kZWxlZyhpbm9kZSwgMDAwMDAwMDF8MDAw
MDQwMDApOwogaWYgKHJldCA9PSAtMTEgJiYgZGVsZWdhdGVkX2lub2RlKSB7CiAgKmRlbGVnYXRl
ZF9pbm9kZSA9IGlub2RlOwogIGlob2xkKGlub2RlKTsKIH0KIHJldHVybiByZXQ7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBi
cmVha19kZWxlZ193YWl0KHN0cnVjdCBpbm9kZSAqKmRlbGVnYXRlZF9pbm9kZSkKewogaW50IHJl
dDsKCiByZXQgPSBicmVha19kZWxlZygqZGVsZWdhdGVkX2lub2RlLCAwMDAwMDAwMSk7CiBpcHV0
KCpkZWxlZ2F0ZWRfaW5vZGUpOwogKmRlbGVnYXRlZF9pbm9kZSA9ICgodm9pZCAqKTApOwogcmV0
dXJuIHJldDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGJyZWFrX2xheW91dChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBib29sIHdh
aXQpCnsKIGFzbSB2b2xhdGlsZSgibG9jazsgYWRkbCAkMCwtNCglJXJzcCkiIDo6OiAibWVtb3J5
IiwgImNjIik7CiBpZiAoaW5vZGUtPmlfZmxjdHggJiYgIWxpc3RfZW1wdHlfY2FyZWZ1bCgmaW5v
ZGUtPmlfZmxjdHgtPmZsY19sZWFzZSkpCiAgcmV0dXJuIF9fYnJlYWtfbGVhc2UoaW5vZGUsCiAg
ICB3YWl0ID8gMDAwMDAwMDEgOiAwMDAwMDAwMSB8IDAwMDA0MDAwLAogICAgMjA0OCk7CiByZXR1
cm4gMDsKfQojIDI1MjggIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdHJ1Y3QgYXVkaXRfbmFtZXM7
CnN0cnVjdCBmaWxlbmFtZSB7CiBjb25zdCBjaGFyICpuYW1lOwogY29uc3QgY2hhciAqdXB0cjsK
IGludCByZWZjbnQ7CiBzdHJ1Y3QgYXVkaXRfbmFtZXMgKmFuYW1lOwogY29uc3QgY2hhciBpbmFt
ZVtdOwp9OwpfU3RhdGljX2Fzc2VydChfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGZpbGVuYW1l
LCBpbmFtZSkgJSBzaXplb2YobG9uZykgPT0gMCwgIm9mZnNldG9mKHN0cnVjdCBmaWxlbmFtZSwg
aW5hbWUpICUgc2l6ZW9mKGxvbmcpID09IDAiKTsKCmV4dGVybiBsb25nIHZmc190cnVuY2F0ZShj
b25zdCBzdHJ1Y3QgcGF0aCAqLCBsb2ZmX3QpOwpleHRlcm4gaW50IGRvX3RydW5jYXRlKHN0cnVj
dCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBpbnQgdGltZV9hdHRycywKICAgICAg
ICAgc3RydWN0IGZpbGUgKmZpbHApOwpleHRlcm4gaW50IHZmc19mYWxsb2NhdGUoc3RydWN0IGZp
bGUgKmZpbGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LAogICBsb2ZmX3QgbGVuKTsKZXh0ZXJu
IGxvbmcgZG9fc3lzX29wZW4oaW50IGRmZCwgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFn
cywKICAgdW1vZGVfdCBtb2RlKTsKZXh0ZXJuIHN0cnVjdCBmaWxlICpmaWxlX29wZW5fbmFtZShz
dHJ1Y3QgZmlsZW5hbWUgKiwgaW50LCB1bW9kZV90KTsKZXh0ZXJuIHN0cnVjdCBmaWxlICpmaWxw
X29wZW4oY29uc3QgY2hhciAqLCBpbnQsIHVtb2RlX3QpOwpleHRlcm4gc3RydWN0IGZpbGUgKmZp
bGVfb3Blbl9yb290KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHZmc21vdW50ICosCiAgICAgICBj
b25zdCBjaGFyICosIGludCwgdW1vZGVfdCk7CmV4dGVybiBzdHJ1Y3QgZmlsZSAqIGRlbnRyeV9v
cGVuKGNvbnN0IHN0cnVjdCBwYXRoICosIGludCwgY29uc3Qgc3RydWN0IGNyZWQgKik7CmV4dGVy
biBzdHJ1Y3QgZmlsZSAqIG9wZW5fd2l0aF9mYWtlX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKiwg
aW50LAogICAgICBzdHJ1Y3QgaW5vZGUqLCBjb25zdCBzdHJ1Y3QgY3JlZCAqKTsKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZp
bGUgKmZpbGVfY2xvbmVfb3BlbihzdHJ1Y3QgZmlsZSAqZmlsZSkKewogcmV0dXJuIGRlbnRyeV9v
cGVuKCZmaWxlLT5mX3BhdGgsIGZpbGUtPmZfZmxhZ3MsIGZpbGUtPmZfY3JlZCk7Cn0KZXh0ZXJu
IGludCBmaWxwX2Nsb3NlKHN0cnVjdCBmaWxlICosIGZsX293bmVyX3QgaWQpOwoKZXh0ZXJuIHN0
cnVjdCBmaWxlbmFtZSAqZ2V0bmFtZV9mbGFncyhjb25zdCBjaGFyICosIGludCwgaW50ICopOwpl
eHRlcm4gc3RydWN0IGZpbGVuYW1lICpnZXRuYW1lKGNvbnN0IGNoYXIgKik7CmV4dGVybiBzdHJ1
Y3QgZmlsZW5hbWUgKmdldG5hbWVfa2VybmVsKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkIHB1
dG5hbWUoc3RydWN0IGZpbGVuYW1lICpuYW1lKTsKCmV4dGVybiBpbnQgZmluaXNoX29wZW4oc3Ry
dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKICAgaW50ICgqb3Blbikoc3Ry
dWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopKTsKZXh0ZXJuIGludCBmaW5pc2hfbm9fb3Blbihz
dHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKCgpleHRlcm4gdm9pZCBf
X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLmluaXQudGV4dCIpKSkgX19hdHRyaWJ1dGVfXygo
X19jb2xkX18pKSB2ZnNfY2FjaGVzX2luaXRfZWFybHkodm9pZCk7CmV4dGVybiB2b2lkIF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIHZmc19jYWNoZXNfaW5pdCh2b2lkKTsKCmV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAq
bmFtZXNfY2FjaGVwOwoKCgoKCmV4dGVybiBpbnQgcmVnaXN0ZXJfYmxrZGV2KHVuc2lnbmVkIGlu
dCwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHZvaWQgdW5yZWdpc3Rlcl9ibGtkZXYodW5zaWduZWQg
aW50LCBjb25zdCBjaGFyICopOwpleHRlcm4gdm9pZCBiZGV2X3VuaGFzaF9pbm9kZShkZXZfdCBk
ZXYpOwpleHRlcm4gc3RydWN0IGJsb2NrX2RldmljZSAqYmRnZXQoZGV2X3QpOwpleHRlcm4gc3Ry
dWN0IGJsb2NrX2RldmljZSAqYmRncmFiKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpOwpleHRl
cm4gdm9pZCBiZF9zZXRfc2l6ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIGxvZmZfdCBzaXplKTsK
ZXh0ZXJuIHZvaWQgYmRfZm9yZ2V0KHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gdm9pZCBi
ZHB1dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOwpleHRlcm4gdm9pZCBpbnZhbGlkYXRlX2JkZXYo
c3RydWN0IGJsb2NrX2RldmljZSAqKTsKZXh0ZXJuIHZvaWQgaXRlcmF0ZV9iZGV2cyh2b2lkICgq
KShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIHZvaWQgKiksIHZvaWQgKik7CmV4dGVybiBpbnQgc3lu
Y19ibG9ja2RldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KTsKZXh0ZXJuIHZvaWQga2lsbF9i
ZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmZy
ZWV6ZV9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiB2b2lkIGVtZXJnZW5jeV90
aGF3X2FsbCh2b2lkKTsKZXh0ZXJuIHZvaWQgZW1lcmdlbmN5X3RoYXdfYmRldihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiKTsKZXh0ZXJuIGludCB0aGF3X2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiBpbnQgZnN5bmNfYmRldihzdHJ1
Y3QgYmxvY2tfZGV2aWNlICopOwoKZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqYmxvY2tkZXZf
c3VwZXJibG9jazsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgc2JfaXNfYmxrZGV2X3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Ip
CnsKIHJldHVybiBzYiA9PSBibG9ja2Rldl9zdXBlcmJsb2NrOwp9CiMgMjYzMSAiLi9pbmNsdWRl
L2xpbnV4L2ZzLmgiCmV4dGVybiBpbnQgc3luY19maWxlc3lzdGVtKHN0cnVjdCBzdXBlcl9ibG9j
ayAqKTsKZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVmX2Jsa19mb3BzOwpl
eHRlcm4gY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkZWZfY2hyX2ZvcHM7CgpleHRlcm4g
aW50IGlvY3RsX2J5X2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqLCB1bnNpZ25lZCwgdW5zaWdu
ZWQgbG9uZyk7CmV4dGVybiBpbnQgYmxrZGV2X2lvY3RsKHN0cnVjdCBibG9ja19kZXZpY2UgKiwg
Zm1vZGVfdCwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwpleHRlcm4gbG9uZyBjb21wYXRfYmxr
ZGV2X2lvY3RsKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu
IGludCBibGtkZXZfZ2V0KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSwg
dm9pZCAqaG9sZGVyKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2UgKmJsa2Rldl9nZXRfYnlf
cGF0aChjb25zdCBjaGFyICpwYXRoLCBmbW9kZV90IG1vZGUsCiAgICAgICAgICAgIHZvaWQgKmhv
bGRlcik7CmV4dGVybiBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpibGtkZXZfZ2V0X2J5X2RldihkZXZf
dCBkZXYsIGZtb2RlX3QgbW9kZSwKICAgICAgICAgICB2b2lkICpob2xkZXIpOwpleHRlcm4gc3Ry
dWN0IGJsb2NrX2RldmljZSAqYmRfc3RhcnRfY2xhaW1pbmcoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwKICAgICAgICAgICB2b2lkICpob2xkZXIpOwpleHRlcm4gdm9pZCBiZF9maW5pc2hfY2xh
aW1pbmcoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKICAgICAgICAgIHN0cnVjdCBibG9ja19k
ZXZpY2UgKndob2xlLCB2b2lkICpob2xkZXIpOwpleHRlcm4gdm9pZCBiZF9hYm9ydF9jbGFpbWlu
ZyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LAogICAgICAgICBzdHJ1Y3QgYmxvY2tfZGV2aWNl
ICp3aG9sZSwgdm9pZCAqaG9sZGVyKTsKZXh0ZXJuIHZvaWQgYmxrZGV2X3B1dChzdHJ1Y3QgYmxv
Y2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpOwoKCmV4dGVybiBpbnQgYmRfbGlua19kaXNr
X2hvbGRlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7
CmV4dGVybiB2b2lkIGJkX3VubGlua19kaXNrX2hvbGRlcihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi
ZGV2LAogICAgICBzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CiMgMjY3NiAiLi9pbmNsdWRlL2xpbnV4
L2ZzLmgiCmV4dGVybiBpbnQgYWxsb2NfY2hyZGV2X3JlZ2lvbihkZXZfdCAqLCB1bnNpZ25lZCwg
dW5zaWduZWQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgcmVnaXN0ZXJfY2hyZGV2X3JlZ2lv
bihkZXZfdCwgdW5zaWduZWQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgX19yZWdpc3Rlcl9j
aHJkZXYodW5zaWduZWQgaW50IG1ham9yLCB1bnNpZ25lZCBpbnQgYmFzZW1pbm9yLAogICAgICAg
IHVuc2lnbmVkIGludCBjb3VudCwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBjb25zdCBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKTsKZXh0ZXJuIHZvaWQgX191bnJlZ2lzdGVyX2NocmRl
dih1bnNpZ25lZCBpbnQgbWFqb3IsIHVuc2lnbmVkIGludCBiYXNlbWlub3IsCiAgICB1bnNpZ25l
ZCBpbnQgY291bnQsIGNvbnN0IGNoYXIgKm5hbWUpOwpleHRlcm4gdm9pZCB1bnJlZ2lzdGVyX2No
cmRldl9yZWdpb24oZGV2X3QsIHVuc2lnbmVkKTsKZXh0ZXJuIHZvaWQgY2hyZGV2X3Nob3coc3Ry
dWN0IHNlcV9maWxlICosb2ZmX3QpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX2NocmRldih1bnNpZ25lZCBpbnQg
bWFqb3IsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgKmZvcHMpCnsKIHJldHVybiBfX3JlZ2lzdGVyX2NocmRldihtYWpvciwgMCwgMjU2LCBuYW1l
LCBmb3BzKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCB1bnJlZ2lzdGVyX2NocmRldih1bnNpZ25lZCBpbnQgbWFqb3IsIGNv
bnN0IGNoYXIgKm5hbWUpCnsKIF9fdW5yZWdpc3Rlcl9jaHJkZXYobWFqb3IsIDAsIDI1NiwgbmFt
ZSk7Cn0KCgoKCgoKCmV4dGVybiBjb25zdCBjaGFyICpfX2JkZXZuYW1lKGRldl90LCBjaGFyICpi
dWZmZXIpOwpleHRlcm4gY29uc3QgY2hhciAqYmRldm5hbWUoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwgY2hhciAqYnVmZmVyKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2UgKmxvb2t1cF9i
ZGV2KGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkIGJsa2Rldl9zaG93KHN0cnVjdCBzZXFfZmls
ZSAqLG9mZl90KTsKCgoKCgpleHRlcm4gdm9pZCBpbml0X3NwZWNpYWxfaW5vZGUoc3RydWN0IGlu
b2RlICosIHVtb2RlX3QsIGRldl90KTsKCgpleHRlcm4gdm9pZCBtYWtlX2JhZF9pbm9kZShzdHJ1
Y3QgaW5vZGUgKik7CmV4dGVybiBib29sIGlzX2JhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CgoK
ZXh0ZXJuIGludCByZXZhbGlkYXRlX2Rpc2soc3RydWN0IGdlbmRpc2sgKik7CmV4dGVybiBpbnQg
Y2hlY2tfZGlza19jaGFuZ2Uoc3RydWN0IGJsb2NrX2RldmljZSAqKTsKZXh0ZXJuIGludCBfX2lu
dmFsaWRhdGVfZGV2aWNlKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgYm9vbCk7CmV4dGVybiBpbnQg
aW52YWxpZGF0ZV9wYXJ0aXRpb24oc3RydWN0IGdlbmRpc2sgKiwgaW50KTsKCnVuc2lnbmVkIGxv
bmcgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n
LAogICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaW52
YWxpZGF0ZV9yZW1vdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKewogaWYgKCgoKGlub2Rl
LT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAwMDApIHx8ICgoKGlub2RlLT5pX21vZGUpICYg
MDAxNzAwMDApID09IDAwNDAwMDApIHx8CiAgICAgKCgoaW5vZGUtPmlfbW9kZSkgJiAwMDE3MDAw
MCkgPT0gMDEyMDAwMCkpCiAgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzKGlub2RlLT5pX21hcHBp
bmcsIDAsIC0xKTsKfQpleHRlcm4gaW50IGludmFsaWRhdGVfaW5vZGVfcGFnZXMyKHN0cnVjdCBh
ZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2RlX3BhZ2Vz
Ml9yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICAgICAgdW5zaWduZWQgbG9u
ZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwpleHRlcm4gaW50IHdyaXRlX2lub2RlX25vdyhz
dHJ1Y3QgaW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd3JpdGUoc3RydWN0
IGFkZHJlc3Nfc3BhY2UgKik7CmV4dGVybiBpbnQgZmlsZW1hcF9mbHVzaChzdHJ1Y3QgYWRkcmVz
c19zcGFjZSAqKTsKZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9rZWVwX2Vycm9ycyhzdHJ1
Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7CmV4dGVybiBpbnQgZmlsZW1hcF9mZGF0YXdhaXRf
cmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90IGxzdGFydCwKICAgICAgIGxvZmZf
dCBsZW5kKTsKZXh0ZXJuIGludCBmaWxlbWFwX2ZkYXRhd2FpdF9yYW5nZV9rZWVwX2Vycm9ycyhz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICBsb2ZmX3Qgc3RhcnRfYnl0ZSwgbG9mZl90
IGVuZF9ieXRlKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCBmaWxlbWFwX2ZkYXRhd2FpdChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq
bWFwcGluZykKewogcmV0dXJuIGZpbGVtYXBfZmRhdGF3YWl0X3JhbmdlKG1hcHBpbmcsIDAsICgo
bG9uZyBsb25nKSh+MFVMTCA+PiAxKSkpOwp9CgpleHRlcm4gYm9vbCBmaWxlbWFwX3JhbmdlX2hh
c19wYWdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIGxvZmZfdCBsc3RhcnQsCiAgICAgIGxvZmZf
dCBsZW5kKTsKZXh0ZXJuIGludCBmaWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKHN0cnVjdCBh
ZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICAgICAgICAgICBsb2ZmX3QgbHN0YXJ0LCBsb2ZmX3Qg
bGVuZCk7CmV4dGVybiBpbnQgX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJl
c3Nfc3BhY2UgKm1hcHBpbmcsCiAgICBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBzeW5j
X21vZGUpOwpleHRlcm4gaW50IGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShzdHJ1Y3QgYWRkcmVz
c19zcGFjZSAqbWFwcGluZywKICAgIGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCk7CmV4dGVybiBp
bnQgZmlsZW1hcF9jaGVja19lcnJvcnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpOwpl
eHRlcm4gdm9pZCBfX2ZpbGVtYXBfc2V0X3diX2VycihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw
cGluZywgaW50IGVycik7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZW1hcF93cml0ZV9hbmRfd2FpdChzdHJ1Y3QgYWRkcmVz
c19zcGFjZSAqbWFwcGluZykKewogcmV0dXJuIGZpbGVtYXBfd3JpdGVfYW5kX3dhaXRfcmFuZ2Uo
bWFwcGluZywgMCwgKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSk7Cn0KCmV4dGVybiBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGZpbGVfZmRhdGF3YWl0X3Jhbmdl
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgbHN0YXJ0LAogICAgICBsb2ZmX3QgbGVuZCk7CmV4
dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGZpbGVfY2hl
Y2tfYW5kX2FkdmFuY2Vfd2JfZXJyKHN0cnVjdCBmaWxlICpmaWxlKTsKZXh0ZXJuIGludCBfX2F0
dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZmlsZV93cml0ZV9hbmRfd2FpdF9y
YW5nZShzdHJ1Y3QgZmlsZSAqZmlsZSwKICAgICAgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kKTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBmaWxlX3dyaXRlX2FuZF93YWl0KHN0cnVjdCBmaWxlICpmaWxlKQp7CiByZXR1cm4gZmls
ZV93cml0ZV9hbmRfd2FpdF9yYW5nZShmaWxlLCAwLCAoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkp
KTsKfQojIDI3OTEgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZpbGVtYXBfc2V0X3diX2Vy
cihzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgaW50IGVycikKewoKIGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKGVyciksIDApKQogIF9fZmlsZW1hcF9zZXRfd2JfZXJyKG1hcHBpbmcsIGVy
cik7Cn0KIyAyODA4ICIuL2luY2x1ZGUvbGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGZpbGVtYXBfY2hlY2tfd2Jf
ZXJyKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICAgIGVycnNlcV90IHNpbmNlKQp7
CiByZXR1cm4gZXJyc2VxX2NoZWNrKCZtYXBwaW5nLT53Yl9lcnIsIHNpbmNlKTsKfQojIDI4MjEg
Ii4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBlcnJzZXFfdCBmaWxlbWFwX3NhbXBsZV93Yl9lcnIoc3Ry
dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCnsKIHJldHVybiBlcnJzZXFfc2FtcGxlKCZtYXBw
aW5nLT53Yl9lcnIpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBpbnQgZmlsZW1hcF9ucl90aHBzKHN0cnVjdCBhZGRyZXNzX3NwYWNl
ICptYXBwaW5nKQp7CgoKCiByZXR1cm4gMDsKCn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmlsZW1hcF9ucl90aHBzX2luYyhz
dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKewoKCgogKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhISgxKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7
IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxu
IiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFi
IiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAi
ICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19l
bnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQu
b3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2ZzLmgi
KSwgImkiICgyODQwKSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDMwKSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBmaWxlbWFwX25yX3RocHNfZGVjKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKQp7
CgoKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKDEpOyBpZiAoX19idWlsdGluX2V4cGVjdCgh
IShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6
XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJh
d1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19h
ZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxu
IiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0
IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6
ICJpIiAoImluY2x1ZGUvbGludXgvZnMuaCIpLCAiaSIgKDI4NDkpLCAiaSIgKCgxIDw8IDApfCgo
MSA8PCAxKSB8ICgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsg
fSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRp
c2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5c
dCIgOiA6ICJpIiAoMzEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9f
cmV0X3dhcm5fb24pLCAwKTsgfSk7Cgp9CgpleHRlcm4gaW50IHZmc19mc3luY19yYW5nZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLAogICAgICBpbnQgZGF0YXN5
bmMpOwpleHRlcm4gaW50IHZmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5j
KTsKCmV4dGVybiBpbnQgc3luY19maWxlX3JhbmdlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qg
b2Zmc2V0LCBsb2ZmX3QgbmJ5dGVzLAogICAgdW5zaWduZWQgaW50IGZsYWdzKTsKCgoKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3Np
emVfdCBnZW5lcmljX3dyaXRlX3N5bmMoc3RydWN0IGtpb2NiICppb2NiLCBzc2l6ZV90IGNvdW50
KQp7CiBpZiAoaW9jYi0+a2lfZmxhZ3MgJiAoMSA8PCA0KSkgewogIGludCByZXQgPSB2ZnNfZnN5
bmNfcmFuZ2UoaW9jYi0+a2lfZmlscCwKICAgIGlvY2ItPmtpX3BvcyAtIGNvdW50LCBpb2NiLT5r
aV9wb3MgLSAxLAogICAgKGlvY2ItPmtpX2ZsYWdzICYgKDEgPDwgNSkpID8gMCA6IDEpOwogIGlm
IChyZXQpCiAgIHJldHVybiByZXQ7CiB9CgogcmV0dXJuIGNvdW50Owp9CgpleHRlcm4gdm9pZCBl
bWVyZ2VuY3lfc3luYyh2b2lkKTsKZXh0ZXJuIHZvaWQgZW1lcmdlbmN5X3JlbW91bnQodm9pZCk7
CgoKZXh0ZXJuIGludCBibWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90ICpibG9jayk7
CgoKCgoKCgpleHRlcm4gaW50IG5vdGlmeV9jaGFuZ2Uoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
aWF0dHIgKiwgc3RydWN0IGlub2RlICoqKTsKZXh0ZXJuIGludCBpbm9kZV9wZXJtaXNzaW9uKHN0
cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gaW50IGdlbmVyaWNfcGVybWlzc2lvbihzdHJ1Y3Qg
aW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBfX2NoZWNrX3N0aWNreShzdHJ1Y3QgaW5vZGUgKmRp
ciwgc3RydWN0IGlub2RlICppbm9kZSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGV4ZWN1dGVfb2soc3RydWN0IGlub2RlICpp
bm9kZSkKewogcmV0dXJuIChpbm9kZS0+aV9tb2RlICYgKDAwMTAwfDAwMDEwfDAwMDAxKSkgfHwg
KCgoaW5vZGUtPmlfbW9kZSkgJiAwMDE3MDAwMCkgPT0gMDA0MDAwMCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZmlsZV9z
dGFydF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSkKewogaWYgKCEoKChmaWxlX2lub2RlKGZpbGUp
LT5pX21vZGUpICYgMDAxNzAwMDApID09IDAxMDAwMDApKQogIHJldHVybjsKIF9fc2Jfc3RhcnRf
d3JpdGUoZmlsZV9pbm9kZShmaWxlKS0+aV9zYiwgU0JfRlJFRVpFX1dSSVRFLCB0cnVlKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBmaWxlX3N0YXJ0X3dyaXRlX3RyeWxvY2soc3RydWN0IGZpbGUgKmZpbGUpCnsKIGlmICgh
KCgoZmlsZV9pbm9kZShmaWxlKS0+aV9tb2RlKSAmIDAwMTcwMDAwKSA9PSAwMTAwMDAwKSkKICBy
ZXR1cm4gdHJ1ZTsKIHJldHVybiBfX3NiX3N0YXJ0X3dyaXRlKGZpbGVfaW5vZGUoZmlsZSktPmlf
c2IsIFNCX0ZSRUVaRV9XUklURSwgZmFsc2UpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZpbGVfZW5kX3dyaXRlKHN0cnVj
dCBmaWxlICpmaWxlKQp7CiBpZiAoISgoKGZpbGVfaW5vZGUoZmlsZSktPmlfbW9kZSkgJiAwMDE3
MDAwMCkgPT0gMDEwMDAwMCkpCiAgcmV0dXJuOwogX19zYl9lbmRfd3JpdGUoZmlsZV9pbm9kZShm
aWxlKS0+aV9zYiwgU0JfRlJFRVpFX1dSSVRFKTsKfQojIDI5MzcgIi4vaW5jbHVkZS9saW51eC9m
cy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgZ2V0X3dyaXRlX2FjY2VzcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4g
YXRvbWljX2luY191bmxlc3NfbmVnYXRpdmUoJmlub2RlLT5pX3dyaXRlY291bnQpID8gMCA6IC0y
NjsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBpbnQgZGVueV93cml0ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCnsKIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGZpbGUpOwogcmV0dXJuIGF0b21pY19kZWNfdW5sZXNz
X3Bvc2l0aXZlKCZpbm9kZS0+aV93cml0ZWNvdW50KSA/IDAgOiAtMjY7Cn0Kc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwdXRfd3Jp
dGVfYWNjZXNzKHN0cnVjdCBpbm9kZSAqIGlub2RlKQp7CiBhdG9taWNfZGVjKCZpbm9kZS0+aV93
cml0ZWNvdW50KTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGFsbG93X3dyaXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqZmlsZSkK
ewogaWYgKGZpbGUpCiAgYXRvbWljX2luYygmZmlsZV9pbm9kZShmaWxlKS0+aV93cml0ZWNvdW50
KTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIGlub2RlX2lzX29wZW5fZm9yX3dyaXRlKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5v
ZGUpCnsKIHJldHVybiBhdG9taWNfcmVhZCgmaW5vZGUtPmlfd3JpdGVjb3VudCkgPiAwOwp9CgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCBpX3JlYWRjb3VudF9kZWMoc3RydWN0IGlub2RlICppbm9kZSkKewogZG8geyBpZiAoX19i
dWlsdGluX2V4cGVjdCghISghYXRvbWljX3JlYWQoJmlub2RlLT5pX3JlYWRjb3VudCkpLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9m
cy5oIiksICJpIiAoMjk2MyksICJpIiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkp
KSk7IH0gd2hpbGUgKDApOyBkbyB7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQudW5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBv
cHNlY3Rpb25cblx0IiA6IDogImkiICgzMikpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWls
dGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7
CiBhdG9taWNfZGVjKCZpbm9kZS0+aV9yZWFkY291bnQpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaV9yZWFkY291bnRfaW5j
KHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGF0b21pY19pbmMoJmlub2RlLT5pX3JlYWRjb3VudCk7
Cn0KIyAyOTgwICIuL2luY2x1ZGUvbGludXgvZnMuaCIKZXh0ZXJuIGludCBkb19waXBlX2ZsYWdz
KGludCAqLCBpbnQpOwojIDI5OTYgIi4vaW5jbHVkZS9saW51eC9mcy5oIgplbnVtIGtlcm5lbF9y
ZWFkX2ZpbGVfaWQgewogUkVBRElOR19VTktOT1dOLCBSRUFESU5HX0ZJUk1XQVJFLCBSRUFESU5H
X0ZJUk1XQVJFX1BSRUFMTE9DX0JVRkZFUiwgUkVBRElOR19NT0RVTEUsIFJFQURJTkdfS0VYRUNf
SU1BR0UsIFJFQURJTkdfS0VYRUNfSU5JVFJBTUZTLCBSRUFESU5HX1BPTElDWSwgUkVBRElOR19Y
NTA5X0NFUlRJRklDQVRFLCBSRUFESU5HX01BWF9JRCwKfTsKCnN0YXRpYyBjb25zdCBjaGFyICog
Y29uc3Qga2VybmVsX3JlYWRfZmlsZV9zdHJbXSA9IHsKICJ1bmtub3duIiwgImZpcm13YXJlIiwg
ImZpcm13YXJlIiwgImtlcm5lbC1tb2R1bGUiLCAia2V4ZWMtaW1hZ2UiLCAia2V4ZWMtaW5pdHJh
bWZzIiwgInNlY3VyaXR5LXBvbGljeSIsICJ4NTA5LWNlcnRpZmljYXRlIiwgIiIsCn07CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25z
dCBjaGFyICprZXJuZWxfcmVhZF9maWxlX2lkX3N0cihlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQg
aWQpCnsKIGlmICgodW5zaWduZWQpaWQgPj0gUkVBRElOR19NQVhfSUQpCiAgcmV0dXJuIGtlcm5l
bF9yZWFkX2ZpbGVfc3RyW1JFQURJTkdfVU5LTk9XTl07CgogcmV0dXJuIGtlcm5lbF9yZWFkX2Zp
bGVfc3RyW2lkXTsKfQoKZXh0ZXJuIGludCBrZXJuZWxfcmVhZF9maWxlKHN0cnVjdCBmaWxlICos
IHZvaWQgKiosIGxvZmZfdCAqLCBsb2ZmX3QsCiAgICAgICBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVf
aWQpOwpleHRlcm4gaW50IGtlcm5lbF9yZWFkX2ZpbGVfZnJvbV9wYXRoKGNvbnN0IGNoYXIgKiwg
dm9pZCAqKiwgbG9mZl90ICosIGxvZmZfdCwKICAgICAgICAgIGVudW0ga2VybmVsX3JlYWRfZmls
ZV9pZCk7CmV4dGVybiBpbnQga2VybmVsX3JlYWRfZmlsZV9mcm9tX2ZkKGludCwgdm9pZCAqKiwg
bG9mZl90ICosIGxvZmZfdCwKICAgICAgICBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQpOwpleHRl
cm4gc3NpemVfdCBrZXJuZWxfcmVhZChzdHJ1Y3QgZmlsZSAqLCB2b2lkICosIHNpemVfdCwgbG9m
Zl90ICopOwpleHRlcm4gc3NpemVfdCBrZXJuZWxfd3JpdGUoc3RydWN0IGZpbGUgKiwgY29uc3Qg
dm9pZCAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgX19rZXJuZWxfd3JpdGUo
c3RydWN0IGZpbGUgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHN0
cnVjdCBmaWxlICogb3Blbl9leGVjKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGJvb2wgaXNfc3Vi
ZGlyKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGJvb2wgcGF0aF9p
c191bmRlcihjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjb25zdCBzdHJ1Y3QgcGF0aCAqKTsKCmV4dGVy
biBjaGFyICpmaWxlX3BhdGgoc3RydWN0IGZpbGUgKiwgY2hhciAqLCBpbnQpOwoKCgoKZXh0ZXJu
IGxvZmZfdCBkZWZhdWx0X2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwg
aW50IHdoZW5jZSk7CgpleHRlcm4gbG9mZl90IHZmc19sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUs
IGxvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpOwoKZXh0ZXJuIGludCBpbm9kZV9pbml0X2Fsd2F5
cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBpbm9k
ZV9pbml0X29uY2Uoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBhZGRyZXNzX3NwYWNlX2lu
aXRfb25jZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyk7CmV4dGVybiBzdHJ1Y3QgaW5v
ZGUgKiBpZ3JhYihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbm9fdCBpdW5pcXVlKHN0cnVjdCBz
dXBlcl9ibG9jayAqLCBpbm9fdCk7CmV4dGVybiBpbnQgaW5vZGVfbmVlZHNfc3luYyhzdHJ1Y3Qg
aW5vZGUgKmlub2RlKTsKZXh0ZXJuIGludCBnZW5lcmljX2RlbGV0ZV9pbm9kZShzdHJ1Y3QgaW5v
ZGUgKmlub2RlKTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IGdlbmVyaWNfZHJvcF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7
CiByZXR1cm4gIWlub2RlLT5pX25saW5rIHx8IGlub2RlX3VuaGFzaGVkKGlub2RlKTsKfQoKZXh0
ZXJuIHN0cnVjdCBpbm9kZSAqaWxvb2t1cDVfbm93YWl0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is
CiAgdW5zaWduZWQgbG9uZyBoYXNodmFsLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9p
ZCAqKSwKICB2b2lkICpkYXRhKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqaWxvb2t1cDUoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgbG9uZyBoYXNodmFsLAogIGludCAoKnRlc3QpKHN0
cnVjdCBpbm9kZSAqLCB2b2lkICopLCB2b2lkICpkYXRhKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAq
aWxvb2t1cChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1bnNpZ25lZCBsb25nIGlubyk7CgpleHRl
cm4gc3RydWN0IGlub2RlICppbm9kZV9pbnNlcnQ1KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2ln
bmVkIGxvbmcgaGFzaHZhbCwKICBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwK
ICBpbnQgKCpzZXQpKHN0cnVjdCBpbm9kZSAqLCB2b2lkICopLAogIHZvaWQgKmRhdGEpOwpleHRl
cm4gc3RydWN0IGlub2RlICogaWdldDVfbG9ja2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNp
Z25lZCBsb25nLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgaW50ICgqc2V0
KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgdm9pZCAqKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAq
IGlnZXRfbG9ja2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu
IHN0cnVjdCBpbm9kZSAqZmluZF9pbm9kZV9ub3dhaXQoc3RydWN0IHN1cGVyX2Jsb2NrICosCiAg
ICAgICAgICAgdW5zaWduZWQgbG9uZywKICAgICAgICAgICBpbnQgKCptYXRjaCkoc3RydWN0IGlu
b2RlICosCiAgICAgICAgICB1bnNpZ25lZCBsb25nLCB2b2lkICopLAogICAgICAgICAgIHZvaWQg
KmRhdGEpOwpleHRlcm4gaW50IGluc2VydF9pbm9kZV9sb2NrZWQ0KHN0cnVjdCBpbm9kZSAqLCB1
bnNpZ25lZCBsb25nLCBpbnQgKCp0ZXN0KShzdHJ1Y3QgaW5vZGUgKiwgdm9pZCAqKSwgdm9pZCAq
KTsKZXh0ZXJuIGludCBpbnNlcnRfaW5vZGVfbG9ja2VkKHN0cnVjdCBpbm9kZSAqKTsKCgoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCBsb2NrZGVwX2Fubm90YXRlX2lub2RlX211dGV4X2tleShzdHJ1Y3QgaW5vZGUgKmlub2RlKSB7
IH07CgpleHRlcm4gdm9pZCB1bmxvY2tfbmV3X2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgZGlzY2FyZF9uZXdfaW5vZGUoc3RydWN0IGlub2RlICopOwpleHRlcm4gdW5zaWduZWQg
aW50IGdldF9uZXh0X2lubyh2b2lkKTsKZXh0ZXJuIHZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IpOwoKZXh0ZXJuIHZvaWQgX19pZ2V0KHN0cnVjdCBpbm9kZSAqIGlub2Rl
KTsKZXh0ZXJuIHZvaWQgaWdldF9mYWlsZWQoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBj
bGVhcl9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIF9fZGVzdHJveV9pbm9kZShz
dHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKm5ld19pbm9kZV9wc2V1ZG8oc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKm5ld19pbm9kZShzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKZXh0ZXJuIHZvaWQgZnJlZV9pbm9kZV9ub25yY3Uoc3RydWN0
IGlub2RlICppbm9kZSk7CmV4dGVybiBpbnQgc2hvdWxkX3JlbW92ZV9zdWlkKHN0cnVjdCBkZW50
cnkgKik7CmV4dGVybiBpbnQgZmlsZV9yZW1vdmVfcHJpdnMoc3RydWN0IGZpbGUgKik7CgpleHRl
cm4gdm9pZCBfX2luc2VydF9pbm9kZV9oYXNoKHN0cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCBsb25n
IGhhc2h2YWwpOwpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSB2b2lkIGluc2VydF9pbm9kZV9oYXNoKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK
IF9faW5zZXJ0X2lub2RlX2hhc2goaW5vZGUsIGlub2RlLT5pX2lubyk7Cn0KCmV4dGVybiB2b2lk
IF9fcmVtb3ZlX2lub2RlX2hhc2goc3RydWN0IGlub2RlICopOwpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJlbW92ZV9pbm9kZV9o
YXNoKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGlmICghaW5vZGVfdW5oYXNoZWQoaW5vZGUpICYm
ICFobGlzdF9mYWtlKCZpbm9kZS0+aV9oYXNoKSkKICBfX3JlbW92ZV9pbm9kZV9oYXNoKGlub2Rl
KTsKfQoKZXh0ZXJuIHZvaWQgaW5vZGVfc2JfbGlzdF9hZGQoc3RydWN0IGlub2RlICppbm9kZSk7
CgoKZXh0ZXJuIGludCBiZGV2X3JlYWRfb25seShzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOwoKZXh0
ZXJuIGludCBzZXRfYmxvY2tzaXplKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgaW50KTsKZXh0ZXJu
IGludCBzYl9zZXRfYmxvY2tzaXplKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQpOwpleHRlcm4g
aW50IHNiX21pbl9ibG9ja3NpemUoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCk7CgpleHRlcm4g
aW50IGdlbmVyaWNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVj
dCAqKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1hcChzdHJ1Y3QgZmlsZSAq
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfd3JpdGVf
Y2hlY2tzKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0ZXIgKik7CmV4dGVybiBpbnQgZ2Vu
ZXJpY19yZW1hcF9jaGVja3Moc3RydWN0IGZpbGUgKmZpbGVfaW4sIGxvZmZfdCBwb3NfaW4sCiAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0LAogICAgbG9mZl90ICpjb3Vu
dCwgdW5zaWduZWQgaW50IHJlbWFwX2ZsYWdzKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfcndf
Y2hlY2tzKHN0cnVjdCBmaWxlICpmaWxlX2luLCBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQpOwpleHRl
cm4gaW50IGdlbmVyaWNfY29weV9maWxlX2NoZWNrcyhzdHJ1Y3QgZmlsZSAqZmlsZV9pbiwgbG9m
Zl90IHBvc19pbiwKICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZV9vdXQsIGxvZmZfdCBwb3Nfb3V0
LAogICAgICAgIHNpemVfdCAqY291bnQsIHVuc2lnbmVkIGludCBmbGFncyk7CmV4dGVybiBzc2l6
ZV90IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRl
ciAqKTsKZXh0ZXJuIHNzaXplX3QgX19nZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lv
Y2IgKiwgc3RydWN0IGlvdl9pdGVyICopOwpleHRlcm4gc3NpemVfdCBnZW5lcmljX2ZpbGVfd3Jp
dGVfaXRlcihzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGlvdl9pdGVyICopOwpleHRlcm4gc3NpemVf
dCBnZW5lcmljX2ZpbGVfZGlyZWN0X3dyaXRlKHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgaW92X2l0
ZXIgKik7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcGVyZm9ybV93cml0ZShzdHJ1Y3QgZmlsZSAq
LCBzdHJ1Y3QgaW92X2l0ZXIgKiwgbG9mZl90KTsKCnNzaXplX3QgdmZzX2l0ZXJfcmVhZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGlvdl9pdGVyICppdGVyLCBsb2ZmX3QgKnBwb3MsCiAgcndm
X3QgZmxhZ3MpOwpzc2l6ZV90IHZmc19pdGVyX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1
Y3QgaW92X2l0ZXIgKml0ZXIsIGxvZmZfdCAqcHBvcywKICByd2ZfdCBmbGFncyk7CnNzaXplX3Qg
dmZzX2lvY2JfaXRlcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qga2lvY2IgKmlvY2Is
CiAgICAgIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7CnNzaXplX3QgdmZzX2lvY2JfaXRlcl93cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGtpb2NiICppb2NiLAogICAgICAgc3RydWN0IGlv
dl9pdGVyICppdGVyKTsKCgpleHRlcm4gc3NpemVfdCBibGtkZXZfcmVhZF9pdGVyKHN0cnVjdCBr
aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0byk7CmV4dGVybiBzc2l6ZV90IGJsa2Rldl93
cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKTsKZXh0
ZXJuIGludCBibGtkZXZfZnN5bmMoc3RydWN0IGZpbGUgKmZpbHAsIGxvZmZfdCBzdGFydCwgbG9m
Zl90IGVuZCwKICAgaW50IGRhdGFzeW5jKTsKZXh0ZXJuIHZvaWQgYmxvY2tfc3luY19wYWdlKHN0
cnVjdCBwYWdlICpwYWdlKTsKCgpleHRlcm4gc3NpemVfdCBnZW5lcmljX2ZpbGVfc3BsaWNlX3Jl
YWQoc3RydWN0IGZpbGUgKiwgbG9mZl90ICosCiAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLCBz
aXplX3QsIHVuc2lnbmVkIGludCk7CmV4dGVybiBzc2l6ZV90IGl0ZXJfZmlsZV9zcGxpY2Vfd3Jp
dGUoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqLAogIHN0cnVjdCBmaWxlICosIGxvZmZfdCAqLCBz
aXplX3QsIHVuc2lnbmVkIGludCk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfc3BsaWNlX3NlbmRw
YWdlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsCiAgc3RydWN0IGZpbGUgKm91dCwgbG9m
Zl90ICosIHNpemVfdCBsZW4sIHVuc2lnbmVkIGludCBmbGFncyk7CmV4dGVybiBsb25nIGRvX3Nw
bGljZV9kaXJlY3Qoc3RydWN0IGZpbGUgKmluLCBsb2ZmX3QgKnBwb3MsIHN0cnVjdCBmaWxlICpv
dXQsCiAgbG9mZl90ICpvcG9zLCBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwoKCmV4
dGVybiB2b2lkCmZpbGVfcmFfc3RhdGVfaW5pdChzdHJ1Y3QgZmlsZV9yYV9zdGF0ZSAqcmEsIHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nKTsKZXh0ZXJuIGxvZmZfdCBub29wX2xsc2Vlayhz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSk7CmV4dGVybiBsb2Zm
X3Qgbm9fbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNl
KTsKZXh0ZXJuIGxvZmZfdCB2ZnNfc2V0cG9zKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zm
c2V0LCBsb2ZmX3QgbWF4c2l6ZSk7CmV4dGVybiBsb2ZmX3QgZ2VuZXJpY19maWxlX2xsc2Vlayhz
dHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSk7CmV4dGVybiBsb2Zm
X3QgZ2VuZXJpY19maWxlX2xsc2Vla19zaXplKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zm
c2V0LAogIGludCB3aGVuY2UsIGxvZmZfdCBtYXhzaXplLCBsb2ZmX3QgZW9mKTsKZXh0ZXJuIGxv
ZmZfdCBmaXhlZF9zaXplX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwK
ICBpbnQgd2hlbmNlLCBsb2ZmX3Qgc2l6ZSk7CmV4dGVybiBsb2ZmX3Qgbm9fc2Vla19lbmRfbGxz
ZWVrX3NpemUoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQsIGxvZmZfdCk7CmV4dGVybiBsb2Zm
X3Qgbm9fc2Vla19lbmRfbGxzZWVrKHN0cnVjdCBmaWxlICosIGxvZmZfdCwgaW50KTsKZXh0ZXJu
IGludCBnZW5lcmljX2ZpbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUg
KiBmaWxwKTsKZXh0ZXJuIGludCBub25zZWVrYWJsZV9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2Rl
LCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwpleHRlcm4gaW50IHN0cmVhbV9vcGVuKHN0cnVjdCBpbm9k
ZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwoKCnR5cGVkZWYgdm9pZCAoZGlvX3N1Ym1p
dF90KShzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICAgICBsb2ZmX3Qg
ZmlsZV9vZmZzZXQpOwoKZW51bSB7CgogRElPX0xPQ0tJTkcgPSAweDAxLAoKCiBESU9fU0tJUF9I
T0xFUyA9IDB4MDIsCn07Cgp2b2lkIGRpb19lbmRfaW8oc3RydWN0IGJpbyAqYmlvKTsKCnNzaXpl
X3QgX19ibG9ja2Rldl9kaXJlY3RfSU8oc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW5vZGUg
Kmlub2RlLAogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBpb3ZfaXRl
ciAqaXRlciwKICAgICAgICBnZXRfYmxvY2tfdCBnZXRfYmxvY2ssCiAgICAgICAgZGlvX2lvZG9u
ZV90IGVuZF9pbywgZGlvX3N1Ym1pdF90IHN1Ym1pdF9pbywKICAgICAgICBpbnQgZmxhZ3MpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3NpemVfdCBibG9ja2Rldl9kaXJlY3RfSU8oc3RydWN0IGtpb2NiICppb2NiLAogICAgICBzdHJ1
Y3QgaW5vZGUgKmlub2RlLAogICAgICBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIsCiAgICAgIGdldF9i
bG9ja190IGdldF9ibG9jaykKewogcmV0dXJuIF9fYmxvY2tkZXZfZGlyZWN0X0lPKGlvY2IsIGlu
b2RlLCBpbm9kZS0+aV9zYi0+c19iZGV2LCBpdGVyLAogICBnZXRfYmxvY2ssICgodm9pZCAqKTAp
LCAoKHZvaWQgKikwKSwgRElPX0xPQ0tJTkcgfCBESU9fU0tJUF9IT0xFUyk7Cn0KCgp2b2lkIGlu
b2RlX2Rpb193YWl0KHN0cnVjdCBpbm9kZSAqaW5vZGUpOwojIDMyMDggIi4vaW5jbHVkZS9saW51
eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGlub2RlX2Rpb19iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBhdG9t
aWNfaW5jKCZpbm9kZS0+aV9kaW9fY291bnQpOwp9CiMgMzIyMCAiLi9pbmNsdWRlL2xpbnV4L2Zz
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaW5vZGVfZGlvX2VuZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBpZiAoYXRvbWlj
X2RlY19hbmRfdGVzdCgmaW5vZGUtPmlfZGlvX2NvdW50KSkKICB3YWtlX3VwX2JpdCgmaW5vZGUt
Pmlfc3RhdGUsIDkpOwp9CgoKCgp2b2lkIGRpb193YXJuX3N0YWxlX3BhZ2VjYWNoZShzdHJ1Y3Qg
ZmlsZSAqZmlscCk7CgpleHRlcm4gdm9pZCBpbm9kZV9zZXRfZmxhZ3Moc3RydWN0IGlub2RlICpp
bm9kZSwgdW5zaWduZWQgaW50IGZsYWdzLAogICAgICAgdW5zaWduZWQgaW50IG1hc2spOwoKZXh0
ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZ2VuZXJpY19yb19mb3BzOwoKCgpleHRl
cm4gaW50IHJlYWRsaW5rX2NvcHkoY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBp
bnQgcGFnZV9yZWFkbGluayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKZXh0ZXJuIGNv
bnN0IGNoYXIgKnBhZ2VfZ2V0X2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwK
ICAgICBzdHJ1Y3QgZGVsYXllZF9jYWxsICopOwpleHRlcm4gdm9pZCBwYWdlX3B1dF9saW5rKHZv
aWQgKik7CmV4dGVybiBpbnQgX19wYWdlX3N5bWxpbmsoc3RydWN0IGlub2RlICppbm9kZSwgY29u
c3QgY2hhciAqc3ltbmFtZSwgaW50IGxlbiwKICBpbnQgbm9mcyk7CmV4dGVybiBpbnQgcGFnZV9z
eW1saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKnN5bW5hbWUsIGludCBsZW4p
OwpleHRlcm4gY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcGFnZV9zeW1saW5rX2lub2Rl
X29wZXJhdGlvbnM7CmV4dGVybiB2b2lkIGtmcmVlX2xpbmsodm9pZCAqKTsKZXh0ZXJuIHZvaWQg
Z2VuZXJpY19maWxsYXR0cihzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGtzdGF0ICopOwpleHRlcm4g
aW50IHZmc19nZXRhdHRyX25vc2VjKGNvbnN0IHN0cnVjdCBwYXRoICosIHN0cnVjdCBrc3RhdCAq
LCB1MzIsIHVuc2lnbmVkIGludCk7CmV4dGVybiBpbnQgdmZzX2dldGF0dHIoY29uc3Qgc3RydWN0
IHBhdGggKiwgc3RydWN0IGtzdGF0ICosIHUzMiwgdW5zaWduZWQgaW50KTsKdm9pZCBfX2lub2Rl
X2FkZF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwp2b2lkIGlub2Rl
X2FkZF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwp2b2lkIF9faW5v
ZGVfc3ViX2J5dGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBieXRlcyk7CnZvaWQgaW5v
ZGVfc3ViX2J5dGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBieXRlcyk7CnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGxvZmZfdCBf
X2lub2RlX2dldF9ieXRlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4gKCgobG9mZl90
KWlub2RlLT5pX2Jsb2NrcykgPDwgOSkgKyBpbm9kZS0+aV9ieXRlczsKfQpsb2ZmX3QgaW5vZGVf
Z2V0X2J5dGVzKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwp2b2lkIGlub2RlX3NldF9ieXRlcyhzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgYnl0ZXMpOwpjb25zdCBjaGFyICpzaW1wbGVfZ2V0X2xp
bmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKiwKICAgICAgIHN0cnVjdCBkZWxheWVk
X2NhbGwgKik7CmV4dGVybiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBzaW1wbGVfc3lt
bGlua19pbm9kZV9vcGVyYXRpb25zOwoKZXh0ZXJuIGludCBpdGVyYXRlX2RpcihzdHJ1Y3QgZmls
ZSAqLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKik7CgpleHRlcm4gaW50IHZmc19zdGF0eChpbnQsIGNv
bnN0IGNoYXIgKiwgaW50LCBzdHJ1Y3Qga3N0YXQgKiwgdTMyKTsKZXh0ZXJuIGludCB2ZnNfc3Rh
dHhfZmQodW5zaWduZWQgaW50LCBzdHJ1Y3Qga3N0YXQgKiwgdTMyLCB1bnNpZ25lZCBpbnQpOwoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IHZmc19zdGF0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qga3N0YXQgKnN0YXQpCnsK
IHJldHVybiB2ZnNfc3RhdHgoLTEwMCwgZmlsZW5hbWUsIDB4ODAwLAogICAgc3RhdCwgMHgwMDAw
MDdmZlUpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGludCB2ZnNfbHN0YXQoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGtzdGF0ICpz
dGF0KQp7CiByZXR1cm4gdmZzX3N0YXR4KC0xMDAsIG5hbWUsIDB4MTAwIHwgMHg4MDAsCiAgICBz
dGF0LCAweDAwMDAwN2ZmVSk7Cn0Kc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHZmc19mc3RhdGF0KGludCBkZmQsIGNvbnN0IGNoYXIg
KmZpbGVuYW1lLAogICAgICAgICBzdHJ1Y3Qga3N0YXQgKnN0YXQsIGludCBmbGFncykKewogcmV0
dXJuIHZmc19zdGF0eChkZmQsIGZpbGVuYW1lLCBmbGFncyB8IDB4ODAwLAogICAgc3RhdCwgMHgw
MDAwMDdmZlUpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGludCB2ZnNfZnN0YXQoaW50IGZkLCBzdHJ1Y3Qga3N0YXQgKnN0YXQpCnsK
IHJldHVybiB2ZnNfc3RhdHhfZmQoZmQsIHN0YXQsIDB4MDAwMDA3ZmZVLCAwKTsKfQoKCmV4dGVy
biBjb25zdCBjaGFyICp2ZnNfZ2V0X2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgZGVsYXll
ZF9jYWxsICopOwpleHRlcm4gaW50IHZmc19yZWFkbGluayhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIg
KiwgaW50KTsKCmV4dGVybiBpbnQgX19nZW5lcmljX2Jsb2NrX2ZpZW1hcChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLAogICAgICBzdHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLAogICAgICBs
b2ZmX3Qgc3RhcnQsIGxvZmZfdCBsZW4sCiAgICAgIGdldF9ibG9ja190ICpnZXRfYmxvY2spOwpl
eHRlcm4gaW50IGdlbmVyaWNfYmxvY2tfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICBz
dHJ1Y3QgZmllbWFwX2V4dGVudF9pbmZvICpmaWVpbmZvLCB1NjQgc3RhcnQsCiAgICB1NjQgbGVu
LCBnZXRfYmxvY2tfdCAqZ2V0X2Jsb2NrKTsKCmV4dGVybiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZ2V0X2ZpbGVzeXN0ZW0oc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzKTsKZXh0ZXJuIHZv
aWQgcHV0X2ZpbGVzeXN0ZW0oc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzKTsKZXh0ZXJuIHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpnZXRfZnNfdHlwZShjb25zdCBjaGFyICpuYW1lKTsKZXh0
ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0X3N1cGVyKHN0cnVjdCBibG9ja19kZXZpY2UgKik7
CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKmdldF9zdXBlcl90aGF3ZWQoc3RydWN0IGJsb2Nr
X2RldmljZSAqKTsKZXh0ZXJuIHN0cnVjdCBzdXBlcl9ibG9jayAqZ2V0X3N1cGVyX2V4Y2x1c2l2
ZV90aGF3ZWQoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKmdldF9hY3RpdmVfc3VwZXIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7CmV4dGVy
biB2b2lkIGRyb3Bfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiB2b2lkIGRy
b3Bfc3VwZXJfZXhjbHVzaXZlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpleHRlcm4gdm9pZCBp
dGVyYXRlX3N1cGVycyh2b2lkICgqKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqKSwgdm9p
ZCAqKTsKZXh0ZXJuIHZvaWQgaXRlcmF0ZV9zdXBlcnNfdHlwZShzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSAqLAogICAgICAgICAgIHZvaWQgKCopKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB2b2lkICop
LCB2b2lkICopOwoKZXh0ZXJuIGludCBkY2FjaGVfZGlyX29wZW4oc3RydWN0IGlub2RlICosIHN0
cnVjdCBmaWxlICopOwpleHRlcm4gaW50IGRjYWNoZV9kaXJfY2xvc2Uoc3RydWN0IGlub2RlICos
IHN0cnVjdCBmaWxlICopOwpleHRlcm4gbG9mZl90IGRjYWNoZV9kaXJfbHNlZWsoc3RydWN0IGZp
bGUgKiwgbG9mZl90LCBpbnQpOwpleHRlcm4gaW50IGRjYWNoZV9yZWFkZGlyKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBkaXJfY29udGV4dCAqKTsKZXh0ZXJuIGludCBzaW1wbGVfc2V0YXR0cihzdHJ1
Y3QgZGVudHJ5ICosIHN0cnVjdCBpYXR0ciAqKTsKZXh0ZXJuIGludCBzaW1wbGVfZ2V0YXR0cihj
b25zdCBzdHJ1Y3QgcGF0aCAqLCBzdHJ1Y3Qga3N0YXQgKiwgdTMyLCB1bnNpZ25lZCBpbnQpOwpl
eHRlcm4gaW50IHNpbXBsZV9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qga3N0YXRmcyAq
KTsKZXh0ZXJuIGludCBzaW1wbGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls
ZSAqZmlsZSk7CmV4dGVybiBpbnQgc2ltcGxlX2xpbmsoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
aW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCBzaW1wbGVfdW5saW5rKHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwpleHRlcm4gaW50IHNpbXBsZV9ybWRpcihzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCBzaW1wbGVfcmVuYW1lKHN0
cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosCiAgICBzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0
IGRlbnRyeSAqLCB1bnNpZ25lZCBpbnQpOwpleHRlcm4gdm9pZCBzaW1wbGVfcmVjdXJzaXZlX3Jl
bW92YWwoc3RydWN0IGRlbnRyeSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk
ICgqY2FsbGJhY2spKHN0cnVjdCBkZW50cnkgKikpOwpleHRlcm4gaW50IG5vb3BfZnN5bmMoc3Ry
dWN0IGZpbGUgKiwgbG9mZl90LCBsb2ZmX3QsIGludCk7CmV4dGVybiBpbnQgbm9vcF9zZXRfcGFn
ZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqcGFnZSk7CmV4dGVybiB2b2lkIG5vb3BfaW52YWxpZGF0ZXBh
Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgdW5zaWduZWQgaW50
IGxlbmd0aCk7CmV4dGVybiBzc2l6ZV90IG5vb3BfZGlyZWN0X0lPKHN0cnVjdCBraW9jYiAqaW9j
Yiwgc3RydWN0IGlvdl9pdGVyICppdGVyKTsKZXh0ZXJuIGludCBzaW1wbGVfZW1wdHkoc3RydWN0
IGRlbnRyeSAqKTsKZXh0ZXJuIGludCBzaW1wbGVfcmVhZHBhZ2Uoc3RydWN0IGZpbGUgKmZpbGUs
IHN0cnVjdCBwYWdlICpwYWdlKTsKZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfYmVnaW4oc3RydWN0
IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogICBsb2ZmX3QgcG9z
LCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdzLAogICBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2
b2lkICoqZnNkYXRhKTsKZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKICAgbG9mZl90IHBvcywgdW5zaWdu
ZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsCiAgIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2Rh
dGEpOwpleHRlcm4gaW50IGFsd2F5c19kZWxldGVfZGVudHJ5KGNvbnN0IHN0cnVjdCBkZW50cnkg
Kik7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKmFsbG9jX2Fub25faW5vZGUoc3RydWN0IHN1cGVyX2Js
b2NrICopOwpleHRlcm4gaW50IHNpbXBsZV9ub3NldGxlYXNlKHN0cnVjdCBmaWxlICosIGxvbmcs
IHN0cnVjdCBmaWxlX2xvY2sgKiosIHZvaWQgKiopOwpleHRlcm4gY29uc3Qgc3RydWN0IGRlbnRy
eV9vcGVyYXRpb25zIHNpbXBsZV9kZW50cnlfb3BlcmF0aW9uczsKCmV4dGVybiBzdHJ1Y3QgZGVu
dHJ5ICpzaW1wbGVfbG9va3VwKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIHVuc2ln
bmVkIGludCBmbGFncyk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcmVhZF9kaXIoc3RydWN0IGZp
bGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgc2ltcGxlX2Rpcl9vcGVyYXRpb25zOwpleHRlcm4gY29uc3Qgc3RydWN0IGlu
b2RlX29wZXJhdGlvbnMgc2ltcGxlX2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gdm9pZCBt
YWtlX2VtcHR5X2Rpcl9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIGJvb2wgaXNf
ZW1wdHlfZGlyX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpzdHJ1Y3QgdHJlZV9kZXNjciB7
IGNvbnN0IGNoYXIgKm5hbWU7IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9wczsgaW50
IG1vZGU7IH07CnN0cnVjdCBkZW50cnkgKmRfYWxsb2NfbmFtZShzdHJ1Y3QgZGVudHJ5ICosIGNv
bnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc2ltcGxlX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Js
b2NrICosIHVuc2lnbmVkIGxvbmcsCiAgICAgICAgY29uc3Qgc3RydWN0IHRyZWVfZGVzY3IgKik7
CmV4dGVybiBpbnQgc2ltcGxlX3Bpbl9mcyhzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqLCBzdHJ1
Y3QgdmZzbW91bnQgKiptb3VudCwgaW50ICpjb3VudCk7CmV4dGVybiB2b2lkIHNpbXBsZV9yZWxl
YXNlX2ZzKHN0cnVjdCB2ZnNtb3VudCAqKm1vdW50LCBpbnQgKmNvdW50KTsKCmV4dGVybiBzc2l6
ZV90IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRvLCBzaXplX3QgY291bnQsCiAgIGxv
ZmZfdCAqcHBvcywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSk7CmV4dGVybiBz
c2l6ZV90IHNpbXBsZV93cml0ZV90b19idWZmZXIodm9pZCAqdG8sIHNpemVfdCBhdmFpbGFibGUs
IGxvZmZfdCAqcHBvcywKICBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgY291bnQpOwoKZXh0ZXJu
IGludCBfX2dlbmVyaWNfZmlsZV9mc3luYyhzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwg
aW50KTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVfZnN5bmMoc3RydWN0IGZpbGUgKiwgbG9mZl90
LCBsb2ZmX3QsIGludCk7CgpleHRlcm4gaW50IGdlbmVyaWNfY2hlY2tfYWRkcmVzc2FibGUodW5z
aWduZWQsIHU2NCk7CgoKZXh0ZXJuIGludCBidWZmZXJfbWlncmF0ZV9wYWdlKHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICosCiAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAqLAogICAgZW51bSBt
aWdyYXRlX21vZGUpOwpleHRlcm4gaW50IGJ1ZmZlcl9taWdyYXRlX3BhZ2Vfbm9yZWZzKHN0cnVj
dCBhZGRyZXNzX3NwYWNlICosCiAgICBzdHJ1Y3QgcGFnZSAqLCBzdHJ1Y3QgcGFnZSAqLAogICAg
ZW51bSBtaWdyYXRlX21vZGUpOwoKCgoKCmV4dGVybiBpbnQgc2V0YXR0cl9wcmVwYXJlKHN0cnVj
dCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOwpleHRlcm4gaW50IGlub2RlX25ld3NpemVfb2so
Y29uc3Qgc3RydWN0IGlub2RlICosIGxvZmZfdCBvZmZzZXQpOwpleHRlcm4gdm9pZCBzZXRhdHRy
X2NvcHkoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlhdHRyICphdHRyKTsKCmV4
dGVybiBpbnQgZmlsZV91cGRhdGVfdGltZShzdHJ1Y3QgZmlsZSAqZmlsZSk7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGlvX2lz
X2RpcmVjdChzdHJ1Y3QgZmlsZSAqZmlscCkKewogcmV0dXJuIChmaWxwLT5mX2ZsYWdzICYgMDAw
NDAwMDApIHx8ICgoZmlscC0+Zl9tYXBwaW5nLT5ob3N0KS0+aV9mbGFncyAmIDgxOTIpOwp9Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBi
b29sIHZtYV9pc19kYXgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCnsKIHJldHVybiB2bWEt
PnZtX2ZpbGUgJiYgKCh2bWEtPnZtX2ZpbGUtPmZfbWFwcGluZy0+aG9zdCktPmlfZmxhZ3MgJiA4
MTkyKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCB2bWFfaXNfZnNkYXgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCnsK
IHN0cnVjdCBpbm9kZSAqaW5vZGU7CgogaWYgKCF2bWEtPnZtX2ZpbGUpCiAgcmV0dXJuIGZhbHNl
OwogaWYgKCF2bWFfaXNfZGF4KHZtYSkpCiAgcmV0dXJuIGZhbHNlOwogaW5vZGUgPSBmaWxlX2lu
b2RlKHZtYS0+dm1fZmlsZSk7CiBpZiAoKCgoaW5vZGUtPmlfbW9kZSkgJiAwMDE3MDAwMCkgPT0g
MDAyMDAwMCkpCiAgcmV0dXJuIGZhbHNlOwogcmV0dXJuIHRydWU7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpb2NiX2ZsYWdz
KHN0cnVjdCBmaWxlICpmaWxlKQp7CiBpbnQgcmVzID0gMDsKIGlmIChmaWxlLT5mX2ZsYWdzICYg
MDAwMDIwMDApCiAgcmVzIHw9ICgxIDw8IDEpOwogaWYgKGlvX2lzX2RpcmVjdChmaWxlKSkKICBy
ZXMgfD0gKDEgPDwgMik7CiBpZiAoKGZpbGUtPmZfZmxhZ3MgJiAwMDAxMDAwMCkgfHwgKCgoZmls
ZS0+Zl9tYXBwaW5nLT5ob3N0KS0+aV9zYi0+c19mbGFncyAmICgxNikpIHx8ICgoZmlsZS0+Zl9t
YXBwaW5nLT5ob3N0KS0+aV9mbGFncyAmIDEpKSkKICByZXMgfD0gKDEgPDwgNCk7CiBpZiAoZmls
ZS0+Zl9mbGFncyAmIDA0MDAwMDAwKQogIHJlcyB8PSAoMSA8PCA1KTsKIHJldHVybiByZXM7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGludCBraW9jYl9zZXRfcndfZmxhZ3Moc3RydWN0IGtpb2NiICpraSwgcndmX3QgZmxhZ3MpCnsK
IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKGZsYWdzICYgfigoKCBfX2tlcm5lbF9yd2ZfdCkweDAw
MDAwMDAxKSB8ICgoIF9fa2VybmVsX3J3Zl90KTB4MDAwMDAwMDIpIHwgKCggX19rZXJuZWxfcndm
X3QpMHgwMDAwMDAwNCkgfCAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDA4KSB8ICgoIF9fa2Vy
bmVsX3J3Zl90KTB4MDAwMDAwMTApKSksIDApKQogIHJldHVybiAtOTU7CgogaWYgKGZsYWdzICYg
KCggX19rZXJuZWxfcndmX3QpMHgwMDAwMDAwOCkpIHsKICBpZiAoIShraS0+a2lfZmlscC0+Zl9t
b2RlICYgKCggZm1vZGVfdCkweDgwMDAwMDApKSkKICAgcmV0dXJuIC05NTsKICBraS0+a2lfZmxh
Z3MgfD0gKDEgPDwgNyk7CiB9CiBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAw
MDAxKSkKICBraS0+a2lfZmxhZ3MgfD0gKDEgPDwgMyk7CiBpZiAoZmxhZ3MgJiAoKCBfX2tlcm5l
bF9yd2ZfdCkweDAwMDAwMDAyKSkKICBraS0+a2lfZmxhZ3MgfD0gKDEgPDwgNCk7CiBpZiAoZmxh
Z3MgJiAoKCBfX2tlcm5lbF9yd2ZfdCkweDAwMDAwMDA0KSkKICBraS0+a2lfZmxhZ3MgfD0gKCgx
IDw8IDQpIHwgKDEgPDwgNSkpOwogaWYgKGZsYWdzICYgKCggX19rZXJuZWxfcndmX3QpMHgwMDAw
MDAxMCkpCiAga2ktPmtpX2ZsYWdzIHw9ICgxIDw8IDEpOwogcmV0dXJuIDA7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IHBh
cmVudF9pbm8oc3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiBpbm9fdCByZXM7CgoKCgoKIHNwaW5f
bG9jaygmZGVudHJ5LT5kX2xvY2tyZWYubG9jayk7CiByZXMgPSBkZW50cnktPmRfcGFyZW50LT5k
X2lub2RlLT5pX2lubzsKIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9ja3JlZi5sb2NrKTsKIHJl
dHVybiByZXM7Cn0KCgoKCgoKCnN0cnVjdCBzaW1wbGVfdHJhbnNhY3Rpb25fYXJncmVzcCB7CiBz
c2l6ZV90IHNpemU7CiBjaGFyIGRhdGFbMF07Cn07CgoKCmNoYXIgKnNpbXBsZV90cmFuc2FjdGlv
bl9nZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKmJ1ZiwKICAgIHNpemVfdCBzaXpl
KTsKc3NpemVfdCBzaW1wbGVfdHJhbnNhY3Rpb25fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hh
ciAqYnVmLAogICAgc2l6ZV90IHNpemUsIGxvZmZfdCAqcG9zKTsKaW50IHNpbXBsZV90cmFuc2Fj
dGlvbl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKCnZv
aWQgc2ltcGxlX3RyYW5zYWN0aW9uX3NldChzdHJ1Y3QgZmlsZSAqZmlsZSwgc2l6ZV90IG4pOwoj
IDM1MTUgIi4vaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHBy
aW50ZiwgMSwgMikpKQp2b2lkIF9fc2ltcGxlX2F0dHJfY2hlY2tfZm9ybWF0KGNvbnN0IGNoYXIg
KmZtdCwgLi4uKQp7Cgp9CgppbnQgc2ltcGxlX2F0dHJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKICAgICAgIGludCAoKmdldCkodm9pZCAqLCB1NjQgKiksIGlu
dCAoKnNldCkodm9pZCAqLCB1NjQpLAogICAgICAgY29uc3QgY2hhciAqZm10KTsKaW50IHNpbXBs
ZV9hdHRyX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpOwpz
c2l6ZV90IHNpbXBsZV9hdHRyX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwKICAg
IHNpemVfdCBsZW4sIGxvZmZfdCAqcHBvcyk7CnNzaXplX3Qgc2ltcGxlX2F0dHJfd3JpdGUoc3Ry
dWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKmJ1ZiwKICAgICBzaXplX3QgbGVuLCBsb2ZmX3Qg
KnBwb3MpOwoKc3RydWN0IGN0bF90YWJsZTsKaW50IHByb2NfbnJfZmlsZXMoc3RydWN0IGN0bF90
YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBs
b2ZmX3QgKnBwb3MpOwppbnQgcHJvY19ucl9kZW50cnkoc3RydWN0IGN0bF90YWJsZSAqdGFibGUs
IGludCB3cml0ZSwKICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3Mp
OwppbnQgcHJvY19ucl9pbm9kZXMoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwK
ICAgICB2b2lkICpidWZmZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKaW50IF9fYXR0
cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuaW5pdC50ZXh0IikpKSBfX2F0dHJpYnV0ZV9fKChfX2Nv
bGRfXykpIGdldF9maWxlc3lzdGVtX2xpc3QoY2hhciAqYnVmKTsKIyAzNTQ2ICIuL2luY2x1ZGUv
bGludXgvZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBpc19zeGlkKHVtb2RlX3QgbW9kZSkKewogcmV0dXJuIChtb2RlICYg
MDAwNDAwMCkgfHwgKChtb2RlICYgMDAwMjAwMCkgJiYgKG1vZGUgJiAwMDAxMCkpOwp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
Y2hlY2tfc3RpY2t5KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBp
ZiAoIShkaXItPmlfbW9kZSAmIDAwMDEwMDApKQogIHJldHVybiAwOwoKIHJldHVybiBfX2NoZWNr
X3N0aWNreShkaXIsIGlub2RlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBpbm9kZV9oYXNfbm9feGF0dHIoc3RydWN0IGlu
b2RlICppbm9kZSkKewogaWYgKCFpc19zeGlkKGlub2RlLT5pX21vZGUpICYmIChpbm9kZS0+aV9z
Yi0+c19mbGFncyAmICgxPDwyOCkpKQogIGlub2RlLT5pX2ZsYWdzIHw9IDQwOTY7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
aXNfcm9vdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiByZXR1cm4gaW5vZGUgPT0gaW5v
ZGUtPmlfc2ItPnNfcm9vdC0+ZF9pbm9kZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkaXJfZW1pdChzdHJ1Y3QgZGlyX2Nv
bnRleHQgKmN0eCwKICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuYW1lbGVuLAogICAgICAg
dTY0IGlubywgdW5zaWduZWQgdHlwZSkKewogcmV0dXJuIGN0eC0+YWN0b3IoY3R4LCBuYW1lLCBu
YW1lbGVuLCBjdHgtPnBvcywgaW5vLCB0eXBlKSA9PSAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGlyX2VtaXRfZG90KHN0
cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkKewogcmV0dXJuIGN0eC0+
YWN0b3IoY3R4LCAiLiIsIDEsIGN0eC0+cG9zLAogICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRf
aW5vZGUtPmlfaW5vLCA0KSA9PSAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGlyX2VtaXRfZG90ZG90KHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkKewogcmV0dXJuIGN0eC0+YWN0b3IoY3R4
LCAiLi4iLCAyLCBjdHgtPnBvcywKICAgICBwYXJlbnRfaW5vKGZpbGUtPmZfcGF0aC5kZW50cnkp
LCA0KSA9PSAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgZGlyX2VtaXRfZG90cyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IGRpcl9jb250ZXh0ICpjdHgpCnsKIGlmIChjdHgtPnBvcyA9PSAwKSB7CiAgaWYgKCFkaXJfZW1p
dF9kb3QoZmlsZSwgY3R4KSkKICAgcmV0dXJuIGZhbHNlOwogIGN0eC0+cG9zID0gMTsKIH0KIGlm
IChjdHgtPnBvcyA9PSAxKSB7CiAgaWYgKCFkaXJfZW1pdF9kb3Rkb3QoZmlsZSwgY3R4KSkKICAg
cmV0dXJuIGZhbHNlOwogIGN0eC0+cG9zID0gMjsKIH0KIHJldHVybiB0cnVlOwp9CnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGly
X3JlbGF4KHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKIGlub2RlX3VubG9jayhpbm9kZSk7CiBpbm9k
ZV9sb2NrKGlub2RlKTsKIHJldHVybiAhKChpbm9kZSktPmlfZmxhZ3MgJiAxNik7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZGlyX3JlbGF4X3NoYXJlZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiBpbm9kZV91bmxvY2tfc2hh
cmVkKGlub2RlKTsKIGlub2RlX2xvY2tfc2hhcmVkKGlub2RlKTsKIHJldHVybiAhKChpbm9kZSkt
PmlfZmxhZ3MgJiAxNik7Cn0KCmV4dGVybiBib29sIHBhdGhfbm9leGVjKGNvbnN0IHN0cnVjdCBw
YXRoICpwYXRoKTsKZXh0ZXJuIHZvaWQgaW5vZGVfbm9oaWdobWVtKHN0cnVjdCBpbm9kZSAqaW5v
ZGUpOwoKCmV4dGVybiBpbnQgdmZzX2ZhZHZpc2Uoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBv
ZmZzZXQsIGxvZmZfdCBsZW4sCiAgICAgICAgIGludCBhZHZpY2UpOwpleHRlcm4gaW50IGdlbmVy
aWNfZmFkdmlzZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbiwK
ICAgICAgaW50IGFkdmljZSk7CgoKZXh0ZXJuIHN0cnVjdCBzb2NrICppb191cmluZ19nZXRfc29j
a2V0KHN0cnVjdCBmaWxlICpmaWxlKTsKCgoKCgoKCmludCB2ZnNfaW9jX3NldGZsYWdzX3ByZXBh
cmUoc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgaW50IG9sZGZsYWdzLAogICAgICAgIHVu
c2lnbmVkIGludCBmbGFncyk7CgppbnQgdmZzX2lvY19mc3NldHhhdHRyX2NoZWNrKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBmc3hhdHRyICpvbGRfZmEsCiAgICAgICAgc3RydWN0
IGZzeGF0dHIgKmZhKTsKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgc2ltcGxlX2ZpbGxfZnN4YXR0cihzdHJ1Y3QgZnN4YXR0ciAq
ZmEsIF9fdTMyIHhmbGFncykKewogbWVtc2V0KGZhLCAwLCBzaXplb2YoKmZhKSk7CiBmYS0+ZnN4
X3hmbGFncyA9IHhmbGFnczsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgaW5vZGVfZHJhaW5fd3JpdGVzKHN0cnVjdCBp
bm9kZSAqaW5vZGUpCnsKIGlub2RlX2Rpb193YWl0KGlub2RlKTsKIHJldHVybiBmaWxlbWFwX3dy
aXRlX2FuZF93YWl0KGlub2RlLT5pX21hcHBpbmcpOwp9CiMgMTIgIi4vaW5jbHVkZS9saW51eC9z
ZXFfZmlsZS5oIiAyCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMQojIDEzICIuL2luY2x1
ZGUvbGludXgvY3JlZC5oIgojIDEgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIgMQojIDE3ICIuL2lu
Y2x1ZGUvbGludXgva2V5LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oIiAxCiMgMzAg
Ii4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKIyAxICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNj
dGwuaCIgMQojIDM1ICIuL2luY2x1ZGUvdWFwaS9saW51eC9zeXNjdGwuaCIKc3RydWN0IF9fc3lz
Y3RsX2FyZ3MgewogaW50ICpuYW1lOwogaW50IG5sZW47CiB2b2lkICpvbGR2YWw7CiBzaXplX3Qg
Km9sZGxlbnA7CiB2b2lkICpuZXd2YWw7CiBzaXplX3QgbmV3bGVuOwogdW5zaWduZWQgbG9uZyBf
X3VudXNlZFs0XTsKfTsKCgoKCgplbnVtCnsKIENUTF9LRVJOPTEsCiBDVExfVk09MiwKIENUTF9O
RVQ9MywKIENUTF9QUk9DPTQsCiBDVExfRlM9NSwKIENUTF9ERUJVRz02LAogQ1RMX0RFVj03LAog
Q1RMX0JVUz04LAogQ1RMX0FCST05LAogQ1RMX0NQVT0xMCwKIENUTF9BUkxBTj0yNTQsCiBDVExf
UzM5MERCRj01Njc3LAogQ1RMX1NVTlJQQz03MjQ5LAogQ1RMX1BNPTk4OTksCiBDVExfRlJWPTk4
OTgsCn07CgoKZW51bQp7CiBDVExfQlVTX0lTQT0xCn07CgoKZW51bQp7CiBJTk9USUZZX01BWF9V
U0VSX0lOU1RBTkNFUz0xLAogSU5PVElGWV9NQVhfVVNFUl9XQVRDSEVTPTIsCiBJTk9USUZZX01B
WF9RVUVVRURfRVZFTlRTPTMKfTsKCgplbnVtCnsKIEtFUk5fT1NUWVBFPTEsCiBLRVJOX09TUkVM
RUFTRT0yLAogS0VSTl9PU1JFVj0zLAogS0VSTl9WRVJTSU9OPTQsCiBLRVJOX1NFQ1VSRU1BU0s9
NSwKIEtFUk5fUFJPRj02LAogS0VSTl9OT0RFTkFNRT03LAogS0VSTl9ET01BSU5OQU1FPTgsCgog
S0VSTl9QQU5JQz0xNSwKIEtFUk5fUkVBTFJPT1RERVY9MTYsCgogS0VSTl9TUEFSQ19SRUJPT1Q9
MjEsCiBLRVJOX0NUTEFMVERFTD0yMiwKIEtFUk5fUFJJTlRLPTIzLAogS0VSTl9OQU1FVFJBTlM9
MjQsCiBLRVJOX1BQQ19IVEFCUkVDTEFJTT0yNSwKIEtFUk5fUFBDX1pFUk9QQUdFRD0yNiwKIEtF
Uk5fUFBDX1BPV0VSU0FWRV9OQVA9MjcsCiBLRVJOX01PRFBST0JFPTI4LAogS0VSTl9TR19CSUdf
QlVGRj0yOSwKIEtFUk5fQUNDVD0zMCwKIEtFUk5fUFBDX0wyQ1I9MzEsCgogS0VSTl9SVFNJR05S
PTMyLAogS0VSTl9SVFNJR01BWD0zMywKCiBLRVJOX1NITU1BWD0zNCwKIEtFUk5fTVNHTUFYPTM1
LAogS0VSTl9NU0dNTkI9MzYsCiBLRVJOX01TR1BPT0w9MzcsCiBLRVJOX1NZU1JRPTM4LAogS0VS
Tl9NQVhfVEhSRUFEUz0zOSwKICBLRVJOX1JBTkRPTT00MCwKICBLRVJOX1NITUFMTD00MSwKICBL
RVJOX01TR01OST00MiwKICBLRVJOX1NFTT00MywKICBLRVJOX1NQQVJDX1NUT1BfQT00NCwKICBL
RVJOX1NITU1OST00NSwKIEtFUk5fT1ZFUkZMT1dVSUQ9NDYsCiBLRVJOX09WRVJGTE9XR0lEPTQ3
LAogS0VSTl9TSE1QQVRIPTQ4LAogS0VSTl9IT1RQTFVHPTQ5LAogS0VSTl9JRUVFX0VNVUxBVElP
Tl9XQVJOSU5HUz01MCwKIEtFUk5fUzM5MF9VU0VSX0RFQlVHX0xPR0dJTkc9NTEsCiBLRVJOX0NP
UkVfVVNFU19QSUQ9NTIsCiBLRVJOX1RBSU5URUQ9NTMsCiBLRVJOX0NBRFBJRD01NCwKIEtFUk5f
UElETUFYPTU1LAogICBLRVJOX0NPUkVfUEFUVEVSTj01NiwKIEtFUk5fUEFOSUNfT05fT09QUz01
NywKIEtFUk5fSFBQQV9QV1JTVz01OCwKIEtFUk5fSFBQQV9VTkFMSUdORUQ9NTksCiBLRVJOX1BS
SU5US19SQVRFTElNSVQ9NjAsCiBLRVJOX1BSSU5US19SQVRFTElNSVRfQlVSU1Q9NjEsCiBLRVJO
X1BUWT02MiwKIEtFUk5fTkdST1VQU19NQVg9NjMsCiBLRVJOX1NQQVJDX1NDT05TX1BXUk9GRj02
NCwKIEtFUk5fSFpfVElNRVI9NjUsCiBLRVJOX1VOS05PV05fTk1JX1BBTklDPTY2LAogS0VSTl9C
T09UTE9BREVSX1RZUEU9NjcsCiBLRVJOX1JBTkRPTUlaRT02OCwKIEtFUk5fU0VUVUlEX0RVTVBB
QkxFPTY5LAogS0VSTl9TUElOX1JFVFJZPTcwLAogS0VSTl9BQ1BJX1ZJREVPX0ZMQUdTPTcxLAog
S0VSTl9JQTY0X1VOQUxJR05FRD03MiwKIEtFUk5fQ09NUEFUX0xPRz03MywKIEtFUk5fTUFYX0xP
Q0tfREVQVEg9NzQsCiBLRVJOX05NSV9XQVRDSERPRz03NSwKIEtFUk5fUEFOSUNfT05fTk1JPTc2
LAogS0VSTl9QQU5JQ19PTl9XQVJOPTc3LAogS0VSTl9QQU5JQ19QUklOVD03OCwKfTsKCgoKCmVu
dW0KewogVk1fVU5VU0VEMT0xLAogVk1fVU5VU0VEMj0yLAogVk1fVU5VU0VEMz0zLAogVk1fVU5V
U0VEND00LAogVk1fT1ZFUkNPTU1JVF9NRU1PUlk9NSwKIFZNX1VOVVNFRDU9NiwKIFZNX1VOVVNF
RDc9NywKIFZNX1VOVVNFRDg9OCwKIFZNX1VOVVNFRDk9OSwKIFZNX1BBR0VfQ0xVU1RFUj0xMCwK
IFZNX0RJUlRZX0JBQ0tHUk9VTkQ9MTEsCiBWTV9ESVJUWV9SQVRJTz0xMiwKIFZNX0RJUlRZX1dC
X0NTPTEzLAogVk1fRElSVFlfRVhQSVJFX0NTPTE0LAogVk1fTlJfUERGTFVTSF9USFJFQURTPTE1
LAogVk1fT1ZFUkNPTU1JVF9SQVRJTz0xNiwKIFZNX1BBR0VCVUY9MTcsCiBWTV9IVUdFVExCX1BB
R0VTPTE4LAogVk1fU1dBUFBJTkVTUz0xOSwKIFZNX0xPV01FTV9SRVNFUlZFX1JBVElPPTIwLAog
Vk1fTUlOX0ZSRUVfS0JZVEVTPTIxLAogVk1fTUFYX01BUF9DT1VOVD0yMiwKIFZNX0xBUFRPUF9N
T0RFPTIzLAogVk1fQkxPQ0tfRFVNUD0yNCwKIFZNX0hVR0VUTEJfR1JPVVA9MjUsCiBWTV9WRlNf
Q0FDSEVfUFJFU1NVUkU9MjYsCiBWTV9MRUdBQ1lfVkFfTEFZT1VUPTI3LAogVk1fU1dBUF9UT0tF
Tl9USU1FT1VUPTI4LAogVk1fRFJPUF9QQUdFQ0FDSEU9MjksCiBWTV9QRVJDUFVfUEFHRUxJU1Rf
RlJBQ1RJT049MzAsCiBWTV9aT05FX1JFQ0xBSU1fTU9ERT0zMSwKIFZNX01JTl9VTk1BUFBFRD0z
MiwKIFZNX1BBTklDX09OX09PTT0zMywKIFZNX1ZEU09fRU5BQkxFRD0zNCwKIFZNX01JTl9TTEFC
PTM1LAp9OwoKCgplbnVtCnsKIE5FVF9DT1JFPTEsCiBORVRfRVRIRVI9MiwKIE5FVF84MDI9MywK
IE5FVF9VTklYPTQsCiBORVRfSVBWND01LAogTkVUX0lQWD02LAogTkVUX0FUQUxLPTcsCiBORVRf
TkVUUk9NPTgsCiBORVRfQVgyNT05LAogTkVUX0JSSURHRT0xMCwKIE5FVF9ST1NFPTExLAogTkVU
X0lQVjY9MTIsCiBORVRfWDI1PTEzLAogTkVUX1RSPTE0LAogTkVUX0RFQ05FVD0xNSwKIE5FVF9F
Q09ORVQ9MTYsCiBORVRfU0NUUD0xNywKIE5FVF9MTEM9MTgsCiBORVRfTkVURklMVEVSPTE5LAog
TkVUX0RDQ1A9MjAsCiBORVRfSVJEQT00MTIsCn07CgoKZW51bQp7CiBSQU5ET01fUE9PTFNJWkU9
MSwKIFJBTkRPTV9FTlRST1BZX0NPVU5UPTIsCiBSQU5ET01fUkVBRF9USFJFU0g9MywKIFJBTkRP
TV9XUklURV9USFJFU0g9NCwKIFJBTkRPTV9CT09UX0lEPTUsCiBSQU5ET01fVVVJRD02Cn07CgoK
ZW51bQp7CiBQVFlfTUFYPTEsCiBQVFlfTlI9Mgp9OwoKCmVudW0KewogQlVTX0lTQV9NRU1fQkFT
RT0xLAogQlVTX0lTQV9QT1JUX0JBU0U9MiwKIEJVU19JU0FfUE9SVF9TSElGVD0zCn07CgoKZW51
bQp7CiBORVRfQ09SRV9XTUVNX01BWD0xLAogTkVUX0NPUkVfUk1FTV9NQVg9MiwKIE5FVF9DT1JF
X1dNRU1fREVGQVVMVD0zLAogTkVUX0NPUkVfUk1FTV9ERUZBVUxUPTQsCgogTkVUX0NPUkVfTUFY
X0JBQ0tMT0c9NiwKIE5FVF9DT1JFX0ZBU1RST1VURT03LAogTkVUX0NPUkVfTVNHX0NPU1Q9OCwK
IE5FVF9DT1JFX01TR19CVVJTVD05LAogTkVUX0NPUkVfT1BUTUVNX01BWD0xMCwKIE5FVF9DT1JF
X0hPVF9MSVNUX0xFTkdUSD0xMSwKIE5FVF9DT1JFX0RJVkVSVF9WRVJTSU9OPTEyLAogTkVUX0NP
UkVfTk9fQ09OR19USFJFU0g9MTMsCiBORVRfQ09SRV9OT19DT05HPTE0LAogTkVUX0NPUkVfTE9f
Q09ORz0xNSwKIE5FVF9DT1JFX01PRF9DT05HPTE2LAogTkVUX0NPUkVfREVWX1dFSUdIVD0xNywK
IE5FVF9DT1JFX1NPTUFYQ09OTj0xOCwKIE5FVF9DT1JFX0JVREdFVD0xOSwKIE5FVF9DT1JFX0FF
VkVOVF9FVElNRT0yMCwKIE5FVF9DT1JFX0FFVkVOVF9SU0VRVEg9MjEsCiBORVRfQ09SRV9XQVJO
SU5HUz0yMiwKfTsKCgoKCgoKCmVudW0KewogTkVUX1VOSVhfREVTVFJPWV9ERUxBWT0xLAogTkVU
X1VOSVhfREVMRVRFX0RFTEFZPTIsCiBORVRfVU5JWF9NQVhfREdSQU1fUUxFTj0zLAp9OwoKCmVu
dW0KewogTkVUX05GX0NPTk5UUkFDS19NQVg9MSwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVP
VVRfU1lOX1NFTlQ9MiwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfU1lOX1JFQ1Y9MywK
IE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfRVNUQUJMSVNIRUQ9NCwKIE5FVF9ORl9DT05O
VFJBQ0tfVENQX1RJTUVPVVRfRklOX1dBSVQ9NSwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX1RJTUVP
VVRfQ0xPU0VfV0FJVD02LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9MQVNUX0FDSz03
LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9USU1FX1dBSVQ9OCwKIE5FVF9ORl9DT05O
VFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0U9OSwKIE5FVF9ORl9DT05OVFJBQ0tfVURQX1RJTUVPVVQ9
MTAsCiBORVRfTkZfQ09OTlRSQUNLX1VEUF9USU1FT1VUX1NUUkVBTT0xMSwKIE5FVF9ORl9DT05O
VFJBQ0tfSUNNUF9USU1FT1VUPTEyLAogTkVUX05GX0NPTk5UUkFDS19HRU5FUklDX1RJTUVPVVQ9
MTMsCiBORVRfTkZfQ09OTlRSQUNLX0JVQ0tFVFM9MTQsCiBORVRfTkZfQ09OTlRSQUNLX0xPR19J
TlZBTElEPTE1LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfVElNRU9VVF9NQVhfUkVUUkFOUz0xNiwK
IE5FVF9ORl9DT05OVFJBQ0tfVENQX0xPT1NFPTE3LAogTkVUX05GX0NPTk5UUkFDS19UQ1BfQkVf
TElCRVJBTD0xOCwKIE5FVF9ORl9DT05OVFJBQ0tfVENQX01BWF9SRVRSQU5TPTE5LAogTkVUX05G
X0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfQ0xPU0VEPTIwLAogTkVUX05GX0NPTk5UUkFDS19TQ1RQ
X1RJTUVPVVRfQ09PS0lFX1dBSVQ9MjEsCiBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9D
T09LSUVfRUNIT0VEPTIyLAogTkVUX05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfRVNUQUJMSVNI
RUQ9MjMsCiBORVRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9TSFVURE9XTl9TRU5UPTI0LAog
TkVUX05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfU0hVVERPV05fUkVDRD0yNSwKIE5FVF9ORl9D
T05OVFJBQ0tfU0NUUF9USU1FT1VUX1NIVVRET1dOX0FDS19TRU5UPTI2LAogTkVUX05GX0NPTk5U
UkFDS19DT1VOVD0yNywKIE5FVF9ORl9DT05OVFJBQ0tfSUNNUFY2X1RJTUVPVVQ9MjgsCiBORVRf
TkZfQ09OTlRSQUNLX0ZSQUc2X1RJTUVPVVQ9MjksCiBORVRfTkZfQ09OTlRSQUNLX0ZSQUc2X0xP
V19USFJFU0g9MzAsCiBORVRfTkZfQ09OTlRSQUNLX0ZSQUc2X0hJR0hfVEhSRVNIPTMxLAogTkVU
X05GX0NPTk5UUkFDS19DSEVDS1NVTT0zMiwKfTsKCgplbnVtCnsKCiBORVRfSVBWNF9GT1JXQVJE
PTgsCiBORVRfSVBWNF9EWU5BRERSPTksCgogTkVUX0lQVjRfQ09ORj0xNiwKIE5FVF9JUFY0X05F
SUdIPTE3LAogTkVUX0lQVjRfUk9VVEU9MTgsCiBORVRfSVBWNF9GSUJfSEFTSD0xOSwKIE5FVF9J
UFY0X05FVEZJTFRFUj0yMCwKCiBORVRfSVBWNF9UQ1BfVElNRVNUQU1QUz0zMywKIE5FVF9JUFY0
X1RDUF9XSU5ET1dfU0NBTElORz0zNCwKIE5FVF9JUFY0X1RDUF9TQUNLPTM1LAogTkVUX0lQVjRf
VENQX1JFVFJBTlNfQ09MTEFQU0U9MzYsCiBORVRfSVBWNF9ERUZBVUxUX1RUTD0zNywKIE5FVF9J
UFY0X0FVVE9DT05GSUc9MzgsCiBORVRfSVBWNF9OT19QTVRVX0RJU0M9MzksCiBORVRfSVBWNF9U
Q1BfU1lOX1JFVFJJRVM9NDAsCiBORVRfSVBWNF9JUEZSQUdfSElHSF9USFJFU0g9NDEsCiBORVRf
SVBWNF9JUEZSQUdfTE9XX1RIUkVTSD00MiwKIE5FVF9JUFY0X0lQRlJBR19USU1FPTQzLAogTkVU
X0lQVjRfVENQX01BWF9LQV9QUk9CRVM9NDQsCiBORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX1RJTUU9
NDUsCiBORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX1BST0JFUz00NiwKIE5FVF9JUFY0X1RDUF9SRVRS
SUVTMT00NywKIE5FVF9JUFY0X1RDUF9SRVRSSUVTMj00OCwKIE5FVF9JUFY0X1RDUF9GSU5fVElN
RU9VVD00OSwKIE5FVF9JUFY0X0lQX01BU1FfREVCVUc9NTAsCiBORVRfVENQX1NZTkNPT0tJRVM9
NTEsCiBORVRfVENQX1NURFVSRz01MiwKIE5FVF9UQ1BfUkZDMTMzNz01MywKIE5FVF9UQ1BfU1lO
X1RBSUxEUk9QPTU0LAogTkVUX1RDUF9NQVhfU1lOX0JBQ0tMT0c9NTUsCiBORVRfSVBWNF9MT0NB
TF9QT1JUX1JBTkdFPTU2LAogTkVUX0lQVjRfSUNNUF9FQ0hPX0lHTk9SRV9BTEw9NTcsCiBORVRf
SVBWNF9JQ01QX0VDSE9fSUdOT1JFX0JST0FEQ0FTVFM9NTgsCiBORVRfSVBWNF9JQ01QX1NPVVJD
RVFVRU5DSF9SQVRFPTU5LAogTkVUX0lQVjRfSUNNUF9ERVNUVU5SRUFDSF9SQVRFPTYwLAogTkVU
X0lQVjRfSUNNUF9USU1FRVhDRUVEX1JBVEU9NjEsCiBORVRfSVBWNF9JQ01QX1BBUkFNUFJPQl9S
QVRFPTYyLAogTkVUX0lQVjRfSUNNUF9FQ0hPUkVQTFlfUkFURT02MywKIE5FVF9JUFY0X0lDTVBf
SUdOT1JFX0JPR1VTX0VSUk9SX1JFU1BPTlNFUz02NCwKIE5FVF9JUFY0X0lHTVBfTUFYX01FTUJF
UlNISVBTPTY1LAogTkVUX1RDUF9UV19SRUNZQ0xFPTY2LAogTkVUX0lQVjRfQUxXQVlTX0RFRlJB
Rz02NywKIE5FVF9JUFY0X1RDUF9LRUVQQUxJVkVfSU5UVkw9NjgsCiBORVRfSVBWNF9JTkVUX1BF
RVJfVEhSRVNIT0xEPTY5LAogTkVUX0lQVjRfSU5FVF9QRUVSX01JTlRUTD03MCwKIE5FVF9JUFY0
X0lORVRfUEVFUl9NQVhUVEw9NzEsCiBORVRfSVBWNF9JTkVUX1BFRVJfR0NfTUlOVElNRT03MiwK
IE5FVF9JUFY0X0lORVRfUEVFUl9HQ19NQVhUSU1FPTczLAogTkVUX1RDUF9PUlBIQU5fUkVUUklF
Uz03NCwKIE5FVF9UQ1BfQUJPUlRfT05fT1ZFUkZMT1c9NzUsCiBORVRfVENQX1NZTkFDS19SRVRS
SUVTPTc2LAogTkVUX1RDUF9NQVhfT1JQSEFOUz03NywKIE5FVF9UQ1BfTUFYX1RXX0JVQ0tFVFM9
NzgsCiBORVRfVENQX0ZBQ0s9NzksCiBORVRfVENQX1JFT1JERVJJTkc9ODAsCiBORVRfVENQX0VD
Tj04MSwKIE5FVF9UQ1BfRFNBQ0s9ODIsCiBORVRfVENQX01FTT04MywKIE5FVF9UQ1BfV01FTT04
NCwKIE5FVF9UQ1BfUk1FTT04NSwKIE5FVF9UQ1BfQVBQX1dJTj04NiwKIE5FVF9UQ1BfQURWX1dJ
Tl9TQ0FMRT04NywKIE5FVF9JUFY0X05PTkxPQ0FMX0JJTkQ9ODgsCiBORVRfSVBWNF9JQ01QX1JB
VEVMSU1JVD04OSwKIE5FVF9JUFY0X0lDTVBfUkFURU1BU0s9OTAsCiBORVRfVENQX1RXX1JFVVNF
PTkxLAogTkVUX1RDUF9GUlRPPTkyLAogTkVUX1RDUF9MT1dfTEFURU5DWT05MywKIE5FVF9JUFY0
X0lQRlJBR19TRUNSRVRfSU5URVJWQUw9OTQsCiBORVRfSVBWNF9JR01QX01BWF9NU0Y9OTYsCiBO
RVRfVENQX05PX01FVFJJQ1NfU0FWRT05NywKIE5FVF9UQ1BfREVGQVVMVF9XSU5fU0NBTEU9MTA1
LAogTkVUX1RDUF9NT0RFUkFURV9SQ1ZCVUY9MTA2LAogTkVUX1RDUF9UU09fV0lOX0RJVklTT1I9
MTA3LAogTkVUX1RDUF9CSUNfQkVUQT0xMDgsCiBORVRfSVBWNF9JQ01QX0VSUk9SU19VU0VfSU5C
T1VORF9JRkFERFI9MTA5LAogTkVUX1RDUF9DT05HX0NPTlRST0w9MTEwLAogTkVUX1RDUF9BQkM9
MTExLAogTkVUX0lQVjRfSVBGUkFHX01BWF9ESVNUPTExMiwKICBORVRfVENQX01UVV9QUk9CSU5H
PTExMywKIE5FVF9UQ1BfQkFTRV9NU1M9MTE0LAogTkVUX0lQVjRfVENQX1dPUktBUk9VTkRfU0lH
TkVEX1dJTkRPV1M9MTE1LAogTkVUX1RDUF9ETUFfQ09QWUJSRUFLPTExNiwKIE5FVF9UQ1BfU0xP
V19TVEFSVF9BRlRFUl9JRExFPTExNywKIE5FVF9DSVBTT1Y0X0NBQ0hFX0VOQUJMRT0xMTgsCiBO
RVRfQ0lQU09WNF9DQUNIRV9CVUNLRVRfU0laRT0xMTksCiBORVRfQ0lQU09WNF9SQk1fT1BURk1U
PTEyMCwKIE5FVF9DSVBTT1Y0X1JCTV9TVFJJQ1RWQUxJRD0xMjEsCiBORVRfVENQX0FWQUlMX0NP
TkdfQ09OVFJPTD0xMjIsCiBORVRfVENQX0FMTE9XRURfQ09OR19DT05UUk9MPTEyMywKIE5FVF9U
Q1BfTUFYX1NTVEhSRVNIPTEyNCwKIE5FVF9UQ1BfRlJUT19SRVNQT05TRT0xMjUsCn07CgplbnVt
IHsKIE5FVF9JUFY0X1JPVVRFX0ZMVVNIPTEsCiBORVRfSVBWNF9ST1VURV9NSU5fREVMQVk9MiwK
IE5FVF9JUFY0X1JPVVRFX01BWF9ERUxBWT0zLAogTkVUX0lQVjRfUk9VVEVfR0NfVEhSRVNIPTQs
CiBORVRfSVBWNF9ST1VURV9NQVhfU0laRT01LAogTkVUX0lQVjRfUk9VVEVfR0NfTUlOX0lOVEVS
VkFMPTYsCiBORVRfSVBWNF9ST1VURV9HQ19USU1FT1VUPTcsCiBORVRfSVBWNF9ST1VURV9HQ19J
TlRFUlZBTD04LAogTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfTE9BRD05LAogTkVUX0lQVjRfUk9V
VEVfUkVESVJFQ1RfTlVNQkVSPTEwLAogTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfU0lMRU5DRT0x
MSwKIE5FVF9JUFY0X1JPVVRFX0VSUk9SX0NPU1Q9MTIsCiBORVRfSVBWNF9ST1VURV9FUlJPUl9C
VVJTVD0xMywKIE5FVF9JUFY0X1JPVVRFX0dDX0VMQVNUSUNJVFk9MTQsCiBORVRfSVBWNF9ST1VU
RV9NVFVfRVhQSVJFUz0xNSwKIE5FVF9JUFY0X1JPVVRFX01JTl9QTVRVPTE2LAogTkVUX0lQVjRf
Uk9VVEVfTUlOX0FEVk1TUz0xNywKIE5FVF9JUFY0X1JPVVRFX1NFQ1JFVF9JTlRFUlZBTD0xOCwK
IE5FVF9JUFY0X1JPVVRFX0dDX01JTl9JTlRFUlZBTF9NUz0xOSwKfTsKCmVudW0KewogTkVUX1BS
T1RPX0NPTkZfQUxMPS0yLAogTkVUX1BST1RPX0NPTkZfREVGQVVMVD0tMwoKCn07CgplbnVtCnsK
IE5FVF9JUFY0X0NPTkZfRk9SV0FSRElORz0xLAogTkVUX0lQVjRfQ09ORl9NQ19GT1JXQVJESU5H
PTIsCiBORVRfSVBWNF9DT05GX1BST1hZX0FSUD0zLAogTkVUX0lQVjRfQ09ORl9BQ0NFUFRfUkVE
SVJFQ1RTPTQsCiBORVRfSVBWNF9DT05GX1NFQ1VSRV9SRURJUkVDVFM9NSwKIE5FVF9JUFY0X0NP
TkZfU0VORF9SRURJUkVDVFM9NiwKIE5FVF9JUFY0X0NPTkZfU0hBUkVEX01FRElBPTcsCiBORVRf
SVBWNF9DT05GX1JQX0ZJTFRFUj04LAogTkVUX0lQVjRfQ09ORl9BQ0NFUFRfU09VUkNFX1JPVVRF
PTksCiBORVRfSVBWNF9DT05GX0JPT1RQX1JFTEFZPTEwLAogTkVUX0lQVjRfQ09ORl9MT0dfTUFS
VElBTlM9MTEsCiBORVRfSVBWNF9DT05GX1RBRz0xMiwKIE5FVF9JUFY0X0NPTkZfQVJQRklMVEVS
PTEzLAogTkVUX0lQVjRfQ09ORl9NRURJVU1fSUQ9MTQsCiBORVRfSVBWNF9DT05GX05PWEZSTT0x
NSwKIE5FVF9JUFY0X0NPTkZfTk9QT0xJQ1k9MTYsCiBORVRfSVBWNF9DT05GX0ZPUkNFX0lHTVBf
VkVSU0lPTj0xNywKIE5FVF9JUFY0X0NPTkZfQVJQX0FOTk9VTkNFPTE4LAogTkVUX0lQVjRfQ09O
Rl9BUlBfSUdOT1JFPTE5LAogTkVUX0lQVjRfQ09ORl9QUk9NT1RFX1NFQ09OREFSSUVTPTIwLAog
TkVUX0lQVjRfQ09ORl9BUlBfQUNDRVBUPTIxLAogTkVUX0lQVjRfQ09ORl9BUlBfTk9USUZZPTIy
LAp9OwoKCmVudW0KewogTkVUX0lQVjRfTkZfQ09OTlRSQUNLX01BWD0xLAogTkVUX0lQVjRfTkZf
Q09OTlRSQUNLX1RDUF9USU1FT1VUX1NZTl9TRU5UPTIsCiBORVRfSVBWNF9ORl9DT05OVFJBQ0tf
VENQX1RJTUVPVVRfU1lOX1JFQ1Y9MywKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfVElNRU9V
VF9FU1RBQkxJU0hFRD00LAogTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1RDUF9USU1FT1VUX0ZJTl9X
QUlUPTUsCiBORVRfSVBWNF9ORl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfQ0xPU0VfV0FJVD02LAog
TkVUX0lQVjRfTkZfQ09OTlRSQUNLX1RDUF9USU1FT1VUX0xBU1RfQUNLPTcsCiBORVRfSVBWNF9O
Rl9DT05OVFJBQ0tfVENQX1RJTUVPVVRfVElNRV9XQUlUPTgsCiBORVRfSVBWNF9ORl9DT05OVFJB
Q0tfVENQX1RJTUVPVVRfQ0xPU0U9OSwKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19VRFBfVElNRU9V
VD0xMCwKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19VRFBfVElNRU9VVF9TVFJFQU09MTEsCiBORVRf
SVBWNF9ORl9DT05OVFJBQ0tfSUNNUF9USU1FT1VUPTEyLAogTkVUX0lQVjRfTkZfQ09OTlRSQUNL
X0dFTkVSSUNfVElNRU9VVD0xMywKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19CVUNLRVRTPTE0LAog
TkVUX0lQVjRfTkZfQ09OTlRSQUNLX0xPR19JTlZBTElEPTE1LAogTkVUX0lQVjRfTkZfQ09OTlRS
QUNLX1RDUF9USU1FT1VUX01BWF9SRVRSQU5TPTE2LAogTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1RD
UF9MT09TRT0xNywKIE5FVF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfQkVfTElCRVJBTD0xOCwKIE5F
VF9JUFY0X05GX0NPTk5UUkFDS19UQ1BfTUFYX1JFVFJBTlM9MTksCiAgTkVUX0lQVjRfTkZfQ09O
TlRSQUNLX1NDVFBfVElNRU9VVF9DTE9TRUQ9MjAsCiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1ND
VFBfVElNRU9VVF9DT09LSUVfV0FJVD0yMSwKICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9U
SU1FT1VUX0NPT0tJRV9FQ0hPRUQ9MjIsCiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElN
RU9VVF9FU1RBQkxJU0hFRD0yMywKICBORVRfSVBWNF9ORl9DT05OVFJBQ0tfU0NUUF9USU1FT1VU
X1NIVVRET1dOX1NFTlQ9MjQsCiAgTkVUX0lQVjRfTkZfQ09OTlRSQUNLX1NDVFBfVElNRU9VVF9T
SFVURE9XTl9SRUNEPTI1LAogIE5FVF9JUFY0X05GX0NPTk5UUkFDS19TQ1RQX1RJTUVPVVRfU0hV
VERPV05fQUNLX1NFTlQ9MjYsCiBORVRfSVBWNF9ORl9DT05OVFJBQ0tfQ09VTlQ9MjcsCiBORVRf
SVBWNF9ORl9DT05OVFJBQ0tfQ0hFQ0tTVU09MjgsCn07CgoKZW51bSB7CiBORVRfSVBWNl9DT05G
PTE2LAogTkVUX0lQVjZfTkVJR0g9MTcsCiBORVRfSVBWNl9ST1VURT0xOCwKIE5FVF9JUFY2X0lD
TVA9MTksCiBORVRfSVBWNl9CSU5EVjZPTkxZPTIwLAogTkVUX0lQVjZfSVA2RlJBR19ISUdIX1RI
UkVTSD0yMSwKIE5FVF9JUFY2X0lQNkZSQUdfTE9XX1RIUkVTSD0yMiwKIE5FVF9JUFY2X0lQNkZS
QUdfVElNRT0yMywKIE5FVF9JUFY2X0lQNkZSQUdfU0VDUkVUX0lOVEVSVkFMPTI0LAogTkVUX0lQ
VjZfTUxEX01BWF9NU0Y9MjUsCn07CgplbnVtIHsKIE5FVF9JUFY2X1JPVVRFX0ZMVVNIPTEsCiBO
RVRfSVBWNl9ST1VURV9HQ19USFJFU0g9MiwKIE5FVF9JUFY2X1JPVVRFX01BWF9TSVpFPTMsCiBO
RVRfSVBWNl9ST1VURV9HQ19NSU5fSU5URVJWQUw9NCwKIE5FVF9JUFY2X1JPVVRFX0dDX1RJTUVP
VVQ9NSwKIE5FVF9JUFY2X1JPVVRFX0dDX0lOVEVSVkFMPTYsCiBORVRfSVBWNl9ST1VURV9HQ19F
TEFTVElDSVRZPTcsCiBORVRfSVBWNl9ST1VURV9NVFVfRVhQSVJFUz04LAogTkVUX0lQVjZfUk9V
VEVfTUlOX0FEVk1TUz05LAogTkVUX0lQVjZfUk9VVEVfR0NfTUlOX0lOVEVSVkFMX01TPTEwCn07
CgplbnVtIHsKIE5FVF9JUFY2X0ZPUldBUkRJTkc9MSwKIE5FVF9JUFY2X0hPUF9MSU1JVD0yLAog
TkVUX0lQVjZfTVRVPTMsCiBORVRfSVBWNl9BQ0NFUFRfUkE9NCwKIE5FVF9JUFY2X0FDQ0VQVF9S
RURJUkVDVFM9NSwKIE5FVF9JUFY2X0FVVE9DT05GPTYsCiBORVRfSVBWNl9EQURfVFJBTlNNSVRT
PTcsCiBORVRfSVBWNl9SVFJfU09MSUNJVFM9OCwKIE5FVF9JUFY2X1JUUl9TT0xJQ0lUX0lOVEVS
VkFMPTksCiBORVRfSVBWNl9SVFJfU09MSUNJVF9ERUxBWT0xMCwKIE5FVF9JUFY2X1VTRV9URU1Q
QUREUj0xMSwKIE5FVF9JUFY2X1RFTVBfVkFMSURfTEZUPTEyLAogTkVUX0lQVjZfVEVNUF9QUkVG
RVJFRF9MRlQ9MTMsCiBORVRfSVBWNl9SRUdFTl9NQVhfUkVUUlk9MTQsCiBORVRfSVBWNl9NQVhf
REVTWU5DX0ZBQ1RPUj0xNSwKIE5FVF9JUFY2X01BWF9BRERSRVNTRVM9MTYsCiBORVRfSVBWNl9G
T1JDRV9NTERfVkVSU0lPTj0xNywKIE5FVF9JUFY2X0FDQ0VQVF9SQV9ERUZSVFI9MTgsCiBORVRf
SVBWNl9BQ0NFUFRfUkFfUElORk89MTksCiBORVRfSVBWNl9BQ0NFUFRfUkFfUlRSX1BSRUY9MjAs
CiBORVRfSVBWNl9SVFJfUFJPQkVfSU5URVJWQUw9MjEsCiBORVRfSVBWNl9BQ0NFUFRfUkFfUlRf
SU5GT19NQVhfUExFTj0yMiwKIE5FVF9JUFY2X1BST1hZX05EUD0yMywKIE5FVF9JUFY2X0FDQ0VQ
VF9TT1VSQ0VfUk9VVEU9MjUsCiBORVRfSVBWNl9BQ0NFUFRfUkFfRlJPTV9MT0NBTD0yNiwKIE5F
VF9JUFY2X0FDQ0VQVF9SQV9SVF9JTkZPX01JTl9QTEVOPTI3LAogX19ORVRfSVBWNl9NQVgKfTsK
CgplbnVtIHsKIE5FVF9JUFY2X0lDTVBfUkFURUxJTUlUID0gMSwKIE5FVF9JUFY2X0lDTVBfRUNI
T19JR05PUkVfQUxMID0gMgp9OwoKCmVudW0gewogTkVUX05FSUdIX01DQVNUX1NPTElDSVQ9MSwK
IE5FVF9ORUlHSF9VQ0FTVF9TT0xJQ0lUPTIsCiBORVRfTkVJR0hfQVBQX1NPTElDSVQ9MywKIE5F
VF9ORUlHSF9SRVRSQU5TX1RJTUU9NCwKIE5FVF9ORUlHSF9SRUFDSEFCTEVfVElNRT01LAogTkVU
X05FSUdIX0RFTEFZX1BST0JFX1RJTUU9NiwKIE5FVF9ORUlHSF9HQ19TVEFMRV9USU1FPTcsCiBO
RVRfTkVJR0hfVU5SRVNfUUxFTj04LAogTkVUX05FSUdIX1BST1hZX1FMRU49OSwKIE5FVF9ORUlH
SF9BTllDQVNUX0RFTEFZPTEwLAogTkVUX05FSUdIX1BST1hZX0RFTEFZPTExLAogTkVUX05FSUdI
X0xPQ0tUSU1FPTEyLAogTkVUX05FSUdIX0dDX0lOVEVSVkFMPTEzLAogTkVUX05FSUdIX0dDX1RI
UkVTSDE9MTQsCiBORVRfTkVJR0hfR0NfVEhSRVNIMj0xNSwKIE5FVF9ORUlHSF9HQ19USFJFU0gz
PTE2LAogTkVUX05FSUdIX1JFVFJBTlNfVElNRV9NUz0xNywKIE5FVF9ORUlHSF9SRUFDSEFCTEVf
VElNRV9NUz0xOCwKfTsKCgplbnVtIHsKIE5FVF9EQ0NQX0RFRkFVTFQ9MSwKfTsKCgplbnVtIHsK
IE5FVF9JUFhfUFBST1BfQlJPQURDQVNUSU5HPTEsCiBORVRfSVBYX0ZPUldBUkRJTkc9Mgp9OwoK
CmVudW0gewogTkVUX0xMQzI9MSwKIE5FVF9MTENfU1RBVElPTj0yLAp9OwoKCmVudW0gewogTkVU
X0xMQzJfVElNRU9VVD0xLAp9OwoKCmVudW0gewogTkVUX0xMQ19TVEFUSU9OX0FDS19USU1FT1VU
PTEsCn07CgoKZW51bSB7CiBORVRfTExDMl9BQ0tfVElNRU9VVD0xLAogTkVUX0xMQzJfUF9USU1F
T1VUPTIsCiBORVRfTExDMl9SRUpfVElNRU9VVD0zLAogTkVUX0xMQzJfQlVTWV9USU1FT1VUPTQs
Cn07CgoKZW51bSB7CiBORVRfQVRBTEtfQUFSUF9FWFBJUllfVElNRT0xLAogTkVUX0FUQUxLX0FB
UlBfVElDS19USU1FPTIsCiBORVRfQVRBTEtfQUFSUF9SRVRSQU5TTUlUX0xJTUlUPTMsCiBORVRf
QVRBTEtfQUFSUF9SRVNPTFZFX1RJTUU9NAp9OwoKCgplbnVtIHsKIE5FVF9ORVRST01fREVGQVVM
VF9QQVRIX1FVQUxJVFk9MSwKIE5FVF9ORVRST01fT0JTT0xFU0NFTkNFX0NPVU5UX0lOSVRJQUxJ
U0VSPTIsCiBORVRfTkVUUk9NX05FVFdPUktfVFRMX0lOSVRJQUxJU0VSPTMsCiBORVRfTkVUUk9N
X1RSQU5TUE9SVF9USU1FT1VUPTQsCiBORVRfTkVUUk9NX1RSQU5TUE9SVF9NQVhJTVVNX1RSSUVT
PTUsCiBORVRfTkVUUk9NX1RSQU5TUE9SVF9BQ0tOT1dMRURHRV9ERUxBWT02LAogTkVUX05FVFJP
TV9UUkFOU1BPUlRfQlVTWV9ERUxBWT03LAogTkVUX05FVFJPTV9UUkFOU1BPUlRfUkVRVUVTVEVE
X1dJTkRPV19TSVpFPTgsCiBORVRfTkVUUk9NX1RSQU5TUE9SVF9OT19BQ1RJVklUWV9USU1FT1VU
PTksCiBORVRfTkVUUk9NX1JPVVRJTkdfQ09OVFJPTD0xMCwKIE5FVF9ORVRST01fTElOS19GQUlM
U19DT1VOVD0xMSwKIE5FVF9ORVRST01fUkVTRVQ9MTIKfTsKCgplbnVtIHsKIE5FVF9BWDI1X0lQ
X0RFRkFVTFRfTU9ERT0xLAogTkVUX0FYMjVfREVGQVVMVF9NT0RFPTIsCiBORVRfQVgyNV9CQUNL
T0ZGX1RZUEU9MywKIE5FVF9BWDI1X0NPTk5FQ1RfTU9ERT00LAogTkVUX0FYMjVfU1RBTkRBUkRf
V0lORE9XPTUsCiBORVRfQVgyNV9FWFRFTkRFRF9XSU5ET1c9NiwKIE5FVF9BWDI1X1QxX1RJTUVP
VVQ9NywKIE5FVF9BWDI1X1QyX1RJTUVPVVQ9OCwKIE5FVF9BWDI1X1QzX1RJTUVPVVQ9OSwKIE5F
VF9BWDI1X0lETEVfVElNRU9VVD0xMCwKIE5FVF9BWDI1X04yPTExLAogTkVUX0FYMjVfUEFDTEVO
PTEyLAogTkVUX0FYMjVfUFJPVE9DT0w9MTMsCiBORVRfQVgyNV9EQU1BX1NMQVZFX1RJTUVPVVQ9
MTQKfTsKCgplbnVtIHsKIE5FVF9ST1NFX1JFU1RBUlRfUkVRVUVTVF9USU1FT1VUPTEsCiBORVRf
Uk9TRV9DQUxMX1JFUVVFU1RfVElNRU9VVD0yLAogTkVUX1JPU0VfUkVTRVRfUkVRVUVTVF9USU1F
T1VUPTMsCiBORVRfUk9TRV9DTEVBUl9SRVFVRVNUX1RJTUVPVVQ9NCwKIE5FVF9ST1NFX0FDS19I
T0xEX0JBQ0tfVElNRU9VVD01LAogTkVUX1JPU0VfUk9VVElOR19DT05UUk9MPTYsCiBORVRfUk9T
RV9MSU5LX0ZBSUxfVElNRU9VVD03LAogTkVUX1JPU0VfTUFYX1ZDUz04LAogTkVUX1JPU0VfV0lO
RE9XX1NJWkU9OSwKIE5FVF9ST1NFX05PX0FDVElWSVRZX1RJTUVPVVQ9MTAKfTsKCgplbnVtIHsK
IE5FVF9YMjVfUkVTVEFSVF9SRVFVRVNUX1RJTUVPVVQ9MSwKIE5FVF9YMjVfQ0FMTF9SRVFVRVNU
X1RJTUVPVVQ9MiwKIE5FVF9YMjVfUkVTRVRfUkVRVUVTVF9USU1FT1VUPTMsCiBORVRfWDI1X0NM
RUFSX1JFUVVFU1RfVElNRU9VVD00LAogTkVUX1gyNV9BQ0tfSE9MRF9CQUNLX1RJTUVPVVQ9NSwK
IE5FVF9YMjVfRk9SV0FSRD02Cn07CgoKZW51bQp7CiBORVRfVFJfUklGX1RJTUVPVVQ9MQp9OwoK
CmVudW0gewogTkVUX0RFQ05FVF9OT0RFX1RZUEUgPSAxLAogTkVUX0RFQ05FVF9OT0RFX0FERFJF
U1MgPSAyLAogTkVUX0RFQ05FVF9OT0RFX05BTUUgPSAzLAogTkVUX0RFQ05FVF9ERUZBVUxUX0RF
VklDRSA9IDQsCiBORVRfREVDTkVUX1RJTUVfV0FJVCA9IDUsCiBORVRfREVDTkVUX0ROX0NPVU5U
ID0gNiwKIE5FVF9ERUNORVRfRElfQ09VTlQgPSA3LAogTkVUX0RFQ05FVF9EUl9DT1VOVCA9IDgs
CiBORVRfREVDTkVUX0RTVF9HQ19JTlRFUlZBTCA9IDksCiBORVRfREVDTkVUX0NPTkYgPSAxMCwK
IE5FVF9ERUNORVRfTk9fRkNfTUFYX0NXTkQgPSAxMSwKIE5FVF9ERUNORVRfTUVNID0gMTIsCiBO
RVRfREVDTkVUX1JNRU0gPSAxMywKIE5FVF9ERUNORVRfV01FTSA9IDE0LAogTkVUX0RFQ05FVF9E
RUJVR19MRVZFTCA9IDI1NQp9OwoKCmVudW0gewogTkVUX0RFQ05FVF9DT05GX0xPT1BCQUNLID0g
LTIsCiBORVRfREVDTkVUX0NPTkZfRERDTVAgPSAtMywKIE5FVF9ERUNORVRfQ09ORl9QUFAgPSAt
NCwKIE5FVF9ERUNORVRfQ09ORl9YMjUgPSAtNSwKIE5FVF9ERUNORVRfQ09ORl9HUkUgPSAtNiwK
IE5FVF9ERUNORVRfQ09ORl9FVEhFUiA9IC03CgoKfTsKCgplbnVtIHsKIE5FVF9ERUNORVRfQ09O
Rl9ERVZfUFJJT1JJVFkgPSAxLAogTkVUX0RFQ05FVF9DT05GX0RFVl9UMSA9IDIsCiBORVRfREVD
TkVUX0NPTkZfREVWX1QyID0gMywKIE5FVF9ERUNORVRfQ09ORl9ERVZfVDMgPSA0LAogTkVUX0RF
Q05FVF9DT05GX0RFVl9GT1JXQVJESU5HID0gNSwKIE5FVF9ERUNORVRfQ09ORl9ERVZfQkxLU0la
RSA9IDYsCiBORVRfREVDTkVUX0NPTkZfREVWX1NUQVRFID0gNwp9OwoKCmVudW0gewogTkVUX1ND
VFBfUlRPX0lOSVRJQUwgPSAxLAogTkVUX1NDVFBfUlRPX01JTiA9IDIsCiBORVRfU0NUUF9SVE9f
TUFYID0gMywKIE5FVF9TQ1RQX1JUT19BTFBIQSA9IDQsCiBORVRfU0NUUF9SVE9fQkVUQSA9IDUs
CiBORVRfU0NUUF9WQUxJRF9DT09LSUVfTElGRSA9IDYsCiBORVRfU0NUUF9BU1NPQ0lBVElPTl9N
QVhfUkVUUkFOUyA9IDcsCiBORVRfU0NUUF9QQVRIX01BWF9SRVRSQU5TID0gOCwKIE5FVF9TQ1RQ
X01BWF9JTklUX1JFVFJBTlNNSVRTID0gOSwKIE5FVF9TQ1RQX0hCX0lOVEVSVkFMID0gMTAsCiBO
RVRfU0NUUF9QUkVTRVJWRV9FTkFCTEUgPSAxMSwKIE5FVF9TQ1RQX01BWF9CVVJTVCA9IDEyLAog
TkVUX1NDVFBfQURESVBfRU5BQkxFID0gMTMsCiBORVRfU0NUUF9QUlNDVFBfRU5BQkxFID0gMTQs
CiBORVRfU0NUUF9TTkRCVUZfUE9MSUNZID0gMTUsCiBORVRfU0NUUF9TQUNLX1RJTUVPVVQgPSAx
NiwKIE5FVF9TQ1RQX1JDVkJVRl9QT0xJQ1kgPSAxNywKfTsKCgplbnVtIHsKIE5FVF9CUklER0Vf
TkZfQ0FMTF9BUlBUQUJMRVMgPSAxLAogTkVUX0JSSURHRV9ORl9DQUxMX0lQVEFCTEVTID0gMiwK
IE5FVF9CUklER0VfTkZfQ0FMTF9JUDZUQUJMRVMgPSAzLAogTkVUX0JSSURHRV9ORl9GSUxURVJf
VkxBTl9UQUdHRUQgPSA0LAogTkVUX0JSSURHRV9ORl9GSUxURVJfUFBQT0VfVEFHR0VEID0gNSwK
fTsKCgoKZW51bQp7CiBGU19OUklOT0RFPTEsCiBGU19TVEFUSU5PREU9MiwKIEZTX01BWElOT0RF
PTMsCiBGU19OUkRRVU9UPTQsCiBGU19NQVhEUVVPVD01LAogRlNfTlJGSUxFPTYsCiBGU19NQVhG
SUxFPTcsCiBGU19ERU5UUlk9OCwKIEZTX05SU1VQRVI9OSwKIEZTX01BWFNVUEVSPTEwLAogRlNf
T1ZFUkZMT1dVSUQ9MTEsCiBGU19PVkVSRkxPV0dJRD0xMiwKIEZTX0xFQVNFUz0xMywKIEZTX0RJ
Ul9OT1RJRlk9MTQsCiBGU19MRUFTRV9USU1FPTE1LAogRlNfRFFTVEFUUz0xNiwKIEZTX1hGUz0x
NywKIEZTX0FJT19OUj0xOCwKIEZTX0FJT19NQVhfTlI9MTksCiBGU19JTk9USUZZPTIwLAogRlNf
T0NGUzI9OTg4LAp9OwoKCmVudW0gewogRlNfRFFfTE9PS1VQUyA9IDEsCiBGU19EUV9EUk9QUyA9
IDIsCiBGU19EUV9SRUFEUyA9IDMsCiBGU19EUV9XUklURVMgPSA0LAogRlNfRFFfQ0FDSEVfSElU
UyA9IDUsCiBGU19EUV9BTExPQ0FURUQgPSA2LAogRlNfRFFfRlJFRSA9IDcsCiBGU19EUV9TWU5D
UyA9IDgsCiBGU19EUV9XQVJOSU5HUyA9IDksCn07CgoKCgplbnVtIHsKIERFVl9DRFJPTT0xLAog
REVWX0hXTU9OPTIsCiBERVZfUEFSUE9SVD0zLAogREVWX1JBSUQ9NCwKIERFVl9NQUNfSElEPTUs
CiBERVZfU0NTST02LAogREVWX0lQTUk9NywKfTsKCgplbnVtIHsKIERFVl9DRFJPTV9JTkZPPTEs
CiBERVZfQ0RST01fQVVUT0NMT1NFPTIsCiBERVZfQ0RST01fQVVUT0VKRUNUPTMsCiBERVZfQ0RS
T01fREVCVUc9NCwKIERFVl9DRFJPTV9MT0NLPTUsCiBERVZfQ0RST01fQ0hFQ0tfTUVESUE9Ngp9
OwoKCmVudW0gewogREVWX1BBUlBPUlRfREVGQVVMVD0tMwp9OwoKCmVudW0gewogREVWX1JBSURf
U1BFRURfTElNSVRfTUlOPTEsCiBERVZfUkFJRF9TUEVFRF9MSU1JVF9NQVg9Mgp9OwoKCmVudW0g
ewogREVWX1BBUlBPUlRfREVGQVVMVF9USU1FU0xJQ0U9MSwKIERFVl9QQVJQT1JUX0RFRkFVTFRf
U1BJTlRJTUU9Mgp9OwoKCmVudW0gewogREVWX1BBUlBPUlRfU1BJTlRJTUU9MSwKIERFVl9QQVJQ
T1JUX0JBU0VfQUREUj0yLAogREVWX1BBUlBPUlRfSVJRPTMsCiBERVZfUEFSUE9SVF9ETUE9NCwK
IERFVl9QQVJQT1JUX01PREVTPTUsCiBERVZfUEFSUE9SVF9ERVZJQ0VTPTYsCiBERVZfUEFSUE9S
VF9BVVRPUFJPQkU9MTYKfTsKCgplbnVtIHsKIERFVl9QQVJQT1JUX0RFVklDRVNfQUNUSVZFPS0z
LAp9OwoKCmVudW0gewogREVWX1BBUlBPUlRfREVWSUNFX1RJTUVTTElDRT0xLAp9OwoKCmVudW0g
ewogREVWX01BQ19ISURfS0VZQk9BUkRfU0VORFNfTElOVVhfS0VZQ09ERVM9MSwKIERFVl9NQUNf
SElEX0tFWUJPQVJEX0xPQ0tfS0VZQ09ERVM9MiwKIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTl9F
TVVMQVRJT049MywKIERFVl9NQUNfSElEX01PVVNFX0JVVFRPTjJfS0VZQ09ERT00LAogREVWX01B
Q19ISURfTU9VU0VfQlVUVE9OM19LRVlDT0RFPTUsCiBERVZfTUFDX0hJRF9BREJfTU9VU0VfU0VO
RFNfS0VZQ09ERVM9Ngp9OwoKCmVudW0gewogREVWX1NDU0lfTE9HR0lOR19MRVZFTD0xLAp9OwoK
CmVudW0gewogREVWX0lQTUlfUE9XRVJPRkZfUE9XRVJDWUNMRT0xLAp9OwoKCmVudW0KewogQUJJ
X0RFRkhBTkRMRVJfQ09GRj0xLAogQUJJX0RFRkhBTkRMRVJfRUxGPTIsCiBBQklfREVGSEFORExF
Ul9MQ0FMTDc9MywKIEFCSV9ERUZIQU5ETEVSX0xJQkNTTz00LAogQUJJX1RSQUNFPTUsCiBBQklf
RkFLRV9VVFNOQU1FPTYsCn07CiMgMzEgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIgMgoKCnN0
cnVjdCBjb21wbGV0aW9uOwpzdHJ1Y3QgY3RsX3RhYmxlOwpzdHJ1Y3QgbnNwcm94eTsKc3RydWN0
IGN0bF90YWJsZV9yb290OwpzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlcjsKc3RydWN0IGN0bF9kaXI7
CgoKCgoKCmV4dGVybiBjb25zdCBpbnQgc3lzY3RsX3ZhbHNbXTsKCnR5cGVkZWYgaW50IHByb2Nf
aGFuZGxlciAoc3RydWN0IGN0bF90YWJsZSAqY3RsLCBpbnQgd3JpdGUsCiAgICAgdm9pZCAqYnVm
ZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcyk7CgpleHRlcm4gaW50IHByb2NfZG9zdHJp
bmcoc3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3Qg
Kik7CmV4dGVybiBpbnQgcHJvY19kb2ludHZlYyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAg
IHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKZXh0ZXJuIGludCBwcm9jX2RvdWludHZlYyhz
dHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsK
ZXh0ZXJuIGludCBwcm9jX2RvaW50dmVjX21pbm1heChzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwK
ICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKZXh0ZXJuIGludCBwcm9jX2RvdWludHZl
Y19taW5tYXgoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKICAgICB2b2lkICpi
dWZmZXIsIHNpemVfdCAqbGVucCwKICAgICBsb2ZmX3QgKnBwb3MpOwpleHRlcm4gaW50IHByb2Nf
ZG9pbnR2ZWNfamlmZmllcyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAgICB2b2lkICosIHNp
emVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBpbnQgcHJvY19kb2ludHZlY191c2VyaHpfamlmZmll
cyhzdHJ1Y3QgY3RsX3RhYmxlICosIGludCwKICAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3Qg
Kik7CmV4dGVybiBpbnQgcHJvY19kb2ludHZlY19tc19qaWZmaWVzKHN0cnVjdCBjdGxfdGFibGUg
KiwgaW50LAogICAgICAgIHZvaWQgKiwgc2l6ZV90ICosIGxvZmZfdCAqKTsKZXh0ZXJuIGludCBw
cm9jX2RvdWxvbmd2ZWNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKiwgaW50LAogICAgICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBpbnQgcHJvY19kb3Vsb25ndmVjX21zX2pp
ZmZpZXNfbWlubWF4KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQsCiAgICAgICAgICB2b2lk
ICosIHNpemVfdCAqLCBsb2ZmX3QgKik7CmV4dGVybiBpbnQgcHJvY19kb19sYXJnZV9iaXRtYXAo
c3RydWN0IGN0bF90YWJsZSAqLCBpbnQsCiAgICB2b2lkICosIHNpemVfdCAqLCBsb2ZmX3QgKik7
CmV4dGVybiBpbnQgcHJvY19kb19zdGF0aWNfa2V5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBp
bnQgd3JpdGUsCiAgICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAogICAgICAgICBs
b2ZmX3QgKnBwb3MpOwojIDEwNSAiLi9pbmNsdWRlL2xpbnV4L3N5c2N0bC5oIgpzdHJ1Y3QgY3Rs
X3RhYmxlX3BvbGwgewogYXRvbWljX3QgZXZlbnQ7CiB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0Owp9
OwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCAqcHJvY19zeXNfcG9sbF9ldmVudChzdHJ1Y3QgY3RsX3RhYmxlX3BvbGwgKnBvbGwp
CnsKIHJldHVybiAodm9pZCAqKSh1bnNpZ25lZCBsb25nKWF0b21pY19yZWFkKCZwb2xsLT5ldmVu
dCk7Cn0KIyAxMjMgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKc3RydWN0IGN0bF90YWJsZSB7
CiBjb25zdCBjaGFyICpwcm9jbmFtZTsKIHZvaWQgKmRhdGE7CiBpbnQgbWF4bGVuOwogdW1vZGVf
dCBtb2RlOwogc3RydWN0IGN0bF90YWJsZSAqY2hpbGQ7CiBwcm9jX2hhbmRsZXIgKnByb2NfaGFu
ZGxlcjsKIHN0cnVjdCBjdGxfdGFibGVfcG9sbCAqcG9sbDsKIHZvaWQgKmV4dHJhMTsKIHZvaWQg
KmV4dHJhMjsKfSBfX2F0dHJpYnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpzdHJ1Y3Qg
Y3RsX25vZGUgewogc3RydWN0IHJiX25vZGUgbm9kZTsKIHN0cnVjdCBjdGxfdGFibGVfaGVhZGVy
ICpoZWFkZXI7Cn07CgoKCnN0cnVjdCBjdGxfdGFibGVfaGVhZGVyIHsKIHVuaW9uIHsKICBzdHJ1
Y3QgewogICBzdHJ1Y3QgY3RsX3RhYmxlICpjdGxfdGFibGU7CiAgIGludCB1c2VkOwogICBpbnQg
Y291bnQ7CiAgIGludCBucmVnOwogIH07CiAgc3RydWN0IGNhbGxiYWNrX2hlYWQgcmN1OwogfTsK
IHN0cnVjdCBjb21wbGV0aW9uICp1bnJlZ2lzdGVyaW5nOwogc3RydWN0IGN0bF90YWJsZSAqY3Rs
X3RhYmxlX2FyZzsKIHN0cnVjdCBjdGxfdGFibGVfcm9vdCAqcm9vdDsKIHN0cnVjdCBjdGxfdGFi
bGVfc2V0ICpzZXQ7CiBzdHJ1Y3QgY3RsX2RpciAqcGFyZW50Owogc3RydWN0IGN0bF9ub2RlICpu
b2RlOwogc3RydWN0IGhsaXN0X2hlYWQgaW5vZGVzOwp9OwoKc3RydWN0IGN0bF9kaXIgewoKIHN0
cnVjdCBjdGxfdGFibGVfaGVhZGVyIGhlYWRlcjsKIHN0cnVjdCByYl9yb290IHJvb3Q7Cn07Cgpz
dHJ1Y3QgY3RsX3RhYmxlX3NldCB7CiBpbnQgKCppc19zZWVuKShzdHJ1Y3QgY3RsX3RhYmxlX3Nl
dCAqKTsKIHN0cnVjdCBjdGxfZGlyIGRpcjsKfTsKCnN0cnVjdCBjdGxfdGFibGVfcm9vdCB7CiBz
dHJ1Y3QgY3RsX3RhYmxlX3NldCBkZWZhdWx0X3NldDsKIHN0cnVjdCBjdGxfdGFibGVfc2V0ICoo
Kmxvb2t1cCkoc3RydWN0IGN0bF90YWJsZV9yb290ICpyb290KTsKIHZvaWQgKCpzZXRfb3duZXJz
aGlwKShzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqaGVhZCwKICAgICAgICAgc3RydWN0IGN0bF90
YWJsZSAqdGFibGUsCiAgICAgICAgIGt1aWRfdCAqdWlkLCBrZ2lkX3QgKmdpZCk7CiBpbnQgKCpw
ZXJtaXNzaW9ucykoc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKmhlYWQsIHN0cnVjdCBjdGxfdGFi
bGUgKnRhYmxlKTsKfTsKCgpzdHJ1Y3QgY3RsX3BhdGggewogY29uc3QgY2hhciAqcHJvY25hbWU7
Cn07CgoKCnZvaWQgcHJvY19zeXNfcG9sbF9ub3RpZnkoc3RydWN0IGN0bF90YWJsZV9wb2xsICpw
b2xsKTsKCmV4dGVybiB2b2lkIHNldHVwX3N5c2N0bF9zZXQoc3RydWN0IGN0bF90YWJsZV9zZXQg
KnAsCiBzdHJ1Y3QgY3RsX3RhYmxlX3Jvb3QgKnJvb3QsCiBpbnQgKCppc19zZWVuKShzdHJ1Y3Qg
Y3RsX3RhYmxlX3NldCAqKSk7CmV4dGVybiB2b2lkIHJldGlyZV9zeXNjdGxfc2V0KHN0cnVjdCBj
dGxfdGFibGVfc2V0ICpzZXQpOwoKc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKl9fcmVnaXN0ZXJf
c3lzY3RsX3RhYmxlKAogc3RydWN0IGN0bF90YWJsZV9zZXQgKnNldCwKIGNvbnN0IGNoYXIgKnBh
dGgsIHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlKTsKc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKl9f
cmVnaXN0ZXJfc3lzY3RsX3BhdGhzKAogc3RydWN0IGN0bF90YWJsZV9zZXQgKnNldCwKIGNvbnN0
IHN0cnVjdCBjdGxfcGF0aCAqcGF0aCwgc3RydWN0IGN0bF90YWJsZSAqdGFibGUpOwpzdHJ1Y3Qg
Y3RsX3RhYmxlX2hlYWRlciAqcmVnaXN0ZXJfc3lzY3RsKGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVj
dCBjdGxfdGFibGUgKnRhYmxlKTsKc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKnJlZ2lzdGVyX3N5
c2N0bF90YWJsZShzdHJ1Y3QgY3RsX3RhYmxlICogdGFibGUpOwpzdHJ1Y3QgY3RsX3RhYmxlX2hl
YWRlciAqcmVnaXN0ZXJfc3lzY3RsX3BhdGhzKGNvbnN0IHN0cnVjdCBjdGxfcGF0aCAqcGF0aCwK
ICAgICAgc3RydWN0IGN0bF90YWJsZSAqdGFibGUpOwoKdm9pZCB1bnJlZ2lzdGVyX3N5c2N0bF90
YWJsZShzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqIHRhYmxlKTsKCmV4dGVybiBpbnQgc3lzY3Rs
X2luaXQodm9pZCk7CgpleHRlcm4gc3RydWN0IGN0bF90YWJsZSBzeXNjdGxfbW91bnRfcG9pbnRb
XTsKIyAyNDEgIi4vaW5jbHVkZS9saW51eC9zeXNjdGwuaCIKaW50IHN5c2N0bF9tYXhfdGhyZWFk
cyhzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAogICAgICAgICB2b2lkICpidWZm
ZXIsIHNpemVfdCAqbGVucCwgbG9mZl90ICpwcG9zKTsKIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2tl
eS5oIiAyCgoKIyAxICIuL2luY2x1ZGUvbGludXgvYXNzb2NfYXJyYXkuaCIgMQojIDIyICIuL2lu
Y2x1ZGUvbGludXgvYXNzb2NfYXJyYXkuaCIKc3RydWN0IGFzc29jX2FycmF5IHsKIHN0cnVjdCBh
c3NvY19hcnJheV9wdHIgKnJvb3Q7CiB1bnNpZ25lZCBsb25nIG5yX2xlYXZlc19vbl90cmVlOwp9
OwoKCgoKc3RydWN0IGFzc29jX2FycmF5X29wcyB7CgogdW5zaWduZWQgbG9uZyAoKmdldF9rZXlf
Y2h1bmspKGNvbnN0IHZvaWQgKmluZGV4X2tleSwgaW50IGxldmVsKTsKCgogdW5zaWduZWQgbG9u
ZyAoKmdldF9vYmplY3Rfa2V5X2NodW5rKShjb25zdCB2b2lkICpvYmplY3QsIGludCBsZXZlbCk7
CgoKIGJvb2wgKCpjb21wYXJlX29iamVjdCkoY29uc3Qgdm9pZCAqb2JqZWN0LCBjb25zdCB2b2lk
ICppbmRleF9rZXkpOwoKCgoKIGludCAoKmRpZmZfb2JqZWN0cykoY29uc3Qgdm9pZCAqb2JqZWN0
LCBjb25zdCB2b2lkICppbmRleF9rZXkpOwoKCiB2b2lkICgqZnJlZV9vYmplY3QpKHZvaWQgKm9i
amVjdCk7Cn07CgoKCgpzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdDsKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgYXNzb2NfYXJyYXlf
aW5pdChzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5KQp7CiBhcnJheS0+cm9vdCA9ICgodm9pZCAq
KTApOwogYXJyYXktPm5yX2xlYXZlc19vbl90cmVlID0gMDsKfQoKZXh0ZXJuIGludCBhc3NvY19h
cnJheV9pdGVyYXRlKGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheSAqYXJyYXksCiAgICAgICAgICBp
bnQgKCppdGVyYXRvcikoY29uc3Qgdm9pZCAqb2JqZWN0LAogICAgICAgICAgICB2b2lkICppdGVy
YXRvcl9kYXRhKSwKICAgICAgICAgIHZvaWQgKml0ZXJhdG9yX2RhdGEpOwpleHRlcm4gdm9pZCAq
YXNzb2NfYXJyYXlfZmluZChjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5LAogICAgICAg
ICBjb25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMsCiAgICAgICAgIGNvbnN0IHZvaWQg
KmluZGV4X2tleSk7CmV4dGVybiB2b2lkIGFzc29jX2FycmF5X2Rlc3Ryb3koc3RydWN0IGFzc29j
X2FycmF5ICphcnJheSwKICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMgKm9wcyk7CmV4
dGVybiBzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqYXNzb2NfYXJyYXlfaW5zZXJ0KHN0cnVjdCBh
c3NvY19hcnJheSAqYXJyYXksCiAgICAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMg
Km9wcywKICAgICAgICAgY29uc3Qgdm9pZCAqaW5kZXhfa2V5LAogICAgICAgICB2b2lkICpvYmpl
Y3QpOwpleHRlcm4gdm9pZCBhc3NvY19hcnJheV9pbnNlcnRfc2V0X29iamVjdChzdHJ1Y3QgYXNz
b2NfYXJyYXlfZWRpdCAqZWRpdCwKICAgICAgIHZvaWQgKm9iamVjdCk7CmV4dGVybiBzdHJ1Y3Qg
YXNzb2NfYXJyYXlfZWRpdCAqYXNzb2NfYXJyYXlfZGVsZXRlKHN0cnVjdCBhc3NvY19hcnJheSAq
YXJyYXksCiAgICAgICAgIGNvbnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMgKm9wcywKICAgICAg
ICAgY29uc3Qgdm9pZCAqaW5kZXhfa2V5KTsKZXh0ZXJuIHN0cnVjdCBhc3NvY19hcnJheV9lZGl0
ICphc3NvY19hcnJheV9jbGVhcihzdHJ1Y3QgYXNzb2NfYXJyYXkgKmFycmF5LAogICAgICAgIGNv
bnN0IHN0cnVjdCBhc3NvY19hcnJheV9vcHMgKm9wcyk7CmV4dGVybiB2b2lkIGFzc29jX2FycmF5
X2FwcGx5X2VkaXQoc3RydWN0IGFzc29jX2FycmF5X2VkaXQgKmVkaXQpOwpleHRlcm4gdm9pZCBh
c3NvY19hcnJheV9jYW5jZWxfZWRpdChzdHJ1Y3QgYXNzb2NfYXJyYXlfZWRpdCAqZWRpdCk7CmV4
dGVybiBpbnQgYXNzb2NfYXJyYXlfZ2Moc3RydWN0IGFzc29jX2FycmF5ICphcnJheSwKICAgICBj
b25zdCBzdHJ1Y3QgYXNzb2NfYXJyYXlfb3BzICpvcHMsCiAgICAgYm9vbCAoKml0ZXJhdG9yKSh2
b2lkICpvYmplY3QsIHZvaWQgKml0ZXJhdG9yX2RhdGEpLAogICAgIHZvaWQgKml0ZXJhdG9yX2Rh
dGEpOwojIDIxICIuL2luY2x1ZGUvbGludXgva2V5LmgiIDIKCgoKCgoKCnR5cGVkZWYgaW50MzJf
dCBrZXlfc2VyaWFsX3Q7CgoKdHlwZWRlZiB1aW50MzJfdCBrZXlfcGVybV90OwoKc3RydWN0IGtl
eTsKc3RydWN0IG5ldDsKIyA3NCAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgpzdHJ1Y3Qgc2VxX2Zp
bGU7CnN0cnVjdCB1c2VyX3N0cnVjdDsKc3RydWN0IHNpZ25hbF9zdHJ1Y3Q7CnN0cnVjdCBjcmVk
OwoKc3RydWN0IGtleV90eXBlOwpzdHJ1Y3Qga2V5X293bmVyOwpzdHJ1Y3Qga2V5X3RhZzsKc3Ry
dWN0IGtleXJpbmdfbGlzdDsKc3RydWN0IGtleXJpbmdfbmFtZTsKCnN0cnVjdCBrZXlfdGFnIHsK
IHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKIHJlZmNvdW50X3QgdXNhZ2U7CiBib29sIHJlbW92
ZWQ7Cn07CgpzdHJ1Y3Qga2V5cmluZ19pbmRleF9rZXkgewoKIHVuc2lnbmVkIGxvbmcgaGFzaDsK
IHVuaW9uIHsKICBzdHJ1Y3QgewoKICAgdTE2IGRlc2NfbGVuOwogICBjaGFyIGRlc2Nbc2l6ZW9m
KGxvbmcpIC0gMl07CgoKCgogIH07CiAgdW5zaWduZWQgbG9uZyB4OwogfTsKIHN0cnVjdCBrZXlf
dHlwZSAqdHlwZTsKIHN0cnVjdCBrZXlfdGFnICpkb21haW5fdGFnOwogY29uc3QgY2hhciAqZGVz
Y3JpcHRpb247Cn07Cgp1bmlvbiBrZXlfcGF5bG9hZCB7CiB2b2lkICpyY3VfZGF0YTA7CiB2b2lk
ICpkYXRhWzRdOwp9OwojIDEzMCAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgp0eXBlZGVmIHN0cnVj
dCBfX2tleV9yZWZlcmVuY2Vfd2l0aF9hdHRyaWJ1dGVzICprZXlfcmVmX3Q7CgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBrZXlfcmVmX3Qg
bWFrZV9rZXlfcmVmKGNvbnN0IHN0cnVjdCBrZXkgKmtleSwKICAgICAgICAgYm9vbCBwb3NzZXNz
aW9uKQp7CiByZXR1cm4gKGtleV9yZWZfdCkgKCh1bnNpZ25lZCBsb25nKSBrZXkgfCBwb3NzZXNz
aW9uKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGtleSAqa2V5X3JlZl90b19wdHIoY29uc3Qga2V5X3JlZl90IGtleV9y
ZWYpCnsKIHJldHVybiAoc3RydWN0IGtleSAqKSAoKHVuc2lnbmVkIGxvbmcpIGtleV9yZWYgJiB+
MVVMKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgYm9vbCBpc19rZXlfcG9zc2Vzc2VkKGNvbnN0IGtleV9yZWZfdCBrZXlfcmVmKQp7
CiByZXR1cm4gKHVuc2lnbmVkIGxvbmcpIGtleV9yZWYgJiAxVUw7Cn0KCnR5cGVkZWYgaW50ICgq
a2V5X3Jlc3RyaWN0X2xpbmtfZnVuY190KShzdHJ1Y3Qga2V5ICpkZXN0X2tleXJpbmcsCiAgICAg
Y29uc3Qgc3RydWN0IGtleV90eXBlICp0eXBlLAogICAgIGNvbnN0IHVuaW9uIGtleV9wYXlsb2Fk
ICpwYXlsb2FkLAogICAgIHN0cnVjdCBrZXkgKnJlc3RyaWN0aW9uX2tleSk7CgpzdHJ1Y3Qga2V5
X3Jlc3RyaWN0aW9uIHsKIGtleV9yZXN0cmljdF9saW5rX2Z1bmNfdCBjaGVjazsKIHN0cnVjdCBr
ZXkgKmtleTsKIHN0cnVjdCBrZXlfdHlwZSAqa2V5dHlwZTsKfTsKCmVudW0ga2V5X3N0YXRlIHsK
IEtFWV9JU19VTklOU1RBTlRJQVRFRCwKIEtFWV9JU19QT1NJVElWRSwKfTsKIyAxNzIgIi4vaW5j
bHVkZS9saW51eC9rZXkuaCIKc3RydWN0IGtleSB7CiByZWZjb3VudF90IHVzYWdlOwoga2V5X3Nl
cmlhbF90IHNlcmlhbDsKIHVuaW9uIHsKICBzdHJ1Y3QgbGlzdF9oZWFkIGdyYXZleWFyZF9saW5r
OwogIHN0cnVjdCByYl9ub2RlIHNlcmlhbF9ub2RlOwogfTsKIHN0cnVjdCByd19zZW1hcGhvcmUg
c2VtOwogc3RydWN0IGtleV91c2VyICp1c2VyOwogdm9pZCAqc2VjdXJpdHk7CiB1bmlvbiB7CiAg
dGltZTY0X3QgZXhwaXJ5OwogIHRpbWU2NF90IHJldm9rZWRfYXQ7CiB9OwogdGltZTY0X3QgbGFz
dF91c2VkX2F0Owoga3VpZF90IHVpZDsKIGtnaWRfdCBnaWQ7CiBrZXlfcGVybV90IHBlcm07CiB1
bnNpZ25lZCBzaG9ydCBxdW90YWxlbjsKIHVuc2lnbmVkIHNob3J0IGRhdGFsZW47CgoKCiBzaG9y
dCBzdGF0ZTsKCgoKCgoKIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiMgMjE5ICIuL2luY2x1ZGUvbGlu
dXgva2V5LmgiCiB1bmlvbiB7CiAgc3RydWN0IGtleXJpbmdfaW5kZXhfa2V5IGluZGV4X2tleTsK
ICBzdHJ1Y3QgewogICB1bnNpZ25lZCBsb25nIGhhc2g7CiAgIHVuc2lnbmVkIGxvbmcgbGVuX2Rl
c2M7CiAgIHN0cnVjdCBrZXlfdHlwZSAqdHlwZTsKICAgc3RydWN0IGtleV90YWcgKmRvbWFpbl90
YWc7CiAgIGNoYXIgKmRlc2NyaXB0aW9uOwogIH07CiB9OwoKCgoKCiB1bmlvbiB7CiAgdW5pb24g
a2V5X3BheWxvYWQgcGF5bG9hZDsKICBzdHJ1Y3QgewoKICAgc3RydWN0IGxpc3RfaGVhZCBuYW1l
X2xpbms7CiAgIHN0cnVjdCBhc3NvY19hcnJheSBrZXlzOwogIH07CiB9OwojIDI1NCAiLi9pbmNs
dWRlL2xpbnV4L2tleS5oIgogc3RydWN0IGtleV9yZXN0cmljdGlvbiAqcmVzdHJpY3RfbGluazsK
fTsKCmV4dGVybiBzdHJ1Y3Qga2V5ICprZXlfYWxsb2Moc3RydWN0IGtleV90eXBlICp0eXBlLAog
ICAgICAgIGNvbnN0IGNoYXIgKmRlc2MsCiAgICAgICAga3VpZF90IHVpZCwga2dpZF90IGdpZCwK
ICAgICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKICAgICAgICBrZXlfcGVybV90IHBlcm0s
CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKICAgICAgICBzdHJ1Y3Qga2V5X3Jlc3RyaWN0
aW9uICpyZXN0cmljdF9saW5rKTsKIyAyNzMgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKZXh0ZXJu
IHZvaWQga2V5X3Jldm9rZShzdHJ1Y3Qga2V5ICprZXkpOwpleHRlcm4gdm9pZCBrZXlfaW52YWxp
ZGF0ZShzdHJ1Y3Qga2V5ICprZXkpOwpleHRlcm4gdm9pZCBrZXlfcHV0KHN0cnVjdCBrZXkgKmtl
eSk7CmV4dGVybiBib29sIGtleV9wdXRfdGFnKHN0cnVjdCBrZXlfdGFnICp0YWcpOwpleHRlcm4g
dm9pZCBrZXlfcmVtb3ZlX2RvbWFpbihzdHJ1Y3Qga2V5X3RhZyAqZG9tYWluX3RhZyk7CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3Qga2V5ICpfX2tleV9nZXQoc3RydWN0IGtleSAqa2V5KQp7CiByZWZjb3VudF9pbmMoJmtleS0+
dXNhZ2UpOwogcmV0dXJuIGtleTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtleSAqa2V5X2dldChzdHJ1Y3Qga2V5ICpr
ZXkpCnsKIHJldHVybiBrZXkgPyBfX2tleV9nZXQoa2V5KSA6IGtleTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBrZXlfcmVm
X3B1dChrZXlfcmVmX3Qga2V5X3JlZikKewoga2V5X3B1dChrZXlfcmVmX3RvX3B0cihrZXlfcmVm
KSk7Cn0KCmV4dGVybiBzdHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV90YWcoc3RydWN0IGtleV90eXBl
ICp0eXBlLAogICAgICAgY29uc3QgY2hhciAqZGVzY3JpcHRpb24sCiAgICAgICBzdHJ1Y3Qga2V5
X3RhZyAqZG9tYWluX3RhZywKICAgICAgIGNvbnN0IGNoYXIgKmNhbGxvdXRfaW5mbyk7CgpleHRl
cm4gc3RydWN0IGtleSAqcmVxdWVzdF9rZXlfcmN1KHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKICAg
ICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAogICAgICAgc3RydWN0IGtleV90YWcgKmRvbWFp
bl90YWcpOwoKZXh0ZXJuIHN0cnVjdCBrZXkgKnJlcXVlc3Rfa2V5X3dpdGhfYXV4ZGF0YShzdHJ1
Y3Qga2V5X3R5cGUgKnR5cGUsCiAgICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAogICAg
ICAgICBzdHJ1Y3Qga2V5X3RhZyAqZG9tYWluX3RhZywKICAgICAgICAgY29uc3Qgdm9pZCAqY2Fs
bG91dF9pbmZvLAogICAgICAgICBzaXplX3QgY2FsbG91dF9sZW4sCiAgICAgICAgIHZvaWQgKmF1
eCk7CiMgMzE5ICIuL2luY2x1ZGUvbGludXgva2V5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrZXkgKnJlcXVlc3Rfa2V5
KHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKICAgICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9u
LAogICAgICAgICAgY29uc3QgY2hhciAqY2FsbG91dF9pbmZvKQp7CiByZXR1cm4gcmVxdWVzdF9r
ZXlfdGFnKHR5cGUsIGRlc2NyaXB0aW9uLCAoKHZvaWQgKikwKSwgY2FsbG91dF9pbmZvKTsKfQoj
IDM1OCAiLi9pbmNsdWRlL2xpbnV4L2tleS5oIgpleHRlcm4gaW50IHdhaXRfZm9yX2tleV9jb25z
dHJ1Y3Rpb24oc3RydWN0IGtleSAqa2V5LCBib29sIGludHIpOwoKZXh0ZXJuIGludCBrZXlfdmFs
aWRhdGUoY29uc3Qgc3RydWN0IGtleSAqa2V5KTsKCmV4dGVybiBrZXlfcmVmX3Qga2V5X2NyZWF0
ZV9vcl91cGRhdGUoa2V5X3JlZl90IGtleXJpbmcsCiAgICAgICAgICBjb25zdCBjaGFyICp0eXBl
LAogICAgICAgICAgY29uc3QgY2hhciAqZGVzY3JpcHRpb24sCiAgICAgICAgICBjb25zdCB2b2lk
ICpwYXlsb2FkLAogICAgICAgICAgc2l6ZV90IHBsZW4sCiAgICAgICAgICBrZXlfcGVybV90IHBl
cm0sCiAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKCmV4dGVybiBpbnQga2V5X3VwZGF0
ZShrZXlfcmVmX3Qga2V5LAogICAgICAgIGNvbnN0IHZvaWQgKnBheWxvYWQsCiAgICAgICAgc2l6
ZV90IHBsZW4pOwoKZXh0ZXJuIGludCBrZXlfbGluayhzdHJ1Y3Qga2V5ICprZXlyaW5nLAogICAg
ICBzdHJ1Y3Qga2V5ICprZXkpOwoKZXh0ZXJuIGludCBrZXlfbW92ZShzdHJ1Y3Qga2V5ICprZXks
CiAgICAgIHN0cnVjdCBrZXkgKmZyb21fa2V5cmluZywKICAgICAgc3RydWN0IGtleSAqdG9fa2V5
cmluZywKICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKCmV4dGVybiBpbnQga2V5X3VubGluayhz
dHJ1Y3Qga2V5ICprZXlyaW5nLAogICAgICAgIHN0cnVjdCBrZXkgKmtleSk7CgpleHRlcm4gc3Ry
dWN0IGtleSAqa2V5cmluZ19hbGxvYyhjb25zdCBjaGFyICpkZXNjcmlwdGlvbiwga3VpZF90IHVp
ZCwga2dpZF90IGdpZCwKICAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKICAgICBrZXlfcGVy
bV90IHBlcm0sCiAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKICAgICBzdHJ1Y3Qga2V5X3Jlc3Ry
aWN0aW9uICpyZXN0cmljdF9saW5rLAogICAgIHN0cnVjdCBrZXkgKmRlc3QpOwoKZXh0ZXJuIGlu
dCByZXN0cmljdF9saW5rX3JlamVjdChzdHJ1Y3Qga2V5ICprZXlyaW5nLAogICAgY29uc3Qgc3Ry
dWN0IGtleV90eXBlICp0eXBlLAogICAgY29uc3QgdW5pb24ga2V5X3BheWxvYWQgKnBheWxvYWQs
CiAgICBzdHJ1Y3Qga2V5ICpyZXN0cmljdGlvbl9rZXkpOwoKZXh0ZXJuIGludCBrZXlyaW5nX2Ns
ZWFyKHN0cnVjdCBrZXkgKmtleXJpbmcpOwoKZXh0ZXJuIGtleV9yZWZfdCBrZXlyaW5nX3NlYXJj
aChrZXlfcmVmX3Qga2V5cmluZywKICAgIHN0cnVjdCBrZXlfdHlwZSAqdHlwZSwKICAgIGNvbnN0
IGNoYXIgKmRlc2NyaXB0aW9uLAogICAgYm9vbCByZWN1cnNlKTsKCmV4dGVybiBpbnQga2V5cmlu
Z19hZGRfa2V5KHN0cnVjdCBrZXkgKmtleXJpbmcsCiAgICAgIHN0cnVjdCBrZXkgKmtleSk7Cgpl
eHRlcm4gaW50IGtleXJpbmdfcmVzdHJpY3Qoa2V5X3JlZl90IGtleXJpbmcsIGNvbnN0IGNoYXIg
KnR5cGUsCiAgICAgICBjb25zdCBjaGFyICpyZXN0cmljdGlvbik7CgpleHRlcm4gc3RydWN0IGtl
eSAqa2V5X2xvb2t1cChrZXlfc2VyaWFsX3QgaWQpOwoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkga2V5X3NlcmlhbF90IGtleV9zZXJpYWwo
Y29uc3Qgc3RydWN0IGtleSAqa2V5KQp7CiByZXR1cm4ga2V5ID8ga2V5LT5zZXJpYWwgOiAwOwp9
CgpleHRlcm4gdm9pZCBrZXlfc2V0X3RpbWVvdXQoc3RydWN0IGtleSAqLCB1bnNpZ25lZCk7Cgpl
eHRlcm4ga2V5X3JlZl90IGxvb2t1cF91c2VyX2tleShrZXlfc2VyaWFsX3QgaWQsIHVuc2lnbmVk
IGxvbmcgZmxhZ3MsCiAgICAga2V5X3Blcm1fdCBwZXJtKTsKZXh0ZXJuIHZvaWQga2V5X2ZyZWVf
dXNlcl9ucyhzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKik7CiMgNDM0ICIuL2luY2x1ZGUvbGludXgv
a2V5LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHNob3J0IGtleV9yZWFkX3N0YXRlKGNvbnN0IHN0cnVjdCBrZXkgKmtleSkKewoKIHJl
dHVybiAoeyB0eXBlb2YoKiZrZXktPnN0YXRlKSBfX19wMSA9ICh7IHVuaW9uIHsgdHlwZW9mKCom
a2V5LT5zdGF0ZSkgX192YWw7IGNoYXIgX19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNl
X3NpemUoJigqJmtleS0+c3RhdGUpLCBfX3UuX19jLCBzaXplb2YoKiZrZXktPnN0YXRlKSk7IGVs
c2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKiZrZXktPnN0YXRlKSwgX191Ll9fYywgc2l6
ZW9mKComa2V5LT5zdGF0ZSkpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyBkbyB7
IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzQzNyh2b2lkKSBfX2F0dHJpYnV0ZV9f
KChfX2Vycm9yX18oIk5lZWQgbmF0aXZlIHdvcmQgc2l6ZWQgc3RvcmVzL2xvYWRzIGZvciBhdG9t
aWNpdHkuIikpKTsgaWYgKCEoKHNpemVvZigqJmtleS0+c3RhdGUpID09IHNpemVvZihjaGFyKSB8
fCBzaXplb2YoKiZrZXktPnN0YXRlKSA9PSBzaXplb2Yoc2hvcnQpIHx8IHNpemVvZigqJmtleS0+
c3RhdGUpID09IHNpemVvZihpbnQpIHx8IHNpemVvZigqJmtleS0+c3RhdGUpID09IHNpemVvZihs
b25nKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF80MzcoKTsgfSB3aGlsZSAoMCk7IF9fYXNtX18g
X192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7IF9fX3AxOyB9KTsKfQojIDQ0NyAiLi9pbmNs
dWRlL2xpbnV4L2tleS5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGtleV9pc19wb3NpdGl2ZShjb25zdCBzdHJ1Y3Qga2V5ICpr
ZXkpCnsKIHJldHVybiBrZXlfcmVhZF9zdGF0ZShrZXkpID09IEtFWV9JU19QT1NJVElWRTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
Ym9vbCBrZXlfaXNfbmVnYXRpdmUoY29uc3Qgc3RydWN0IGtleSAqa2V5KQp7CiByZXR1cm4ga2V5
X3JlYWRfc3RhdGUoa2V5KSA8IDA7Cn0KIyA0NzAgIi4vaW5jbHVkZS9saW51eC9rZXkuaCIKZXh0
ZXJuIHN0cnVjdCBjdGxfdGFibGUga2V5X3N5c2N0bHNbXTsKCgoKCmV4dGVybiBpbnQgaW5zdGFs
bF90aHJlYWRfa2V5cmluZ190b19jcmVkKHN0cnVjdCBjcmVkICpjcmVkKTsKZXh0ZXJuIHZvaWQg
a2V5X2ZzdWlkX2NoYW5nZWQoc3RydWN0IGNyZWQgKm5ld19jcmVkKTsKZXh0ZXJuIHZvaWQga2V5
X2ZzZ2lkX2NoYW5nZWQoc3RydWN0IGNyZWQgKm5ld19jcmVkKTsKZXh0ZXJuIHZvaWQga2V5X2lu
aXQodm9pZCk7CiMgMTQgIi4vaW5jbHVkZS9saW51eC9jcmVkLmgiIDIKCgoKIyAxICIuL2luY2x1
ZGUvbGludXgvc2NoZWQvdXNlci5oIiAxCgoKCgoKCgojIDEgIi4vaW5jbHVkZS9saW51eC9yYXRl
bGltaXQuaCIgMQojIDE1ICIuL2luY2x1ZGUvbGludXgvcmF0ZWxpbWl0LmgiCnN0cnVjdCByYXRl
bGltaXRfc3RhdGUgewogcmF3X3NwaW5sb2NrX3QgbG9jazsKCiBpbnQgaW50ZXJ2YWw7CiBpbnQg
YnVyc3Q7CiBpbnQgcHJpbnRlZDsKIGludCBtaXNzZWQ7CiB1bnNpZ25lZCBsb25nIGJlZ2luOwog
dW5zaWduZWQgbG9uZyBmbGFnczsKfTsKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L3JhdGVsaW1pdC5o
IgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSB2b2lkIHJhdGVsaW1pdF9zdGF0ZV9pbml0KHN0cnVjdCByYXRlbGltaXRfc3RhdGUgKnJzLAog
ICAgIGludCBpbnRlcnZhbCwgaW50IGJ1cnN0KQp7CiBtZW1zZXQocnMsIDAsIHNpemVvZigqcnMp
KTsKCiBkbyB7ICooJnJzLT5sb2NrKSA9IChyYXdfc3BpbmxvY2tfdCkgeyAucmF3X2xvY2sgPSB7
IHsgLnZhbCA9IHsgKDApIH0gfSB9LCB9OyB9IHdoaWxlICgwKTsKIHJzLT5pbnRlcnZhbCA9IGlu
dGVydmFsOwogcnMtPmJ1cnN0ID0gYnVyc3Q7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgcmF0ZWxpbWl0X2RlZmF1bHRfaW5p
dChzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycykKewogcmV0dXJuIHJhdGVsaW1pdF9zdGF0ZV9p
bml0KHJzLCAoNSAqIDI1MCksCiAgICAgMTApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHJhdGVsaW1pdF9zdGF0ZV9leGl0
KHN0cnVjdCByYXRlbGltaXRfc3RhdGUgKnJzKQp7CiBpZiAoIShycy0+ZmxhZ3MgJiAoKCgoMVVM
KSkpIDw8ICgwKSkpKQogIHJldHVybjsKCiBpZiAocnMtPm1pc3NlZCkgewogIHByaW50aygiXDAw
MSIgIjQiICIlczogJWQgb3V0cHV0IGxpbmVzIHN1cHByZXNzZWQgZHVlIHRvIHJhdGVsaW1pdGlu
Z1xuIiwgZ2V0X2N1cnJlbnQoKS0+Y29tbSwgcnMtPm1pc3NlZCkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA7CiAgcnMtPm1pc3NlZCA9IDA7CiB9Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKcmF0ZWxpbWl0X3NldF9m
bGFncyhzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlICpycywgdW5zaWduZWQgbG9uZyBmbGFncykKewog
cnMtPmZsYWdzID0gZmxhZ3M7Cn0KCmV4dGVybiBzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlIHByaW50
a19yYXRlbGltaXRfc3RhdGU7CgpleHRlcm4gaW50IF9fX3JhdGVsaW1pdChzdHJ1Y3QgcmF0ZWxp
bWl0X3N0YXRlICpycywgY29uc3QgY2hhciAqZnVuYyk7CiMgOSAiLi9pbmNsdWRlL2xpbnV4L3Nj
aGVkL3VzZXIuaCIgMgoKCgoKc3RydWN0IHVzZXJfc3RydWN0IHsKIHJlZmNvdW50X3QgX19jb3Vu
dDsKIGF0b21pY190IHByb2Nlc3NlczsKIGF0b21pY190IHNpZ3BlbmRpbmc7CgogYXRvbWljX3Qg
ZmFub3RpZnlfbGlzdGVuZXJzOwoKCiBhdG9taWNfbG9uZ190IGVwb2xsX3dhdGNoZXM7CgoKCiB1
bnNpZ25lZCBsb25nIG1xX2J5dGVzOwoKIHVuc2lnbmVkIGxvbmcgbG9ja2VkX3NobTsKIHVuc2ln
bmVkIGxvbmcgdW5peF9pbmZsaWdodDsKIGF0b21pY19sb25nX3QgcGlwZV9idWZzOwoKCiBzdHJ1
Y3QgaGxpc3Rfbm9kZSB1aWRoYXNoX25vZGU7CiBrdWlkX3QgdWlkOwoKCgogYXRvbWljX2xvbmdf
dCBsb2NrZWRfdm07CgoKCiBzdHJ1Y3QgcmF0ZWxpbWl0X3N0YXRlIHJhdGVsaW1pdDsKfTsKCmV4
dGVybiBpbnQgdWlkc19zeXNmc19pbml0KHZvaWQpOwoKZXh0ZXJuIHN0cnVjdCB1c2VyX3N0cnVj
dCAqZmluZF91c2VyKGt1aWRfdCk7CgpleHRlcm4gc3RydWN0IHVzZXJfc3RydWN0IHJvb3RfdXNl
cjsKCgoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKiBhbGxvY191aWQoa3VpZF90KTsKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3Ry
dWN0IHVzZXJfc3RydWN0ICpnZXRfdWlkKHN0cnVjdCB1c2VyX3N0cnVjdCAqdSkKewogcmVmY291
bnRfaW5jKCZ1LT5fX2NvdW50KTsKIHJldHVybiB1Owp9CmV4dGVybiB2b2lkIGZyZWVfdWlkKHN0
cnVjdCB1c2VyX3N0cnVjdCAqKTsKIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIgMgoKc3Ry
dWN0IGNyZWQ7CnN0cnVjdCBpbm9kZTsKCgoKCnN0cnVjdCBncm91cF9pbmZvIHsKIGF0b21pY190
IHVzYWdlOwogaW50IG5ncm91cHM7CiBrZ2lkX3QgZ2lkWzBdOwp9IF9fYXR0cmlidXRlX18oKF9f
ZGVzaWduYXRlZF9pbml0X18pKTsKIyA0MCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGdyb3VwX2luZm8gKmdldF9ncm91cF9pbmZvKHN0cnVjdCBncm91cF9pbmZvICpnaSkKewogYXRv
bWljX2luYygmZ2ktPnVzYWdlKTsKIHJldHVybiBnaTsKfQojIDU2ICIuL2luY2x1ZGUvbGludXgv
Y3JlZC5oIgpleHRlcm4gc3RydWN0IGdyb3VwX2luZm8gaW5pdF9ncm91cHM7CgpleHRlcm4gc3Ry
dWN0IGdyb3VwX2luZm8gKmdyb3Vwc19hbGxvYyhpbnQpOwpleHRlcm4gdm9pZCBncm91cHNfZnJl
ZShzdHJ1Y3QgZ3JvdXBfaW5mbyAqKTsKCmV4dGVybiBpbnQgaW5fZ3JvdXBfcChrZ2lkX3QpOwpl
eHRlcm4gaW50IGluX2Vncm91cF9wKGtnaWRfdCk7CmV4dGVybiBpbnQgZ3JvdXBzX3NlYXJjaChj
b25zdCBzdHJ1Y3QgZ3JvdXBfaW5mbyAqLCBrZ2lkX3QpOwoKZXh0ZXJuIGludCBzZXRfY3VycmVu
dF9ncm91cHMoc3RydWN0IGdyb3VwX2luZm8gKik7CmV4dGVybiB2b2lkIHNldF9ncm91cHMoc3Ry
dWN0IGNyZWQgKiwgc3RydWN0IGdyb3VwX2luZm8gKik7CmV4dGVybiBib29sIG1heV9zZXRncm91
cHModm9pZCk7CmV4dGVybiB2b2lkIGdyb3Vwc19zb3J0KHN0cnVjdCBncm91cF9pbmZvICopOwoj
IDExMSAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RydWN0IGNyZWQgewogYXRvbWljX3QgdXNh
Z2U7CgoKCgoKCgoga3VpZF90IHVpZDsKIGtnaWRfdCBnaWQ7CiBrdWlkX3Qgc3VpZDsKIGtnaWRf
dCBzZ2lkOwoga3VpZF90IGV1aWQ7CiBrZ2lkX3QgZWdpZDsKIGt1aWRfdCBmc3VpZDsKIGtnaWRf
dCBmc2dpZDsKIHVuc2lnbmVkIHNlY3VyZWJpdHM7CiBrZXJuZWxfY2FwX3QgY2FwX2luaGVyaXRh
YmxlOwoga2VybmVsX2NhcF90IGNhcF9wZXJtaXR0ZWQ7CiBrZXJuZWxfY2FwX3QgY2FwX2VmZmVj
dGl2ZTsKIGtlcm5lbF9jYXBfdCBjYXBfYnNldDsKIGtlcm5lbF9jYXBfdCBjYXBfYW1iaWVudDsK
CiB1bnNpZ25lZCBjaGFyIGppdF9rZXlyaW5nOwoKIHN0cnVjdCBrZXkgKnNlc3Npb25fa2V5cmlu
ZzsKIHN0cnVjdCBrZXkgKnByb2Nlc3Nfa2V5cmluZzsKIHN0cnVjdCBrZXkgKnRocmVhZF9rZXly
aW5nOwogc3RydWN0IGtleSAqcmVxdWVzdF9rZXlfYXV0aDsKCgogdm9pZCAqc2VjdXJpdHk7Cgog
c3RydWN0IHVzZXJfc3RydWN0ICp1c2VyOwogc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25z
Owogc3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm87CgogdW5pb24gewogIGludCBub25fcmN1
OwogIHN0cnVjdCBjYWxsYmFja19oZWFkIHJjdTsKIH07Cn0gX19hdHRyaWJ1dGVfXygoX19kZXNp
Z25hdGVkX2luaXRfXykpOwoKZXh0ZXJuIHZvaWQgX19wdXRfY3JlZChzdHJ1Y3QgY3JlZCAqKTsK
ZXh0ZXJuIHZvaWQgZXhpdF9jcmVkcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CmV4dGVybiBpbnQg
Y29weV9jcmVkcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgdW5zaWduZWQgbG9uZyk7CmV4dGVybiBj
b25zdCBzdHJ1Y3QgY3JlZCAqZ2V0X3Rhc2tfY3JlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CmV4
dGVybiBzdHJ1Y3QgY3JlZCAqY3JlZF9hbGxvY19ibGFuayh2b2lkKTsKZXh0ZXJuIHN0cnVjdCBj
cmVkICpwcmVwYXJlX2NyZWRzKHZvaWQpOwpleHRlcm4gc3RydWN0IGNyZWQgKnByZXBhcmVfZXhl
Y19jcmVkcyh2b2lkKTsKZXh0ZXJuIGludCBjb21taXRfY3JlZHMoc3RydWN0IGNyZWQgKik7CmV4
dGVybiB2b2lkIGFib3J0X2NyZWRzKHN0cnVjdCBjcmVkICopOwpleHRlcm4gY29uc3Qgc3RydWN0
IGNyZWQgKm92ZXJyaWRlX2NyZWRzKGNvbnN0IHN0cnVjdCBjcmVkICopOwpleHRlcm4gdm9pZCBy
ZXZlcnRfY3JlZHMoY29uc3Qgc3RydWN0IGNyZWQgKik7CmV4dGVybiBzdHJ1Y3QgY3JlZCAqcHJl
cGFyZV9rZXJuZWxfY3JlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CmV4dGVybiBpbnQgY2hhbmdl
X2NyZWF0ZV9maWxlc19hcyhzdHJ1Y3QgY3JlZCAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBp
bnQgc2V0X3NlY3VyaXR5X292ZXJyaWRlKHN0cnVjdCBjcmVkICosIHUzMik7CmV4dGVybiBpbnQg
c2V0X3NlY3VyaXR5X292ZXJyaWRlX2Zyb21fY3R4KHN0cnVjdCBjcmVkICosIGNvbnN0IGNoYXIg
Kik7CmV4dGVybiBpbnQgc2V0X2NyZWF0ZV9maWxlc19hcyhzdHJ1Y3QgY3JlZCAqLCBzdHJ1Y3Qg
aW5vZGUgKik7CmV4dGVybiBpbnQgY3JlZF9mc2NtcChjb25zdCBzdHJ1Y3QgY3JlZCAqLCBjb25z
dCBzdHJ1Y3QgY3JlZCAqKTsKZXh0ZXJuIHZvaWQgX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18o
Ii5pbml0LnRleHQiKSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkgY3JlZF9pbml0KHZvaWQp
OwojIDIwMyAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCB2YWxpZGF0ZV9jcmVkcyhjb25z
dCBzdHJ1Y3QgY3JlZCAqY3JlZCkKewp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgdmFsaWRhdGVfY3JlZHNfZm9yX2RvX2V4aXQo
c3RydWN0IHRhc2tfc3RydWN0ICp0c2spCnsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHZhbGlkYXRlX3Byb2Nlc3NfY3JlZHMo
dm9pZCkKewp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgYm9vbCBjYXBfYW1iaWVudF9pbnZhcmlhbnRfb2soY29uc3Qgc3RydWN0IGNy
ZWQgKmNyZWQpCnsKIHJldHVybiBjYXBfaXNzdWJzZXQoY3JlZC0+Y2FwX2FtYmllbnQsCiAgICAg
ICBjYXBfaW50ZXJzZWN0KGNyZWQtPmNhcF9wZXJtaXR0ZWQsCiAgICAgICBjcmVkLT5jYXBfaW5o
ZXJpdGFibGUpKTsKfQojIDIyOCAiLi9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGNyZWQg
KmdldF9uZXdfY3JlZChzdHJ1Y3QgY3JlZCAqY3JlZCkKewogYXRvbWljX2luYygmY3JlZC0+dXNh
Z2UpOwogcmV0dXJuIGNyZWQ7Cn0KIyAyNDcgIi4vaW5jbHVkZS9saW51eC9jcmVkLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGNvbnN0
IHN0cnVjdCBjcmVkICpnZXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCkKewogc3RydWN0
IGNyZWQgKm5vbmNvbnN0X2NyZWQgPSAoc3RydWN0IGNyZWQgKikgY3JlZDsKIGlmICghY3JlZCkK
ICByZXR1cm4gY3JlZDsKIHZhbGlkYXRlX2NyZWRzKGNyZWQpOwogbm9uY29uc3RfY3JlZC0+bm9u
X3JjdSA9IDA7CiByZXR1cm4gZ2V0X25ld19jcmVkKG5vbmNvbnN0X2NyZWQpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBz
dHJ1Y3QgY3JlZCAqZ2V0X2NyZWRfcmN1KGNvbnN0IHN0cnVjdCBjcmVkICpjcmVkKQp7CiBzdHJ1
Y3QgY3JlZCAqbm9uY29uc3RfY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjcmVkOwogaWYgKCFjcmVk
KQogIHJldHVybiAoKHZvaWQgKikwKTsKIGlmICghYXRvbWljX2luY19ub3RfemVybygmbm9uY29u
c3RfY3JlZC0+dXNhZ2UpKQogIHJldHVybiAoKHZvaWQgKikwKTsKIHZhbGlkYXRlX2NyZWRzKGNy
ZWQpOwogbm9uY29uc3RfY3JlZC0+bm9uX3JjdSA9IDA7CiByZXR1cm4gY3JlZDsKfQojIDI4MCAi
Li9pbmNsdWRlL2xpbnV4L2NyZWQuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwdXRfY3JlZChjb25zdCBzdHJ1Y3QgY3JlZCAq
X2NyZWQpCnsKIHN0cnVjdCBjcmVkICpjcmVkID0gKHN0cnVjdCBjcmVkICopIF9jcmVkOwoKIGlm
IChjcmVkKSB7CiAgdmFsaWRhdGVfY3JlZHMoY3JlZCk7CiAgaWYgKGF0b21pY19kZWNfYW5kX3Rl
c3QoJihjcmVkKS0+dXNhZ2UpKQogICBfX3B1dF9jcmVkKGNyZWQpOwogfQp9CiMgMzkwICIuL2lu
Y2x1ZGUvbGludXgvY3JlZC5oIgpleHRlcm4gc3RydWN0IHVzZXJfbmFtZXNwYWNlIGluaXRfdXNl
cl9uczsKIyAxMyAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiIDIKCnN0cnVjdCBzZXFfb3Bl
cmF0aW9uczsKCnN0cnVjdCBzZXFfZmlsZSB7CiBjaGFyICpidWY7CiBzaXplX3Qgc2l6ZTsKIHNp
emVfdCBmcm9tOwogc2l6ZV90IGNvdW50Owogc2l6ZV90IHBhZF91bnRpbDsKIGxvZmZfdCBpbmRl
eDsKIGxvZmZfdCByZWFkX3BvczsKIHU2NCB2ZXJzaW9uOwogc3RydWN0IG11dGV4IGxvY2s7CiBj
b25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKm9wOwogaW50IHBvbGxfZXZlbnQ7CiBjb25zdCBz
dHJ1Y3QgZmlsZSAqZmlsZTsKIHZvaWQgKnByaXZhdGU7Cn07CgpzdHJ1Y3Qgc2VxX29wZXJhdGlv
bnMgewogdm9pZCAqICgqc3RhcnQpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKTsK
IHZvaWQgKCpzdG9wKSAoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KTsKIHZvaWQgKiAoKm5l
eHQpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYsIGxvZmZfdCAqcG9zKTsKIGludCAoKnNo
b3cpIChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpOwp9OwojIDUxICIuL2luY2x1ZGUvbGlu
dXgvc2VxX2ZpbGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBzZXFfaGFzX292ZXJmbG93ZWQoc3RydWN0IHNlcV9maWxlICpt
KQp7CiByZXR1cm4gbS0+Y291bnQgPT0gbS0+c2l6ZTsKfQojIDY0ICIuL2luY2x1ZGUvbGludXgv
c2VxX2ZpbGUuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc2l6ZV90IHNlcV9nZXRfYnVmKHN0cnVjdCBzZXFfZmlsZSAqbSwgY2hhciAq
KmJ1ZnApCnsKIGRvIHsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEobS0+Y291bnQgPiBtLT5zaXpl
KSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImluY2x1ZGUv
bGludXgvc2VxX2ZpbGUuaCIpLCAiaSIgKDY2KSwgImkiICgwKSwgImkiIChzaXplb2Yoc3RydWN0
IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7IGRvIHsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC51bnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0g
LlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDMzKSk7IH0pOyBhc20gdm9sYXRpbGUo
IiIpOyBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKTsgfSB3aGlsZSAoMCk7IH0gd2hpbGUgKDApOyB9
IHdoaWxlICgwKTsKIGlmIChtLT5jb3VudCA8IG0tPnNpemUpCiAgKmJ1ZnAgPSBtLT5idWYgKyBt
LT5jb3VudDsKIGVsc2UKICAqYnVmcCA9ICgodm9pZCAqKTApOwoKIHJldHVybiBtLT5zaXplIC0g
bS0+Y291bnQ7Cn0KIyA4NCAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2VxX2Nv
bW1pdChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGludCBudW0pCnsKIGlmIChudW0gPCAwKSB7CiAgbS0+
Y291bnQgPSBtLT5zaXplOwogfSBlbHNlIHsKICBkbyB7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KG0tPmNvdW50ICsgbnVtID4gbS0+c2l6ZSksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZv
bGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVn
X3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50
cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29y
ZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNl
Y3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiKSwgImkiICg4OSksICJp
IiAoMCksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyBkbyB7
ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQudW5yZWFj
aGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImki
ICgzNCkpOyB9KTsgYXNtIHZvbGF0aWxlKCIiKTsgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0g
d2hpbGUgKDApOyB9IHdoaWxlICgwKTsgfSB3aGlsZSAoMCk7CiAgbS0+Y291bnQgKz0gbnVtOwog
fQp9CiMgMTAyICIuL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzZXFfc2V0d2lkdGgo
c3RydWN0IHNlcV9maWxlICptLCBzaXplX3Qgc2l6ZSkKewogbS0+cGFkX3VudGlsID0gbS0+Y291
bnQgKyBzaXplOwp9CnZvaWQgc2VxX3BhZChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNoYXIgYyk7Cgpj
aGFyICptYW5nbGVfcGF0aChjaGFyICpzLCBjb25zdCBjaGFyICpwLCBjb25zdCBjaGFyICplc2Mp
OwppbnQgc2VxX29wZW4oc3RydWN0IGZpbGUgKiwgY29uc3Qgc3RydWN0IHNlcV9vcGVyYXRpb25z
ICopOwpzc2l6ZV90IHNlcV9yZWFkKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2Zm
X3QgKik7CmxvZmZfdCBzZXFfbHNlZWsoc3RydWN0IGZpbGUgKiwgbG9mZl90LCBpbnQpOwppbnQg
c2VxX3JlbGVhc2Uoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwppbnQgc2VxX3dyaXRl
KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsKCl9f
YXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAwKSkpCnZvaWQgc2VxX3ZwcmludGYo
c3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7Cl9fYXR0
cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpCnZvaWQgc2VxX3ByaW50ZihzdHJ1
Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKdm9pZCBzZXFfcHV0YyhzdHJ1
Y3Qgc2VxX2ZpbGUgKm0sIGNoYXIgYyk7CnZvaWQgc2VxX3B1dHMoc3RydWN0IHNlcV9maWxlICpt
LCBjb25zdCBjaGFyICpzKTsKdm9pZCBzZXFfcHV0X2RlY2ltYWxfdWxsX3dpZHRoKHN0cnVjdCBz
ZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqZGVsaW1pdGVyLAogICAgICAgICAgdW5zaWduZWQgbG9u
ZyBsb25nIG51bSwgdW5zaWduZWQgaW50IHdpZHRoKTsKdm9pZCBzZXFfcHV0X2RlY2ltYWxfdWxs
KHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqZGVsaW1pdGVyLAogICAgdW5zaWduZWQg
bG9uZyBsb25nIG51bSk7CnZvaWQgc2VxX3B1dF9kZWNpbWFsX2xsKHN0cnVjdCBzZXFfZmlsZSAq
bSwgY29uc3QgY2hhciAqZGVsaW1pdGVyLCBsb25nIGxvbmcgbnVtKTsKdm9pZCBzZXFfcHV0X2hl
eF9sbChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IGNoYXIgKmRlbGltaXRlciwKICAgICAgdW5z
aWduZWQgbG9uZyBsb25nIHYsIHVuc2lnbmVkIGludCB3aWR0aCk7Cgp2b2lkIHNlcV9lc2NhcGUo
c3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICplc2MpOwp2b2lk
IHNlcV9lc2NhcGVfbWVtX2FzY2lpKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29uc3QgY2hhciAqc3Jj
LCBzaXplX3QgaXN6KTsKCnZvaWQgc2VxX2hleF9kdW1wKHN0cnVjdCBzZXFfZmlsZSAqbSwgY29u
c3QgY2hhciAqcHJlZml4X3N0ciwgaW50IHByZWZpeF90eXBlLAogICAgaW50IHJvd3NpemUsIGlu
dCBncm91cHNpemUsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbiwKICAgIGJvb2wgYXNjaWkp
OwoKaW50IHNlcV9wYXRoKHN0cnVjdCBzZXFfZmlsZSAqLCBjb25zdCBzdHJ1Y3QgcGF0aCAqLCBj
b25zdCBjaGFyICopOwppbnQgc2VxX2ZpbGVfcGF0aChzdHJ1Y3Qgc2VxX2ZpbGUgKiwgc3RydWN0
IGZpbGUgKiwgY29uc3QgY2hhciAqKTsKaW50IHNlcV9kZW50cnkoc3RydWN0IHNlcV9maWxlICos
IHN0cnVjdCBkZW50cnkgKiwgY29uc3QgY2hhciAqKTsKaW50IHNlcV9wYXRoX3Jvb3Qoc3RydWN0
IHNlcV9maWxlICptLCBjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwKICAgIGNvbnN0IHN0cnVjdCBw
YXRoICpyb290LCBjb25zdCBjaGFyICplc2MpOwoKaW50IHNpbmdsZV9vcGVuKHN0cnVjdCBmaWxl
ICosIGludCAoKikoc3RydWN0IHNlcV9maWxlICosIHZvaWQgKiksIHZvaWQgKik7CmludCBzaW5n
bGVfb3Blbl9zaXplKHN0cnVjdCBmaWxlICosIGludCAoKikoc3RydWN0IHNlcV9maWxlICosIHZv
aWQgKiksIHZvaWQgKiwgc2l6ZV90KTsKaW50IHNpbmdsZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAq
LCBzdHJ1Y3QgZmlsZSAqKTsKdm9pZCAqX19zZXFfb3Blbl9wcml2YXRlKHN0cnVjdCBmaWxlICos
IGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqLCBpbnQpOwppbnQgc2VxX29wZW5fcHJpdmF0
ZShzdHJ1Y3QgZmlsZSAqLCBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKiwgaW50KTsKaW50
IHNlcV9yZWxlYXNlX3ByaXZhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwojIDE3
NiAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqc2Vx
X3VzZXJfbnMoc3RydWN0IHNlcV9maWxlICpzZXEpCnsKCiByZXR1cm4gc2VxLT5maWxlLT5mX2Ny
ZWQtPnVzZXJfbnM7CgoKCgp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHNlcV9zaG93X29wdGlvbihzdHJ1Y3Qgc2Vx
X2ZpbGUgKm0sIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICBjb25zdCBjaGFyICp2YWx1ZSkKewog
c2VxX3B1dGMobSwgJywnKTsKIHNlcV9lc2NhcGUobSwgbmFtZSwgIiw9IFx0XG5cXCIpOwogaWYg
KHZhbHVlKSB7CiAgc2VxX3B1dGMobSwgJz0nKTsKICBzZXFfZXNjYXBlKG0sIHZhbHVlLCAiLCBc
dFxuXFwiKTsKIH0KfQojIDIyNiAiLi9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgiCmV4dGVybiBz
dHJ1Y3QgbGlzdF9oZWFkICpzZXFfbGlzdF9zdGFydChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAog
IGxvZmZfdCBwb3MpOwpleHRlcm4gc3RydWN0IGxpc3RfaGVhZCAqc2VxX2xpc3Rfc3RhcnRfaGVh
ZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAogIGxvZmZfdCBwb3MpOwpleHRlcm4gc3RydWN0IGxp
c3RfaGVhZCAqc2VxX2xpc3RfbmV4dCh2b2lkICp2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLAog
IGxvZmZfdCAqcHBvcyk7CgoKCgoKZXh0ZXJuIHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3Rf
c3RhcnQoc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQsCiAgICAgICBsb2ZmX3QgcG9zKTsKZXh0ZXJu
IHN0cnVjdCBobGlzdF9ub2RlICpzZXFfaGxpc3Rfc3RhcnRfaGVhZChzdHJ1Y3QgaGxpc3RfaGVh
ZCAqaGVhZCwKICAgICAgICAgICAgbG9mZl90IHBvcyk7CmV4dGVybiBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqc2VxX2hsaXN0X25leHQodm9pZCAqdiwgc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQsCiAgICAg
IGxvZmZfdCAqcHBvcyk7CgpleHRlcm4gc3RydWN0IGhsaXN0X25vZGUgKnNlcV9obGlzdF9zdGFy
dF9yY3Uoc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQsCiAgICAgICAgICAgbG9mZl90IHBvcyk7CmV4
dGVybiBzdHJ1Y3QgaGxpc3Rfbm9kZSAqc2VxX2hsaXN0X3N0YXJ0X2hlYWRfcmN1KHN0cnVjdCBo
bGlzdF9oZWFkICpoZWFkLAogICAgICAgICBsb2ZmX3QgcG9zKTsKZXh0ZXJuIHN0cnVjdCBobGlz
dF9ub2RlICpzZXFfaGxpc3RfbmV4dF9yY3Uodm9pZCAqdiwKICAgICAgICAgc3RydWN0IGhsaXN0
X2hlYWQgKmhlYWQsCiAgICAgICAgIGxvZmZfdCAqcHBvcyk7CgoKZXh0ZXJuIHN0cnVjdCBobGlz
dF9ub2RlICpzZXFfaGxpc3Rfc3RhcnRfcGVyY3B1KHN0cnVjdCBobGlzdF9oZWFkICpoZWFkLCBp
bnQgKmNwdSwgbG9mZl90IHBvcyk7CgpleHRlcm4gc3RydWN0IGhsaXN0X25vZGUgKnNlcV9obGlz
dF9uZXh0X3BlcmNwdSh2b2lkICp2LCBzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCwgaW50ICpjcHUs
IGxvZmZfdCAqcG9zKTsKCnZvaWQgc2VxX2ZpbGVfaW5pdCh2b2lkKTsKIyAzMiAiLi9pbmNsdWRl
L2RybS9kcm1fcHJpbnQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMQojIDE1
ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L2Rldl9wcmlu
dGsuaCIgMQojIDIyICIuL2luY2x1ZGUvbGludXgvZGV2X3ByaW50ay5oIgpzdHJ1Y3QgZGV2aWNl
OwoKCgpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgMCkpKSBfX2F0dHJpYnV0
ZV9fKChfX2NvbGRfXykpCmludCBkZXZfdnByaW50a19lbWl0KGludCBsZXZlbCwgY29uc3Qgc3Ry
dWN0IGRldmljZSAqZGV2LAogICAgICAgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOwpf
X2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKSBfX2F0dHJpYnV0ZV9fKChf
X2NvbGRfXykpCmludCBkZXZfcHJpbnRrX2VtaXQoaW50IGxldmVsLCBjb25zdCBzdHJ1Y3QgZGV2
aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCAzLCA0KSkpIF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkKdm9pZCBkZXZfcHJp
bnRrKGNvbnN0IGNoYXIgKmxldmVsLCBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgY29uc3Qg
Y2hhciAqZm10LCAuLi4pOwpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykp
KSBfX2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCnZvaWQgX2Rldl9lbWVyZyhjb25zdCBzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKX19hdHRyaWJ1dGVfXygoX19mb3Jt
YXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQp2b2lkIF9kZXZf
YWxlcnQoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLik7Cl9f
YXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkpIF9fYXR0cmlidXRlX18oKF9f
Y29sZF9fKSkKdm9pZCBfZGV2X2NyaXQoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBj
aGFyICpmbXQsIC4uLik7Cl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkp
IF9fYXR0cmlidXRlX18oKF9fY29sZF9fKSkKdm9pZCBfZGV2X2Vycihjb25zdCBzdHJ1Y3QgZGV2
aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKX19hdHRyaWJ1dGVfXygoX19mb3JtYXRf
XyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xkX18pKQp2b2lkIF9kZXZfd2Fy
bihjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKX19hdHRy
aWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkgX19hdHRyaWJ1dGVfXygoX19jb2xk
X18pKQp2b2lkIF9kZXZfbm90aWNlKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hh
ciAqZm10LCAuLi4pOwpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMiwgMykpKSBf
X2F0dHJpYnV0ZV9fKChfX2NvbGRfXykpCnZvaWQgX2Rldl9pbmZvKGNvbnN0IHN0cnVjdCBkZXZp
Y2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwojIDE2ICIuL2luY2x1ZGUvbGludXgvZGV2
aWNlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvaW9wb3J0LmgiIDEKIyAyMCAiLi9pbmNsdWRl
L2xpbnV4L2lvcG9ydC5oIgpzdHJ1Y3QgcmVzb3VyY2UgewogcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0
OwogcmVzb3VyY2Vfc2l6ZV90IGVuZDsKIGNvbnN0IGNoYXIgKm5hbWU7CiB1bnNpZ25lZCBsb25n
IGZsYWdzOwogdW5zaWduZWQgbG9uZyBkZXNjOwogc3RydWN0IHJlc291cmNlICpwYXJlbnQsICpz
aWJsaW5nLCAqY2hpbGQ7Cn07CiMgMTI4ICIuL2luY2x1ZGUvbGludXgvaW9wb3J0LmgiCmVudW0g
ewogSU9SRVNfREVTQ19OT05FID0gMCwKIElPUkVTX0RFU0NfQ1JBU0hfS0VSTkVMID0gMSwKIElP
UkVTX0RFU0NfQUNQSV9UQUJMRVMgPSAyLAogSU9SRVNfREVTQ19BQ1BJX05WX1NUT1JBR0UgPSAz
LAogSU9SRVNfREVTQ19QRVJTSVNURU5UX01FTU9SWSA9IDQsCiBJT1JFU19ERVNDX1BFUlNJU1RF
TlRfTUVNT1JZX0xFR0FDWSA9IDUsCiBJT1JFU19ERVNDX0RFVklDRV9QUklWQVRFX01FTU9SWSA9
IDYsCiBJT1JFU19ERVNDX1JFU0VSVkVEID0gNywKIElPUkVTX0RFU0NfU09GVF9SRVNFUlZFRCA9
IDgsCn07CgoKCgplbnVtIHsKIElPUkVTX01BUF9TWVNURU1fUkFNID0gKCgoKDFVTCkpKSA8PCAo
MCkpLAogSU9SRVNfTUFQX0VOQ1JZUFRFRCA9ICgoKCgxVUwpKSkgPDwgKDEpKSwKfTsKIyAxNzkg
Ii4vaW5jbHVkZS9saW51eC9pb3BvcnQuaCIKZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSBpb3BvcnRf
cmVzb3VyY2U7CmV4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgaW9tZW1fcmVzb3VyY2U7CgpleHRlcm4g
c3RydWN0IHJlc291cmNlICpyZXF1ZXN0X3Jlc291cmNlX2NvbmZsaWN0KHN0cnVjdCByZXNvdXJj
ZSAqcm9vdCwgc3RydWN0IHJlc291cmNlICpuZXcpOwpleHRlcm4gaW50IHJlcXVlc3RfcmVzb3Vy
Y2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CmV4dGVybiBp
bnQgcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7CnZvaWQgcmVsZWFzZV9j
aGlsZF9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpuZXcpOwpleHRlcm4gdm9pZCByZXNlcnZl
X3JlZ2lvbl93aXRoX3NwbGl0KHN0cnVjdCByZXNvdXJjZSAqcm9vdCwKICAgICAgICByZXNvdXJj
ZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCiAgICAgICAgY29uc3QgY2hhciAq
bmFtZSk7CmV4dGVybiBzdHJ1Y3QgcmVzb3VyY2UgKmluc2VydF9yZXNvdXJjZV9jb25mbGljdChz
dHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNlICpuZXcpOwpleHRlcm4gaW50
IGluc2VydF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwgc3RydWN0IHJlc291cmNl
ICpuZXcpOwpleHRlcm4gdm9pZCBpbnNlcnRfcmVzb3VyY2VfZXhwYW5kX3RvX2ZpdChzdHJ1Y3Qg
cmVzb3VyY2UgKnJvb3QsIHN0cnVjdCByZXNvdXJjZSAqbmV3KTsKZXh0ZXJuIGludCByZW1vdmVf
cmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpvbGQpOwpleHRlcm4gdm9pZCBhcmNoX3JlbW92ZV9y
ZXNlcnZhdGlvbnMoc3RydWN0IHJlc291cmNlICphdmFpbCk7CmV4dGVybiBpbnQgYWxsb2NhdGVf
cmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyb290LCBzdHJ1Y3QgcmVzb3VyY2UgKm5ldywKICAg
ICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwgcmVzb3VyY2Vfc2l6ZV90IG1pbiwKICAgICAgICBy
ZXNvdXJjZV9zaXplX3QgbWF4LCByZXNvdXJjZV9zaXplX3QgYWxpZ24sCiAgICAgICAgcmVzb3Vy
Y2Vfc2l6ZV90ICgqYWxpZ25mKSh2b2lkICosCiAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcmVz
b3VyY2UgKiwKICAgICAgICAgICAgIHJlc291cmNlX3NpemVfdCwKICAgICAgICAgICAgIHJlc291
cmNlX3NpemVfdCksCiAgICAgICAgdm9pZCAqYWxpZ25mX2RhdGEpOwpzdHJ1Y3QgcmVzb3VyY2Ug
Kmxvb2t1cF9yZXNvdXJjZShzdHJ1Y3QgcmVzb3VyY2UgKnJvb3QsIHJlc291cmNlX3NpemVfdCBz
dGFydCk7CmludCBhZGp1c3RfcmVzb3VyY2Uoc3RydWN0IHJlc291cmNlICpyZXMsIHJlc291cmNl
X3NpemVfdCBzdGFydCwKICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUpOwpyZXNvdXJjZV9zaXpl
X3QgcmVzb3VyY2VfYWxpZ25tZW50KHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgcmVzb3VyY2Vfc2l6
ZV90IHJlc291cmNlX3NpemUoY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXMpCnsKIHJldHVybiBy
ZXMtPmVuZCAtIHJlcy0+c3RhcnQgKyAxOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VfdHlwZShj
b25zdCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKewogcmV0dXJuIHJlcy0+ZmxhZ3MgJiAweDAwMDAx
ZjAwOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VfZXh0X3R5cGUoY29uc3Qgc3RydWN0IHJlc291
cmNlICpyZXMpCnsKIHJldHVybiByZXMtPmZsYWdzICYgMHgwMTAwMDAwMDsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCByZXNv
dXJjZV9jb250YWlucyhzdHJ1Y3QgcmVzb3VyY2UgKnIxLCBzdHJ1Y3QgcmVzb3VyY2UgKnIyKQp7
CiBpZiAocmVzb3VyY2VfdHlwZShyMSkgIT0gcmVzb3VyY2VfdHlwZShyMikpCiAgcmV0dXJuIGZh
bHNlOwogaWYgKHIxLT5mbGFncyAmIDB4MjAwMDAwMDAgfHwgcjItPmZsYWdzICYgMHgyMDAwMDAw
MCkKICByZXR1cm4gZmFsc2U7CiByZXR1cm4gcjEtPnN0YXJ0IDw9IHIyLT5zdGFydCAmJiByMS0+
ZW5kID49IHIyLT5lbmQ7Cn0KIyAyMzggIi4vaW5jbHVkZS9saW51eC9pb3BvcnQuaCIKZXh0ZXJu
IHN0cnVjdCByZXNvdXJjZSAqIF9fcmVxdWVzdF9yZWdpb24oc3RydWN0IHJlc291cmNlICosCiAg
ICAgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAogICAgIHJlc291cmNlX3NpemVfdCBuLAogICAgIGNv
bnN0IGNoYXIgKm5hbWUsIGludCBmbGFncyk7CgoKCgoKZXh0ZXJuIHZvaWQgX19yZWxlYXNlX3Jl
Z2lvbihzdHJ1Y3QgcmVzb3VyY2UgKiwgcmVzb3VyY2Vfc2l6ZV90LAogICAgcmVzb3VyY2Vfc2l6
ZV90KTsKCmV4dGVybiBpbnQgcmVsZWFzZV9tZW1fcmVnaW9uX2FkanVzdGFibGUoc3RydWN0IHJl
c291cmNlICosIHJlc291cmNlX3NpemVfdCwKICAgIHJlc291cmNlX3NpemVfdCk7CgoKCnN0cnVj
dCBkZXZpY2U7CgpleHRlcm4gaW50IGRldm1fcmVxdWVzdF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNl
ICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqcm9vdCwKICAgICBzdHJ1Y3QgcmVzb3VyY2UgKm5ldyk7
CmV4dGVybiB2b2lkIGRldm1fcmVsZWFzZV9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0
cnVjdCByZXNvdXJjZSAqbmV3KTsKCgoKCgoKZXh0ZXJuIHN0cnVjdCByZXNvdXJjZSAqIF9fZGV2
bV9yZXF1ZXN0X3JlZ2lvbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICBzdHJ1Y3QgcmVzb3VyY2Ug
KnBhcmVudCwgcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LAogICAgcmVzb3VyY2Vfc2l6ZV90IG4sIGNv
bnN0IGNoYXIgKm5hbWUpOwoKCgoKCgpleHRlcm4gdm9pZCBfX2Rldm1fcmVsZWFzZV9yZWdpb24o
c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCwKICAgICAgcmVzb3Vy
Y2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3Qgbik7CmV4dGVybiBpbnQgaW9tZW1fbWFw
X3Nhbml0eV9jaGVjayhyZXNvdXJjZV9zaXplX3QgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsK
ZXh0ZXJuIGJvb2wgaW9tZW1faXNfZXhjbHVzaXZlKHU2NCBhZGRyKTsKCmV4dGVybiBpbnQKd2Fs
a19zeXN0ZW1fcmFtX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25n
IG5yX3BhZ2VzLAogIHZvaWQgKmFyZywgaW50ICgqZnVuYykodW5zaWduZWQgbG9uZywgdW5zaWdu
ZWQgbG9uZywgdm9pZCAqKSk7CmV4dGVybiBpbnQKd2Fsa19tZW1fcmVzKHU2NCBzdGFydCwgdTY0
IGVuZCwgdm9pZCAqYXJnLAogICAgICBpbnQgKCpmdW5jKShzdHJ1Y3QgcmVzb3VyY2UgKiwgdm9p
ZCAqKSk7CmV4dGVybiBpbnQKd2Fsa19zeXN0ZW1fcmFtX3Jlcyh1NjQgc3RhcnQsIHU2NCBlbmQs
IHZvaWQgKmFyZywKICAgICAgaW50ICgqZnVuYykoc3RydWN0IHJlc291cmNlICosIHZvaWQgKikp
OwpleHRlcm4gaW50CndhbGtfaW9tZW1fcmVzX2Rlc2ModW5zaWduZWQgbG9uZyBkZXNjLCB1bnNp
Z25lZCBsb25nIGZsYWdzLCB1NjQgc3RhcnQsIHU2NCBlbmQsCiAgICAgIHZvaWQgKmFyZywgaW50
ICgqZnVuYykoc3RydWN0IHJlc291cmNlICosIHZvaWQgKikpOwoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgcmVzb3VyY2Vfb3Zl
cmxhcHMoc3RydWN0IHJlc291cmNlICpyMSwgc3RydWN0IHJlc291cmNlICpyMikKewogICAgICAg
cmV0dXJuIChyMS0+c3RhcnQgPD0gcjItPmVuZCAmJiByMS0+ZW5kID49IHIyLT5zdGFydCk7Cn0K
CnN0cnVjdCByZXNvdXJjZSAqZGV2bV9yZXF1ZXN0X2ZyZWVfbWVtX3JlZ2lvbihzdHJ1Y3QgZGV2
aWNlICpkZXYsCiAgc3RydWN0IHJlc291cmNlICpiYXNlLCB1bnNpZ25lZCBsb25nIHNpemUpOwpz
dHJ1Y3QgcmVzb3VyY2UgKnJlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKHN0cnVjdCByZXNvdXJjZSAq
YmFzZSwKICB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKm5hbWUpOwojIDE3ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgva29iamVjdC5oIiAx
CiMgMjAgIi4vaW5jbHVkZS9saW51eC9rb2JqZWN0LmgiCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3N5
c2ZzLmgiIDEKIyAxNiAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCiMgMSAiLi9pbmNsdWRlL2xp
bnV4L2tlcm5mcy5oIiAxCiMgMTMgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIyAxICIuL2lu
Y2x1ZGUvbGludXgvaWRyLmgiIDEKIyAxOSAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgpzdHJ1Y3Qg
aWRyIHsKIHN0cnVjdCB4YXJyYXkgaWRyX3J0OwogdW5zaWduZWQgaW50IGlkcl9iYXNlOwogdW5z
aWduZWQgaW50IGlkcl9uZXh0Owp9OwojIDY2ICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHVuc2ln
bmVkIGludCBpZHJfZ2V0X2N1cnNvcihjb25zdCBzdHJ1Y3QgaWRyICppZHIpCnsKIHJldHVybiAo
eyB1bmlvbiB7IHR5cGVvZihpZHItPmlkcl9uZXh0KSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191
OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKGlkci0+aWRyX25leHQpLCBfX3UuX19jLCBzaXpl
b2YoaWRyLT5pZHJfbmV4dCkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKGlkci0+
aWRyX25leHQpLCBfX3UuX19jLCBzaXplb2YoaWRyLT5pZHJfbmV4dCkpOyBkbyB7IH0gd2hpbGUg
KDApOyBfX3UuX192YWw7IH0pOwp9CiMgNzkgIi4vaW5jbHVkZS9saW51eC9pZHIuaCIKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBp
ZHJfc2V0X2N1cnNvcihzdHJ1Y3QgaWRyICppZHIsIHVuc2lnbmVkIGludCB2YWwpCnsKICh7IHVu
aW9uIHsgdHlwZW9mKGlkci0+aWRyX25leHQpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3UgPSB7
IC5fX3ZhbCA9ICggdHlwZW9mKGlkci0+aWRyX25leHQpKSAodmFsKSB9OyBfX3dyaXRlX29uY2Vf
c2l6ZSgmKGlkci0+aWRyX25leHQpLCBfX3UuX19jLCBzaXplb2YoaWRyLT5pZHJfbmV4dCkpOyBf
X3UuX192YWw7IH0pOwp9CiMgMTEyICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCnZvaWQgaWRyX3By
ZWxvYWQoZ2ZwX3QgZ2ZwX21hc2spOwoKaW50IGlkcl9hbGxvYyhzdHJ1Y3QgaWRyICosIHZvaWQg
KnB0ciwgaW50IHN0YXJ0LCBpbnQgZW5kLCBnZnBfdCk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgaWRyX2FsbG9jX3UzMihzdHJ1Y3QgaWRyICosIHZvaWQgKnB0
ciwgdTMyICppZCwKICAgIHVuc2lnbmVkIGxvbmcgbWF4LCBnZnBfdCk7CmludCBpZHJfYWxsb2Nf
Y3ljbGljKHN0cnVjdCBpZHIgKiwgdm9pZCAqcHRyLCBpbnQgc3RhcnQsIGludCBlbmQsIGdmcF90
KTsKdm9pZCAqaWRyX3JlbW92ZShzdHJ1Y3QgaWRyICosIHVuc2lnbmVkIGxvbmcgaWQpOwp2b2lk
ICppZHJfZmluZChjb25zdCBzdHJ1Y3QgaWRyICosIHVuc2lnbmVkIGxvbmcgaWQpOwppbnQgaWRy
X2Zvcl9lYWNoKGNvbnN0IHN0cnVjdCBpZHIgKiwKICAgaW50ICgqZm4pKGludCBpZCwgdm9pZCAq
cCwgdm9pZCAqZGF0YSksIHZvaWQgKmRhdGEpOwp2b2lkICppZHJfZ2V0X25leHQoc3RydWN0IGlk
ciAqLCBpbnQgKm5leHRpZCk7CnZvaWQgKmlkcl9nZXRfbmV4dF91bChzdHJ1Y3QgaWRyICosIHVu
c2lnbmVkIGxvbmcgKm5leHRpZCk7CnZvaWQgKmlkcl9yZXBsYWNlKHN0cnVjdCBpZHIgKiwgdm9p
ZCAqLCB1bnNpZ25lZCBsb25nIGlkKTsKdm9pZCBpZHJfZGVzdHJveShzdHJ1Y3QgaWRyICopOwoj
IDEzNSAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlkcl9pbml0X2Jhc2Uoc3RydWN0IGlk
ciAqaWRyLCBpbnQgYmFzZSkKewogeGFfaW5pdF9mbGFncygmaWRyLT5pZHJfcnQsICgoKCBnZnBf
dCk0KSB8ICggZ2ZwX3QpICgxIDw8ICgoKDIzICsgMCkpICsgMCkpKSk7CiBpZHItPmlkcl9iYXNl
ID0gYmFzZTsKIGlkci0+aWRyX25leHQgPSAwOwp9CiMgMTQ5ICIuL2luY2x1ZGUvbGludXgvaWRy
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHZvaWQgaWRyX2luaXQoc3RydWN0IGlkciAqaWRyKQp7CiBpZHJfaW5pdF9iYXNlKGlkciwg
MCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIGJvb2wgaWRyX2lzX2VtcHR5KGNvbnN0IHN0cnVjdCBpZHIgKmlkcikKewog
cmV0dXJuIHJhZGl4X3RyZWVfZW1wdHkoJmlkci0+aWRyX3J0KSAmJgogIHJhZGl4X3RyZWVfdGFn
Z2VkKCZpZHItPmlkcl9ydCwgMCk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgaWRyX3ByZWxvYWRfZW5kKHZvaWQp
CnsKIF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7Cn0KIyAyNDAgIi4vaW5j
bHVkZS9saW51eC9pZHIuaCIKc3RydWN0IGlkYV9iaXRtYXAgewogdW5zaWduZWQgbG9uZyBiaXRt
YXBbKDEyOCAvIHNpemVvZihsb25nKSldOwp9OwoKc3RydWN0IGlkYSB7CiBzdHJ1Y3QgeGFycmF5
IHhhOwp9OwojIDI1NSAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgppbnQgaWRhX2FsbG9jX3Jhbmdl
KHN0cnVjdCBpZGEgKiwgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1heCwgZ2ZwX3Qp
Owp2b2lkIGlkYV9mcmVlKHN0cnVjdCBpZGEgKiwgdW5zaWduZWQgaW50IGlkKTsKdm9pZCBpZGFf
ZGVzdHJveShzdHJ1Y3QgaWRhICppZGEpOwojIDI3MCAiLi9pbmNsdWRlL2xpbnV4L2lkci5oIgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgaWRhX2FsbG9jKHN0cnVjdCBpZGEgKmlkYSwgZ2ZwX3QgZ2ZwKQp7CiByZXR1cm4gaWRhX2Fs
bG9jX3JhbmdlKGlkYSwgMCwgfjAsIGdmcCk7Cn0KIyAyODcgIi4vaW5jbHVkZS9saW51eC9pZHIu
aCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGlkYV9hbGxvY19taW4oc3RydWN0IGlkYSAqaWRhLCB1bnNpZ25lZCBpbnQgbWluLCBn
ZnBfdCBnZnApCnsKIHJldHVybiBpZGFfYWxsb2NfcmFuZ2UoaWRhLCBtaW4sIH4wLCBnZnApOwp9
CiMgMzA0ICIuL2luY2x1ZGUvbGludXgvaWRyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBpZGFfYWxsb2NfbWF4KHN0cnVjdCBp
ZGEgKmlkYSwgdW5zaWduZWQgaW50IG1heCwgZ2ZwX3QgZ2ZwKQp7CiByZXR1cm4gaWRhX2FsbG9j
X3JhbmdlKGlkYSwgMCwgbWF4LCBnZnApOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGlkYV9pbml0KHN0cnVjdCBpZGEgKmlk
YSkKewogeGFfaW5pdF9mbGFncygmaWRhLT54YSwgKCgoIGdmcF90KVhBX0xPQ0tfSVJRKSB8ICgo
KCBnZnBfdCk0VSkgfCAoKCBnZnBfdCkoKDFVIDw8ICgyMyArIDApKSA8PCAoIHVuc2lnbmVkKSgo
KCB4YV9tYXJrX3QpMFUpKSkpKSkpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBpZGFfaXNfZW1wdHkoY29uc3Qgc3Ry
dWN0IGlkYSAqaWRhKQp7CiByZXR1cm4geGFfZW1wdHkoJmlkYS0+eGEpOwp9CiMgMTQgIi4vaW5j
bHVkZS9saW51eC9rZXJuZnMuaCIgMgoKCgoKCgpzdHJ1Y3QgZmlsZTsKc3RydWN0IGRlbnRyeTsK
c3RydWN0IGlhdHRyOwpzdHJ1Y3Qgc2VxX2ZpbGU7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3Ry
dWN0IHN1cGVyX2Jsb2NrOwpzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZTsKc3RydWN0IHBvbGxfdGFi
bGVfc3RydWN0OwpzdHJ1Y3QgZnNfY29udGV4dDsKCnN0cnVjdCBrZXJuZnNfZnNfY29udGV4dDsK
c3RydWN0IGtlcm5mc19vcGVuX25vZGU7CnN0cnVjdCBrZXJuZnNfaWF0dHJzOwoKZW51bSBrZXJu
ZnNfbm9kZV90eXBlIHsKIEtFUk5GU19ESVIgPSAweDAwMDEsCiBLRVJORlNfRklMRSA9IDB4MDAw
MiwKIEtFUk5GU19MSU5LID0gMHgwMDA0LAp9OwoKCgoKZW51bSBrZXJuZnNfbm9kZV9mbGFnIHsK
IEtFUk5GU19BQ1RJVkFURUQgPSAweDAwMTAsCiBLRVJORlNfTlMgPSAweDAwMjAsCiBLRVJORlNf
SEFTX1NFUV9TSE9XID0gMHgwMDQwLAogS0VSTkZTX0hBU19NTUFQID0gMHgwMDgwLAogS0VSTkZT
X0xPQ0tERVAgPSAweDAxMDAsCiBLRVJORlNfU1VJQ0lEQUwgPSAweDA0MDAsCiBLRVJORlNfU1VJ
Q0lERUQgPSAweDA4MDAsCiBLRVJORlNfRU1QVFlfRElSID0gMHgxMDAwLAogS0VSTkZTX0hBU19S
RUxFQVNFID0gMHgyMDAwLAp9OwoKCmVudW0ga2VybmZzX3Jvb3RfZmxhZyB7CgoKCgoKCiBLRVJO
RlNfUk9PVF9DUkVBVEVfREVBQ1RJVkFURUQgPSAweDAwMDEsCiMgNzQgIi4vaW5jbHVkZS9saW51
eC9rZXJuZnMuaCIKIEtFUk5GU19ST09UX0VYVFJBX09QRU5fUEVSTV9DSEVDSyA9IDB4MDAwMiwK
CgoKCgogS0VSTkZTX1JPT1RfU1VQUE9SVF9FWFBPUlRPUCA9IDB4MDAwNCwKfTsKCgpzdHJ1Y3Qg
a2VybmZzX2VsZW1fZGlyIHsKIHVuc2lnbmVkIGxvbmcgc3ViZGlyczsKCiBzdHJ1Y3QgcmJfcm9v
dCBjaGlsZHJlbjsKCgoKCgogc3RydWN0IGtlcm5mc19yb290ICpyb290Owp9OwoKc3RydWN0IGtl
cm5mc19lbGVtX3N5bWxpbmsgewogc3RydWN0IGtlcm5mc19ub2RlICp0YXJnZXRfa247Cn07Cgpz
dHJ1Y3Qga2VybmZzX2VsZW1fYXR0ciB7CiBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3BzOwog
c3RydWN0IGtlcm5mc19vcGVuX25vZGUgKm9wZW47CiBsb2ZmX3Qgc2l6ZTsKIHN0cnVjdCBrZXJu
ZnNfbm9kZSAqbm90aWZ5X25leHQ7Cn07CiMgMTE2ICIuL2luY2x1ZGUvbGludXgva2VybmZzLmgi
CnN0cnVjdCBrZXJuZnNfbm9kZSB7CiBhdG9taWNfdCBjb3VudDsKIGF0b21pY190IGFjdGl2ZTsK
IyAxMjggIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFy
ZW50OwogY29uc3QgY2hhciAqbmFtZTsKCiBzdHJ1Y3QgcmJfbm9kZSByYjsKCiBjb25zdCB2b2lk
ICpuczsKIHVuc2lnbmVkIGludCBoYXNoOwogdW5pb24gewogIHN0cnVjdCBrZXJuZnNfZWxlbV9k
aXIgZGlyOwogIHN0cnVjdCBrZXJuZnNfZWxlbV9zeW1saW5rIHN5bWxpbms7CiAgc3RydWN0IGtl
cm5mc19lbGVtX2F0dHIgYXR0cjsKIH07Cgogdm9pZCAqcHJpdjsKCgoKCgogdTY0IGlkOwoKIHVu
c2lnbmVkIHNob3J0IGZsYWdzOwogdW1vZGVfdCBtb2RlOwogc3RydWN0IGtlcm5mc19pYXR0cnMg
KmlhdHRyOwp9OwojIDE2MSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oIgpzdHJ1Y3Qga2VybmZz
X3N5c2NhbGxfb3BzIHsKIGludCAoKnNob3dfb3B0aW9ucykoc3RydWN0IHNlcV9maWxlICpzZiwg
c3RydWN0IGtlcm5mc19yb290ICpyb290KTsKCiBpbnQgKCpta2Rpcikoc3RydWN0IGtlcm5mc19u
b2RlICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICB1bW9kZV90IG1vZGUpOwogaW50
ICgqcm1kaXIpKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwogaW50ICgqcmVuYW1lKShzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtuLCBzdHJ1Y3Qga2VybmZzX25vZGUgKm5ld19wYXJlbnQsCiAgICAgICAg
Y29uc3QgY2hhciAqbmV3X25hbWUpOwogaW50ICgqc2hvd19wYXRoKShzdHJ1Y3Qgc2VxX2ZpbGUg
KnNmLCBzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLAogICAgc3RydWN0IGtlcm5mc19yb290ICpyb290
KTsKfTsKCnN0cnVjdCBrZXJuZnNfcm9vdCB7Cgogc3RydWN0IGtlcm5mc19ub2RlICprbjsKIHVu
c2lnbmVkIGludCBmbGFnczsKCgogc3RydWN0IGlkciBpbm9faWRyOwogdTMyIGxhc3RfaWRfbG93
Yml0czsKIHUzMiBpZF9oaWdoYml0czsKIHN0cnVjdCBrZXJuZnNfc3lzY2FsbF9vcHMgKnN5c2Nh
bGxfb3BzOwoKCiBzdHJ1Y3QgbGlzdF9oZWFkIHN1cGVyczsKCiB3YWl0X3F1ZXVlX2hlYWRfdCBk
ZWFjdGl2YXRlX3dhaXRxOwp9OwoKc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgewoKIHN0cnVjdCBr
ZXJuZnNfbm9kZSAqa247CiBzdHJ1Y3QgZmlsZSAqZmlsZTsKIHN0cnVjdCBzZXFfZmlsZSAqc2Vx
X2ZpbGU7CiB2b2lkICpwcml2OwoKCiBzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiBzdHJ1Y3QgbXV0ZXgg
cHJlYWxsb2NfbXV0ZXg7CiBpbnQgZXZlbnQ7CiBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiBjaGFy
ICpwcmVhbGxvY19idWY7Cgogc2l6ZV90IGF0b21pY193cml0ZV9sZW47CiBib29sIG1tYXBwZWQ6
MTsKIGJvb2wgcmVsZWFzZWQ6MTsKIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAq
dm1fb3BzOwp9OwoKc3RydWN0IGtlcm5mc19vcHMgewoKCgoKIGludCAoKm9wZW4pKHN0cnVjdCBr
ZXJuZnNfb3Blbl9maWxlICpvZik7CiB2b2lkICgqcmVsZWFzZSkoc3RydWN0IGtlcm5mc19vcGVu
X2ZpbGUgKm9mKTsKIyAyMjkgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIGludCAoKnNlcV9z
aG93KShzdHJ1Y3Qgc2VxX2ZpbGUgKnNmLCB2b2lkICp2KTsKCiB2b2lkICooKnNlcV9zdGFydCko
c3RydWN0IHNlcV9maWxlICpzZiwgbG9mZl90ICpwcG9zKTsKIHZvaWQgKigqc2VxX25leHQpKHN0
cnVjdCBzZXFfZmlsZSAqc2YsIHZvaWQgKnYsIGxvZmZfdCAqcHBvcyk7CiB2b2lkICgqc2VxX3N0
b3ApKHN0cnVjdCBzZXFfZmlsZSAqc2YsIHZvaWQgKnYpOwoKIHNzaXplX3QgKCpyZWFkKShzdHJ1
Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YsIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ5dGVzLAogICBsb2Zm
X3Qgb2ZmKTsKIyAyNDUgIi4vaW5jbHVkZS9saW51eC9rZXJuZnMuaCIKIHNpemVfdCBhdG9taWNf
d3JpdGVfbGVuOwoKCgoKCgogYm9vbCBwcmVhbGxvYzsKIHNzaXplX3QgKCp3cml0ZSkoc3RydWN0
IGtlcm5mc19vcGVuX2ZpbGUgKm9mLCBjaGFyICpidWYsIHNpemVfdCBieXRlcywKICAgIGxvZmZf
dCBvZmYpOwoKIF9fcG9sbF90ICgqcG9sbCkoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAog
ICAgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICpwdCk7CgogaW50ICgqbW1hcCkoc3RydWN0IGtl
cm5mc19vcGVuX2ZpbGUgKm9mLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CgoKCgp9OwoK
CgoKc3RydWN0IGtlcm5mc19mc19jb250ZXh0IHsKIHN0cnVjdCBrZXJuZnNfcm9vdCAqcm9vdDsK
IHZvaWQgKm5zX3RhZzsKIHVuc2lnbmVkIGxvbmcgbWFnaWM7CgoKIGJvb2wgbmV3X3NiX2NyZWF0
ZWQ7Cn07CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIGVudW0ga2VybmZzX25vZGVfdHlwZSBrZXJuZnNfdHlwZShzdHJ1Y3Qga2VybmZz
X25vZGUgKmtuKQp7CiByZXR1cm4ga24tPmZsYWdzICYgMHgwMDBmOwp9CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbm9fdCBrZXJuZnNf
aWRfaW5vKHU2NCBpZCkKewoKIGlmIChzaXplb2YoaW5vX3QpID49IHNpemVvZih1NjQpKQogIHJl
dHVybiBpZDsKIGVsc2UKICByZXR1cm4gKHUzMilpZDsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdTMyIGtlcm5mc19pZF9nZW4odTY0
IGlkKQp7CgogaWYgKHNpemVvZihpbm9fdCkgPj0gc2l6ZW9mKHU2NCkpCiAgcmV0dXJuIDE7CiBl
bHNlCiAgcmV0dXJuIGlkID4+IDMyOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbm9fdCBrZXJuZnNfaW5vKHN0cnVjdCBrZXJuZnNf
bm9kZSAqa24pCnsKIHJldHVybiBrZXJuZnNfaWRfaW5vKGtuLT5pZCk7Cn0KCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGlub190IGtlcm5m
c19nZW4oc3RydWN0IGtlcm5mc19ub2RlICprbikKewogcmV0dXJuIGtlcm5mc19pZF9nZW4oa24t
PmlkKTsKfQojIDMyMSAiLi9pbmNsdWRlL2xpbnV4L2tlcm5mcy5oIgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGtlcm5mc19lbmFi
bGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICprbikKewogKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
IShrZXJuZnNfdHlwZShrbikgIT0gS0VSTkZTX0RJUik7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpc
dCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3
XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2Fk
ZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4i
ICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQj
IGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDog
ImkiICgiaW5jbHVkZS9saW51eC9rZXJuZnMuaCIpLCAiaSIgKDMyMyksICJpIiAoKDEgPDwgMCl8
KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICgzNSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApOyB9KTsKICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoeyB1
bmlvbiB7IHR5cGVvZigoJmtuLT5kaXIuY2hpbGRyZW4pLT5yYl9ub2RlKSBfX3ZhbDsgY2hhciBf
X2NbMV07IH0gX191OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCgma24tPmRpci5jaGlsZHJl
biktPnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9k
ZSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCgma24tPmRpci5jaGlsZHJlbikt
PnJiX25vZGUpLCBfX3UuX19jLCBzaXplb2YoKCZrbi0+ZGlyLmNoaWxkcmVuKS0+cmJfbm9kZSkp
OyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pID09ICgodm9pZCAqKTApKSk7IGlmIChf
X2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lu
bGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlv
biBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQj
IGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMg
YnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIg
Ilx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIg
Ii5wb3BzZWN0aW9uIiA6IDogImkiICgiaW5jbHVkZS9saW51eC9rZXJuZnMuaCIpLCAiaSIgKDMy
NCksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihz
dHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5c
blx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzNikpOyB9KTsgfSB3aGlsZSAoMCk7IF9f
YnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKIGtuLT5mbGFncyB8PSBL
RVJORlNfTlM7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wga2VybmZzX25zX2VuYWJsZWQoc3RydWN0IGtlcm5mc19u
b2RlICprbikKewogcmV0dXJuIGtuLT5mbGFncyAmIEtFUk5GU19OUzsKfQoKaW50IGtlcm5mc19u
YW1lKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7Cmlu
dCBrZXJuZnNfcGF0aF9mcm9tX25vZGUoc3RydWN0IGtlcm5mc19ub2RlICpyb290X2tuLCBzdHJ1
Y3Qga2VybmZzX25vZGUgKmtuLAogICAgIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7CnZvaWQg
cHJfY29udF9rZXJuZnNfbmFtZShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKdm9pZCBwcl9jb250
X2tlcm5mc19wYXRoKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwpzdHJ1Y3Qga2VybmZzX25vZGUg
Kmtlcm5mc19nZXRfcGFyZW50KHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwpzdHJ1Y3Qga2VybmZz
X25vZGUgKmtlcm5mc19maW5kX2FuZF9nZXRfbnMoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQs
CiAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqbnMpOwpzdHJ1Y3Qga2VybmZz
X25vZGUgKmtlcm5mc193YWxrX2FuZF9nZXRfbnMoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQs
CiAgICAgICAgY29uc3QgY2hhciAqcGF0aCwgY29uc3Qgdm9pZCAqbnMpOwp2b2lkIGtlcm5mc19n
ZXQoc3RydWN0IGtlcm5mc19ub2RlICprbik7CnZvaWQga2VybmZzX3B1dChzdHJ1Y3Qga2VybmZz
X25vZGUgKmtuKTsKCnN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX25vZGVfZnJvbV9kZW50cnko
c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsKc3RydWN0IGtlcm5mc19yb290ICprZXJuZnNfcm9vdF9m
cm9tX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpzdHJ1Y3QgaW5vZGUgKmtlcm5mc19nZXRf
aW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtlcm5mc19ub2RlICprbik7Cgpz
dHJ1Y3QgZGVudHJ5ICprZXJuZnNfbm9kZV9kZW50cnkoc3RydWN0IGtlcm5mc19ub2RlICprbiwK
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CnN0cnVjdCBrZXJuZnNfcm9vdCAqa2VybmZz
X2NyZWF0ZV9yb290KHN0cnVjdCBrZXJuZnNfc3lzY2FsbF9vcHMgKnNjb3BzLAogICAgICAgICAg
IHVuc2lnbmVkIGludCBmbGFncywgdm9pZCAqcHJpdik7CnZvaWQga2VybmZzX2Rlc3Ryb3lfcm9v
dChzdHJ1Y3Qga2VybmZzX3Jvb3QgKnJvb3QpOwoKc3RydWN0IGtlcm5mc19ub2RlICprZXJuZnNf
Y3JlYXRlX2Rpcl9ucyhzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwKICAgICAgY29uc3QgY2hh
ciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBrdWlkX3QgdWlkLCBrZ2lkX3QgZ2lkLAogICAg
ICB2b2lkICpwcml2LCBjb25zdCB2b2lkICpucyk7CnN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZz
X2NyZWF0ZV9lbXB0eV9kaXIoc3RydWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCiAgICAgICAgIGNv
bnN0IGNoYXIgKm5hbWUpOwpzdHJ1Y3Qga2VybmZzX25vZGUgKl9fa2VybmZzX2NyZWF0ZV9maWxl
KHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LAogICAgICBjb25zdCBjaGFyICpuYW1lLCB1bW9k
ZV90IG1vZGUsCiAgICAgIGt1aWRfdCB1aWQsIGtnaWRfdCBnaWQsCiAgICAgIGxvZmZfdCBzaXpl
LAogICAgICBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3BzLAogICAgICB2b2lkICpwcml2LCBj
b25zdCB2b2lkICpucywKICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOwpzdHJ1Y3Qg
a2VybmZzX25vZGUgKmtlcm5mc19jcmVhdGVfbGluayhzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVu
dCwKICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgIHN0cnVjdCBrZXJuZnNf
bm9kZSAqdGFyZ2V0KTsKdm9pZCBrZXJuZnNfYWN0aXZhdGUoc3RydWN0IGtlcm5mc19ub2RlICpr
bik7CnZvaWQga2VybmZzX3JlbW92ZShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKdm9pZCBrZXJu
ZnNfYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3RydWN0IGtlcm5mc19ub2RlICprbik7CnZvaWQg
a2VybmZzX3VuYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3RydWN0IGtlcm5mc19ub2RlICprbik7
CmJvb2wga2VybmZzX3JlbW92ZV9zZWxmKHN0cnVjdCBrZXJuZnNfbm9kZSAqa24pOwppbnQga2Vy
bmZzX3JlbW92ZV9ieV9uYW1lX25zKHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25zdCBj
aGFyICpuYW1lLAogICAgICAgIGNvbnN0IHZvaWQgKm5zKTsKaW50IGtlcm5mc19yZW5hbWVfbnMo
c3RydWN0IGtlcm5mc19ub2RlICprbiwgc3RydWN0IGtlcm5mc19ub2RlICpuZXdfcGFyZW50LAog
ICAgICAgY29uc3QgY2hhciAqbmV3X25hbWUsIGNvbnN0IHZvaWQgKm5ld19ucyk7CmludCBrZXJu
ZnNfc2V0YXR0cihzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLCBjb25zdCBzdHJ1Y3QgaWF0dHIgKmlh
dHRyKTsKX19wb2xsX3Qga2VybmZzX2dlbmVyaWNfcG9sbChzdHJ1Y3Qga2VybmZzX29wZW5fZmls
ZSAqb2YsCiAgICAgICAgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICpwdCk7CnZvaWQga2VybmZz
X25vdGlmeShzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKTsKCmludCBrZXJuZnNfeGF0dHJfZ2V0KHN0
cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICB2b2lkICp2YWx1
ZSwgc2l6ZV90IHNpemUpOwppbnQga2VybmZzX3hhdHRyX3NldChzdHJ1Y3Qga2VybmZzX25vZGUg
KmtuLCBjb25zdCBjaGFyICpuYW1lLAogICAgICAgY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBz
aXplLCBpbnQgZmxhZ3MpOwoKY29uc3Qgdm9pZCAqa2VybmZzX3N1cGVyX25zKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IpOwppbnQga2VybmZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYyk7
CnZvaWQga2VybmZzX2ZyZWVfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpOwp2b2lk
IGtlcm5mc19raWxsX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwoKdm9pZCBrZXJuZnNfaW5p
dCh2b2lkKTsKCnN0cnVjdCBrZXJuZnNfbm9kZSAqa2VybmZzX2ZpbmRfYW5kX2dldF9ub2RlX2J5
X2lkKHN0cnVjdCBrZXJuZnNfcm9vdCAqcm9vdCwKICAgICAgICAgdTY0IGlkKTsKIyA1MzMgIi4v
aW5jbHVkZS9saW51eC9rZXJuZnMuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2du
dV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChu
b19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGtlcm5mc19wYXRoKHN0cnVjdCBrZXJuZnNfbm9k
ZSAqa24sIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKewogcmV0dXJuIGtlcm5mc19wYXRoX2Zy
b21fbm9kZShrbiwgKCh2b2lkICopMCksIGJ1ZiwgYnVmbGVuKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGtlcm5mc19u
b2RlICoKa2VybmZzX2ZpbmRfYW5kX2dldChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuLCBjb25zdCBj
aGFyICpuYW1lKQp7CiByZXR1cm4ga2VybmZzX2ZpbmRfYW5kX2dldF9ucyhrbiwgbmFtZSwgKCh2
b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUgKgprZXJuZnNfd2Fsa19hbmRfZ2V0KHN0
cnVjdCBrZXJuZnNfbm9kZSAqa24sIGNvbnN0IGNoYXIgKnBhdGgpCnsKIHJldHVybiBrZXJuZnNf
d2Fsa19hbmRfZ2V0X25zKGtuLCBwYXRoLCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrZXJuZnNf
bm9kZSAqCmtlcm5mc19jcmVhdGVfZGlyKHN0cnVjdCBrZXJuZnNfbm9kZSAqcGFyZW50LCBjb25z
dCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsCiAgICB2b2lkICpwcml2KQp7CiByZXR1cm4ga2Vy
bmZzX2NyZWF0ZV9kaXJfbnMocGFyZW50LCBuYW1lLCBtb2RlLAogICAgICAgIChrdWlkX3QpeyAw
IH0sIChrZ2lkX3QpeyAwIH0sCiAgICAgICAgcHJpdiwgKCh2b2lkICopMCkpOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qg
a2VybmZzX25vZGUgKgprZXJuZnNfY3JlYXRlX2ZpbGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICpw
YXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgdW1vZGVfdCBtb2RlLCBrdWlkX3QgdWlk
LCBrZ2lkX3QgZ2lkLAogICAgICAgIGxvZmZfdCBzaXplLCBjb25zdCBzdHJ1Y3Qga2VybmZzX29w
cyAqb3BzLAogICAgICAgIHZvaWQgKnByaXYsIGNvbnN0IHZvaWQgKm5zKQp7CiBzdHJ1Y3QgbG9j
a19jbGFzc19rZXkgKmtleSA9ICgodm9pZCAqKTApOwoKCgoKIHJldHVybiBfX2tlcm5mc19jcmVh
dGVfZmlsZShwYXJlbnQsIG5hbWUsIG1vZGUsIHVpZCwgZ2lkLAogICAgICAgIHNpemUsIG9wcywg
cHJpdiwgbnMsIGtleSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrZXJuZnNfbm9kZSAqCmtlcm5mc19jcmVhdGVfZmls
ZShzdHJ1Y3Qga2VybmZzX25vZGUgKnBhcmVudCwgY29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBt
b2RlLAogICAgIGxvZmZfdCBzaXplLCBjb25zdCBzdHJ1Y3Qga2VybmZzX29wcyAqb3BzLCB2b2lk
ICpwcml2KQp7CiByZXR1cm4ga2VybmZzX2NyZWF0ZV9maWxlX25zKHBhcmVudCwgbmFtZSwgbW9k
ZSwKICAgICAgICAgKGt1aWRfdCl7IDAgfSwgKGtnaWRfdCl7IDAgfSwKICAgICAgICAgc2l6ZSwg
b3BzLCBwcml2LCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBrZXJuZnNfcmVtb3ZlX2J5X25hbWUoc3Ry
dWN0IGtlcm5mc19ub2RlICpwYXJlbnQsCiAgICAgY29uc3QgY2hhciAqbmFtZSkKewogcmV0dXJu
IGtlcm5mc19yZW1vdmVfYnlfbmFtZV9ucyhwYXJlbnQsIG5hbWUsICgodm9pZCAqKTApKTsKfQoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
aW50IGtlcm5mc19yZW5hbWUoc3RydWN0IGtlcm5mc19ub2RlICprbiwKICAgIHN0cnVjdCBrZXJu
ZnNfbm9kZSAqbmV3X3BhcmVudCwKICAgIGNvbnN0IGNoYXIgKm5ld19uYW1lKQp7CiByZXR1cm4g
a2VybmZzX3JlbmFtZV9ucyhrbiwgbmV3X3BhcmVudCwgbmV3X25hbWUsICgodm9pZCAqKTApKTsK
fQojIDE3ICIuL2luY2x1ZGUvbGludXgvc3lzZnMuaCIgMgoKCgoKIyAxICIuL2luY2x1ZGUvbGlu
dXgva29iamVjdF9ucy5oIiAxCiMgMTkgIi4vaW5jbHVkZS9saW51eC9rb2JqZWN0X25zLmgiCnN0
cnVjdCBzb2NrOwpzdHJ1Y3Qga29iamVjdDsKCgoKCgplbnVtIGtvYmpfbnNfdHlwZSB7CiBLT0JK
X05TX1RZUEVfTk9ORSA9IDAsCiBLT0JKX05TX1RZUEVfTkVULAogS09CSl9OU19UWVBFUwp9Owoj
IDM5ICIuL2luY2x1ZGUvbGludXgva29iamVjdF9ucy5oIgpzdHJ1Y3Qga29ial9uc190eXBlX29w
ZXJhdGlvbnMgewogZW51bSBrb2JqX25zX3R5cGUgdHlwZTsKIGJvb2wgKCpjdXJyZW50X21heV9t
b3VudCkodm9pZCk7CiB2b2lkICooKmdyYWJfY3VycmVudF9ucykodm9pZCk7CiBjb25zdCB2b2lk
ICooKm5ldGxpbmtfbnMpKHN0cnVjdCBzb2NrICpzayk7CiBjb25zdCB2b2lkICooKmluaXRpYWxf
bnMpKHZvaWQpOwogdm9pZCAoKmRyb3BfbnMpKHZvaWQgKik7Cn07CgppbnQga29ial9uc190eXBl
X3JlZ2lzdGVyKGNvbnN0IHN0cnVjdCBrb2JqX25zX3R5cGVfb3BlcmF0aW9ucyAqb3BzKTsKaW50
IGtvYmpfbnNfdHlwZV9yZWdpc3RlcmVkKGVudW0ga29ial9uc190eXBlIHR5cGUpOwpjb25zdCBz
dHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlvbnMgKmtvYmpfY2hpbGRfbnNfb3BzKHN0cnVjdCBr
b2JqZWN0ICpwYXJlbnQpOwpjb25zdCBzdHJ1Y3Qga29ial9uc190eXBlX29wZXJhdGlvbnMgKmtv
YmpfbnNfb3BzKHN0cnVjdCBrb2JqZWN0ICprb2JqKTsKCmJvb2wga29ial9uc19jdXJyZW50X21h
eV9tb3VudChlbnVtIGtvYmpfbnNfdHlwZSB0eXBlKTsKdm9pZCAqa29ial9uc19ncmFiX2N1cnJl
bnQoZW51bSBrb2JqX25zX3R5cGUgdHlwZSk7CmNvbnN0IHZvaWQgKmtvYmpfbnNfbmV0bGluayhl
bnVtIGtvYmpfbnNfdHlwZSB0eXBlLCBzdHJ1Y3Qgc29jayAqc2spOwpjb25zdCB2b2lkICprb2Jq
X25zX2luaXRpYWwoZW51bSBrb2JqX25zX3R5cGUgdHlwZSk7CnZvaWQga29ial9uc19kcm9wKGVu
dW0ga29ial9uc190eXBlIHR5cGUsIHZvaWQgKm5zKTsKIyAyMiAiLi9pbmNsdWRlL2xpbnV4L3N5
c2ZzLmgiIDIKCgoKc3RydWN0IGtvYmplY3Q7CnN0cnVjdCBtb2R1bGU7CnN0cnVjdCBiaW5fYXR0
cmlidXRlOwplbnVtIGtvYmpfbnNfdHlwZTsKCnN0cnVjdCBhdHRyaWJ1dGUgewogY29uc3QgY2hh
ciAqbmFtZTsKIHVtb2RlX3QgbW9kZTsKCgoKCgp9OwojIDg0ICIuL2luY2x1ZGUvbGludXgvc3lz
ZnMuaCIKc3RydWN0IGF0dHJpYnV0ZV9ncm91cCB7CiBjb25zdCBjaGFyICpuYW1lOwogdW1vZGVf
dCAoKmlzX3Zpc2libGUpKHN0cnVjdCBrb2JqZWN0ICosCiAgICAgICAgICAgc3RydWN0IGF0dHJp
YnV0ZSAqLCBpbnQpOwogdW1vZGVfdCAoKmlzX2Jpbl92aXNpYmxlKShzdHJ1Y3Qga29iamVjdCAq
LAogICAgICAgIHN0cnVjdCBiaW5fYXR0cmlidXRlICosIGludCk7CiBzdHJ1Y3QgYXR0cmlidXRl
ICoqYXR0cnM7CiBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqKmJpbl9hdHRyczsKfTsKIyAxNTggIi4v
aW5jbHVkZS9saW51eC9zeXNmcy5oIgpzdHJ1Y3QgZmlsZTsKc3RydWN0IHZtX2FyZWFfc3RydWN0
OwoKc3RydWN0IGJpbl9hdHRyaWJ1dGUgewogc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwogc2l6ZV90
IHNpemU7CiB2b2lkICpwcml2YXRlOwogc3NpemVfdCAoKnJlYWQpKHN0cnVjdCBmaWxlICosIHN0
cnVjdCBrb2JqZWN0ICosIHN0cnVjdCBiaW5fYXR0cmlidXRlICosCiAgIGNoYXIgKiwgbG9mZl90
LCBzaXplX3QpOwogc3NpemVfdCAoKndyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVj
dCAqLCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqLAogICAgY2hhciAqLCBsb2ZmX3QsIHNpemVfdCk7
CiBpbnQgKCptbWFwKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qga29iamVjdCAqLCBzdHJ1Y3QgYmlu
X2F0dHJpYnV0ZSAqYXR0ciwKICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwp9Owoj
IDIyMyAiLi9pbmNsdWRlL2xpbnV4L3N5c2ZzLmgiCnN0cnVjdCBzeXNmc19vcHMgewogc3NpemVf
dCAoKnNob3cpKHN0cnVjdCBrb2JqZWN0ICosIHN0cnVjdCBhdHRyaWJ1dGUgKiwgY2hhciAqKTsK
IHNzaXplX3QgKCpzdG9yZSkoc3RydWN0IGtvYmplY3QgKiwgc3RydWN0IGF0dHJpYnV0ZSAqLCBj
b25zdCBjaGFyICosIHNpemVfdCk7Cn07CgoKCmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51
c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2Rpcl9ucyhzdHJ1Y3Qga29iamVjdCAqa29iaiwg
Y29uc3Qgdm9pZCAqbnMpOwp2b2lkIHN5c2ZzX3JlbW92ZV9kaXIoc3RydWN0IGtvYmplY3QgKmtv
YmopOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIHN5c2ZzX3Jl
bmFtZV9kaXJfbnMoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5ld19uYW1lLAog
ICAgICAgICBjb25zdCB2b2lkICpuZXdfbnMpOwppbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIHN5c2ZzX21vdmVfZGlyX25zKHN0cnVjdCBrb2JqZWN0ICprb2JqLAog
ICAgICAgc3RydWN0IGtvYmplY3QgKm5ld19wYXJlbnRfa29iaiwKICAgICAgIGNvbnN0IHZvaWQg
Km5ld19ucyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lz
ZnNfY3JlYXRlX21vdW50X3BvaW50KHN0cnVjdCBrb2JqZWN0ICpwYXJlbnRfa29iaiwKICAgICAg
IGNvbnN0IGNoYXIgKm5hbWUpOwp2b2lkIHN5c2ZzX3JlbW92ZV9tb3VudF9wb2ludChzdHJ1Y3Qg
a29iamVjdCAqcGFyZW50X2tvYmosCiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOwoKaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jcmVhdGVfZmlsZV9u
cyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUg
KmF0dHIsCiAgICAgICAgICBjb25zdCB2b2lkICpucyk7CmludCBfX2F0dHJpYnV0ZV9fKChfX3dh
cm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2ZpbGVzKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLAogICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqIGNvbnN0ICphdHRyKTsKaW50IF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jaG1vZF9maWxlKHN0
cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCB1
bW9kZV90IG1vZGUpOwpzdHJ1Y3Qga2VybmZzX25vZGUgKnN5c2ZzX2JyZWFrX2FjdGl2ZV9wcm90
ZWN0aW9uKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1
dGUgKmF0dHIpOwp2b2lkIHN5c2ZzX3VuYnJlYWtfYWN0aXZlX3Byb3RlY3Rpb24oc3RydWN0IGtl
cm5mc19ub2RlICprbik7CnZvaWQgc3lzZnNfcmVtb3ZlX2ZpbGVfbnMoc3RydWN0IGtvYmplY3Qg
KmtvYmosIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCiAgICAgY29uc3Qgdm9pZCAqbnMp
Owpib29sIHN5c2ZzX3JlbW92ZV9maWxlX3NlbGYoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0
IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpOwp2b2lkIHN5c2ZzX3JlbW92ZV9maWxlcyhzdHJ1Y3Qg
a29iamVjdCAqa29iaiwgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqIGNvbnN0ICphdHRyKTsKCmlu
dCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2Jp
bl9maWxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAgICAgIGNvbnN0IHN0cnVjdCBiaW5f
YXR0cmlidXRlICphdHRyKTsKdm9pZCBzeXNmc19yZW1vdmVfYmluX2ZpbGUoc3RydWN0IGtvYmpl
Y3QgKmtvYmosCiAgICAgIGNvbnN0IHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyKTsKCmludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgc3lzZnNfY3JlYXRlX2xpbmso
c3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2JqZWN0ICp0YXJnZXQsCiAgICAgICBjb25z
dCBjaGFyICpuYW1lKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18p
KSBzeXNmc19jcmVhdGVfbGlua19ub3dhcm4oc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgICBz
dHJ1Y3Qga29iamVjdCAqdGFyZ2V0LAogICAgICAgY29uc3QgY2hhciAqbmFtZSk7CnZvaWQgc3lz
ZnNfcmVtb3ZlX2xpbmsoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKm5hbWUpOwoK
aW50IHN5c2ZzX3JlbmFtZV9saW5rX25zKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29i
amVjdCAqdGFyZ2V0LAogICAgY29uc3QgY2hhciAqb2xkX25hbWUsIGNvbnN0IGNoYXIgKm5ld19u
YW1lLAogICAgY29uc3Qgdm9pZCAqbmV3X25zKTsKCnZvaWQgc3lzZnNfZGVsZXRlX2xpbmsoc3Ry
dWN0IGtvYmplY3QgKmRpciwgc3RydWN0IGtvYmplY3QgKnRhcmcsCiAgIGNvbnN0IGNoYXIgKm5h
bWUpOwoKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19j
cmVhdGVfZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgICAgY29uc3Qgc3RydWN0IGF0
dHJpYnV0ZV9ncm91cCAqZ3JwKTsKaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVz
dWx0X18pKSBzeXNmc19jcmVhdGVfZ3JvdXBzKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAg
ICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBzKTsKaW50IF9fYXR0cmlidXRl
X18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc191cGRhdGVfZ3JvdXBzKHN0cnVjdCBr
b2JqZWN0ICprb2JqLAogICAgICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3Jv
dXBzKTsKaW50IHN5c2ZzX3VwZGF0ZV9ncm91cChzdHJ1Y3Qga29iamVjdCAqa29iaiwKICAgICAg
ICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKdm9pZCBzeXNmc19yZW1vdmVf
Z3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv
dXAgKmdycCk7CnZvaWQgc3lzZnNfcmVtb3ZlX2dyb3VwcyhzdHJ1Y3Qga29iamVjdCAqa29iaiwK
ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwppbnQgc3lzZnNfYWRk
X2ZpbGVfdG9fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgIGNvbnN0IHN0cnVjdCBhdHRy
aWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmdyb3VwKTsKdm9pZCBzeXNmc19yZW1vdmVfZmlsZV9m
cm9tX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRl
ICphdHRyLCBjb25zdCBjaGFyICpncm91cCk7CmludCBzeXNmc19tZXJnZV9ncm91cChzdHJ1Y3Qg
a29iamVjdCAqa29iaiwKICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3Jw
KTsKdm9pZCBzeXNmc191bm1lcmdlX2dyb3VwKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogICAgICAg
ICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncnApOwppbnQgc3lzZnNfYWRkX2xpbmtf
dG9fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKmdyb3VwX25hbWUsCiAg
ICAgICBzdHJ1Y3Qga29iamVjdCAqdGFyZ2V0LCBjb25zdCBjaGFyICpsaW5rX25hbWUpOwp2b2lk
IHN5c2ZzX3JlbW92ZV9saW5rX2Zyb21fZ3JvdXAoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0
IGNoYXIgKmdyb3VwX25hbWUsCiAgICAgIGNvbnN0IGNoYXIgKmxpbmtfbmFtZSk7CmludCBfX2Nv
bXBhdF9vbmx5X3N5c2ZzX2xpbmtfZW50cnlfdG9fa29iaihzdHJ1Y3Qga29iamVjdCAqa29iaiwK
ICAgICAgICAgIHN0cnVjdCBrb2JqZWN0ICp0YXJnZXRfa29iaiwKICAgICAgICAgIGNvbnN0IGNo
YXIgKnRhcmdldF9uYW1lKTsKCnZvaWQgc3lzZnNfbm90aWZ5KHN0cnVjdCBrb2JqZWN0ICprb2Jq
LCBjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKmF0dHIpOwoKaW50IF9fYXR0cmlidXRlX18o
KF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19pbml0KHZvaWQpOwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBzeXNmc19l
bmFibGVfbnMoc3RydWN0IGtlcm5mc19ub2RlICprbikKewogcmV0dXJuIGtlcm5mc19lbmFibGVf
bnMoa24pOwp9CiMgNTI3ICIuL2luY2x1ZGUvbGludXgvc3lzZnMuaCIKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmlidXRl
X18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBzeXNmc19jcmVhdGVfZmlsZShzdHJ1Y3Qga29i
amVjdCAqa29iaiwKICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCnsKIHJldHVy
biBzeXNmc19jcmVhdGVfZmlsZV9ucyhrb2JqLCBhdHRyLCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQg
c3lzZnNfcmVtb3ZlX2ZpbGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgICAgIGNvbnN0IHN0
cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCnsKIHN5c2ZzX3JlbW92ZV9maWxlX25zKGtvYmosIGF0dHIs
ICgodm9pZCAqKTApKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHN5c2ZzX3JlbmFtZV9saW5rKHN0cnVjdCBrb2JqZWN0ICpr
b2JqLCBzdHJ1Y3Qga29iamVjdCAqdGFyZ2V0LAogICAgICAgIGNvbnN0IGNoYXIgKm9sZF9uYW1l
LCBjb25zdCBjaGFyICpuZXdfbmFtZSkKewogcmV0dXJuIHN5c2ZzX3JlbmFtZV9saW5rX25zKGtv
YmosIHRhcmdldCwgb2xkX25hbWUsIG5ld19uYW1lLCAoKHZvaWQgKikwKSk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc3lz
ZnNfbm90aWZ5X2RpcmVudChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQp7CiBrZXJuZnNfbm90aWZ5
KGtuKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGtlcm5mc19ub2RlICpzeXNmc19nZXRfZGlyZW50KHN0cnVjdCBrZXJu
ZnNfbm9kZSAqcGFyZW50LAogICAgICAgICBjb25zdCBjaGFyICpuYW1lKQp7CiByZXR1cm4ga2Vy
bmZzX2ZpbmRfYW5kX2dldChwYXJlbnQsIG5hbWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga2VybmZzX25vZGUgKnN5
c2ZzX2dldChzdHJ1Y3Qga2VybmZzX25vZGUgKmtuKQp7CiBrZXJuZnNfZ2V0KGtuKTsKIHJldHVy
biBrbjsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCBzeXNmc19wdXQoc3RydWN0IGtlcm5mc19ub2RlICprbikKewoga2VybmZz
X3B1dChrbik7Cn0KIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIgMgojIDQxICIuL2lu
Y2x1ZGUvbGludXgva29iamVjdC5oIgpleHRlcm4gdTY0IHVldmVudF9zZXFudW07CiMgNTMgIi4v
aW5jbHVkZS9saW51eC9rb2JqZWN0LmgiCmVudW0ga29iamVjdF9hY3Rpb24gewogS09CSl9BREQs
CiBLT0JKX1JFTU9WRSwKIEtPQkpfQ0hBTkdFLAogS09CSl9NT1ZFLAogS09CSl9PTkxJTkUsCiBL
T0JKX09GRkxJTkUsCiBLT0JKX0JJTkQsCiBLT0JKX1VOQklORCwKIEtPQkpfTUFYCn07CgpzdHJ1
Y3Qga29iamVjdCB7CiBjb25zdCBjaGFyICpuYW1lOwogc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsK
IHN0cnVjdCBrb2JqZWN0ICpwYXJlbnQ7CiBzdHJ1Y3Qga3NldCAqa3NldDsKIHN0cnVjdCBrb2Jq
X3R5cGUgKmt0eXBlOwogc3RydWN0IGtlcm5mc19ub2RlICpzZDsKIHN0cnVjdCBrcmVmIGtyZWY7
CgoKCiB1bnNpZ25lZCBpbnQgc3RhdGVfaW5pdGlhbGl6ZWQ6MTsKIHVuc2lnbmVkIGludCBzdGF0
ZV9pbl9zeXNmczoxOwogdW5zaWduZWQgaW50IHN0YXRlX2FkZF91ZXZlbnRfc2VudDoxOwogdW5z
aWduZWQgaW50IHN0YXRlX3JlbW92ZV91ZXZlbnRfc2VudDoxOwogdW5zaWduZWQgaW50IHVldmVu
dF9zdXBwcmVzczoxOwp9OwoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRm
LCAyLCAzKSkpCmludCBrb2JqZWN0X3NldF9uYW1lKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBjb25z
dCBjaGFyICpuYW1lLCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDIsIDApKSkKaW50IGtvYmplY3Rfc2V0X25hbWVfdmFyZ3Moc3RydWN0IGtvYmplY3QgKmtv
YmosIGNvbnN0IGNoYXIgKmZtdCwKICAgICAgdmFfbGlzdCB2YXJncyk7CgpzdGF0aWMgaW5saW5l
IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRf
XykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBjb25zdCBjaGFyICpr
b2JqZWN0X25hbWUoY29uc3Qgc3RydWN0IGtvYmplY3QgKmtvYmopCnsKIHJldHVybiBrb2JqLT5u
YW1lOwp9CgpleHRlcm4gdm9pZCBrb2JqZWN0X2luaXQoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0
cnVjdCBrb2JqX3R5cGUgKmt0eXBlKTsKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18o
cHJpbnRmLCAzLCA0KSkpIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKQpp
bnQga29iamVjdF9hZGQoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2JqZWN0ICpwYXJl
bnQsCiAgY29uc3QgY2hhciAqZm10LCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3Jt
YXRfXyhwcmludGYsIDQsIDUpKSkgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRf
XykpCmludCBrb2JqZWN0X2luaXRfYW5kX2FkZChzdHJ1Y3Qga29iamVjdCAqa29iaiwKICAgIHN0
cnVjdCBrb2JqX3R5cGUgKmt0eXBlLCBzdHJ1Y3Qga29iamVjdCAqcGFyZW50LAogICAgY29uc3Qg
Y2hhciAqZm10LCAuLi4pOwoKZXh0ZXJuIHZvaWQga29iamVjdF9kZWwoc3RydWN0IGtvYmplY3Qg
KmtvYmopOwoKZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICogX19hdHRyaWJ1dGVfXygoX193YXJuX3Vu
dXNlZF9yZXN1bHRfXykpIGtvYmplY3RfY3JlYXRlKHZvaWQpOwpleHRlcm4gc3RydWN0IGtvYmpl
Y3QgKiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga29iamVjdF9jcmVh
dGVfYW5kX2FkZChjb25zdCBjaGFyICpuYW1lLAogICAgICBzdHJ1Y3Qga29iamVjdCAqcGFyZW50
KTsKCmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtv
YmplY3RfcmVuYW1lKHN0cnVjdCBrb2JqZWN0ICosIGNvbnN0IGNoYXIgKm5ld19uYW1lKTsKZXh0
ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkga29iamVjdF9t
b3ZlKHN0cnVjdCBrb2JqZWN0ICosIHN0cnVjdCBrb2JqZWN0ICopOwoKZXh0ZXJuIHN0cnVjdCBr
b2JqZWN0ICprb2JqZWN0X2dldChzdHJ1Y3Qga29iamVjdCAqa29iaik7CmV4dGVybiBzdHJ1Y3Qg
a29iamVjdCAqIF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBrb2JqZWN0
X2dldF91bmxlc3NfemVybygKICAgICAgc3RydWN0IGtvYmplY3QgKmtvYmopOwpleHRlcm4gdm9p
ZCBrb2JqZWN0X3B1dChzdHJ1Y3Qga29iamVjdCAqa29iaik7CgpleHRlcm4gY29uc3Qgdm9pZCAq
a29iamVjdF9uYW1lc3BhY2Uoc3RydWN0IGtvYmplY3QgKmtvYmopOwpleHRlcm4gdm9pZCBrb2Jq
ZWN0X2dldF9vd25lcnNoaXAoc3RydWN0IGtvYmplY3QgKmtvYmosCiAgICAgIGt1aWRfdCAqdWlk
LCBrZ2lkX3QgKmdpZCk7CmV4dGVybiBjaGFyICprb2JqZWN0X2dldF9wYXRoKHN0cnVjdCBrb2Jq
ZWN0ICprb2JqLCBnZnBfdCBmbGFnKTsKIyAxMzIgIi4vaW5jbHVkZS9saW51eC9rb2JqZWN0Lmgi
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wga29iamVjdF9oYXNfY2hpbGRyZW4oc3RydWN0IGtvYmplY3QgKmtvYmopCnsKICh7IGlu
dCBfX3JldF93YXJuX29uID0gISEoa3JlZl9yZWFkKCZrb2JqLT5rcmVmKSA9PSAwKTsgaWYgKF9f
YnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5s
aW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9u
IF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMg
YnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBi
dWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAi
XHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAi
LnBvcHNlY3Rpb24iIDogOiAiaSIgKCJpbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIpLCAiaSIgKDEz
NCksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihz
dHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5c
dCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5c
blx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzNykpOyB9KTsgfSB3aGlsZSAoMCk7IF9f
YnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsKCiByZXR1cm4ga29iai0+
c2QgJiYga29iai0+c2QtPmRpci5zdWJkaXJzOwp9CgpzdHJ1Y3Qga29ial90eXBlIHsKIHZvaWQg
KCpyZWxlYXNlKShzdHJ1Y3Qga29iamVjdCAqa29iaik7CiBjb25zdCBzdHJ1Y3Qgc3lzZnNfb3Bz
ICpzeXNmc19vcHM7CiBzdHJ1Y3QgYXR0cmlidXRlICoqZGVmYXVsdF9hdHRyczsKIGNvbnN0IHN0
cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipkZWZhdWx0X2dyb3VwczsKIGNvbnN0IHN0cnVjdCBrb2Jq
X25zX3R5cGVfb3BlcmF0aW9ucyAqKCpjaGlsZF9uc190eXBlKShzdHJ1Y3Qga29iamVjdCAqa29i
aik7CiBjb25zdCB2b2lkICooKm5hbWVzcGFjZSkoc3RydWN0IGtvYmplY3QgKmtvYmopOwogdm9p
ZCAoKmdldF9vd25lcnNoaXApKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBrdWlkX3QgKnVpZCwga2dp
ZF90ICpnaWQpOwp9OwoKc3RydWN0IGtvYmpfdWV2ZW50X2VudiB7CiBjaGFyICphcmd2WzNdOwog
Y2hhciAqZW52cFszMl07CiBpbnQgZW52cF9pZHg7CiBjaGFyIGJ1ZlsyMDQ4XTsKIGludCBidWZs
ZW47Cn07CgpzdHJ1Y3Qga3NldF91ZXZlbnRfb3BzIHsKIGludCAoKiBjb25zdCBmaWx0ZXIpKHN0
cnVjdCBrc2V0ICprc2V0LCBzdHJ1Y3Qga29iamVjdCAqa29iaik7CiBjb25zdCBjaGFyICooKiBj
b25zdCBuYW1lKShzdHJ1Y3Qga3NldCAqa3NldCwgc3RydWN0IGtvYmplY3QgKmtvYmopOwogaW50
ICgqIGNvbnN0IHVldmVudCkoc3RydWN0IGtzZXQgKmtzZXQsIHN0cnVjdCBrb2JqZWN0ICprb2Jq
LAogICAgICAgIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7Cn07CgpzdHJ1Y3Qga29ial9h
dHRyaWJ1dGUgewogc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwogc3NpemVfdCAoKnNob3cpKHN0cnVj
dCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCiAgIGNoYXIgKmJ1
Zik7CiBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9h
dHRyaWJ1dGUgKmF0dHIsCiAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCk7Cn07Cgpl
eHRlcm4gY29uc3Qgc3RydWN0IHN5c2ZzX29wcyBrb2JqX3N5c2ZzX29wczsKCnN0cnVjdCBzb2Nr
OwojIDE5MyAiLi9pbmNsdWRlL2xpbnV4L2tvYmplY3QuaCIKc3RydWN0IGtzZXQgewogc3RydWN0
IGxpc3RfaGVhZCBsaXN0Owogc3BpbmxvY2tfdCBsaXN0X2xvY2s7CiBzdHJ1Y3Qga29iamVjdCBr
b2JqOwogY29uc3Qgc3RydWN0IGtzZXRfdWV2ZW50X29wcyAqdWV2ZW50X29wczsKfSBfX2F0dHJp
YnV0ZV9fKChfX2Rlc2lnbmF0ZWRfaW5pdF9fKSk7CgpleHRlcm4gdm9pZCBrc2V0X2luaXQoc3Ry
dWN0IGtzZXQgKmtzZXQpOwpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRf
cmVzdWx0X18pKSBrc2V0X3JlZ2lzdGVyKHN0cnVjdCBrc2V0ICprc2V0KTsKZXh0ZXJuIHZvaWQg
a3NldF91bnJlZ2lzdGVyKHN0cnVjdCBrc2V0ICprc2V0KTsKZXh0ZXJuIHN0cnVjdCBrc2V0ICog
X19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGtzZXRfY3JlYXRlX2FuZF9h
ZGQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgY29uc3Qgc3RydWN0IGtzZXRfdWV2ZW50X29wcyAq
dSwKICAgICAgc3RydWN0IGtvYmplY3QgKnBhcmVudF9rb2JqKTsKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrc2V0ICp0b19r
c2V0KHN0cnVjdCBrb2JqZWN0ICprb2JqKQp7CiByZXR1cm4ga29iaiA/ICh7IHZvaWQgKl9fbXB0
ciA9ICh2b2lkICopKGtvYmopOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNzZXJ0
XzIwOSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNtYXRj
aCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21wYXRp
YmxlX3AodHlwZW9mKCooa29iaikpLCB0eXBlb2YoKChzdHJ1Y3Qga3NldCAqKTApLT5rb2JqKSkg
JiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooa29iaikpLCB0eXBlb2Yo
dm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzIwOSgpOyB9IHdoaWxlICgwKTsgKChzdHJ1
Y3Qga3NldCAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGtzZXQsIGtvYmop
KSk7IH0pIDogKCh2b2lkICopMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBrc2V0ICprc2V0X2dldChzdHJ1Y3Qga3Nl
dCAqaykKewogcmV0dXJuIGsgPyB0b19rc2V0KGtvYmplY3RfZ2V0KCZrLT5rb2JqKSkgOiAoKHZv
aWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgdm9pZCBrc2V0X3B1dChzdHJ1Y3Qga3NldCAqaykKewoga29iamVjdF9wdXQo
JmstPmtvYmopOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBzdHJ1Y3Qga29ial90eXBlICpnZXRfa3R5cGUoc3RydWN0IGtvYmplY3Qg
KmtvYmopCnsKIHJldHVybiBrb2JqLT5rdHlwZTsKfQoKZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpr
c2V0X2ZpbmRfb2JqKHN0cnVjdCBrc2V0ICosIGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIHN0cnVj
dCBrb2JqZWN0ICprZXJuZWxfa29iajsKCmV4dGVybiBzdHJ1Y3Qga29iamVjdCAqbW1fa29iajsK
CmV4dGVybiBzdHJ1Y3Qga29iamVjdCAqaHlwZXJ2aXNvcl9rb2JqOwoKZXh0ZXJuIHN0cnVjdCBr
b2JqZWN0ICpwb3dlcl9rb2JqOwoKZXh0ZXJuIHN0cnVjdCBrb2JqZWN0ICpmaXJtd2FyZV9rb2Jq
OwoKaW50IGtvYmplY3RfdWV2ZW50KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBlbnVtIGtvYmplY3Rf
YWN0aW9uIGFjdGlvbik7CmludCBrb2JqZWN0X3VldmVudF9lbnYoc3RydWN0IGtvYmplY3QgKmtv
YmosIGVudW0ga29iamVjdF9hY3Rpb24gYWN0aW9uLAogICBjaGFyICplbnZwW10pOwppbnQga29i
amVjdF9zeW50aF91ZXZlbnQoc3RydWN0IGtvYmplY3QgKmtvYmosIGNvbnN0IGNoYXIgKmJ1Ziwg
c2l6ZV90IGNvdW50KTsKCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAzKSkp
CmludCBhZGRfdWV2ZW50X3ZhcihzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYsIGNvbnN0IGNo
YXIgKmZvcm1hdCwgLi4uKTsKIyAxOCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCiMgMSAi
Li9pbmNsdWRlL2xpbnV4L2tsaXN0LmgiIDEKIyAxNyAiLi9pbmNsdWRlL2xpbnV4L2tsaXN0Lmgi
CnN0cnVjdCBrbGlzdF9ub2RlOwpzdHJ1Y3Qga2xpc3Qgewogc3BpbmxvY2tfdCBrX2xvY2s7CiBz
dHJ1Y3QgbGlzdF9oZWFkIGtfbGlzdDsKIHZvaWQgKCpnZXQpKHN0cnVjdCBrbGlzdF9ub2RlICop
Owogdm9pZCAoKnB1dCkoc3RydWN0IGtsaXN0X25vZGUgKik7Cn0gX19hdHRyaWJ1dGVfXyAoKGFs
aWduZWQgKHNpemVvZih2b2lkICopKSkpOwojIDM0ICIuL2luY2x1ZGUvbGludXgva2xpc3QuaCIK
ZXh0ZXJuIHZvaWQga2xpc3RfaW5pdChzdHJ1Y3Qga2xpc3QgKmssIHZvaWQgKCpnZXQpKHN0cnVj
dCBrbGlzdF9ub2RlICopLAogICAgICAgICB2b2lkICgqcHV0KShzdHJ1Y3Qga2xpc3Rfbm9kZSAq
KSk7CgpzdHJ1Y3Qga2xpc3Rfbm9kZSB7CiB2b2lkICpuX2tsaXN0Owogc3RydWN0IGxpc3RfaGVh
ZCBuX25vZGU7CiBzdHJ1Y3Qga3JlZiBuX3JlZjsKfTsKCmV4dGVybiB2b2lkIGtsaXN0X2FkZF90
YWlsKHN0cnVjdCBrbGlzdF9ub2RlICpuLCBzdHJ1Y3Qga2xpc3QgKmspOwpleHRlcm4gdm9pZCBr
bGlzdF9hZGRfaGVhZChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGtsaXN0ICprKTsKZXh0
ZXJuIHZvaWQga2xpc3RfYWRkX2JlaGluZChzdHJ1Y3Qga2xpc3Rfbm9kZSAqbiwgc3RydWN0IGts
aXN0X25vZGUgKnBvcyk7CmV4dGVybiB2b2lkIGtsaXN0X2FkZF9iZWZvcmUoc3RydWN0IGtsaXN0
X25vZGUgKm4sIHN0cnVjdCBrbGlzdF9ub2RlICpwb3MpOwoKZXh0ZXJuIHZvaWQga2xpc3RfZGVs
KHN0cnVjdCBrbGlzdF9ub2RlICpuKTsKZXh0ZXJuIHZvaWQga2xpc3RfcmVtb3ZlKHN0cnVjdCBr
bGlzdF9ub2RlICpuKTsKCmV4dGVybiBpbnQga2xpc3Rfbm9kZV9hdHRhY2hlZChzdHJ1Y3Qga2xp
c3Rfbm9kZSAqbik7CgoKc3RydWN0IGtsaXN0X2l0ZXIgewogc3RydWN0IGtsaXN0ICppX2tsaXN0
Owogc3RydWN0IGtsaXN0X25vZGUgKmlfY3VyOwp9OwoKCmV4dGVybiB2b2lkIGtsaXN0X2l0ZXJf
aW5pdChzdHJ1Y3Qga2xpc3QgKmssIHN0cnVjdCBrbGlzdF9pdGVyICppKTsKZXh0ZXJuIHZvaWQg
a2xpc3RfaXRlcl9pbml0X25vZGUoc3RydWN0IGtsaXN0ICprLCBzdHJ1Y3Qga2xpc3RfaXRlciAq
aSwKICAgICBzdHJ1Y3Qga2xpc3Rfbm9kZSAqbik7CmV4dGVybiB2b2lkIGtsaXN0X2l0ZXJfZXhp
dChzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CmV4dGVybiBzdHJ1Y3Qga2xpc3Rfbm9kZSAqa2xpc3Rf
cHJldihzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CmV4dGVybiBzdHJ1Y3Qga2xpc3Rfbm9kZSAqa2xp
c3RfbmV4dChzdHJ1Y3Qga2xpc3RfaXRlciAqaSk7CiMgMTkgIi4vaW5jbHVkZS9saW51eC9kZXZp
Y2UuaCIgMgoKCgoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3BtLmgiIDEKIyAyMiAiLi9pbmNsdWRl
L2xpbnV4L3BtLmgiCmV4dGVybiB2b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKZXh0ZXJuIHZv
aWQgKCpwbV9wb3dlcl9vZmZfcHJlcGFyZSkodm9pZCk7CgpzdHJ1Y3QgZGV2aWNlOwoKZXh0ZXJu
IHZvaWQgcG1fdnRfc3dpdGNoX3JlcXVpcmVkKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCByZXF1
aXJlZCk7CmV4dGVybiB2b2lkIHBtX3Z0X3N3aXRjaF91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2Ug
KmRldik7CiMgNDIgIi4vaW5jbHVkZS9saW51eC9wbS5oIgpzdHJ1Y3QgZGV2aWNlOwoKCmV4dGVy
biBjb25zdCBjaGFyIHBvd2VyX2dyb3VwX25hbWVbXTsKCgoKCnR5cGVkZWYgc3RydWN0IHBtX21l
c3NhZ2UgewogaW50IGV2ZW50Owp9IHBtX21lc3NhZ2VfdDsKIyAyNzggIi4vaW5jbHVkZS9saW51
eC9wbS5oIgpzdHJ1Y3QgZGV2X3BtX29wcyB7CiBpbnQgKCpwcmVwYXJlKShzdHJ1Y3QgZGV2aWNl
ICpkZXYpOwogdm9pZCAoKmNvbXBsZXRlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqc3Vz
cGVuZCkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnJlc3VtZSkoc3RydWN0IGRldmljZSAq
ZGV2KTsKIGludCAoKmZyZWV6ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnRoYXcpKHN0
cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpwb3dlcm9mZikoc3RydWN0IGRldmljZSAqZGV2KTsK
IGludCAoKnJlc3RvcmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpzdXNwZW5kX2xhdGUp
KHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZXN1bWVfZWFybHkpKHN0cnVjdCBkZXZpY2Ug
KmRldik7CiBpbnQgKCpmcmVlemVfbGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnRo
YXdfZWFybHkpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpwb3dlcm9mZl9sYXRlKShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqcmVzdG9yZV9lYXJseSkoc3RydWN0IGRldmljZSAqZGV2
KTsKIGludCAoKnN1c3BlbmRfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZXN1
bWVfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpmcmVlemVfbm9pcnEpKHN0cnVj
dCBkZXZpY2UgKmRldik7CiBpbnQgKCp0aGF3X25vaXJxKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwog
aW50ICgqcG93ZXJvZmZfbm9pcnEpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZXN0b3Jl
X25vaXJxKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqcnVudGltZV9zdXNwZW5kKShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqcnVudGltZV9yZXN1bWUpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CiBpbnQgKCpydW50aW1lX2lkbGUpKHN0cnVjdCBkZXZpY2UgKmRldik7Cn07CiMgNDk2ICIu
L2luY2x1ZGUvbGludXgvcG0uaCIKZW51bSBycG1fc3RhdHVzIHsKIFJQTV9BQ1RJVkUgPSAwLAog
UlBNX1JFU1VNSU5HLAogUlBNX1NVU1BFTkRFRCwKIFJQTV9TVVNQRU5ESU5HLAp9OwojIDUxOCAi
Li9pbmNsdWRlL2xpbnV4L3BtLmgiCmVudW0gcnBtX3JlcXVlc3QgewogUlBNX1JFUV9OT05FID0g
MCwKIFJQTV9SRVFfSURMRSwKIFJQTV9SRVFfU1VTUEVORCwKIFJQTV9SRVFfQVVUT1NVU1BFTkQs
CiBSUE1fUkVRX1JFU1VNRSwKfTsKCnN0cnVjdCB3YWtldXBfc291cmNlOwpzdHJ1Y3Qgd2FrZV9p
cnE7CnN0cnVjdCBwbV9kb21haW5fZGF0YTsKCnN0cnVjdCBwbV9zdWJzeXNfZGF0YSB7CiBzcGlu
bG9ja190IGxvY2s7CiB1bnNpZ25lZCBpbnQgcmVmY291bnQ7Cgogc3RydWN0IGxpc3RfaGVhZCBj
bG9ja19saXN0OwoKCgoKfTsKIyA1NzMgIi4vaW5jbHVkZS9saW51eC9wbS5oIgpzdHJ1Y3QgZGV2
X3BtX2luZm8gewogcG1fbWVzc2FnZV90IHBvd2VyX3N0YXRlOwogdW5zaWduZWQgaW50IGNhbl93
YWtldXA6MTsKIHVuc2lnbmVkIGludCBhc3luY19zdXNwZW5kOjE7CiBib29sIGluX2RwbV9saXN0
OjE7CiBib29sIGlzX3ByZXBhcmVkOjE7CiBib29sIGlzX3N1c3BlbmRlZDoxOwogYm9vbCBpc19u
b2lycV9zdXNwZW5kZWQ6MTsKIGJvb2wgaXNfbGF0ZV9zdXNwZW5kZWQ6MTsKIGJvb2wgbm9fcG06
MTsKIGJvb2wgZWFybHlfaW5pdDoxOwogYm9vbCBkaXJlY3RfY29tcGxldGU6MTsKIHUzMiBkcml2
ZXJfZmxhZ3M7CiBzcGlubG9ja190IGxvY2s7Cgogc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKIHN0
cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247CiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd2FrZXVw
OwogYm9vbCB3YWtldXBfcGF0aDoxOwogYm9vbCBzeXNjb3JlOjE7CiBib29sIG5vX3BtX2NhbGxi
YWNrczoxOwogdW5zaWduZWQgaW50IG11c3RfcmVzdW1lOjE7CiB1bnNpZ25lZCBpbnQgbWF5X3Nr
aXBfcmVzdW1lOjE7CgoKCgogc3RydWN0IGhydGltZXIgc3VzcGVuZF90aW1lcjsKIHVuc2lnbmVk
IGxvbmcgdGltZXJfZXhwaXJlczsKIHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwogd2FpdF9xdWV1
ZV9oZWFkX3Qgd2FpdF9xdWV1ZTsKIHN0cnVjdCB3YWtlX2lycSAqd2FrZWlycTsKIGF0b21pY190
IHVzYWdlX2NvdW50OwogYXRvbWljX3QgY2hpbGRfY291bnQ7CiB1bnNpZ25lZCBpbnQgZGlzYWJs
ZV9kZXB0aDozOwogdW5zaWduZWQgaW50IGlkbGVfbm90aWZpY2F0aW9uOjE7CiB1bnNpZ25lZCBp
bnQgcmVxdWVzdF9wZW5kaW5nOjE7CiB1bnNpZ25lZCBpbnQgZGVmZXJyZWRfcmVzdW1lOjE7CiB1
bnNpZ25lZCBpbnQgcnVudGltZV9hdXRvOjE7CiBib29sIGlnbm9yZV9jaGlsZHJlbjoxOwogdW5z
aWduZWQgaW50IG5vX2NhbGxiYWNrczoxOwogdW5zaWduZWQgaW50IGlycV9zYWZlOjE7CiB1bnNp
Z25lZCBpbnQgdXNlX2F1dG9zdXNwZW5kOjE7CiB1bnNpZ25lZCBpbnQgdGltZXJfYXV0b3N1c3Bl
bmRzOjE7CiB1bnNpZ25lZCBpbnQgbWVtYWxsb2Nfbm9pbzoxOwogdW5zaWduZWQgaW50IGxpbmtz
X2NvdW50OwogZW51bSBycG1fcmVxdWVzdCByZXF1ZXN0OwogZW51bSBycG1fc3RhdHVzIHJ1bnRp
bWVfc3RhdHVzOwogaW50IHJ1bnRpbWVfZXJyb3I7CiBpbnQgYXV0b3N1c3BlbmRfZGVsYXk7CiB1
NjQgbGFzdF9idXN5OwogdTY0IGFjdGl2ZV90aW1lOwogdTY0IHN1c3BlbmRlZF90aW1lOwogdTY0
IGFjY291bnRpbmdfdGltZXN0YW1wOwoKIHN0cnVjdCBwbV9zdWJzeXNfZGF0YSAqc3Vic3lzX2Rh
dGE7CiB2b2lkICgqc2V0X2xhdGVuY3lfdG9sZXJhbmNlKShzdHJ1Y3QgZGV2aWNlICosIHMzMik7
CiBzdHJ1Y3QgZGV2X3BtX3FvcyAqcW9zOwp9OwoKZXh0ZXJuIGludCBkZXZfcG1fZ2V0X3N1YnN5
c19kYXRhKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiB2b2lkIGRldl9wbV9wdXRfc3Vic3lz
X2RhdGEoc3RydWN0IGRldmljZSAqZGV2KTsKIyA2NTAgIi4vaW5jbHVkZS9saW51eC9wbS5oIgpz
dHJ1Y3QgZGV2X3BtX2RvbWFpbiB7CiBzdHJ1Y3QgZGV2X3BtX29wcyBvcHM7CiBpbnQgKCpzdGFy
dCkoc3RydWN0IGRldmljZSAqZGV2KTsKIHZvaWQgKCpkZXRhY2gpKHN0cnVjdCBkZXZpY2UgKmRl
diwgYm9vbCBwb3dlcl9vZmYpOwogaW50ICgqYWN0aXZhdGUpKHN0cnVjdCBkZXZpY2UgKmRldik7
CiB2b2lkICgqc3luYykoc3RydWN0IGRldmljZSAqZGV2KTsKIHZvaWQgKCpkaXNtaXNzKShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwp9OwojIDcxNCAiLi9pbmNsdWRlL2xpbnV4L3BtLmgiCmV4dGVybiB2
b2lkIGRldmljZV9wbV9sb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBkcG1fcmVzdW1lX3N0YXJ0KHBt
X21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiB2b2lkIGRwbV9yZXN1bWVfZW5kKHBtX21lc3NhZ2Vf
dCBzdGF0ZSk7CmV4dGVybiB2b2lkIGRwbV9yZXN1bWVfbm9pcnEocG1fbWVzc2FnZV90IHN0YXRl
KTsKZXh0ZXJuIHZvaWQgZHBtX3Jlc3VtZV9lYXJseShwbV9tZXNzYWdlX3Qgc3RhdGUpOwpleHRl
cm4gdm9pZCBkcG1fcmVzdW1lKHBtX21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiB2b2lkIGRwbV9j
b21wbGV0ZShwbV9tZXNzYWdlX3Qgc3RhdGUpOwoKZXh0ZXJuIHZvaWQgZGV2aWNlX3BtX3VubG9j
ayh2b2lkKTsKZXh0ZXJuIGludCBkcG1fc3VzcGVuZF9lbmQocG1fbWVzc2FnZV90IHN0YXRlKTsK
ZXh0ZXJuIGludCBkcG1fc3VzcGVuZF9zdGFydChwbV9tZXNzYWdlX3Qgc3RhdGUpOwpleHRlcm4g
aW50IGRwbV9zdXNwZW5kX25vaXJxKHBtX21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiBpbnQgZHBt
X3N1c3BlbmRfbGF0ZShwbV9tZXNzYWdlX3Qgc3RhdGUpOwpleHRlcm4gaW50IGRwbV9zdXNwZW5k
KHBtX21lc3NhZ2VfdCBzdGF0ZSk7CmV4dGVybiBpbnQgZHBtX3ByZXBhcmUocG1fbWVzc2FnZV90
IHN0YXRlKTsKCmV4dGVybiB2b2lkIF9fc3VzcGVuZF9yZXBvcnRfcmVzdWx0KGNvbnN0IGNoYXIg
KmZ1bmN0aW9uLCB2b2lkICpmbiwgaW50IHJldCk7CgoKCgoKCmV4dGVybiBpbnQgZGV2aWNlX3Bt
X3dhaXRfZm9yX2RldihzdHJ1Y3QgZGV2aWNlICpzdWIsIHN0cnVjdCBkZXZpY2UgKmRldik7CmV4
dGVybiB2b2lkIGRwbV9mb3JfZWFjaF9kZXYodm9pZCAqZGF0YSwgdm9pZCAoKmZuKShzdHJ1Y3Qg
ZGV2aWNlICosIHZvaWQgKikpOwoKZXh0ZXJuIGludCBwbV9nZW5lcmljX3ByZXBhcmUoc3RydWN0
IGRldmljZSAqZGV2KTsKZXh0ZXJuIGludCBwbV9nZW5lcmljX3N1c3BlbmRfbGF0ZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfc3VzcGVuZF9ub2lycShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNl
ICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfcmVzdW1lX2Vhcmx5KHN0cnVjdCBkZXZpY2Ug
KmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN1bWVfbm9pcnEoc3RydWN0IGRldmljZSAq
ZGV2KTsKZXh0ZXJuIGludCBwbV9nZW5lcmljX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpl
eHRlcm4gaW50IHBtX2dlbmVyaWNfZnJlZXplX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4
dGVybiBpbnQgcG1fZ2VuZXJpY19mcmVlemVfbGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRl
cm4gaW50IHBtX2dlbmVyaWNfZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQg
cG1fZ2VuZXJpY190aGF3X25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1f
Z2VuZXJpY190aGF3X2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2Vu
ZXJpY190aGF3KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0
b3JlX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0
b3JlX2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19yZXN0
b3JlKHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiBpbnQgcG1fZ2VuZXJpY19wb3dlcm9mZl9u
b2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfcG93ZXJvZmZf
bGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IHBtX2dlbmVyaWNfcG93ZXJvZmYo
c3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIHZvaWQgcG1fZ2VuZXJpY19jb21wbGV0ZShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwoKZXh0ZXJuIGJvb2wgZGV2X3BtX21heV9za2lwX3Jlc3VtZShzdHJ1
Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gYm9vbCBkZXZfcG1fc21hcnRfc3VzcGVuZF9hbmRfc3Vz
cGVuZGVkKHN0cnVjdCBkZXZpY2UgKmRldik7CiMgODA4ICIuL2luY2x1ZGUvbGludXgvcG0uaCIK
ZW51bSBkcG1fb3JkZXIgewogRFBNX09SREVSX05PTkUsCiBEUE1fT1JERVJfREVWX0FGVEVSX1BB
UkVOVCwKIERQTV9PUkRFUl9QQVJFTlRfQkVGT1JFX0RFViwKIERQTV9PUkRFUl9ERVZfTEFTVCwK
fTsKIyAyNSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCgoKCgojIDEgIi4vaW5jbHVkZS9s
aW51eC9kZXZpY2UvYnVzLmgiIDEKIyAyMSAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9idXMuaCIK
c3RydWN0IGRldmljZV9kcml2ZXI7CnN0cnVjdCBmd25vZGVfaGFuZGxlOwojIDgyICIuL2luY2x1
ZGUvbGludXgvZGV2aWNlL2J1cy5oIgpzdHJ1Y3QgYnVzX3R5cGUgewogY29uc3QgY2hhciAqbmFt
ZTsKIGNvbnN0IGNoYXIgKmRldl9uYW1lOwogc3RydWN0IGRldmljZSAqZGV2X3Jvb3Q7CiBjb25z
dCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqYnVzX2dyb3VwczsKIGNvbnN0IHN0cnVjdCBhdHRy
aWJ1dGVfZ3JvdXAgKipkZXZfZ3JvdXBzOwogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
KmRydl9ncm91cHM7CgogaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydik7CiBpbnQgKCp1ZXZlbnQpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry
dWN0IGtvYmpfdWV2ZW50X2VudiAqZW52KTsKIGludCAoKnByb2JlKShzdHJ1Y3QgZGV2aWNlICpk
ZXYpOwogdm9pZCAoKnN5bmNfc3RhdGUpKHN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgKCpyZW1v
dmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CiB2b2lkICgqc2h1dGRvd24pKHN0cnVjdCBkZXZpY2Ug
KmRldik7CgogaW50ICgqb25saW5lKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50ICgqb2ZmbGlu
ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKCiBpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgZGV2aWNlICpk
ZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSk7CiBpbnQgKCpyZXN1bWUpKHN0cnVjdCBkZXZpY2UgKmRl
dik7CgogaW50ICgqbnVtX3ZmKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKIGludCAoKmRtYV9jb25m
aWd1cmUpKHN0cnVjdCBkZXZpY2UgKmRldik7CgogY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBt
OwoKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgKmlvbW11X29wczsKCiBzdHJ1Y3Qgc3Vic3lzX3By
aXZhdGUgKnA7CiBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgbG9ja19rZXk7CgogYm9vbCBuZWVkX3Bh
cmVudF9sb2NrOwp9OwoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jl
c3VsdF9fKSkgYnVzX3JlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKCmV4dGVybiB2b2lk
IGJ1c191bnJlZ2lzdGVyKHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKCmV4dGVybiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGJ1c19yZXNjYW5fZGV2aWNlcyhzdHJ1
Y3QgYnVzX3R5cGUgKmJ1cyk7CgpzdHJ1Y3QgYnVzX2F0dHJpYnV0ZSB7CiBzdHJ1Y3QgYXR0cmli
dXRlIGF0dHI7CiBzc2l6ZV90ICgqc2hvdykoc3RydWN0IGJ1c190eXBlICpidXMsIGNoYXIgKmJ1
Zik7CiBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBidXNfdHlwZSAqYnVzLCBjb25zdCBjaGFyICpi
dWYsIHNpemVfdCBjb3VudCk7Cn07CiMgMTM2ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2J1cy5o
IgpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBidXNf
Y3JlYXRlX2ZpbGUoc3RydWN0IGJ1c190eXBlICosCiAgICAgc3RydWN0IGJ1c19hdHRyaWJ1dGUg
Kik7CmV4dGVybiB2b2lkIGJ1c19yZW1vdmVfZmlsZShzdHJ1Y3QgYnVzX3R5cGUgKiwgc3RydWN0
IGJ1c19hdHRyaWJ1dGUgKik7CgoKaW50IGRldmljZV9tYXRjaF9uYW1lKHN0cnVjdCBkZXZpY2Ug
KmRldiwgY29uc3Qgdm9pZCAqbmFtZSk7CmludCBkZXZpY2VfbWF0Y2hfb2Zfbm9kZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKm5wKTsKaW50IGRldmljZV9tYXRjaF9md25vZGUoc3Ry
dWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpmd25vZGUpOwppbnQgZGV2aWNlX21hdGNoX2Rl
dnQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpwZGV2dCk7CmludCBkZXZpY2VfbWF0
Y2hfYWNwaV9kZXYoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICphZGV2KTsKaW50IGRl
dmljZV9tYXRjaF9hbnkoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICp1bnVzZWQpOwoK
CnN0cnVjdCBzdWJzeXNfZGV2X2l0ZXIgewogc3RydWN0IGtsaXN0X2l0ZXIga2k7CiBjb25zdCBz
dHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGU7Cn07CnZvaWQgc3Vic3lzX2Rldl9pdGVyX2luaXQoc3Ry
dWN0IHN1YnN5c19kZXZfaXRlciAqaXRlciwKICAgIHN0cnVjdCBidXNfdHlwZSAqc3Vic3lzLAog
ICAgc3RydWN0IGRldmljZSAqc3RhcnQsCiAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5
cGUpOwpzdHJ1Y3QgZGV2aWNlICpzdWJzeXNfZGV2X2l0ZXJfbmV4dChzdHJ1Y3Qgc3Vic3lzX2Rl
dl9pdGVyICppdGVyKTsKdm9pZCBzdWJzeXNfZGV2X2l0ZXJfZXhpdChzdHJ1Y3Qgc3Vic3lzX2Rl
dl9pdGVyICppdGVyKTsKCmludCBidXNfZm9yX2VhY2hfZGV2KHN0cnVjdCBidXNfdHlwZSAqYnVz
LCBzdHJ1Y3QgZGV2aWNlICpzdGFydCwgdm9pZCAqZGF0YSwKICAgICAgIGludCAoKmZuKShzdHJ1
Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpKTsKc3RydWN0IGRldmljZSAqYnVzX2ZpbmRfZGV2
aWNlKHN0cnVjdCBidXNfdHlwZSAqYnVzLCBzdHJ1Y3QgZGV2aWNlICpzdGFydCwKICAgICAgICAg
IGNvbnN0IHZvaWQgKmRhdGEsCiAgICAgICAgICBpbnQgKCptYXRjaCkoc3RydWN0IGRldmljZSAq
ZGV2LCBjb25zdCB2b2lkICpkYXRhKSk7CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICpidXNfZmluZF9k
ZXZpY2VfYnlfbmFtZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywKICAgICAgICAgICBzdHJ1Y3QgZGV2
aWNlICpzdGFydCwKICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQp7CiByZXR1cm4gYnVzX2Zp
bmRfZGV2aWNlKGJ1cywgc3RhcnQsIG5hbWUsIGRldmljZV9tYXRjaF9uYW1lKTsKfQoKCgoKCgoK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGRldmljZSAqCmJ1c19maW5kX2RldmljZV9ieV9vZl9ub2RlKHN0cnVjdCBidXNfdHlw
ZSAqYnVzLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQp7CiByZXR1cm4gYnVzX2ZpbmRf
ZGV2aWNlKGJ1cywgKCh2b2lkICopMCksIG5wLCBkZXZpY2VfbWF0Y2hfb2Zfbm9kZSk7Cn0KCgoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBkZXZpY2UgKgpidXNfZmluZF9kZXZpY2VfYnlfZndub2RlKHN0cnVjdCBidXNf
dHlwZSAqYnVzLCBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKQp7CiByZXR1cm4g
YnVzX2ZpbmRfZGV2aWNlKGJ1cywgKCh2b2lkICopMCksIGZ3bm9kZSwgZGV2aWNlX21hdGNoX2Z3
bm9kZSk7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZpY2UgKmJ1c19maW5kX2RldmljZV9ieV9kZXZ0KHN0
cnVjdCBidXNfdHlwZSAqYnVzLAogICAgICAgICAgIGRldl90IGRldnQpCnsKIHJldHVybiBidXNf
ZmluZF9kZXZpY2UoYnVzLCAoKHZvaWQgKikwKSwgJmRldnQsIGRldmljZV9tYXRjaF9kZXZ0KTsK
fQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCmJ1c19maW5kX25leHRfZGV2aWNlKHN0cnVjdCBidXNf
dHlwZSAqYnVzLHN0cnVjdCBkZXZpY2UgKmN1cikKewogcmV0dXJuIGJ1c19maW5kX2RldmljZShi
dXMsIGN1ciwgKCh2b2lkICopMCksIGRldmljZV9tYXRjaF9hbnkpOwp9CgoKc3RydWN0IGFjcGlf
ZGV2aWNlOwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqCmJ1c19maW5kX2RldmljZV9ieV9hY3BpX2Rl
dihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KQp7
CiByZXR1cm4gYnVzX2ZpbmRfZGV2aWNlKGJ1cywgKCh2b2lkICopMCksIGFkZXYsIGRldmljZV9t
YXRjaF9hY3BpX2Rldik7Cn0KIyAyNDkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCnN0
cnVjdCBkZXZpY2UgKnN1YnN5c19maW5kX2RldmljZV9ieV9pZChzdHJ1Y3QgYnVzX3R5cGUgKmJ1
cywgdW5zaWduZWQgaW50IGlkLAogICAgIHN0cnVjdCBkZXZpY2UgKmhpbnQpOwppbnQgYnVzX2Zv
cl9lYWNoX2RydihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgc3RydWN0IGRldmljZV9kcml2ZXIgKnN0
YXJ0LAogICAgICAgdm9pZCAqZGF0YSwgaW50ICgqZm4pKHN0cnVjdCBkZXZpY2VfZHJpdmVyICos
IHZvaWQgKikpOwp2b2lkIGJ1c19zb3J0X2JyZWFkdGhmaXJzdChzdHJ1Y3QgYnVzX3R5cGUgKmJ1
cywKICAgICAgaW50ICgqY29tcGFyZSkoY29uc3Qgc3RydWN0IGRldmljZSAqYSwKICAgICAgIGNv
bnN0IHN0cnVjdCBkZXZpY2UgKmIpKTsKCgoKCgoKc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwoKZXh0
ZXJuIGludCBidXNfcmVnaXN0ZXJfbm90aWZpZXIoc3RydWN0IGJ1c190eXBlICpidXMsCiAgICAg
c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CmV4dGVybiBpbnQgYnVzX3VucmVnaXN0ZXJfbm90
aWZpZXIoc3RydWN0IGJ1c190eXBlICpidXMsCiAgICAgICBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg
Km5iKTsKIyAyODUgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvYnVzLmgiCmV4dGVybiBzdHJ1Y3Qg
a3NldCAqYnVzX2dldF9rc2V0KHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKZXh0ZXJuIHN0cnVjdCBr
bGlzdCAqYnVzX2dldF9kZXZpY2Vfa2xpc3Qoc3RydWN0IGJ1c190eXBlICpidXMpOwojIDMwICIu
L2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKIyAxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2Ns
YXNzLmgiIDEKIyAyMiAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9jbGFzcy5oIgpzdHJ1Y3QgZGV2
aWNlOwpzdHJ1Y3QgZndub2RlX2hhbmRsZTsKIyA1NCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9j
bGFzcy5oIgpzdHJ1Y3QgY2xhc3MgewogY29uc3QgY2hhciAqbmFtZTsKIHN0cnVjdCBtb2R1bGUg
Km93bmVyOwoKIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipjbGFzc19ncm91cHM7CiBj
b25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZGV2X2dyb3VwczsKIHN0cnVjdCBrb2JqZWN0
ICpkZXZfa29iajsKCiBpbnQgKCpkZXZfdWV2ZW50KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj
dCBrb2JqX3VldmVudF9lbnYgKmVudik7CiBjaGFyICooKmRldm5vZGUpKHN0cnVjdCBkZXZpY2Ug
KmRldiwgdW1vZGVfdCAqbW9kZSk7Cgogdm9pZCAoKmNsYXNzX3JlbGVhc2UpKHN0cnVjdCBjbGFz
cyAqY2xhc3MpOwogdm9pZCAoKmRldl9yZWxlYXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKIGlu
dCAoKnNodXRkb3duX3ByZSkoc3RydWN0IGRldmljZSAqZGV2KTsKCiBjb25zdCBzdHJ1Y3Qga29i
al9uc190eXBlX29wZXJhdGlvbnMgKm5zX3R5cGU7CiBjb25zdCB2b2lkICooKm5hbWVzcGFjZSko
c3RydWN0IGRldmljZSAqZGV2KTsKCiB2b2lkICgqZ2V0X293bmVyc2hpcCkoc3RydWN0IGRldmlj
ZSAqZGV2LCBrdWlkX3QgKnVpZCwga2dpZF90ICpnaWQpOwoKIGNvbnN0IHN0cnVjdCBkZXZfcG1f
b3BzICpwbTsKCiBzdHJ1Y3Qgc3Vic3lzX3ByaXZhdGUgKnA7Cn07CgpzdHJ1Y3QgY2xhc3NfZGV2
X2l0ZXIgewogc3RydWN0IGtsaXN0X2l0ZXIga2k7CiBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUg
KnR5cGU7Cn07CgpleHRlcm4gc3RydWN0IGtvYmplY3QgKnN5c2ZzX2Rldl9ibG9ja19rb2JqOwpl
eHRlcm4gc3RydWN0IGtvYmplY3QgKnN5c2ZzX2Rldl9jaGFyX2tvYmo7CmV4dGVybiBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIF9fY2xhc3NfcmVnaXN0ZXIoc3Ry
dWN0IGNsYXNzICpjbGFzcywKICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICprZXkpOwpleHRl
cm4gdm9pZCBjbGFzc191bnJlZ2lzdGVyKHN0cnVjdCBjbGFzcyAqY2xhc3MpOwojIDk5ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlL2NsYXNzLmgiCnN0cnVjdCBjbGFzc19jb21wYXQ7CnN0cnVjdCBj
bGFzc19jb21wYXQgKmNsYXNzX2NvbXBhdF9yZWdpc3Rlcihjb25zdCBjaGFyICpuYW1lKTsKdm9p
ZCBjbGFzc19jb21wYXRfdW5yZWdpc3RlcihzdHJ1Y3QgY2xhc3NfY29tcGF0ICpjbHMpOwppbnQg
Y2xhc3NfY29tcGF0X2NyZWF0ZV9saW5rKHN0cnVjdCBjbGFzc19jb21wYXQgKmNscywgc3RydWN0
IGRldmljZSAqZGV2LAogICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldmljZV9saW5rKTsKdm9pZCBj
bGFzc19jb21wYXRfcmVtb3ZlX2xpbmsoc3RydWN0IGNsYXNzX2NvbXBhdCAqY2xzLCBzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCiAgICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldmljZV9saW5rKTsKCmV4dGVy
biB2b2lkIGNsYXNzX2Rldl9pdGVyX2luaXQoc3RydWN0IGNsYXNzX2Rldl9pdGVyICppdGVyLAog
ICAgc3RydWN0IGNsYXNzICpjbGFzcywKICAgIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LAogICAgY29u
c3Qgc3RydWN0IGRldmljZV90eXBlICp0eXBlKTsKZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmNsYXNz
X2Rldl9pdGVyX25leHQoc3RydWN0IGNsYXNzX2Rldl9pdGVyICppdGVyKTsKZXh0ZXJuIHZvaWQg
Y2xhc3NfZGV2X2l0ZXJfZXhpdChzdHJ1Y3QgY2xhc3NfZGV2X2l0ZXIgKml0ZXIpOwoKZXh0ZXJu
IGludCBjbGFzc19mb3JfZWFjaF9kZXZpY2Uoc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGRl
dmljZSAqc3RhcnQsCiAgICAgdm9pZCAqZGF0YSwKICAgICBpbnQgKCpmbikoc3RydWN0IGRldmlj
ZSAqZGV2LCB2b2lkICpkYXRhKSk7CmV4dGVybiBzdHJ1Y3QgZGV2aWNlICpjbGFzc19maW5kX2Rl
dmljZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLAogICAgIHN0cnVjdCBkZXZpY2UgKnN0YXJ0LCBjb25z
dCB2b2lkICpkYXRhLAogICAgIGludCAoKm1hdGNoKShzdHJ1Y3QgZGV2aWNlICosIGNvbnN0IHZv
aWQgKikpOwoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRldmljZSAqY2xhc3NfZmluZF9kZXZpY2VfYnlfbmFtZShz
dHJ1Y3QgY2xhc3MgKmNsYXNzLAogICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKewogcmV0
dXJuIGNsYXNzX2ZpbmRfZGV2aWNlKGNsYXNzLCAoKHZvaWQgKikwKSwgbmFtZSwgZGV2aWNlX21h
dGNoX25hbWUpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKY2xhc3NfZmluZF9kZXZpY2VfYnlf
b2Zfbm9kZShzdHJ1Y3QgY2xhc3MgKmNsYXNzLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w
KQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xhc3MsICgodm9pZCAqKTApLCBucCwgZGV2
aWNlX21hdGNoX29mX25vZGUpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKY2xhc3NfZmluZF9k
ZXZpY2VfYnlfZndub2RlKHN0cnVjdCBjbGFzcyAqY2xhc3MsCiAgICAgICBjb25zdCBzdHJ1Y3Qg
Zndub2RlX2hhbmRsZSAqZndub2RlKQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xhc3Ms
ICgodm9pZCAqKTApLCBmd25vZGUsIGRldmljZV9tYXRjaF9md25vZGUpOwp9CgoKCgoKCgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1
Y3QgZGV2aWNlICpjbGFzc19maW5kX2RldmljZV9ieV9kZXZ0KHN0cnVjdCBjbGFzcyAqY2xhc3Ms
CiAgICAgICAgICAgICBkZXZfdCBkZXZ0KQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xh
c3MsICgodm9pZCAqKTApLCAmZGV2dCwgZGV2aWNlX21hdGNoX2RldnQpOwp9CgoKc3RydWN0IGFj
cGlfZGV2aWNlOwoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKY2xhc3NfZmluZF9kZXZpY2VfYnlfYWNw
aV9kZXYoc3RydWN0IGNsYXNzICpjbGFzcywgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2
KQp7CiByZXR1cm4gY2xhc3NfZmluZF9kZXZpY2UoY2xhc3MsICgodm9pZCAqKTApLCBhZGV2LCBk
ZXZpY2VfbWF0Y2hfYWNwaV9kZXYpOwp9CiMgMTkxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2Ns
YXNzLmgiCnN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgewogc3RydWN0IGF0dHJpYnV0ZSBhdHRyOwog
c3NpemVfdCAoKnNob3cpKHN0cnVjdCBjbGFzcyAqY2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1
dGUgKmF0dHIsCiAgIGNoYXIgKmJ1Zik7CiBzc2l6ZV90ICgqc3RvcmUpKHN0cnVjdCBjbGFzcyAq
Y2xhc3MsIHN0cnVjdCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCiAgIGNvbnN0IGNoYXIgKmJ1Ziwg
c2l6ZV90IGNvdW50KTsKfTsKIyAyMDYgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvY2xhc3MuaCIK
ZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgY2xhc3Nf
Y3JlYXRlX2ZpbGVfbnMoc3RydWN0IGNsYXNzICpjbGFzcywKICAgICAgICAgIGNvbnN0IHN0cnVj
dCBjbGFzc19hdHRyaWJ1dGUgKmF0dHIsCiAgICAgICAgICBjb25zdCB2b2lkICpucyk7CmV4dGVy
biB2b2lkIGNsYXNzX3JlbW92ZV9maWxlX25zKHN0cnVjdCBjbGFzcyAqY2xhc3MsCiAgICAgY29u
c3Qgc3RydWN0IGNsYXNzX2F0dHJpYnV0ZSAqYXR0ciwKICAgICBjb25zdCB2b2lkICpucyk7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBp
bnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGNsYXNzX2NyZWF0ZV9m
aWxlKHN0cnVjdCBjbGFzcyAqY2xhc3MsCiAgICAgY29uc3Qgc3RydWN0IGNsYXNzX2F0dHJpYnV0
ZSAqYXR0cikKewogcmV0dXJuIGNsYXNzX2NyZWF0ZV9maWxlX25zKGNsYXNzLCBhdHRyLCAoKHZv
aWQgKikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgY2xhc3NfcmVtb3ZlX2ZpbGUoc3RydWN0IGNsYXNzICpjbGFzcywK
ICAgICAgICAgY29uc3Qgc3RydWN0IGNsYXNzX2F0dHJpYnV0ZSAqYXR0cikKewogcmV0dXJuIGNs
YXNzX3JlbW92ZV9maWxlX25zKGNsYXNzLCBhdHRyLCAoKHZvaWQgKikwKSk7Cn0KCgpzdHJ1Y3Qg
Y2xhc3NfYXR0cmlidXRlX3N0cmluZyB7CiBzdHJ1Y3QgY2xhc3NfYXR0cmlidXRlIGF0dHI7CiBj
aGFyICpzdHI7Cn07CiMgMjM4ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2NsYXNzLmgiCmV4dGVy
biBzc2l6ZV90IHNob3dfY2xhc3NfYXR0cl9zdHJpbmcoc3RydWN0IGNsYXNzICpjbGFzcywgc3Ry
dWN0IGNsYXNzX2F0dHJpYnV0ZSAqYXR0ciwKICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq
YnVmKTsKCnN0cnVjdCBjbGFzc19pbnRlcmZhY2Ugewogc3RydWN0IGxpc3RfaGVhZCBub2RlOwog
c3RydWN0IGNsYXNzICpjbGFzczsKCiBpbnQgKCphZGRfZGV2KSAoc3RydWN0IGRldmljZSAqLCBz
dHJ1Y3QgY2xhc3NfaW50ZXJmYWNlICopOwogdm9pZCAoKnJlbW92ZV9kZXYpIChzdHJ1Y3QgZGV2
aWNlICosIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKik7Cn07CgpleHRlcm4gaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBjbGFzc19pbnRlcmZhY2VfcmVnaXN0ZXIo
c3RydWN0IGNsYXNzX2ludGVyZmFjZSAqKTsKZXh0ZXJuIHZvaWQgY2xhc3NfaW50ZXJmYWNlX3Vu
cmVnaXN0ZXIoc3RydWN0IGNsYXNzX2ludGVyZmFjZSAqKTsKCmV4dGVybiBzdHJ1Y3QgY2xhc3Mg
KiBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgX19jbGFzc19jcmVhdGUo
c3RydWN0IG1vZHVsZSAqb3duZXIsCiAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBz
dHJ1Y3QgbG9ja19jbGFzc19rZXkgKmtleSk7CmV4dGVybiB2b2lkIGNsYXNzX2Rlc3Ryb3koc3Ry
dWN0IGNsYXNzICpjbHMpOwojIDMxICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiIDIKIyAxICIu
L2luY2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIiAxCiMgNDQgIi4vaW5jbHVkZS9saW51eC9k
ZXZpY2UvZHJpdmVyLmgiCmVudW0gcHJvYmVfdHlwZSB7CiBQUk9CRV9ERUZBVUxUX1NUUkFURUdZ
LAogUFJPQkVfUFJFRkVSX0FTWU5DSFJPTk9VUywKIFBST0JFX0ZPUkNFX1NZTkNIUk9OT1VTLAp9
OwojIDk1ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIgpzdHJ1Y3QgZGV2aWNlX2Ry
aXZlciB7CiBjb25zdCBjaGFyICpuYW1lOwogc3RydWN0IGJ1c190eXBlICpidXM7Cgogc3RydWN0
IG1vZHVsZSAqb3duZXI7CiBjb25zdCBjaGFyICptb2RfbmFtZTsKCiBib29sIHN1cHByZXNzX2Jp
bmRfYXR0cnM7CiBlbnVtIHByb2JlX3R5cGUgcHJvYmVfdHlwZTsKCiBjb25zdCBzdHJ1Y3Qgb2Zf
ZGV2aWNlX2lkICpvZl9tYXRjaF90YWJsZTsKIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAq
YWNwaV9tYXRjaF90YWJsZTsKCiBpbnQgKCpwcm9iZSkgKHN0cnVjdCBkZXZpY2UgKmRldik7CiB2
b2lkICgqc3luY19zdGF0ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKIGludCAoKnJlbW92ZSkgKHN0
cnVjdCBkZXZpY2UgKmRldik7CiB2b2lkICgqc2h1dGRvd24pIChzdHJ1Y3QgZGV2aWNlICpkZXYp
OwogaW50ICgqc3VzcGVuZCkgKHN0cnVjdCBkZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRl
KTsKIGludCAoKnJlc3VtZSkgKHN0cnVjdCBkZXZpY2UgKmRldik7CiBjb25zdCBzdHJ1Y3QgYXR0
cmlidXRlX2dyb3VwICoqZ3JvdXBzOwogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmRl
dl9ncm91cHM7CgogY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwogdm9pZCAoKmNvcmVkdW1w
KSAoc3RydWN0IGRldmljZSAqZGV2KTsKCiBzdHJ1Y3QgZHJpdmVyX3ByaXZhdGUgKnA7Cn07CgoK
ZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZHJpdmVy
X3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpOwpleHRlcm4gdm9pZCBkcml2ZXJf
dW5yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KTsKCmV4dGVybiBzdHJ1Y3QgZGV2
aWNlX2RyaXZlciAqZHJpdmVyX2ZpbmQoY29uc3QgY2hhciAqbmFtZSwKICAgICAgc3RydWN0IGJ1
c190eXBlICpidXMpOwpleHRlcm4gaW50IGRyaXZlcl9wcm9iZV9kb25lKHZvaWQpOwpleHRlcm4g
dm9pZCB3YWl0X2Zvcl9kZXZpY2VfcHJvYmUodm9pZCk7CgoKCnN0cnVjdCBkcml2ZXJfYXR0cmli
dXRlIHsKIHN0cnVjdCBhdHRyaWJ1dGUgYXR0cjsKIHNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZGV2
aWNlX2RyaXZlciAqZHJpdmVyLCBjaGFyICpidWYpOwogc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3Qg
ZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsCiAgICBzaXplX3QgY291bnQp
Owp9OwojIDE0OCAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS9kcml2ZXIuaCIKZXh0ZXJuIGludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZHJpdmVyX2NyZWF0ZV9maWxl
KHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsCiAgICAgY29uc3Qgc3RydWN0IGRyaXZlcl9h
dHRyaWJ1dGUgKmF0dHIpOwpleHRlcm4gdm9pZCBkcml2ZXJfcmVtb3ZlX2ZpbGUoc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRyaXZlciwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBkcml2ZXJfYXR0cmli
dXRlICphdHRyKTsKCmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1
bHRfXykpIGRyaXZlcl9mb3JfZWFjaF9kZXZpY2Uoc3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwK
ICAgICAgICAgICAgc3RydWN0IGRldmljZSAqc3RhcnQsCiAgICAgICAgICAgIHZvaWQgKmRhdGEs
CiAgICAgICAgICAgIGludCAoKmZuKShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgICAgdm9pZCAq
KSk7CnN0cnVjdCBkZXZpY2UgKmRyaXZlcl9maW5kX2RldmljZShzdHJ1Y3QgZGV2aWNlX2RyaXZl
ciAqZHJ2LAogICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCwgY29uc3Qgdm9pZCAqZGF0YSwKICAg
ICAgaW50ICgqbWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSkpOwoK
CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X25hbWUoc3RydWN0IGRl
dmljZV9kcml2ZXIgKmRydiwKICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCnsKIHJldHVybiBkcml2
ZXJfZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgbmFtZSwgZGV2aWNlX21hdGNoX25hbWUp
Owp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X29mX25vZGUo
c3RydWN0IGRldmljZV9kcml2ZXIgKmRydiwKICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9u
b2RlICpucCkKewogcmV0dXJuIGRyaXZlcl9maW5kX2RldmljZShkcnYsICgodm9pZCAqKTApLCBu
cCwgZGV2aWNlX21hdGNoX29mX25vZGUpOwp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZGV2aWNlICoKZHJpdmVy
X2ZpbmRfZGV2aWNlX2J5X2Z3bm9kZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LAogICAgICAg
IGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCnsKIHJldHVybiBkcml2ZXJfZmlu
ZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgZndub2RlLCBkZXZpY2VfbWF0Y2hfZndub2RlKTsK
fQoKCgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfZGV2aWNlX2J5X2RldnQoc3RydWN0
IGRldmljZV9kcml2ZXIgKmRydiwKICAgICAgIGRldl90IGRldnQpCnsKIHJldHVybiBkcml2ZXJf
ZmluZF9kZXZpY2UoZHJ2LCAoKHZvaWQgKikwKSwgJmRldnQsIGRldmljZV9tYXRjaF9kZXZ0KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGRldmljZSAqZHJpdmVyX2ZpbmRfbmV4dF9kZXZpY2Uoc3RydWN0IGRldmljZV9k
cml2ZXIgKmRydiwKICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpzdGFydCkKewogcmV0dXJuIGRy
aXZlcl9maW5kX2RldmljZShkcnYsIHN0YXJ0LCAoKHZvaWQgKikwKSwgZGV2aWNlX21hdGNoX2Fu
eSk7Cn0KIyAyMjUgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UvZHJpdmVyLmgiCnN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkZXZp
Y2UgKgpkcml2ZXJfZmluZF9kZXZpY2VfYnlfYWNwaV9kZXYoc3RydWN0IGRldmljZV9kcml2ZXIg
KmRydiwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKewogcmV0dXJu
IGRyaXZlcl9maW5kX2RldmljZShkcnYsICgodm9pZCAqKTApLCBhZGV2LCBkZXZpY2VfbWF0Y2hf
YWNwaV9kZXYpOwp9CiMgMjM5ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlL2RyaXZlci5oIgp2b2lk
IGRyaXZlcl9kZWZlcnJlZF9wcm9iZV9hZGQoc3RydWN0IGRldmljZSAqZGV2KTsKaW50IGRyaXZl
cl9kZWZlcnJlZF9wcm9iZV9jaGVja19zdGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwppbnQgZHJp
dmVyX2RlZmVycmVkX3Byb2JlX2NoZWNrX3N0YXRlX2NvbnRpbnVlKHN0cnVjdCBkZXZpY2UgKmRl
dik7CnZvaWQgZHJpdmVyX2luaXQodm9pZCk7CiMgMzIgIi4vaW5jbHVkZS9saW51eC9kZXZpY2Uu
aCIgMgojIDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZGV2aWNlLmgiIDEKCgoKCnN0cnVjdCBk
ZXZfYXJjaGRhdGEgewoKIHZvaWQgKmlvbW11OwoKfTsKCnN0cnVjdCBwZGV2X2FyY2hkYXRhIHsK
fTsKIyAzMyAiLi9pbmNsdWRlL2xpbnV4L2RldmljZS5oIiAyCgpzdHJ1Y3QgZGV2aWNlOwpzdHJ1
Y3QgZGV2aWNlX3ByaXZhdGU7CnN0cnVjdCBkZXZpY2VfZHJpdmVyOwpzdHJ1Y3QgZHJpdmVyX3By
aXZhdGU7CnN0cnVjdCBtb2R1bGU7CnN0cnVjdCBjbGFzczsKc3RydWN0IHN1YnN5c19wcml2YXRl
OwpzdHJ1Y3QgZGV2aWNlX25vZGU7CnN0cnVjdCBmd25vZGVfaGFuZGxlOwpzdHJ1Y3QgaW9tbXVf
b3BzOwpzdHJ1Y3QgaW9tbXVfZ3JvdXA7CnN0cnVjdCBpb21tdV9md3NwZWM7CnN0cnVjdCBkZXZf
cGluX2luZm87CnN0cnVjdCBpb21tdV9wYXJhbTsKIyA2MiAiLi9pbmNsdWRlL2xpbnV4L2Rldmlj
ZS5oIgpzdHJ1Y3Qgc3Vic3lzX2ludGVyZmFjZSB7CiBjb25zdCBjaGFyICpuYW1lOwogc3RydWN0
IGJ1c190eXBlICpzdWJzeXM7CiBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CiBpbnQgKCphZGRfZGV2
KShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzdWJzeXNfaW50ZXJmYWNlICpzaWYpOwogdm9p
ZCAoKnJlbW92ZV9kZXYpKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHN1YnN5c19pbnRlcmZh
Y2UgKnNpZik7Cn07CgppbnQgc3Vic3lzX2ludGVyZmFjZV9yZWdpc3RlcihzdHJ1Y3Qgc3Vic3lz
X2ludGVyZmFjZSAqc2lmKTsKdm9pZCBzdWJzeXNfaW50ZXJmYWNlX3VucmVnaXN0ZXIoc3RydWN0
IHN1YnN5c19pbnRlcmZhY2UgKnNpZik7CgppbnQgc3Vic3lzX3N5c3RlbV9yZWdpc3RlcihzdHJ1
Y3QgYnVzX3R5cGUgKnN1YnN5cywKICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
Kmdyb3Vwcyk7CmludCBzdWJzeXNfdmlydHVhbF9yZWdpc3RlcihzdHJ1Y3QgYnVzX3R5cGUgKnN1
YnN5cywKICAgICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwojIDg3
ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCnN0cnVjdCBkZXZpY2VfdHlwZSB7CiBjb25zdCBj
aGFyICpuYW1lOwogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3VwczsKIGludCAo
KnVldmVudCkoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYp
OwogY2hhciAqKCpkZXZub2RlKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVtb2RlX3QgKm1vZGUsCiAg
ICBrdWlkX3QgKnVpZCwga2dpZF90ICpnaWQpOwogdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkZXZp
Y2UgKmRldik7CgogY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgKnBtOwp9OwoKCnN0cnVjdCBkZXZp
Y2VfYXR0cmlidXRlIHsKIHN0cnVjdCBhdHRyaWJ1dGUgYXR0cjsKIHNzaXplX3QgKCpzaG93KShz
dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogICBjaGFy
ICpidWYpOwogc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp
Y2VfYXR0cmlidXRlICphdHRyLAogICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpOwp9
OwoKc3RydWN0IGRldl9leHRfYXR0cmlidXRlIHsKIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlIGF0
dHI7CiB2b2lkICp2YXI7Cn07Cgpzc2l6ZV90IGRldmljZV9zaG93X3Vsb25nKHN0cnVjdCBkZXZp
Y2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAgICAgY2hhciAqYnVmKTsK
c3NpemVfdCBkZXZpY2Vfc3RvcmVfdWxvbmcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2
aWNlX2F0dHJpYnV0ZSAqYXR0ciwKICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQp
Owpzc2l6ZV90IGRldmljZV9zaG93X2ludChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp
Y2VfYXR0cmlidXRlICphdHRyLAogICBjaGFyICpidWYpOwpzc2l6ZV90IGRldmljZV9zdG9yZV9p
bnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKICAg
IGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKc3NpemVfdCBkZXZpY2Vfc2hvd19ib29s
KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAgIGNo
YXIgKmJ1Zik7CnNzaXplX3QgZGV2aWNlX3N0b3JlX2Jvb2woc3RydWN0IGRldmljZSAqZGV2LCBz
dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90
IGNvdW50KTsKIyAxNDkgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKZXh0ZXJuIGludCBkZXZp
Y2VfY3JlYXRlX2ZpbGUoc3RydWN0IGRldmljZSAqZGV2aWNlLAogICAgICAgICBjb25zdCBzdHJ1
Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZW50cnkpOwpleHRlcm4gdm9pZCBkZXZpY2VfcmVtb3ZlX2Zp
bGUoc3RydWN0IGRldmljZSAqZGV2LAogICAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRy
aWJ1dGUgKmF0dHIpOwpleHRlcm4gYm9vbCBkZXZpY2VfcmVtb3ZlX2ZpbGVfc2VsZihzdHJ1Y3Qg
ZGV2aWNlICpkZXYsCiAgICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIp
OwpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZp
Y2VfY3JlYXRlX2Jpbl9maWxlKHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICBjb25zdCBzdHJ1Y3Qg
YmluX2F0dHJpYnV0ZSAqYXR0cik7CmV4dGVybiB2b2lkIGRldmljZV9yZW1vdmVfYmluX2ZpbGUo
c3RydWN0IGRldmljZSAqZGV2LAogICAgICAgY29uc3Qgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0
dHIpOwoKCnR5cGVkZWYgdm9pZCAoKmRyX3JlbGVhc2VfdCkoc3RydWN0IGRldmljZSAqZGV2LCB2
b2lkICpyZXMpOwp0eXBlZGVmIGludCAoKmRyX21hdGNoX3QpKHN0cnVjdCBkZXZpY2UgKmRldiwg
dm9pZCAqcmVzLCB2b2lkICptYXRjaF9kYXRhKTsKIyAxNzIgIi4vaW5jbHVkZS9saW51eC9kZXZp
Y2UuaCIKZXh0ZXJuIHZvaWQgKmRldnJlc19hbGxvY19ub2RlKGRyX3JlbGVhc2VfdCByZWxlYXNl
LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwLAogICAgICAgICAgaW50IG5pZCkgX19hdHRyaWJ1dGVf
XygoX19tYWxsb2NfXykpOwpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSB2b2lkICpkZXZyZXNfYWxsb2MoZHJfcmVsZWFzZV90IHJlbGVhc2Us
IHNpemVfdCBzaXplLCBnZnBfdCBnZnApCnsKIHJldHVybiBkZXZyZXNfYWxsb2Nfbm9kZShyZWxl
YXNlLCBzaXplLCBnZnAsICgtMSkpOwp9CgoKZXh0ZXJuIHZvaWQgZGV2cmVzX2Zvcl9lYWNoX3Jl
cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGRyX3JlbGVhc2VfdCByZWxlYXNlLAogICAgZHJfbWF0Y2hf
dCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSwKICAgIHZvaWQgKCpmbikoc3RydWN0IGRldmljZSAq
LCB2b2lkICosIHZvaWQgKiksCiAgICB2b2lkICpkYXRhKTsKZXh0ZXJuIHZvaWQgZGV2cmVzX2Zy
ZWUodm9pZCAqcmVzKTsKZXh0ZXJuIHZvaWQgZGV2cmVzX2FkZChzdHJ1Y3QgZGV2aWNlICpkZXYs
IHZvaWQgKnJlcyk7CmV4dGVybiB2b2lkICpkZXZyZXNfZmluZChzdHJ1Y3QgZGV2aWNlICpkZXYs
IGRyX3JlbGVhc2VfdCByZWxlYXNlLAogICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hf
ZGF0YSk7CmV4dGVybiB2b2lkICpkZXZyZXNfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAq
bmV3X3JlcywKICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CmV4dGVybiB2
b2lkICpkZXZyZXNfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVh
c2UsCiAgICAgIGRyX21hdGNoX3QgbWF0Y2gsIHZvaWQgKm1hdGNoX2RhdGEpOwpleHRlcm4gaW50
IGRldnJlc19kZXN0cm95KHN0cnVjdCBkZXZpY2UgKmRldiwgZHJfcmVsZWFzZV90IHJlbGVhc2Us
CiAgICAgZHJfbWF0Y2hfdCBtYXRjaCwgdm9pZCAqbWF0Y2hfZGF0YSk7CmV4dGVybiBpbnQgZGV2
cmVzX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2LCBkcl9yZWxlYXNlX3QgcmVsZWFzZSwKICAg
ICBkcl9tYXRjaF90IG1hdGNoLCB2b2lkICptYXRjaF9kYXRhKTsKCgpleHRlcm4gdm9pZCAqIF9f
YXR0cmlidXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZyZXNfb3Blbl9ncm91cChz
dHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmlkLAogICAgICAgICAgZ2ZwX3QgZ2ZwKTsKZXh0ZXJu
IHZvaWQgZGV2cmVzX2Nsb3NlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqaWQpOwpl
eHRlcm4gdm9pZCBkZXZyZXNfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAq
aWQpOwpleHRlcm4gaW50IGRldnJlc19yZWxlYXNlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwg
dm9pZCAqaWQpOwoKCmV4dGVybiB2b2lkICpkZXZtX2ttYWxsb2Moc3RydWN0IGRldmljZSAqZGV2
LCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZ2ZwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CmV4
dGVybiBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgMCkpKQpjaGFyICpkZXZt
X2t2YXNwcmludGYoc3RydWN0IGRldmljZSAqZGV2LCBnZnBfdCBnZnAsIGNvbnN0IGNoYXIgKmZt
dCwKICAgICAgICB2YV9saXN0IGFwKSBfX2F0dHJpYnV0ZV9fKChfX21hbGxvY19fKSk7CmV4dGVy
biBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkpKQpjaGFyICpkZXZtX2th
c3ByaW50ZihzdHJ1Y3QgZGV2aWNlICpkZXYsIGdmcF90IGdmcCwgY29uc3QgY2hhciAqZm10LCAu
Li4pIF9fYXR0cmlidXRlX18oKF9fbWFsbG9jX18pKTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCAqZGV2bV9remFsbG9jKHN0cnVj
dCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCkKewogcmV0dXJuIGRldm1fa21h
bGxvYyhkZXYsIHNpemUsIGdmcCB8ICgoIGdmcF90KTB4MTAwdSkpOwp9CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgKmRldm1fa21h
bGxvY19hcnJheShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgICAgICAgc2l6ZV90IG4sIHNpemVf
dCBzaXplLCBnZnBfdCBmbGFncykKewogc2l6ZV90IGJ5dGVzOwoKIGlmIChfX2J1aWx0aW5fZXhw
ZWN0KCEhKCh7IHR5cGVvZihuKSBfX2EgPSAobik7IHR5cGVvZihzaXplKSBfX2IgPSAoc2l6ZSk7
IHR5cGVvZigmYnl0ZXMpIF9fZCA9ICgmYnl0ZXMpOyAodm9pZCkgKCZfX2EgPT0gJl9fYik7ICh2
b2lkKSAoJl9fYSA9PSBfX2QpOyBfX2J1aWx0aW5fbXVsX292ZXJmbG93KF9fYSwgX19iLCBfX2Qp
OyB9KSksIDApKQogIHJldHVybiAoKHZvaWQgKikwKTsKCiByZXR1cm4gZGV2bV9rbWFsbG9jKGRl
diwgYnl0ZXMsIGZsYWdzKTsKfQpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkICpkZXZtX2tjYWxsb2Moc3RydWN0IGRldmljZSAqZGV2
LAogICAgIHNpemVfdCBuLCBzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MpCnsKIHJldHVybiBkZXZt
X2ttYWxsb2NfYXJyYXkoZGV2LCBuLCBzaXplLCBmbGFncyB8ICgoIGdmcF90KTB4MTAwdSkpOwp9
CmV4dGVybiB2b2lkIGRldm1fa2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpw
KTsKZXh0ZXJuIGNoYXIgKmRldm1fa3N0cmR1cChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNo
YXIgKnMsIGdmcF90IGdmcCkgX19hdHRyaWJ1dGVfXygoX19tYWxsb2NfXykpOwpleHRlcm4gY29u
c3QgY2hhciAqZGV2bV9rc3RyZHVwX2NvbnN0KHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICAg
IGNvbnN0IGNoYXIgKnMsIGdmcF90IGdmcCk7CmV4dGVybiB2b2lkICpkZXZtX2ttZW1kdXAoc3Ry
dWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBsZW4sCiAgICAgZ2ZwX3Qg
Z2ZwKTsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGRldm1fZ2V0X2ZyZWVfcGFnZXMoc3RydWN0IGRl
dmljZSAqZGV2LAogICAgICBnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyKTsKZXh0
ZXJuIHZvaWQgZGV2bV9mcmVlX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgbG9u
ZyBhZGRyKTsKCnZvaWQgKmRldm1faW9yZW1hcF9yZXNvdXJjZShzdHJ1Y3QgZGV2aWNlICpkZXYs
CiAgICAgICAgY29uc3Qgc3RydWN0IHJlc291cmNlICpyZXMpOwp2b2lkICpkZXZtX2lvcmVtYXBf
cmVzb3VyY2Vfd2Moc3RydWN0IGRldmljZSAqZGV2LAogICAgICAgICAgIGNvbnN0IHN0cnVjdCBy
ZXNvdXJjZSAqcmVzKTsKCnZvaWQgKmRldm1fb2ZfaW9tYXAoc3RydWN0IGRldmljZSAqZGV2LAog
ICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlLCBpbnQgaW5kZXgsCiAgICAgICByZXNvdXJj
ZV9zaXplX3QgKnNpemUpOwoKCmludCBkZXZtX2FkZF9hY3Rpb24oc3RydWN0IGRldmljZSAqZGV2
LCB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2b2lkICpkYXRhKTsKdm9pZCBkZXZtX3JlbW92ZV9h
Y3Rpb24oc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2b2lkICpk
YXRhKTsKdm9pZCBkZXZtX3JlbGVhc2VfYWN0aW9uKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAo
KmFjdGlvbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGV2bV9hZGRfYWN0aW9uX29yX3Jl
c2V0KHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICB2b2lkICgqYWN0aW9uKSh2b2lkICopLCB2
b2lkICpkYXRhKQp7CiBpbnQgcmV0OwoKIHJldCA9IGRldm1fYWRkX2FjdGlvbihkZXYsIGFjdGlv
biwgZGF0YSk7CiBpZiAocmV0KQogIGFjdGlvbihkYXRhKTsKCiByZXR1cm4gcmV0Owp9CiMgMjgy
ICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCnZvaWQgKl9fZGV2bV9hbGxvY19wZXJjcHUoc3Ry
dWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKICAgICAgIHNpemVfdCBhbGlnbik7CnZvaWQg
ZGV2bV9mcmVlX3BlcmNwdShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKnBkYXRhKTsKCnN0cnVj
dCBkZXZpY2VfZG1hX3BhcmFtZXRlcnMgewoKCgoKIHVuc2lnbmVkIGludCBtYXhfc2VnbWVudF9z
aXplOwogdW5zaWduZWQgbG9uZyBzZWdtZW50X2JvdW5kYXJ5X21hc2s7Cn07CiMgMzA2ICIuL2lu
Y2x1ZGUvbGludXgvZGV2aWNlLmgiCnN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiB7CiBzdHJ1Y3Qg
Zndub2RlX2hhbmRsZSAqZndub2RlOwogY29uc3QgY2hhciAqZW5kcG9pbnRbMl07CiBjb25zdCBj
aGFyICppZDsKIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKfTsKCnR5cGVkZWYgdm9pZCAqKCpkZXZj
b25fbWF0Y2hfZm5fdCkoc3RydWN0IGRldmljZV9jb25uZWN0aW9uICpjb24sIGludCBlcCwKICAg
ICAgIHZvaWQgKmRhdGEpOwoKdm9pZCAqZndub2RlX2Nvbm5lY3Rpb25fZmluZF9tYXRjaChzdHJ1
Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLAogICAgICAgY29uc3QgY2hhciAqY29uX2lkLCB2b2lk
ICpkYXRhLAogICAgICAgZGV2Y29uX21hdGNoX2ZuX3QgbWF0Y2gpOwp2b2lkICpkZXZpY2VfY29u
bmVjdGlvbl9maW5kX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqY29uX2lk
LAogICAgICAgdm9pZCAqZGF0YSwgZGV2Y29uX21hdGNoX2ZuX3QgbWF0Y2gpOwoKc3RydWN0IGRl
dmljZSAqZGV2aWNlX2Nvbm5lY3Rpb25fZmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNo
YXIgKmNvbl9pZCk7Cgp2b2lkIGRldmljZV9jb25uZWN0aW9uX2FkZChzdHJ1Y3QgZGV2aWNlX2Nv
bm5lY3Rpb24gKmNvbik7CnZvaWQgZGV2aWNlX2Nvbm5lY3Rpb25fcmVtb3ZlKHN0cnVjdCBkZXZp
Y2VfY29ubmVjdGlvbiAqY29uKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9jb25uZWN0aW9uc19hZGQoc3Ry
dWN0IGRldmljZV9jb25uZWN0aW9uICpjb25zKQp7CiBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24g
KmM7CgogZm9yIChjID0gY29uczsgYy0+ZW5kcG9pbnRbMF07IGMrKykKICBkZXZpY2VfY29ubmVj
dGlvbl9hZGQoYyk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9jb25uZWN0aW9uc19yZW1vdmUoc3RydWN0
IGRldmljZV9jb25uZWN0aW9uICpjb25zKQp7CiBzdHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24gKmM7
CgogZm9yIChjID0gY29uczsgYy0+ZW5kcG9pbnRbMF07IGMrKykKICBkZXZpY2VfY29ubmVjdGlv
bl9yZW1vdmUoYyk7Cn0KIyAzNjAgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKZW51bSBkZXZp
Y2VfbGlua19zdGF0ZSB7CiBETF9TVEFURV9OT05FID0gLTEsCiBETF9TVEFURV9ET1JNQU5UID0g
MCwKIERMX1NUQVRFX0FWQUlMQUJMRSwKIERMX1NUQVRFX0NPTlNVTUVSX1BST0JFLAogRExfU1RB
VEVfQUNUSVZFLAogRExfU1RBVEVfU1VQUExJRVJfVU5CSU5ELAp9OwojIDQwMyAiLi9pbmNsdWRl
L2xpbnV4L2RldmljZS5oIgpzdHJ1Y3QgZGV2aWNlX2xpbmsgewogc3RydWN0IGRldmljZSAqc3Vw
cGxpZXI7CiBzdHJ1Y3QgbGlzdF9oZWFkIHNfbm9kZTsKIHN0cnVjdCBkZXZpY2UgKmNvbnN1bWVy
Owogc3RydWN0IGxpc3RfaGVhZCBjX25vZGU7CiBlbnVtIGRldmljZV9saW5rX3N0YXRlIHN0YXR1
czsKIHUzMiBmbGFnczsKIHJlZmNvdW50X3QgcnBtX2FjdGl2ZTsKIHN0cnVjdCBrcmVmIGtyZWY7
Cgogc3RydWN0IGNhbGxiYWNrX2hlYWQgY2FsbGJhY2tfaGVhZDsKCiBib29sIHN1cHBsaWVyX3By
ZWFjdGl2YXRlZDsKfTsKIyA0MjUgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKZW51bSBkbF9k
ZXZfc3RhdGUgewogRExfREVWX05PX0RSSVZFUiA9IDAsCiBETF9ERVZfUFJPQklORywKIERMX0RF
Vl9EUklWRVJfQk9VTkQsCiBETF9ERVZfVU5CSU5ESU5HLAp9OwojIDQ0MiAiLi9pbmNsdWRlL2xp
bnV4L2RldmljZS5oIgpzdHJ1Y3QgZGV2X2xpbmtzX2luZm8gewogc3RydWN0IGxpc3RfaGVhZCBz
dXBwbGllcnM7CiBzdHJ1Y3QgbGlzdF9oZWFkIGNvbnN1bWVyczsKIHN0cnVjdCBsaXN0X2hlYWQg
bmVlZHNfc3VwcGxpZXJzOwogc3RydWN0IGxpc3RfaGVhZCBkZWZlcl9zeW5jOwogYm9vbCBuZWVk
X2Zvcl9wcm9iZTsKIGVudW0gZGxfZGV2X3N0YXRlIHN0YXR1czsKfTsKIyA1MzcgIi4vaW5jbHVk
ZS9saW51eC9kZXZpY2UuaCIKc3RydWN0IGRldmljZSB7CiBzdHJ1Y3Qga29iamVjdCBrb2JqOwog
c3RydWN0IGRldmljZSAqcGFyZW50OwoKIHN0cnVjdCBkZXZpY2VfcHJpdmF0ZSAqcDsKCiBjb25z
dCBjaGFyICppbml0X25hbWU7CiBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgKnR5cGU7Cgogc3Ry
dWN0IGJ1c190eXBlICpidXM7CiBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyOwoKIHZvaWQg
KnBsYXRmb3JtX2RhdGE7Cgogdm9pZCAqZHJpdmVyX2RhdGE7CgoKCgogc3RydWN0IG11dGV4IG11
dGV4OwoKCgogc3RydWN0IGRldl9saW5rc19pbmZvIGxpbmtzOwogc3RydWN0IGRldl9wbV9pbmZv
IHBvd2VyOwogc3RydWN0IGRldl9wbV9kb21haW4gKnBtX2RvbWFpbjsKCgogc3RydWN0IGlycV9k
b21haW4gKm1zaV9kb21haW47CgoKIHN0cnVjdCBkZXZfcGluX2luZm8gKnBpbnM7CgoKIHN0cnVj
dCBsaXN0X2hlYWQgbXNpX2xpc3Q7CgoKIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqZG1hX29w
czsKIHU2NCAqZG1hX21hc2s7CiB1NjQgY29oZXJlbnRfZG1hX21hc2s7CgoKCgogdTY0IGJ1c19k
bWFfbGltaXQ7CiB1bnNpZ25lZCBsb25nIGRtYV9wZm5fb2Zmc2V0OwoKIHN0cnVjdCBkZXZpY2Vf
ZG1hX3BhcmFtZXRlcnMgKmRtYV9wYXJtczsKCiBzdHJ1Y3QgbGlzdF9oZWFkIGRtYV9wb29sczsK
IyA1OTcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIKIHN0cnVjdCBkZXZfYXJjaGRhdGEgYXJj
aGRhdGE7Cgogc3RydWN0IGRldmljZV9ub2RlICpvZl9ub2RlOwogc3RydWN0IGZ3bm9kZV9oYW5k
bGUgKmZ3bm9kZTsKCgoKCiBkZXZfdCBkZXZ0OwogdTMyIGlkOwoKIHNwaW5sb2NrX3QgZGV2cmVz
X2xvY2s7CiBzdHJ1Y3QgbGlzdF9oZWFkIGRldnJlc19oZWFkOwoKIHN0cnVjdCBjbGFzcyAqY2xh
c3M7CiBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBzOwoKIHZvaWQgKCpyZWxl
YXNlKShzdHJ1Y3QgZGV2aWNlICpkZXYpOwogc3RydWN0IGlvbW11X2dyb3VwICppb21tdV9ncm91
cDsKIHN0cnVjdCBpb21tdV9md3NwZWMgKmlvbW11X2Z3c3BlYzsKIHN0cnVjdCBpb21tdV9wYXJh
bSAqaW9tbXVfcGFyYW07CgogYm9vbCBvZmZsaW5lX2Rpc2FibGVkOjE7CiBib29sIG9mZmxpbmU6
MTsKIGJvb2wgb2Zfbm9kZV9yZXVzZWQ6MTsKIGJvb2wgc3RhdGVfc3luY2VkOjE7CgoKCgoKfTsK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IHN0cnVjdCBkZXZpY2UgKmtvYmpfdG9fZGV2KHN0cnVjdCBrb2JqZWN0ICprb2JqKQp7CiByZXR1
cm4gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoa29iaik7IGRvIHsgZXh0ZXJuIHZvaWQgX19j
b21waWxldGltZV9hc3NlcnRfNjMyKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9p
bnRlciB0eXBlIG1pc21hdGNoIGluIGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWls
dGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoKihrb2JqKSksIHR5cGVvZigoKHN0cnVjdCBk
ZXZpY2UgKikwKS0+a29iaikpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKGtvYmopKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF82MzIoKTsg
fSB3aGlsZSAoMCk7ICgoc3RydWN0IGRldmljZSAqKShfX21wdHIgLSBfX2J1aWx0aW5fb2Zmc2V0
b2Yoc3RydWN0IGRldmljZSwga29iaikpKTsgfSk7Cn0KCgoKCgoKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfaW9tbXVf
bWFwcGVkKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIChkZXYtPmlvbW11X2dyb3VwICE9
ICgodm9pZCAqKTApKTsKfQoKCiMgMSAiLi9pbmNsdWRlL2xpbnV4L3BtX3dha2V1cC5oIiAxCiMg
MTggIi4vaW5jbHVkZS9saW51eC9wbV93YWtldXAuaCIKc3RydWN0IHdha2VfaXJxOwojIDQzICIu
L2luY2x1ZGUvbGludXgvcG1fd2FrZXVwLmgiCnN0cnVjdCB3YWtldXBfc291cmNlIHsKIGNvbnN0
IGNoYXIgKm5hbWU7CiBpbnQgaWQ7CiBzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5Owogc3BpbmxvY2tf
dCBsb2NrOwogc3RydWN0IHdha2VfaXJxICp3YWtlaXJxOwogc3RydWN0IHRpbWVyX2xpc3QgdGlt
ZXI7CiB1bnNpZ25lZCBsb25nIHRpbWVyX2V4cGlyZXM7CiBrdGltZV90IHRvdGFsX3RpbWU7CiBr
dGltZV90IG1heF90aW1lOwoga3RpbWVfdCBsYXN0X3RpbWU7CiBrdGltZV90IHN0YXJ0X3ByZXZl
bnRfdGltZTsKIGt0aW1lX3QgcHJldmVudF9zbGVlcF90aW1lOwogdW5zaWduZWQgbG9uZyBldmVu
dF9jb3VudDsKIHVuc2lnbmVkIGxvbmcgYWN0aXZlX2NvdW50OwogdW5zaWduZWQgbG9uZyByZWxh
eF9jb3VudDsKIHVuc2lnbmVkIGxvbmcgZXhwaXJlX2NvdW50OwogdW5zaWduZWQgbG9uZyB3YWtl
dXBfY291bnQ7CiBzdHJ1Y3QgZGV2aWNlICpkZXY7CiBib29sIGFjdGl2ZToxOwogYm9vbCBhdXRv
c2xlZXBfZW5hYmxlZDoxOwp9OwojIDc3ICIuL2luY2x1ZGUvbGludXgvcG1fd2FrZXVwLmgiCnN0
YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9f
KChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJv
b2wgZGV2aWNlX2Nhbl93YWtldXAoc3RydWN0IGRldmljZSAqZGV2KQp7CiByZXR1cm4gZGV2LT5w
b3dlci5jYW5fd2FrZXVwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRldmljZV9tYXlfd2FrZXVwKHN0cnVjdCBkZXZpY2Ug
KmRldikKewogcmV0dXJuIGRldi0+cG93ZXIuY2FuX3dha2V1cCAmJiAhIWRldi0+cG93ZXIud2Fr
ZXVwOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSB2b2lkIGRldmljZV9zZXRfd2FrZXVwX3BhdGgoc3RydWN0IGRldmljZSAqZGV2KQp7
CiBkZXYtPnBvd2VyLndha2V1cF9wYXRoID0gdHJ1ZTsKfQoKCmV4dGVybiBzdHJ1Y3Qgd2FrZXVw
X3NvdXJjZSAqd2FrZXVwX3NvdXJjZV9jcmVhdGUoY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiB2
b2lkIHdha2V1cF9zb3VyY2VfZGVzdHJveShzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpleHRl
cm4gdm9pZCB3YWtldXBfc291cmNlX2FkZChzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpleHRl
cm4gdm9pZCB3YWtldXBfc291cmNlX3JlbW92ZShzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpl
eHRlcm4gc3RydWN0IHdha2V1cF9zb3VyY2UgKndha2V1cF9zb3VyY2VfcmVnaXN0ZXIoc3RydWN0
IGRldmljZSAqZGV2LAogICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiB2b2lkIHdh
a2V1cF9zb3VyY2VfdW5yZWdpc3RlcihzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MpOwpleHRlcm4g
aW50IHdha2V1cF9zb3VyY2VzX3JlYWRfbG9jayh2b2lkKTsKZXh0ZXJuIHZvaWQgd2FrZXVwX3Nv
dXJjZXNfcmVhZF91bmxvY2soaW50IGlkeCk7CmV4dGVybiBzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAq
d2FrZXVwX3NvdXJjZXNfd2Fsa19zdGFydCh2b2lkKTsKZXh0ZXJuIHN0cnVjdCB3YWtldXBfc291
cmNlICp3YWtldXBfc291cmNlc193YWxrX25leHQoc3RydWN0IHdha2V1cF9zb3VyY2UgKndzKTsK
ZXh0ZXJuIGludCBkZXZpY2Vfd2FrZXVwX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRl
cm4gaW50IGRldmljZV93YWtldXBfZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4g
dm9pZCBkZXZpY2Vfc2V0X3dha2V1cF9jYXBhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgYm9vbCBj
YXBhYmxlKTsKZXh0ZXJuIGludCBkZXZpY2VfaW5pdF93YWtldXAoc3RydWN0IGRldmljZSAqZGV2
LCBib29sIHZhbCk7CmV4dGVybiBpbnQgZGV2aWNlX3NldF93YWtldXBfZW5hYmxlKHN0cnVjdCBk
ZXZpY2UgKmRldiwgYm9vbCBlbmFibGUpOwpleHRlcm4gdm9pZCBfX3BtX3N0YXlfYXdha2Uoc3Ry
dWN0IHdha2V1cF9zb3VyY2UgKndzKTsKZXh0ZXJuIHZvaWQgcG1fc3RheV9hd2FrZShzdHJ1Y3Qg
ZGV2aWNlICpkZXYpOwpleHRlcm4gdm9pZCBfX3BtX3JlbGF4KHN0cnVjdCB3YWtldXBfc291cmNl
ICp3cyk7CmV4dGVybiB2b2lkIHBtX3JlbGF4KHN0cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiB2
b2lkIHBtX3dha2V1cF93c19ldmVudChzdHJ1Y3Qgd2FrZXVwX3NvdXJjZSAqd3MsIHVuc2lnbmVk
IGludCBtc2VjLCBib29sIGhhcmQpOwpleHRlcm4gdm9pZCBwbV93YWtldXBfZGV2X2V2ZW50KHN0
cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG1zZWMsIGJvb2wgaGFyZCk7CiMgMTk1ICIu
L2luY2x1ZGUvbGludXgvcG1fd2FrZXVwLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgX19wbV93YWtldXBfZXZlbnQoc3RydWN0
IHdha2V1cF9zb3VyY2UgKndzLCB1bnNpZ25lZCBpbnQgbXNlYykKewogcmV0dXJuIHBtX3dha2V1
cF93c19ldmVudCh3cywgbXNlYywgZmFsc2UpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIHBtX3dha2V1cF9ldmVudChzdHJ1
Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBtc2VjKQp7CiByZXR1cm4gcG1fd2FrZXVwX2Rl
dl9ldmVudChkZXYsIG1zZWMsIGZhbHNlKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBwbV93YWtldXBfaGFyZF9ldmVudChz
dHJ1Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiBwbV93YWtldXBfZGV2X2V2ZW50KGRldiwgMCwg
dHJ1ZSk7Cn0KIyA2NDcgIi4vaW5jbHVkZS9saW51eC9kZXZpY2UuaCIgMgoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgY29uc3QgY2hhciAq
ZGV2X25hbWUoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQp7CgogaWYgKGRldi0+aW5pdF9uYW1l
KQogIHJldHVybiBkZXYtPmluaXRfbmFtZTsKCiByZXR1cm4ga29iamVjdF9uYW1lKCZkZXYtPmtv
YmopOwp9CgpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDIsIDMpKSkK
aW50IGRldl9zZXRfbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsIC4u
Lik7CiMgNjcwICIuL2luY2x1ZGUvbGludXgvZGV2aWNlLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkZXZfdG9fbm9kZShzdHJ1
Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiAoLTEpOwp9CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgc2V0X2Rldl9ub2RlKHN0cnVj
dCBkZXZpY2UgKmRldiwgaW50IG5vZGUpCnsKfQoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBpcnFfZG9tYWluICpkZXZfZ2V0
X21zaV9kb21haW4oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQp7CgogcmV0dXJuIGRldi0+bXNp
X2RvbWFpbjsKCgoKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfc2V0X21zaV9kb21haW4oc3RydWN0IGRldmljZSAqZGV2
LCBzdHJ1Y3QgaXJxX2RvbWFpbiAqZCkKewoKIGRldi0+bXNpX2RvbWFpbiA9IGQ7Cgp9CgpzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lk
ICpkZXZfZ2V0X2RydmRhdGEoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQp7CiByZXR1cm4gZGV2
LT5kcml2ZXJfZGF0YTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfc2V0X2RydmRhdGEoc3RydWN0IGRldmljZSAqZGV2
LCB2b2lkICpkYXRhKQp7CiBkZXYtPmRyaXZlcl9kYXRhID0gZGF0YTsKfQoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IHBtX3N1
YnN5c19kYXRhICpkZXZfdG9fcHNkKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIGRldiA/
IGRldi0+cG93ZXIuc3Vic3lzX2RhdGEgOiAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdW5zaWduZWQgaW50IGRl
dl9nZXRfdWV2ZW50X3N1cHByZXNzKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJu
IGRldi0+a29iai51ZXZlbnRfc3VwcHJlc3M7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGV2X3NldF91ZXZlbnRfc3VwcHJl
c3Moc3RydWN0IGRldmljZSAqZGV2LCBpbnQgdmFsKQp7CiBkZXYtPmtvYmoudWV2ZW50X3N1cHBy
ZXNzID0gdmFsOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBpbnQgZGV2aWNlX2lzX3JlZ2lzdGVyZWQoc3RydWN0IGRldmljZSAqZGV2
KQp7CiByZXR1cm4gZGV2LT5rb2JqLnN0YXRlX2luX3N5c2ZzOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9lbmFi
bGVfYXN5bmNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIGlmICghZGV2LT5wb3dlci5p
c19wcmVwYXJlZCkKICBkZXYtPnBvd2VyLmFzeW5jX3N1c3BlbmQgPSB0cnVlOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRl
dmljZV9kaXNhYmxlX2FzeW5jX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQp7CiBpZiAoIWRl
di0+cG93ZXIuaXNfcHJlcGFyZWQpCiAgZGV2LT5wb3dlci5hc3luY19zdXNwZW5kID0gZmFsc2U7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGJvb2wgZGV2aWNlX2FzeW5jX3N1c3BlbmRfZW5hYmxlZChzdHJ1Y3QgZGV2aWNlICpkZXYp
CnsKIHJldHVybiAhIWRldi0+cG93ZXIuYXN5bmNfc3VzcGVuZDsKfQoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkZXZpY2VfcG1f
bm90X3JlcXVpcmVkKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIGRldi0+cG93ZXIubm9f
cG07Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHZvaWQgZGV2aWNlX3NldF9wbV9ub3RfcmVxdWlyZWQoc3RydWN0IGRldmljZSAqZGV2
KQp7CiBkZXYtPnBvd2VyLm5vX3BtID0gdHJ1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0
ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJp
YnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZfcG1fc3lzY29yZV9kZXZp
Y2Uoc3RydWN0IGRldmljZSAqZGV2LCBib29sIHZhbCkKewoKIGRldi0+cG93ZXIuc3lzY29yZSA9
IHZhbDsKCn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHZvaWQgZGV2X3BtX3NldF9kcml2ZXJfZmxhZ3Moc3RydWN0IGRldmljZSAqZGV2
LCB1MzIgZmxhZ3MpCnsKIGRldi0+cG93ZXIuZHJpdmVyX2ZsYWdzID0gZmxhZ3M7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wg
ZGV2X3BtX3Rlc3RfZHJpdmVyX2ZsYWdzKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIGZsYWdzKQp7
CiByZXR1cm4gISEoZGV2LT5wb3dlci5kcml2ZXJfZmxhZ3MgJiBmbGFncyk7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGV2
aWNlX2xvY2soc3RydWN0IGRldmljZSAqZGV2KQp7CiBtdXRleF9sb2NrKCZkZXYtPm11dGV4KTsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgaW50IGRldmljZV9sb2NrX2ludGVycnVwdGlibGUoc3RydWN0IGRldmljZSAqZGV2KQp7CiBy
ZXR1cm4gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPm11dGV4KTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IGRldmlj
ZV90cnlsb2NrKHN0cnVjdCBkZXZpY2UgKmRldikKewogcmV0dXJuIG11dGV4X3RyeWxvY2soJmRl
di0+bXV0ZXgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV91bmxvY2soc3RydWN0IGRldmljZSAqZGV2KQp7CiBt
dXRleF91bmxvY2soJmRldi0+bXV0ZXgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGRldmljZV9sb2NrX2Fzc2VydChzdHJ1
Y3QgZGV2aWNlICpkZXYpCnsKIGRvIHsgKHZvaWQpKCZkZXYtPm11dGV4KTsgfSB3aGlsZSAoMCk7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2X29mX25vZGUoc3RydWN0IGRldmljZSAqZGV2KQp7
CiBpZiAoITAgfHwgIWRldikKICByZXR1cm4gKCh2b2lkICopMCk7CiByZXR1cm4gZGV2LT5vZl9u
b2RlOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBib29sIGRldl9oYXNfc3luY19zdGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIGlm
ICghZGV2KQogIHJldHVybiBmYWxzZTsKIGlmIChkZXYtPmRyaXZlciAmJiBkZXYtPmRyaXZlci0+
c3luY19zdGF0ZSkKICByZXR1cm4gdHJ1ZTsKIGlmIChkZXYtPmJ1cyAmJiBkZXYtPmJ1cy0+c3lu
Y19zdGF0ZSkKICByZXR1cm4gdHJ1ZTsKIHJldHVybiBmYWxzZTsKfQoKCgoKZXh0ZXJuIGludCBf
X2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZGV2aWNlX3JlZ2lzdGVyKHN0
cnVjdCBkZXZpY2UgKmRldik7CmV4dGVybiB2b2lkIGRldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBk
ZXZpY2UgKmRldik7CmV4dGVybiB2b2lkIGRldmljZV9pbml0aWFsaXplKHN0cnVjdCBkZXZpY2Ug
KmRldik7CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykp
IGRldmljZV9hZGQoc3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX2RlbChz
dHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gaW50IGRldmljZV9mb3JfZWFjaF9jaGlsZChzdHJ1
Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAgICAgICBpbnQgKCpmbikoc3RydWN0IGRldmlj
ZSAqZGV2LCB2b2lkICpkYXRhKSk7CmV4dGVybiBpbnQgZGV2aWNlX2Zvcl9lYWNoX2NoaWxkX3Jl
dmVyc2Uoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogICAgICAgaW50ICgqZm4pKHN0
cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkpOwpleHRlcm4gc3RydWN0IGRldmljZSAqZGV2
aWNlX2ZpbmRfY2hpbGQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhLAogICAgaW50ICgq
bWF0Y2gpKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkpOwpleHRlcm4gc3RydWN0IGRl
dmljZSAqZGV2aWNlX2ZpbmRfY2hpbGRfYnlfbmFtZShzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAg
ICAgIGNvbnN0IGNoYXIgKm5hbWUpOwpleHRlcm4gaW50IGRldmljZV9yZW5hbWUoc3RydWN0IGRl
dmljZSAqZGV2LCBjb25zdCBjaGFyICpuZXdfbmFtZSk7CmV4dGVybiBpbnQgZGV2aWNlX21vdmUo
c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICpuZXdfcGFyZW50LAogICAgICAgICBl
bnVtIGRwbV9vcmRlciBkcG1fb3JkZXIpOwpleHRlcm4gY29uc3QgY2hhciAqZGV2aWNlX2dldF9k
ZXZub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICAgIHVtb2RlX3QgKm1vZGUsIGt1aWRf
dCAqdWlkLCBrZ2lkX3QgKmdpZCwKICAgICAgICAgIGNvbnN0IGNoYXIgKip0bXApOwoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBk
ZXZpY2Vfc3VwcG9ydHNfb2ZmbGluZShzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiBkZXYt
PmJ1cyAmJiBkZXYtPmJ1cy0+b2ZmbGluZSAmJiBkZXYtPmJ1cy0+b25saW5lOwp9CgpleHRlcm4g
dm9pZCBsb2NrX2RldmljZV9ob3RwbHVnKHZvaWQpOwpleHRlcm4gdm9pZCB1bmxvY2tfZGV2aWNl
X2hvdHBsdWcodm9pZCk7CmV4dGVybiBpbnQgbG9ja19kZXZpY2VfaG90cGx1Z19zeXNmcyh2b2lk
KTsKZXh0ZXJuIGludCBkZXZpY2Vfb2ZmbGluZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4g
aW50IGRldmljZV9vbmxpbmUoc3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIHZvaWQgc2V0X3By
aW1hcnlfZndub2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3
bm9kZSk7CmV4dGVybiB2b2lkIHNldF9zZWNvbmRhcnlfZndub2RlKHN0cnVjdCBkZXZpY2UgKmRl
diwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSk7CnZvaWQgZGV2aWNlX3NldF9vZl9ub2Rl
X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2Mik7
CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1
dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24p
KSBpbnQgZGV2X251bV92ZihzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIGlmIChkZXYtPmJ1cyAmJiBk
ZXYtPmJ1cy0+bnVtX3ZmKQogIHJldHVybiBkZXYtPmJ1cy0+bnVtX3ZmKGRldik7CiByZXR1cm4g
MDsKfQoKCgoKZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKl9fcm9vdF9kZXZpY2VfcmVnaXN0ZXIoY29u
c3QgY2hhciAqbmFtZSwKICAgICAgICAgIHN0cnVjdCBtb2R1bGUgKm93bmVyKTsKCgoKCgpleHRl
cm4gdm9pZCByb290X2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnJvb3QpOwoKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCAqZGV2X2dldF9wbGF0ZGF0YShjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYpCnsKIHJldHVybiBk
ZXYtPnBsYXRmb3JtX2RhdGE7Cn0KCgoKCgpleHRlcm4gaW50IF9fYXR0cmlidXRlX18oKF9fd2Fy
bl91bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfYmluZF9kcml2ZXIoc3RydWN0IGRldmljZSAqZGV2
KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX3JlbGVhc2VfZHJpdmVyKHN0cnVjdCBkZXZpY2UgKmRldik7
CmV4dGVybiBpbnQgX19hdHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmlj
ZV9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChf
X3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkgZHJpdmVyX2F0dGFjaChzdHJ1Y3QgZGV2aWNlX2RyaXZl
ciAqZHJ2KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX2luaXRpYWxfcHJvYmUoc3RydWN0IGRldmljZSAq
ZGV2KTsKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkg
ZGV2aWNlX3JlcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KTsKCmV4dGVybiBib29sIGRldmljZV9p
c19ib3VuZChzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKCgoKZXh0ZXJuIF9fYXR0cmlidXRlX18oKF9f
Zm9ybWF0X18ocHJpbnRmLCA1LCAwKSkpCnN0cnVjdCBkZXZpY2UgKmRldmljZV9jcmVhdGVfdmFy
Z3Moc3RydWN0IGNsYXNzICpjbHMsIHN0cnVjdCBkZXZpY2UgKnBhcmVudCwKICAgICAgIGRldl90
IGRldnQsIHZvaWQgKmRydmRhdGEsCiAgICAgICBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgdmFy
Z3MpOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmludGYsIDUsIDYpKSkKc3Ry
dWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgY2xhc3MgKmNscywgc3RydWN0IGRldmlj
ZSAqcGFyZW50LAogICAgICAgIGRldl90IGRldnQsIHZvaWQgKmRydmRhdGEsCiAgICAgICAgY29u
c3QgY2hhciAqZm10LCAuLi4pOwpleHRlcm4gX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyhwcmlu
dGYsIDYsIDcpKSkKc3RydWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3VwcyhzdHJ1
Y3QgY2xhc3MgKmNscywKICAgICAgICBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsIGRldl90IGRldnQs
IHZvaWQgKmRydmRhdGEsCiAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdy
b3VwcywKICAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CmV4dGVybiB2b2lkIGRldmljZV9k
ZXN0cm95KHN0cnVjdCBjbGFzcyAqY2xzLCBkZXZfdCBkZXZ0KTsKCmV4dGVybiBpbnQgX19hdHRy
aWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldmljZV9hZGRfZ3JvdXBzKHN0cnVj
dCBkZXZpY2UgKmRldiwKICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBz
KTsKZXh0ZXJuIHZvaWQgZGV2aWNlX3JlbW92ZV9ncm91cHMoc3RydWN0IGRldmljZSAqZGV2LAog
ICAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKipncm91cHMpOwoKc3RhdGljIGlubGlu
ZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2Vk
X18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IF9fYXR0cmli
dXRlX18oKF9fd2Fybl91bnVzZWRfcmVzdWx0X18pKSBkZXZpY2VfYWRkX2dyb3VwKHN0cnVjdCBk
ZXZpY2UgKmRldiwKICAgICBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncnApCnsKIGNv
bnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmdyb3Vwc1tdID0geyBncnAsICgodm9pZCAqKTAp
IH07CgogcmV0dXJuIGRldmljZV9hZGRfZ3JvdXBzKGRldiwgZ3JvdXBzKTsKfQoKc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBkZXZp
Y2VfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZpY2UgKmRldiwKICAgICAgICAgICBjb25zdCBzdHJ1
Y3QgYXR0cmlidXRlX2dyb3VwICpncnApCnsKIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAg
Kmdyb3Vwc1tdID0geyBncnAsICgodm9pZCAqKTApIH07CgogcmV0dXJuIGRldmljZV9yZW1vdmVf
Z3JvdXBzKGRldiwgZ3JvdXBzKTsKfQoKZXh0ZXJuIGludCBfX2F0dHJpYnV0ZV9fKChfX3dhcm5f
dW51c2VkX3Jlc3VsdF9fKSkgZGV2bV9kZXZpY2VfYWRkX2dyb3VwcyhzdHJ1Y3QgZGV2aWNlICpk
ZXYsCiAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CmV4dGVybiB2
b2lkIGRldm1fZGV2aWNlX3JlbW92ZV9ncm91cHMoc3RydWN0IGRldmljZSAqZGV2LAogICAgICAg
ICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3Vwcyk7CmV4dGVybiBpbnQgX19h
dHRyaWJ1dGVfXygoX193YXJuX3VudXNlZF9yZXN1bHRfXykpIGRldm1fZGV2aWNlX2FkZF9ncm91
cChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq
Z3JwKTsKZXh0ZXJuIHZvaWQgZGV2bV9kZXZpY2VfcmVtb3ZlX2dyb3VwKHN0cnVjdCBkZXZpY2Ug
KmRldiwKICAgICAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqZ3JwKTsKCgoKCgoK
CmV4dGVybiBpbnQgKCpwbGF0Zm9ybV9ub3RpZnkpKHN0cnVjdCBkZXZpY2UgKmRldik7CgpleHRl
cm4gaW50ICgqcGxhdGZvcm1fbm90aWZ5X3JlbW92ZSkoc3RydWN0IGRldmljZSAqZGV2KTsKCgoK
CgoKZXh0ZXJuIHN0cnVjdCBkZXZpY2UgKmdldF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KTsK
ZXh0ZXJuIHZvaWQgcHV0X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwpleHRlcm4gYm9vbCBr
aWxsX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwoKCmV4dGVybiBpbnQgZGV2dG1wZnNfbW91
bnQodm9pZCk7CgoKCgoKZXh0ZXJuIHZvaWQgZGV2aWNlX3NodXRkb3duKHZvaWQpOwoKCmV4dGVy
biBjb25zdCBjaGFyICpkZXZfZHJpdmVyX3N0cmluZyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYp
OwoKCnN0cnVjdCBkZXZpY2VfbGluayAqZGV2aWNlX2xpbmtfYWRkKHN0cnVjdCBkZXZpY2UgKmNv
bnN1bWVyLAogICAgICAgIHN0cnVjdCBkZXZpY2UgKnN1cHBsaWVyLCB1MzIgZmxhZ3MpOwp2b2lk
IGRldmljZV9saW5rX2RlbChzdHJ1Y3QgZGV2aWNlX2xpbmsgKmxpbmspOwp2b2lkIGRldmljZV9s
aW5rX3JlbW92ZSh2b2lkICpjb25zdW1lciwgc3RydWN0IGRldmljZSAqc3VwcGxpZXIpOwp2b2lk
IGRldmljZV9saW5rc19zdXBwbGllcl9zeW5jX3N0YXRlX3BhdXNlKHZvaWQpOwp2b2lkIGRldmlj
ZV9saW5rc19zdXBwbGllcl9zeW5jX3N0YXRlX3Jlc3VtZSh2b2lkKTsKIyAzMyAiLi9pbmNsdWRl
L2RybS9kcm1fcHJpbnQuaCIgMgojIDEgIi4vaW5jbHVkZS9saW51eC9kZWJ1Z2ZzLmgiIDEKIyAy
MSAiLi9pbmNsdWRlL2xpbnV4L2RlYnVnZnMuaCIKc3RydWN0IGRldmljZTsKc3RydWN0IGZpbGVf
b3BlcmF0aW9uczsKCnN0cnVjdCBkZWJ1Z2ZzX2Jsb2Jfd3JhcHBlciB7CiB2b2lkICpkYXRhOwog
dW5zaWduZWQgbG9uZyBzaXplOwp9OwoKc3RydWN0IGRlYnVnZnNfcmVnMzIgewogY2hhciAqbmFt
ZTsKIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Owp9OwoKc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgewog
Y29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgKnJlZ3M7CiBpbnQgbnJlZ3M7CiB2b2lkICpiYXNl
Owp9OwoKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmFyY2hfZGVidWdmc19kaXI7CiMgNTcgIi4vaW5j
bHVkZS9saW51eC9kZWJ1Z2ZzLmgiCnR5cGVkZWYgc3RydWN0IHZmc21vdW50ICooKmRlYnVnZnNf
YXV0b21vdW50X3QpKHN0cnVjdCBkZW50cnkgKiwgdm9pZCAqKTsKCgoKc3RydWN0IGRlbnRyeSAq
ZGVidWdmc19sb29rdXAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGRlbnRyeSAqcGFyZW50KTsK
CnN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgdW1v
ZGVfdCBtb2RlLAogICAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB2b2lkICpkYXRhLAogICAg
ICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wcyk7CnN0cnVjdCBkZW50cnkgKmRl
YnVnZnNfY3JlYXRlX2ZpbGVfdW5zYWZlKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwK
ICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwgdm9pZCAqZGF0YSwKICAgICAgIGNvbnN0IHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwoKc3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVh
dGVfZmlsZV9zaXplKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICBzdHJ1Y3Qg
ZGVudHJ5ICpwYXJlbnQsIHZvaWQgKmRhdGEsCiAgICAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0
aW9ucyAqZm9wcywKICAgICBsb2ZmX3QgZmlsZV9zaXplKTsKCnN0cnVjdCBkZW50cnkgKmRlYnVn
ZnNfY3JlYXRlX2Rpcihjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQpOwoK
c3RydWN0IGRlbnRyeSAqZGVidWdmc19jcmVhdGVfc3ltbGluayhjb25zdCBjaGFyICpuYW1lLCBz
dHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgICAgICAgICBjb25zdCBjaGFyICpkZXN0KTsKCnN0cnVj
dCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2F1dG9tb3VudChjb25zdCBjaGFyICpuYW1lLAogICAg
IHN0cnVjdCBkZW50cnkgKnBhcmVudCwKICAgICBkZWJ1Z2ZzX2F1dG9tb3VudF90IGYsCiAgICAg
dm9pZCAqZGF0YSk7Cgp2b2lkIGRlYnVnZnNfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7
CgoKY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZGVidWdmc19yZWFsX2ZvcHMoY29uc3Qg
c3RydWN0IGZpbGUgKmZpbHApOwoKaW50IGRlYnVnZnNfZmlsZV9nZXQoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KTsKdm9pZCBkZWJ1Z2ZzX2ZpbGVfcHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7Cgpz
c2l6ZV90IGRlYnVnZnNfYXR0cl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyICpidWYsCiAg
IHNpemVfdCBsZW4sIGxvZmZfdCAqcHBvcyk7CnNzaXplX3QgZGVidWdmc19hdHRyX3dyaXRlKHN0
cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyICpidWYsCiAgIHNpemVfdCBsZW4sIGxvZmZfdCAq
cHBvcyk7CgpzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3JlbmFtZShzdHJ1Y3QgZGVudHJ5ICpvbGRf
ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAogICAgICAgICAgICAgICAgc3RydWN0IGRl
bnRyeSAqbmV3X2RpciwgY29uc3QgY2hhciAqbmV3X25hbWUpOwoKdm9pZCBkZWJ1Z2ZzX2NyZWF0
ZV91OChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsIHN0cnVjdCBkZW50cnkgKnBhcmVu
dCwKICAgICAgICAgdTggKnZhbHVlKTsKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91MTYoY29uc3QgY2hh
ciAqbmFtZSwgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgIHUxNiAqdmFs
dWUpOwpzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2NyZWF0ZV91MzIoY29uc3QgY2hhciAqbmFtZSwg
dW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHUzMiAqdmFsdWUpOwp2
b2lkIGRlYnVnZnNfY3JlYXRlX3U2NChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsIHN0
cnVjdCBkZW50cnkgKnBhcmVudCwKICAgdTY0ICp2YWx1ZSk7CnN0cnVjdCBkZW50cnkgKmRlYnVn
ZnNfY3JlYXRlX3Vsb25nKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICBz
dHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHVuc2lnbmVkIGxvbmcgKnZhbHVlKTsKdm9pZCBkZWJ1Z2Zz
X2NyZWF0ZV94OChjb25zdCBjaGFyICpuYW1lLCB1bW9kZV90IG1vZGUsIHN0cnVjdCBkZW50cnkg
KnBhcmVudCwKICAgICAgICAgdTggKnZhbHVlKTsKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV94MTYoY29u
c3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgIHUx
NiAqdmFsdWUpOwp2b2lkIGRlYnVnZnNfY3JlYXRlX3gzMihjb25zdCBjaGFyICpuYW1lLCB1bW9k
ZV90IG1vZGUsIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKICAgdTMyICp2YWx1ZSk7CnZvaWQgZGVi
dWdmc19jcmVhdGVfeDY0KGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwgc3RydWN0IGRl
bnRyeSAqcGFyZW50LAogICB1NjQgKnZhbHVlKTsKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV9zaXplX3Qo
Y29uc3QgY2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJl
bnQsIHNpemVfdCAqdmFsdWUpOwp2b2lkIGRlYnVnZnNfY3JlYXRlX2F0b21pY190KGNvbnN0IGNo
YXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIGF0
b21pY190ICp2YWx1ZSk7CnN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2Jvb2woY29uc3Qg
Y2hhciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIGJv
b2wgKnZhbHVlKTsKCnN0cnVjdCBkZW50cnkgKmRlYnVnZnNfY3JlYXRlX2Jsb2IoY29uc3QgY2hh
ciAqbmFtZSwgdW1vZGVfdCBtb2RlLAogICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsCiAgICAg
IHN0cnVjdCBkZWJ1Z2ZzX2Jsb2Jfd3JhcHBlciAqYmxvYik7Cgp2b2lkIGRlYnVnZnNfY3JlYXRl
X3JlZ3NldDMyKGNvbnN0IGNoYXIgKm5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICBzdHJ1Y3Qg
ZGVudHJ5ICpwYXJlbnQsCiAgICAgICAgc3RydWN0IGRlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCk7
Cgp2b2lkIGRlYnVnZnNfcHJpbnRfcmVnczMyKHN0cnVjdCBzZXFfZmlsZSAqcywgY29uc3Qgc3Ry
dWN0IGRlYnVnZnNfcmVnMzIgKnJlZ3MsCiAgICAgaW50IG5yZWdzLCB2b2lkICpiYXNlLCBjaGFy
ICpwcmVmaXgpOwoKdm9pZCBkZWJ1Z2ZzX2NyZWF0ZV91MzJfYXJyYXkoY29uc3QgY2hhciAqbmFt
ZSwgdW1vZGVfdCBtb2RlLAogICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQsIHUzMiAqYXJy
YXksIHUzMiBlbGVtZW50cyk7CgpzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3Nl
cWZpbGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAogICAgICAgIHN0cnVj
dCBkZW50cnkgKnBhcmVudCwKICAgICAgICBpbnQgKCpyZWFkX2ZuKShzdHJ1Y3Qgc2VxX2ZpbGUg
KnMsCiAgICAgICAgIHZvaWQgKmRhdGEpKTsKCmJvb2wgZGVidWdmc19pbml0aWFsaXplZCh2b2lk
KTsKCnNzaXplX3QgZGVidWdmc19yZWFkX2ZpbGVfYm9vbChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hh
ciAqdXNlcl9idWYsCiAgICAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcyk7Cgpzc2l6
ZV90IGRlYnVnZnNfd3JpdGVfZmlsZV9ib29sKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFy
ICp1c2VyX2J1ZiwKICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKTsKIyAzNjUgIi4vaW5j
bHVkZS9saW51eC9kZWJ1Z2ZzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQgZGVidWdmc19jcmVhdGVfeHVsKGNvbnN0IGNoYXIg
Km5hbWUsIHVtb2RlX3QgbW9kZSwKICAgICAgICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCwKICAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgKnZhbHVlKQp7CiBpZiAoc2l6ZW9mKCp2YWx1ZSkgPT0gc2l6
ZW9mKHUzMikpCiAgZGVidWdmc19jcmVhdGVfeDMyKG5hbWUsIG1vZGUsIHBhcmVudCwgKHUzMiAq
KXZhbHVlKTsKIGVsc2UKICBkZWJ1Z2ZzX2NyZWF0ZV94NjQobmFtZSwgbW9kZSwgcGFyZW50LCAo
dTY0ICopdmFsdWUpOwp9CiMgMzQgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiIDIKCiMgMSAi
Li9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIiAxCiMgNDIgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0u
aCIKIyAxICIuL2FyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkvYXNtL2lvY3RsLmgiIDEK
IyA0MyAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIiAyCnR5cGVkZWYgdW5zaWduZWQgaW50IGRy
bV9oYW5kbGVfdDsKIyA4NCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgp0eXBlZGVmIHVuc2ln
bmVkIGludCBkcm1fY29udGV4dF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBkcm1fZHJhd2FibGVf
dDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX21hZ2ljX3Q7CiMgOTcgIi4vaW5jbHVkZS91YXBp
L2RybS9kcm0uaCIKc3RydWN0IGRybV9jbGlwX3JlY3QgewogdW5zaWduZWQgc2hvcnQgeDE7CiB1
bnNpZ25lZCBzaG9ydCB5MTsKIHVuc2lnbmVkIHNob3J0IHgyOwogdW5zaWduZWQgc2hvcnQgeTI7
Cn07CgoKCgpzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gewogdW5zaWduZWQgaW50IG51bV9yZWN0
czsKIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpyZWN0czsKfTsKCgoKCnN0cnVjdCBkcm1fdGV4X3Jl
Z2lvbiB7CiB1bnNpZ25lZCBjaGFyIG5leHQ7CiB1bnNpZ25lZCBjaGFyIHByZXY7CiB1bnNpZ25l
ZCBjaGFyIGluX3VzZTsKIHVuc2lnbmVkIGNoYXIgcGFkZGluZzsKIHVuc2lnbmVkIGludCBhZ2U7
Cn07CiMgMTMwICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCnN0cnVjdCBkcm1faHdfbG9jayB7
CiBfX3ZvbGF0aWxlX18gdW5zaWduZWQgaW50IGxvY2s7CiBjaGFyIHBhZGRpbmdbNjBdOwp9OwoK
CgoKCgpzdHJ1Y3QgZHJtX3ZlcnNpb24gewogaW50IHZlcnNpb25fbWFqb3I7CiBpbnQgdmVyc2lv
bl9taW5vcjsKIGludCB2ZXJzaW9uX3BhdGNobGV2ZWw7CiBfX2tlcm5lbF9zaXplX3QgbmFtZV9s
ZW47CiBjaGFyICpuYW1lOwogX19rZXJuZWxfc2l6ZV90IGRhdGVfbGVuOwogY2hhciAqZGF0ZTsK
IF9fa2VybmVsX3NpemVfdCBkZXNjX2xlbjsKIGNoYXIgKmRlc2M7Cn07CgoKCgoKCnN0cnVjdCBk
cm1fdW5pcXVlIHsKIF9fa2VybmVsX3NpemVfdCB1bmlxdWVfbGVuOwogY2hhciAqdW5pcXVlOwp9
OwoKc3RydWN0IGRybV9saXN0IHsKIGludCBjb3VudDsKIHN0cnVjdCBkcm1fdmVyc2lvbiAqdmVy
c2lvbjsKfTsKCnN0cnVjdCBkcm1fYmxvY2sgewogaW50IHVudXNlZDsKfTsKCgoKCgoKc3RydWN0
IGRybV9jb250cm9sIHsKIGVudW0gewogIERSTV9BRERfQ09NTUFORCwKICBEUk1fUk1fQ09NTUFO
RCwKICBEUk1fSU5TVF9IQU5ETEVSLAogIERSTV9VTklOU1RfSEFORExFUgogfSBmdW5jOwogaW50
IGlycTsKfTsKCgoKCmVudW0gZHJtX21hcF90eXBlIHsKIF9EUk1fRlJBTUVfQlVGRkVSID0gMCwK
IF9EUk1fUkVHSVNURVJTID0gMSwKIF9EUk1fU0hNID0gMiwKIF9EUk1fQUdQID0gMywKIF9EUk1f
U0NBVFRFUl9HQVRIRVIgPSA0LAogX0RSTV9DT05TSVNURU5UID0gNQp9OwoKCgoKZW51bSBkcm1f
bWFwX2ZsYWdzIHsKIF9EUk1fUkVTVFJJQ1RFRCA9IDB4MDEsCiBfRFJNX1JFQURfT05MWSA9IDB4
MDIsCiBfRFJNX0xPQ0tFRCA9IDB4MDQsCiBfRFJNX0tFUk5FTCA9IDB4MDgsCiBfRFJNX1dSSVRF
X0NPTUJJTklORyA9IDB4MTAsCiBfRFJNX0NPTlRBSU5TX0xPQ0sgPSAweDIwLAogX0RSTV9SRU1P
VkFCTEUgPSAweDQwLAogX0RSTV9EUklWRVIgPSAweDgwCn07CgpzdHJ1Y3QgZHJtX2N0eF9wcml2
X21hcCB7CiB1bnNpZ25lZCBpbnQgY3R4X2lkOwogdm9pZCAqaGFuZGxlOwp9OwoKCgoKCgoKc3Ry
dWN0IGRybV9tYXAgewogdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiB1bnNpZ25lZCBsb25nIHNpemU7
CiBlbnVtIGRybV9tYXBfdHlwZSB0eXBlOwogZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzOwogdm9p
ZCAqaGFuZGxlOwoKIGludCBtdHJyOwoKfTsKCgoKCnN0cnVjdCBkcm1fY2xpZW50IHsKIGludCBp
ZHg7CiBpbnQgYXV0aDsKIHVuc2lnbmVkIGxvbmcgcGlkOwogdW5zaWduZWQgbG9uZyB1aWQ7CiB1
bnNpZ25lZCBsb25nIG1hZ2ljOwogdW5zaWduZWQgbG9uZyBpb2NzOwp9OwoKZW51bSBkcm1fc3Rh
dF90eXBlIHsKIF9EUk1fU1RBVF9MT0NLLAogX0RSTV9TVEFUX09QRU5TLAogX0RSTV9TVEFUX0NM
T1NFUywKIF9EUk1fU1RBVF9JT0NUTFMsCiBfRFJNX1NUQVRfTE9DS1MsCiBfRFJNX1NUQVRfVU5M
T0NLUywKIF9EUk1fU1RBVF9WQUxVRSwKIF9EUk1fU1RBVF9CWVRFLAogX0RSTV9TVEFUX0NPVU5U
LAoKIF9EUk1fU1RBVF9JUlEsCiBfRFJNX1NUQVRfUFJJTUFSWSwKIF9EUk1fU1RBVF9TRUNPTkRB
UlksCiBfRFJNX1NUQVRfRE1BLAogX0RSTV9TVEFUX1NQRUNJQUwsCiBfRFJNX1NUQVRfTUlTU0VE
Cgp9OwoKCgoKc3RydWN0IGRybV9zdGF0cyB7CiB1bnNpZ25lZCBsb25nIGNvdW50Owogc3RydWN0
IHsKICB1bnNpZ25lZCBsb25nIHZhbHVlOwogIGVudW0gZHJtX3N0YXRfdHlwZSB0eXBlOwogfSBk
YXRhWzE1XTsKfTsKCgoKCmVudW0gZHJtX2xvY2tfZmxhZ3MgewogX0RSTV9MT0NLX1JFQURZID0g
MHgwMSwKIF9EUk1fTE9DS19RVUlFU0NFTlQgPSAweDAyLAogX0RSTV9MT0NLX0ZMVVNIID0gMHgw
NCwKIF9EUk1fTE9DS19GTFVTSF9BTEwgPSAweDA4LAoKCgogX0RSTV9IQUxUX0FMTF9RVUVVRVMg
PSAweDEwLAogX0RSTV9IQUxUX0NVUl9RVUVVRVMgPSAweDIwCn07CgoKCgoKCnN0cnVjdCBkcm1f
bG9jayB7CiBpbnQgY29udGV4dDsKIGVudW0gZHJtX2xvY2tfZmxhZ3MgZmxhZ3M7Cn07CiMgMzEw
ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCmVudW0gZHJtX2RtYV9mbGFncyB7CgogX0RSTV9E
TUFfQkxPQ0sgPSAweDAxLAojIDMyMiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgogX0RSTV9E
TUFfV0hJTEVfTE9DS0VEID0gMHgwMiwKIF9EUk1fRE1BX1BSSU9SSVRZID0gMHgwNCwKCgogX0RS
TV9ETUFfV0FJVCA9IDB4MTAsCiBfRFJNX0RNQV9TTUFMTEVSX09LID0gMHgyMCwKIF9EUk1fRE1B
X0xBUkdFUl9PSyA9IDB4NDAKfTsKCgoKCgoKc3RydWN0IGRybV9idWZfZGVzYyB7CiBpbnQgY291
bnQ7CiBpbnQgc2l6ZTsKIGludCBsb3dfbWFyazsKIGludCBoaWdoX21hcms7CiBlbnVtIHsKICBf
RFJNX1BBR0VfQUxJR04gPSAweDAxLAogIF9EUk1fQUdQX0JVRkZFUiA9IDB4MDIsCiAgX0RSTV9T
R19CVUZGRVIgPSAweDA0LAogIF9EUk1fRkJfQlVGRkVSID0gMHgwOCwKICBfRFJNX1BDSV9CVUZG
RVJfUk8gPSAweDEwCiB9IGZsYWdzOwogdW5zaWduZWQgbG9uZyBhZ3Bfc3RhcnQ7CgoKCn07CgoK
CgpzdHJ1Y3QgZHJtX2J1Zl9pbmZvIHsKIGludCBjb3VudDsKIHN0cnVjdCBkcm1fYnVmX2Rlc2Mg
Kmxpc3Q7Cn07CgoKCgpzdHJ1Y3QgZHJtX2J1Zl9mcmVlIHsKIGludCBjb3VudDsKIGludCAqbGlz
dDsKfTsKCgoKCgoKc3RydWN0IGRybV9idWZfcHViIHsKIGludCBpZHg7CiBpbnQgdG90YWw7CiBp
bnQgdXNlZDsKIHZvaWQgKmFkZHJlc3M7Cn07CgoKCgpzdHJ1Y3QgZHJtX2J1Zl9tYXAgewogaW50
IGNvdW50OwoKCgogdm9pZCAqdmlydHVhbDsKCiBzdHJ1Y3QgZHJtX2J1Zl9wdWIgKmxpc3Q7Cn07
CiMgNDAyICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCnN0cnVjdCBkcm1fZG1hIHsKIGludCBj
b250ZXh0OwogaW50IHNlbmRfY291bnQ7CiBpbnQgKnNlbmRfaW5kaWNlczsKIGludCAqc2VuZF9z
aXplczsKIGVudW0gZHJtX2RtYV9mbGFncyBmbGFnczsKIGludCByZXF1ZXN0X2NvdW50OwogaW50
IHJlcXVlc3Rfc2l6ZTsKIGludCAqcmVxdWVzdF9pbmRpY2VzOwogaW50ICpyZXF1ZXN0X3NpemVz
OwogaW50IGdyYW50ZWRfY291bnQ7Cn07CgplbnVtIGRybV9jdHhfZmxhZ3MgewogX0RSTV9DT05U
RVhUX1BSRVNFUlZFRCA9IDB4MDEsCiBfRFJNX0NPTlRFWFRfMkRPTkxZID0gMHgwMgp9OwoKCgoK
CgpzdHJ1Y3QgZHJtX2N0eCB7CiBkcm1fY29udGV4dF90IGhhbmRsZTsKIGVudW0gZHJtX2N0eF9m
bGFncyBmbGFnczsKfTsKCgoKCnN0cnVjdCBkcm1fY3R4X3JlcyB7CiBpbnQgY291bnQ7CiBzdHJ1
Y3QgZHJtX2N0eCAqY29udGV4dHM7Cn07CgoKCgpzdHJ1Y3QgZHJtX2RyYXcgewogZHJtX2RyYXdh
YmxlX3QgaGFuZGxlOwp9OwoKCgoKdHlwZWRlZiBlbnVtIHsKIERSTV9EUkFXQUJMRV9DTElQUkVD
VFMKfSBkcm1fZHJhd2FibGVfaW5mb190eXBlX3Q7CgpzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3IHsK
IGRybV9kcmF3YWJsZV90IGhhbmRsZTsKIHVuc2lnbmVkIGludCB0eXBlOwogdW5zaWduZWQgaW50
IG51bTsKIHVuc2lnbmVkIGxvbmcgbG9uZyBkYXRhOwp9OwoKCgoKc3RydWN0IGRybV9hdXRoIHsK
IGRybV9tYWdpY190IG1hZ2ljOwp9OwoKCgoKCgpzdHJ1Y3QgZHJtX2lycV9idXNpZCB7CiBpbnQg
aXJxOwogaW50IGJ1c251bTsKIGludCBkZXZudW07CiBpbnQgZnVuY251bTsKfTsKCmVudW0gZHJt
X3ZibGFua19zZXFfdHlwZSB7CiBfRFJNX1ZCTEFOS19BQlNPTFVURSA9IDB4MCwKIF9EUk1fVkJM
QU5LX1JFTEFUSVZFID0gMHgxLAoKIF9EUk1fVkJMQU5LX0hJR0hfQ1JUQ19NQVNLID0gMHgwMDAw
MDAzZSwKIF9EUk1fVkJMQU5LX0VWRU5UID0gMHg0MDAwMDAwLAogX0RSTV9WQkxBTktfRkxJUCA9
IDB4ODAwMDAwMCwKIF9EUk1fVkJMQU5LX05FWFRPTk1JU1MgPSAweDEwMDAwMDAwLAogX0RSTV9W
QkxBTktfU0VDT05EQVJZID0gMHgyMDAwMDAwMCwKIF9EUk1fVkJMQU5LX1NJR05BTCA9IDB4NDAw
MDAwMDAKfTsKCgoKCgoKc3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHsKIGVudW0gZHJt
X3ZibGFua19zZXFfdHlwZSB0eXBlOwogdW5zaWduZWQgaW50IHNlcXVlbmNlOwogdW5zaWduZWQg
bG9uZyBzaWduYWw7Cn07CgpzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5IHsKIGVudW0gZHJt
X3ZibGFua19zZXFfdHlwZSB0eXBlOwogdW5zaWduZWQgaW50IHNlcXVlbmNlOwogbG9uZyB0dmFs
X3NlYzsKIGxvbmcgdHZhbF91c2VjOwp9OwoKCgoKCgp1bmlvbiBkcm1fd2FpdF92Ymxhbmsgewog
c3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHJlcXVlc3Q7CiBzdHJ1Y3QgZHJtX3dhaXRf
dmJsYW5rX3JlcGx5IHJlcGx5Owp9OwojIDUyNiAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgpz
dHJ1Y3QgZHJtX21vZGVzZXRfY3RsIHsKIF9fdTMyIGNydGM7CiBfX3UzMiBjbWQ7Cn07CgoKCgoK
CnN0cnVjdCBkcm1fYWdwX21vZGUgewogdW5zaWduZWQgbG9uZyBtb2RlOwp9OwoKCgoKCgpzdHJ1
Y3QgZHJtX2FncF9idWZmZXIgewogdW5zaWduZWQgbG9uZyBzaXplOwogdW5zaWduZWQgbG9uZyBo
YW5kbGU7CiB1bnNpZ25lZCBsb25nIHR5cGU7CiB1bnNpZ25lZCBsb25nIHBoeXNpY2FsOwp9OwoK
CgoKCgpzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nIHsKIHVuc2lnbmVkIGxvbmcgaGFuZGxlOwogdW5z
aWduZWQgbG9uZyBvZmZzZXQ7Cn07CiMgNTY5ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgiCnN0
cnVjdCBkcm1fYWdwX2luZm8gewogaW50IGFncF92ZXJzaW9uX21ham9yOwogaW50IGFncF92ZXJz
aW9uX21pbm9yOwogdW5zaWduZWQgbG9uZyBtb2RlOwogdW5zaWduZWQgbG9uZyBhcGVydHVyZV9i
YXNlOwogdW5zaWduZWQgbG9uZyBhcGVydHVyZV9zaXplOwogdW5zaWduZWQgbG9uZyBtZW1vcnlf
YWxsb3dlZDsKIHVuc2lnbmVkIGxvbmcgbWVtb3J5X3VzZWQ7CgoKIHVuc2lnbmVkIHNob3J0IGlk
X3ZlbmRvcjsKIHVuc2lnbmVkIHNob3J0IGlkX2RldmljZTsKfTsKCgoKCnN0cnVjdCBkcm1fc2Nh
dHRlcl9nYXRoZXIgewogdW5zaWduZWQgbG9uZyBzaXplOwogdW5zaWduZWQgbG9uZyBoYW5kbGU7
Cn07CgoKCgpzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uIHsKIGludCBkcm1fZGlfbWFqb3I7CiBpbnQg
ZHJtX2RpX21pbm9yOwogaW50IGRybV9kZF9tYWpvcjsKIGludCBkcm1fZGRfbWlub3I7Cn07CgoK
c3RydWN0IGRybV9nZW1fY2xvc2UgewoKIF9fdTMyIGhhbmRsZTsKIF9fdTMyIHBhZDsKfTsKCgpz
dHJ1Y3QgZHJtX2dlbV9mbGluayB7CgogX191MzIgaGFuZGxlOwoKCiBfX3UzMiBuYW1lOwp9OwoK
CnN0cnVjdCBkcm1fZ2VtX29wZW4gewoKIF9fdTMyIG5hbWU7CgoKIF9fdTMyIGhhbmRsZTsKCgog
X191NjQgc2l6ZTsKfTsKIyA2NTYgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIKc3RydWN0IGRy
bV9nZXRfY2FwIHsKIF9fdTY0IGNhcGFiaWxpdHk7CiBfX3U2NCB2YWx1ZTsKfTsKIyA3MDIgIi4v
aW5jbHVkZS91YXBpL2RybS9kcm0uaCIKc3RydWN0IGRybV9zZXRfY2xpZW50X2NhcCB7CiBfX3U2
NCBjYXBhYmlsaXR5OwogX191NjQgdmFsdWU7Cn07CgoKCnN0cnVjdCBkcm1fcHJpbWVfaGFuZGxl
IHsKIF9fdTMyIGhhbmRsZTsKCgogX191MzIgZmxhZ3M7CgoKIF9fczMyIGZkOwp9OwoKc3RydWN0
IGRybV9zeW5jb2JqX2NyZWF0ZSB7CiBfX3UzMiBoYW5kbGU7CgogX191MzIgZmxhZ3M7Cn07Cgpz
dHJ1Y3QgZHJtX3N5bmNvYmpfZGVzdHJveSB7CiBfX3UzMiBoYW5kbGU7CiBfX3UzMiBwYWQ7Cn07
CgoKCnN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUgewogX191MzIgaGFuZGxlOwogX191MzIgZmxh
Z3M7CgogX19zMzIgZmQ7CiBfX3UzMiBwYWQ7Cn07CgpzdHJ1Y3QgZHJtX3N5bmNvYmpfdHJhbnNm
ZXIgewogX191MzIgc3JjX2hhbmRsZTsKIF9fdTMyIGRzdF9oYW5kbGU7CiBfX3U2NCBzcmNfcG9p
bnQ7CiBfX3U2NCBkc3RfcG9pbnQ7CiBfX3UzMiBmbGFnczsKIF9fdTMyIHBhZDsKfTsKCgoKCnN0
cnVjdCBkcm1fc3luY29ial93YWl0IHsKIF9fdTY0IGhhbmRsZXM7CgogX19zNjQgdGltZW91dF9u
c2VjOwogX191MzIgY291bnRfaGFuZGxlczsKIF9fdTMyIGZsYWdzOwogX191MzIgZmlyc3Rfc2ln
bmFsZWQ7CiBfX3UzMiBwYWQ7Cn07CgpzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCB7
CiBfX3U2NCBoYW5kbGVzOwoKIF9fdTY0IHBvaW50czsKCiBfX3M2NCB0aW1lb3V0X25zZWM7CiBf
X3UzMiBjb3VudF9oYW5kbGVzOwogX191MzIgZmxhZ3M7CiBfX3UzMiBmaXJzdF9zaWduYWxlZDsK
IF9fdTMyIHBhZDsKfTsKCgpzdHJ1Y3QgZHJtX3N5bmNvYmpfYXJyYXkgewogX191NjQgaGFuZGxl
czsKIF9fdTMyIGNvdW50X2hhbmRsZXM7CiBfX3UzMiBwYWQ7Cn07CgoKc3RydWN0IGRybV9zeW5j
b2JqX3RpbWVsaW5lX2FycmF5IHsKIF9fdTY0IGhhbmRsZXM7CiBfX3U2NCBwb2ludHM7CiBfX3Uz
MiBjb3VudF9oYW5kbGVzOwogX191MzIgZmxhZ3M7Cn07CgoKCnN0cnVjdCBkcm1fY3J0Y19nZXRf
c2VxdWVuY2UgewogX191MzIgY3J0Y19pZDsKIF9fdTMyIGFjdGl2ZTsKIF9fdTY0IHNlcXVlbmNl
OwogX19zNjQgc2VxdWVuY2VfbnM7Cn07CiMgODA1ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgi
CnN0cnVjdCBkcm1fY3J0Y19xdWV1ZV9zZXF1ZW5jZSB7CiBfX3UzMiBjcnRjX2lkOwogX191MzIg
ZmxhZ3M7CiBfX3U2NCBzZXF1ZW5jZTsKIF9fdTY0IHVzZXJfZGF0YTsKfTsKCgoKCgojIDEgIi4v
aW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIiAxCiMgMzAgIi4vaW5jbHVkZS91YXBpL2RybS9k
cm1fbW9kZS5oIgojIDEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIgMQojIDMxICIuL2luY2x1
ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIgMgojIDIyMSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9t
b2RlLmgiCnN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB7CiBfX3UzMiBjbG9jazsKIF9fdTE2IGhk
aXNwbGF5OwogX191MTYgaHN5bmNfc3RhcnQ7CiBfX3UxNiBoc3luY19lbmQ7CiBfX3UxNiBodG90
YWw7CiBfX3UxNiBoc2tldzsKIF9fdTE2IHZkaXNwbGF5OwogX191MTYgdnN5bmNfc3RhcnQ7CiBf
X3UxNiB2c3luY19lbmQ7CiBfX3UxNiB2dG90YWw7CiBfX3UxNiB2c2NhbjsKCiBfX3UzMiB2cmVm
cmVzaDsKCiBfX3UzMiBmbGFnczsKIF9fdTMyIHR5cGU7CiBjaGFyIG5hbWVbMzJdOwp9OwoKc3Ry
dWN0IGRybV9tb2RlX2NhcmRfcmVzIHsKIF9fdTY0IGZiX2lkX3B0cjsKIF9fdTY0IGNydGNfaWRf
cHRyOwogX191NjQgY29ubmVjdG9yX2lkX3B0cjsKIF9fdTY0IGVuY29kZXJfaWRfcHRyOwogX191
MzIgY291bnRfZmJzOwogX191MzIgY291bnRfY3J0Y3M7CiBfX3UzMiBjb3VudF9jb25uZWN0b3Jz
OwogX191MzIgY291bnRfZW5jb2RlcnM7CiBfX3UzMiBtaW5fd2lkdGg7CiBfX3UzMiBtYXhfd2lk
dGg7CiBfX3UzMiBtaW5faGVpZ2h0OwogX191MzIgbWF4X2hlaWdodDsKfTsKCnN0cnVjdCBkcm1f
bW9kZV9jcnRjIHsKIF9fdTY0IHNldF9jb25uZWN0b3JzX3B0cjsKIF9fdTMyIGNvdW50X2Nvbm5l
Y3RvcnM7CgogX191MzIgY3J0Y19pZDsKIF9fdTMyIGZiX2lkOwoKIF9fdTMyIHg7CiBfX3UzMiB5
OwoKIF9fdTMyIGdhbW1hX3NpemU7CiBfX3UzMiBtb2RlX3ZhbGlkOwogc3RydWN0IGRybV9tb2Rl
X21vZGVpbmZvIG1vZGU7Cn07CgoKCgoKc3RydWN0IGRybV9tb2RlX3NldF9wbGFuZSB7CiBfX3Uz
MiBwbGFuZV9pZDsKIF9fdTMyIGNydGNfaWQ7CiBfX3UzMiBmYl9pZDsKIF9fdTMyIGZsYWdzOwoK
CiBfX3MzMiBjcnRjX3g7CiBfX3MzMiBjcnRjX3k7CiBfX3UzMiBjcnRjX3c7CiBfX3UzMiBjcnRj
X2g7CgoKIF9fdTMyIHNyY194OwogX191MzIgc3JjX3k7CiBfX3UzMiBzcmNfaDsKIF9fdTMyIHNy
Y193Owp9OwoKc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZSB7CiBfX3UzMiBwbGFuZV9pZDsKCiBf
X3UzMiBjcnRjX2lkOwogX191MzIgZmJfaWQ7CgogX191MzIgcG9zc2libGVfY3J0Y3M7CiBfX3Uz
MiBnYW1tYV9zaXplOwoKIF9fdTMyIGNvdW50X2Zvcm1hdF90eXBlczsKIF9fdTY0IGZvcm1hdF90
eXBlX3B0cjsKfTsKCnN0cnVjdCBkcm1fbW9kZV9nZXRfcGxhbmVfcmVzIHsKIF9fdTY0IHBsYW5l
X2lkX3B0cjsKIF9fdTMyIGNvdW50X3BsYW5lczsKfTsKIyAzMjIgIi4vaW5jbHVkZS91YXBpL2Ry
bS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfZ2V0X2VuY29kZXIgewogX191MzIgZW5jb2Rl
cl9pZDsKIF9fdTMyIGVuY29kZXJfdHlwZTsKCiBfX3UzMiBjcnRjX2lkOwoKIF9fdTMyIHBvc3Np
YmxlX2NydGNzOwogX191MzIgcG9zc2libGVfY2xvbmVzOwp9OwoKCgplbnVtIGRybV9tb2RlX3N1
YmNvbm5lY3RvciB7CiBEUk1fTU9ERV9TVUJDT05ORUNUT1JfQXV0b21hdGljID0gMCwKIERSTV9N
T0RFX1NVQkNPTk5FQ1RPUl9Vbmtub3duID0gMCwKIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9EVklE
ID0gMywKIERSTV9NT0RFX1NVQkNPTk5FQ1RPUl9EVklBID0gNCwKIERSTV9NT0RFX1NVQkNPTk5F
Q1RPUl9Db21wb3NpdGUgPSA1LAogRFJNX01PREVfU1VCQ09OTkVDVE9SX1NWSURFTyA9IDYsCiBE
Uk1fTU9ERV9TVUJDT05ORUNUT1JfQ29tcG9uZW50ID0gOCwKIERSTV9NT0RFX1NVQkNPTk5FQ1RP
Ul9TQ0FSVCA9IDksCn07CiMgMzY2ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKc3Ry
dWN0IGRybV9tb2RlX2dldF9jb25uZWN0b3IgewoKIF9fdTY0IGVuY29kZXJzX3B0cjsKIF9fdTY0
IG1vZGVzX3B0cjsKIF9fdTY0IHByb3BzX3B0cjsKIF9fdTY0IHByb3BfdmFsdWVzX3B0cjsKCiBf
X3UzMiBjb3VudF9tb2RlczsKIF9fdTMyIGNvdW50X3Byb3BzOwogX191MzIgY291bnRfZW5jb2Rl
cnM7CgogX191MzIgZW5jb2Rlcl9pZDsKIF9fdTMyIGNvbm5lY3Rvcl9pZDsKIF9fdTMyIGNvbm5l
Y3Rvcl90eXBlOwogX191MzIgY29ubmVjdG9yX3R5cGVfaWQ7CgogX191MzIgY29ubmVjdGlvbjsK
IF9fdTMyIG1tX3dpZHRoOwogX191MzIgbW1faGVpZ2h0OwogX191MzIgc3VicGl4ZWw7CgogX191
MzIgcGFkOwp9OwojIDQxOSAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCnN0cnVjdCBk
cm1fbW9kZV9wcm9wZXJ0eV9lbnVtIHsKIF9fdTY0IHZhbHVlOwogY2hhciBuYW1lWzMyXTsKfTsK
CnN0cnVjdCBkcm1fbW9kZV9nZXRfcHJvcGVydHkgewogX191NjQgdmFsdWVzX3B0cjsKIF9fdTY0
IGVudW1fYmxvYl9wdHI7CgogX191MzIgcHJvcF9pZDsKIF9fdTMyIGZsYWdzOwogY2hhciBuYW1l
WzMyXTsKCiBfX3UzMiBjb3VudF92YWx1ZXM7CgoKIF9fdTMyIGNvdW50X2VudW1fYmxvYnM7Cn07
CgpzdHJ1Y3QgZHJtX21vZGVfY29ubmVjdG9yX3NldF9wcm9wZXJ0eSB7CiBfX3U2NCB2YWx1ZTsK
IF9fdTMyIHByb3BfaWQ7CiBfX3UzMiBjb25uZWN0b3JfaWQ7Cn07CiMgNDU0ICIuL2luY2x1ZGUv
dWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9tb2RlX29ial9nZXRfcHJvcGVydGllcyB7
CiBfX3U2NCBwcm9wc19wdHI7CiBfX3U2NCBwcm9wX3ZhbHVlc19wdHI7CiBfX3UzMiBjb3VudF9w
cm9wczsKIF9fdTMyIG9ial9pZDsKIF9fdTMyIG9ial90eXBlOwp9OwoKc3RydWN0IGRybV9tb2Rl
X29ial9zZXRfcHJvcGVydHkgewogX191NjQgdmFsdWU7CiBfX3UzMiBwcm9wX2lkOwogX191MzIg
b2JqX2lkOwogX191MzIgb2JqX3R5cGU7Cn07CgpzdHJ1Y3QgZHJtX21vZGVfZ2V0X2Jsb2Igewog
X191MzIgYmxvYl9pZDsKIF9fdTMyIGxlbmd0aDsKIF9fdTY0IGRhdGE7Cn07CgpzdHJ1Y3QgZHJt
X21vZGVfZmJfY21kIHsKIF9fdTMyIGZiX2lkOwogX191MzIgd2lkdGg7CiBfX3UzMiBoZWlnaHQ7
CiBfX3UzMiBwaXRjaDsKIF9fdTMyIGJwcDsKIF9fdTMyIGRlcHRoOwoKIF9fdTMyIGhhbmRsZTsK
fTsKCgoKCnN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIHsKIF9fdTMyIGZiX2lkOwogX191MzIgd2lk
dGg7CiBfX3UzMiBoZWlnaHQ7CiBfX3UzMiBwaXhlbF9mb3JtYXQ7CiBfX3UzMiBmbGFnczsKIyA1
MjAgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgogX191MzIgaGFuZGxlc1s0XTsKIF9f
dTMyIHBpdGNoZXNbNF07CiBfX3UzMiBvZmZzZXRzWzRdOwogX191NjQgbW9kaWZpZXJbNF07Cn07
CiMgNTU5ICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9tb2RlX2Zi
X2RpcnR5X2NtZCB7CiBfX3UzMiBmYl9pZDsKIF9fdTMyIGZsYWdzOwogX191MzIgY29sb3I7CiBf
X3UzMiBudW1fY2xpcHM7CiBfX3U2NCBjbGlwc19wdHI7Cn07CgpzdHJ1Y3QgZHJtX21vZGVfbW9k
ZV9jbWQgewogX191MzIgY29ubmVjdG9yX2lkOwogc3RydWN0IGRybV9tb2RlX21vZGVpbmZvIG1v
ZGU7Cn07CiMgNTkwICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9t
b2RlX2N1cnNvciB7CiBfX3UzMiBmbGFnczsKIF9fdTMyIGNydGNfaWQ7CiBfX3MzMiB4OwogX19z
MzIgeTsKIF9fdTMyIHdpZHRoOwogX191MzIgaGVpZ2h0OwoKIF9fdTMyIGhhbmRsZTsKfTsKCnN0
cnVjdCBkcm1fbW9kZV9jdXJzb3IyIHsKIF9fdTMyIGZsYWdzOwogX191MzIgY3J0Y19pZDsKIF9f
czMyIHg7CiBfX3MzMiB5OwogX191MzIgd2lkdGg7CiBfX3UzMiBoZWlnaHQ7CgogX191MzIgaGFu
ZGxlOwogX19zMzIgaG90X3g7CiBfX3MzMiBob3RfeTsKfTsKCnN0cnVjdCBkcm1fbW9kZV9jcnRj
X2x1dCB7CiBfX3UzMiBjcnRjX2lkOwogX191MzIgZ2FtbWFfc2l6ZTsKCgogX191NjQgcmVkOwog
X191NjQgZ3JlZW47CiBfX3U2NCBibHVlOwp9OwoKc3RydWN0IGRybV9jb2xvcl9jdG0gewoKCgoK
IF9fdTY0IG1hdHJpeFs5XTsKfTsKCnN0cnVjdCBkcm1fY29sb3JfbHV0IHsKCgoKCiBfX3UxNiBy
ZWQ7CiBfX3UxNiBncmVlbjsKIF9fdTE2IGJsdWU7CiBfX3UxNiByZXNlcnZlZDsKfTsKIyA2NTIg
Ii4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgpzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9m
cmFtZSB7CgoKCgogX191OCBlb3RmOwoKCgogX191OCBtZXRhZGF0YV90eXBlOwojIDY3MCAiLi9p
bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCiBzdHJ1Y3QgewogIF9fdTE2IHgsIHk7CiAgfSBk
aXNwbGF5X3ByaW1hcmllc1szXTsKIyA2ODEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o
Igogc3RydWN0IHsKICBfX3UxNiB4LCB5OwogIH0gd2hpdGVfcG9pbnQ7CgoKCgoKIF9fdTE2IG1h
eF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7CgoKCgoKCiBfX3UxNiBtaW5fZGlzcGxheV9t
YXN0ZXJpbmdfbHVtaW5hbmNlOwoKCgoKCiBfX3UxNiBtYXhfY2xsOwoKCgoKCiBfX3UxNiBtYXhf
ZmFsbDsKfTsKCgoKCgoKc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgewoKCgogX191MzIgbWV0
YWRhdGFfdHlwZTsKCgoKIHVuaW9uIHsKICBzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9mcmFtZSBo
ZG1pX21ldGFkYXRhX3R5cGUxOwogfTsKfTsKIyA3NjMgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1f
bW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfY3J0Y19wYWdlX2ZsaXAgewogX191MzIgY3J0Y19pZDsK
IF9fdTMyIGZiX2lkOwogX191MzIgZmxhZ3M7CiBfX3UzMiByZXNlcnZlZDsKIF9fdTY0IHVzZXJf
ZGF0YTsKfTsKIyA3OTEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJt
X21vZGVfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0IHsKIF9fdTMyIGNydGNfaWQ7CiBfX3UzMiBmYl9p
ZDsKIF9fdTMyIGZsYWdzOwogX191MzIgc2VxdWVuY2U7CiBfX3U2NCB1c2VyX2RhdGE7Cn07CgoK
c3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIHsKIF9fdTMyIGhlaWdodDsKIF9fdTMyIHdpZHRo
OwogX191MzIgYnBwOwogX191MzIgZmxhZ3M7CgogX191MzIgaGFuZGxlOwogX191MzIgcGl0Y2g7
CiBfX3U2NCBzaXplOwp9OwoKCnN0cnVjdCBkcm1fbW9kZV9tYXBfZHVtYiB7CgogX191MzIgaGFu
ZGxlOwogX191MzIgcGFkOwoKCgoKCiBfX3U2NCBvZmZzZXQ7Cn07CgpzdHJ1Y3QgZHJtX21vZGVf
ZGVzdHJveV9kdW1iIHsKIF9fdTMyIGhhbmRsZTsKfTsKIyA4NDAgIi4vaW5jbHVkZS91YXBpL2Ry
bS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfYXRvbWljIHsKIF9fdTMyIGZsYWdzOwogX191
MzIgY291bnRfb2JqczsKIF9fdTY0IG9ianNfcHRyOwogX191NjQgY291bnRfcHJvcHNfcHRyOwog
X191NjQgcHJvcHNfcHRyOwogX191NjQgcHJvcF92YWx1ZXNfcHRyOwogX191NjQgcmVzZXJ2ZWQ7
CiBfX3U2NCB1c2VyX2RhdGE7Cn07CgpzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllcl9ibG9iIHsK
CgogX191MzIgdmVyc2lvbjsKCgogX191MzIgZmxhZ3M7CgoKIF9fdTMyIGNvdW50X2Zvcm1hdHM7
CgoKIF9fdTMyIGZvcm1hdHNfb2Zmc2V0OwoKCiBfX3UzMiBjb3VudF9tb2RpZmllcnM7CgoKIF9f
dTMyIG1vZGlmaWVyc19vZmZzZXQ7CgoKCn07CgpzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllciB7
CiMgODkzICIuL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCIKIF9fdTY0IGZvcm1hdHM7CiBf
X3UzMiBvZmZzZXQ7CiBfX3UzMiBwYWQ7CgoKIF9fdTY0IG1vZGlmaWVyOwp9OwojIDkwOSAiLi9p
bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCnN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfYmxvYiB7
CgogX191NjQgZGF0YTsKCiBfX3UzMiBsZW5ndGg7CgogX191MzIgYmxvYl9pZDsKfTsKCgoKCgoK
c3RydWN0IGRybV9tb2RlX2Rlc3Ryb3lfYmxvYiB7CiBfX3UzMiBibG9iX2lkOwp9OwojIDkzNiAi
Li9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgiCnN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfbGVh
c2UgewoKIF9fdTY0IG9iamVjdF9pZHM7CgogX191MzIgb2JqZWN0X2NvdW50OwoKIF9fdTMyIGZs
YWdzOwoKCiBfX3UzMiBsZXNzZWVfaWQ7CgogX191MzIgZmQ7Cn07CiMgOTU3ICIuL2luY2x1ZGUv
dWFwaS9kcm0vZHJtX21vZGUuaCIKc3RydWN0IGRybV9tb2RlX2xpc3RfbGVzc2VlcyB7CgoKCgoK
CgogX191MzIgY291bnRfbGVzc2VlczsKIF9fdTMyIHBhZDsKCgoKCiBfX3U2NCBsZXNzZWVzX3B0
cjsKfTsKIyA5ODEgIi4vaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21v
ZGVfZ2V0X2xlYXNlIHsKCgoKCgoKCiBfX3UzMiBjb3VudF9vYmplY3RzOwogX191MzIgcGFkOwoK
CgoKIF9fdTY0IG9iamVjdHNfcHRyOwp9OwoKCgoKCgpzdHJ1Y3QgZHJtX21vZGVfcmV2b2tlX2xl
YXNlIHsKCgogX191MzIgbGVzc2VlX2lkOwp9OwojIDEwMjEgIi4vaW5jbHVkZS91YXBpL2RybS9k
cm1fbW9kZS5oIgpzdHJ1Y3QgZHJtX21vZGVfcmVjdCB7CiBfX3MzMiB4MTsKIF9fczMyIHkxOwog
X19zMzIgeDI7CiBfX3MzMiB5MjsKfTsKIyA4MTcgIi4vaW5jbHVkZS91YXBpL2RybS9kcm0uaCIg
MgojIDk3NCAiLi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIgpzdHJ1Y3QgZHJtX2V2ZW50IHsKIF9f
dTMyIHR5cGU7CiBfX3UzMiBsZW5ndGg7Cn07CgoKCgoKc3RydWN0IGRybV9ldmVudF92Ymxhbmsg
ewogc3RydWN0IGRybV9ldmVudCBiYXNlOwogX191NjQgdXNlcl9kYXRhOwogX191MzIgdHZfc2Vj
OwogX191MzIgdHZfdXNlYzsKIF9fdTMyIHNlcXVlbmNlOwogX191MzIgY3J0Y19pZDsKfTsKCgoK
CnN0cnVjdCBkcm1fZXZlbnRfY3J0Y19zZXF1ZW5jZSB7CiBzdHJ1Y3QgZHJtX2V2ZW50IGJhc2U7
CiBfX3U2NCB1c2VyX2RhdGE7CiBfX3M2NCB0aW1lX25zOwogX191NjQgc2VxdWVuY2U7Cn07CiMg
MzYgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiIDIKCgpleHRlcm4gdW5zaWduZWQgaW50IF9f
ZHJtX2RlYnVnOwojIDc1ICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgpzdHJ1Y3QgZHJtX3By
aW50ZXIgewoKIHZvaWQgKCpwcmludGZuKShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2
YV9mb3JtYXQgKnZhZik7CiB2b2lkICgqcHV0cykoc3RydWN0IGRybV9wcmludGVyICpwLCBjb25z
dCBjaGFyICpzdHIpOwogdm9pZCAqYXJnOwogY29uc3QgY2hhciAqcHJlZml4Owp9OwoKdm9pZCBf
X2RybV9wcmludGZuX2NvcmVkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zv
cm1hdCAqdmFmKTsKdm9pZCBfX2RybV9wdXRzX2NvcmVkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAq
cCwgY29uc3QgY2hhciAqc3RyKTsKdm9pZCBfX2RybV9wcmludGZuX3NlcV9maWxlKHN0cnVjdCBk
cm1fcHJpbnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKdm9pZCBfX2RybV9wdXRzX3Nl
cV9maWxlKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgY29uc3QgY2hhciAqc3RyKTsKdm9pZCBfX2Ry
bV9wcmludGZuX2luZm8oc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1Y3QgdmFfZm9ybWF0ICp2
YWYpOwp2b2lkIF9fZHJtX3ByaW50Zm5fZGVidWcoc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1
Y3QgdmFfZm9ybWF0ICp2YWYpOwp2b2lkIF9fZHJtX3ByaW50Zm5fZXJyKHN0cnVjdCBkcm1fcHJp
bnRlciAqcCwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKTsKCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0
X18ocHJpbnRmLCAyLCAzKSkpCnZvaWQgZHJtX3ByaW50ZihzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAs
IGNvbnN0IGNoYXIgKmYsIC4uLik7CnZvaWQgZHJtX3B1dHMoc3RydWN0IGRybV9wcmludGVyICpw
LCBjb25zdCBjaGFyICpzdHIpOwp2b2lkIGRybV9wcmludF9yZWdzZXQzMihzdHJ1Y3QgZHJtX3By
aW50ZXIgKnAsIHN0cnVjdCBkZWJ1Z2ZzX3JlZ3NldDMyICpyZWdzZXQpOwp2b2lkIGRybV9wcmlu
dF9iaXRzKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgdW5zaWduZWQgbG9uZyB2YWx1ZSwKICAgICAg
Y29uc3QgY2hhciAqIGNvbnN0IGJpdHNbXSwgdW5zaWduZWQgaW50IG5iaXRzKTsKCl9fYXR0cmli
dXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAyLCAwKSkpCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHZvaWQKZHJtX3ZwcmludGYo
c3RydWN0IGRybV9wcmludGVyICpwLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgKnZhKQp7CiBz
dHJ1Y3QgdmFfZm9ybWF0IHZhZiA9IHsgLmZtdCA9IGZtdCwgLnZhID0gdmEgfTsKCiBwLT5wcmlu
dGZuKHAsICZ2YWYpOwp9CiMgMTI4ICIuL2luY2x1ZGUvZHJtL2RybV9wcmludC5oIgpzdHJ1Y3Qg
ZHJtX3ByaW50X2l0ZXJhdG9yIHsKIHZvaWQgKmRhdGE7CiBzc2l6ZV90IHN0YXJ0Owogc3NpemVf
dCByZW1haW47Cgogc3NpemVfdCBvZmZzZXQ7Cn07CiMgMTcyICIuL2luY2x1ZGUvZHJtL2RybV9w
cmludC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19h
dHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVu
Y3Rpb24pKSBzdHJ1Y3QgZHJtX3ByaW50ZXIKZHJtX2NvcmVkdW1wX3ByaW50ZXIoc3RydWN0IGRy
bV9wcmludF9pdGVyYXRvciAqaXRlcikKewogc3RydWN0IGRybV9wcmludGVyIHAgPSB7CiAgLnBy
aW50Zm4gPSBfX2RybV9wcmludGZuX2NvcmVkdW1wLAogIC5wdXRzID0gX19kcm1fcHV0c19jb3Jl
ZHVtcCwKICAuYXJnID0gaXRlciwKIH07CgoKIGl0ZXItPm9mZnNldCA9IDA7CgogcmV0dXJuIHA7
Cn0KIyAxOTQgIi4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRy
aWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19h
dHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkcm1fcHJpbnRlciBk
cm1fc2VxX2ZpbGVfcHJpbnRlcihzdHJ1Y3Qgc2VxX2ZpbGUgKmYpCnsKIHN0cnVjdCBkcm1fcHJp
bnRlciBwID0gewogIC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9zZXFfZmlsZSwKICAucHV0cyA9
IF9fZHJtX3B1dHNfc2VxX2ZpbGUsCiAgLmFyZyA9IGYsCiB9OwogcmV0dXJuIHA7Cn0KIyAyMTEg
Ii4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkcm1fcHJpbnRlciBkcm1faW5mb19w
cmludGVyKHN0cnVjdCBkZXZpY2UgKmRldikKewogc3RydWN0IGRybV9wcmludGVyIHAgPSB7CiAg
LnByaW50Zm4gPSBfX2RybV9wcmludGZuX2luZm8sCiAgLmFyZyA9IGRldiwKIH07CiByZXR1cm4g
cDsKfQojIDIyNyAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIKc3RhdGljIGlubGluZSBfX2F0
dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBf
X2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRybV9wcmludGVy
IGRybV9kZWJ1Z19wcmludGVyKGNvbnN0IGNoYXIgKnByZWZpeCkKewogc3RydWN0IGRybV9wcmlu
dGVyIHAgPSB7CiAgLnByaW50Zm4gPSBfX2RybV9wcmludGZuX2RlYnVnLAogIC5wcmVmaXggPSBw
cmVmaXgKIH07CiByZXR1cm4gcDsKfQojIDI0MyAiLi9pbmNsdWRlL2RybS9kcm1fcHJpbnQuaCIK
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
c3RydWN0IGRybV9wcmludGVyIGRybV9lcnJfcHJpbnRlcihjb25zdCBjaGFyICpwcmVmaXgpCnsK
IHN0cnVjdCBkcm1fcHJpbnRlciBwID0gewogIC5wcmludGZuID0gX19kcm1fcHJpbnRmbl9lcnIs
CiAgLnByZWZpeCA9IHByZWZpeAogfTsKIHJldHVybiBwOwp9CiMgMjc3ICIuL2luY2x1ZGUvZHJt
L2RybV9wcmludC5oIgplbnVtIGRybV9kZWJ1Z19jYXRlZ29yeSB7CgoKCgogRFJNX1VUX0NPUkUg
PSAweDAxLAoKCgoKIERSTV9VVF9EUklWRVIgPSAweDAyLAoKCgogRFJNX1VUX0tNUyA9IDB4MDQs
CgoKCiBEUk1fVVRfUFJJTUUgPSAweDA4LAoKCgogRFJNX1VUX0FUT01JQyA9IDB4MTAsCgoKCiBE
Uk1fVVRfVkJMID0gMHgyMCwKCgoKIERSTV9VVF9TVEFURSA9IDB4NDAsCgoKCiBEUk1fVVRfTEVB
U0UgPSAweDgwLAoKCgogRFJNX1VUX0RQID0gMHgxMDAsCn07CgpzdGF0aWMgaW5saW5lIF9fYXR0
cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9f
YXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRybV9kZWJ1Z19lbmFi
bGVkKGVudW0gZHJtX2RlYnVnX2NhdGVnb3J5IGNhdGVnb3J5KQp7CiByZXR1cm4gX19idWlsdGlu
X2V4cGVjdCghIShfX2RybV9kZWJ1ZyAmIGNhdGVnb3J5KSwgMCk7Cn0KCgoKCgoKCl9fYXR0cmli
dXRlX18oKF9fZm9ybWF0X18ocHJpbnRmLCAzLCA0KSkpCnZvaWQgZHJtX2Rldl9wcmludGsoY29u
c3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpsZXZlbCwKICAgICAgY29uc3QgY2hh
ciAqZm9ybWF0LCAuLi4pOwpfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fKHByaW50ZiwgMywgNCkp
KQp2b2lkIGRybV9kZXZfZGJnKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBkcm1fZGVi
dWdfY2F0ZWdvcnkgY2F0ZWdvcnksCiAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKIyA0ODkg
Ii4vaW5jbHVkZS9kcm0vZHJtX3ByaW50LmgiCl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18ocHJp
bnRmLCAyLCAzKSkpCnZvaWQgX19kcm1fZGJnKGVudW0gZHJtX2RlYnVnX2NhdGVnb3J5IGNhdGVn
b3J5LCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7Cl9fYXR0cmlidXRlX18oKF9fZm9ybWF0X18o
cHJpbnRmLCAxLCAyKSkpCnZvaWQgX19kcm1fZXJyKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsK
IyAzOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL29zX3R5cGVz
LmgiIDIKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19j
b21tb24uaCIgMQojIDI3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUv
Y2dzX2NvbW1vbi5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVk
ZS9hbWRfc2hhcmVkLmgiIDEKIyAyNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9p
bmNsdWRlL2FtZF9zaGFyZWQuaCIKIyAxICIuL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaCIg
MQojIDI4ICIuL2luY2x1ZGUvZHJtL2FtZF9hc2ljX3R5cGUuaCIKZW51bSBhbWRfYXNpY190eXBl
IHsKIENISVBfVEFISVRJID0gMCwKIENISVBfUElUQ0FJUk4sCiBDSElQX1ZFUkRFLAogQ0hJUF9P
TEFORCwKIENISVBfSEFJTkFOLAogQ0hJUF9CT05BSVJFLAogQ0hJUF9LQVZFUkksCiBDSElQX0tB
QklOSSwKIENISVBfSEFXQUlJLAogQ0hJUF9NVUxMSU5TLAogQ0hJUF9UT1BBWiwKIENISVBfVE9O
R0EsCiBDSElQX0ZJSkksCiBDSElQX0NBUlJJWk8sCiBDSElQX1NUT05FWSwKIENISVBfUE9MQVJJ
UzEwLAogQ0hJUF9QT0xBUklTMTEsCiBDSElQX1BPTEFSSVMxMiwKIENISVBfVkVHQU0sCiBDSElQ
X1ZFR0ExMCwKIENISVBfVkVHQTEyLAogQ0hJUF9WRUdBMjAsCiBDSElQX1JBVkVOLAogQ0hJUF9B
UkNUVVJVUywKIENISVBfUkVOT0lSLAogQ0hJUF9OQVZJMTAsCiBDSElQX05BVkkxNCwKIENISVBf
TkFWSTEyLAogQ0hJUF9MQVNULAp9OwoKZXh0ZXJuIGNvbnN0IGNoYXIgKmFtZGdwdV9hc2ljX25h
bWVbXTsKIyAyNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2FtZF9z
aGFyZWQuaCIgMgoKCgoKCgoKZW51bSBhbWRfY2hpcF9mbGFncyB7CiBBTURfQVNJQ19NQVNLID0g
MHgwMDAwZmZmZlVMLAogQU1EX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCiBBTURfSVNfTU9C
SUxJVFkgPSAweDAwMDEwMDAwVUwsCiBBTURfSVNfQVBVID0gMHgwMDAyMDAwMFVMLAogQU1EX0lT
X1BYID0gMHgwMDA0MDAwMFVMLAogQU1EX0VYUF9IV19TVVBQT1JUID0gMHgwMDA4MDAwMFVMLAp9
OwoKZW51bSBhbWRfaXBfYmxvY2tfdHlwZSB7CiBBTURfSVBfQkxPQ0tfVFlQRV9DT01NT04sCiBB
TURfSVBfQkxPQ0tfVFlQRV9HTUMsCiBBTURfSVBfQkxPQ0tfVFlQRV9JSCwKIEFNRF9JUF9CTE9D
S19UWVBFX1NNQywKIEFNRF9JUF9CTE9DS19UWVBFX1BTUCwKIEFNRF9JUF9CTE9DS19UWVBFX0RD
RSwKIEFNRF9JUF9CTE9DS19UWVBFX0dGWCwKIEFNRF9JUF9CTE9DS19UWVBFX1NETUEsCiBBTURf
SVBfQkxPQ0tfVFlQRV9VVkQsCiBBTURfSVBfQkxPQ0tfVFlQRV9WQ0UsCiBBTURfSVBfQkxPQ0tf
VFlQRV9BQ1AsCiBBTURfSVBfQkxPQ0tfVFlQRV9WQ04sCiBBTURfSVBfQkxPQ0tfVFlQRV9NRVMs
CiBBTURfSVBfQkxPQ0tfVFlQRV9KUEVHCn07CgplbnVtIGFtZF9jbG9ja2dhdGluZ19zdGF0ZSB7
CiBBTURfQ0dfU1RBVEVfR0FURSA9IDAsCiBBTURfQ0dfU1RBVEVfVU5HQVRFLAp9OwoKCmVudW0g
YW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHsKIEFNRF9QR19TVEFURV9HQVRFID0gMCwKIEFNRF9QR19T
VEFURV9VTkdBVEUsCn07CiMgMTI0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2lu
Y2x1ZGUvYW1kX3NoYXJlZC5oIgplbnVtIFBQX0ZFQVRVUkVfTUFTSyB7CiBQUF9TQ0xLX0RQTV9N
QVNLID0gMHgxLAogUFBfTUNMS19EUE1fTUFTSyA9IDB4MiwKIFBQX1BDSUVfRFBNX01BU0sgPSAw
eDQsCiBQUF9TQ0xLX0RFRVBfU0xFRVBfTUFTSyA9IDB4OCwKIFBQX1BPV0VSX0NPTlRBSU5NRU5U
X01BU0sgPSAweDEwLAogUFBfVVZEX0hBTkRTSEFLRV9NQVNLID0gMHgyMCwKIFBQX1NNQ19WT0xU
QUdFX0NPTlRST0xfTUFTSyA9IDB4NDAsCiBQUF9WQklfVElNRV9TVVBQT1JUX01BU0sgPSAweDgw
LAogUFBfVUxWX01BU0sgPSAweDEwMCwKIFBQX0VOQUJMRV9HRlhfQ0dfVEhSVV9TTVUgPSAweDIw
MCwKIFBQX0NMT0NLX1NUUkVUQ0hfTUFTSyA9IDB4NDAwLAogUFBfT0RfRlVaWllfRkFOX0NPTlRS
T0xfTUFTSyA9IDB4ODAwLAogUFBfU09DQ0xLX0RQTV9NQVNLID0gMHgxMDAwLAogUFBfRENFRkNM
S19EUE1fTUFTSyA9IDB4MjAwMCwKIFBQX09WRVJEUklWRV9NQVNLID0gMHg0MDAwLAogUFBfR0ZY
T0ZGX01BU0sgPSAweDgwMDAsCiBQUF9BQ0dfTUFTSyA9IDB4MTAwMDAsCiBQUF9TVFVUVEVSX01P
REUgPSAweDIwMDAwLAogUFBfQVZGU19NQVNLID0gMHg0MDAwMCwKfTsKCmVudW0gRENfRkVBVFVS
RV9NQVNLIHsKIERDX0ZCQ19NQVNLID0gMHgxLAogRENfTVVMVElfTU9OX1BQX01DTEtfU1dJVENI
X01BU0sgPSAweDIsCiBEQ19ESVNBQkxFX0ZSQUNUSU9OQUxfUFdNX01BU0sgPSAweDQsCiBEQ19Q
U1JfTUFTSyA9IDB4OCwKfTsKCmVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWw7CgoKCnN0cnVjdCBh
bWRfaXBfZnVuY3MgewoKIGNoYXIgKm5hbWU7CgoKCgoKCiBpbnQgKCplYXJseV9pbml0KSh2b2lk
ICpoYW5kbGUpOwoKIGludCAoKmxhdGVfaW5pdCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpzd19p
bml0KSh2b2lkICpoYW5kbGUpOwoKIGludCAoKnN3X2ZpbmkpKHZvaWQgKmhhbmRsZSk7CgogaW50
ICgqaHdfaW5pdCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpod19maW5pKSh2b2lkICpoYW5kbGUp
OwoKIHZvaWQgKCpsYXRlX2ZpbmkpKHZvaWQgKmhhbmRsZSk7CgogaW50ICgqc3VzcGVuZCkodm9p
ZCAqaGFuZGxlKTsKCiBpbnQgKCpyZXN1bWUpKHZvaWQgKmhhbmRsZSk7CgogYm9vbCAoKmlzX2lk
bGUpKHZvaWQgKmhhbmRsZSk7CgogaW50ICgqd2FpdF9mb3JfaWRsZSkodm9pZCAqaGFuZGxlKTsK
CiBib29sICgqY2hlY2tfc29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpwcmVfc29m
dF9yZXNldCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpzb2Z0X3Jlc2V0KSh2b2lkICpoYW5kbGUp
OwoKIGludCAoKnBvc3Rfc29mdF9yZXNldCkodm9pZCAqaGFuZGxlKTsKCiBpbnQgKCpzZXRfY2xv
Y2tnYXRpbmdfc3RhdGUpKHZvaWQgKmhhbmRsZSwKICAgICAgICAgZW51bSBhbWRfY2xvY2tnYXRp
bmdfc3RhdGUgc3RhdGUpOwoKIGludCAoKnNldF9wb3dlcmdhdGluZ19zdGF0ZSkodm9pZCAqaGFu
ZGxlLAogICAgICAgICBlbnVtIGFtZF9wb3dlcmdhdGluZ19zdGF0ZSBzdGF0ZSk7Cgogdm9pZCAo
KmdldF9jbG9ja2dhdGluZ19zdGF0ZSkodm9pZCAqaGFuZGxlLCB1MzIgKmZsYWdzKTsKCiBpbnQg
KCplbmFibGVfdW1kX3BzdGF0ZSkodm9pZCAqaGFuZGxlLCBlbnVtIGFtZF9kcG1fZm9yY2VkX2xl
dmVsICpsZXZlbCk7Cn07CiMgMjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5j
bHVkZS9jZ3NfY29tbW9uLmgiIDIKCnN0cnVjdCBjZ3NfZGV2aWNlOwoKCgoKZW51bSBjZ3NfaW5k
X3JlZyB7CiBDR1NfSU5EX1JFR19fTU1JTywKIENHU19JTkRfUkVHX19QQ0lFLAogQ0dTX0lORF9S
RUdfX1NNQywKIENHU19JTkRfUkVHX19VVkRfQ1RYLAogQ0dTX0lORF9SRUdfX0RJRFQsCiBDR1Nf
SU5EX1JFR19HQ19DQUMsCiBDR1NfSU5EX1JFR19TRV9DQUMsCiBDR1NfSU5EX1JFR19fQVVESU9f
RU5EUFQKfTsKCgoKCmVudW0gY2dzX3Vjb2RlX2lkIHsKIENHU19VQ09ERV9JRF9TTVUgPSAwLAog
Q0dTX1VDT0RFX0lEX1NNVV9TSywKIENHU19VQ09ERV9JRF9TRE1BMCwKIENHU19VQ09ERV9JRF9T
RE1BMSwKIENHU19VQ09ERV9JRF9DUF9DRSwKIENHU19VQ09ERV9JRF9DUF9QRlAsCiBDR1NfVUNP
REVfSURfQ1BfTUUsCiBDR1NfVUNPREVfSURfQ1BfTUVDLAogQ0dTX1VDT0RFX0lEX0NQX01FQ19K
VDEsCiBDR1NfVUNPREVfSURfQ1BfTUVDX0pUMiwKIENHU19VQ09ERV9JRF9HTUNPTl9SRU5HLAog
Q0dTX1VDT0RFX0lEX1JMQ19HLAogQ0dTX1VDT0RFX0lEX1NUT1JBR0UsCiBDR1NfVUNPREVfSURf
TUFYSU1VTSwKfTsKCgoKCnN0cnVjdCBjZ3NfZmlybXdhcmVfaW5mbyB7CiB1aW50MTZfdCB2ZXJz
aW9uOwogdWludDE2X3QgZndfdmVyc2lvbjsKIHVpbnQxNl90IGZlYXR1cmVfdmVyc2lvbjsKIHVp
bnQzMl90IGltYWdlX3NpemU7CiB1aW50NjRfdCBtY19hZGRyOwoKCiB1aW50MzJfdCB1Y29kZV9z
dGFydF9hZGRyZXNzOwoKIHZvaWQgKmtwdHI7CiBib29sIGlzX2tpY2tlcjsKfTsKCnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBjZ3NfaGFuZGxlX3Q7CiMgOTEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vaW5jbHVkZS9jZ3NfY29tbW9uLmgiCnR5cGVkZWYgdWludDMyX3QgKCpjZ3NfcmVh
ZF9yZWdpc3Rlcl90KShzdHJ1Y3QgY2dzX2RldmljZSAqY2dzX2RldmljZSwgdW5zaWduZWQgb2Zm
c2V0KTsKCgoKCgoKCnR5cGVkZWYgdm9pZCAoKmNnc193cml0ZV9yZWdpc3Rlcl90KShzdHJ1Y3Qg
Y2dzX2RldmljZSAqY2dzX2RldmljZSwgdW5zaWduZWQgb2Zmc2V0LAogICAgICAgICB1aW50MzJf
dCB2YWx1ZSk7CiMgMTA5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUv
Y2dzX2NvbW1vbi5oIgp0eXBlZGVmIHVpbnQzMl90ICgqY2dzX3JlYWRfaW5kX3JlZ2lzdGVyX3Qp
KHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLCBlbnVtIGNnc19pbmRfcmVnIHNwYWNlLAog
ICAgICAgICB1bnNpZ25lZCBpbmRleCk7CgoKCgoKCgp0eXBlZGVmIHZvaWQgKCpjZ3Nfd3JpdGVf
aW5kX3JlZ2lzdGVyX3QpKHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLCBlbnVtIGNnc19p
bmRfcmVnIHNwYWNlLAogICAgICB1bnNpZ25lZCBpbmRleCwgdWludDMyX3QgdmFsdWUpOwojIDEz
NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2Nnc19jb21tb24uaCIK
dHlwZWRlZiBpbnQgKCpjZ3NfZ2V0X2Zpcm13YXJlX2luZm8pKHN0cnVjdCBjZ3NfZGV2aWNlICpj
Z3NfZGV2aWNlLAogICAgICAgICBlbnVtIGNnc191Y29kZV9pZCB0eXBlLAogICAgICAgICBzdHJ1
Y3QgY2dzX2Zpcm13YXJlX2luZm8gKmluZm8pOwoKc3RydWN0IGNnc19vcHMgewoKIGNnc19yZWFk
X3JlZ2lzdGVyX3QgcmVhZF9yZWdpc3RlcjsKIGNnc193cml0ZV9yZWdpc3Rlcl90IHdyaXRlX3Jl
Z2lzdGVyOwogY2dzX3JlYWRfaW5kX3JlZ2lzdGVyX3QgcmVhZF9pbmRfcmVnaXN0ZXI7CiBjZ3Nf
d3JpdGVfaW5kX3JlZ2lzdGVyX3Qgd3JpdGVfaW5kX3JlZ2lzdGVyOwoKIGNnc19nZXRfZmlybXdh
cmVfaW5mbyBnZXRfZmlybXdhcmVfaW5mbzsKfTsKCnN0cnVjdCBjZ3Nfb3Nfb3BzOwoKc3RydWN0
IGNnc19kZXZpY2UKewogY29uc3Qgc3RydWN0IGNnc19vcHMgKm9wczsKCn07CiMgNDAgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIiAyCiMgNTUg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIgoj
IDEgIi4vYXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L2FwaS5oIiAxCiMgMjIgIi4vYXJjaC94ODYv
aW5jbHVkZS9hc20vZnB1L2FwaS5oIgpleHRlcm4gdm9pZCBrZXJuZWxfZnB1X2JlZ2luKHZvaWQp
OwpleHRlcm4gdm9pZCBrZXJuZWxfZnB1X2VuZCh2b2lkKTsKZXh0ZXJuIGJvb2wgaXJxX2ZwdV91
c2FibGUodm9pZCk7CmV4dGVybiB2b2lkIGZwcmVnc19tYXJrX2FjdGl2YXRlKHZvaWQpOwoKCgoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgdm9pZCBmcHJlZ3NfbG9jayh2b2lkKQp7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6
Im1lbW9yeSIpOwogbG9jYWxfYmhfZGlzYWJsZSgpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmli
dXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0
cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB2b2lkIGZwcmVnc191bmxvY2sodm9p
ZCkKewogbG9jYWxfYmhfZW5hYmxlKCk7CiBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1l
bW9yeSIpOwp9CgoKZXh0ZXJuIHZvaWQgZnByZWdzX2Fzc2VydF9zdGF0ZV9jb25zaXN0ZW50KHZv
aWQpOwoKCgoKCgoKZXh0ZXJuIHZvaWQgc3dpdGNoX2ZwdV9yZXR1cm4odm9pZCk7CiMgNjMgIi4v
YXJjaC94ODYvaW5jbHVkZS9hc20vZnB1L2FwaS5oIgpleHRlcm4gaW50IGNwdV9oYXNfeGZlYXR1
cmVzKHU2NCB4ZmVhdHVyZXNfbWFzaywgY29uc3QgY2hhciAqKmZlYXR1cmVfbmFtZSk7CiMgNTYg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9vc190eXBlcy5oIiAy
CiMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBl
cy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvZml4ZWQzMV8zMi5oIiAxCiMgNTcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3RydWN0IGZpeGVkMzFfMzIgewogbG9uZyBs
b25nIHZhbHVlOwp9OwoKCgoKCgoKc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X3plcm8gPSB7IDAgfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0
X2Vwc2lsb24gPSB7IDFMTCB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4
cHRfaGFsZiA9IHsgMHg4MDAwMDAwMExMIH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8z
MiBkY19maXhwdF9vbmUgPSB7IDB4MTAwMDAwMDAwTEwgfTsKCnN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Zml4ZWQzMV8zMiBkY19maXhwdF9waSA9IHsgMTM0OTMwMzc3MDVMTCB9OwpzdGF0aWMgY29uc3Qg
c3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfdHdvX3BpID0geyAyNjk4NjA3NTQwOUxMIH07CnN0
YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9lID0geyAxMTY3NDkzMTU1NUxM
IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9sbjIgPSB7IDI5Nzcw
NDQ0NzFMTCB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbG4yX2Rp
dl8yID0geyAxNDg4NTIyMjM2TEwgfTsKIyA4NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgpzdHJ1Y3QgZml4ZWQzMV8zMiBkY19m
aXhwdF9mcm9tX2ZyYWN0aW9uKGxvbmcgbG9uZyBudW1lcmF0b3IsIGxvbmcgbG9uZyBkZW5vbWlu
YXRvcik7CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfZnJvbV9pbnQoaW50IGFyZykK
ewogc3RydWN0IGZpeGVkMzFfMzIgcmVzOwoKIHJlcy52YWx1ZSA9IChsb25nIGxvbmcpIGFyZyA8
PCAzMjsKCiByZXR1cm4gcmVzOwp9CiMgMTExICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X25lZyhzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCnsKIHN0cnVjdCBmaXhlZDMxXzMyIHJlczsK
CiByZXMudmFsdWUgPSAtYXJnLnZhbHVlOwoKIHJldHVybiByZXM7Cn0KCgoKCgpzdGF0aWMgaW5s
aW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVz
ZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4
ZWQzMV8zMiBkY19maXhwdF9hYnMoc3RydWN0IGZpeGVkMzFfMzIgYXJnKQp7CiBpZiAoYXJnLnZh
bHVlIDwgMCkKICByZXR1cm4gZGNfZml4cHRfbmVnKGFyZyk7CiBlbHNlCiAgcmV0dXJuIGFyZzsK
fQojIDE0MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9f
KSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1l
bnRfZnVuY3Rpb24pKSBib29sIGRjX2ZpeHB0X2x0KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0
cnVjdCBmaXhlZDMxXzMyIGFyZzIpCnsKIHJldHVybiBhcmcxLnZhbHVlIDwgYXJnMi52YWx1ZTsK
fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZGNfZml4cHRfbGUoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZp
eGVkMzFfMzIgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZTsKfQoKCgoK
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgZGNfZml4cHRfZXEoc3RydWN0IGZpeGVkMzFfMzIgYXJnMSwgc3RydWN0IGZpeGVkMzFf
MzIgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPT0gYXJnMi52YWx1ZTsKfQoKCgoKCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBmaXhlZDMxXzMyIGRjX2ZpeHB0X21pbihzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLCBzdHJ1Y3Qg
Zml4ZWQzMV8zMiBhcmcyKQp7CiBpZiAoYXJnMS52YWx1ZSA8PSBhcmcyLnZhbHVlKQogIHJldHVy
biBhcmcxOwogZWxzZQogIHJldHVybiBhcmcyOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNf
Zml4cHRfbWF4KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIp
CnsKIGlmIChhcmcxLnZhbHVlIDw9IGFyZzIudmFsdWUpCiAgcmV0dXJuIGFyZzI7CiBlbHNlCiAg
cmV0dXJuIGFyZzE7Cn0KCgoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2NsYW1wKAog
c3RydWN0IGZpeGVkMzFfMzIgYXJnLAogc3RydWN0IGZpeGVkMzFfMzIgbWluX3ZhbHVlLAogc3Ry
dWN0IGZpeGVkMzFfMzIgbWF4X3ZhbHVlKQp7CiBpZiAoZGNfZml4cHRfbGUoYXJnLCBtaW5fdmFs
dWUpKQogIHJldHVybiBtaW5fdmFsdWU7CiBlbHNlIGlmIChkY19maXhwdF9sZShtYXhfdmFsdWUs
IGFyZykpCiAgcmV0dXJuIG1heF92YWx1ZTsKIGVsc2UKICByZXR1cm4gYXJnOwp9CiMgMjE2ICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMy
LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3NobChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcs
IHVuc2lnbmVkIGNoYXIgc2hpZnQpCnsKICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoKGFy
Zy52YWx1ZSA+PSAwKSAmJiAoYXJnLnZhbHVlIDw9ICgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkg
Pj4gc2hpZnQpKSB8fCAoKGFyZy52YWx1ZSA8IDApICYmIChhcmcudmFsdWUgPj0gfigoKGxvbmcg
bG9uZykofjBVTEwgPj4gMSkpID4+IHNoaWZ0KSkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEh
KF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpc
dCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3
XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2Fk
ZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4i
ICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQj
IGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDog
ImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVk
MzFfMzIuaCIpLCAiaSIgKDIxOCksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChz
aXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgi
JWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVj
MGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJpIiAoMzgpKTsgfSk7IH0gd2hpbGUg
KDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwoKIGFy
Zy52YWx1ZSA9IGFyZy52YWx1ZSA8PCBzaGlmdDsKCiByZXR1cm4gYXJnOwp9CgoKCgoKc3RhdGlj
IGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0
IGZpeGVkMzFfMzIgZGNfZml4cHRfc2hyKHN0cnVjdCBmaXhlZDMxXzMyIGFyZywgdW5zaWduZWQg
Y2hhciBzaGlmdCkKewogYm9vbCBuZWdhdGl2ZSA9IGFyZy52YWx1ZSA8IDA7CgogaWYgKG5lZ2F0
aXZlKQogIGFyZy52YWx1ZSA9IC1hcmcudmFsdWU7CiBhcmcudmFsdWUgPSBhcmcudmFsdWUgPj4g
c2hpZnQ7CiBpZiAobmVnYXRpdmUpCiAgYXJnLnZhbHVlID0gLWFyZy52YWx1ZTsKIHJldHVybiBh
cmc7Cn0KIyAyNTEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNs
dWRlL2ZpeGVkMzFfMzIuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfYWRkKHN0cnVjdCBm
aXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCnsKIHN0cnVjdCBmaXhlZDMx
XzMyIHJlczsKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKCEoKChhcmcxLnZhbHVlID49IDAp
ICYmICgoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkpIC0gYXJnMS52YWx1ZSA+PSBhcmcyLnZhbHVl
KSkgfHwgKChhcmcxLnZhbHVlIDwgMCkgJiYgKCgtKChsb25nIGxvbmcpKH4wVUxMID4+IDEpKSAt
IDEpIC0gYXJnMS52YWx1ZSA8PSBhcmcyLnZhbHVlKSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3Qo
ISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIx
Olx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwi
YXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdf
YWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVc
biIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJc
dCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDog
OiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4
ZWQzMV8zMi5oIiksICJpIiAoMjU1KSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIg
KHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxl
KCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcg
JWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICgzOSkpOyB9KTsgfSB3aGls
ZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
CgogcmVzLnZhbHVlID0gYXJnMS52YWx1ZSArIGFyZzIudmFsdWU7CgogcmV0dXJuIHJlczsKfQoK
CgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X2FkZF9pbnQoc3RydWN0IGZpeGVkMzFfMzIg
YXJnMSwgaW50IGFyZzIpCnsKIHJldHVybiBkY19maXhwdF9hZGQoYXJnMSwgZGNfZml4cHRfZnJv
bV9pbnQoYXJnMikpOwp9CgoKCgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc3ViKHN0cnVj
dCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVjdCBmaXhlZDMxXzMyIGFyZzIpCnsKIHN0cnVjdCBmaXhl
ZDMxXzMyIHJlczsKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKCEoKChhcmcyLnZhbHVlID49
IDApICYmICgoLSgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkgLSAxKSArIGFyZzIudmFsdWUgPD0g
YXJnMS52YWx1ZSkpIHx8ICgoYXJnMi52YWx1ZSA8IDApICYmICgoKGxvbmcgbG9uZykofjBVTEwg
Pj4gMSkpICsgYXJnMi52YWx1ZSA+PSBhcmcxLnZhbHVlKSkpKTsgaWYgKF9fYnVpbHRpbl9leHBl
Y3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxl
KCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxl
LFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5Ojpi
dWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZp
bGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIi
ICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24i
IDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIiksICJpIiAoMjgwKSwgImkiICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAi
aSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0
aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxv
bmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0MCkpOyB9KTsgfSB3
aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA7CgogcmVzLnZhbHVlID0gYXJnMS52YWx1ZSAtIGFyZzIudmFsdWU7CgogcmV0dXJuIHJlczsK
fQoKCgoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIHN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0X3N1Yl9pbnQoc3RydWN0IGZpeGVkMzFf
MzIgYXJnMSwgaW50IGFyZzIpCnsKIHJldHVybiBkY19maXhwdF9zdWIoYXJnMSwgZGNfZml4cHRf
ZnJvbV9pbnQoYXJnMikpOwp9CiMgMzA3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCnN0cnVjdCBmaXhlZDMxXzMyIGRjX2ZpeHB0
X211bChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLCBzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcyKTsKCgoK
CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfbXVsX2ludChzdHJ1Y3QgZml4ZWQzMV8zMiBh
cmcxLCBpbnQgYXJnMikKewogcmV0dXJuIGRjX2ZpeHB0X211bChhcmcxLCBkY19maXhwdF9mcm9t
X2ludChhcmcyKSk7Cn0KCgoKCgpzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9zcXIoc3RydWN0
IGZpeGVkMzFfMzIgYXJnKTsKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9kaXZfaW50
KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIGxvbmcgbG9uZyBhcmcyKQp7CiByZXR1cm4gZGNfZml4
cHRfZnJvbV9mcmFjdGlvbihhcmcxLnZhbHVlLCBkY19maXhwdF9mcm9tX2ludChhcmcyKS52YWx1
ZSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9kaXYoc3RydWN0IGZpeGVkMzFf
MzIgYXJnMSwgc3RydWN0IGZpeGVkMzFfMzIgYXJnMikKewogcmV0dXJuIGRjX2ZpeHB0X2Zyb21f
ZnJhY3Rpb24oYXJnMS52YWx1ZSwgYXJnMi52YWx1ZSk7Cn0KIyAzNTUgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3RydWN0IGZp
eGVkMzFfMzIgZGNfZml4cHRfcmVjaXAoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKIyAzNzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIu
aCIKc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfc2luYyhzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcp
OwojIDM4MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUv
Zml4ZWQzMV8zMi5oIgpzdHJ1Y3QgZml4ZWQzMV8zMiBkY19maXhwdF9zaW4oc3RydWN0IGZpeGVk
MzFfMzIgYXJnKTsKIyAzOTIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3RydWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfY29zKHN0
cnVjdCBmaXhlZDMxXzMyIGFyZyk7CiMgNDA2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiCnN0cnVjdCBmaXhlZDMxXzMyIGRjX2Zp
eHB0X2V4cChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwojIDQxOCAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgpzdHJ1Y3QgZml4ZWQz
MV8zMiBkY19maXhwdF9sb2coc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKIyA0MzIgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIKc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3Ry
dWN0IGZpeGVkMzFfMzIgZGNfZml4cHRfcG93KHN0cnVjdCBmaXhlZDMxXzMyIGFyZzEsIHN0cnVj
dCBmaXhlZDMxXzMyIGFyZzIpCnsKIHJldHVybiBkY19maXhwdF9leHAoCiAgZGNfZml4cHRfbXVs
KAogICBkY19maXhwdF9sb2coYXJnMSksCiAgIGFyZzIpKTsKfQojIDQ0OSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZml4ZWQzMV8zMi5oIgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgZGNf
Zml4cHRfZmxvb3Ioc3RydWN0IGZpeGVkMzFfMzIgYXJnKQp7CiB1bnNpZ25lZCBsb25nIGxvbmcg
YXJnX3ZhbHVlID0gYXJnLnZhbHVlID4gMCA/IGFyZy52YWx1ZSA6IC1hcmcudmFsdWU7CgogaWYg
KGFyZy52YWx1ZSA+PSAwKQogIHJldHVybiAoaW50KShhcmdfdmFsdWUgPj4gMzIpOwogZWxzZQog
IHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9yb3Vu
ZChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCnsKIHVuc2lnbmVkIGxvbmcgbG9uZyBhcmdfdmFsdWUg
PSBhcmcudmFsdWUgPiAwID8gYXJnLnZhbHVlIDogLWFyZy52YWx1ZTsKCiBjb25zdCBsb25nIGxv
bmcgc3VtbWFuZCA9IGRjX2ZpeHB0X2hhbGYudmFsdWU7CgogKHsgaW50IF9fcmV0X3dhcm5fb24g
PSAhISghKCgobG9uZyBsb25nKSh+MFVMTCA+PiAxKSkgLSAobG9uZyBsb25nKWFyZ192YWx1ZSA+
PSBzdW1tYW5kKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkg
ZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIi
ICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAi
ICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAi
JWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBi
dWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIg
Ilx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCIpLCAiaSIgKDQ2OSks
ICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rp
b24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoNDEpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0
KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CgogYXJnX3ZhbHVlICs9IHN1bW1hbmQ7CgogaWYg
KGFyZy52YWx1ZSA+PSAwKQogIHJldHVybiAoaW50KShhcmdfdmFsdWUgPj4gMzIpOwogZWxzZQog
IHJldHVybiAtKGludCkoYXJnX3ZhbHVlID4+IDMyKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgX19h
dHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkg
X19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludCBkY19maXhwdF9jZWls
KHN0cnVjdCBmaXhlZDMxXzMyIGFyZykKewogdW5zaWduZWQgbG9uZyBsb25nIGFyZ192YWx1ZSA9
IGFyZy52YWx1ZSA+IDAgPyBhcmcudmFsdWUgOiAtYXJnLnZhbHVlOwoKIGNvbnN0IGxvbmcgbG9u
ZyBzdW1tYW5kID0gZGNfZml4cHRfb25lLnZhbHVlIC0KICBkY19maXhwdF9lcHNpbG9uLnZhbHVl
OwoKICh7IGludCBfX3JldF93YXJuX29uID0gISEoISgoKGxvbmcgbG9uZykofjBVTEwgPj4gMSkp
IC0gKGxvbmcgbG9uZylhcmdfdmFsdWUgPj0gc3VtbWFuZCkpOyBpZiAoX19idWlsdGluX2V4cGVj
dCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUo
IjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUs
XCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1
Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6Zmls
ZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIg
Ilx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIg
OiA6ICJpIiAoImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9m
aXhlZDMxXzMyLmgiKSwgImkiICg0OTApLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJp
IiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRp
bGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9u
ZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQyKSk7IH0pOyB9IHdo
aWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwoKIGFy
Z192YWx1ZSArPSBzdW1tYW5kOwoKIGlmIChhcmcudmFsdWUgPj0gMCkKICByZXR1cm4gKGludCko
YXJnX3ZhbHVlID4+IDMyKTsKIGVsc2UKICByZXR1cm4gLShpbnQpKGFyZ192YWx1ZSA+PiAzMik7
Cn0KCgoKCgoKCnVuc2lnbmVkIGludCBkY19maXhwdF91NGQxOShzdHJ1Y3QgZml4ZWQzMV8zMiBh
cmcpOwoKdW5zaWduZWQgaW50IGRjX2ZpeHB0X3UzZDE5KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7
Cgp1bnNpZ25lZCBpbnQgZGNfZml4cHRfdTJkMTkoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKCnVu
c2lnbmVkIGludCBkY19maXhwdF91MGQxOShzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoKdW5zaWdu
ZWQgaW50IGRjX2ZpeHB0X2NsYW1wX3UwZDE0KHN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7Cgp1bnNp
Z25lZCBpbnQgZGNfZml4cHRfY2xhbXBfdTBkMTAoc3RydWN0IGZpeGVkMzFfMzIgYXJnKTsKCmlu
dCBkY19maXhwdF9zNGQxOShzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwoKc3RhdGljIGlubGluZSBf
X2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18p
KSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGZpeGVkMzFf
MzIgZGNfZml4cHRfdHJ1bmNhdGUoc3RydWN0IGZpeGVkMzFfMzIgYXJnLCB1bnNpZ25lZCBpbnQg
ZnJhY19iaXRzKQp7CiBib29sIG5lZ2F0aXZlID0gYXJnLnZhbHVlIDwgMDsKCiBpZiAoZnJhY19i
aXRzID49IDMyKSB7CiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhISghKGZyYWNfYml0cyA9PSAz
MikpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCkpIGRvIHsgZG8g
eyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAweDBiIiAiXG4iICIu
cHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxvbmcgIiAiMWIiICIg
LSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25nICIgIiVjMCIgIiAt
IDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJcdCMgYnVnX2VudHJ5
OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdzXG4iICJcdC5vcmcg
MmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9maXhlZDMxXzMyLmgiKSwgImkiICg1MjUpLCAiaSIgKCgx
IDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0g
d2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNj
YXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQi
IDogOiAiaSIgKDQzKSk7IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3Jl
dF93YXJuX29uKSwgMCk7IH0pOwogIHJldHVybiBhcmc7CiB9CgogaWYgKG5lZ2F0aXZlKQogIGFy
Zy52YWx1ZSA9IC1hcmcudmFsdWU7CiBhcmcudmFsdWUgJj0gKH4wTEwpIDw8ICgzMiAtIGZyYWNf
Yml0cyk7CiBpZiAobmVnYXRpdmUpCiAgYXJnLnZhbHVlID0gLWFyZy52YWx1ZTsKIHJldHVybiBh
cmc7Cn0KIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Rj
X3R5cGVzLmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvaXJxX3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2lycV90eXBlcy5oIgpzdHJ1Y3QgZGNfY29udGV4dDsKCnR5cGVkZWYgdm9pZCAo
KmludGVycnVwdF9oYW5kbGVyKSh2b2lkICopOwoKdHlwZWRlZiB2b2lkICppcnFfaGFuZGxlcl9p
ZHg7CgoKCgplbnVtIGRjX2lycV9zb3VyY2UgewoKIERDX0lSUV9TT1VSQ0VfSU5WQUxJRCA9IDAs
CgogRENfSVJRX1NPVVJDRV9IUEQxLAogRENfSVJRX1NPVVJDRV9IUEQyLAogRENfSVJRX1NPVVJD
RV9IUEQzLAogRENfSVJRX1NPVVJDRV9IUEQ0LAogRENfSVJRX1NPVVJDRV9IUEQ1LAogRENfSVJR
X1NPVVJDRV9IUEQ2LAoKIERDX0lSUV9TT1VSQ0VfSFBEMVJYLAogRENfSVJRX1NPVVJDRV9IUEQy
UlgsCiBEQ19JUlFfU09VUkNFX0hQRDNSWCwKIERDX0lSUV9TT1VSQ0VfSFBENFJYLAogRENfSVJR
X1NPVVJDRV9IUEQ1UlgsCiBEQ19JUlFfU09VUkNFX0hQRDZSWCwKCiBEQ19JUlFfU09VUkNFX0ky
Q19EREMxLAogRENfSVJRX1NPVVJDRV9JMkNfRERDMiwKIERDX0lSUV9TT1VSQ0VfSTJDX0REQzMs
CiBEQ19JUlFfU09VUkNFX0kyQ19EREM0LAogRENfSVJRX1NPVVJDRV9JMkNfRERDNSwKIERDX0lS
UV9TT1VSQ0VfSTJDX0REQzYsCgogRENfSVJRX1NPVVJDRV9EUFNJTksxLAogRENfSVJRX1NPVVJD
RV9EUFNJTksyLAogRENfSVJRX1NPVVJDRV9EUFNJTkszLAogRENfSVJRX1NPVVJDRV9EUFNJTks0
LAogRENfSVJRX1NPVVJDRV9EUFNJTks1LAogRENfSVJRX1NPVVJDRV9EUFNJTks2LAoKIERDX0lS
UV9TT1VSQ0VfVElNRVIsCgogRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVCwKIERDX0lSUV9TT1VS
Q0VfUEZMSVAxID0gRENfSVJRX1NPVVJDRV9QRkxJUF9GSVJTVCwKIERDX0lSUV9TT1VSQ0VfUEZM
SVAyLAogRENfSVJRX1NPVVJDRV9QRkxJUDMsCiBEQ19JUlFfU09VUkNFX1BGTElQNCwKIERDX0lS
UV9TT1VSQ0VfUEZMSVA1LAogRENfSVJRX1NPVVJDRV9QRkxJUDYsCiBEQ19JUlFfU09VUkNFX1BG
TElQX1VOREVSTEFZMCwKIERDX0lSUV9TT1VSQ0VfUEZMSVBfTEFTVCA9IERDX0lSUV9TT1VSQ0Vf
UEZMSVBfVU5ERVJMQVkwLAoKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDAsCiBEQ19JUlFfU09VUkNF
X0dQSU9QQUQxLAogRENfSVJRX1NPVVJDRV9HUElPUEFEMiwKIERDX0lSUV9TT1VSQ0VfR1BJT1BB
RDMsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQ0LAogRENfSVJRX1NPVVJDRV9HUElPUEFENSwKIERD
X0lSUV9TT1VSQ0VfR1BJT1BBRDYsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQ3LAogRENfSVJRX1NP
VVJDRV9HUElPUEFEOCwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDksCiBEQ19JUlFfU09VUkNFX0dQ
SU9QQUQxMCwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDExLAogRENfSVJRX1NPVVJDRV9HUElPUEFE
MTIsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQxMywKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDE0LAog
RENfSVJRX1NPVVJDRV9HUElPUEFEMTUsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQxNiwKIERDX0lS
UV9TT1VSQ0VfR1BJT1BBRDE3LAogRENfSVJRX1NPVVJDRV9HUElPUEFEMTgsCiBEQ19JUlFfU09V
UkNFX0dQSU9QQUQxOSwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDIwLAogRENfSVJRX1NPVVJDRV9H
UElPUEFEMjEsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQyMiwKIERDX0lSUV9TT1VSQ0VfR1BJT1BB
RDIzLAogRENfSVJRX1NPVVJDRV9HUElPUEFEMjQsCiBEQ19JUlFfU09VUkNFX0dQSU9QQUQyNSwK
IERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI2LAogRENfSVJRX1NPVVJDRV9HUElPUEFEMjcsCiBEQ19J
UlFfU09VUkNFX0dQSU9QQUQyOCwKIERDX0lSUV9TT1VSQ0VfR1BJT1BBRDI5LAogRENfSVJRX1NP
VVJDRV9HUElPUEFEMzAsCgogRENfSVJRX1NPVVJDRV9EQzFVTkRFUkZMT1csCiBEQ19JUlFfU09V
UkNFX0RDMlVOREVSRkxPVywKIERDX0lSUV9TT1VSQ0VfREMzVU5ERVJGTE9XLAogRENfSVJRX1NP
VVJDRV9EQzRVTkRFUkZMT1csCiBEQ19JUlFfU09VUkNFX0RDNVVOREVSRkxPVywKIERDX0lSUV9T
T1VSQ0VfREM2VU5ERVJGTE9XLAoKIERDX0lSUV9TT1VSQ0VfRE1DVV9TQ1AsCiBEQ19JUlFfU09V
UkNFX1ZCSU9TX1NXLAoKIERDX0lSUV9TT1VSQ0VfVlVQREFURTEsCiBEQ19JUlFfU09VUkNFX1ZV
UERBVEUyLAogRENfSVJRX1NPVVJDRV9WVVBEQVRFMywKIERDX0lSUV9TT1VSQ0VfVlVQREFURTQs
CiBEQ19JUlFfU09VUkNFX1ZVUERBVEU1LAogRENfSVJRX1NPVVJDRV9WVVBEQVRFNiwKCiBEQ19J
UlFfU09VUkNFX1ZCTEFOSzEsCiBEQ19JUlFfU09VUkNFX1ZCTEFOSzIsCiBEQ19JUlFfU09VUkNF
X1ZCTEFOSzMsCiBEQ19JUlFfU09VUkNFX1ZCTEFOSzQsCiBEQ19JUlFfU09VUkNFX1ZCTEFOSzUs
CiBEQ19JUlFfU09VUkNFX1ZCTEFOSzYsCgogRENfSVJRX1NPVVJDRV9EQzFfVkxJTkUwLAogRENf
SVJRX1NPVVJDRV9EQzJfVkxJTkUwLAogRENfSVJRX1NPVVJDRV9EQzNfVkxJTkUwLAogRENfSVJR
X1NPVVJDRV9EQzRfVkxJTkUwLAogRENfSVJRX1NPVVJDRV9EQzVfVkxJTkUwLAogRENfSVJRX1NP
VVJDRV9EQzZfVkxJTkUwLAoKIERDX0lSUV9TT1VSQ0VfREMxX1ZMSU5FMSwKIERDX0lSUV9TT1VS
Q0VfREMyX1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0VfREMzX1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0Vf
REM0X1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0VfREM1X1ZMSU5FMSwKIERDX0lSUV9TT1VSQ0VfREM2
X1ZMSU5FMSwKCgogREFMX0lSUV9TT1VSQ0VTX05VTUJFUgp9OwoKZW51bSBpcnFfdHlwZQp7CiBJ
UlFfVFlQRV9QRkxJUCA9IERDX0lSUV9TT1VSQ0VfUEZMSVAxLAogSVJRX1RZUEVfVlVQREFURSA9
IERDX0lSUV9TT1VSQ0VfVlVQREFURTEsCiBJUlFfVFlQRV9WQkxBTksgPSBEQ19JUlFfU09VUkNF
X1ZCTEFOSzEsCn07CiMgMTczICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaXJxX3R5cGVzLmgiCmVudW0gZGNfaW50ZXJydXB0X2NvbnRleHQgewogSU5URVJSVVBU
X0xPV19JUlFfQ09OVEVYVCA9IDAsCiBJTlRFUlJVUFRfSElHSF9JUlFfQ09OVEVYVCwKIElOVEVS
UlVQVF9DT05URVhUX05VTUJFUgp9OwoKZW51bSBkY19pbnRlcnJ1cHRfcG9ybGFyaXR5IHsKIElO
VEVSUlVQVF9QT0xBUklUWV9ERUZBVUxUID0gMCwKIElOVEVSUlVQVF9QT0xBUklUWV9MT1cgPSBJ
TlRFUlJVUFRfUE9MQVJJVFlfREVGQVVMVCwKIElOVEVSUlVQVF9QT0xBUklUWV9ISUdILAogSU5U
RVJSVVBUX1BPTEFSSVRZX0JPVEgKfTsKCgoKCgoKc3RydWN0IGRjX3RpbWVyX2ludGVycnVwdF9w
YXJhbXMgewogdWludDMyX3QgbWljcm9fc2VjX2ludGVydmFsOwogZW51bSBkY19pbnRlcnJ1cHRf
Y29udGV4dCBpbnRfY29udGV4dDsKfTsKCnN0cnVjdCBkY19pbnRlcnJ1cHRfcGFyYW1zIHsKCgoK
IGVudW0gZGNfaW50ZXJydXB0X3Bvcmxhcml0eSByZXF1ZXN0ZWRfcG9sYXJpdHk7CgoKCgogZW51
bSBkY19pbnRlcnJ1cHRfcG9ybGFyaXR5IGN1cnJlbnRfcG9sYXJpdHk7CiBlbnVtIGRjX2lycV9z
b3VyY2UgaXJxX3NvdXJjZTsKIGVudW0gZGNfaW50ZXJydXB0X2NvbnRleHQgaW50X2NvbnRleHQ7
Cn07CiMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190
eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RjX2RwX3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgiCmVudW0gZGNfbGFuZV9jb3VudCB7CiBMQU5FX0NPVU5U
X1VOS05PV04gPSAwLAogTEFORV9DT1VOVF9PTkUgPSAxLAogTEFORV9DT1VOVF9UV08gPSAyLAog
TEFORV9DT1VOVF9GT1VSID0gNCwKIExBTkVfQ09VTlRfRUlHSFQgPSA4LAogTEFORV9DT1VOVF9E
UF9NQVggPSBMQU5FX0NPVU5UX0ZPVVIKfTsKIyA0NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2RwX3R5cGVzLmgiCmVudW0gZGNfbGlua19yYXRlIHsKIExJ
TktfUkFURV9VTktOT1dOID0gMCwKIExJTktfUkFURV9MT1cgPSAweDA2LAogTElOS19SQVRFX1JB
VEVfMiA9IDB4MDgsCiBMSU5LX1JBVEVfUkFURV8zID0gMHgwOSwKIExJTktfUkFURV9ISUdIID0g
MHgwQSwKIExJTktfUkFURV9SQlIyID0gMHgwQywKIExJTktfUkFURV9SQVRFXzYgPSAweDEwLAog
TElOS19SQVRFX0hJR0gyID0gMHgxNCwKIExJTktfUkFURV9ISUdIMyA9IDB4MUUKfTsKCmVudW0g
ZGNfbGlua19zcHJlYWQgewogTElOS19TUFJFQURfRElTQUJMRUQgPSAweDAwLAoKIExJTktfU1BS
RUFEXzA1X0RPV05TUFJFQURfMzBLSFogPSAweDEwLAoKIExJTktfU1BSRUFEXzA1X0RPV05TUFJF
QURfMzNLSFogPSAweDExCn07CgplbnVtIGRjX3ZvbHRhZ2Vfc3dpbmcgewogVk9MVEFHRV9TV0lO
R19MRVZFTDAgPSAwLAogVk9MVEFHRV9TV0lOR19MRVZFTDEsCiBWT0xUQUdFX1NXSU5HX0xFVkVM
MiwKIFZPTFRBR0VfU1dJTkdfTEVWRUwzLAogVk9MVEFHRV9TV0lOR19NQVhfTEVWRUwgPSBWT0xU
QUdFX1NXSU5HX0xFVkVMMwp9OwoKZW51bSBkY19wcmVfZW1waGFzaXMgewogUFJFX0VNUEhBU0lT
X0RJU0FCTEVEID0gMCwKIFBSRV9FTVBIQVNJU19MRVZFTDEsCiBQUkVfRU1QSEFTSVNfTEVWRUwy
LAogUFJFX0VNUEhBU0lTX0xFVkVMMywKIFBSRV9FTVBIQVNJU19NQVhfTEVWRUwgPSBQUkVfRU1Q
SEFTSVNfTEVWRUwzCn07CgoKCmVudW0gZGNfcG9zdF9jdXJzb3IyIHsKIFBPU1RfQ1VSU09SMl9E
SVNBQkxFRCA9IDAsCiBQT1NUX0NVUlNPUjJfTEVWRUwxLAogUE9TVF9DVVJTT1IyX0xFVkVMMiwK
IFBPU1RfQ1VSU09SMl9MRVZFTDMsCiBQT1NUX0NVUlNPUjJfTUFYX0xFVkVMID0gUE9TVF9DVVJT
T1IyX0xFVkVMMywKfTsKCmVudW0gZGNfZHBfdHJhaW5pbmdfcGF0dGVybiB7CiBEUF9UUkFJTklO
R19QQVRURVJOX1NFUVVFTkNFXzEgPSAwLAogRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8y
LAogRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVFVRU5DRV8zLAogRFBfVFJBSU5JTkdfUEFUVEVSTl9T
RVFVRU5DRV80LAp9OwoKc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgewogZW51bSBkY19sYW5lX2Nv
dW50IGxhbmVfY291bnQ7CiBlbnVtIGRjX2xpbmtfcmF0ZSBsaW5rX3JhdGU7CiBlbnVtIGRjX2xp
bmtfc3ByZWFkIGxpbmtfc3ByZWFkOwogYm9vbCB1c2VfbGlua19yYXRlX3NldDsKIHVpbnQ4X3Qg
bGlua19yYXRlX3NldDsKfTsKCnN0cnVjdCBkY19sYW5lX3NldHRpbmdzIHsKIGVudW0gZGNfdm9s
dGFnZV9zd2luZyBWT0xUQUdFX1NXSU5HOwogZW51bSBkY19wcmVfZW1waGFzaXMgUFJFX0VNUEhB
U0lTOwogZW51bSBkY19wb3N0X2N1cnNvcjIgUE9TVF9DVVJTT1IyOwp9OwoKc3RydWN0IGRjX2xp
bmtfdHJhaW5pbmdfc2V0dGluZ3Mgewogc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgbGluazsKIHN0
cnVjdCBkY19sYW5lX3NldHRpbmdzIGxhbmVfc2V0dGluZ3NbTEFORV9DT1VOVF9EUF9NQVhdOwp9
OwoKc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJpZGVzIHsKIGVudW0gZGNfdm9sdGFnZV9z
d2luZyAqdm9sdGFnZV9zd2luZzsKIGVudW0gZGNfcHJlX2VtcGhhc2lzICpwcmVfZW1waGFzaXM7
CiBlbnVtIGRjX3Bvc3RfY3Vyc29yMiAqcG9zdF9jdXJzb3IyOwoKIHVpbnQxNl90ICpjcl9wYXR0
ZXJuX3RpbWU7CiB1aW50MTZfdCAqZXFfcGF0dGVybl90aW1lOwogZW51bSBkY19kcF90cmFpbmlu
Z19wYXR0ZXJuICpwYXR0ZXJuX2Zvcl9lcTsKCiBlbnVtIGRjX2xpbmtfc3ByZWFkICpkb3duc3By
ZWFkOwogYm9vbCAqYWx0ZXJuYXRlX3NjcmFtYmxlcl9yZXNldDsKIGJvb2wgKmVuaGFuY2VkX2Zy
YW1pbmc7CiBib29sICptc3RfZW5hYmxlOwogYm9vbCAqZmVjX2VuYWJsZTsKfTsKCnVuaW9uIGRw
Y2RfcmV2IHsKIHN0cnVjdCB7CiAgdWludDhfdCBNSU5PUjo0OwogIHVpbnQ4X3QgTUFKT1I6NDsK
IH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gbWF4X2xhbmVfY291bnQgewogc3RydWN0
IHsKICB1aW50OF90IE1BWF9MQU5FX0NPVU5UOjU7CiAgdWludDhfdCBQT1NUX0xUX0FESl9SRVFf
U1VQUE9SVEVEOjE7CiAgdWludDhfdCBUUFMzX1NVUFBPUlRFRDoxOwogIHVpbnQ4X3QgRU5IQU5D
RURfRlJBTUVfQ0FQOjE7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIG1heF9kb3du
X3NwcmVhZCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgTUFYX0RPV05fU1BSRUFEOjE7CiAgdWludDhf
dCBSRVNFUlZFRDo1OwogIHVpbnQ4X3QgTk9fQVVYX0hBTkRTSEFLRV9MSU5LX1RSQUlOSU5HOjE7
CiAgdWludDhfdCBUUFM0X1NVUFBPUlRFRDoxOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1
bmlvbiBtc3RtX2NhcCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgTVNUX0NBUDoxOwogIHVpbnQ4X3Qg
UkVTRVJWRUQ6NzsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gbGFuZV9jb3VudF9z
ZXQgewogc3RydWN0IHsKICB1aW50OF90IExBTkVfQ09VTlRfU0VUOjU7CiAgdWludDhfdCBQT1NU
X0xUX0FESl9SRVFfR1JBTlRFRDoxOwogIHVpbnQ4X3QgUkVTRVJWRUQ6MTsKICB1aW50OF90IEVO
SEFOQ0VEX0ZSQU1JTkc6MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gbGFuZV9z
dGF0dXMgewogc3RydWN0IHsKICB1aW50OF90IENSX0RPTkVfMDoxOwogIHVpbnQ4X3QgQ0hBTk5F
TF9FUV9ET05FXzA6MTsKICB1aW50OF90IFNZTUJPTF9MT0NLRURfMDoxOwogIHVpbnQ4X3QgUkVT
RVJWRUQwOjE7CiAgdWludDhfdCBDUl9ET05FXzE6MTsKICB1aW50OF90IENIQU5ORUxfRVFfRE9O
RV8xOjE7CiAgdWludDhfdCBTWU1CT0xfTE9DS0VEXzE6MTsKICB1aW50OF90IFJFU0VSVkVEXzE6
MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gZGV2aWNlX3NlcnZpY2VfaXJxIHsK
IHN0cnVjdCB7CiAgdWludDhfdCBSRU1PVEVfQ09OVFJPTF9DTURfUEVORElORzoxOwogIHVpbnQ4
X3QgQVVUT01BVEVEX1RFU1Q6MTsKICB1aW50OF90IENQX0lSUToxOwogIHVpbnQ4X3QgTUNDU19J
UlE6MTsKICB1aW50OF90IERPV05fUkVQX01TR19SRFk6MTsKICB1aW50OF90IFVQX1JFUV9NU0df
UkRZOjE7CiAgdWludDhfdCBTSU5LX1NQRUNJRklDOjE7CiAgdWludDhfdCByZXNlcnZlZDoxOwog
fSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBzaW5rX2NvdW50IHsKIHN0cnVjdCB7CiAg
dWludDhfdCBTSU5LX0NPVU5UOjY7CiAgdWludDhfdCBDUFJFQURZOjE7CiAgdWludDhfdCBSRVNF
UlZFRDoxOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBsYW5lX2FsaWduX3N0YXR1
c191cGRhdGVkIHsKIHN0cnVjdCB7CiAgdWludDhfdCBJTlRFUkxBTkVfQUxJR05fRE9ORToxOwog
IHVpbnQ4X3QgUE9TVF9MVF9BREpfUkVRX0lOX1BST0dSRVNTOjE7CiAgdWludDhfdCBSRVNFUlZF
RDo0OwogIHVpbnQ4X3QgRE9XTlNUUkVBTV9QT1JUX1NUQVRVU19DSEFOR0VEOjE7CiAgdWludDhf
dCBMSU5LX1NUQVRVU19VUERBVEVEOjE7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9u
IGxhbmVfYWRqdXN0IHsKIHN0cnVjdCB7CiAgdWludDhfdCBWT0xUQUdFX1NXSU5HX0xBTkU6MjsK
ICB1aW50OF90IFBSRV9FTVBIQVNJU19MQU5FOjI7CiAgdWludDhfdCBSRVNFUlZFRDo0OwogfSBi
aXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBkcGNkX3RyYWluaW5nX3BhdHRlcm4gewogc3Ry
dWN0IHsKICB1aW50OF90IFRSQUlOSU5HX1BBVFRFUk5fU0VUOjQ7CiAgdWludDhfdCBSRUNPVkVS
RURfQ0xPQ0tfT1VUX0VOOjE7CiAgdWludDhfdCBTQ1JBTUJMSU5HX0RJU0FCTEU6MTsKICB1aW50
OF90IFNZTUJPTF9FUlJPUl9DT1VOVF9TRUw6MjsKIH0gdjFfNDsKIHN0cnVjdCB7CiAgdWludDhf
dCBUUkFJTklOR19QQVRURVJOX1NFVDoyOwogIHVpbnQ4X3QgTElOS19RVUFMX1BBVFRFUk5fU0VU
OjI7CiAgdWludDhfdCBSRVNFUlZFRDo0OwogfSB2MV8zOwogdWludDhfdCByYXc7Cn07CgoKCgp1
bmlvbiBkcGNkX3RyYWluaW5nX2xhbmUgewogc3RydWN0IHsKICB1aW50OF90IFZPTFRBR0VfU1dJ
TkdfU0VUOjI7CiAgdWludDhfdCBNQVhfU1dJTkdfUkVBQ0hFRDoxOwogIHVpbnQ4X3QgUFJFX0VN
UEhBU0lTX1NFVDoyOwogIHVpbnQ4X3QgTUFYX1BSRV9FTVBIQVNJU19SRUFDSEVEOjE7CiAgdWlu
dDhfdCBSRVNFUlZFRDoyOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07CgoKdW5pb24gZHduc3Ry
ZWFtX3BvcnRfY2Fwc19ieXRlMCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgRFdOX1NUUk1fUE9SVFhf
VFlQRTozOwogIHVpbnQ4X3QgRFdOX1NUUk1fUE9SVFhfSFBEOjE7CiAgdWludDhfdCBSRVNFUlZF
UkQ6NDsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKCmVudW0gZHBjZF9kb3duc3RyZWFtX3Bv
cnRfZGV0YWlsZWRfdHlwZSB7CiBET1dOX1NUUkVBTV9ERVRBSUxFRF9EUCA9IDAsCiBET1dOX1NU
UkVBTV9ERVRBSUxFRF9WR0EsCiBET1dOX1NUUkVBTV9ERVRBSUxFRF9EVkksCiBET1dOX1NUUkVB
TV9ERVRBSUxFRF9IRE1JLAogRE9XTl9TVFJFQU1fREVUQUlMRURfTk9ORERDLAogRE9XTl9TVFJF
QU1fREVUQUlMRURfRFBfUExVU19QTFVTCn07Cgp1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBzX2J5
dGUyIHsKIHN0cnVjdCB7CiAgdWludDhfdCBNQVhfQklUU19QRVJfQ09MT1JfQ09NUE9ORU5UOjI7
CiAgdWludDhfdCBSRVNFUlZFRDo2OwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBk
cF9kb3duc3RyZWFtX3BvcnRfcHJlc2VudCB7CiB1aW50OF90IGJ5dGU7CiBzdHJ1Y3QgewogIHVp
bnQ4X3QgUE9SVF9QUkVTRU5UOjE7CiAgdWludDhfdCBQT1JUX1RZUEU6MjsKICB1aW50OF90IEZN
VF9DT05WRVJTSU9OOjE7CiAgdWludDhfdCBERVRBSUxFRF9DQVBTOjE7CiAgdWludDhfdCBSRVNF
UlZFRDozOwogfSBmaWVsZHM7Cn07Cgp1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBzX2J5dGUzX2R2
aSB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgUkVTRVJWRUQxOjE7CiAgdWludDhfdCBEVUFMX0xJTks6
MTsKICB1aW50OF90IEhJR0hfQ09MT1JfREVQVEg6MTsKICB1aW50OF90IFJFU0VSVkVEMjo1Owog
fSBiaXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBkd25zdHJlYW1fcG9ydF9jYXBzX2J5dGUz
X2hkbWkgewogc3RydWN0IHsKICB1aW50OF90IEZSQU1FX1NFUV9UT19GUkFNRV9QQUNLOjE7CiAg
dWludDhfdCBZQ3JDcjQyMl9QQVNTX1RIUk9VR0g6MTsKICB1aW50OF90IFlDckNyNDIwX1BBU1Nf
VEhST1VHSDoxOwogIHVpbnQ4X3QgWUNyQ3I0MjJfQ09OVkVSU0lPTjoxOwogIHVpbnQ4X3QgWUNy
Q3I0MjBfQ09OVkVSU0lPTjoxOwogIHVpbnQ4X3QgUkVTRVJWRUQ6MzsKIH0gYml0czsKIHVpbnQ4
X3QgcmF3Owp9OwoKCgp1bmlvbiBkd25zdHJlYW1fcG9ydHhjYXBzIHsKIHN0cnVjdCB7CiAgdW5p
b24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlMCBieXRlMDsKICB1bnNpZ25lZCBjaGFyIG1heF9U
TURTX2Nsb2NrOwogIHVuaW9uIGR3bnN0cmVhbV9wb3J0X2NhcHNfYnl0ZTIgYnl0ZTI7CgogIHVu
aW9uIHsKICAgdW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlM19kdmkgYnl0ZURWSTsKICAg
dW5pb24gZHduc3RyZWFtX3BvcnRfY2Fwc19ieXRlM19oZG1pIGJ5dGVIRE1JOwogIH0gYnl0ZTM7
CiB9IGJ5dGVzOwoKIHVuc2lnbmVkIGNoYXIgcmF3WzRdOwp9OwoKdW5pb24gZG93bnN0cmVhbV9w
b3J0IHsKIHN0cnVjdCB7CiAgdW5zaWduZWQgY2hhciBwcmVzZW50OjE7CiAgdW5zaWduZWQgY2hh
ciB0eXBlOjI7CiAgdW5zaWduZWQgY2hhciBmb3JtYXRfY29udjoxOwogIHVuc2lnbmVkIGNoYXIg
ZGV0YWlsZWRfY2FwczoxOwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQ6MzsKIH0gYml0czsKIHVu
c2lnbmVkIGNoYXIgcmF3Owp9OwoKCnVuaW9uIHNpbmtfc3RhdHVzIHsKIHN0cnVjdCB7CiAgdWlu
dDhfdCBSWF9QT1JUMF9TVEFUVVM6MTsKICB1aW50OF90IFJYX1BPUlQxX1NUQVRVUzoxOwogIHVp
bnQ4X3QgUkVTRVJWRUQ6NjsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKCgp1bmlvbiBocGRf
aXJxX2RhdGEgewogc3RydWN0IHsKICB1bmlvbiBzaW5rX2NvdW50IHNpbmtfY250OwogIHVuaW9u
IGRldmljZV9zZXJ2aWNlX2lycSBkZXZpY2Vfc2VydmljZV9pcnE7CiAgdW5pb24gbGFuZV9zdGF0
dXMgbGFuZTAxX3N0YXR1czsKICB1bmlvbiBsYW5lX3N0YXR1cyBsYW5lMjNfc3RhdHVzOwogIHVu
aW9uIGxhbmVfYWxpZ25fc3RhdHVzX3VwZGF0ZWQgbGFuZV9zdGF0dXNfdXBkYXRlZDsKICB1bmlv
biBzaW5rX3N0YXR1cyBzaW5rX3N0YXR1czsKIH0gYnl0ZXM7CiB1aW50OF90IHJhd1s2XTsKfTsK
CnVuaW9uIGRvd25fc3RyZWFtX3BvcnRfY291bnQgewogc3RydWN0IHsKICB1aW50OF90IERPV05f
U1RSX1BPUlRfQ09VTlQ6NDsKICB1aW50OF90IFJFU0VSVkVEOjI7CgoKCgogIHVpbnQ4X3QgSUdO
T1JFX01TQV9USU1JTkdfUEFSQU06MTsKCgoKCiAgdWludDhfdCBPVUlfU1VQUE9SVDoxOwogfSBi
aXRzOwogdWludDhfdCByYXc7Cn07Cgp1bmlvbiBkb3duX3NwcmVhZF9jdHJsIHsKIHN0cnVjdCB7
CiAgdWludDhfdCBSRVNFUlZFRDE6NDsKCgoKCiAgdWludDhfdCBTUFJFQURfQU1QOjE7CiAgdWlu
dDhfdCBSRVNFUlZFRDI6MjsKCgoKICB1aW50OF90IElHTk9SRV9NU0FfVElNSU5HX1BBUkFNOjE7
CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIGRwY2RfZWRwX2NvbmZpZyB7CiBzdHJ1
Y3QgewogIHVpbnQ4X3QgUEFORUxfTU9ERV9FRFA6MTsKICB1aW50OF90IEZSQU1JTkdfQ0hBTkdF
X0VOQUJMRToxOwogIHVpbnQ4X3QgUkVTRVJWRUQ6NTsKICB1aW50OF90IFBBTkVMX1NFTEZfVEVT
VF9FTkFCTEU6MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKc3RydWN0IGRwX2RldmljZV92
ZW5kb3JfaWQgewogdWludDhfdCBpZWVlX291aVszXTsKIHVpbnQ4X3QgaWVlZV9kZXZpY2VfaWRb
Nl07Cn07CgpzdHJ1Y3QgZHBfc2lua19od19md19yZXZpc2lvbiB7CiB1aW50OF90IGllZWVfaHdf
cmV2OwogdWludDhfdCBpZWVlX2Z3X3JldlsyXTsKfTsKCgp1bmlvbiBlZHBfY29uZmlndXJhdGlv
bl9jYXAgewogc3RydWN0IHsKICB1aW50OF90IEFMVF9TQ1JBTUJMRVJfUkVTRVQ6MTsKICB1aW50
OF90IEZSQU1JTkdfQ0hBTkdFOjE7CiAgdWludDhfdCBSRVNFUlZFRDoxOwogIHVpbnQ4X3QgRFBD
RF9ESVNQTEFZX0NPTlRST0xfQ0FQQUJMRToxOwogIHVpbnQ4X3QgUkVTRVJWRUQyOjQ7CiB9IGJp
dHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIGRwcnhfZmVhdHVyZSB7CiBzdHJ1Y3QgewogIHVp
bnQ4X3QgR1RDX0NBUDoxOwogIHVpbnQ4X3QgU1NUX1NQTElUX1NEUF9DQVA6MTsKICB1aW50OF90
IEFWX1NZTkNfQ0FQOjE7CiAgdWludDhfdCBWU0NfU0RQX0NPTE9SSU1FVFJZX1NVUFBPUlRFRDox
OwogIHVpbnQ4X3QgVlNDX0VYVF9WRVNBX1NEUF9TVVBQT1JURUQ6MTsKICB1aW50OF90IFZTQ19F
WFRfVkVTQV9TRFBfQ0hBSU5JTkdfU1VQUE9SVEVEOjE7CiAgdWludDhfdCBWU0NfRVhUX0NFQV9T
RFBfU1VQUE9SVEVEOjE7CiAgdWludDhfdCBWU0NfRVhUX0NFQV9TRFBfQ0hBSU5JTkdfU1VQUE9S
VEVEOjE7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIHRyYWluaW5nX2F1eF9yZF9p
bnRlcnZhbCB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgVFJBSU5JR19BVVhfUkRfSU5URVJWQUw6NzsK
ICB1aW50OF90IEVYVF9SRUNFSVZFUl9DQVBfRklFTERfUFJFU0VOVDoxOwogfSBiaXRzOwogdWlu
dDhfdCByYXc7Cn07CgoKdW5pb24gdGVzdF9yZXF1ZXN0IHsKIHN0cnVjdCB7CiB1aW50OF90IExJ
TktfVFJBSU5JTkcgOjE7CiB1aW50OF90IExJTktfVEVTVF9QQVRUUk4gOjE7CiB1aW50OF90IEVE
SURfUkVBRCA6MTsKIHVpbnQ4X3QgUEhZX1RFU1RfUEFUVEVSTiA6MTsKIHVpbnQ4X3QgUkVTRVJW
RUQgOjE7CiB1aW50OF90IEFVRElPX1RFU1RfUEFUVEVSTiA6MTsKIHVpbnQ4X3QgVEVTVF9BVURJ
T19ESVNBQkxFRF9WSURFTyA6MTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9OwoKdW5pb24gdGVz
dF9yZXNwb25zZSB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgQUNLIDoxOwogIHVpbnQ4X3QgTk9fQUNL
IDoxOwogIHVpbnQ4X3QgRURJRF9DSEVDS1NVTV9XUklURToxOwogIHVpbnQ4X3QgUkVTRVJWRUQg
OjU7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnVuaW9uIHBoeV90ZXN0X3BhdHRlcm4gewog
c3RydWN0IHsKCgoKICB1aW50OF90IFBBVFRFUk4gOjM7CgogIHVpbnQ4X3QgUkVTRVJWRUQgOjU7
CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCgp1bmlvbiBjb21wbGlhbmNlX3Rlc3Rfc3RhdGUg
ewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIFNURVJFT18zRF9SVU5OSU5HIDogMTsKICB1bnNp
Z25lZCBjaGFyIFJFU0VSVkVEIDogNzsKIH0gYml0czsKIHVuc2lnbmVkIGNoYXIgcmF3Owp9OwoK
dW5pb24gbGlua190ZXN0X3BhdHRlcm4gewogc3RydWN0IHsKCiAgdW5zaWduZWQgY2hhciBQQVRU
RVJOIDoyOwogIHVuc2lnbmVkIGNoYXIgUkVTRVJWRUQ6NjsKIH0gYml0czsKIHVuc2lnbmVkIGNo
YXIgcmF3Owp9OwoKdW5pb24gdGVzdF9taXNjIHsKIHN0cnVjdCBkcGNkX3Rlc3RfbWlzY19iaXRz
IHsKICB1bnNpZ25lZCBjaGFyIFNZTkNfQ0xPQ0sgOjE7CgogIHVuc2lnbmVkIGNoYXIgQ0xSX0ZP
Uk1BVCA6MjsKCiAgdW5zaWduZWQgY2hhciBEWU5fUkFOR0UgOjE7CiAgdW5zaWduZWQgY2hhciBZ
Q0JDUl9DT0VGUyA6MTsKCiAgdW5zaWduZWQgY2hhciBCUEMgOjM7CiB9IGJpdHM7CiB1bnNpZ25l
ZCBjaGFyIHJhdzsKfTsKCnVuaW9uIGF1ZGlvX3Rlc3RfbW9kZSB7CiBzdHJ1Y3QgewogIHVuc2ln
bmVkIGNoYXIgc2FtcGxpbmdfcmF0ZSA6NDsKICB1bnNpZ25lZCBjaGFyIGNoYW5uZWxfY291bnQg
OjQ7CiB9IGJpdHM7CiB1bnNpZ25lZCBjaGFyIHJhdzsKfTsKCnVuaW9uIGF1ZGlvX3Rlc3RfcGF0
dGVybl9wZXJpb2Qgewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIHBhdHRlcm5fcGVyaW9kIDo0
OwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQgOjQ7CiB9IGJpdHM7CiB1bnNpZ25lZCBjaGFyIHJh
dzsKfTsKCnN0cnVjdCBhdWRpb190ZXN0X3BhdHRlcm5fdHlwZSB7CiB1bnNpZ25lZCBjaGFyIHZh
bHVlOwp9OwoKc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YV9mbGFncyB7CiB1aW50OF90IHRlc3Rf
cmVxdWVzdGVkIDoxOwogdWludDhfdCBkaXNhYmxlX3ZpZGVvIDoxOwp9OwoKc3RydWN0IGRwX2F1
ZGlvX3Rlc3RfZGF0YSB7Cgogc3RydWN0IGRwX2F1ZGlvX3Rlc3RfZGF0YV9mbGFncyBmbGFnczsK
IHVpbnQ4X3Qgc2FtcGxpbmdfcmF0ZTsKIHVpbnQ4X3QgY2hhbm5lbF9jb3VudDsKIHVpbnQ4X3Qg
cGF0dGVybl90eXBlOwogdWludDhfdCBwYXR0ZXJuX3BlcmlvZFs4XTsKfTsKCgp1bmlvbiBkcGNk
X2ZlY19jYXBhYmlsaXR5IHsKIHN0cnVjdCB7CiAgdWludDhfdCBGRUNfQ0FQQUJMRToxOwogIHVp
bnQ4X3QgVU5DT1JSRUNURURfQkxPQ0tfRVJST1JfQ09VTlRfQ0FQQUJMRToxOwogIHVpbnQ4X3Qg
Q09SUkVDVEVEX0JMT0NLX0VSUk9SX0NPVU5UX0NBUEFCTEU6MTsKICB1aW50OF90IEJJVF9FUlJP
Ul9DT1VOVF9DQVBBQkxFOjE7CiAgdWludDhfdCBSRVNFUlZFRDo0OwogfSBiaXRzOwogdWludDhf
dCByYXc7Cn07CgoKc3RydWN0IGRwY2RfZHNjX3N1cHBvcnQgewogdWludDhfdCBEU0NfU1VQUE9S
VCA6MTsKIHVpbnQ4X3QgRFNDX1BBU1NUSFJPVUdIX1NVUFBPUlQgOjE7CiB1aW50OF90IFJFU0VS
VkVEIDo2Owp9OwoKc3RydWN0IGRwY2RfZHNjX2FsZ29yaXRobV9yZXZpc2lvbiB7CiB1aW50OF90
IERTQ19WRVJTSU9OX01BSk9SIDo0OwogdWludDhfdCBEU0NfVkVSU0lPTl9NSU5PUiA6NDsKfTsK
CnN0cnVjdCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6ZSB7CiB1aW50OF90IFJDX0JMT0NL
X0JVRkZFUl9TSVpFIDoyOwogdWludDhfdCBSRVNFUlZFRCA6NjsKfTsKCnN0cnVjdCBkcGNkX2Rz
Y19zbGljZV9jYXBhYmlsaXR5MSB7CiB1aW50OF90IE9ORV9TTElDRV9QRVJfRFBfRFNDX1NJTktf
REVWSUNFIDoxOwogdWludDhfdCBUV09fU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7
CiB1aW50OF90IFJFU0VSVkVEIDoxOwogdWludDhfdCBGT1VSX1NMSUNFU19QRVJfRFBfRFNDX1NJ
TktfREVWSUNFIDoxOwogdWludDhfdCBTSVhfU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0Ug
OjE7CiB1aW50OF90IEVJR0hUX1NMSUNFU19QRVJfRFBfRFNDX1NJTktfREVWSUNFIDoxOwogdWlu
dDhfdCBURU5fU0xJQ0VTX1BFUl9EUF9EU0NfU0lOS19ERVZJQ0UgOjE7CiB1aW50OF90IFRXRUxW
RV9TTElDRVNfUEVSX0RQX0RTQ19TSU5LX0RFVklDRSA6MTsKfTsKCnN0cnVjdCBkcGNkX2RzY19s
aW5lX2J1ZmZlcl9iaXRfZGVwdGggewogdWludDhfdCBMSU5FX0JVRkZFUl9CSVRfREVQVEggOjQ7
CiB1aW50OF90IFJFU0VSVkVEIDo0Owp9OwoKc3RydWN0IGRwY2RfZHNjX2Jsb2NrX3ByZWRpY3Rp
b25fc3VwcG9ydCB7CiB1aW50OF90IEJMT0NLX1BSRURJQ1RJT05fU1VQUE9SVDoxOwogdWludDhf
dCBSRVNFUlZFRCA6NzsKfTsKCnN0cnVjdCBkcGNkX21heGltdW1fYml0c19wZXJfcGl4ZWxfc3Vw
cG9ydGVkX2J5X3RoZV9kZWNvbXByZXNzb3IgewogdWludDhfdCBNQVhJTVVNX0JJVFNfUEVSX1BJ
WEVMX1NVUFBPUlRFRF9CWV9USEVfREVDT01QUkVTU09SX0xPVyA6NzsKIHVpbnQ4X3QgTUFYSU1V
TV9CSVRTX1BFUl9QSVhFTF9TVVBQT1JURURfQllfVEhFX0RFQ09NUFJFU1NPUl9ISUdIIDo3Owog
dWludDhfdCBSRVNFUlZFRCA6MjsKfTsKCnN0cnVjdCBkcGNkX2RzY19kZWNvZGVyX2NvbG9yX2Zv
cm1hdF9jYXBhYmlsaXRpZXMgewogdWludDhfdCBSR0JfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgWV9D
Ql9DUl80NDRfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgWV9DQl9DUl9TSU1QTEVfNDIyX1NVUFBPUlQg
OjE7CiB1aW50OF90IFlfQ0JfQ1JfTkFUSVZFXzQyMl9TVVBQT1JUIDoxOwogdWludDhfdCBZX0NC
X0NSX05BVElWRV80MjBfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgUkVTRVJWRUQgOjM7Cn07CgpzdHJ1
Y3QgZHBjZF9kc2NfZGVjb2Rlcl9jb2xvcl9kZXB0aF9jYXBhYmlsaXRpZXMgewogdWludDhfdCBS
RVNFUlZFRDAgOjE7CiB1aW50OF90IEVJR0hUX0JJVFNfUEVSX0NPTE9SX1NVUFBPUlQgOjE7CiB1
aW50OF90IFRFTl9CSVRTX1BFUl9DT0xPUl9TVVBQT1JUIDoxOwogdWludDhfdCBUV0VMVkVfQklU
U19QRVJfQ09MT1JfU1VQUE9SVCA6MTsKIHVpbnQ4X3QgUkVTRVJWRUQxIDo0Owp9OwoKc3RydWN0
IGRwY2RfcGVha19kc2NfdGhyb3VnaHB1dF9kc2Nfc2luayB7CiB1aW50OF90IFRIUk9VR0hQVVRf
TU9ERV8wOjQ7CiB1aW50OF90IFRIUk9VR0hQVVRfTU9ERV8xOjQ7Cn07CgpzdHJ1Y3QgZHBjZF9k
c2Nfc2xpY2VfY2FwYWJpbGl0aWVzXzIgewogdWludDhfdCBTSVhURUVOX1NMSUNFU19QRVJfRFND
X1NJTktfREVWSUNFIDoxOwogdWludDhfdCBUV0VOVFlfU0xJQ0VTX1BFUl9EU0NfU0lOS19ERVZJ
Q0UgOjE7CiB1aW50OF90IFRXRU5UWUZPVVJfU0xJQ0VTX1BFUl9EU0NfU0lOS19ERVZJQ0UgOjE7
CiB1aW50OF90IFJFU0VSVkVEIDo1Owp9OwoKc3RydWN0IGRwY2RfYml0c19wZXJfcGl4ZWxfaW5j
cmVtZW50ewogdWludDhfdCBJTkNSRU1FTlRfT0ZfQklUU19QRVJfUElYRUxfU1VQUE9SVEVEIDoz
OwogdWludDhfdCBSRVNFUlZFRCA6NTsKfTsKdW5pb24gZHBjZF9kc2NfYmFzaWNfY2FwYWJpbGl0
aWVzIHsKIHN0cnVjdCB7CiAgc3RydWN0IGRwY2RfZHNjX3N1cHBvcnQgZHNjX3N1cHBvcnQ7CiAg
c3RydWN0IGRwY2RfZHNjX2FsZ29yaXRobV9yZXZpc2lvbiBkc2NfYWxnb3JpdGhtX3JldmlzaW9u
OwogIHN0cnVjdCBkcGNkX2RzY19yY19idWZmZXJfYmxvY2tfc2l6ZSBkc2NfcmNfYnVmZmVyX2Js
b2NrX3NpemU7CiAgdWludDhfdCBkc2NfcmNfYnVmZmVyX3NpemU7CiAgc3RydWN0IGRwY2RfZHNj
X3NsaWNlX2NhcGFiaWxpdHkxIGRzY19zbGljZV9jYXBhYmlsaXRpZXNfMTsKICBzdHJ1Y3QgZHBj
ZF9kc2NfbGluZV9idWZmZXJfYml0X2RlcHRoIGRzY19saW5lX2J1ZmZlcl9iaXRfZGVwdGg7CiAg
c3RydWN0IGRwY2RfZHNjX2Jsb2NrX3ByZWRpY3Rpb25fc3VwcG9ydCBkc2NfYmxvY2tfcHJlZGlj
dGlvbl9zdXBwb3J0OwogIHN0cnVjdCBkcGNkX21heGltdW1fYml0c19wZXJfcGl4ZWxfc3VwcG9y
dGVkX2J5X3RoZV9kZWNvbXByZXNzb3IgbWF4aW11bV9iaXRzX3Blcl9waXhlbF9zdXBwb3J0ZWRf
YnlfdGhlX2RlY29tcHJlc3NvcjsKICBzdHJ1Y3QgZHBjZF9kc2NfZGVjb2Rlcl9jb2xvcl9mb3Jt
YXRfY2FwYWJpbGl0aWVzIGRzY19kZWNvZGVyX2NvbG9yX2Zvcm1hdF9jYXBhYmlsaXRpZXM7CiAg
c3RydWN0IGRwY2RfZHNjX2RlY29kZXJfY29sb3JfZGVwdGhfY2FwYWJpbGl0aWVzIGRzY19kZWNv
ZGVyX2NvbG9yX2RlcHRoX2NhcGFiaWxpdGllczsKICBzdHJ1Y3QgZHBjZF9wZWFrX2RzY190aHJv
dWdocHV0X2RzY19zaW5rIHBlYWtfZHNjX3Rocm91Z2hwdXRfZHNjX3Npbms7CiAgdWludDhfdCBk
c2NfbWF4aW11bV9zbGljZV93aWR0aDsKICBzdHJ1Y3QgZHBjZF9kc2Nfc2xpY2VfY2FwYWJpbGl0
aWVzXzIgZHNjX3NsaWNlX2NhcGFiaWxpdGllc18yOwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7CiAgc3Ry
dWN0IGRwY2RfYml0c19wZXJfcGl4ZWxfaW5jcmVtZW50IGJpdHNfcGVyX3BpeGVsX2luY3JlbWVu
dDsKIH0gZmllbGRzOwogdWludDhfdCByYXdbMTZdOwp9OwoKdW5pb24gZHBjZF9kc2NfZXh0X2Nh
cGFiaWxpdGllcyB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgQlJBTkNIX09WRVJBTExfVEhST1VHSFBV
VF8wOwogIHVpbnQ4X3QgQlJBTkNIX09WRVJBTExfVEhST1VHSFBVVF8xOwogIHVpbnQ4X3QgQlJB
TkNIX01BWF9MSU5FX1dJRFRIOwogfSBmaWVsZHM7CiB1aW50OF90IHJhd1szXTsKfTsKCnN0cnVj
dCBkcGNkX2RzY19jYXBhYmlsaXRpZXMgewogdW5pb24gZHBjZF9kc2NfYmFzaWNfY2FwYWJpbGl0
aWVzIGRzY19iYXNpY19jYXBzOwogdW5pb24gZHBjZF9kc2NfZXh0X2NhcGFiaWxpdGllcyBkc2Nf
ZXh0X2NhcHM7Cn07CiMgMzYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kY190eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKIyAzNCAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVz
LmgiCmVudW0gc2lnbmFsX3R5cGUgewogU0lHTkFMX1RZUEVfTk9ORSA9IDBMLAogU0lHTkFMX1RZ
UEVfRFZJX1NJTkdMRV9MSU5LID0gKDEgPDwgMCksCiBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5L
ID0gKDEgPDwgMSksCiBTSUdOQUxfVFlQRV9IRE1JX1RZUEVfQSA9ICgxIDw8IDIpLAogU0lHTkFM
X1RZUEVfTFZEUyA9ICgxIDw8IDMpLAogU0lHTkFMX1RZUEVfUkdCID0gKDEgPDwgNCksCiBTSUdO
QUxfVFlQRV9ESVNQTEFZX1BPUlQgPSAoMSA8PCA1KSwKIFNJR05BTF9UWVBFX0RJU1BMQVlfUE9S
VF9NU1QgPSAoMSA8PCA2KSwKIFNJR05BTF9UWVBFX0VEUCA9ICgxIDw8IDcpLAogU0lHTkFMX1RZ
UEVfVklSVFVBTCA9ICgxIDw8IDkpLAp9OwoKCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygo
X19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVf
Xygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGNfaXNfaGRtaV90bWRzX3NpZ25hbChl
bnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKewogcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVf
SERNSV9UWVBFX0EpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2hkbWlfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUg
c2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9IRE1JX1RZUEVfQSk7Cn0K
CnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0
ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikp
IGJvb2wgZGNfaXNfZHBfc3N0X3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKewogcmV0
dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUIHx8CiAgc2lnbmFsID09IFNJ
R05BTF9UWVBFX0VEUCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s
aW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5z
dHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgZGNfaXNfZHBfc2lnbmFsKGVudW0gc2lnbmFsX3R5cGUg
c2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZX1BPUlQgfHwK
ICBzaWduYWwgPT0gU0lHTkFMX1RZUEVfRURQIHx8CiAgc2lnbmFsID09IFNJR05BTF9UWVBFX0RJ
U1BMQVlfUE9SVF9NU1QpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lu
bGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2lu
c3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2VtYmVkZGVkX3NpZ25hbChlbnVtIHNpZ25h
bF90eXBlIHNpZ25hbCkKewogcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfRURQIHx8IHNp
Z25hbCA9PSBTSUdOQUxfVFlQRV9MVkRTKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkY19pc19sdmRzX3NpZ25hbChlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbCkKewogcmV0dXJuIChzaWduYWwgPT0gU0lHTkFMX1RZUEVfTFZE
Uyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZGNfaXNfZHZpX3NpZ25hbChlbnVtIHNpZ25hbF90eXBlIHNpZ25hbCkKewog
c3dpdGNoIChzaWduYWwpIHsKIGNhc2UgU0lHTkFMX1RZUEVfRFZJX1NJTkdMRV9MSU5LOgogY2Fz
ZSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5LOgogIHJldHVybiB0cnVlOwogYnJlYWs7CiBkZWZh
dWx0OgogIHJldHVybiBmYWxzZTsKIH0KfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBkY19pc19kdmlfc2luZ2xlX2xpbmtfc2ln
bmFsKGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxf
VFlQRV9EVklfU0lOR0xFX0xJTkspOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9f
Z251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18o
KG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2R1YWxfbGlua19zaWduYWwoZW51
bSBzaWduYWxfdHlwZSBzaWduYWwpCnsKIHJldHVybiAoc2lnbmFsID09IFNJR05BTF9UWVBFX0RW
SV9EVUFMX0xJTkspOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGlu
ZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3Ry
dW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX2F1ZGlvX2NhcGFibGVfc2lnbmFsKGVudW0gc2ln
bmFsX3R5cGUgc2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9ESVNQTEFZ
X1BPUlQgfHwKICBzaWduYWwgPT0gU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUX01TVCB8fAogIGRj
X2lzX2hkbWlfc2lnbmFsKHNpZ25hbCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGRjX2lzX3ZpcnR1YWxfc2lnbmFsKGVu
dW0gc2lnbmFsX3R5cGUgc2lnbmFsKQp7CiByZXR1cm4gKHNpZ25hbCA9PSBTSUdOQUxfVFlQRV9W
SVJUVUFMKTsKfQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZGNfaHdfdHlwZXMuaCIgMgojIDQ1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZGNfaHdfdHlwZXMuaCIKdW5pb24gbGFyZ2VfaW50ZWdlciB7CiBzdHJ1Y3Qg
ewogIHVpbnQzMl90IGxvd19wYXJ0OwogIGludDMyX3QgaGlnaF9wYXJ0OwogfTsKCiBzdHJ1Y3Qg
ewogIHVpbnQzMl90IGxvd19wYXJ0OwogIGludDMyX3QgaGlnaF9wYXJ0OwogfSB1OwoKIGludDY0
X3QgcXVhZF9wYXJ0Owp9OwoKCgplbnVtIGRjX3BsYW5lX2FkZHJfdHlwZSB7CiBQTE5fQUREUl9U
WVBFX0dSQVBISUNTID0gMCwKIFBMTl9BRERSX1RZUEVfR1JQSF9TVEVSRU8sCiBQTE5fQUREUl9U
WVBFX1ZJREVPX1BST0dSRVNTSVZFLAp9OwoKc3RydWN0IGRjX3BsYW5lX2FkZHJlc3MgewogZW51
bSBkY19wbGFuZV9hZGRyX3R5cGUgdHlwZTsKIGJvb2wgdG16X3N1cmZhY2U7CiB1bmlvbiB7CiAg
c3RydWN0ewogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGFkZHI7CiAgIHVuaW9uIGxhcmdlX2ludGVn
ZXIgbWV0YV9hZGRyOwogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGRjY19jb25zdF9jb2xvcjsKICB9
IGdycGg7CgoKICBzdHJ1Y3QgewogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGxlZnRfYWRkcjsKICAg
dW5pb24gbGFyZ2VfaW50ZWdlciBsZWZ0X21ldGFfYWRkcjsKICAgdW5pb24gbGFyZ2VfaW50ZWdl
ciBsZWZ0X2RjY19jb25zdF9jb2xvcjsKCiAgIHVuaW9uIGxhcmdlX2ludGVnZXIgcmlnaHRfYWRk
cjsKICAgdW5pb24gbGFyZ2VfaW50ZWdlciByaWdodF9tZXRhX2FkZHI7CiAgIHVuaW9uIGxhcmdl
X2ludGVnZXIgcmlnaHRfZGNjX2NvbnN0X2NvbG9yOwoKICB9IGdycGhfc3RlcmVvOwoKCiAgc3Ry
dWN0IHsKICAgdW5pb24gbGFyZ2VfaW50ZWdlciBsdW1hX2FkZHI7CiAgIHVuaW9uIGxhcmdlX2lu
dGVnZXIgbHVtYV9tZXRhX2FkZHI7CiAgIHVuaW9uIGxhcmdlX2ludGVnZXIgbHVtYV9kY2NfY29u
c3RfY29sb3I7CgogICB1bmlvbiBsYXJnZV9pbnRlZ2VyIGNocm9tYV9hZGRyOwogICB1bmlvbiBs
YXJnZV9pbnRlZ2VyIGNocm9tYV9tZXRhX2FkZHI7CiAgIHVuaW9uIGxhcmdlX2ludGVnZXIgY2hy
b21hX2RjY19jb25zdF9jb2xvcjsKICB9IHZpZGVvX3Byb2dyZXNzaXZlOwogfTsKCiB1bmlvbiBs
YXJnZV9pbnRlZ2VyIHBhZ2VfdGFibGVfYmFzZTsKCiB1aW50OF90IHZtaWQ7Cn07CgpzdHJ1Y3Qg
ZGNfc2l6ZSB7CiBpbnQgd2lkdGg7CiBpbnQgaGVpZ2h0Owp9OwoKc3RydWN0IHJlY3QgewogaW50
IHg7CiBpbnQgeTsKIGludCB3aWR0aDsKIGludCBoZWlnaHQ7Cn07CgpzdHJ1Y3QgcGxhbmVfc2l6
ZSB7CgoKCgogaW50IHN1cmZhY2VfcGl0Y2g7CiBpbnQgY2hyb21hX3BpdGNoOwogc3RydWN0IHJl
Y3Qgc3VyZmFjZV9zaXplOwogc3RydWN0IHJlY3QgY2hyb21hX3NpemU7Cn07CgpzdHJ1Y3QgZGNf
cGxhbmVfZGNjX3BhcmFtIHsKIGJvb2wgZW5hYmxlOwoKIGludCBtZXRhX3BpdGNoOwogYm9vbCBp
bmRlcGVuZGVudF82NGJfYmxrczsKCiBpbnQgbWV0YV9waXRjaF9jOwogYm9vbCBpbmRlcGVuZGVu
dF82NGJfYmxrc19jOwp9OwoKCmVudW0gc3VyZmFjZV9waXhlbF9mb3JtYXQgewogU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfR1JQSF9CRUdJTiA9IDAsCgogU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9Q
QUxFVEFfMjU2X0NPTE9SUyA9CiAgU1VSRkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9CRUdJTiwKCiBT
VVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FSR0IxNTU1LAoKIFNVUkZBQ0VfUElYRUxfRk9STUFU
X0dSUEhfUkdCNTY1LAoKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQVJHQjg4ODgsCgogU1VS
RkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BQkdSODg4OCwKCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9H
UlBIX0FSR0IyMTAxMDEwLAoKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjIxMDEwMTAs
CgoKCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0FCR1IyMTAxMDEwX1hSX0JJQVMsCgogU1VS
RkFDRV9QSVhFTF9GT1JNQVRfR1JQSF9BUkdCMTYxNjE2MTYsCgogU1VSRkFDRV9QSVhFTF9GT1JN
QVRfR1JQSF9BUkdCMTYxNjE2MTZGLAoKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQUJHUjE2
MTYxNjE2RiwKCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9HUlBIX1JHQjExMTExMF9GSVgsCiBTVVJG
QUNFX1BJWEVMX0ZPUk1BVF9HUlBIX0JHUjEwMTExMV9GSVgsCiBTVVJGQUNFX1BJWEVMX0ZPUk1B
VF9HUlBIX1JHQjExMTExMF9GTE9BVCwKIFNVUkZBQ0VfUElYRUxfRk9STUFUX0dSUEhfQkdSMTAx
MTExX0ZMT0FULAogU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fQkVHSU4sCiBTVVJGQUNFX1BJ
WEVMX0ZPUk1BVF9WSURFT180MjBfWUNiQ3IgPQogIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJREVP
X0JFR0lOLAogU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9fNDIwX1lDckNiLAogU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfVklERU9fNDIwXzEwYnBjX1lDYkNyLAogU1VSRkFDRV9QSVhFTF9GT1JNQVRf
VklERU9fNDIwXzEwYnBjX1lDckNiLAogIFNVUkZBQ0VfUElYRUxfRk9STUFUX1NVQlNBTVBMRV9F
TkQsCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19BQ3JZQ2IyMTAxMDEwLAogU1VSRkFDRV9Q
SVhFTF9GT1JNQVRfVklERU9fQ3JZQ2JBMTAxMDEwMiwKIFNVUkZBQ0VfUElYRUxfRk9STUFUX1ZJ
REVPX0FZQ3JDYjg4ODgsCiBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9JTlZBTElECgoKfTsKCgoKCmVu
dW0gcGl4ZWxfZm9ybWF0IHsKCiBQSVhFTF9GT1JNQVRfVU5JTklUSUFMSVpFRCwKIFBJWEVMX0ZP
Uk1BVF9JTkRFWDgsCiBQSVhFTF9GT1JNQVRfUkdCNTY1LAogUElYRUxfRk9STUFUX0FSR0I4ODg4
LAogUElYRUxfRk9STUFUX0FSR0IyMTAxMDEwLAogUElYRUxfRk9STUFUX0FSR0IyMTAxMDEwX1hS
QklBUywKIFBJWEVMX0ZPUk1BVF9GUDE2LAoKIFBJWEVMX0ZPUk1BVF80MjBCUFA4LAogUElYRUxf
Rk9STUFUXzQyMEJQUDEwLAoKIFBJWEVMX0ZPUk1BVF9JTlZBTElELAoKIFBJWEVMX0ZPUk1BVF9H
UlBIX0JFR0lOID0gUElYRUxfRk9STUFUX0lOREVYOCwKIFBJWEVMX0ZPUk1BVF9HUlBIX0VORCA9
IFBJWEVMX0ZPUk1BVF9GUDE2LAogUElYRUxfRk9STUFUX1ZJREVPX0JFR0lOID0gUElYRUxfRk9S
TUFUXzQyMEJQUDgsCiBQSVhFTF9GT1JNQVRfVklERU9fRU5EID0gUElYRUxfRk9STUFUXzQyMEJQ
UDEwLAogUElYRUxfRk9STUFUX1VOS05PV04KfTsKCmVudW0gdGlsZV9zcGxpdF92YWx1ZXMgewog
RENfRElTUExBWV9NSUNST19USUxJTkcgPSAweDAsCiBEQ19USElOX01JQ1JPX1RJTElORyA9IDB4
MSwKIERDX0RFUFRIX01JQ1JPX1RJTElORyA9IDB4MiwKIERDX1JPVEFURURfTUlDUk9fVElMSU5H
ID0gMHgzLAp9OwoKZW51bSB0cmlwbGVCdWZmZXJfZW5hYmxlIHsKIERDX1RSSVBMRUJVRkZFUl9E
SVNBQkxFID0gMHgwLAogRENfVFJJUExFQlVGRkVSX0VOQUJMRSA9IDB4MSwKfTsKCgoKCmVudW0g
YXJyYXlfbW9kZV92YWx1ZXMgewogRENfQVJSQVlfTElORUFSX0dFTkVSQUwgPSAwLAogRENfQVJS
QVlfTElORUFSX0FMTElHTkVELAogRENfQVJSQVlfMURfVElMRURfVEhJTjEsCiBEQ19BUlJBWV8x
RF9USUxFRF9USElDSywKIERDX0FSUkFZXzJEX1RJTEVEX1RISU4xLAogRENfQVJSQVlfUFJUX1RJ
TEVEX1RISU4xLAogRENfQVJSQVlfUFJUXzJEX1RJTEVEX1RISU4xLAogRENfQVJSQVlfMkRfVElM
RURfVEhJQ0ssCiBEQ19BUlJBWV8yRF9USUxFRF9YX1RISUNLLAogRENfQVJSQVlfUFJUX1RJTEVE
X1RISUNLLAogRENfQVJSQVlfUFJUXzJEX1RJTEVEX1RISUNLLAogRENfQVJSQVlfUFJUXzNEX1RJ
TEVEX1RISU4xLAogRENfQVJSQVlfM0RfVElMRURfVEhJTjEsCiBEQ19BUlJBWV8zRF9USUxFRF9U
SElDSywKIERDX0FSUkFZXzNEX1RJTEVEX1hfVEhJQ0ssCiBEQ19BUlJBWV9QUlRfM0RfVElMRURf
VEhJQ0ssCn07CgplbnVtIHRpbGVfbW9kZV92YWx1ZXMgewogRENfQUREUl9TVVJGX01JQ1JPX1RJ
TElOR19ESVNQTEFZID0gMHgwLAogRENfQUREUl9TVVJGX01JQ1JPX1RJTElOR19OT05fRElTUExB
WSA9IDB4MSwKfTsKCmVudW0gc3dpenpsZV9tb2RlX3ZhbHVlcyB7CiBEQ19TV19MSU5FQVIgPSAw
LAogRENfU1dfMjU2Ql9TID0gMSwKIERDX1NXXzI1Nl9EID0gMiwKIERDX1NXXzI1Nl9SID0gMywK
IERDX1NXXzRLQl9TID0gNSwKIERDX1NXXzRLQl9EID0gNiwKIERDX1NXXzRLQl9SID0gNywKIERD
X1NXXzY0S0JfUyA9IDksCiBEQ19TV182NEtCX0QgPSAxMCwKIERDX1NXXzY0S0JfUiA9IDExLAog
RENfU1dfVkFSX1MgPSAxMywKIERDX1NXX1ZBUl9EID0gMTQsCiBEQ19TV19WQVJfUiA9IDE1LAog
RENfU1dfNjRLQl9TX1QgPSAxNywKIERDX1NXXzY0S0JfRF9UID0gMTgsCiBEQ19TV180S0JfU19Y
ID0gMjEsCiBEQ19TV180S0JfRF9YID0gMjIsCiBEQ19TV180S0JfUl9YID0gMjMsCiBEQ19TV182
NEtCX1NfWCA9IDI1LAogRENfU1dfNjRLQl9EX1ggPSAyNiwKIERDX1NXXzY0S0JfUl9YID0gMjcs
CiBEQ19TV19WQVJfU19YID0gMjksCiBEQ19TV19WQVJfRF9YID0gMzAsCiBEQ19TV19WQVJfUl9Y
ID0gMzEsCiBEQ19TV19NQVggPSAzMiwKIERDX1NXX1VOS05PV04gPSBEQ19TV19NQVgKfTsKCnVu
aW9uIGRjX3RpbGluZ19pbmZvIHsKCiBzdHJ1Y3QgewoKCgoKCiAgdW5zaWduZWQgaW50IG51bV9i
YW5rczsKCgoKCgogIHVuc2lnbmVkIGludCBiYW5rX3dpZHRoOwogIHVuc2lnbmVkIGludCBiYW5r
X3dpZHRoX2M7CgoKCgoKICB1bnNpZ25lZCBpbnQgYmFua19oZWlnaHQ7CiAgdW5zaWduZWQgaW50
IGJhbmtfaGVpZ2h0X2M7CgoKCiAgdW5zaWduZWQgaW50IHRpbGVfYXNwZWN0OwogIHVuc2lnbmVk
IGludCB0aWxlX2FzcGVjdF9jOwojIDMxNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCiAgZW51bSB0aWxlX3NwbGl0X3ZhbHVlcyB0aWxl
X3NwbGl0OwogIGVudW0gdGlsZV9zcGxpdF92YWx1ZXMgdGlsZV9zcGxpdF9jOwoKCgoKCgogIGVu
dW0gdGlsZV9tb2RlX3ZhbHVlcyB0aWxlX21vZGU7CiAgZW51bSB0aWxlX21vZGVfdmFsdWVzIHRp
bGVfbW9kZV9jOwoKCgoKCiAgdW5zaWduZWQgaW50IHBpcGVfY29uZmlnOwojIDM0MSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCiAgZW51
bSBhcnJheV9tb2RlX3ZhbHVlcyBhcnJheV9tb2RlOwogfSBnZng4OwoKIHN0cnVjdCB7CiAgZW51
bSBzd2l6emxlX21vZGVfdmFsdWVzIHN3aXp6bGU7CiAgdW5zaWduZWQgaW50IG51bV9waXBlczsK
ICB1bnNpZ25lZCBpbnQgbWF4X2NvbXByZXNzZWRfZnJhZ3M7CiAgdW5zaWduZWQgaW50IHBpcGVf
aW50ZXJsZWF2ZTsKCiAgdW5zaWduZWQgaW50IG51bV9iYW5rczsKICB1bnNpZ25lZCBpbnQgbnVt
X3NoYWRlcl9lbmdpbmVzOwogIHVuc2lnbmVkIGludCBudW1fcmJfcGVyX3NlOwogIGJvb2wgc2hh
ZGVyRW5hYmxlOwoKICBib29sIG1ldGFfbGluZWFyOwogIGJvb2wgcmJfYWxpZ25lZDsKICBib29s
IHBpcGVfYWxpZ25lZDsKIH0gZ2Z4OTsKfTsKCgplbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHsKIFJP
VEFUSU9OX0FOR0xFXzAgPSAwLAogUk9UQVRJT05fQU5HTEVfOTAsCiBST1RBVElPTl9BTkdMRV8x
ODAsCiBST1RBVElPTl9BTkdMRV8yNzAsCiBST1RBVElPTl9BTkdMRV9DT1VOVAp9OwoKZW51bSBk
Y19zY2FuX2RpcmVjdGlvbiB7CiBTQ0FOX0RJUkVDVElPTl9VTktOT1dOID0gMCwKIFNDQU5fRElS
RUNUSU9OX0hPUklaT05UQUwgPSAxLAogU0NBTl9ESVJFQ1RJT05fVkVSVElDQUwgPSAyLAp9OwoK
c3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiB7CiB1aW50MzJfdCB4OwogdWludDMyX3QgeTsKCiB1
aW50MzJfdCB4X2hvdHNwb3Q7CiB1aW50MzJfdCB5X2hvdHNwb3Q7CgoKCgogYm9vbCBlbmFibGU7
Cgp9OwoKc3RydWN0IGRjX2N1cnNvcl9taV9wYXJhbSB7CiB1bnNpZ25lZCBpbnQgcGl4ZWxfY2xr
X2toejsKIHVuc2lnbmVkIGludCByZWZfY2xrX2toejsKIHN0cnVjdCByZWN0IHZpZXdwb3J0Owog
c3RydWN0IGZpeGVkMzFfMzIgaF9zY2FsZV9yYXRpbzsKIHN0cnVjdCBmaXhlZDMxXzMyIHZfc2Nh
bGVfcmF0aW87CiBlbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwogYm9vbCBtaXJyb3I7
Cn07CgoKCmVudW0gewogR0FNTUFfUkdCXzI1Nl9FTlRSSUVTID0gMjU2LAogR0FNTUFfUkdCX0ZM
T0FUXzEwMjRfRU5UUklFUyA9IDEwMjQsCiBHQU1NQV9DU19URk1fMURfRU5UUklFUyA9IDQwOTYs
CiBHQU1NQV9DVVNUT01fRU5UUklFUyA9IDQwOTYsCiBHQU1NQV9NQVhfRU5UUklFUyA9IDQwOTYK
fTsKCmVudW0gZGNfZ2FtbWFfdHlwZSB7CiBHQU1NQV9SR0JfMjU2ID0gMSwKIEdBTU1BX1JHQl9G
TE9BVF8xMDI0ID0gMiwKIEdBTU1BX0NTX1RGTV8xRCA9IDMsCiBHQU1NQV9DVVNUT00gPSA0LAp9
OwoKc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gewogdWludDE2X3QgbWF0cml4WzEyXTsKIGJvb2wg
ZW5hYmxlX2FkanVzdG1lbnQ7Cn07CgpzdHJ1Y3QgZGNfcmdiX2ZpeGVkIHsKIHN0cnVjdCBmaXhl
ZDMxXzMyIHJlZDsKIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuOwogc3RydWN0IGZpeGVkMzFfMzIg
Ymx1ZTsKfTsKCnN0cnVjdCBkY19nYW1tYSB7CiBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKIGVudW0g
ZGNfZ2FtbWFfdHlwZSB0eXBlOwogdW5zaWduZWQgaW50IG51bV9lbnRyaWVzOwoKIHN0cnVjdCBk
Y19nYW1tYV9lbnRyaWVzIHsKICBzdHJ1Y3QgZml4ZWQzMV8zMiByZWRbR0FNTUFfTUFYX0VOVFJJ
RVNdOwogIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuW0dBTU1BX01BWF9FTlRSSUVTXTsKICBzdHJ1
Y3QgZml4ZWQzMV8zMiBibHVlW0dBTU1BX01BWF9FTlRSSUVTXTsKIH0gZW50cmllczsKCgogc3Ry
dWN0IGRjX2NvbnRleHQgKmN0eDsKCgoKCiBib29sIGlzX2lkZW50aXR5Owp9OwojIDQ1NiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2h3X3R5cGVzLmgiCmVu
dW0gZGNfY3Vyc29yX2NvbG9yX2Zvcm1hdCB7CiBDVVJTT1JfTU9ERV9NT05PLAogQ1VSU09SX01P
REVfQ09MT1JfMUJJVF9BTkQsCiBDVVJTT1JfTU9ERV9DT0xPUl9QUkVfTVVMVElQTElFRF9BTFBI
QSwKIENVUlNPUl9NT0RFX0NPTE9SX1VOX1BSRV9NVUxUSVBMSUVEX0FMUEhBLAogQ1VSU09SX01P
REVfQ09MT1JfNjRCSVRfRlBfUFJFX01VTFRJUExJRUQsCiBDVVJTT1JfTU9ERV9DT0xPUl82NEJJ
VF9GUF9VTl9QUkVfTVVMVElQTElFRAp9OwoKCgoKCgoKdW5pb24gZGNfY3Vyc29yX2F0dHJpYnV0
ZV9mbGFncyB7CiBzdHJ1Y3QgewogIHVpbnQzMl90IEVOQUJMRV9NQUdOSUZJQ0FUSU9OOjE7CiAg
dWludDMyX3QgSU5WRVJTRV9UUkFOU1BBUkVOVF9DTEFNUElORzoxOwogIHVpbnQzMl90IEhPUkla
T05UQUxfTUlSUk9SOjE7CiAgdWludDMyX3QgVkVSVElDQUxfTUlSUk9SOjE7CiAgdWludDMyX3Qg
SU5WRVJUX1BJWEVMX0RBVEE6MTsKICB1aW50MzJfdCBaRVJPX0VYUEFOU0lPTjoxOwogIHVpbnQz
Ml90IE1JTl9NQVhfSU5WRVJUOjE7CiAgdWludDMyX3QgRU5BQkxFX0NVUlNPUl9ERUdBTU1BOjE7
CiAgdWludDMyX3QgUkVTRVJWRUQ6MjQ7CiB9IGJpdHM7CiB1aW50MzJfdCB2YWx1ZTsKfTsKCnN0
cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyB7CiB1bmlvbiBsYXJnZV9pbnRlZ2VyIGFkZHJlc3M7
CiB1aW50MzJfdCBwaXRjaDsKCgogdWludDMyX3Qgd2lkdGg7CiB1aW50MzJfdCBoZWlnaHQ7Cgog
ZW51bSBkY19jdXJzb3JfY29sb3JfZm9ybWF0IGNvbG9yX2Zvcm1hdDsKIHVpbnQzMl90IHNkcl93
aGl0ZV9sZXZlbDsKCgogZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbl9hbmdsZTsKCiB1
bmlvbiBkY19jdXJzb3JfYXR0cmlidXRlX2ZsYWdzIGF0dHJpYnV0ZV9mbGFnczsKfTsKCnN0cnVj
dCBkcHBfY3Vyc29yX2F0dHJpYnV0ZXMgewogaW50IGJpYXM7CiBpbnQgc2NhbGU7Cn07CgoKCmVu
dW0gZGNfY29sb3Jfc3BhY2UgewogQ09MT1JfU1BBQ0VfVU5LTk9XTiwKIENPTE9SX1NQQUNFX1NS
R0IsCiBDT0xPUl9TUEFDRV9YUl9SR0IsCiBDT0xPUl9TUEFDRV9TUkdCX0xJTUlURUQsCiBDT0xP
Ul9TUEFDRV9NU1JFRl9TQ1JHQiwKIENPTE9SX1NQQUNFX1lDQkNSNjAxLAogQ09MT1JfU1BBQ0Vf
WUNCQ1I3MDksCiBDT0xPUl9TUEFDRV9YVl9ZQ0NfNzA5LAogQ09MT1JfU1BBQ0VfWFZfWUNDXzYw
MSwKIENPTE9SX1NQQUNFX1lDQkNSNjAxX0xJTUlURUQsCiBDT0xPUl9TUEFDRV9ZQ0JDUjcwOV9M
SU1JVEVELAogQ09MT1JfU1BBQ0VfMjAyMF9SR0JfRlVMTFJBTkdFLAogQ09MT1JfU1BBQ0VfMjAy
MF9SR0JfTElNSVRFRFJBTkdFLAogQ09MT1JfU1BBQ0VfMjAyMF9ZQ0JDUiwKIENPTE9SX1NQQUNF
X0FET0JFUkdCLAogQ09MT1JfU1BBQ0VfRENJUDMsCiBDT0xPUl9TUEFDRV9ESVNQTEFZTkFUSVZF
LAogQ09MT1JfU1BBQ0VfRE9MQllWSVNJT04sCiBDT0xPUl9TUEFDRV9BUFBDVFJMLAogQ09MT1Jf
U1BBQ0VfQ1VTVE9NUE9JTlRTLAogQ09MT1JfU1BBQ0VfWUNCQ1I3MDlfQkxBQ0ssCn07CgplbnVt
IGRjX2RpdGhlcl9vcHRpb24gewogRElUSEVSX09QVElPTl9ERUZBVUxULAogRElUSEVSX09QVElP
Tl9ESVNBQkxFLAogRElUSEVSX09QVElPTl9GTTYsCiBESVRIRVJfT1BUSU9OX0ZNOCwKIERJVEhF
Ul9PUFRJT05fRk0xMCwKIERJVEhFUl9PUFRJT05fU1BBVElBTDZfRlJBTUVfUkFORE9NLAogRElU
SEVSX09QVElPTl9TUEFUSUFMOF9GUkFNRV9SQU5ET00sCiBESVRIRVJfT1BUSU9OX1NQQVRJQUwx
MF9GUkFNRV9SQU5ET00sCiBESVRIRVJfT1BUSU9OX1NQQVRJQUw2LAogRElUSEVSX09QVElPTl9T
UEFUSUFMOCwKIERJVEhFUl9PUFRJT05fU1BBVElBTDEwLAogRElUSEVSX09QVElPTl9UUlVONiwK
IERJVEhFUl9PUFRJT05fVFJVTjgsCiBESVRIRVJfT1BUSU9OX1RSVU4xMCwKIERJVEhFUl9PUFRJ
T05fVFJVTjEwX1NQQVRJQUw4LAogRElUSEVSX09QVElPTl9UUlVOMTBfU1BBVElBTDYsCiBESVRI
RVJfT1BUSU9OX1RSVU4xMF9GTTgsCiBESVRIRVJfT1BUSU9OX1RSVU4xMF9GTTYsCiBESVRIRVJf
T1BUSU9OX1RSVU4xMF9TUEFUSUFMOF9GTTYsCiBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GTTgs
CiBESVRIRVJfT1BUSU9OX1NQQVRJQUwxMF9GTTYsCiBESVRIRVJfT1BUSU9OX1RSVU44X1NQQVRJ
QUw2LAogRElUSEVSX09QVElPTl9UUlVOOF9GTTYsCiBESVRIRVJfT1BUSU9OX1NQQVRJQUw4X0ZN
NiwKIERJVEhFUl9PUFRJT05fTUFYID0gRElUSEVSX09QVElPTl9TUEFUSUFMOF9GTTYsCiBESVRI
RVJfT1BUSU9OX0lOVkFMSUQKfTsKCmVudW0gZGNfcXVhbnRpemF0aW9uX3JhbmdlIHsKIFFVQU5U
SVpBVElPTl9SQU5HRV9VTktOT1dOLAogUVVBTlRJWkFUSU9OX1JBTkdFX0ZVTEwsCiBRVUFOVEla
QVRJT05fUkFOR0VfTElNSVRFRAp9OwoKZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiB7CiBEWU5f
RVhQQU5TSU9OX0FVVE8sCiBEWU5fRVhQQU5TSU9OX0RJU0FCTEUKfTsKCgoKCnN0cnVjdCBzY2Fs
aW5nX3RhcHMgewogdWludDMyX3Qgdl90YXBzOwogdWludDMyX3QgaF90YXBzOwogdWludDMyX3Qg
dl90YXBzX2M7CiB1aW50MzJfdCBoX3RhcHNfYzsKIGJvb2wgaW50ZWdlcl9zY2FsaW5nOwp9OwoK
ZW51bSBkY190aW1pbmdfc3RhbmRhcmQgewogRENfVElNSU5HX1NUQU5EQVJEX1VOREVGSU5FRCwK
IERDX1RJTUlOR19TVEFOREFSRF9ETVQsCiBEQ19USU1JTkdfU1RBTkRBUkRfR1RGLAogRENfVElN
SU5HX1NUQU5EQVJEX0NWVCwKIERDX1RJTUlOR19TVEFOREFSRF9DVlRfUkIsCiBEQ19USU1JTkdf
U1RBTkRBUkRfQ0VBNzcwLAogRENfVElNSU5HX1NUQU5EQVJEX0NFQTg2MSwKIERDX1RJTUlOR19T
VEFOREFSRF9IRE1JLAogRENfVElNSU5HX1NUQU5EQVJEX1RWX05UU0MsCiBEQ19USU1JTkdfU1RB
TkRBUkRfVFZfTlRTQ19KLAogRENfVElNSU5HX1NUQU5EQVJEX1RWX1BBTCwKIERDX1RJTUlOR19T
VEFOREFSRF9UVl9QQUxfTSwKIERDX1RJTUlOR19TVEFOREFSRF9UVl9QQUxfQ04sCiBEQ19USU1J
TkdfU1RBTkRBUkRfVFZfU0VDQU0sCiBEQ19USU1JTkdfU1RBTkRBUkRfRVhQTElDSVQsCgogRENf
VElNSU5HX1NUQU5EQVJEX1VTRVJfT1ZFUlJJREUsCgogRENfVElNSU5HX1NUQU5EQVJEX01BWAp9
OwoKZW51bSBkY19jb2xvcl9kZXB0aCB7CiBDT0xPUl9ERVBUSF9VTkRFRklORUQsCiBDT0xPUl9E
RVBUSF82NjYsCiBDT0xPUl9ERVBUSF84ODgsCiBDT0xPUl9ERVBUSF8xMDEwMTAsCiBDT0xPUl9E
RVBUSF8xMjEyMTIsCiBDT0xPUl9ERVBUSF8xNDE0MTQsCiBDT0xPUl9ERVBUSF8xNjE2MTYsCiBD
T0xPUl9ERVBUSF85OTksCiBDT0xPUl9ERVBUSF8xMTExMTEsCiBDT0xPUl9ERVBUSF9DT1VOVAp9
OwoKZW51bSBkY19waXhlbF9lbmNvZGluZyB7CiBQSVhFTF9FTkNPRElOR19VTkRFRklORUQsCiBQ
SVhFTF9FTkNPRElOR19SR0IsCiBQSVhFTF9FTkNPRElOR19ZQ0JDUjQyMiwKIFBJWEVMX0VOQ09E
SU5HX1lDQkNSNDQ0LAogUElYRUxfRU5DT0RJTkdfWUNCQ1I0MjAsCiBQSVhFTF9FTkNPRElOR19D
T1VOVAp9OwoKZW51bSBkY19hc3BlY3RfcmF0aW8gewogQVNQRUNUX1JBVElPX05PX0RBVEEsCiBB
U1BFQ1RfUkFUSU9fNF8zLAogQVNQRUNUX1JBVElPXzE2XzksCiBBU1BFQ1RfUkFUSU9fNjRfMjcs
CiBBU1BFQ1RfUkFUSU9fMjU2XzEzNSwKIEFTUEVDVF9SQVRJT19GVVRVUkUKfTsKCmVudW0gc2Nh
bm5pbmdfdHlwZSB7CiBTQ0FOTklOR19UWVBFX05PREFUQSA9IDAsCiBTQ0FOTklOR19UWVBFX09W
RVJTQ0FOLAogU0NBTk5JTkdfVFlQRV9VTkRFUlNDQU4sCiBTQ0FOTklOR19UWVBFX0ZVVFVSRSwK
IFNDQU5OSU5HX1RZUEVfVU5ERUZJTkVECn07CgpzdHJ1Y3QgZGNfY3J0Y190aW1pbmdfZmxhZ3Mg
ewogdWludDMyX3QgSU5URVJMQUNFIDoxOwogdWludDMyX3QgSFNZTkNfUE9TSVRJVkVfUE9MQVJJ
VFkgOjE7CgogdWludDMyX3QgVlNZTkNfUE9TSVRJVkVfUE9MQVJJVFkgOjE7CgoKIHVpbnQzMl90
IEhPUlpfQ09VTlRfQllfVFdPOjE7CgogdWludDMyX3QgRVhDTFVTSVZFXzNEIDoxOwoKCiB1aW50
MzJfdCBSSUdIVF9FWUVfM0RfUE9MQVJJVFkgOjE7CgogdWludDMyX3QgU1VCX1NBTVBMRV8zRCA6
MTsKCiB1aW50MzJfdCBVU0VfSU5fM0RfVklFV19PTkxZIDoxOwoKIHVpbnQzMl90IFNURVJFT18z
RF9QUkVGRVJFTkNFIDoxOwoKIHVpbnQzMl90IFlfT05MWSA6MTsKCiB1aW50MzJfdCBZQ0JDUjQy
MCA6MTsKIHVpbnQzMl90IERURF9DT1VOVEVSIDo1OwoKIHVpbnQzMl90IEZPUkNFX0hEUiA6MTsK
CgoKIHVpbnQzMl90IExURV8zNDBNQ1NDX1NDUkFNQkxFOjE7CgogdWludDMyX3QgRFNDIDogMTsK
fTsKCmVudW0gZGNfdGltaW5nXzNkX2Zvcm1hdCB7CiBUSU1JTkdfM0RfRk9STUFUX05PTkUsCiBU
SU1JTkdfM0RfRk9STUFUX0ZSQU1FX0FMVEVSTkFURSwKIFRJTUlOR18zRF9GT1JNQVRfSU5CQU5E
X0ZBLAogVElNSU5HXzNEX0ZPUk1BVF9EUF9IRE1JX0lOQkFORF9GQSwKCiBUSU1JTkdfM0RfRk9S
TUFUX1NJREVCQU5EX0ZBLAogVElNSU5HXzNEX0ZPUk1BVF9IV19GUkFNRV9QQUNLSU5HLAogVElN
SU5HXzNEX0ZPUk1BVF9TV19GUkFNRV9QQUNLSU5HLAogVElNSU5HXzNEX0ZPUk1BVF9ST1dfSU5U
RVJMRUFWRSwKIFRJTUlOR18zRF9GT1JNQVRfQ09MVU1OX0lOVEVSTEVBVkUsCiBUSU1JTkdfM0Rf
Rk9STUFUX1BJWEVMX0lOVEVSTEVBVkUsCiBUSU1JTkdfM0RfRk9STUFUX1NJREVfQllfU0lERSwK
IFRJTUlOR18zRF9GT1JNQVRfVE9QX0FORF9CT1RUT00sCiBUSU1JTkdfM0RfRk9STUFUX1NCU19T
V19QQUNLRUQsCgogVElNSU5HXzNEX0ZPUk1BVF9UQl9TV19QQUNLRUQsCgoKIFRJTUlOR18zRF9G
T1JNQVRfTUFYLAp9OwoKc3RydWN0IGRjX2RzY19jb25maWcgewogdWludDMyX3QgbnVtX3NsaWNl
c19oOwogdWludDMyX3QgbnVtX3NsaWNlc192OwogdWludDMyX3QgYml0c19wZXJfcGl4ZWw7CiBi
b29sIGJsb2NrX3ByZWRfZW5hYmxlOwogdWludDMyX3QgbGluZWJ1Zl9kZXB0aDsKIHVpbnQzMl90
IHZlcnNpb25fbWlub3I7CiBib29sIHljYmNyNDIyX3NpbXBsZTsKIGludDMyX3QgcmNfYnVmZmVy
X3NpemU7Cn07CnN0cnVjdCBkY19jcnRjX3RpbWluZyB7CiB1aW50MzJfdCBoX3RvdGFsOwogdWlu
dDMyX3QgaF9ib3JkZXJfbGVmdDsKIHVpbnQzMl90IGhfYWRkcmVzc2FibGU7CiB1aW50MzJfdCBo
X2JvcmRlcl9yaWdodDsKIHVpbnQzMl90IGhfZnJvbnRfcG9yY2g7CiB1aW50MzJfdCBoX3N5bmNf
d2lkdGg7CgogdWludDMyX3Qgdl90b3RhbDsKIHVpbnQzMl90IHZfYm9yZGVyX3RvcDsKIHVpbnQz
Ml90IHZfYWRkcmVzc2FibGU7CiB1aW50MzJfdCB2X2JvcmRlcl9ib3R0b207CiB1aW50MzJfdCB2
X2Zyb250X3BvcmNoOwogdWludDMyX3Qgdl9zeW5jX3dpZHRoOwoKIHVpbnQzMl90IHBpeF9jbGtf
MTAwaHo7CgogdWludDMyX3QgdmljOwogdWludDMyX3QgaGRtaV92aWM7CiBlbnVtIGRjX3RpbWlu
Z18zZF9mb3JtYXQgdGltaW5nXzNkX2Zvcm1hdDsKIGVudW0gZGNfY29sb3JfZGVwdGggZGlzcGxh
eV9jb2xvcl9kZXB0aDsKIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4ZWxfZW5jb2Rpbmc7CiBl
bnVtIGRjX2FzcGVjdF9yYXRpbyBhc3BlY3RfcmF0aW87CiBlbnVtIHNjYW5uaW5nX3R5cGUgc2Nh
bl90eXBlOwoKIHN0cnVjdCBkY19jcnRjX3RpbWluZ19mbGFncyBmbGFnczsKIHN0cnVjdCBkY19k
c2NfY29uZmlnIGRzY19jZmc7Cn07CgplbnVtIHRyaWdnZXJfZGVsYXkgewogVFJJR0dFUl9ERUxB
WV9ORVhUX1BJWEVMID0gMCwKIFRSSUdHRVJfREVMQVlfTkVYVF9MSU5FLAp9OwoKZW51bSBjcnRj
X2V2ZW50IHsKIENSVENfRVZFTlRfVlNZTkNfUklTSU5HID0gMCwKIENSVENfRVZFTlRfVlNZTkNf
RkFMTElORwp9OwoKc3RydWN0IGNydGNfdHJpZ2dlcl9pbmZvIHsKIGJvb2wgZW5hYmxlZDsKIHN0
cnVjdCBkY19zdHJlYW1fc3RhdGUgKmV2ZW50X3NvdXJjZTsKIGVudW0gY3J0Y19ldmVudCBldmVu
dDsKIGVudW0gdHJpZ2dlcl9kZWxheSBkZWxheTsKfTsKCnN0cnVjdCBkY19jcnRjX3RpbWluZ19h
ZGp1c3QgewogdWludDMyX3Qgdl90b3RhbF9taW47CiB1aW50MzJfdCB2X3RvdGFsX21heDsKIHVp
bnQzMl90IHZfdG90YWxfbWlkOwogdWludDMyX3Qgdl90b3RhbF9taWRfZnJhbWVfbnVtOwp9OwoK
CgplbnVtIHZyYW1fdHlwZSB7CiBWSURFT19NRU1PUllfVFlQRV9HRERSNSA9IDIsCiBWSURFT19N
RU1PUllfVFlQRV9ERFIzID0gMywKIFZJREVPX01FTU9SWV9UWVBFX0REUjQgPSA0LAogVklERU9f
TUVNT1JZX1RZUEVfSEJNID0gNSwKIFZJREVPX01FTU9SWV9UWVBFX0dERFI2ID0gNiwKfTsKCmVu
dW0gZHdiX2Nudl9vdXRfYnBjIHsKIERXQl9DTlZfT1VUX0JQQ184QlBDID0gMCwKIERXQl9DTlZf
T1VUX0JQQ18xMEJQQyA9IDEsCn07CgplbnVtIGR3Yl9vdXRwdXRfZGVwdGggewogRFdCX09VVFBV
VF9QSVhFTF9ERVBUSF84QlBDID0gMCwKIERXQl9PVVRQVVRfUElYRUxfREVQVEhfMTBCUEMgPSAx
LAp9OwoKZW51bSBkd2JfY2FwdHVyZV9yYXRlIHsKIGR3Yl9jYXB0dXJlX3JhdGVfMCA9IDAsCiBk
d2JfY2FwdHVyZV9yYXRlXzEgPSAxLAogZHdiX2NhcHR1cmVfcmF0ZV8yID0gMiwKIGR3Yl9jYXB0
dXJlX3JhdGVfMyA9IDMsCn07CgplbnVtIGR3Yl9zY2FsZXJfbW9kZSB7CiBkd2Jfc2NhbGVyX21v
ZGVfYnlwYXNzNDQ0ID0gMCwKIGR3Yl9zY2FsZXJfbW9kZV9yZ2I0NDQgPSAxLAogZHdiX3NjYWxl
cl9tb2RlX3l1djQ0NCA9IDIsCiBkd2Jfc2NhbGVyX21vZGVfeXV2NDIwID0gMwp9OwoKZW51bSBk
d2Jfc3Vic2FtcGxlX3Bvc2l0aW9uIHsKIERXQl9JTlRFUlNUSVRJQUxfU1VCU0FNUExJTkcgPSAw
LAogRFdCX0NPU0lURURfU1VCU0FNUExJTkcgPSAxCn07CgplbnVtIGR3Yl9zdGVyZW9fZXllX3Nl
bGVjdCB7CiBEV0JfU1RFUkVPX0VZRV9MRUZUID0gMSwKIERXQl9TVEVSRU9fRVlFX1JJR0hUID0g
MiwKfTsKCmVudW0gZHdiX3N0ZXJlb190eXBlIHsKIERXQl9TVEVSRU9fVFlQRV9GUkFNRV9QQUNL
SU5HID0gMCwKIERXQl9TVEVSRU9fVFlQRV9GUkFNRV9TRVFVRU5USUFMID0gMywKfTsKCgoKc3Ry
dWN0IG1jaWZfYnVmX3BhcmFtcyB7CiB1bnNpZ25lZCBsb25nIGxvbmcgbHVtYV9hZGRyZXNzWzRd
OwogdW5zaWduZWQgbG9uZyBsb25nIGNocm9tYV9hZGRyZXNzWzRdOwogdW5zaWduZWQgaW50IGx1
bWFfcGl0Y2g7CiB1bnNpZ25lZCBpbnQgY2hyb21hX3BpdGNoOwogdW5zaWduZWQgaW50IHdhcm11
cF9waXRjaDsKIHVuc2lnbmVkIGludCBzd2xvY2s7Cn07CgoKCnN0cnVjdCB0Z19jb2xvciB7Cgog
dWludDE2X3QgY29sb3Jfcl9jcjsKIHVpbnQxNl90IGNvbG9yX2dfeTsKIHVpbnQxNl90IGNvbG9y
X2JfY2I7Cn07CiMgMzcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9kY190eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKIyAzMCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVz
LmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNf
dHlwZXMuaCIgMQojIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
aW5jbHVkZS9kYWxfdHlwZXMuaCIgMgoKc3RydWN0IGRhbF9sb2dnZXI7CnN0cnVjdCBkY19iaW9z
OwoKZW51bSBkY2VfdmVyc2lvbiB7CiBEQ0VfVkVSU0lPTl9VTktOT1dOID0gKC0xKSwKIERDRV9W
RVJTSU9OXzhfMCwKIERDRV9WRVJTSU9OXzhfMSwKIERDRV9WRVJTSU9OXzhfMywKIERDRV9WRVJT
SU9OXzEwXzAsCiBEQ0VfVkVSU0lPTl8xMV8wLAogRENFX1ZFUlNJT05fMTFfMiwKIERDRV9WRVJT
SU9OXzExXzIyLAogRENFX1ZFUlNJT05fMTJfMCwKIERDRV9WRVJTSU9OXzEyXzEsCiBEQ0VfVkVS
U0lPTl9NQVgsCiBEQ05fVkVSU0lPTl8xXzAsCiBEQ05fVkVSU0lPTl8xXzAxLAogRENOX1ZFUlNJ
T05fMl8wLAogRENOX1ZFUlNJT05fMl8xLAogRENOX1ZFUlNJT05fTUFYCn07CiMgMzggIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIiAyCiMgMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvZ3JwaF9vYmpl
Y3RfZGVmcy5oIiAxCiMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9pbmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9pZC5oIiAxCiMgMzAgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lk
LmgiCmVudW0gb2JqZWN0X3R5cGUgewogT0JKRUNUX1RZUEVfVU5LTk9XTiA9IDAsCgoKIE9CSkVD
VF9UWVBFX0dQVSwKIE9CSkVDVF9UWVBFX0VOQ09ERVIsCiBPQkpFQ1RfVFlQRV9DT05ORUNUT1Is
CiBPQkpFQ1RfVFlQRV9ST1VURVIsCiBPQkpFQ1RfVFlQRV9HRU5FUklDLAoKCiBPQkpFQ1RfVFlQ
RV9BVURJTywKIE9CSkVDVF9UWVBFX0NPTlRST0xMRVIsCiBPQkpFQ1RfVFlQRV9DTE9DS19TT1VS
Q0UsCiBPQkpFQ1RfVFlQRV9FTkdJTkUsCgogT0JKRUNUX1RZUEVfQ09VTlQKfTsKCgplbnVtIG9i
amVjdF9lbnVtX2lkIHsKIEVOVU1fSURfVU5LTk9XTiA9IDAsCiBFTlVNX0lEXzEsCiBFTlVNX0lE
XzIsCiBFTlVNX0lEXzMsCiBFTlVNX0lEXzQsCiBFTlVNX0lEXzUsCiBFTlVNX0lEXzYsCiBFTlVN
X0lEXzcsCgogRU5VTV9JRF9DT1VOVAp9OwoKCmVudW0gZ2VuZXJpY19pZCB7CiBHRU5FUklDX0lE
X1VOS05PV04gPSAwLAogR0VORVJJQ19JRF9NWE1fT1BNLAogR0VORVJJQ19JRF9HTFNZTkMsCiBH
RU5FUklDX0lEX1NURVJFTywKCiBHRU5FUklDX0lEX0NPVU5UCn07CgoKZW51bSBjb250cm9sbGVy
X2lkIHsKIENPTlRST0xMRVJfSURfVU5ERUZJTkVEID0gMCwKIENPTlRST0xMRVJfSURfRDAsCiBD
T05UUk9MTEVSX0lEX0QxLAogQ09OVFJPTExFUl9JRF9EMiwKIENPTlRST0xMRVJfSURfRDMsCiBD
T05UUk9MTEVSX0lEX0Q0LAogQ09OVFJPTExFUl9JRF9ENSwKIENPTlRST0xMRVJfSURfVU5ERVJM
QVkwLAogQ09OVFJPTExFUl9JRF9NQVggPSBDT05UUk9MTEVSX0lEX1VOREVSTEFZMAp9OwojIDkz
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29i
amVjdF9pZC5oIgplbnVtIGNsb2NrX3NvdXJjZV9pZCB7CiBDTE9DS19TT1VSQ0VfSURfVU5ERUZJ
TkVEID0gMCwKIENMT0NLX1NPVVJDRV9JRF9QTEwwLAogQ0xPQ0tfU09VUkNFX0lEX1BMTDEsCiBD
TE9DS19TT1VSQ0VfSURfUExMMiwKIENMT0NLX1NPVVJDRV9JRF9FWFRFUk5BTCwKIENMT0NLX1NP
VVJDRV9JRF9EQ1BMTCwKIENMT0NLX1NPVVJDRV9JRF9ERlMsCiBDTE9DS19TT1VSQ0VfSURfVkNF
LAoKIENMT0NLX1NPVVJDRV9JRF9EUF9EVE8sCgogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEww
LAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwxLAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9Q
TEwyLAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEwzLAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BI
WV9QTEw0LAogQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9QTEw1LAogQ0xPQ0tfU09VUkNFX0NPTUJP
X0RJU1BMQVlfUExMMAp9OwoKCmVudW0gZW5jb2Rlcl9pZCB7CiBFTkNPREVSX0lEX1VOS05PV04g
PSAwLAoKCiBFTkNPREVSX0lEX0lOVEVSTkFMX0xWRFMsCiBFTkNPREVSX0lEX0lOVEVSTkFMX1RN
RFMxLAogRU5DT0RFUl9JRF9JTlRFUk5BTF9UTURTMiwKIEVOQ09ERVJfSURfSU5URVJOQUxfREFD
MSwKIEVOQ09ERVJfSURfSU5URVJOQUxfREFDMiwKCgogRU5DT0RFUl9JRF9JTlRFUk5BTF9MVlRN
MSwKIEVOQ09ERVJfSURfSU5URVJOQUxfSERNSSwKCgogRU5DT0RFUl9JRF9JTlRFUk5BTF9LTERT
Q1BfVE1EUzEsCiBFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMxLAogRU5DT0RFUl9JRF9J
TlRFUk5BTF9LTERTQ1BfREFDMiwKCiBFTkNPREVSX0lEX0VYVEVSTkFMX01WUFVfRlBHQSwKIEVO
Q09ERVJfSURfSU5URVJOQUxfRERJLAogRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFksCiBFTkNP
REVSX0lEX0lOVEVSTkFMX0tMRFNDUF9MVlRNQSwKIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZ
MSwKIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMiwKIEVOQ09ERVJfSURfRVhURVJOQUxfTlVU
TUVHLAogRU5DT0RFUl9JRF9FWFRFUk5BTF9UUkFWSVMsCgogRU5DT0RFUl9JRF9JTlRFUk5BTF9X
SVJFTEVTUywKIEVOQ09ERVJfSURfSU5URVJOQUxfVU5JUEhZMywKIEVOQ09ERVJfSURfSU5URVJO
QUxfVklSVFVBTCwKfTsKCgplbnVtIGNvbm5lY3Rvcl9pZCB7CiBDT05ORUNUT1JfSURfVU5LTk9X
TiA9IDAsCiBDT05ORUNUT1JfSURfU0lOR0xFX0xJTktfRFZJSSA9IDEsCiBDT05ORUNUT1JfSURf
RFVBTF9MSU5LX0RWSUkgPSAyLAogQ09OTkVDVE9SX0lEX1NJTkdMRV9MSU5LX0RWSUQgPSAzLAog
Q09OTkVDVE9SX0lEX0RVQUxfTElOS19EVklEID0gNCwKIENPTk5FQ1RPUl9JRF9WR0EgPSA1LAog
Q09OTkVDVE9SX0lEX0hETUlfVFlQRV9BID0gMTIsCiBDT05ORUNUT1JfSURfTFZEUyA9IDE0LAog
Q09OTkVDVE9SX0lEX1BDSUUgPSAxNiwKIENPTk5FQ1RPUl9JRF9IQVJEQ09ERV9EVkkgPSAxOCwK
IENPTk5FQ1RPUl9JRF9ESVNQTEFZX1BPUlQgPSAxOSwKIENPTk5FQ1RPUl9JRF9FRFAgPSAyMCwK
IENPTk5FQ1RPUl9JRF9NWE0gPSAyMSwKIENPTk5FQ1RPUl9JRF9XSVJFTEVTUyA9IDIyLAogQ09O
TkVDVE9SX0lEX01JUkFDQVNUID0gMjMsCgogQ09OTkVDVE9SX0lEX1ZJUlRVQUwgPSAxMDAKfTsK
CgplbnVtIGF1ZGlvX2lkIHsKIEFVRElPX0lEX1VOS05PV04gPSAwLAogQVVESU9fSURfSU5URVJO
QUxfQVpBTElBCn07CgoKZW51bSBlbmdpbmVfaWQgewogRU5HSU5FX0lEX0RJR0EsCiBFTkdJTkVf
SURfRElHQiwKIEVOR0lORV9JRF9ESUdDLAogRU5HSU5FX0lEX0RJR0QsCiBFTkdJTkVfSURfRElH
RSwKIEVOR0lORV9JRF9ESUdGLAogRU5HSU5FX0lEX0RJR0csCiBFTkdJTkVfSURfREFDQSwKIEVO
R0lORV9JRF9EQUNCLAogRU5HSU5FX0lEX1ZDRSwKIEVOR0lORV9JRF9WSVJUVUFMLAoKIEVOR0lO
RV9JRF9DT1VOVCwKIEVOR0lORV9JRF9VTktOT1dOID0gKC0xTCkKfTsKCmVudW0gdHJhbnNtaXR0
ZXJfY29sb3JfZGVwdGggewogVFJBTlNNSVRURVJfQ09MT1JfREVQVEhfMjQgPSAwLAogVFJBTlNN
SVRURVJfQ09MT1JfREVQVEhfMzAsCiBUUkFOU01JVFRFUl9DT0xPUl9ERVBUSF8zNiwKIFRSQU5T
TUlUVEVSX0NPTE9SX0RFUFRIXzQ4Cn07CgplbnVtIGRwX2FsdF9tb2RlIHsKIERQX0FsdF9tb2Rl
X19Vbmtub3duID0gMCwKIERQX0FsdF9tb2RlX19Db25uZWN0LAogRFBfQWx0X21vZGVfX05vQ29u
bmVjdCwKfTsKIyAyMjAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiCnN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgewogdWlu
dDMyX3QgaWQ6ODsKIHVpbnQzMl90IGVudW1faWQ6NDsKIHVpbnQzMl90IHR5cGU6NDsKIHVpbnQz
Ml90IHJlc2VydmVkOjE2Owp9OwoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGRhbF9ncmFw
aGljc19vYmplY3RfaWRfaW5pdCgKIHVpbnQzMl90IGlkLAogZW51bSBvYmplY3RfZW51bV9pZCBl
bnVtX2lkLAogZW51bSBvYmplY3RfdHlwZSB0eXBlKQp7CiBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0
X2lkIHJlc3VsdCA9IHsKICBpZCwgZW51bV9pZCwgdHlwZSwgMAogfTsKCiByZXR1cm4gcmVzdWx0
Owp9CgoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0
cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0
aW9uKSkgdWludDMyX3QgZGFsX2dyYXBoaWNzX29iamVjdF9pZF90b191aW50KAogc3RydWN0IGdy
YXBoaWNzX29iamVjdF9pZCBpZCkKewogcmV0dXJuIGlkLmlkICsgKGlkLmVudW1faWQgPDwgMHg4
KSArIChpZC50eXBlIDw8IDB4Yyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGVudW0gY29udHJvbGxlcl9pZCBkYWxfZ3JhcGhpY3Nf
b2JqZWN0X2lkX2dldF9jb250cm9sbGVyX2lkKAogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBp
ZCkKewogaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfQ09OVFJPTExFUikKICByZXR1cm4gKGVu
dW0gY29udHJvbGxlcl9pZCkgaWQuaWQ7CiByZXR1cm4gQ09OVFJPTExFUl9JRF9VTkRFRklORUQ7
Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJp
YnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlv
bikpIGVudW0gY2xvY2tfc291cmNlX2lkIGRhbF9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2Nsb2Nr
X3NvdXJjZV9pZCgKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCnsKIGlmIChpZC50eXBl
ID09IE9CSkVDVF9UWVBFX0NMT0NLX1NPVVJDRSkKICByZXR1cm4gKGVudW0gY2xvY2tfc291cmNl
X2lkKSBpZC5pZDsKIHJldHVybiBDTE9DS19TT1VSQ0VfSURfVU5ERUZJTkVEOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIGVu
Y29kZXJfaWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRfZW5jb2Rlcl9pZCgKIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgaWQpCnsKIGlmIChpZC50eXBlID09IE9CSkVDVF9UWVBFX0VOQ09E
RVIpCiAgcmV0dXJuIChlbnVtIGVuY29kZXJfaWQpIGlkLmlkOwogcmV0dXJuIEVOQ09ERVJfSURf
VU5LTk9XTjsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgZW51bSBjb25uZWN0b3JfaWQgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9nZXRf
Y29ubmVjdG9yX2lkKAogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZCkKewogaWYgKGlkLnR5
cGUgPT0gT0JKRUNUX1RZUEVfQ09OTkVDVE9SKQogIHJldHVybiAoZW51bSBjb25uZWN0b3JfaWQp
IGlkLmlkOwogcmV0dXJuIENPTk5FQ1RPUl9JRF9VTktOT1dOOwp9CgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIGF1ZGlvX2lkIGRh
bF9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2F1ZGlvX2lkKAogc3RydWN0IGdyYXBoaWNzX29iamVj
dF9pZCBpZCkKewogaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfQVVESU8pCiAgcmV0dXJuIChl
bnVtIGF1ZGlvX2lkKSBpZC5pZDsKIHJldHVybiBBVURJT19JRF9VTktOT1dOOwp9CgpzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBlbnVtIGVu
Z2luZV9pZCBkYWxfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9lbmdpbmVfaWQoCiBzdHJ1Y3QgZ3Jh
cGhpY3Nfb2JqZWN0X2lkIGlkKQp7CiBpZiAoaWQudHlwZSA9PSBPQkpFQ1RfVFlQRV9FTkdJTkUp
CiAgcmV0dXJuIChlbnVtIGVuZ2luZV9pZCkgaWQuaWQ7CiByZXR1cm4gRU5HSU5FX0lEX1VOS05P
V047Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgZGFsX2dyYXBoaWNzX29iamVjdF9pZF9lcXVhbCgKIHN0cnVjdCBncmFwaGlj
c19vYmplY3RfaWQgaWRfMSwKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWRfMikKewogaWYg
KChpZF8xLmlkID09IGlkXzIuaWQpICYmIChpZF8xLmVudW1faWQgPT0gaWRfMi5lbnVtX2lkKSAm
JgogIChpZF8xLnR5cGUgPT0gaWRfMi50eXBlKSkgewogIHJldHVybiB0cnVlOwogfQogcmV0dXJu
IGZhbHNlOwp9CiMgMzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIgMgojIDQ1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiCmVudW0gaHBkX3Nv
dXJjZV9pZCB7CiBIUERfU09VUkNFSUQxID0gMCwKIEhQRF9TT1VSQ0VJRDIsCiBIUERfU09VUkNF
SUQzLAogSFBEX1NPVVJDRUlENCwKIEhQRF9TT1VSQ0VJRDUsCiBIUERfU09VUkNFSUQ2LAoKIEhQ
RF9TT1VSQ0VJRF9DT1VOVCwKIEhQRF9TT1VSQ0VJRF9VTktOT1dOCn07CgoKZW51bSBjaGFubmVs
X2lkIHsKIENIQU5ORUxfSURfVU5LTk9XTiA9IDAsCiBDSEFOTkVMX0lEX0REQzEsCiBDSEFOTkVM
X0lEX0REQzIsCiBDSEFOTkVMX0lEX0REQzMsCiBDSEFOTkVMX0lEX0REQzQsCiBDSEFOTkVMX0lE
X0REQzUsCiBDSEFOTkVMX0lEX0REQzYsCiBDSEFOTkVMX0lEX0REQ19WR0EsCiBDSEFOTkVMX0lE
X0kyQ19QQUQsCiBDSEFOTkVMX0lEX0NPVU5UCn07CiMgODEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIKZW51bSB0cmFu
c21pdHRlciB7CiBUUkFOU01JVFRFUl9VTktOT1dOID0gKC0xTCksCiBUUkFOU01JVFRFUl9VTklQ
SFlfQSwKIFRSQU5TTUlUVEVSX1VOSVBIWV9CLAogVFJBTlNNSVRURVJfVU5JUEhZX0MsCiBUUkFO
U01JVFRFUl9VTklQSFlfRCwKIFRSQU5TTUlUVEVSX1VOSVBIWV9FLAogVFJBTlNNSVRURVJfVU5J
UEhZX0YsCiBUUkFOU01JVFRFUl9OVVRNRUdfQ1JULAogVFJBTlNNSVRURVJfVFJBVklTX0NSVCwK
IFRSQU5TTUlUVEVSX1RSQVZJU19MQ0QsCiBUUkFOU01JVFRFUl9VTklQSFlfRywKIFRSQU5TTUlU
VEVSX0NPVU5UCn07CgoKCmVudW0gc3luY19zb3VyY2UgewogU1lOQ19TT1VSQ0VfTk9ORSA9IDAs
CgoKIFNZTkNfU09VUkNFX0NPTlRST0xMRVIwLAogU1lOQ19TT1VSQ0VfQ09OVFJPTExFUjEsCiBT
WU5DX1NPVVJDRV9DT05UUk9MTEVSMiwKIFNZTkNfU09VUkNFX0NPTlRST0xMRVIzLAogU1lOQ19T
T1VSQ0VfQ09OVFJPTExFUjQsCiBTWU5DX1NPVVJDRV9DT05UUk9MTEVSNSwKCgogU1lOQ19TT1VS
Q0VfR1NMX0dST1VQMCwKIFNZTkNfU09VUkNFX0dTTF9HUk9VUDEsCiBTWU5DX1NPVVJDRV9HU0xf
R1JPVVAyLAoKCgogU1lOQ19TT1VSQ0VfR1NMX0lPX0ZJUlNULAogU1lOQ19TT1VSQ0VfR1NMX0lP
X0dFTkxPQ0tfQ0xPQ0sgPSBTWU5DX1NPVVJDRV9HU0xfSU9fRklSU1QsCiBTWU5DX1NPVVJDRV9H
U0xfSU9fR0VOTE9DS19WU1lOQywKIFNZTkNfU09VUkNFX0dTTF9JT19TV0FQTE9DS19BLAogU1lO
Q19TT1VSQ0VfR1NMX0lPX1NXQVBMT0NLX0IsCiBTWU5DX1NPVVJDRV9HU0xfSU9fTEFTVCA9IFNZ
TkNfU09VUkNFX0dTTF9JT19TV0FQTE9DS19CLAoKCiBTWU5DX1NPVVJDRV9JT19GSVJTVCwKIFNZ
TkNfU09VUkNFX0lPX0dFTkVSSUNfQSA9IFNZTkNfU09VUkNFX0lPX0ZJUlNULAogU1lOQ19TT1VS
Q0VfSU9fR0VORVJJQ19CLAogU1lOQ19TT1VSQ0VfSU9fR0VORVJJQ19DLAogU1lOQ19TT1VSQ0Vf
SU9fR0VORVJJQ19ELAogU1lOQ19TT1VSQ0VfSU9fR0VORVJJQ19FLAogU1lOQ19TT1VSQ0VfSU9f
R0VORVJJQ19GLAogU1lOQ19TT1VSQ0VfSU9fSFBEMSwKIFNZTkNfU09VUkNFX0lPX0hQRDIsCiBT
WU5DX1NPVVJDRV9JT19IU1lOQ19BLAogU1lOQ19TT1VSQ0VfSU9fVlNZTkNfQSwKIFNZTkNfU09V
UkNFX0lPX0hTWU5DX0IsCiBTWU5DX1NPVVJDRV9JT19WU1lOQ19CLAogU1lOQ19TT1VSQ0VfSU9f
TEFTVCA9IFNZTkNfU09VUkNFX0lPX1ZTWU5DX0IsCgoKIFNZTkNfU09VUkNFX0RVQUxfR1BVX1BJ
Tgp9OwojIDE1MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvZ3JwaF9vYmplY3RfZGVmcy5oIgplbnVtIGNvbm5lY3Rvcl9sYXlvdXRfdHlwZSB7CiBDT05O
RUNUT1JfTEFZT1VUX1RZUEVfVU5LTk9XTiwKIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EVklfRCwK
IENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EVklfSSwKIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9WR0Es
CiBDT05ORUNUT1JfTEFZT1VUX1RZUEVfSERNSSwKIENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9EUCwK
IENPTk5FQ1RPUl9MQVlPVVRfVFlQRV9NSU5JX0RQLAp9OwpzdHJ1Y3QgY29ubmVjdG9yX2xheW91
dF9pbmZvIHsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yX2lkOwogZW51bSBj
b25uZWN0b3JfbGF5b3V0X3R5cGUgY29ubmVjdG9yX3R5cGU7CiB1bnNpZ25lZCBpbnQgbGVuZ3Ro
OwogdW5zaWduZWQgaW50IHBvc2l0aW9uOwp9OwoKCnN0cnVjdCBzbG90X2xheW91dF9pbmZvIHsK
IHVuc2lnbmVkIGludCBsZW5ndGg7CiB1bnNpZ25lZCBpbnQgd2lkdGg7CiB1bnNpZ25lZCBpbnQg
bnVtX29mX2Nvbm5lY3RvcnM7CiBzdHJ1Y3QgY29ubmVjdG9yX2xheW91dF9pbmZvIGNvbm5lY3Rv
cnNbKDE2KV07Cn07CgpzdHJ1Y3QgYm9hcmRfbGF5b3V0X2luZm8gewogdW5zaWduZWQgaW50IG51
bV9vZl9zbG90czsKCgogdW5zaWduZWQgaW50IGlzX251bWJlcl9vZl9zbG90c192YWxpZCA6IDE7
CiB1bnNpZ25lZCBpbnQgaXNfc2xvdHNfc2l6ZV92YWxpZCA6IDE7CiB1bnNpZ25lZCBpbnQgaXNf
Y29ubmVjdG9yX29mZnNldHNfdmFsaWQgOiAxOwogdW5zaWduZWQgaW50IGlzX2Nvbm5lY3Rvcl9s
ZW5ndGhzX3ZhbGlkIDogMTsKCiBzdHJ1Y3Qgc2xvdF9sYXlvdXRfaW5mbyBzbG90c1soNCldOwp9
OwojIDM5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlw
ZXMuaCIgMgoKCgoKCgpzdHJ1Y3QgZGNfcGxhbmVfc3RhdGU7CnN0cnVjdCBkY19zdHJlYW1fc3Rh
dGU7CnN0cnVjdCBkY19saW5rOwpzdHJ1Y3QgZGNfc2luazsKc3RydWN0IGRhbDsKc3RydWN0IGRj
X2RtdWJfc3J2OwoKCgoKZW51bSBkY2VfZW52aXJvbm1lbnQgewogRENFX0VOVl9QUk9EVUNUSU9O
X0RSViA9IDAsCgoKCiBEQ0VfRU5WX0ZQR0FfTUFYSU1VUywKCgogRENFX0VOVl9ESUFHLAoKCgoK
IERDRV9FTlZfVklSVFVBTF9IVwp9OwojIDc4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIKc3RydWN0IGh3X2FzaWNfaWQgewogdWludDMyX3Qg
Y2hpcF9pZDsKIHVpbnQzMl90IGNoaXBfZmFtaWx5OwogdWludDMyX3QgcGNpX3JldmlzaW9uX2lk
OwogdWludDMyX3QgaHdfaW50ZXJuYWxfcmV2OwogdWludDMyX3QgdnJhbV90eXBlOwogdWludDMy
X3QgdnJhbV93aWR0aDsKIHVpbnQzMl90IGZlYXR1cmVfZmxhZ3M7CiB1aW50MzJfdCBmYWtlX3Bh
dGhzX251bTsKIHZvaWQgKmF0b21iaW9zX2Jhc2VfYWRkcmVzczsKfTsKCnN0cnVjdCBkY19wZXJm
X3RyYWNlIHsKIHVuc2lnbmVkIGxvbmcgcmVhZF9jb3VudDsKIHVuc2lnbmVkIGxvbmcgd3JpdGVf
Y291bnQ7CiB1bnNpZ25lZCBsb25nIGxhc3RfZW50cnlfcmVhZDsKIHVuc2lnbmVkIGxvbmcgbGFz
dF9lbnRyeV93cml0ZTsKfTsKCnN0cnVjdCBkY19jb250ZXh0IHsKIHN0cnVjdCBkYyAqZGM7Cgog
dm9pZCAqZHJpdmVyX2NvbnRleHQ7CiBzdHJ1Y3QgZGNfcGVyZl90cmFjZSAqcGVyZl90cmFjZTsK
IHZvaWQgKmNnc19kZXZpY2U7CgogZW51bSBkY2VfZW52aXJvbm1lbnQgZGNlX2Vudmlyb25tZW50
Owogc3RydWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKCgoKCiBlbnVtIGRjZV92ZXJzaW9uIGRjZV92
ZXJzaW9uOwogc3RydWN0IGRjX2Jpb3MgKmRjX2Jpb3M7CiBib29sIGNyZWF0ZWRfYmlvczsKIHN0
cnVjdCBncGlvX3NlcnZpY2UgKmdwaW9fc2VydmljZTsKIHVpbnQzMl90IGRjX3NpbmtfaWRfY291
bnQ7CiB1aW50MzJfdCBkY19zdHJlYW1faWRfY291bnQ7CiB1aW50NjRfdCBmYmNfZ3B1X2FkZHI7
CiBzdHJ1Y3QgZGNfZG11Yl9zcnYgKmRtdWJfc3J2OwoKCgoKfTsKIyAxMzEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY190eXBlcy5oIgojIDEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY19kZGNfdHlwZXMuaCIgMQojIDI4
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZGRjX3R5cGVz
LmgiCmVudW0gYXV4X3RyYW5zYWN0aW9uX3R5cGUgewogQVVYX1RSQU5TQUNUSU9OX1RZUEVfRFAs
CiBBVVhfVFJBTlNBQ1RJT05fVFlQRV9JMkMKfTsKCgplbnVtIGkyY2F1eF90cmFuc2FjdGlvbl9h
Y3Rpb24gewogSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9JMkNfV1JJVEUgPSAweDAwLAogSTJD
QVVYX1RSQU5TQUNUSU9OX0FDVElPTl9JMkNfUkVBRCA9IDB4MTAsCiBJMkNBVVhfVFJBTlNBQ1RJ
T05fQUNUSU9OX0kyQ19TVEFUVVNfUkVRVUVTVCA9IDB4MjAsCgogSTJDQVVYX1RSQU5TQUNUSU9O
X0FDVElPTl9JMkNfV1JJVEVfTU9UID0gMHg0MCwKIEkyQ0FVWF9UUkFOU0FDVElPTl9BQ1RJT05f
STJDX1JFQURfTU9UID0gMHg1MCwKIEkyQ0FVWF9UUkFOU0FDVElPTl9BQ1RJT05fSTJDX1NUQVRV
U19SRVFVRVNUX01PVCA9IDB4NjAsCgogSTJDQVVYX1RSQU5TQUNUSU9OX0FDVElPTl9EUF9XUklU
RSA9IDB4ODAsCiBJMkNBVVhfVFJBTlNBQ1RJT05fQUNUSU9OX0RQX1JFQUQgPSAweDkwCn07Cgpl
bnVtIGF1eF9jaGFubmVsX29wZXJhdGlvbl9yZXN1bHQgewogQVVYX0NIQU5ORUxfT1BFUkFUSU9O
X1NVQ0NFRURFRCwKIEFVWF9DSEFOTkVMX09QRVJBVElPTl9GQUlMRURfUkVBU09OX1VOS05PV04s
CiBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVEX0lOVkFMSURfUkVQTFksCiBBVVhfQ0hBTk5F
TF9PUEVSQVRJT05fRkFJTEVEX1RJTUVPVVQsCiBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVE
X0hQRF9ESVNDT04sCiBBVVhfQ0hBTk5FTF9PUEVSQVRJT05fRkFJTEVEX0VOR0lORV9BQ1FVSVJF
Cn07CgoKc3RydWN0IGF1eF9yZXF1ZXN0X3RyYW5zYWN0aW9uX2RhdGEgewogZW51bSBhdXhfdHJh
bnNhY3Rpb25fdHlwZSB0eXBlOwogZW51bSBpMmNhdXhfdHJhbnNhY3Rpb25fYWN0aW9uIGFjdGlv
bjsKCiB1aW50MzJfdCBhZGRyZXNzOwoKIHVpbnQ4X3QgZGVsYXk7CiB1aW50MzJfdCBsZW5ndGg7
CiB1aW50OF90ICpkYXRhOwp9OwoKZW51bSBhdXhfdHJhbnNhY3Rpb25fcmVwbHkgewogQVVYX1RS
QU5TQUNUSU9OX1JFUExZX0FVWF9BQ0sgPSAweDAwLAogQVVYX1RSQU5TQUNUSU9OX1JFUExZX0FV
WF9OQUNLID0gMHgwMSwKIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9BVVhfREVGRVIgPSAweDAyLAog
QVVYX1RSQU5TQUNUSU9OX1JFUExZX0kyQ19PVkVSX0FVWF9OQUNLID0gMHgwNCwKIEFVWF9UUkFO
U0FDVElPTl9SRVBMWV9JMkNfT1ZFUl9BVVhfREVGRVIgPSAweDA4LAoKIEFVWF9UUkFOU0FDVElP
Tl9SRVBMWV9JMkNfQUNLID0gMHgwMCwKIEFVWF9UUkFOU0FDVElPTl9SRVBMWV9JMkNfTkFDSyA9
IDB4MTAsCiBBVVhfVFJBTlNBQ1RJT05fUkVQTFlfSTJDX0RFRkVSID0gMHgyMCwKCiBBVVhfVFJB
TlNBQ1RJT05fUkVQTFlfSFBEX0RJU0NPTiA9IDB4NDAsCgogQVVYX1RSQU5TQUNUSU9OX1JFUExZ
X0lOVkFMSUQgPSAweEZGCn07CgpzdHJ1Y3QgYXV4X3JlcGx5X3RyYW5zYWN0aW9uX2RhdGEgewog
ZW51bSBhdXhfdHJhbnNhY3Rpb25fcmVwbHkgc3RhdHVzOwogdWludDMyX3QgbGVuZ3RoOwogdWlu
dDhfdCAqZGF0YTsKfTsKCnN0cnVjdCBpMmNfcGF5bG9hZCB7CiBib29sIHdyaXRlOwogdWludDhf
dCBhZGRyZXNzOwogdWludDMyX3QgbGVuZ3RoOwogdWludDhfdCAqZGF0YTsKfTsKCmVudW0gaTJj
X2NvbW1hbmRfZW5naW5lIHsKIEkyQ19DT01NQU5EX0VOR0lORV9ERUZBVUxULAogSTJDX0NPTU1B
TkRfRU5HSU5FX1NXLAogSTJDX0NPTU1BTkRfRU5HSU5FX0hXCn07CgpzdHJ1Y3QgaTJjX2NvbW1h
bmQgewogc3RydWN0IGkyY19wYXlsb2FkICpwYXlsb2FkczsKIHVpbnQ4X3QgbnVtYmVyX29mX3Bh
eWxvYWRzOwoKIGVudW0gaTJjX2NvbW1hbmRfZW5naW5lIGVuZ2luZTsKCgoKIHVpbnQzMl90IHNw
ZWVkOwp9OwoKc3RydWN0IGdwaW9fZGRjX2h3X2luZm8gewogYm9vbCBod19zdXBwb3J0ZWQ7CiB1
aW50MzJfdCBkZGNfY2hhbm5lbDsKfTsKCnN0cnVjdCBkZGMgewogc3RydWN0IGdwaW8gKnBpbl9k
YXRhOwogc3RydWN0IGdwaW8gKnBpbl9jbG9jazsKIHN0cnVjdCBncGlvX2RkY19od19pbmZvIGh3
X2luZm87CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owp9OwoKdW5pb24gZGRjX3dhIHsKIHN0cnVj
dCB7CiAgdWludDMyX3QgRFBfU0tJUF9QT1dFUl9PRkY6MTsKICB1aW50MzJfdCBEUF9BVVhfUE9X
RVJfVVBfV0FfREVMQVk6MTsKIH0gYml0czsKIHVpbnQzMl90IHJhdzsKfTsKCnN0cnVjdCBkZGNf
ZmxhZ3MgewogdWludDhfdCBFRElEX1FVRVJZX0RPTkVfT05DRToxOwogdWludDhfdCBJU19JTlRF
Uk5BTF9ESVNQTEFZOjE7CiB1aW50OF90IEZPUkNFX1JFQURfUkVQRUFURURfU1RBUlQ6MTsKIHVp
bnQ4X3QgRURJRF9TVFJFU1NfUkVBRDoxOwoKfTsKCmVudW0gZGRjX3RyYW5zYWN0aW9uX3R5cGUg
ewogRERDX1RSQU5TQUNUSU9OX1RZUEVfTk9ORSA9IDAsCiBERENfVFJBTlNBQ1RJT05fVFlQRV9J
MkMsCiBERENfVFJBTlNBQ1RJT05fVFlQRV9JMkNfT1ZFUl9BVVgsCiBERENfVFJBTlNBQ1RJT05f
VFlQRV9JMkNfT1ZFUl9BVVhfV0lUSF9ERUZFUiwKIEREQ19UUkFOU0FDVElPTl9UWVBFX0kyQ19P
VkVSX0FVWF9SRVRSWV9ERUZFUgp9OwoKZW51bSBkaXNwbGF5X2RvbmdsZV90eXBlIHsKIERJU1BM
QVlfRE9OR0xFX05PTkUgPSAwLAoKIERJU1BMQVlfRE9OR0xFX0RQX1ZHQV9DT05WRVJURVIsCiBE
SVNQTEFZX0RPTkdMRV9EUF9EVklfQ09OVkVSVEVSLAogRElTUExBWV9ET05HTEVfRFBfSERNSV9D
T05WRVJURVIsCgogRElTUExBWV9ET05HTEVfRFBfRFZJX0RPTkdMRSwKIERJU1BMQVlfRE9OR0xF
X0RQX0hETUlfRE9OR0xFLAoKIERJU1BMQVlfRE9OR0xFX0RQX0hETUlfTUlTTUFUQ0hFRF9ET05H
TEUsCn07CgpzdHJ1Y3QgZGRjX3NlcnZpY2Ugewogc3RydWN0IGRkYyAqZGRjX3BpbjsKIHN0cnVj
dCBkZGNfZmxhZ3MgZmxhZ3M7CiB1bmlvbiBkZGNfd2Egd2E7CiBlbnVtIGRkY190cmFuc2FjdGlv
bl90eXBlIHRyYW5zYWN0aW9uX3R5cGU7CiBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9uZ2xl
X3R5cGU7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owogc3RydWN0IGRjX2xpbmsgKmxpbms7Cgog
dWludDMyX3QgYWRkcmVzczsKIHVpbnQzMl90IGVkaWRfYnVmX2xlbjsKIHVpbnQ4X3QgZWRpZF9i
dWZbMTAyNF07Cn07CiMgMTMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvZGNfdHlwZXMuaCIgMgoKZW51bSB0aWxpbmdfbW9kZSB7CiBUSUxJTkdfTU9ERV9JTlZB
TElELAogVElMSU5HX01PREVfTElORUFSLAogVElMSU5HX01PREVfVElMRUQsCiBUSUxJTkdfTU9E
RV9DT1VOVAp9OwoKZW51bSB2aWV3XzNkX2Zvcm1hdCB7CiBWSUVXXzNEX0ZPUk1BVF9OT05FID0g
MCwKIFZJRVdfM0RfRk9STUFUX0ZSQU1FX1NFUVVFTlRJQUwsCiBWSUVXXzNEX0ZPUk1BVF9TSURF
X0JZX1NJREUsCiBWSUVXXzNEX0ZPUk1BVF9UT1BfQU5EX0JPVFRPTSwKIFZJRVdfM0RfRk9STUFU
X0NPVU5ULAogVklFV18zRF9GT1JNQVRfRklSU1QgPSBWSUVXXzNEX0ZPUk1BVF9GUkFNRV9TRVFV
RU5USUFMCn07CgplbnVtIHBsYW5lX3N0ZXJlb19mb3JtYXQgewogUExBTkVfU1RFUkVPX0ZPUk1B
VF9OT05FID0gMCwKIFBMQU5FX1NURVJFT19GT1JNQVRfU0lERV9CWV9TSURFID0gMSwKIFBMQU5F
X1NURVJFT19GT1JNQVRfVE9QX0FORF9CT1RUT00gPSAyLAogUExBTkVfU1RFUkVPX0ZPUk1BVF9G
UkFNRV9BTFRFUk5BVEUgPSAzLAogUExBTkVfU1RFUkVPX0ZPUk1BVF9ST1dfSU5URVJMRUFWRUQg
PSA1LAogUExBTkVfU1RFUkVPX0ZPUk1BVF9DT0xVTU5fSU5URVJMRUFWRUQgPSA2LAogUExBTkVf
U1RFUkVPX0ZPUk1BVF9DSEVDS0VSX0JPQVJEID0gNwp9OwoKCgoKCgplbnVtIGRjX2VkaWRfY29u
bmVjdG9yX3R5cGUgewogRENfRURJRF9DT05ORUNUT1JfVU5LTk9XTiA9IDAsCiBEQ19FRElEX0NP
Tk5FQ1RPUl9BTkFMT0cgPSAxLAogRENfRURJRF9DT05ORUNUT1JfRElHSVRBTCA9IDEwLAogRENf
RURJRF9DT05ORUNUT1JfRFZJID0gMTEsCiBEQ19FRElEX0NPTk5FQ1RPUl9IRE1JQSA9IDEyLAog
RENfRURJRF9DT05ORUNUT1JfTURESSA9IDE0LAogRENfRURJRF9DT05ORUNUT1JfRElTUExBWVBP
UlQgPSAxNQp9OwoKZW51bSBkY19lZGlkX3N0YXR1cyB7CiBFRElEX09LLAogRURJRF9CQURfSU5Q
VVQsCiBFRElEX05PX1JFU1BPTlNFLAogRURJRF9CQURfQ0hFQ0tTVU0sCiBFRElEX1RIRV9TQU1F
LAp9OwoKZW51bSBhY3RfcmV0dXJuX3N0YXR1cyB7CiBBQ1RfU1VDQ0VTUywKIEFDVF9MSU5LX0xP
U1QsCiBBQ1RfRkFJTEVECn07CgoKc3RydWN0IGRjX2NlYV9hdWRpb19tb2RlIHsKIHVpbnQ4X3Qg
Zm9ybWF0X2NvZGU7CiB1aW50OF90IGNoYW5uZWxfY291bnQ7CiB1aW50OF90IHNhbXBsZV9yYXRl
OwogdW5pb24gewogIHVpbnQ4X3Qgc2FtcGxlX3NpemU7CgogIHVpbnQ4X3QgbWF4X2JpdF9yYXRl
OwogIHVpbnQ4X3QgYXVkaW9fY29kZWNfdmVuZG9yX3NwZWNpZmljOwogfTsKfTsKCnN0cnVjdCBk
Y19lZGlkIHsKIHVpbnQzMl90IGxlbmd0aDsKIHVpbnQ4X3QgcmF3X2VkaWRbMTAyNF07Cn07CiMg
MjE1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMu
aCIKdW5pb24gZGlzcGxheV9jb250ZW50X3N1cHBvcnQgewogdW5zaWduZWQgaW50IHJhdzsKIHN0
cnVjdCB7CiAgdW5zaWduZWQgaW50IHZhbGlkX2NvbnRlbnRfdHlwZSA6MTsKICB1bnNpZ25lZCBp
bnQgZ2FtZV9jb250ZW50IDoxOwogIHVuc2lnbmVkIGludCBjaW5lbWFfY29udGVudCA6MTsKICB1
bnNpZ25lZCBpbnQgcGhvdG9fY29udGVudCA6MTsKICB1bnNpZ25lZCBpbnQgZ3JhcGhpY3NfY29u
dGVudCA6MTsKICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQgOjI3OwogfSBiaXRzOwp9OwoKc3RydWN0
IGRjX3BhbmVsX3BhdGNoIHsKIHVuc2lnbmVkIGludCBkcHBvd2VydXBfZGVsYXk7CiB1bnNpZ25l
ZCBpbnQgZXh0cmFfdDEyX21zOwogdW5zaWduZWQgaW50IGV4dHJhX2RlbGF5X2JhY2tsaWdodF9v
ZmY7CiB1bnNpZ25lZCBpbnQgZXh0cmFfdDdfbXM7CiB1bnNpZ25lZCBpbnQgbWFuYWdlX3NlY29u
ZGFyeV9saW5rOwp9OwoKc3RydWN0IGRjX2VkaWRfY2FwcyB7CgogdWludDE2X3QgbWFudWZhY3R1
cmVyX2lkOwogdWludDE2X3QgcHJvZHVjdF9pZDsKIHVpbnQzMl90IHNlcmlhbF9udW1iZXI7CiB1
aW50OF90IG1hbnVmYWN0dXJlX3dlZWs7CiB1aW50OF90IG1hbnVmYWN0dXJlX3llYXI7CiB1aW50
OF90IGRpc3BsYXlfbmFtZVsyMF07CgoKIHVpbnQ4X3Qgc3BlYWtlcl9mbGFnczsKIHVpbnQzMl90
IGF1ZGlvX21vZGVfY291bnQ7CiBzdHJ1Y3QgZGNfY2VhX2F1ZGlvX21vZGUgYXVkaW9fbW9kZXNb
MTZdOwogdWludDMyX3QgYXVkaW9fbGF0ZW5jeTsKIHVpbnQzMl90IHZpZGVvX2xhdGVuY3k7Cgog
dW5pb24gZGlzcGxheV9jb250ZW50X3N1cHBvcnQgY29udGVudF9zdXBwb3J0OwoKIHVpbnQ4X3Qg
cXNfYml0OwogdWludDhfdCBxeV9iaXQ7CgoKIGJvb2wgbHRlXzM0MG1jc2Nfc2NyYW1ibGU7Cgog
Ym9vbCBlZGlkX2hkbWk7CiBib29sIGhkcl9zdXBwb3J0ZWQ7Cgogc3RydWN0IGRjX3BhbmVsX3Bh
dGNoIHBhbmVsX3BhdGNoOwp9OwoKc3RydWN0IHZpZXcgewogdWludDMyX3Qgd2lkdGg7CiB1aW50
MzJfdCBoZWlnaHQ7Cn07CgpzdHJ1Y3QgZGNfbW9kZV9mbGFncyB7CgogdWludDMyX3QgSU5URVJM
QUNFIDoxOwoKIHVpbnQzMl90IE5BVElWRSA6MTsKCiB1aW50MzJfdCBQUkVGRVJSRUQgOjE7CgoK
IHVpbnQzMl90IFJFRFVDRURfQkxBTktJTkcgOjE7CgogdWludDMyX3QgVklERU9fT1BUSU1JWkVE
X1JBVEUgOjE7CgogdWludDMyX3QgUEFDS0VEX1BJWEVMX0ZPUk1BVCA6MTsKCiB1aW50MzJfdCBQ
UkVGRVJSRURfVklFVyA6MTsKCiB1aW50MzJfdCBUSUxFRF9NT0RFIDoxOwogdWludDMyX3QgRFNF
X01PREUgOjE7CgoKCgogdWludDMyX3QgTUlSQUNBU1RfUkVGUkVTSF9ESVZJREVSOwp9OwoKCmVu
dW0gZGNfdGltaW5nX3NvdXJjZSB7CiBUSU1JTkdfU09VUkNFX1VOREVGSU5FRCwKCgogVElNSU5H
X1NPVVJDRV9VU0VSX0ZPUkNFRCwKIFRJTUlOR19TT1VSQ0VfVVNFUl9PVkVSUklERSwKIFRJTUlO
R19TT1VSQ0VfQ1VTVE9NLAogVElNSU5HX1NPVVJDRV9FWFBMSUNJVCwKCgogVElNSU5HX1NPVVJD
RV9FRElEX0NFQV9TVkRfM0QsCiBUSU1JTkdfU09VUkNFX0VESURfQ0VBX1NWRF9QUkVGRVJSRUQs
CiBUSU1JTkdfU09VUkNFX0VESURfQ0VBX1NWRF80MjAsCiBUSU1JTkdfU09VUkNFX0VESURfREVU
QUlMRUQsCiBUSU1JTkdfU09VUkNFX0VESURfRVNUQUJMSVNIRUQsCiBUSU1JTkdfU09VUkNFX0VE
SURfU1RBTkRBUkQsCiBUSU1JTkdfU09VUkNFX0VESURfQ0VBX1NWRCwKIFRJTUlOR19TT1VSQ0Vf
RURJRF9DVlRfM0JZVEUsCiBUSU1JTkdfU09VUkNFX0VESURfNEJZVEUsCiBUSU1JTkdfU09VUkNF
X1ZCSU9TLAogVElNSU5HX1NPVVJDRV9DViwKIFRJTUlOR19TT1VSQ0VfVFYsCiBUSU1JTkdfU09V
UkNFX0hETUlfVklDLAoKCiBUSU1JTkdfU09VUkNFX0RFRkFVTFQsCgoKIFRJTUlOR19TT1VSQ0Vf
Q1VTVE9NX0JBU0UsCgoKIFRJTUlOR19TT1VSQ0VfUkFOR0VMSU1JVCwKIFRJTUlOR19TT1VSQ0Vf
T1NfRk9SQ0VELAogVElNSU5HX1NPVVJDRV9JTVBMSUNJVCwKCgogVElNSU5HX1NPVVJDRV9CQVNJ
Q01PREUsCgogVElNSU5HX1NPVVJDRV9DT1VOVAp9OwoKCnN0cnVjdCBzdGVyZW9fM2RfZmVhdHVy
ZXMgewogYm9vbCBzdXBwb3J0ZWQgOwogYm9vbCBhbGxUaW1pbmdzIDsKIGJvb2wgY2xvbmVNb2Rl
IDsKIGJvb2wgc2NhbGluZyA7CiBib29sIHNpbmdsZUZyYW1lU1dQYWNrZWQ7Cn07CgplbnVtIGRj
X3RpbWluZ19zdXBwb3J0X21ldGhvZCB7CiBUSU1JTkdfU1VQUE9SVF9NRVRIT0RfVU5ERUZJTkVE
LAogVElNSU5HX1NVUFBPUlRfTUVUSE9EX0VYUExJQ0lULAogVElNSU5HX1NVUFBPUlRfTUVUSE9E
X0lNUExJQ0lULAogVElNSU5HX1NVUFBPUlRfTUVUSE9EX05BVElWRQp9OwoKc3RydWN0IGRjX21v
ZGVfaW5mbyB7CiB1aW50MzJfdCBwaXhlbF93aWR0aDsKIHVpbnQzMl90IHBpeGVsX2hlaWdodDsK
IHVpbnQzMl90IGZpZWxkX3JhdGU7CgoKCiBlbnVtIGRjX3RpbWluZ19zdGFuZGFyZCB0aW1pbmdf
c3RhbmRhcmQ7CiBlbnVtIGRjX3RpbWluZ19zb3VyY2UgdGltaW5nX3NvdXJjZTsKIHN0cnVjdCBk
Y19tb2RlX2ZsYWdzIGZsYWdzOwp9OwoKZW51bSBkY19wb3dlcl9zdGF0ZSB7CiBEQ19QT1dFUl9T
VEFURV9PTiA9IDEsCiBEQ19QT1dFUl9TVEFURV9TVEFOREJZLAogRENfUE9XRVJfU1RBVEVfU1VT
UEVORCwKIERDX1BPV0VSX1NUQVRFX09GRgp9OwoKCmVudW0gZGNfdmlkZW9fcG93ZXJfc3RhdGUg
ewogRENfVklERU9fUE9XRVJfVU5TUEVDSUZJRUQgPSAwLAogRENfVklERU9fUE9XRVJfT04gPSAx
LAogRENfVklERU9fUE9XRVJfU1RBTkRCWSwKIERDX1ZJREVPX1BPV0VSX1NVU1BFTkQsCiBEQ19W
SURFT19QT1dFUl9PRkYsCiBEQ19WSURFT19QT1dFUl9ISUJFUk5BVEUsCiBEQ19WSURFT19QT1dF
Ul9TSFVURE9XTiwKIERDX1ZJREVPX1BPV0VSX1VMUFMsCiBEQ19WSURFT19QT1dFUl9BRlRFUl9S
RVNFVCwKIERDX1ZJREVPX1BPV0VSX01BWElNVU0KfTsKCmVudW0gZGNfYWNwaV9jbV9wb3dlcl9z
dGF0ZSB7CiBEQ19BQ1BJX0NNX1BPV0VSX1NUQVRFX0QwID0gMSwKIERDX0FDUElfQ01fUE9XRVJf
U1RBVEVfRDEgPSAyLAogRENfQUNQSV9DTV9QT1dFUl9TVEFURV9EMiA9IDQsCiBEQ19BQ1BJX0NN
X1BPV0VSX1NUQVRFX0QzID0gOAp9OwoKZW51bSBkY19jb25uZWN0aW9uX3R5cGUgewogZGNfY29u
bmVjdGlvbl9ub25lLAogZGNfY29ubmVjdGlvbl9zaW5nbGUsCiBkY19jb25uZWN0aW9uX21zdF9i
cmFuY2gsCiBkY19jb25uZWN0aW9uX2FjdGl2ZV9kb25nbGUKfTsKCnN0cnVjdCBkY19jc2NfYWRq
dXN0bWVudHMgewogc3RydWN0IGZpeGVkMzFfMzIgY29udHJhc3Q7CiBzdHJ1Y3QgZml4ZWQzMV8z
MiBzYXR1cmF0aW9uOwogc3RydWN0IGZpeGVkMzFfMzIgYnJpZ2h0bmVzczsKIHN0cnVjdCBmaXhl
ZDMxXzMyIGh1ZTsKfTsKCmVudW0gZHBjZF9kb3duc3RyZWFtX3BvcnRfbWF4X2JwYyB7CiBET1dO
X1NUUkVBTV9NQVhfOEJQQyA9IDAsCiBET1dOX1NUUkVBTV9NQVhfMTBCUEMsCiBET1dOX1NUUkVB
TV9NQVhfMTJCUEMsCiBET1dOX1NUUkVBTV9NQVhfMTZCUEMKfTsKCgplbnVtIGxpbmtfdHJhaW5p
bmdfb2Zmc2V0IHsKIERQUlggPSAwLAogTFRUUFJfUEhZX1JFUEVBVEVSMSA9IDEsCiBMVFRQUl9Q
SFlfUkVQRUFURVIyID0gMiwKIExUVFBSX1BIWV9SRVBFQVRFUjMgPSAzLAogTFRUUFJfUEhZX1JF
UEVBVEVSNCA9IDQsCiBMVFRQUl9QSFlfUkVQRUFURVI1ID0gNSwKIExUVFBSX1BIWV9SRVBFQVRF
UjYgPSA2LAogTFRUUFJfUEhZX1JFUEVBVEVSNyA9IDcsCiBMVFRQUl9QSFlfUkVQRUFURVI4ID0g
OAp9OwoKc3RydWN0IGRjX2x0dHByX2NhcHMgewogdW5pb24gZHBjZF9yZXYgcmV2aXNpb247CiB1
aW50OF90IG1vZGU7CiB1aW50OF90IG1heF9sYW5lX2NvdW50OwogdWludDhfdCBtYXhfbGlua19y
YXRlOwogdWludDhfdCBwaHlfcmVwZWF0ZXJfY250OwogdWludDhfdCBtYXhfZXh0X3RpbWVvdXQ7
CiB1aW50OF90IGF1eF9yZF9pbnRlcnZhbFs4IC0gMV07Cn07CgpzdHJ1Y3QgZGNfZG9uZ2xlX2Nh
cHMgewoKIGVudW0gZGlzcGxheV9kb25nbGVfdHlwZSBkb25nbGVfdHlwZTsKIGJvb2wgZXh0ZW5k
ZWRDYXBWYWxpZDsKCgogYm9vbCBpc19kcF9oZG1pX3MzZF9jb252ZXJ0ZXI7CiBib29sIGlzX2Rw
X2hkbWlfeWNiY3I0MjJfcGFzc190aHJvdWdoOwogYm9vbCBpc19kcF9oZG1pX3ljYmNyNDIwX3Bh
c3NfdGhyb3VnaDsKIGJvb2wgaXNfZHBfaGRtaV95Y2JjcjQyMl9jb252ZXJ0ZXI7CiBib29sIGlz
X2RwX2hkbWlfeWNiY3I0MjBfY29udmVydGVyOwogdWludDMyX3QgZHBfaGRtaV9tYXhfYnBjOwog
dWludDMyX3QgZHBfaGRtaV9tYXhfcGl4ZWxfY2xrX2luX2toejsKfTsKCmVudW0gc2NhbGluZ190
cmFuc2Zvcm1hdGlvbiB7CiBTQ0FMSU5HX1RSQU5TRk9STUFUSU9OX1VOSU5JVElBTElaRUQsCiBT
Q0FMSU5HX1RSQU5TRk9STUFUSU9OX0lERU5USVRZID0gMHgwMDAxLAogU0NBTElOR19UUkFOU0ZP
Uk1BVElPTl9DRU5URVJfVElNSU5HID0gMHgwMDAyLAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9G
VUxMX1NDUkVFTl9TQ0FMRSA9IDB4MDAwNCwKIFNDQUxJTkdfVFJBTlNGT1JNQVRJT05fUFJFU0VS
VkVfQVNQRUNUX1JBVElPX1NDQUxFID0gMHgwMDA4LAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9E
QUxfREVDSURFID0gMHgwMDEwLAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9JTlZBTElEID0gMHg4
MDAwMDAwMCwKCgogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9CRUdJTkcgPSBTQ0FMSU5HX1RSQU5T
Rk9STUFUSU9OX0lERU5USVRZLAogU0NBTElOR19UUkFOU0ZPUk1BVElPTl9FTkQgPQogIFNDQUxJ
TkdfVFJBTlNGT1JNQVRJT05fUFJFU0VSVkVfQVNQRUNUX1JBVElPX1NDQUxFCn07CgplbnVtIGRp
c3BsYXlfY29udGVudF90eXBlIHsKIERJU1BMQVlfQ09OVEVOVF9UWVBFX05PX0RBVEEgPSAwLAog
RElTUExBWV9DT05URU5UX1RZUEVfR1JBUEhJQ1MgPSAxLAogRElTUExBWV9DT05URU5UX1RZUEVf
UEhPVE8gPSAyLAogRElTUExBWV9DT05URU5UX1RZUEVfQ0lORU1BID0gNCwKIERJU1BMQVlfQ09O
VEVOVF9UWVBFX0dBTUUgPSA4Cn07CgoKc3RydWN0IGR3Yl9zdGVyZW9fcGFyYW1zIHsKIGJvb2wg
c3RlcmVvX2VuYWJsZWQ7CiBlbnVtIGR3Yl9zdGVyZW9fdHlwZSBzdGVyZW9fdHlwZTsKIGJvb2wg
c3RlcmVvX3BvbGFyaXR5OwogZW51bSBkd2Jfc3RlcmVvX2V5ZV9zZWxlY3Qgc3RlcmVvX2V5ZV9z
ZWxlY3Q7Cn07CgpzdHJ1Y3QgZGNfZHdiX2Nudl9wYXJhbXMgewogdW5zaWduZWQgaW50IHNyY193
aWR0aDsKIHVuc2lnbmVkIGludCBzcmNfaGVpZ2h0OwogdW5zaWduZWQgaW50IGNyb3Bfd2lkdGg7
CiBib29sIGNyb3BfZW47CiB1bnNpZ25lZCBpbnQgY3JvcF9oZWlnaHQ7CiB1bnNpZ25lZCBpbnQg
Y3JvcF94OwogdW5zaWduZWQgaW50IGNyb3BfeTsKIGVudW0gZHdiX2Nudl9vdXRfYnBjIGNudl9v
dXRfYnBjOwp9OwoKc3RydWN0IGRjX2R3Yl9wYXJhbXMgewogc3RydWN0IGRjX2R3Yl9jbnZfcGFy
YW1zIGNudl9wYXJhbXM7CiB1bnNpZ25lZCBpbnQgZGVzdF93aWR0aDsKIHVuc2lnbmVkIGludCBk
ZXN0X2hlaWdodDsKIGVudW0gZHdiX3NjYWxlcl9tb2RlIG91dF9mb3JtYXQ7CiBlbnVtIGR3Yl9v
dXRwdXRfZGVwdGggb3V0cHV0X2RlcHRoOwogZW51bSBkd2JfY2FwdHVyZV9yYXRlIGNhcHR1cmVf
cmF0ZTsKIHN0cnVjdCBzY2FsaW5nX3RhcHMgc2NhbGVyX3RhcHM7CiBlbnVtIGR3Yl9zdWJzYW1w
bGVfcG9zaXRpb24gc3Vic2FtcGxlX3Bvc2l0aW9uOwogc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMg
Km91dF90cmFuc2Zlcl9mdW5jOwp9OwoKCgp1bmlvbiBhdWRpb19zYW1wbGVfcmF0ZXMgewogc3Ry
dWN0IHNhbXBsZV9yYXRlcyB7CiAgdWludDhfdCBSQVRFXzMyOjE7CiAgdWludDhfdCBSQVRFXzQ0
XzE6MTsKICB1aW50OF90IFJBVEVfNDg6MTsKICB1aW50OF90IFJBVEVfODhfMjoxOwogIHVpbnQ4
X3QgUkFURV85NjoxOwogIHVpbnQ4X3QgUkFURV8xNzZfNDoxOwogIHVpbnQ4X3QgUkFURV8xOTI6
MTsKIH0gcmF0ZTsKCiB1aW50OF90IGFsbDsKfTsKCnN0cnVjdCBhdWRpb19zcGVha2VyX2ZsYWdz
IHsKIHVpbnQzMl90IEZMX0ZSOjE7CiB1aW50MzJfdCBMRkU6MTsKIHVpbnQzMl90IEZDOjE7CiB1
aW50MzJfdCBSTF9SUjoxOwogdWludDMyX3QgUkM6MTsKIHVpbnQzMl90IEZMQ19GUkM6MTsKIHVp
bnQzMl90IFJMQ19SUkM6MTsKIHVpbnQzMl90IFNVUFBPUlRfQUk6MTsKfTsKCnN0cnVjdCBhdWRp
b19zcGVha2VyX2luZm8gewogdWludDMyX3QgQUxMU1BFQUtFUlM6NzsKIHVpbnQzMl90IFNVUFBP
UlRfQUk6MTsKfTsKCgpzdHJ1Y3QgYXVkaW9faW5mb19mbGFncyB7CgogdW5pb24gewoKICBzdHJ1
Y3QgYXVkaW9fc3BlYWtlcl9mbGFncyBzcGVha2VyX2ZsYWdzOwogIHN0cnVjdCBhdWRpb19zcGVh
a2VyX2luZm8gaW5mbzsKCiAgdWludDhfdCBhbGw7CiB9Owp9OwoKZW51bSBhdWRpb19mb3JtYXRf
Y29kZSB7CiBBVURJT19GT1JNQVRfQ09ERV9GSVJTVCA9IDEsCiBBVURJT19GT1JNQVRfQ09ERV9M
SU5FQVJQQ00gPSBBVURJT19GT1JNQVRfQ09ERV9GSVJTVCwKCiBBVURJT19GT1JNQVRfQ09ERV9B
QzMsCgogQVVESU9fRk9STUFUX0NPREVfTVBFRzEsCgogQVVESU9fRk9STUFUX0NPREVfTVAzLAoK
IEFVRElPX0ZPUk1BVF9DT0RFX01QRUcyLAogQVVESU9fRk9STUFUX0NPREVfQUFDLAogQVVESU9f
Rk9STUFUX0NPREVfRFRTLAogQVVESU9fRk9STUFUX0NPREVfQVRSQUMsCiBBVURJT19GT1JNQVRf
Q09ERV8xQklUQVVESU8sCiBBVURJT19GT1JNQVRfQ09ERV9ET0xCWURJR0lUQUxQTFVTLAogQVVE
SU9fRk9STUFUX0NPREVfRFRTX0hELAogQVVESU9fRk9STUFUX0NPREVfTUFUX01MUCwKIEFVRElP
X0ZPUk1BVF9DT0RFX0RTVCwKIEFVRElPX0ZPUk1BVF9DT0RFX1dNQVBSTywKIEFVRElPX0ZPUk1B
VF9DT0RFX0xBU1QsCiBBVURJT19GT1JNQVRfQ09ERV9DT1VOVCA9CiAgQVVESU9fRk9STUFUX0NP
REVfTEFTVCAtIEFVRElPX0ZPUk1BVF9DT0RFX0ZJUlNUCn07CgpzdHJ1Y3QgYXVkaW9fbW9kZSB7
CgogZW51bSBhdWRpb19mb3JtYXRfY29kZSBmb3JtYXRfY29kZTsKCiB1aW50OF90IGNoYW5uZWxf
Y291bnQ7CgogdW5pb24gYXVkaW9fc2FtcGxlX3JhdGVzIHNhbXBsZV9yYXRlczsKIHVuaW9uIHsK
CiAgdWludDhfdCBzYW1wbGVfc2l6ZTsKCiAgdWludDhfdCBtYXhfYml0X3JhdGU7CgogIHVpbnQ4
X3QgdmVuZG9yX3NwZWNpZmljOwogfTsKfTsKCnN0cnVjdCBhdWRpb19pbmZvIHsKIHN0cnVjdCBh
dWRpb19pbmZvX2ZsYWdzIGZsYWdzOwogdWludDMyX3QgdmlkZW9fbGF0ZW5jeTsKIHVpbnQzMl90
IGF1ZGlvX2xhdGVuY3k7CiB1aW50MzJfdCBkaXNwbGF5X2luZGV4OwogdWludDhfdCBkaXNwbGF5
X25hbWVbMjBdOwogdWludDMyX3QgbWFudWZhY3R1cmVfaWQ7CiB1aW50MzJfdCBwcm9kdWN0X2lk
OwoKIHVpbnQzMl90IHBvcnRfaWRbMl07CiB1aW50MzJfdCBtb2RlX2NvdW50OwoKIHN0cnVjdCBh
dWRpb19tb2RlIG1vZGVzWzE2XTsKfTsKc3RydWN0IGF1ZGlvX2NoZWNrIHsKIHVuc2lnbmVkIGlu
dCBhdWRpb19wYWNrZXRfdHlwZTsKIHVuc2lnbmVkIGludCBtYXhfYXVkaW9zYW1wbGVfcmF0ZTsK
IHVuc2lnbmVkIGludCBhY2F0Owp9OwplbnVtIGRjX2luZm9mcmFtZV90eXBlIHsKIERDX0hETUlf
SU5GT0ZSQU1FX1RZUEVfVkVORE9SID0gMHg4MSwKIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfQVZJ
ID0gMHg4MiwKIERDX0hETUlfSU5GT0ZSQU1FX1RZUEVfU1BEID0gMHg4MywKIERDX0hETUlfSU5G
T0ZSQU1FX1RZUEVfQVVESU8gPSAweDg0LAogRENfRFBfSU5GT0ZSQU1FX1RZUEVfUFBTID0gMHgx
MCwKfTsKCnN0cnVjdCBkY19pbmZvX3BhY2tldCB7CiBib29sIHZhbGlkOwogdWludDhfdCBoYjA7
CiB1aW50OF90IGhiMTsKIHVpbnQ4X3QgaGIyOwogdWludDhfdCBoYjM7CiB1aW50OF90IHNiWzMy
XTsKfTsKCnN0cnVjdCBkY19pbmZvX3BhY2tldF8xMjggewogYm9vbCB2YWxpZDsKIHVpbnQ4X3Qg
aGIwOwogdWludDhfdCBoYjE7CiB1aW50OF90IGhiMjsKIHVpbnQ4X3QgaGIzOwogdWludDhfdCBz
YlsxMjhdOwp9OwoKCgpzdHJ1Y3QgZGNfcGxhbmVfZmxpcF90aW1lIHsKIHVuc2lnbmVkIGludCB0
aW1lX2VsYXBzZWRfaW5fdXNbMTBdOwogdW5zaWduZWQgaW50IGluZGV4OwogdW5zaWduZWQgaW50
IHByZXZfdXBkYXRlX3RpbWVfaW5fdXM7Cn07CgpzdHJ1Y3QgcHNyX2NvbmZpZyB7CiB1bnNpZ25l
ZCBjaGFyIHBzcl92ZXJzaW9uOwogdW5zaWduZWQgaW50IHBzcl9yZmJfc2V0dXBfdGltZTsKIGJv
b2wgcHNyX2V4aXRfbGlua190cmFpbmluZ19yZXF1aXJlZDsKIGJvb2wgcHNyX2ZyYW1lX2NhcHR1
cmVfaW5kaWNhdGlvbl9yZXE7CiB1bnNpZ25lZCBpbnQgcHNyX3NkcF90cmFuc21pdF9saW5lX251
bV9kZWFkbGluZTsKIGJvb2wgYWxsb3dfc211X29wdGltaXphdGlvbnM7Cn07Cgp1bmlvbiBkbWN1
X3Bzcl9sZXZlbCB7CiBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCBTS0lQX0NSQzoxOwogIHVuc2ln
bmVkIGludCBTS0lQX0RQX1ZJRF9TVFJFQU1fRElTQUJMRToxOwogIHVuc2lnbmVkIGludCBTS0lQ
X1BIWV9QT1dFUl9ET1dOOjE7CiAgdW5zaWduZWQgaW50IFNLSVBfQVVYX0FDS19DSEVDSzoxOwog
IHVuc2lnbmVkIGludCBTS0lQX0NSVENfRElTQUJMRToxOwogIHVuc2lnbmVkIGludCBTS0lQX0FV
WF9SRkJfQ0FQVFVSRV9DSEVDSzoxOwogIHVuc2lnbmVkIGludCBTS0lQX1NNVV9OT1RJRklDQVRJ
T046MTsKICB1bnNpZ25lZCBpbnQgU0tJUF9BVVRPX1NUQVRFX0FEVkFOQ0U6MTsKICB1bnNpZ25l
ZCBpbnQgRElTQUJMRV9QU1JfRU5UUllfQUJPUlQ6MTsKICB1bnNpZ25lZCBpbnQgU0tJUF9TSU5H
TEVfT1RHX0RJU0FCTEU6MTsKICB1bnNpZ25lZCBpbnQgUkVTRVJWRUQ6MjI7CiB9IGJpdHM7CiB1
bnNpZ25lZCBpbnQgdTMyYWxsOwp9OwoKZW51bSBwaHlzaWNhbF9waHlfaWQgewogUEhZTERfMCwK
IFBIWUxEXzEsCiBQSFlMRF8yLAogUEhZTERfMywKIFBIWUxEXzQsCiBQSFlMRF81LAogUEhZTERf
NiwKIFBIWUxEXzcsCiBQSFlMRF84LAogUEhZTERfOSwKIFBIWUxEX0NPVU5ULAogUEhZTERfVU5L
Tk9XTiA9ICgtMUwpCn07CgplbnVtIHBoeV90eXBlIHsKIFBIWV9UWVBFX1VOS05PV04gPSAxLAog
UEhZX1RZUEVfUENJRV9QSFkgPSAyLAogUEhZX1RZUEVfVU5JUEhZID0gMywKfTsKCnN0cnVjdCBw
c3JfY29udGV4dCB7CgogZW51bSBjaGFubmVsX2lkIGNoYW5uZWw7CgogZW51bSB0cmFuc21pdHRl
ciB0cmFuc21pdHRlcklkOwoKIGVudW0gZW5naW5lX2lkIGVuZ2luZUlkOwoKIGVudW0gY29udHJv
bGxlcl9pZCBjb250cm9sbGVySWQ7CgogZW51bSBwaHlfdHlwZSBwaHlUeXBlOwoKIGVudW0gcGh5
c2ljYWxfcGh5X2lkIHNtdVBoeUlkOwoKCgoKCiB1bnNpZ25lZCBpbnQgY3J0Y1RpbWluZ1ZlcnRp
Y2FsVG90YWw7CgoKCiBib29sIHBzclN1cHBvcnRlZERpc3BsYXlDb25maWc7CgogYm9vbCBwc3JF
eGl0TGlua1RyYWluaW5nUmVxdWlyZWQ7CgoKCgoKCiBib29sIHBzckZyYW1lQ2FwdHVyZUluZGlj
YXRpb25SZXE7CgoKCiB1bnNpZ25lZCBpbnQgc2RwVHJhbnNtaXRMaW5lTnVtRGVhZGxpbmU7CgoK
CiB1bnNpZ25lZCBpbnQgdnN5bmNfcmF0ZV9oejsKIHVuc2lnbmVkIGludCBza2lwUHNyV2FpdEZv
clBsbExvY2s7CiB1bnNpZ25lZCBpbnQgbnVtYmVyT2ZDb250cm9sbGVyczsKCgoKCiBib29sIHJm
Yl91cGRhdGVfYXV0b19lbjsKCiB1bnNpZ25lZCBpbnQgdGltZWh5c3RfZnJhbWVzOwoKIHVuc2ln
bmVkIGludCBoeXN0X2xpbmVzOwoKCgogdW5zaWduZWQgaW50IGF1eF9yZXBlYXRzOwoKIHVuaW9u
IGRtY3VfcHNyX2xldmVsIHBzcl9sZXZlbDsKCgoKIHVuc2lnbmVkIGludCBmcmFtZV9kZWxheTsK
IGJvb2wgYWxsb3dfc211X29wdGltaXphdGlvbnM7Cn07CgpzdHJ1Y3QgY29sb3JzcGFjZV90cmFu
c2Zvcm0gewogc3RydWN0IGZpeGVkMzFfMzIgbWF0cml4WzEyXTsKIGJvb2wgZW5hYmxlX3JlbWFw
Owp9OwoKZW51bSBpMmNfbW90X21vZGUgewogSTJDX01PVF9VTkRFRiwKIEkyQ19NT1RfVFJVRSwK
IEkyQ19NT1RfRkFMU0UKfTsKCnN0cnVjdCBBc2ljU3RhdGVFeCB7CiB1bnNpZ25lZCBpbnQgbWVt
b3J5Q2xvY2s7CiB1bnNpZ25lZCBpbnQgZGlzcGxheUNsb2NrOwogdW5zaWduZWQgaW50IGVuZ2lu
ZUNsb2NrOwogdW5zaWduZWQgaW50IG1heFN1cHBvcnRlZERwcENsb2NrOwogdW5zaWduZWQgaW50
IGRwcENsb2NrOwogdW5zaWduZWQgaW50IHNvY0Nsb2NrOwogdW5zaWduZWQgaW50IGRjZkNsb2Nr
RGVlcFNsZWVwOwogdW5zaWduZWQgaW50IGZDbG9jazsKIHVuc2lnbmVkIGludCBwaHlDbG9jazsK
fTsKCgplbnVtIGRjX2Nsb2NrX3R5cGUgewogRENfQ0xPQ0tfVFlQRV9ESVNQQ0xLID0gMCwKIERD
X0NMT0NLX1RZUEVfRFBQQ0xLID0gMSwKfTsKCnN0cnVjdCBkY19jbG9ja19jb25maWcgewogdWlu
dDMyX3QgbWF4X2Nsb2NrX2toejsKIHVpbnQzMl90IG1pbl9jbG9ja19raHo7CiB1aW50MzJfdCBi
d19yZXF1aXJlcXVpcmVkX2Nsb2NrX2toejsKIHVpbnQzMl90IGN1cnJlbnRfY2xvY2tfa2h6Owp9
OwoKCnVuaW9uIGRzY19zbGljZV9jYXBzMSB7CiBzdHJ1Y3QgewogIHVpbnQ4X3QgTlVNX1NMSUNF
U18xIDogMTsKICB1aW50OF90IE5VTV9TTElDRVNfMiA6IDE7CiAgdWludDhfdCBSRVNFUlZFRCA6
IDE7CiAgdWludDhfdCBOVU1fU0xJQ0VTXzQgOiAxOwogIHVpbnQ4X3QgTlVNX1NMSUNFU182IDog
MTsKICB1aW50OF90IE5VTV9TTElDRVNfOCA6IDE7CiAgdWludDhfdCBOVU1fU0xJQ0VTXzEwIDog
MTsKICB1aW50OF90IE5VTV9TTElDRVNfMTIgOiAxOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07
Cgp1bmlvbiBkc2Nfc2xpY2VfY2FwczIgewogc3RydWN0IHsKICB1aW50OF90IE5VTV9TTElDRVNf
MTYgOiAxOwogIHVpbnQ4X3QgTlVNX1NMSUNFU18yMCA6IDE7CiAgdWludDhfdCBOVU1fU0xJQ0VT
XzI0IDogMTsKICB1aW50OF90IFJFU0VSVkVEIDogNTsKIH0gYml0czsKIHVpbnQ4X3QgcmF3Owp9
OwoKdW5pb24gZHNjX2NvbG9yX2Zvcm1hdHMgewogc3RydWN0IHsKICB1aW50OF90IFJHQiA6IDE7
CiAgdWludDhfdCBZQ0JDUl80NDQgOiAxOwogIHVpbnQ4X3QgWUNCQ1JfU0lNUExFXzQyMiA6IDE7
CiAgdWludDhfdCBZQ0JDUl9OQVRJVkVfNDIyIDogMTsKICB1aW50OF90IFlDQkNSX05BVElWRV80
MjAgOiAxOwogIHVpbnQ4X3QgUkVTRVJWRUQgOiAzOwogfSBiaXRzOwogdWludDhfdCByYXc7Cn07
Cgp1bmlvbiBkc2NfY29sb3JfZGVwdGggewogc3RydWN0IHsKICB1aW50OF90IFJFU0VSVkVEMSA6
IDE7CiAgdWludDhfdCBDT0xPUl9ERVBUSF84X0JQQyA6IDE7CiAgdWludDhfdCBDT0xPUl9ERVBU
SF8xMF9CUEMgOiAxOwogIHVpbnQ4X3QgQ09MT1JfREVQVEhfMTJfQlBDIDogMTsKICB1aW50OF90
IFJFU0VSVkVEMiA6IDM7CiB9IGJpdHM7CiB1aW50OF90IHJhdzsKfTsKCnN0cnVjdCBkc2NfZGVj
X2RwY2RfY2FwcyB7CiBib29sIGlzX2RzY19zdXBwb3J0ZWQ7CiB1aW50OF90IGRzY192ZXJzaW9u
OwogaW50MzJfdCByY19idWZmZXJfc2l6ZTsKIHVuaW9uIGRzY19zbGljZV9jYXBzMSBzbGljZV9j
YXBzMTsKIHVuaW9uIGRzY19zbGljZV9jYXBzMiBzbGljZV9jYXBzMjsKIGludDMyX3QgbGJfYml0
X2RlcHRoOwogYm9vbCBpc19ibG9ja19wcmVkX3N1cHBvcnRlZDsKIGludDMyX3QgZWRwX21heF9i
aXRzX3Blcl9waXhlbDsKIHVuaW9uIGRzY19jb2xvcl9mb3JtYXRzIGNvbG9yX2Zvcm1hdHM7CiB1
bmlvbiBkc2NfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBpbnQzMl90IHRocm91Z2hwdXRfbW9k
ZV8wX21wczsKIGludDMyX3QgdGhyb3VnaHB1dF9tb2RlXzFfbXBzOwogaW50MzJfdCBtYXhfc2xp
Y2Vfd2lkdGg7CiB1aW50MzJfdCBicHBfaW5jcmVtZW50X2RpdjsKCgogdWludDMyX3QgYnJhbmNo
X292ZXJhbGxfdGhyb3VnaHB1dF8wX21wczsKIHVpbnQzMl90IGJyYW5jaF9vdmVyYWxsX3Rocm91
Z2hwdXRfMV9tcHM7CiB1aW50MzJfdCBicmFuY2hfbWF4X2xpbmVfd2lkdGg7Cn07CiMgMzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZGNjZy5oIiAy
CgpzdHJ1Y3QgZGNjZyB7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogY29uc3Qgc3RydWN0IGRj
Y2dfZnVuY3MgKmZ1bmNzOwoKIGludCByZWZfZHBwY2xrOwp9OwoKc3RydWN0IGRjY2dfZnVuY3Mg
ewogdm9pZCAoKnVwZGF0ZV9kcHBfZHRvKShzdHJ1Y3QgZGNjZyAqZGNjZywKICAgaW50IGRwcF9p
bnN0LAogICBpbnQgcmVxX2RwcGNsayk7CiB2b2lkICgqZ2V0X2RjY2dfcmVmX2ZyZXEpKHN0cnVj
dCBkY2NnICpkY2NnLAogICB1bnNpZ25lZCBpbnQgeHRhbGluX2ZyZXFfaW5LaHosCiAgIHVuc2ln
bmVkIGludCAqZGNjZ19yZWZfZnJlcV9pbktoeik7CiB2b2lkICgqZGNjZ19pbml0KShzdHJ1Y3Qg
ZGNjZyAqZGNjZyk7Cn07CiMgMjcgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3JfaW50ZXJuYWwuaCIgMQoj
IDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Ns
a19tZ3JfaW50ZXJuYWwuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIKIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfdHlwZXMuaCIgMQojIDMwICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgoKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfdHlwZXMuaCIgMQoj
IDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dn
ZXJfdHlwZXMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvb3NfdHlwZXMuaCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvaW5jbHVkZS9sb2dnZXJfdHlwZXMuaCIgMgojIDcyICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfdHlwZXMuaCIKc3RydWN0IGRhbF9s
b2dnZXI7CgpzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9jdHggewogY2hhciAqYnVmOwogc2l6ZV90IHBv
czsKIHNpemVfdCBzaXplOwp9OwoKZW51bSBkY19sb2dfdHlwZSB7CiBMT0dfRVJST1IgPSAwLAog
TE9HX1dBUk5JTkcsCiBMT0dfREVCVUcsCiBMT0dfREMsCiBMT0dfRFROLAogTE9HX1NVUkZBQ0Us
CiBMT0dfSFdfSE9UUExVRywKIExPR19IV19MSU5LX1RSQUlOSU5HLAogTE9HX0hXX1NFVF9NT0RF
LAogTE9HX0hXX1JFU1VNRV9TMywKIExPR19IV19BVURJTywKIExPR19IV19IUERfSVJRLAogTE9H
X01TVCwKIExPR19TQ0FMRVIsCiBMT0dfQklPUywKIExPR19CQU5EV0lEVEhfQ0FMQ1MsCiBMT0df
QkFORFdJRFRIX1ZBTElEQVRJT04sCiBMT0dfSTJDX0FVWCwKIExPR19TWU5DLAogTE9HX0JBQ0tM
SUdIVCwKIExPR19GRUFUVVJFX09WRVJSSURFLAogTE9HX0RFVEVDVElPTl9FRElEX1BBUlNFUiwK
IExPR19ERVRFQ1RJT05fRFBfQ0FQUywKIExPR19SRVNPVVJDRSwKIExPR19ETUwsCiBMT0dfRVZF
TlRfTU9ERV9TRVQsCiBMT0dfRVZFTlRfREVURUNUSU9OLAogTE9HX0VWRU5UX0xJTktfVFJBSU5J
TkcsCiBMT0dfRVZFTlRfTElOS19MT1NTLAogTE9HX0VWRU5UX1VOREVSRkxPVywKIExPR19JRl9U
UkFDRSwKIExPR19QRVJGX1RSQUNFLAogTE9HX0RJU1BMQVlTVEFUUywKIExPR19IRE1JX1JFVElN
RVJfUkVEUklWRVIsCiBMT0dfRFNDLAogTE9HX0RXQiwKIExPR19HQU1NQV9ERUJVRywKIExPR19N
QVhfSFdfUE9JTlRTLAogTE9HX0FMTF9URl9DSEFOTkVMUywKIExPR19TQU1QTEVfMURMVVQsCiBM
T0dfU0VDVElPTl9UT1RBTF9DT1VOVAp9OwojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9pbmNsdWRlL2dwaW9fdHlwZXMuaCIgMQojIDQwICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgiCmVudW0gZ3Bp
b19yZXN1bHQgewogR1BJT19SRVNVTFRfT0ssCiBHUElPX1JFU1VMVF9OVUxMX0hBTkRMRSwKIEdQ
SU9fUkVTVUxUX0lOVkFMSURfREFUQSwKIEdQSU9fUkVTVUxUX0RFVklDRV9CVVNZLAogR1BJT19S
RVNVTFRfT1BFTl9GQUlMRUQsCiBHUElPX1JFU1VMVF9BTFJFQURZX09QRU5FRCwKIEdQSU9fUkVT
VUxUX05PTl9TUEVDSUZJQ19FUlJPUgp9OwojIDU4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k
Z3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgiCmVudW0gZ3Bpb19pZCB7CiBHUElP
X0lEX1VOS05PV04gPSAoLTEpLAogR1BJT19JRF9ERENfREFUQSwKIEdQSU9fSURfRERDX0NMT0NL
LAogR1BJT19JRF9HRU5FUklDLAogR1BJT19JRF9IUEQsCiBHUElPX0lEX0dQSU9fUEFELAogR1BJ
T19JRF9WSVBfUEFELAogR1BJT19JRF9TWU5DLAogR1BJT19JRF9HU0wsCiBHUElPX0lEX0NPVU5U
LAogR1BJT19JRF9NSU4gPSBHUElPX0lEX0REQ19EQVRBLAogR1BJT19JRF9NQVggPSBHUElPX0lE
X0dTTAp9OwoKCgoKc3RydWN0IGdwaW9fcGluX2luZm8gewogdWludDMyX3Qgb2Zmc2V0OwogdWlu
dDMyX3Qgb2Zmc2V0X3k7CiB1aW50MzJfdCBvZmZzZXRfZW47CiB1aW50MzJfdCBvZmZzZXRfbWFz
azsKCiB1aW50MzJfdCBtYXNrOwogdWludDMyX3QgbWFza195OwogdWludDMyX3QgbWFza19lbjsK
IHVpbnQzMl90IG1hc2tfbWFzazsKfTsKCmVudW0gZ3Bpb19waW5fb3V0cHV0X3N0YXRlIHsKIEdQ
SU9fUElOX09VVFBVVF9TVEFURV9BQ1RJVkVfTE9XLAogR1BJT19QSU5fT1VUUFVUX1NUQVRFX0FD
VElWRV9ISUdILAogR1BJT19QSU5fT1VUUFVUX1NUQVRFX0RFRkFVTFQgPSBHUElPX1BJTl9PVVRQ
VVRfU1RBVEVfQUNUSVZFX0xPVwp9OwoKZW51bSBncGlvX2dlbmVyaWMgewogR1BJT19HRU5FUklD
X1VOS05PV04gPSAoLTEpLAogR1BJT19HRU5FUklDX0EsCiBHUElPX0dFTkVSSUNfQiwKIEdQSU9f
R0VORVJJQ19DLAogR1BJT19HRU5FUklDX0QsCiBHUElPX0dFTkVSSUNfRSwKIEdQSU9fR0VORVJJ
Q19GLAogR1BJT19HRU5FUklDX0csCiBHUElPX0dFTkVSSUNfQ09VTlQsCiBHUElPX0dFTkVSSUNf
TUlOID0gR1BJT19HRU5FUklDX0EsCiBHUElPX0dFTkVSSUNfTUFYID0gR1BJT19HRU5FUklDX0IK
fTsKCmVudW0gZ3Bpb19ocGQgewogR1BJT19IUERfVU5LTk9XTiA9ICgtMSksCiBHUElPX0hQRF8x
LAogR1BJT19IUERfMiwKIEdQSU9fSFBEXzMsCiBHUElPX0hQRF80LAogR1BJT19IUERfNSwKIEdQ
SU9fSFBEXzYsCiBHUElPX0hQRF9DT1VOVCwKIEdQSU9fSFBEX01JTiA9IEdQSU9fSFBEXzEsCiBH
UElPX0hQRF9NQVggPSBHUElPX0hQRF82Cn07CgplbnVtIGdwaW9fZ3Bpb19wYWQgewogR1BJT19H
UElPX1BBRF9VTktOT1dOID0gKC0xKSwKIEdQSU9fR1BJT19QQURfMCwKIEdQSU9fR1BJT19QQURf
MSwKIEdQSU9fR1BJT19QQURfMiwKIEdQSU9fR1BJT19QQURfMywKIEdQSU9fR1BJT19QQURfNCwK
IEdQSU9fR1BJT19QQURfNSwKIEdQSU9fR1BJT19QQURfNiwKIEdQSU9fR1BJT19QQURfNywKIEdQ
SU9fR1BJT19QQURfOCwKIEdQSU9fR1BJT19QQURfOSwKIEdQSU9fR1BJT19QQURfMTAsCiBHUElP
X0dQSU9fUEFEXzExLAogR1BJT19HUElPX1BBRF8xMiwKIEdQSU9fR1BJT19QQURfMTMsCiBHUElP
X0dQSU9fUEFEXzE0LAogR1BJT19HUElPX1BBRF8xNSwKIEdQSU9fR1BJT19QQURfMTYsCiBHUElP
X0dQSU9fUEFEXzE3LAogR1BJT19HUElPX1BBRF8xOCwKIEdQSU9fR1BJT19QQURfMTksCiBHUElP
X0dQSU9fUEFEXzIwLAogR1BJT19HUElPX1BBRF8yMSwKIEdQSU9fR1BJT19QQURfMjIsCiBHUElP
X0dQSU9fUEFEXzIzLAogR1BJT19HUElPX1BBRF8yNCwKIEdQSU9fR1BJT19QQURfMjUsCiBHUElP
X0dQSU9fUEFEXzI2LAogR1BJT19HUElPX1BBRF8yNywKIEdQSU9fR1BJT19QQURfMjgsCiBHUElP
X0dQSU9fUEFEXzI5LAogR1BJT19HUElPX1BBRF8zMCwKIEdQSU9fR1BJT19QQURfQ09VTlQsCiBH
UElPX0dQSU9fUEFEX01JTiA9IEdQSU9fR1BJT19QQURfMCwKIEdQSU9fR1BJT19QQURfTUFYID0g
R1BJT19HUElPX1BBRF8zMAp9OwoKZW51bSBncGlvX3ZpcF9wYWQgewogR1BJT19WSVBfUEFEX1VO
S05PV04gPSAoLTEpLAoKCiBHUElPX1ZJUF9QQURfU0NMLAoKCiBHUElPX1ZJUF9QQURfU0RBLAog
R1BJT19WSVBfUEFEX1ZIQUQsCiBHUElPX1ZJUF9QQURfVlBIQ1RMLAogR1BJT19WSVBfUEFEX1ZJ
UENMSywKIEdQSU9fVklQX1BBRF9WSUQsCiBHUElPX1ZJUF9QQURfVlBDTEswLAogR1BJT19WSVBf
UEFEX0RWQUxJRCwKIEdQSU9fVklQX1BBRF9QU1lOQywKIEdQSU9fVklQX1BBRF9DT1VOVCwKIEdQ
SU9fVklQX1BBRF9NSU4gPSBHUElPX1ZJUF9QQURfU0NMLAogR1BJT19WSVBfUEFEX01BWCA9IEdQ
SU9fVklQX1BBRF9QU1lOQwp9OwoKZW51bSBncGlvX3N5bmMgewogR1BJT19TWU5DX1VOS05PV04g
PSAoLTEpLAogR1BJT19TWU5DX0hTWU5DX0EsCiBHUElPX1NZTkNfVlNZTkNfQSwKIEdQSU9fU1lO
Q19IU1lOQ19CLAogR1BJT19TWU5DX1ZTWU5DX0IsCiBHUElPX1NZTkNfQ09VTlQsCiBHUElPX1NZ
TkNfTUlOID0gR1BJT19TWU5DX0hTWU5DX0EsCiBHUElPX1NZTkNfTUFYID0gR1BJT19TWU5DX1ZT
WU5DX0IKfTsKCmVudW0gZ3Bpb19nc2wgewogR1BJT19HU0xfVU5LTk9XTiA9ICgtMSksCiBHUElP
X0dTTF9HRU5MT0NLX0NMT0NLLAogR1BJT19HU0xfR0VOTE9DS19WU1lOQywKIEdQSU9fR1NMX1NX
QVBMT0NLX0EsCiBHUElPX0dTTF9TV0FQTE9DS19CLAogR1BJT19HU0xfQ09VTlQsCiBHUElPX0dT
TF9NSU4gPSBHUElPX0dTTF9HRU5MT0NLX0NMT0NLLAogR1BJT19HU0xfTUFYID0gR1BJT19HU0xf
U1dBUExPQ0tfQgp9OwoKCgoKCgplbnVtIGdwaW9fZGRjX2xpbmUgewogR1BJT19ERENfTElORV9V
TktOT1dOID0gKC0xKSwKIEdQSU9fRERDX0xJTkVfRERDMSwKIEdQSU9fRERDX0xJTkVfRERDMiwK
IEdQSU9fRERDX0xJTkVfRERDMywKIEdQSU9fRERDX0xJTkVfRERDNCwKIEdQSU9fRERDX0xJTkVf
RERDNSwKIEdQSU9fRERDX0xJTkVfRERDNiwKIEdQSU9fRERDX0xJTkVfRERDX1ZHQSwKIEdQSU9f
RERDX0xJTkVfVklQX1BBRCwKIEdQSU9fRERDX0xJTkVfSTJDX1BBRCA9IEdQSU9fRERDX0xJTkVf
VklQX1BBRCwKIEdQSU9fRERDX0xJTkVfQ09VTlQsCiBHUElPX0REQ19MSU5FX01JTiA9IEdQSU9f
RERDX0xJTkVfRERDMSwKIEdQSU9fRERDX0xJTkVfTUFYID0gR1BJT19ERENfTElORV9JMkNfUEFE
Cn07CgoKCgoKCmVudW0gZ3Bpb19tb2RlIHsKIEdQSU9fTU9ERV9VTktOT1dOID0gKC0xKSwKIEdQ
SU9fTU9ERV9JTlBVVCwKIEdQSU9fTU9ERV9PVVRQVVQsCiBHUElPX01PREVfRkFTVF9PVVRQVVQs
CiBHUElPX01PREVfSEFSRFdBUkUsCiBHUElPX01PREVfSU5URVJSVVBUCn07CiMgMjQ2ICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5cGVzLmgi
CmVudW0gZ3Bpb19zaWduYWxfc291cmNlIHsKIEdQSU9fU0lHTkFMX1NPVVJDRV9VTktOT1dOID0g
KC0xKSwKIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNBX1NURVJFT19TWU5DLAogR1BJT19TSUdOQUxf
U09VUkNFX1BBU1NfVEhST1VHSF9TVEVSRU9fU1lOQywKIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNC
X1NURVJFT19TWU5DLAogR1BJT19TSUdOQUxfU09VUkNFX0RBQ0FfSFNZTkMsCiBHUElPX1NJR05B
TF9TT1VSQ0VfREFDQl9IU1lOQywKIEdQSU9fU0lHTkFMX1NPVVJDRV9EQUNBX1ZTWU5DLAogR1BJ
T19TSUdOQUxfU09VUkNFX0RBQ0JfVlNZTkMsCn07CgplbnVtIGdwaW9fc3RlcmVvX3NvdXJjZSB7
CiBHUElPX1NURVJFT19TT1VSQ0VfVU5LTk9XTiA9ICgtMSksCiBHUElPX1NURVJFT19TT1VSQ0Vf
RDEsCiBHUElPX1NURVJFT19TT1VSQ0VfRDIsCiBHUElPX1NURVJFT19TT1VSQ0VfRDMsCiBHUElP
X1NURVJFT19TT1VSQ0VfRDQsCiBHUElPX1NURVJFT19TT1VSQ0VfRDUsCiBHUElPX1NURVJFT19T
T1VSQ0VfRDYKfTsKCgoKCgplbnVtIGdwaW9fY29uZmlnX3R5cGUgewogR1BJT19DT05GSUdfVFlQ
RV9OT05FLAogR1BJT19DT05GSUdfVFlQRV9EREMsCiBHUElPX0NPTkZJR19UWVBFX0hQRCwKIEdQ
SU9fQ09ORklHX1RZUEVfR0VORVJJQ19NVVgsCiBHUElPX0NPTkZJR19UWVBFX0dTTF9NVVgsCiBH
UElPX0NPTkZJR19UWVBFX0kyQ19BVVhfRFVBTF9NT0RFCn07CgoKCmVudW0gZ3Bpb19kZGNfY29u
ZmlnX3R5cGUgewogR1BJT19ERENfQ09ORklHX1RZUEVfTU9ERV9BVVgsCiBHUElPX0REQ19DT05G
SUdfVFlQRV9NT0RFX0kyQywKIEdQSU9fRERDX0NPTkZJR19UWVBFX1BPTExfRk9SX0NPTk5FQ1Qs
CiBHUElPX0REQ19DT05GSUdfVFlQRV9QT0xMX0ZPUl9ESVNDT05ORUNULAogR1BJT19ERENfQ09O
RklHX1RZUEVfRElTQUJMRV9QT0xMSU5HCn07CgpzdHJ1Y3QgZ3Bpb19kZGNfY29uZmlnIHsKIGVu
dW0gZ3Bpb19kZGNfY29uZmlnX3R5cGUgdHlwZTsKIGJvb2wgZGF0YV9lbl9iaXRfcHJlc2VudDsK
IGJvb2wgY2xvY2tfZW5fYml0X3ByZXNlbnQ7Cn07CgoKCnN0cnVjdCBncGlvX2hwZF9jb25maWcg
ewogdWludDMyX3QgZGVsYXlfb25fY29ubmVjdDsKIHVpbnQzMl90IGRlbGF5X29uX2Rpc2Nvbm5l
Y3Q7Cn07CgpzdHJ1Y3QgZ3Bpb19nZW5lcmljX211eF9jb25maWcgewogYm9vbCBlbmFibGVfb3V0
cHV0X2Zyb21fbXV4OwogZW51bSBncGlvX3NpZ25hbF9zb3VyY2UgbXV4X3NlbGVjdDsKIGVudW0g
Z3Bpb19zdGVyZW9fc291cmNlIHN0ZXJlb19zZWxlY3Q7Cn07CgplbnVtIGdwaW9fZ3NsX211eF9j
b25maWdfdHlwZSB7CiBHUElPX0dTTF9NVVhfQ09ORklHX1RZUEVfRElTQUJMRSwKIEdQSU9fR1NM
X01VWF9DT05GSUdfVFlQRV9USU1JTkdfU1lOQywKIEdQSU9fR1NMX01VWF9DT05GSUdfVFlQRV9G
TElQX1NZTkMKfTsKCnN0cnVjdCBncGlvX2dzbF9tdXhfY29uZmlnIHsKIGVudW0gZ3Bpb19nc2xf
bXV4X2NvbmZpZ190eXBlIHR5cGU7CgoKIHVpbnQzMl90IGdzbF9ncm91cDsKfTsKCnN0cnVjdCBn
cGlvX2NvbmZpZ19kYXRhIHsKIGVudW0gZ3Bpb19jb25maWdfdHlwZSB0eXBlOwogdW5pb24gewog
IHN0cnVjdCBncGlvX2RkY19jb25maWcgZGRjOwogIHN0cnVjdCBncGlvX2hwZF9jb25maWcgaHBk
OwogIHN0cnVjdCBncGlvX2dlbmVyaWNfbXV4X2NvbmZpZyBnZW5lcmljX211eDsKICBzdHJ1Y3Qg
Z3Bpb19nc2xfbXV4X2NvbmZpZyBnc2xfbXV4OwogfSBjb25maWc7Cn07CiMgMzMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCiMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbGlua19zZXJ2aWNlX3R5cGVz
LmgiIDEKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvbGlua19zZXJ2aWNlX3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2luY2x1ZGUvZGFsX3R5cGVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvbGlua19zZXJ2aWNlX3R5cGVzLmgiIDIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaXJxX3R5cGVz
LmgiIDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1
ZGUvbGlua19zZXJ2aWNlX3R5cGVzLmgiIDIKCgpzdHJ1Y3QgZGRjOwpzdHJ1Y3QgaXJxX21hbmFn
ZXI7CgplbnVtIHsKIE1BWF9DT05UUk9MTEVSX05VTSA9IDYKfTsKCmVudW0gZHBfcG93ZXJfc3Rh
dGUgewogRFBfUE9XRVJfU1RBVEVfRDAgPSAxLAogRFBfUE9XRVJfU1RBVEVfRDMKfTsKCmVudW0g
ZWRwX3JldmlzaW9uIHsKCiBFRFBfUkVWSVNJT05fMTEgPSAweDAwLAoKIEVEUF9SRVZJU0lPTl8x
MiA9IDB4MDEsCgogRURQX1JFVklTSU9OXzEzID0gMHgwMgp9OwoKZW51bSB7CiBMSU5LX1JBVEVf
UkVGX0ZSRVFfSU5fS0haID0gMjcwMDAKfTsKCmVudW0gbGlua190cmFpbmluZ19yZXN1bHQgewog
TElOS19UUkFJTklOR19TVUNDRVNTLAogTElOS19UUkFJTklOR19DUl9GQUlMX0xBTkUwLAogTElO
S19UUkFJTklOR19DUl9GQUlMX0xBTkUxLAogTElOS19UUkFJTklOR19DUl9GQUlMX0xBTkUyMywK
CiBMSU5LX1RSQUlOSU5HX0VRX0ZBSUxfQ1IsCgogTElOS19UUkFJTklOR19FUV9GQUlMX0VRLAog
TElOS19UUkFJTklOR19MUUFfRkFJTCwKfTsKCnN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdz
IHsKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGxpbmtfc2V0dGluZ3M7CiBzdHJ1Y3QgZGNfbGFu
ZV9zZXR0aW5ncyBsYW5lX3NldHRpbmdzW0xBTkVfQ09VTlRfRFBfTUFYXTsKCiBlbnVtIGRjX3Zv
bHRhZ2Vfc3dpbmcgKnZvbHRhZ2Vfc3dpbmc7CiBlbnVtIGRjX3ByZV9lbXBoYXNpcyAqcHJlX2Vt
cGhhc2lzOwogZW51bSBkY19wb3N0X2N1cnNvcjIgKnBvc3RfY3Vyc29yMjsKCiB1aW50MTZfdCBj
cl9wYXR0ZXJuX3RpbWU7CiB1aW50MTZfdCBlcV9wYXR0ZXJuX3RpbWU7CiBlbnVtIGRjX2RwX3Ry
YWluaW5nX3BhdHRlcm4gcGF0dGVybl9mb3JfZXE7CgogYm9vbCBlbmhhbmNlZF9mcmFtaW5nOwog
Ym9vbCBhbGxvd19pbnZhbGlkX21zYV90aW1pbmdfcGFyYW07Cn07CgoKCmVudW0gZHBfdGVzdF9w
YXR0ZXJuIHsKCgogRFBfVEVTVF9QQVRURVJOX1ZJREVPX01PREUgPSAwLAoKCiBEUF9URVNUX1BB
VFRFUk5fUEhZX1BBVFRFUk5fQkVHSU4sCiBEUF9URVNUX1BBVFRFUk5fRDEwMiA9IERQX1RFU1Rf
UEFUVEVSTl9QSFlfUEFUVEVSTl9CRUdJTiwKIERQX1RFU1RfUEFUVEVSTl9TWU1CT0xfRVJST1Is
CiBEUF9URVNUX1BBVFRFUk5fUFJCUzcsCiBEUF9URVNUX1BBVFRFUk5fODBCSVRfQ1VTVE9NLAog
RFBfVEVTVF9QQVRURVJOX0NQMjUyMF8xLAogRFBfVEVTVF9QQVRURVJOX0NQMjUyMF8yLAogRFBf
VEVTVF9QQVRURVJOX0hCUjJfQ09NUExJQU5DRV9FWUUgPSBEUF9URVNUX1BBVFRFUk5fQ1AyNTIw
XzIsCiBEUF9URVNUX1BBVFRFUk5fQ1AyNTIwXzMsCgoKIERQX1RFU1RfUEFUVEVSTl9UUkFJTklO
R19QQVRURVJOMSwKIERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRURVJOMiwKIERQX1RFU1Rf
UEFUVEVSTl9UUkFJTklOR19QQVRURVJOMywKIERQX1RFU1RfUEFUVEVSTl9UUkFJTklOR19QQVRU
RVJONCwKIERQX1RFU1RfUEFUVEVSTl9QSFlfUEFUVEVSTl9FTkQgPSBEUF9URVNUX1BBVFRFUk5f
VFJBSU5JTkdfUEFUVEVSTjQsCgoKIERQX1RFU1RfUEFUVEVSTl9DT0xPUl9TUVVBUkVTLAogRFBf
VEVTVF9QQVRURVJOX0NPTE9SX1NRVUFSRVNfQ0VBLAogRFBfVEVTVF9QQVRURVJOX1ZFUlRJQ0FM
X0JBUlMsCiBEUF9URVNUX1BBVFRFUk5fSE9SSVpPTlRBTF9CQVJTLAogRFBfVEVTVF9QQVRURVJO
X0NPTE9SX1JBTVAsCgoKIERQX1RFU1RfUEFUVEVSTl9BVURJT19PUEVSQVRPUl9ERUZJTkVELAog
RFBfVEVTVF9QQVRURVJOX0FVRElPX1NBV1RPT1RILAoKIERQX1RFU1RfUEFUVEVSTl9VTlNVUFBP
UlRFRAp9OwoKZW51bSBkcF90ZXN0X3BhdHRlcm5fY29sb3Jfc3BhY2UgewogRFBfVEVTVF9QQVRU
RVJOX0NPTE9SX1NQQUNFX1JHQiwKIERQX1RFU1RfUEFUVEVSTl9DT0xPUl9TUEFDRV9ZQ0JDUjYw
MSwKIERQX1RFU1RfUEFUVEVSTl9DT0xPUl9TUEFDRV9ZQ0JDUjcwOSwKIERQX1RFU1RfUEFUVEVS
Tl9DT0xPUl9TUEFDRV9VTkRFRklORUQKfTsKCmVudW0gZHBfcGFuZWxfbW9kZSB7CgogRFBfUEFO
RUxfTU9ERV9ERUZBVUxULAoKIERQX1BBTkVMX01PREVfRURQLAoKIERQX1BBTkVMX01PREVfU1BF
Q0lBTAp9OwoKCnVuaW9uIGRwY2RfdHJhaW5pbmdfbGFuZV9zZXQgewogc3RydWN0IHsKCiAgdWlu
dDhfdCBWT0xUQUdFX1NXSU5HX1NFVDoyOwogIHVpbnQ4X3QgTUFYX1NXSU5HX1JFQUNIRUQ6MTsK
ICB1aW50OF90IFBSRV9FTVBIQVNJU19TRVQ6MjsKICB1aW50OF90IE1BWF9QUkVfRU1QSEFTSVNf
UkVBQ0hFRDoxOwoKICB1aW50OF90IFBPU1RfQ1VSU09SMl9TRVQ6MjsKIyAxNjEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBl
cy5oIgogfSBiaXRzOwoKIHVpbnQ4X3QgcmF3Owp9OwoKCgpzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9h
bGxvY2F0aW9uIHsKIHVpbnQ4X3QgdmNwX2lkOwoKCiB1aW50OF90IHNsb3RfY291bnQ7Cn07CgoK
c3RydWN0IGRwX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSB7CgogaW50IHN0cmVhbV9jb3Vu
dDsKCiBzdHJ1Y3QgZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uIHN0cmVhbV9hbGxvY2F0aW9uc1tN
QVhfQ09OVFJPTExFUl9OVU1dOwp9OwojIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0cmxfZGVmcy5oIiAxCiMgMjkgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2N0
cmxfZGVmcy5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2RlZnMuaCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIgMgojIDQy
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29i
amVjdF9jdHJsX2RlZnMuaCIKZW51bSBkaXNwbGF5X291dHB1dF9iaXRfZGVwdGggewogUEFORUxf
VU5ERUZJTkUgPSAwLAogUEFORUxfNkJJVF9DT0xPUiA9IDEsCiBQQU5FTF84QklUX0NPTE9SID0g
MiwKIFBBTkVMXzEwQklUX0NPTE9SID0gMywKIFBBTkVMXzEyQklUX0NPTE9SID0gNCwKIFBBTkVM
XzE2QklUX0NPTE9SID0gNSwKfTsKCgoKZW51bSBkYWxfZGV2aWNlX3R5cGUgewogREVWSUNFX1RZ
UEVfVU5LTk9XTiA9IDAsCiBERVZJQ0VfVFlQRV9MQ0QsCiBERVZJQ0VfVFlQRV9DUlQsCiBERVZJ
Q0VfVFlQRV9ERlAsCiBERVZJQ0VfVFlQRV9DViwKIERFVklDRV9UWVBFX1RWLAogREVWSUNFX1RZ
UEVfQ0YsCiBERVZJQ0VfVFlQRV9XSVJFTEVTUwp9OwoKCnN0cnVjdCBkZXZpY2VfaWQgewogZW51
bSBkYWxfZGV2aWNlX3R5cGUgZGV2aWNlX3R5cGU6MTY7CiB1aW50MzJfdCBlbnVtX2lkOjE2Owog
dWludDE2X3QgcmF3X2RldmljZV90YWc7Cn07CgpzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2kyY19p
bmZvIHsKIHN0cnVjdCBncGlvX2luZm8gewogIHVpbnQzMl90IGNsa19tYXNrX3JlZ2lzdGVyX2lu
ZGV4OwogIHVpbnQzMl90IGNsa19lbl9yZWdpc3Rlcl9pbmRleDsKICB1aW50MzJfdCBjbGtfeV9y
ZWdpc3Rlcl9pbmRleDsKICB1aW50MzJfdCBjbGtfYV9yZWdpc3Rlcl9pbmRleDsKICB1aW50MzJf
dCBkYXRhX21hc2tfcmVnaXN0ZXJfaW5kZXg7CiAgdWludDMyX3QgZGF0YV9lbl9yZWdpc3Rlcl9p
bmRleDsKICB1aW50MzJfdCBkYXRhX3lfcmVnaXN0ZXJfaW5kZXg7CiAgdWludDMyX3QgZGF0YV9h
X3JlZ2lzdGVyX2luZGV4OwoKICB1aW50MzJfdCBjbGtfbWFza19zaGlmdDsKICB1aW50MzJfdCBj
bGtfZW5fc2hpZnQ7CiAgdWludDMyX3QgY2xrX3lfc2hpZnQ7CiAgdWludDMyX3QgY2xrX2Ffc2hp
ZnQ7CiAgdWludDMyX3QgZGF0YV9tYXNrX3NoaWZ0OwogIHVpbnQzMl90IGRhdGFfZW5fc2hpZnQ7
CiAgdWludDMyX3QgZGF0YV95X3NoaWZ0OwogIHVpbnQzMl90IGRhdGFfYV9zaGlmdDsKIH0gZ3Bp
b19pbmZvOwoKIGJvb2wgaTJjX2h3X2Fzc2lzdDsKIHVpbnQzMl90IGkyY19saW5lOwogdWludDMy
X3QgaTJjX2VuZ2luZV9pZDsKIHVpbnQzMl90IGkyY19zbGF2ZV9hZGRyZXNzOwp9OwoKc3RydWN0
IGdyYXBoaWNzX29iamVjdF9ocGRfaW5mbyB7CiB1aW50OF90IGhwZF9pbnRfZ3Bpb191aWQ7CiB1
aW50OF90IGhwZF9hY3RpdmU7Cn07CgpzdHJ1Y3QgY29ubmVjdG9yX2RldmljZV90YWdfaW5mbyB7
CiB1aW50MzJfdCBhY3BpX2RldmljZTsKIHN0cnVjdCBkZXZpY2VfaWQgZGV2X2lkOwp9OwoKc3Ry
dWN0IGRldmljZV90aW1pbmcgewogc3RydWN0IG1pc2NfaW5mbyB7CiAgdWludDMyX3QgSE9SSVpP
TlRBTF9DVVRfT0ZGOjE7CgogIHVpbnQzMl90IEhfU1lOQ19QT0xBUklUWToxOwoKICB1aW50MzJf
dCBWX1NZTkNfUE9MQVJJVFk6MTsKICB1aW50MzJfdCBWRVJUSUNBTF9DVVRfT0ZGOjE7CiAgdWlu
dDMyX3QgSF9SRVBMSUNBVElPTl9CWTI6MTsKICB1aW50MzJfdCBWX1JFUExJQ0FUSU9OX0JZMjox
OwogIHVpbnQzMl90IENPTVBPU0lURV9TWU5DOjE7CiAgdWludDMyX3QgSU5URVJMQUNFOjE7CiAg
dWludDMyX3QgRE9VQkxFX0NMT0NLOjE7CiAgdWludDMyX3QgUkdCODg4OjE7CiAgdWludDMyX3Qg
R1JFWV9MRVZFTDoyOwogIHVpbnQzMl90IFNQQVRJQUw6MTsKICB1aW50MzJfdCBURU1QT1JBTDox
OwogIHVpbnQzMl90IEFQSV9FTkFCTEVEOjE7CiB9IG1pc2NfaW5mbzsKCiB1aW50MzJfdCBwaXhl
bF9jbGs7CiB1aW50MzJfdCBob3Jpem9udGFsX2FkZHJlc3NhYmxlOwogdWludDMyX3QgaG9yaXpv
bnRhbF9ibGFua2luZ190aW1lOwogdWludDMyX3QgdmVydGljYWxfYWRkcmVzc2FibGU7CiB1aW50
MzJfdCB2ZXJ0aWNhbF9ibGFua2luZ190aW1lOwogdWludDMyX3QgaG9yaXpvbnRhbF9zeW5jX29m
ZnNldDsKIHVpbnQzMl90IGhvcml6b250YWxfc3luY193aWR0aDsKIHVpbnQzMl90IHZlcnRpY2Fs
X3N5bmNfb2Zmc2V0OwogdWludDMyX3QgdmVydGljYWxfc3luY193aWR0aDsKIHVpbnQzMl90IGhv
cml6b250YWxfYm9yZGVyOwogdWludDMyX3QgdmVydGljYWxfYm9yZGVyOwp9OwoKc3RydWN0IHN1
cHBvcnRlZF9yZWZyZXNoX3JhdGUgewogdWludDMyX3QgUkVGUkVTSF9SQVRFXzMwSFo6MTsKIHVp
bnQzMl90IFJFRlJFU0hfUkFURV80MEhaOjE7CiB1aW50MzJfdCBSRUZSRVNIX1JBVEVfNDhIWjox
OwogdWludDMyX3QgUkVGUkVTSF9SQVRFXzUwSFo6MTsKIHVpbnQzMl90IFJFRlJFU0hfUkFURV82
MEhaOjE7Cn07CgpzdHJ1Y3QgZW1iZWRkZWRfcGFuZWxfaW5mbyB7CiBzdHJ1Y3QgZGV2aWNlX3Rp
bWluZyBsY2RfdGltaW5nOwogdWludDMyX3Qgc3NfaWQ7CiBzdHJ1Y3Qgc3VwcG9ydGVkX3JlZnJl
c2hfcmF0ZSBzdXBwb3J0ZWRfcnI7CiB1aW50MzJfdCBkcnJfZW5hYmxlZDsKIHVpbnQzMl90IG1p
bl9kcnJfcmVmcmVzaF9yYXRlOwogYm9vbCByZWFsdGVrX2VEUFRvTFZEUzsKfTsKCnN0cnVjdCBk
Y19maXJtd2FyZV9pbmZvIHsKIHN0cnVjdCBwbGxfaW5mbyB7CiAgdWludDMyX3QgY3J5c3RhbF9m
cmVxdWVuY3k7CiAgdWludDMyX3QgbWluX2lucHV0X3B4bF9jbGtfcGxsX2ZyZXF1ZW5jeTsKICB1
aW50MzJfdCBtYXhfaW5wdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OwogIHVpbnQzMl90IG1pbl9v
dXRwdXRfcHhsX2Nsa19wbGxfZnJlcXVlbmN5OwogIHVpbnQzMl90IG1heF9vdXRwdXRfcHhsX2Ns
a19wbGxfZnJlcXVlbmN5OwogfSBwbGxfaW5mbzsKCiBzdHJ1Y3QgZmlybXdhcmVfZmVhdHVyZSB7
CiAgdWludDMyX3QgbWVtb3J5X2Nsa19zc19wZXJjZW50YWdlOwogIHVpbnQzMl90IGVuZ2luZV9j
bGtfc3NfcGVyY2VudGFnZTsKIH0gZmVhdHVyZTsKCiB1aW50MzJfdCBkZWZhdWx0X2Rpc3BsYXlf
ZW5naW5lX3BsbF9mcmVxdWVuY3k7CiB1aW50MzJfdCBleHRlcm5hbF9jbG9ja19zb3VyY2VfZnJl
cXVlbmN5X2Zvcl9kcDsKIHVpbnQzMl90IHNtdV9ncHVfcGxsX291dHB1dF9mcmVxOwogdWludDhf
dCBtaW5fYWxsb3dlZF9ibF9sZXZlbDsKIHVpbnQ4X3QgcmVtb3RlX2Rpc3BsYXlfY29uZmlnOwog
dWludDMyX3QgZGVmYXVsdF9tZW1vcnlfY2xrOwogdWludDMyX3QgZGVmYXVsdF9lbmdpbmVfY2xr
OwogdWludDMyX3QgZHBfcGh5X3JlZl9jbGs7CiB1aW50MzJfdCBpMmNfZW5naW5lX3JlZl9jbGs7
CiBib29sIG9lbV9pMmNfcHJlc2VudDsKIHVpbnQ4X3Qgb2VtX2kyY19vYmpfaWQ7Cgp9OwoKc3Ry
dWN0IHN0ZXBfYW5kX2RlbGF5X2luZm8gewogdWludDMyX3Qgc3RlcDsKIHVpbnQzMl90IGRlbGF5
OwogdWludDMyX3QgcmVjb21tZW5kZWRfcmVmX2RpdjsKfTsKCnN0cnVjdCBzcHJlYWRfc3BlY3Ry
dW1faW5mbyB7CiBzdHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX3R5cGUgewogIGJvb2wgQ0VOVEVSX01P
REU6MTsKICBib29sIEVYVEVSTkFMOjE7CiAgYm9vbCBTVEVQX0FORF9ERUxBWV9JTkZPOjE7CiB9
IHR5cGU7CgoKCiB1aW50MzJfdCBzcHJlYWRfc3BlY3RydW1fcGVyY2VudGFnZTsKIHVpbnQzMl90
IHNwcmVhZF9wZXJjZW50YWdlX2RpdmlkZXI7CiB1aW50MzJfdCBzcHJlYWRfc3BlY3RydW1fcmFu
Z2U7CgogdW5pb24gewogIHN0cnVjdCBzdGVwX2FuZF9kZWxheV9pbmZvIHN0ZXBfYW5kX2RlbGF5
X2luZm87CgoKCiAgdWludDMyX3QgdGFyZ2V0X2Nsb2NrX3JhbmdlOwogfTsKCn07CgpzdHJ1Y3Qg
Z3JhcGhpY3Nfb2JqZWN0X2VuY29kZXJfY2FwX2luZm8gewogdWludDMyX3QgZHBfaGJyMl9jYXA6
MTsKIHVpbnQzMl90IGRwX2hicjJfdmFsaWRhdGVkOjE7CgoKCiB1aW50MzJfdCByZXNlcnZlZDox
NTsKfTsKCnN0cnVjdCBkaW5fY29ubmVjdG9yX2luZm8gewogdWludDMyX3QgZ3Bpb19pZDsKIGJv
b2wgZ3Bpb190dl9hY3RpdmVfc3RhdGU7Cn07CgoKZW51bSB7IElOVkFMSURfRERJX0NIQU5ORUxf
TUFQUElORyA9IDB4MCB9OwoKCgoKdW5pb24gZGRpX2NoYW5uZWxfbWFwcGluZyB7CiBzdHJ1Y3Qg
bWFwcGluZyB7CiAgdWludDhfdCBsYW5lMDoyOwogIHVpbnQ4X3QgbGFuZTE6MjsKICB1aW50OF90
IGxhbmUyOjI7CiAgdWludDhfdCBsYW5lMzoyOwogfSBtYXBwaW5nOwogdWludDhfdCByYXc7Cn07
CgoKCgpzdHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlvbl9pbmZvIHsKCiBlbnVtIHRyYW5z
bWl0dGVyIHRyYW5zbWl0dGVyX3BoeV9pZDsKCiB1bmlvbiBkZGlfY2hhbm5lbF9tYXBwaW5nIG91
dHB1dF9jaGFubmVsX21hcHBpbmc7Cn07CgpzdHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlv
biB7Cgogc3RydWN0IHRyYW5zbWl0dGVyX2NvbmZpZ3VyYXRpb25faW5mbyBwcmltYXJ5X3RyYW5z
bWl0dGVyX2NvbmZpZzsKCiBzdHJ1Y3QgdHJhbnNtaXR0ZXJfY29uZmlndXJhdGlvbl9pbmZvIHNl
Y29uZGFyeV90cmFuc21pdHRlcl9jb25maWc7Cn07CiMgMjY5ICIuL2RyaXZlcnMvZ3B1L2RybS9h
bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBoX29iamVjdF9jdHJsX2RlZnMuaCIKc3Ry
dWN0IGkyY19yZWdfaW5mbyB7CiB1bnNpZ25lZCBjaGFyIGkyY19yZWdfaW5kZXg7CiB1bnNpZ25l
ZCBjaGFyIGkyY19yZWdfdmFsOwp9OwoKc3RydWN0IGV4dF9oZG1pX3NldHRpbmdzIHsKIHVuc2ln
bmVkIGNoYXIgc2x2X2FkZHI7CiB1bnNpZ25lZCBjaGFyIHJlZ19udW07CiBzdHJ1Y3QgaTJjX3Jl
Z19pbmZvIHJlZ19zZXR0aW5nc1s5XTsKIHVuc2lnbmVkIGNoYXIgcmVnX251bV82ZzsKIHN0cnVj
dCBpMmNfcmVnX2luZm8gcmVnX3NldHRpbmdzXzZnWzNdOwp9OwoKCgpzdHJ1Y3QgaW50ZWdyYXRl
ZF9pbmZvIHsKIHN0cnVjdCBjbG9ja192b2x0YWdlX2NhcHMgewoKCiAgdWludDMyX3Qgdm9sdGFn
ZV9pbmRleDsKCiAgdWludDMyX3QgbWF4X3N1cHBvcnRlZF9jbGs7CiB9IGRpc3BfY2xrX3ZvbHRh
Z2VbNF07Cgogc3RydWN0IGRpc3BsYXlfY29ubmVjdGlvbl9pbmZvIHsKICBzdHJ1Y3QgZXh0ZXJu
YWxfZGlzcGxheV9wYXRoIHsKCiAgIHVpbnQzMl90IGRldmljZV90YWc7CgogICB1aW50MzJfdCBk
ZXZpY2VfYWNwaV9lbnVtOwoKCiAgIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZGV2aWNlX2Nv
bm5lY3Rvcl9pZDsKCiAgIHVpbnQ4X3QgZXh0X2F1eF9kZGNfbHV0X2luZGV4OwoKICAgdWludDhf
dCBleHRfaHBkX3Bpbl9sdXRfaW5kZXg7CgogICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGV4
dF9lbmNvZGVyX29ial9pZDsKCiAgIHVuaW9uIGRkaV9jaGFubmVsX21hcHBpbmcgY2hhbm5lbF9t
YXBwaW5nOwoKICAgdW5zaWduZWQgc2hvcnQgY2FwczsKICB9IHBhdGhbN107CgogIHVpbnQ4X3Qg
Z3VfaWRbMTZdOwogIHVpbnQ4X3QgY2hlY2tzdW07CiB9IGV4dF9kaXNwX2Nvbm5faW5mbzsKCiBz
dHJ1Y3QgYXZhaWxhYmxlX3NfY2xrX2xpc3QgewoKICB1aW50MzJfdCBzdXBwb3J0ZWRfc19jbGs7
CgogIHVpbnQzMl90IHZvbHRhZ2VfaW5kZXg7CgogIHVpbnQzMl90IHZvbHRhZ2VfaWQ7CiB9IGF2
YWlsX3NfY2xrWzVdOwoKIHVpbnQ4X3QgbWVtb3J5X3R5cGU7CiB1aW50OF90IG1hX2NoYW5uZWxf
bnVtYmVyOwogdWludDMyX3QgYm9vdF91cF9lbmdpbmVfY2xvY2s7CiB1aW50MzJfdCBkZW50aXN0
X3Zjb19mcmVxOwogdWludDMyX3QgYm9vdF91cF91bWFfY2xvY2s7CiB1aW50MzJfdCBib290X3Vw
X3JlcV9kaXNwbGF5X3ZlY3RvcjsKIHVpbnQzMl90IG90aGVyX2Rpc3BsYXlfbWlzYzsKIHVpbnQz
Ml90IGdwdV9jYXBfaW5mbzsKIHVpbnQzMl90IHNiX21taW9fYmFzZV9hZGRyOwogdWludDMyX3Qg
c3lzdGVtX2NvbmZpZzsKIHVpbnQzMl90IGNwdV9jYXBfaW5mbzsKIHVpbnQzMl90IG1heF9uYl92
b2x0YWdlOwogdWludDMyX3QgbWluX25iX3ZvbHRhZ2U7CiB1aW50MzJfdCBib290X3VwX25iX3Zv
bHRhZ2U7CiB1aW50MzJfdCBleHRfZGlzcF9jb25uX2luZm9fb2Zmc2V0OwogdWludDMyX3QgY3Ny
X20zX2FyYl9jbnRsX2RlZmF1bHRbMTBdOwogdWludDMyX3QgY3NyX20zX2FyYl9jbnRsX3V2ZFsx
MF07CiB1aW50MzJfdCBjc3JfbTNfYXJiX2NudGxfZnMzZFsxMF07CiB1aW50MzJfdCBnbWNfcmVz
dG9yZV9yZXNldF90aW1lOwogdWludDMyX3QgbWluaW11bV9uX2NsazsKIHVpbnQzMl90IGlkbGVf
bl9jbGs7CiB1aW50MzJfdCBkZHJfZGxsX3Bvd2VyX3VwX3RpbWU7CiB1aW50MzJfdCBkZHJfcGxs
X3Bvd2VyX3VwX3RpbWU7CgogdWludDMyX3QgcGNpZV9jbGtfc3NfdHlwZTsKIHVpbnQzMl90IGx2
ZHNfc3NfcGVyY2VudGFnZTsKIHVpbnQzMl90IGx2ZHNfc3NwcmVhZF9yYXRlX2luXzEwaHo7CiB1
aW50MzJfdCBoZG1pX3NzX3BlcmNlbnRhZ2U7CiB1aW50MzJfdCBoZG1pX3NzcHJlYWRfcmF0ZV9p
bl8xMGh6OwogdWludDMyX3QgZHZpX3NzX3BlcmNlbnRhZ2U7CiB1aW50MzJfdCBkdmlfc3NwcmVh
ZF9yYXRlX2luXzEwX2h6OwogdWludDMyX3Qgc2Nsa19kcG1fYm9vc3RfbWFyZ2luOwogdWludDMy
X3Qgc2Nsa19kcG1fdGhyb3R0bGVfbWFyZ2luOwogdWludDMyX3Qgc2Nsa19kcG1fdGRwX2xpbWl0
X3BnOwogdWludDMyX3Qgc2Nsa19kcG1fdGRwX2xpbWl0X2Jvb3N0OwogdWludDMyX3QgYm9vc3Rf
ZW5naW5lX2Nsb2NrOwogdWludDMyX3QgYm9vc3RfdmlkXzJiaXQ7CiB1aW50MzJfdCBlbmFibGVf
Ym9vc3Q7CiB1aW50MzJfdCBnbmJfdGRwX2xpbWl0OwoKIHVpbnQzMl90IG1heF9sdmRzX3BjbGtf
ZnJlcV9pbl9zaW5nbGVfbGluazsKIHVpbnQzMl90IGx2ZHNfbWlzYzsKIHVpbnQzMl90IGx2ZHNf
cHdyX29uX3NlcV9kaWdfb25fdG9fZGVfaW5fNG1zOwogdWludDMyX3QgbHZkc19wd3Jfb25fc2Vx
X2RlX3RvX3ZhcnlfYmxfaW5fNG1zOwogdWludDMyX3QgbHZkc19wd3Jfb2ZmX3NlcV92YXJ5X2Js
X3RvX2RlX2luNG1zOwogdWludDMyX3QgbHZkc19wd3Jfb2ZmX3NlcV9kZV90b19kaWdfb25faW40
bXM7CiB1aW50MzJfdCBsdmRzX29mZl90b19vbl9kZWxheV9pbl80bXM7CiB1aW50MzJfdCBsdmRz
X3B3cl9vbl9zZXFfdmFyeV9ibF90b19ibG9uX2luXzRtczsKIHVpbnQzMl90IGx2ZHNfcHdyX29m
Zl9zZXFfYmxvbl90b192YXJ5X2JsX2luXzRtczsKIHVpbnQzMl90IGx2ZHNfcmVzZXJ2ZWQxOwog
dWludDMyX3QgbHZkc19iaXRfZGVwdGhfY29udHJvbF92YWw7CgogdW5zaWduZWQgY2hhciBkcDBf
ZXh0X2hkbWlfc2x2X2FkZHI7CiB1bnNpZ25lZCBjaGFyIGRwMF9leHRfaGRtaV9yZWdfbnVtOwog
c3RydWN0IGkyY19yZWdfaW5mbyBkcDBfZXh0X2hkbWlfcmVnX3NldHRpbmdzWzldOwogdW5zaWdu
ZWQgY2hhciBkcDBfZXh0X2hkbWlfNmdfcmVnX251bTsKIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAw
X2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5nc1szXTsKIHVuc2lnbmVkIGNoYXIgZHAxX2V4dF9oZG1p
X3Nsdl9hZGRyOwogdW5zaWduZWQgY2hhciBkcDFfZXh0X2hkbWlfcmVnX251bTsKIHN0cnVjdCBp
MmNfcmVnX2luZm8gZHAxX2V4dF9oZG1pX3JlZ19zZXR0aW5nc1s5XTsKIHVuc2lnbmVkIGNoYXIg
ZHAxX2V4dF9oZG1pXzZnX3JlZ19udW07CiBzdHJ1Y3QgaTJjX3JlZ19pbmZvIGRwMV9leHRfaGRt
aV82Z19yZWdfc2V0dGluZ3NbM107CiB1bnNpZ25lZCBjaGFyIGRwMl9leHRfaGRtaV9zbHZfYWRk
cjsKIHVuc2lnbmVkIGNoYXIgZHAyX2V4dF9oZG1pX3JlZ19udW07CiBzdHJ1Y3QgaTJjX3JlZ19p
bmZvIGRwMl9leHRfaGRtaV9yZWdfc2V0dGluZ3NbOV07CiB1bnNpZ25lZCBjaGFyIGRwMl9leHRf
aGRtaV82Z19yZWdfbnVtOwogc3RydWN0IGkyY19yZWdfaW5mbyBkcDJfZXh0X2hkbWlfNmdfcmVn
X3NldHRpbmdzWzNdOwogdW5zaWduZWQgY2hhciBkcDNfZXh0X2hkbWlfc2x2X2FkZHI7CiB1bnNp
Z25lZCBjaGFyIGRwM19leHRfaGRtaV9yZWdfbnVtOwogc3RydWN0IGkyY19yZWdfaW5mbyBkcDNf
ZXh0X2hkbWlfcmVnX3NldHRpbmdzWzldOwogdW5zaWduZWQgY2hhciBkcDNfZXh0X2hkbWlfNmdf
cmVnX251bTsKIHN0cnVjdCBpMmNfcmVnX2luZm8gZHAzX2V4dF9oZG1pXzZnX3JlZ19zZXR0aW5n
c1szXTsKCiB1aW50MzJfdCBkcF9zc19jb250cm9sOwp9OwoKCgoKZW51bSBwb3dlcl9zb3VyY2Ug
ewogUE9XRVJfU09VUkNFX0FDID0gMCwKIFBPV0VSX1NPVVJDRV9EQywKIFBPV0VSX1NPVVJDRV9M
SU1JVEVEX1BPV0VSLAogUE9XRVJfU09VUkNFX0xJTUlURURfUE9XRVJfMiwKIFBPV0VSX1NPVVJD
RV9NQVgKfTsKCnN0cnVjdCBiaW9zX2V2ZW50X2luZm8gewogdWludDMyX3QgdGhlcm1hbF9zdGF0
ZTsKIHVpbnQzMl90IGJhY2tsaWdodF9sZXZlbDsKIGVudW0gcG93ZXJfc291cmNlIHBvd2VyU291
cmNlOwogYm9vbCBoYXNfdGhlcm1hbF9zdGF0ZV9jaGFuZ2VkOwogYm9vbCBoYXNfcG93ZXJfc291
cmNlX2NoYW5nZWQ7CiBib29sIGhhc19mb3JjZWRfbW9kZV9jaGFuZ2VkOwogYm9vbCBmb3JjZWRf
bW9kZTsKIGJvb2wgYmFja2xpZ2h0X2NoYW5nZWQ7Cn07CgoKCgoKZW51bSB7CiBERlNfQllQQVNT
X0VOQUJMRSA9IDB4MTAKfTsKCmVudW0gewogSU5WQUxJRF9CQUNLTElHSFQgPSAtMQp9OwoKc3Ry
dWN0IHBhbmVsX2JhY2tsaWdodF9ib3VuZGFyaWVzIHsKIHVpbnQzMl90IG1pbl9zaWduYWxfbGV2
ZWw7CiB1aW50MzJfdCBtYXhfc2lnbmFsX2xldmVsOwp9OwojIDM1ICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgiIDEKIyAyOSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9vcHAuaCIKIyAxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h3X3NoYXJlZC5o
IiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMv
aHcvaHdfc2hhcmVkLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjX2h3X3R5cGVzLmgiIDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9ody9od19zaGFyZWQuaCIgMgojIDQxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h3X3NoYXJlZC5oIgpzdHJ1Y3Qg
Z2FtbWFfY3VydmUgewogdWludDMyX3Qgb2Zmc2V0OwogdWludDMyX3Qgc2VnbWVudHNfbnVtOwp9
OwoKc3RydWN0IGN1cnZlX3BvaW50cyB7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB4Owogc3RydWN0IGZp
eGVkMzFfMzIgeTsKIHN0cnVjdCBmaXhlZDMxXzMyIG9mZnNldDsKIHN0cnVjdCBmaXhlZDMxXzMy
IHNsb3BlOwoKIHVpbnQzMl90IGN1c3RvbV9mbG9hdF94OwogdWludDMyX3QgY3VzdG9tX2Zsb2F0
X3k7CiB1aW50MzJfdCBjdXN0b21fZmxvYXRfb2Zmc2V0OwogdWludDMyX3QgY3VzdG9tX2Zsb2F0
X3Nsb3BlOwp9OwoKc3RydWN0IGN1cnZlX3BvaW50czMgewogc3RydWN0IGN1cnZlX3BvaW50cyBy
ZWQ7CiBzdHJ1Y3QgY3VydmVfcG9pbnRzIGdyZWVuOwogc3RydWN0IGN1cnZlX3BvaW50cyBibHVl
Owp9OwoKc3RydWN0IHB3bF9yZXN1bHRfZGF0YSB7CiBzdHJ1Y3QgZml4ZWQzMV8zMiByZWQ7CiBz
dHJ1Y3QgZml4ZWQzMV8zMiBncmVlbjsKIHN0cnVjdCBmaXhlZDMxXzMyIGJsdWU7Cgogc3RydWN0
IGZpeGVkMzFfMzIgZGVsdGFfcmVkOwogc3RydWN0IGZpeGVkMzFfMzIgZGVsdGFfZ3JlZW47CiBz
dHJ1Y3QgZml4ZWQzMV8zMiBkZWx0YV9ibHVlOwoKIHVpbnQzMl90IHJlZF9yZWc7CiB1aW50MzJf
dCBncmVlbl9yZWc7CiB1aW50MzJfdCBibHVlX3JlZzsKCiB1aW50MzJfdCBkZWx0YV9yZWRfcmVn
OwogdWludDMyX3QgZGVsdGFfZ3JlZW5fcmVnOwogdWludDMyX3QgZGVsdGFfYmx1ZV9yZWc7Cn07
CgpzdHJ1Y3QgZGNfcmdiIHsKIHVpbnQzMl90IHJlZDsKIHVpbnQzMl90IGdyZWVuOwogdWludDMy
X3QgYmx1ZTsKfTsKCnN0cnVjdCB0ZXRyYWhlZHJhbF8xN3gxN3gxNyB7CiBzdHJ1Y3QgZGNfcmdi
IGx1dDBbMTIyOV07CiBzdHJ1Y3QgZGNfcmdiIGx1dDFbMTIyOF07CiBzdHJ1Y3QgZGNfcmdiIGx1
dDJbMTIyOF07CiBzdHJ1Y3QgZGNfcmdiIGx1dDNbMTIyOF07Cn07CnN0cnVjdCB0ZXRyYWhlZHJh
bF85eDl4OSB7CiBzdHJ1Y3QgZGNfcmdiIGx1dDBbMTgzXTsKIHN0cnVjdCBkY19yZ2IgbHV0MVsx
ODJdOwogc3RydWN0IGRjX3JnYiBsdXQyWzE4Ml07CiBzdHJ1Y3QgZGNfcmdiIGx1dDNbMTgyXTsK
fTsKCnN0cnVjdCB0ZXRyYWhlZHJhbF9wYXJhbXMgewogdW5pb24gewogIHN0cnVjdCB0ZXRyYWhl
ZHJhbF8xN3gxN3gxNyB0ZXRyYWhlZHJhbF8xNzsKICBzdHJ1Y3QgdGV0cmFoZWRyYWxfOXg5eDkg
dGV0cmFoZWRyYWxfOTsKIH07CiBib29sIHVzZV90ZXRyYWhlZHJhbF85OwogYm9vbCB1c2VfMTJi
aXRzOwoKfTsKCgoKCgoKc3RydWN0IHB3bF9wYXJhbXMgewogc3RydWN0IGdhbW1hX2N1cnZlIGFy
cl9jdXJ2ZV9wb2ludHNbMzRdOwogdW5pb24gewogIHN0cnVjdCBjdXJ2ZV9wb2ludHMgYXJyX3Bv
aW50c1syXTsKICBzdHJ1Y3QgY3VydmVfcG9pbnRzMyBjb3JuZXJfcG9pbnRzWzJdOwogfTsKIHN0
cnVjdCBwd2xfcmVzdWx0X2RhdGEgcmdiX3Jlc3VsdGVkWzI1NiArIDNdOwogdWludDMyX3QgaHdf
cG9pbnRzX251bTsKfTsKCgoKCgoKCmVudW0gbGJfcGl4ZWxfZGVwdGggewoKIExCX1BJWEVMX0RF
UFRIXzE4QlBQID0gMSwKIExCX1BJWEVMX0RFUFRIXzI0QlBQID0gMiwKIExCX1BJWEVMX0RFUFRI
XzMwQlBQID0gNCwKIExCX1BJWEVMX0RFUFRIXzM2QlBQID0gOAp9OwoKZW51bSBncmFwaGljc19j
c2NfYWRqdXN0X3R5cGUgewogR1JBUEhJQ1NfQ1NDX0FESlVTVF9UWVBFX0JZUEFTUyA9IDAsCiBH
UkFQSElDU19DU0NfQURKVVNUX1RZUEVfSFcsCiBHUkFQSElDU19DU0NfQURKVVNUX1RZUEVfU1cK
fTsKCmVudW0gaXBwX2RlZ2FtbWFfbW9kZSB7CiBJUFBfREVHQU1NQV9NT0RFX0JZUEFTUywKIElQ
UF9ERUdBTU1BX01PREVfSFdfc1JHQiwKIElQUF9ERUdBTU1BX01PREVfSFdfeHZZQ0MsCiBJUFBf
REVHQU1NQV9NT0RFX1VTRVJfUFdMCn07CgplbnVtIGlwcF9vdXRwdXRfZm9ybWF0IHsKIElQUF9P
VVRQVVRfRk9STUFUXzEyX0JJVF9GSVgsCiBJUFBfT1VUUFVUX0ZPUk1BVF8xNl9CSVRfQllQQVNT
LAogSVBQX09VVFBVVF9GT1JNQVRfRkxPQVQKfTsKCmVudW0gZXhwYW5zaW9uX21vZGUgewogRVhQ
QU5TSU9OX01PREVfRFlOQU1JQywKIEVYUEFOU0lPTl9NT0RFX1pFUk8KfTsKCnN0cnVjdCBkZWZh
dWx0X2FkanVzdG1lbnQgewogZW51bSBsYl9waXhlbF9kZXB0aCBsYl9jb2xvcl9kZXB0aDsKIGVu
dW0gZGNfY29sb3Jfc3BhY2Ugb3V0X2NvbG9yX3NwYWNlOwogZW51bSBkY19jb2xvcl9zcGFjZSBp
bl9jb2xvcl9zcGFjZTsKIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBlbnVtIHBp
eGVsX2Zvcm1hdCBzdXJmYWNlX3BpeGVsX2Zvcm1hdDsKIGVudW0gZ3JhcGhpY3NfY3NjX2FkanVz
dF90eXBlIGNzY19hZGp1c3RfdHlwZTsKIGJvb2wgZm9yY2VfaHdfZGVmYXVsdDsKfTsKCgpzdHJ1
Y3Qgb3V0X2NzY19jb2xvcl9tYXRyaXggewogZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFj
ZTsKIHVpbnQxNl90IHJlZ3ZhbFsxMl07Cn07CgplbnVtIGdhbXV0X3JlbWFwX3NlbGVjdCB7CiBH
QU1VVF9SRU1BUF9CWVBBU1MgPSAwLAogR0FNVVRfUkVNQVBfQ09FRkYsCiBHQU1VVF9SRU1BUF9D
T01BX0NPRUZGLAogR0FNVVRfUkVNQVBfQ09NQl9DT0VGRgp9OwoKZW51bSBvcHBfcmVnYW1tYSB7
CiBPUFBfUkVHQU1NQV9CWVBBU1MgPSAwLAogT1BQX1JFR0FNTUFfU1JHQiwKIE9QUF9SRUdBTU1B
X1hWWUNDLAogT1BQX1JFR0FNTUFfVVNFUgp9OwoKZW51bSBvcHRjX2RzY19tb2RlIHsKIE9QVENf
RFNDX0RJU0FCTEVEID0gMCwKIE9QVENfRFNDX0VOQUJMRURfNDQ0ID0gMSwKIE9QVENfRFNDX0VO
QUJMRURfTkFUSVZFX1NVQlNBTVBMRUQgPSAyCn07CgpzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUg
ewogdWludDE2X3Qgc2NhbGVfcmVkOwogdWludDE2X3QgYmlhc19yZWQ7CiB1aW50MTZfdCBzY2Fs
ZV9ncmVlbjsKIHVpbnQxNl90IGJpYXNfZ3JlZW47CiB1aW50MTZfdCBzY2FsZV9ibHVlOwogdWlu
dDE2X3QgYmlhc19ibHVlOwp9OwoKZW51bSB0ZXN0X3BhdHRlcm5fZHluX3JhbmdlIHsKIFRFU1Rf
UEFUVEVSTl9EWU5fUkFOR0VfVkVTQSA9IDAsCiBURVNUX1BBVFRFUk5fRFlOX1JBTkdFX0NFQQp9
OwoKZW51bSB0ZXN0X3BhdHRlcm5fbW9kZSB7CiBURVNUX1BBVFRFUk5fTU9ERV9DT0xPUlNRVUFS
RVNfUkdCID0gMCwKIFRFU1RfUEFUVEVSTl9NT0RFX0NPTE9SU1FVQVJFU19ZQ0JDUjYwMSwKIFRF
U1RfUEFUVEVSTl9NT0RFX0NPTE9SU1FVQVJFU19ZQ0JDUjcwOSwKIFRFU1RfUEFUVEVSTl9NT0RF
X1ZFUlRJQ0FMQkFSUywKIFRFU1RfUEFUVEVSTl9NT0RFX0hPUklaT05UQUxCQVJTLAogVEVTVF9Q
QVRURVJOX01PREVfU0lOR0xFUkFNUF9SR0IsCiBURVNUX1BBVFRFUk5fTU9ERV9EVUFMUkFNUF9S
R0IsCiBURVNUX1BBVFRFUk5fTU9ERV9YUl9CSUFTX1JHQgp9OwoKZW51bSB0ZXN0X3BhdHRlcm5f
Y29sb3JfZm9ybWF0IHsKIFRFU1RfUEFUVEVSTl9DT0xPUl9GT1JNQVRfQlBDXzYgPSAwLAogVEVT
VF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfOCwKIFRFU1RfUEFUVEVSTl9DT0xPUl9GT1JNQVRf
QlBDXzEwLAogVEVTVF9QQVRURVJOX0NPTE9SX0ZPUk1BVF9CUENfMTIKfTsKCmVudW0gY29udHJv
bGxlcl9kcF90ZXN0X3BhdHRlcm4gewogQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fRDEwMiA9
IDAsCiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9TWU1CT0xFUlJPUiwKIENPTlRST0xMRVJf
RFBfVEVTVF9QQVRURVJOX1BSQlM3LAogQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fQ09MT1JT
UVVBUkVTLAogQ09OVFJPTExFUl9EUF9URVNUX1BBVFRFUk5fVkVSVElDQUxCQVJTLAogQ09OVFJP
TExFUl9EUF9URVNUX1BBVFRFUk5fSE9SSVpPTlRBTEJBUlMsCiBDT05UUk9MTEVSX0RQX1RFU1Rf
UEFUVEVSTl9DT0xPUlJBTVAsCiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9WSURFT01PREUs
CiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9SRVNFUlZFRF84LAogQ09OVFJPTExFUl9EUF9U
RVNUX1BBVFRFUk5fUkVTRVJWRURfOSwKIENPTlRST0xMRVJfRFBfVEVTVF9QQVRURVJOX1JFU0VS
VkVEX0EsCiBDT05UUk9MTEVSX0RQX1RFU1RfUEFUVEVSTl9DT0xPUlNRVUFSRVNfQ0VBLAogQ09O
VFJPTExFUl9EUF9URVNUX1BBVFRFUk5fU09MSURfQ09MT1IKfTsKCmVudW0gY29udHJvbGxlcl9k
cF9jb2xvcl9zcGFjZSB7CiBDT05UUk9MTEVSX0RQX0NPTE9SX1NQQUNFX1JHQiwKIENPTlRST0xM
RVJfRFBfQ09MT1JfU1BBQ0VfWUNCQ1I2MDEsCiBDT05UUk9MTEVSX0RQX0NPTE9SX1NQQUNFX1lD
QkNSNzA5LAogQ09OVFJPTExFUl9EUF9DT0xPUl9TUEFDRV9VREVGSU5FRAp9OwoKZW51bSBkY19s
dXRfbW9kZSB7CiBMVVRfQllQQVNTLAogTFVUX1JBTV9BLAogTFVUX1JBTV9CCn07CiMgMzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgiIDIK
CiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody90
cmFuc2Zvcm0uaCIgMQojIDM1ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2h3L3RyYW5zZm9ybS5oIgpzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJh
bXM7CgpzdHJ1Y3QgdHJhbnNmb3JtIHsKIGNvbnN0IHN0cnVjdCB0cmFuc2Zvcm1fZnVuY3MgKmZ1
bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIGludCBpbnN0Owogc3RydWN0IGRwcF9jYXBz
ICpjYXBzOwogc3RydWN0IHB3bF9wYXJhbXMgcmVnYW1tYV9wYXJhbXM7Cn07CgoKZW51bSBjb2xv
cmltZXRyeSB7CiBDT0xPUklNRVRSWV9OT19EQVRBID0gMCwKIENPTE9SSU1FVFJZX0lUVTYwMSA9
IDEsCiBDT0xPUklNRVRSWV9JVFU3MDkgPSAyLAogQ09MT1JJTUVUUllfRVhURU5ERUQgPSAzCn07
CgplbnVtIGNvbG9yaW1ldHJ5X2V4dCB7CiBDT0xPUklNRVRSWUVYX1hWWUNDNjAxID0gMCwKIENP
TE9SSU1FVFJZRVhfWFZZQ0M3MDkgPSAxLAogQ09MT1JJTUVUUllFWF9TWUNDNjAxID0gMiwKIENP
TE9SSU1FVFJZRVhfQURPQkVZQ0M2MDEgPSAzLAogQ09MT1JJTUVUUllFWF9BRE9CRVJHQiA9IDQs
CiBDT0xPUklNRVRSWUVYX0JUMjAyMFlDQyA9IDUsCiBDT0xPUklNRVRSWUVYX0JUMjAyMFJHQllD
QkNSID0gNiwKIENPTE9SSU1FVFJZRVhfUkVTRVJWRUQgPSA3Cn07CgplbnVtIGFjdGl2ZV9mb3Jt
YXRfaW5mbyB7CiBBQ1RJVkVfRk9STUFUX05PX0RBVEEgPSAwLAogQUNUSVZFX0ZPUk1BVF9WQUxJ
RCA9IDEKfTsKCgplbnVtIGFjdGl2ZV9mb3JtYXRfYXNwZWN0X3JhdGlvIHsKIEFDVElWRV9GT1JN
QVRfQVNQRUNUX1JBVElPX1NBTUVfQVNfUElDVFVSRSA9IDgsCiBBQ1RJVkVfRk9STUFUX0FTUEVD
VF9SQVRJT180XzMgPSA5LAogQUNUSVZFX0ZPUk1BVF9BU1BFQ1RfUkFUSU9fMTZfOSA9IDBYQSwK
IEFDVElWRV9GT1JNQVRfQVNQRUNUX1JBVElPXzE0XzkgPSAwWEIKfTsKCmVudW0gYmFyX2luZm8g
ewogQkFSX0lORk9fTk9UX1ZBTElEID0gMCwKIEJBUl9JTkZPX1ZFUlRJQ0FMX1ZBTElEID0gMSwK
IEJBUl9JTkZPX0hPUklaT05UQUxfVkFMSUQgPSAyLAogQkFSX0lORk9fQk9USF9WQUxJRCA9IDMK
fTsKCmVudW0gcGljdHVyZV9zY2FsaW5nIHsKIFBJQ1RVUkVfU0NBTElOR19VTklGT1JNID0gMCwK
IFBJQ1RVUkVfU0NBTElOR19IT1JJWk9OVEFMID0gMSwKIFBJQ1RVUkVfU0NBTElOR19WRVJUSUNB
TCA9IDIsCiBQSUNUVVJFX1NDQUxJTkdfQk9USCA9IDMKfTsKCgplbnVtIHJnYl9xdWFudGl6YXRp
b25fcmFuZ2UgewogUkdCX1FVQU5USVpBVElPTl9ERUZBVUxUX1JBTkdFID0gMCwKIFJHQl9RVUFO
VElaQVRJT05fTElNSVRFRF9SQU5HRSA9IDEsCiBSR0JfUVVBTlRJWkFUSU9OX0ZVTExfUkFOR0Ug
PSAyLAogUkdCX1FVQU5USVpBVElPTl9SRVNFUlZFRCA9IDMKfTsKCgplbnVtIHl5Y19xdWFudGl6
YXRpb25fcmFuZ2UgewogWVlDX1FVQU5USVpBVElPTl9MSU1JVEVEX1JBTkdFID0gMCwKIFlZQ19R
VUFOVElaQVRJT05fRlVMTF9SQU5HRSA9IDEsCiBZWUNfUVVBTlRJWkFUSU9OX1JFU0VSVkVEMiA9
IDIsCiBZWUNfUVVBTlRJWkFUSU9OX1JFU0VSVkVEMyA9IDMKfTsKCmVudW0gZ3JhcGhpY3NfZ2Ft
dXRfYWRqdXN0X3R5cGUgewogR1JBUEhJQ1NfR0FNVVRfQURKVVNUX1RZUEVfQllQQVNTID0gMCwK
IEdSQVBISUNTX0dBTVVUX0FESlVTVF9UWVBFX0hXLAogR1JBUEhJQ1NfR0FNVVRfQURKVVNUX1RZ
UEVfU1cKfTsKCmVudW0gbGJfbWVtb3J5X2NvbmZpZyB7CgogTEJfTUVNT1JZX0NPTkZJR18wID0g
MCwKCgogTEJfTUVNT1JZX0NPTkZJR18xID0gMSwKCgogTEJfTUVNT1JZX0NPTkZJR18yID0gMiwK
CgoKCiBMQl9NRU1PUllfQ09ORklHXzMgPSAzCn07CgpzdHJ1Y3QgeGZtX2dycGhfY3NjX2FkanVz
dG1lbnQgewogc3RydWN0IGZpeGVkMzFfMzIgdGVtcGVyYXR1cmVfbWF0cml4WzEyXTsKIGVudW0g
Z3JhcGhpY3NfZ2FtdXRfYWRqdXN0X3R5cGUgZ2FtdXRfYWRqdXN0X3R5cGU7Cn07CgpzdHJ1Y3Qg
b3ZlcnNjYW5faW5mbyB7CiBpbnQgbGVmdDsKIGludCByaWdodDsKIGludCB0b3A7CiBpbnQgYm90
dG9tOwp9OwoKc3RydWN0IHNjYWxpbmdfcmF0aW9zIHsKIHN0cnVjdCBmaXhlZDMxXzMyIGhvcno7
CiBzdHJ1Y3QgZml4ZWQzMV8zMiB2ZXJ0Owogc3RydWN0IGZpeGVkMzFfMzIgaG9yel9jOwogc3Ry
dWN0IGZpeGVkMzFfMzIgdmVydF9jOwp9OwoKc3RydWN0IHNoYXJwbmVzc19hZGogewogaW50IGhv
cno7CiBpbnQgdmVydDsKfTsKCnN0cnVjdCBsaW5lX2J1ZmZlcl9wYXJhbXMgewogYm9vbCBhbHBo
YV9lbjsKIGJvb2wgcGl4ZWxfZXhwYW5fbW9kZTsKIGJvb2wgaW50ZXJsZWF2ZV9lbjsKIGludCBk
eW5hbWljX3BpeGVsX2RlcHRoOwogZW51bSBsYl9waXhlbF9kZXB0aCBkZXB0aDsKfTsKCnN0cnVj
dCBzY2xfaW5pdHMgewogc3RydWN0IGZpeGVkMzFfMzIgaDsKIHN0cnVjdCBmaXhlZDMxXzMyIGhf
YzsKIHN0cnVjdCBmaXhlZDMxXzMyIHY7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB2X2JvdDsKIHN0cnVj
dCBmaXhlZDMxXzMyIHZfYzsKIHN0cnVjdCBmaXhlZDMxXzMyIHZfY19ib3Q7Cn07CgpzdHJ1Y3Qg
c2NhbGVyX2RhdGEgewogaW50IGhfYWN0aXZlOwogaW50IHZfYWN0aXZlOwogc3RydWN0IHNjYWxp
bmdfdGFwcyB0YXBzOwogc3RydWN0IHJlY3Qgdmlld3BvcnQ7CiBzdHJ1Y3QgcmVjdCB2aWV3cG9y
dF9jOwogc3RydWN0IHJlY3QgcmVjb3V0Owogc3RydWN0IHNjYWxpbmdfcmF0aW9zIHJhdGlvczsK
IHN0cnVjdCBzY2xfaW5pdHMgaW5pdHM7CiBzdHJ1Y3Qgc2hhcnBuZXNzX2FkaiBzaGFycG5lc3M7
CiBlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQ7CiBzdHJ1Y3QgbGluZV9idWZmZXJfcGFyYW1zIGxi
X3BhcmFtczsKfTsKCnN0cnVjdCB0cmFuc2Zvcm1fZnVuY3Mgewogdm9pZCAoKnRyYW5zZm9ybV9y
ZXNldCkoc3RydWN0IHRyYW5zZm9ybSAqeGZtKTsKCiB2b2lkICgqdHJhbnNmb3JtX3NldF9zY2Fs
ZXIpKHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0IHNjYWxlcl9kYXRhICpz
Y2xfZGF0YSk7Cgogdm9pZCAoKnRyYW5zZm9ybV9zZXRfcGl4ZWxfc3RvcmFnZV9kZXB0aCkoCiAg
IHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgZW51bSBsYl9waXhlbF9kZXB0aCBkZXB0aCwKICAg
Y29uc3Qgc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zICpiaXRfZGVwdGhfcGFyYW1z
KTsKCiBib29sICgqdHJhbnNmb3JtX2dldF9vcHRpbWFsX251bWJlcl9vZl90YXBzKSgKICAgc3Ry
dWN0IHRyYW5zZm9ybSAqeGZtLAogICBzdHJ1Y3Qgc2NhbGVyX2RhdGEgKnNjbF9kYXRhLAogICBj
b25zdCBzdHJ1Y3Qgc2NhbGluZ190YXBzICppbl90YXBzKTsKCiB2b2lkICgqdHJhbnNmb3JtX3Nl
dF9nYW11dF9yZW1hcCkoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0
IHhmbV9ncnBoX2NzY19hZGp1c3RtZW50ICphZGp1c3QpOwoKIHZvaWQgKCpvcHBfc2V0X2NzY19k
ZWZhdWx0KSgKICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCiAgY29uc3Qgc3RydWN0IGRlZmF1bHRf
YWRqdXN0bWVudCAqZGVmYXVsdF9hZGp1c3QpOwoKIHZvaWQgKCpvcHBfc2V0X2NzY19hZGp1c3Rt
ZW50KSgKICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCiAgY29uc3Qgc3RydWN0IG91dF9jc2NfY29s
b3JfbWF0cml4ICp0YmxfZW50cnkpOwoKIHZvaWQgKCpvcHBfcG93ZXJfb25fcmVnYW1tYV9sdXQp
KAogIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICBib29sIHBvd2VyX29uKTsKCiB2b2lkICgqb3Bw
X3Byb2dyYW1fcmVnYW1tYV9sdXQpKAogICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm0sCiAgIGNvbnN0
IHN0cnVjdCBwd2xfcmVzdWx0X2RhdGEgKnJnYiwKICAgdWludDMyX3QgbnVtKTsKCiB2b2lkICgq
b3BwX2NvbmZpZ3VyZV9yZWdhbW1hX2x1dCkoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAg
Ym9vbCBpc19yYW1fYSk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2FtbWFfbHV0Yl9zZXR0aW5n
cykoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMg
KnBhcmFtcyk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2FtbWFfbHV0YV9zZXR0aW5ncykoCiAg
IHN0cnVjdCB0cmFuc2Zvcm0gKnhmbSwKICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFt
cyk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3JlZ2FtbWFfcHdsKSgKICBzdHJ1Y3QgdHJhbnNmb3Jt
ICp4Zm0sIGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwoKIHZvaWQgKCpvcHBfc2V0
X3JlZ2FtbWFfbW9kZSkoCiAgIHN0cnVjdCB0cmFuc2Zvcm0gKnhmbV9iYXNlLAogICBlbnVtIG9w
cF9yZWdhbW1hIG1vZGUpOwoKIHZvaWQgKCppcHBfc2V0X2RlZ2FtbWEpKAogICBzdHJ1Y3QgdHJh
bnNmb3JtICp4Zm1fYmFzZSwKICAgZW51bSBpcHBfZGVnYW1tYV9tb2RlIG1vZGUpOwoKIHZvaWQg
KCppcHBfcHJvZ3JhbV9pbnB1dF9sdXQpKAogICBzdHJ1Y3QgdHJhbnNmb3JtICp4Zm1fYmFzZSwK
ICAgY29uc3Qgc3RydWN0IGRjX2dhbW1hICpnYW1tYSk7Cgogdm9pZCAoKmlwcF9wcm9ncmFtX2Rl
Z2FtbWFfcHdsKShzdHJ1Y3QgdHJhbnNmb3JtICp4Zm1fYmFzZSwKICAgICAgICAgIGNvbnN0IHN0
cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwoKIHZvaWQgKCppcHBfc2V0dXApKAogICBzdHJ1Y3Qg
dHJhbnNmb3JtICp4Zm1fYmFzZSwKICAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQs
CiAgIGVudW0gZXhwYW5zaW9uX21vZGUgbW9kZSwKICAgc3RydWN0IGRjX2NzY190cmFuc2Zvcm0g
aW5wdXRfY3NjX2NvbG9yX21hdHJpeCwKICAgZW51bSBkY19jb2xvcl9zcGFjZSBpbnB1dF9jb2xv
cl9zcGFjZSk7Cgogdm9pZCAoKmlwcF9mdWxsX2J5cGFzcykoc3RydWN0IHRyYW5zZm9ybSAqeGZt
X2Jhc2UpOwoKIHZvaWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZXMpKAogICBzdHJ1Y3QgdHJhbnNm
b3JtICp4Zm1fYmFzZSwKICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICphdHRy
KTsKCn07Cgpjb25zdCB1aW50MTZfdCAqZ2V0X2ZpbHRlcl8ydGFwXzE2cCh2b2lkKTsKY29uc3Qg
dWludDE2X3QgKmdldF9maWx0ZXJfMnRhcF82NHAodm9pZCk7CmNvbnN0IHVpbnQxNl90ICpnZXRf
ZmlsdGVyXzN0YXBfMTZwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsKY29uc3QgdWludDE2X3Qg
KmdldF9maWx0ZXJfM3RhcF82NHAoc3RydWN0IGZpeGVkMzFfMzIgcmF0aW8pOwpjb25zdCB1aW50
MTZfdCAqZ2V0X2ZpbHRlcl80dGFwXzE2cChzdHJ1Y3QgZml4ZWQzMV8zMiByYXRpbyk7CmNvbnN0
IHVpbnQxNl90ICpnZXRfZmlsdGVyXzR0YXBfNjRwKHN0cnVjdCBmaXhlZDMxXzMyIHJhdGlvKTsK
Y29uc3QgdWludDE2X3QgKmdldF9maWx0ZXJfNXRhcF82NHAoc3RydWN0IGZpeGVkMzFfMzIgcmF0
aW8pOwpjb25zdCB1aW50MTZfdCAqZ2V0X2ZpbHRlcl82dGFwXzY0cChzdHJ1Y3QgZml4ZWQzMV8z
MiByYXRpbyk7CmNvbnN0IHVpbnQxNl90ICpnZXRfZmlsdGVyXzd0YXBfNjRwKHN0cnVjdCBmaXhl
ZDMxXzMyIHJhdGlvKTsKY29uc3QgdWludDE2X3QgKmdldF9maWx0ZXJfOHRhcF82NHAoc3RydWN0
IGZpeGVkMzFfMzIgcmF0aW8pOwoKCgplbnVtIGRzY2xfZGF0YV9wcm9jZXNzaW5nX2Zvcm1hdCB7
CiBEU0NMX0RBVEFfUFJDRVNTSU5HX0ZJWEVEX0ZPUk1BVCwKIERTQ0xfREFUQV9QUkNFU1NJTkdf
RkxPQVRfRk9STUFULAp9OwoKCgoKCgoKc3RydWN0IGRwcF9jYXBzIHsKCiBlbnVtIGRzY2xfZGF0
YV9wcm9jZXNzaW5nX2Zvcm1hdCBkc2NsX2RhdGFfcHJvY19mb3JtYXQ7CgoKCgoKIHZvaWQgKCpk
c2NsX2NhbGNfbGJfbnVtX3BhcnRpdGlvbnMpKAogICBjb25zdCBzdHJ1Y3Qgc2NhbGVyX2RhdGEg
KnNjbF9kYXRhLAogICBlbnVtIGxiX21lbW9yeV9jb25maWcgbGJfY29uZmlnLAogICBpbnQgKm51
bV9wYXJ0X3ksCiAgIGludCAqbnVtX3BhcnRfYyk7Cn07CiMgMzIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvb3BwLmgiIDIKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L21wYy5oIiAxCiMgMzYgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCmVu
dW0gbXBjX291dHB1dF9jc2NfbW9kZSB7CiBNUENfT1VUUFVUX0NTQ19ESVNBQkxFID0gMCwKIE1Q
Q19PVVRQVVRfQ1NDX0NPRUZfQSwKIE1QQ19PVVRQVVRfQ1NDX0NPRUZfQgp9OwoKCmVudW0gbXBj
Y19ibGVuZF9tb2RlIHsKIE1QQ0NfQkxFTkRfTU9ERV9CWVBBU1MsCiBNUENDX0JMRU5EX01PREVf
VE9QX0xBWUVSX1BBU1NUSFJPVUdILAogTVBDQ19CTEVORF9NT0RFX1RPUF9MQVlFUl9PTkxZLAog
TVBDQ19CTEVORF9NT0RFX1RPUF9CT1RfQkxFTkRJTkcKfTsKCmVudW0gbXBjY19hbHBoYV9ibGVu
ZF9tb2RlIHsKIE1QQ0NfQUxQSEFfQkxFTkRfTU9ERV9QRVJfUElYRUxfQUxQSEEsCiBNUENDX0FM
UEhBX0JMRU5EX01PREVfUEVSX1BJWEVMX0FMUEhBX0NPTUJJTkVEX0dMT0JBTF9HQUlOLAogTVBD
Q19BTFBIQV9CTEVORF9NT0RFX0dMT0JBTF9BTFBIQQp9OwoKCgoKc3RydWN0IG1wY2NfYmxuZF9j
Zmcgewogc3RydWN0IHRnX2NvbG9yIGJsYWNrX2NvbG9yOwogZW51bSBtcGNjX2FscGhhX2JsZW5k
X21vZGUgYWxwaGFfbW9kZTsKIGJvb2wgcHJlX211bHRpcGxpZWRfYWxwaGE7CiBpbnQgZ2xvYmFs
X2dhaW47CiBpbnQgZ2xvYmFsX2FscGhhOwogYm9vbCBvdmVybGFwX29ubHk7CgoKIGludCBib3R0
b21fZ2Fpbl9tb2RlOwogaW50IGJhY2tncm91bmRfY29sb3JfYnBjOwogaW50IHRvcF9nYWluOwog
aW50IGJvdHRvbV9pbnNpZGVfZ2FpbjsKIGludCBib3R0b21fb3V0c2lkZV9nYWluOwp9OwoKc3Ry
dWN0IG1wY2Nfc21fY2ZnIHsKIGJvb2wgZW5hYmxlOwoKIGludCBzbV9tb2RlOwoKIGJvb2wgZnJh
bWVfYWx0OwoKIGJvb2wgZmllbGRfYWx0OwoKIGludCBmb3JjZV9uZXh0X2ZyYW1lX3Bvcmxhcml0
eTsKCiBpbnQgZm9yY2VfbmV4dF9maWVsZF9wb2xhcml0eTsKfTsKCnN0cnVjdCBtcGNfZGVub3Jt
X2NsYW1wIHsKIGludCBjbGFtcF9tYXhfcl9jcjsKIGludCBjbGFtcF9taW5fcl9jcjsKIGludCBj
bGFtcF9tYXhfZ195OwogaW50IGNsYW1wX21pbl9nX3k7CiBpbnQgY2xhbXBfbWF4X2JfY2I7CiBp
bnQgY2xhbXBfbWluX2JfY2I7Cn07CgoKCgoKc3RydWN0IG1wY2MgewogaW50IG1wY2NfaWQ7CiBp
bnQgZHBwX2lkOwogc3RydWN0IG1wY2MgKm1wY2NfYm90Owogc3RydWN0IG1wY2NfYmxuZF9jZmcg
YmxuZF9jZmc7CiBzdHJ1Y3QgbXBjY19zbV9jZmcgc21fY2ZnOwp9OwoKCgoKc3RydWN0IG1wY190
cmVlIHsKIGludCBvcHBfaWQ7CiBzdHJ1Y3QgbXBjYyAqb3BwX2xpc3Q7Cn07CgpzdHJ1Y3QgbXBj
IHsKIGNvbnN0IHN0cnVjdCBtcGNfZnVuY3MgKmZ1bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKCiBzdHJ1Y3QgbXBjYyBtcGNjX2FycmF5WzZdOwogc3RydWN0IHB3bF9wYXJhbXMgYmxlbmRl
cl9wYXJhbXM7CiBib29sIGNtX2J5cGFzc19tb2RlOwp9OwoKc3RydWN0IG1wY2Nfc3RhdGUgewog
dWludDMyX3Qgb3BwX2lkOwogdWludDMyX3QgZHBwX2lkOwogdWludDMyX3QgYm90X21wY2NfaWQ7
CiB1aW50MzJfdCBtb2RlOwogdWludDMyX3QgYWxwaGFfbW9kZTsKIHVpbnQzMl90IHByZV9tdWx0
aXBsaWVkX2FscGhhOwogdWludDMyX3Qgb3ZlcmxhcF9vbmx5OwogdWludDMyX3QgaWRsZTsKIHVp
bnQzMl90IGJ1c3k7Cn07CgpzdHJ1Y3QgbXBjX2Z1bmNzIHsKIHZvaWQgKCpyZWFkX21wY2Nfc3Rh
dGUpKAogICBzdHJ1Y3QgbXBjICptcGMsCiAgIGludCBtcGNjX2luc3QsCiAgIHN0cnVjdCBtcGNj
X3N0YXRlICpzKTsKIyAxNjEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvbXBjLmgiCiBzdHJ1Y3QgbXBjYyogKCppbnNlcnRfcGxhbmUpKAogICBzdHJ1
Y3QgbXBjICptcGMsCiAgIHN0cnVjdCBtcGNfdHJlZSAqdHJlZSwKICAgc3RydWN0IG1wY2NfYmxu
ZF9jZmcgKmJsbmRfY2ZnLAogICBzdHJ1Y3QgbXBjY19zbV9jZmcgKnNtX2NmZywKICAgc3RydWN0
IG1wY2MgKmluc2VydF9hYm92ZV9tcGNjLAogICBpbnQgZHBwX2lkLAogICBpbnQgbXBjY19pZCk7
CiMgMTgwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3
L21wYy5oIgogdm9pZCAoKnJlbW92ZV9tcGNjKSgKICAgc3RydWN0IG1wYyAqbXBjLAogICBzdHJ1
Y3QgbXBjX3RyZWUgKnRyZWUsCiAgIHN0cnVjdCBtcGNjICptcGNjKTsKIyAxOTMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCiB2b2lkICgq
bXBjX2luaXQpKHN0cnVjdCBtcGMgKm1wYyk7CiB2b2lkICgqbXBjX2luaXRfc2luZ2xlX2luc3Qp
KAogICBzdHJ1Y3QgbXBjICptcGMsCiAgIHVuc2lnbmVkIGludCBtcGNjX2lkKTsKIyAyMDggIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbXBjLmgiCiB2
b2lkICgqdXBkYXRlX2JsZW5kaW5nKSgKICBzdHJ1Y3QgbXBjICptcGMsCiAgc3RydWN0IG1wY2Nf
YmxuZF9jZmcgKmJsbmRfY2ZnLAogIGludCBtcGNjX2lkKTsKCiBzdHJ1Y3QgbXBjYyogKCpnZXRf
bXBjY19mb3JfZHBwKSgKICAgc3RydWN0IG1wY190cmVlICp0cmVlLAogICBpbnQgZHBwX2lkKTsK
CiB2b2lkICgqd2FpdF9mb3JfaWRsZSkoc3RydWN0IG1wYyAqbXBjLCBpbnQgaWQpOwoKIHZvaWQg
KCphc3NlcnRfbXBjY19pZGxlX2JlZm9yZV9jb25uZWN0KShzdHJ1Y3QgbXBjICptcGMsIGludCBt
cGNjX2lkKTsKCiB2b2lkICgqaW5pdF9tcGNjX2xpc3RfZnJvbV9odykoCiAgc3RydWN0IG1wYyAq
bXBjLAogIHN0cnVjdCBtcGNfdHJlZSAqdHJlZSk7Cgogdm9pZCAoKnNldF9kZW5vcm0pKHN0cnVj
dCBtcGMgKm1wYywKICAgaW50IG9wcF9pZCwKICAgZW51bSBkY19jb2xvcl9kZXB0aCBvdXRwdXRf
ZGVwdGgpOwoKIHZvaWQgKCpzZXRfZGVub3JtX2NsYW1wKSgKICAgc3RydWN0IG1wYyAqbXBjLAog
ICBpbnQgb3BwX2lkLAogICBzdHJ1Y3QgbXBjX2Rlbm9ybV9jbGFtcCBkZW5vcm1fY2xhbXApOwoK
IHZvaWQgKCpzZXRfb3V0cHV0X2NzYykoc3RydWN0IG1wYyAqbXBjLAogICBpbnQgb3BwX2lkLAog
ICBjb25zdCB1aW50MTZfdCAqcmVndmFsLAogICBlbnVtIG1wY19vdXRwdXRfY3NjX21vZGUgb2Nz
Y19tb2RlKTsKCiB2b2lkICgqc2V0X29jc2NfZGVmYXVsdCkoc3RydWN0IG1wYyAqbXBjLAogICBp
bnQgb3BwX2lkLAogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlLAogICBlbnVtIG1w
Y19vdXRwdXRfY3NjX21vZGUgb2NzY19tb2RlKTsKCiB2b2lkICgqc2V0X291dHB1dF9nYW1tYSko
CiAgIHN0cnVjdCBtcGMgKm1wYywKICAgaW50IG1wY2NfaWQsCiAgIGNvbnN0IHN0cnVjdCBwd2xf
cGFyYW1zICpwYXJhbXMpOwogdm9pZCAoKnBvd2VyX29uX21wY19tZW1fcHdyKSgKICAgc3RydWN0
IG1wYyAqbXBjLAogICBpbnQgbXBjY19pZCwKICAgYm9vbCBwb3dlcl9vbik7Cgp9OwojIDMzICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L29wcC5oIiAy
CgpzdHJ1Y3QgZml4ZWQzMV8zMjsKCgplbnVtIGNsYW1waW5nX3JhbmdlIHsKIENMQU1QSU5HX0ZV
TExfUkFOR0UgPSAwLAogQ0xBTVBJTkdfTElNSVRFRF9SQU5HRV84QlBDLAogQ0xBTVBJTkdfTElN
SVRFRF9SQU5HRV8xMEJQQywKIENMQU1QSU5HX0xJTUlURURfUkFOR0VfMTJCUEMsCgogQ0xBTVBJ
TkdfTElNSVRFRF9SQU5HRV9QUk9HUkFNTUFCTEUKfTsKCnN0cnVjdCBjbGFtcGluZ19hbmRfcGl4
ZWxfZW5jb2RpbmdfcGFyYW1zIHsKIGVudW0gZGNfcGl4ZWxfZW5jb2RpbmcgcGl4ZWxfZW5jb2Rp
bmc7CiBlbnVtIGNsYW1waW5nX3JhbmdlIGNsYW1waW5nX2xldmVsOwogZW51bSBkY19jb2xvcl9k
ZXB0aCBjX2RlcHRoOwp9OwoKc3RydWN0IGJpdF9kZXB0aF9yZWR1Y3Rpb25fcGFyYW1zIHsKIHN0
cnVjdCB7CgoKICB1aW50MzJfdCBUUlVOQ0FURV9FTkFCTEVEOjE7CgogIHVpbnQzMl90IFRSVU5D
QVRFX0RFUFRIOjI7CgogIHVpbnQzMl90IFRSVU5DQVRFX01PREU6MTsKCgoKICB1aW50MzJfdCBT
UEFUSUFMX0RJVEhFUl9FTkFCTEVEOjE7CgogIHVpbnQzMl90IFNQQVRJQUxfRElUSEVSX0RFUFRI
OjI7CgogIHVpbnQzMl90IFNQQVRJQUxfRElUSEVSX01PREU6MjsKCiAgdWludDMyX3QgUkdCX1JB
TkRPTToxOwoKICB1aW50MzJfdCBGUkFNRV9SQU5ET006MTsKCiAgdWludDMyX3QgSElHSFBBU1Nf
UkFORE9NOjE7CgoKCiAgdWludDMyX3QgRlJBTUVfTU9EVUxBVElPTl9FTkFCTEVEOjE7CgogIHVp
bnQzMl90IEZSQU1FX01PRFVMQVRJT05fREVQVEg6MjsKCiAgdWludDMyX3QgVEVNUE9SQUxfTEVW
RUw6MTsKICB1aW50MzJfdCBGUkMyNToyOwogIHVpbnQzMl90IEZSQzUwOjI7CiAgdWludDMyX3Qg
RlJDNzU6MjsKIH0gZmxhZ3M7CgogdWludDMyX3Qgcl9zZWVkX3ZhbHVlOwogdWludDMyX3QgYl9z
ZWVkX3ZhbHVlOwogdWludDMyX3QgZ19zZWVkX3ZhbHVlOwogZW51bSBkY19waXhlbF9lbmNvZGlu
ZyBwaXhlbF9lbmNvZGluZzsKfTsKCmVudW0gd2lkZV9nYW11dF9yZWdhbW1hX21vZGUgewoKIFdJ
REVfR0FNVVRfUkVHQU1NQV9NT0RFX0dSQVBISUNTX0JZUEFTUywKCiBXSURFX0dBTVVUX1JFR0FN
TUFfTU9ERV9HUkFQSElDU19TUkdCMjQsCgogV0lERV9HQU1VVF9SRUdBTU1BX01PREVfR1JBUEhJ
Q1NfWFlZQ0MyMiwKCiBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19NQVRSSVhfQSwK
CiBXSURFX0dBTVVUX1JFR0FNTUFfTU9ERV9HUkFQSElDU19NQVRSSVhfQiwKCiBXSURFX0dBTVVU
X1JFR0FNTUFfTU9ERV9PVkxfQllQQVNTLAoKIFdJREVfR0FNVVRfUkVHQU1NQV9NT0RFX09WTF9T
UkdCMjQsCgogV0lERV9HQU1VVF9SRUdBTU1BX01PREVfT1ZMX1hZWUNDMjIsCgogV0lERV9HQU1V
VF9SRUdBTU1BX01PREVfT1ZMX01BVFJJWF9BLAoKIFdJREVfR0FNVVRfUkVHQU1NQV9NT0RFX09W
TF9NQVRSSVhfQgp9OwoKc3RydWN0IGdhbW1hX3BpeGVsIHsKIHN0cnVjdCBmaXhlZDMxXzMyIHI7
CiBzdHJ1Y3QgZml4ZWQzMV8zMiBnOwogc3RydWN0IGZpeGVkMzFfMzIgYjsKfTsKCmVudW0gY2hh
bm5lbF9uYW1lIHsKIENIQU5ORUxfTkFNRV9SRUQsCiBDSEFOTkVMX05BTUVfR1JFRU4sCiBDSEFO
TkVMX05BTUVfQkxVRQp9OwoKc3RydWN0IGN1c3RvbV9mbG9hdF9mb3JtYXQgewogdWludDMyX3Qg
bWFudGlzc2FfYml0czsKIHVpbnQzMl90IGV4cG9uZW50YV9iaXRzOwogYm9vbCBzaWduOwp9OwoK
c3RydWN0IGN1c3RvbV9mbG9hdF92YWx1ZSB7CiB1aW50MzJfdCBtYW50aXNzYTsKIHVpbnQzMl90
IGV4cG9uZW50YTsKIHVpbnQzMl90IHZhbHVlOwogYm9vbCBuZWdhdGl2ZTsKfTsKCnN0cnVjdCBo
d194X3BvaW50IHsKIHVpbnQzMl90IGN1c3RvbV9mbG9hdF94Owogc3RydWN0IGZpeGVkMzFfMzIg
eDsKIHN0cnVjdCBmaXhlZDMxXzMyIHJlZ2FtbWFfeV9yZWQ7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBy
ZWdhbW1hX3lfZ3JlZW47CiBzdHJ1Y3QgZml4ZWQzMV8zMiByZWdhbW1hX3lfYmx1ZTsKCn07Cgpz
dHJ1Y3QgcHdsX2Zsb2F0X2RhdGFfZXggewogc3RydWN0IGZpeGVkMzFfMzIgcjsKIHN0cnVjdCBm
aXhlZDMxXzMyIGc7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBiOwogc3RydWN0IGZpeGVkMzFfMzIgZGVs
dGFfcjsKIHN0cnVjdCBmaXhlZDMxXzMyIGRlbHRhX2c7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBkZWx0
YV9iOwp9OwoKZW51bSBod19wb2ludF9wb3NpdGlvbiB7CgogSFdfUE9JTlRfUE9TSVRJT05fTUlE
RExFLAoKIEhXX1BPSU5UX1BPU0lUSU9OX0xFRlQsCgogSFdfUE9JTlRfUE9TSVRJT05fUklHSFQK
fTsKCnN0cnVjdCBnYW1tYV9wb2ludCB7CiBpbnQzMl90IGxlZnRfaW5kZXg7CiBpbnQzMl90IHJp
Z2h0X2luZGV4OwogZW51bSBod19wb2ludF9wb3NpdGlvbiBwb3M7CiBzdHJ1Y3QgZml4ZWQzMV8z
MiBjb2VmZjsKfTsKCnN0cnVjdCBwaXhlbF9nYW1tYV9wb2ludCB7CiBzdHJ1Y3QgZ2FtbWFfcG9p
bnQgcjsKIHN0cnVjdCBnYW1tYV9wb2ludCBnOwogc3RydWN0IGdhbW1hX3BvaW50IGI7Cn07Cgpz
dHJ1Y3QgZ2FtbWFfY29lZmZpY2llbnRzIHsKIHN0cnVjdCBmaXhlZDMxXzMyIGEwWzNdOwogc3Ry
dWN0IGZpeGVkMzFfMzIgYTFbM107CiBzdHJ1Y3QgZml4ZWQzMV8zMiBhMlszXTsKIHN0cnVjdCBm
aXhlZDMxXzMyIGEzWzNdOwogc3RydWN0IGZpeGVkMzFfMzIgdXNlcl9nYW1tYVszXTsKIHN0cnVj
dCBmaXhlZDMxXzMyIHVzZXJfY29udHJhc3Q7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB1c2VyX2JyaWdo
dG5lc3M7Cn07CgpzdHJ1Y3QgcHdsX2Zsb2F0X2RhdGEgewogc3RydWN0IGZpeGVkMzFfMzIgcjsK
IHN0cnVjdCBmaXhlZDMxXzMyIGc7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBiOwp9OwoKc3RydWN0IG1w
Y190cmVlX2NmZyB7CiBpbnQgbnVtX3BpcGVzOwogaW50IGRwcFs2XTsKIGludCBtcGNjWzZdOwp9
OwoKc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3Igewogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKIHVpbnQzMl90IGluc3Q7CiBzdHJ1Y3QgcHdsX3BhcmFtcyByZWdhbW1hX3BhcmFtczsKIHN0
cnVjdCBtcGNfdHJlZSBtcGNfdHJlZV9wYXJhbXM7CiBib29sIG1wY2NfZGlzY29ubmVjdF9wZW5k
aW5nWzZdOwogY29uc3Qgc3RydWN0IG9wcF9mdW5jcyAqZnVuY3M7CiB1aW50MzJfdCBkeW5fZXhw
YW5zaW9uOwp9OwoKZW51bSBmbXRfc3RlcmVvX2FjdGlvbiB7CiBGTVRfU1RFUkVPX0FDVElPTl9F
TkFCTEUgPSAwLAogRk1UX1NURVJFT19BQ1RJT05fRElTQUJMRSwKIEZNVF9TVEVSRU9fQUNUSU9O
X1VQREFURV9QT0xBUklUWQp9OwoKc3RydWN0IG9wcF9ncnBoX2NzY19hZGp1c3RtZW50IHsKCiBl
bnVtIGRjX2NvbG9yX3NwYWNlIGNfc3BhY2U7CiBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2Rl
cHRoOwogZW51bSBncmFwaGljc19jc2NfYWRqdXN0X3R5cGUgY3NjX2FkanVzdF90eXBlOwogaW50
MzJfdCBhZGp1c3RfZGl2aWRlcjsKIGludDMyX3QgZ3JwaF9jb250OwogaW50MzJfdCBncnBoX3Nh
dDsKIGludDMyX3QgZ3JwaF9icmlnaHQ7CiBpbnQzMl90IGdycGhfaHVlOwp9OwoKCgpzdHJ1Y3Qg
aHdfYWRqdXN0bWVudF9yYW5nZSB7CiBpbnQzMl90IGh3X2RlZmF1bHQ7CiBpbnQzMl90IG1pbjsK
IGludDMyX3QgbWF4OwogaW50MzJfdCBzdGVwOwogdWludDMyX3QgZGl2aWRlcjsKfTsKCmVudW0g
b3ZsX2NzY19hZGp1c3RfaXRlbSB7CiBPVkVSTEFZX0JSSUdIVE5FU1MgPSAwLAogT1ZFUkxBWV9H
QU1NQSwKIE9WRVJMQVlfQ09OVFJBU1QsCiBPVkVSTEFZX1NBVFVSQVRJT04sCiBPVkVSTEFZX0hV
RSwKIE9WRVJMQVlfQUxQSEEsCiBPVkVSTEFZX0FMUEhBX1BFUl9QSVgsCiBPVkVSTEFZX0NPTE9S
X1RFTVBFUkFUVVJFCn07CgplbnVtIG9wcGJ1Zl9kaXNwbGF5X3NlZ21lbnRhdGlvbiB7CiBPUFBC
VUZfRElTUExBWV9TRUdNRU5UQVRJT05fMV9TRUdNRU5UID0gMCwKIE9QUEJVRl9ESVNQTEFZX1NF
R01FTlRBVElPTl8yX1NFR01FTlQgPSAxLAogT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OXzRf
U0VHTUVOVCA9IDIsCiBPUFBCVUZfRElTUExBWV9TRUdNRU5UQVRJT05fNF9TRUdNRU5UX1NQTElU
X0xFRlQgPSAzLAogT1BQQlVGX0RJU1BMQVlfU0VHTUVOVEFUSU9OXzRfU0VHTUVOVF9TUExJVF9S
SUdIVCA9IDQKfTsKCnN0cnVjdCBvcHBidWZfcGFyYW1zIHsKIHVpbnQzMl90IGFjdGl2ZV93aWR0
aDsKIGVudW0gb3BwYnVmX2Rpc3BsYXlfc2VnbWVudGF0aW9uIG1zb19zZWdtZW50YXRpb247CiB1
aW50MzJfdCBtc29fb3ZlcmxhcF9waXhlbF9udW07CiB1aW50MzJfdCBwaXhlbF9yZXBldGl0aW9u
OwogdWludDMyX3QgbnVtX3NlZ21lbnRfcGFkZGVkX3BpeGVsczsKfTsKCnN0cnVjdCBvcHBfZnVu
Y3MgewoKCgoKIHZvaWQgKCpvcHBfcHJvZ3JhbV9mbXQpKAogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVs
X3Byb2Nlc3NvciAqb3BwLAogICBzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgKmZt
dF9iaXRfZGVwdGgsCiAgIHN0cnVjdCBjbGFtcGluZ19hbmRfcGl4ZWxfZW5jb2RpbmdfcGFyYW1z
ICpjbGFtcGluZyk7Cgogdm9pZCAoKm9wcF9zZXRfZHluX2V4cGFuc2lvbikoCiAgc3RydWN0IG91
dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICBlbnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yX3Nw
LAogIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZHB0aCwKICBlbnVtIHNpZ25hbF90eXBlIHNp
Z25hbCk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX2JpdF9kZXB0aF9yZWR1Y3Rpb24pKAogIHN0cnVj
dCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCiAgY29uc3Qgc3RydWN0IGJpdF9kZXB0aF9y
ZWR1Y3Rpb25fcGFyYW1zICpwYXJhbXMpOwoKCiB2b2lkICgqb3BwX2dldF91bmRlcmxheV9hZGp1
c3RtZW50X3JhbmdlKSgKICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICAg
ZW51bSBvdmxfY3NjX2FkanVzdF9pdGVtIG92ZXJsYXlfYWRqdXN0X2l0ZW0sCiAgIHN0cnVjdCBo
d19hZGp1c3RtZW50X3JhbmdlICpyYW5nZSk7Cgogdm9pZCAoKm9wcF9kZXN0cm95KShzdHJ1Y3Qg
b3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqKm9wcCk7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX3N0ZXJl
bykoCiAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICBib29sIGVuYWJsZSwK
ICBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7Cgogdm9pZCAoKm9wcF9waXBl
X2Nsb2NrX2NvbnRyb2wpKAogICBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwLAog
ICBib29sIGVuYWJsZSk7Cgogdm9pZCAoKm9wcF9zZXRfZGlzcF9wYXR0ZXJuX2dlbmVyYXRvciko
CiAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCiAgIGVudW0gY29udHJvbGxl
cl9kcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAogICBlbnVtIGNvbnRyb2xsZXJfZHBfY29s
b3Jfc3BhY2UgY29sb3Jfc3BhY2UsCiAgIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGgs
CiAgIGNvbnN0IHN0cnVjdCB0Z19jb2xvciAqc29saWRfY29sb3IsCiAgIGludCB3aWR0aCwKICAg
aW50IGhlaWdodCk7CgogYm9vbCAoKmRwZ19pc19ibGFua2VkKSgKICAgc3RydWN0IG91dHB1dF9w
aXhlbF9wcm9jZXNzb3IgKm9wcCk7Cgogdm9pZCAoKm9wcF9kcGdfc2V0X2JsYW5rX2NvbG9yKSgK
ICAgc3RydWN0IG91dHB1dF9waXhlbF9wcm9jZXNzb3IgKm9wcCwKICAgY29uc3Qgc3RydWN0IHRn
X2NvbG9yICpjb2xvcik7Cgogdm9pZCAoKm9wcF9wcm9ncmFtX2xlZnRfZWRnZV9leHRyYV9waXhl
bCkoCiAgIHN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAsCiAgIGJvb2wgY291bnQp
OwoKfTsKIyAzNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Rj
LmgiIDIKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2lu
Yy9od19zZXF1ZW5jZXIuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgiIDEKIyAzMCAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jbG9ja19zb3VyY2UuaCIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncnBo
X29iamVjdF9pZC5oIiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAxCiMgMzAgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2Vy
X3R5cGVzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtX3NlcnZpY2VzLmgiIDEKIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIgMQojIDMyICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFj
ZS5oIgojIDEgIi4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgiIDEKIyAyMyAiLi9pbmNsdWRl
L2xpbnV4L3RyYWNlcG9pbnQuaCIKc3RydWN0IG1vZHVsZTsKc3RydWN0IHRyYWNlcG9pbnQ7CnN0
cnVjdCBub3RpZmllcl9ibG9jazsKCnN0cnVjdCB0cmFjZV9ldmFsX21hcCB7CiBjb25zdCBjaGFy
ICpzeXN0ZW07CiBjb25zdCBjaGFyICpldmFsX3N0cmluZzsKIHVuc2lnbmVkIGxvbmcgZXZhbF92
YWx1ZTsKfTsKCgoKZXh0ZXJuIHN0cnVjdCBzcmN1X3N0cnVjdCB0cmFjZXBvaW50X3NyY3U7Cgpl
eHRlcm4gaW50CnRyYWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXIoc3RydWN0IHRyYWNlcG9pbnQgKnRw
LCB2b2lkICpwcm9iZSwgdm9pZCAqZGF0YSk7CmV4dGVybiBpbnQKdHJhY2Vwb2ludF9wcm9iZV9y
ZWdpc3Rlcl9wcmlvKHN0cnVjdCB0cmFjZXBvaW50ICp0cCwgdm9pZCAqcHJvYmUsIHZvaWQgKmRh
dGEsCiAgICAgICAgICBpbnQgcHJpbyk7CmV4dGVybiBpbnQKdHJhY2Vwb2ludF9wcm9iZV91bnJl
Z2lzdGVyKHN0cnVjdCB0cmFjZXBvaW50ICp0cCwgdm9pZCAqcHJvYmUsIHZvaWQgKmRhdGEpOwpl
eHRlcm4gdm9pZApmb3JfZWFjaF9rZXJuZWxfdHJhY2Vwb2ludCh2b2lkICgqZmN0KShzdHJ1Y3Qg
dHJhY2Vwb2ludCAqdHAsIHZvaWQgKnByaXYpLAogIHZvaWQgKnByaXYpOwoKCnN0cnVjdCB0cF9t
b2R1bGUgewogc3RydWN0IGxpc3RfaGVhZCBsaXN0Owogc3RydWN0IG1vZHVsZSAqbW9kOwp9OwoK
Ym9vbCB0cmFjZV9tb2R1bGVfaGFzX2JhZF90YWludChzdHJ1Y3QgbW9kdWxlICptb2QpOwpleHRl
cm4gaW50IHJlZ2lzdGVyX3RyYWNlcG9pbnRfbW9kdWxlX25vdGlmaWVyKHN0cnVjdCBub3RpZmll
cl9ibG9jayAqbmIpOwpleHRlcm4gaW50IHVucmVnaXN0ZXJfdHJhY2Vwb2ludF9tb2R1bGVfbm90
aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7CiMgODAgIi4vaW5jbHVkZS9saW51eC90
cmFjZXBvaW50LmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18p
KSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVu
dF9mdW5jdGlvbikpIHZvaWQgdHJhY2Vwb2ludF9zeW5jaHJvbml6ZV91bnJlZ2lzdGVyKHZvaWQp
CnsKIHN5bmNocm9uaXplX3NyY3UoJnRyYWNlcG9pbnRfc3JjdSk7CiBzeW5jaHJvbml6ZV9yY3Uo
KTsKfQoKCgoKCgpleHRlcm4gaW50IHN5c2NhbGxfcmVnZnVuYyh2b2lkKTsKZXh0ZXJuIHZvaWQg
c3lzY2FsbF91bnJlZ2Z1bmModm9pZCk7CiMgMTAxICIuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu
dC5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBzdHJ1Y3QgdHJhY2Vwb2ludCAqdHJhY2Vwb2ludF9wdHJfZGVyZWYodHJhY2Vwb2ludF9w
dHJfdCAqcCkKewogcmV0dXJuIG9mZnNldF90b19wdHIocCk7Cn0KIyAzMyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIg
MgoKZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZzsg
c3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRl
X18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkg
dm9pZCB0cmFjZV9hbWRncHVfZGNfcnJlZyh1bnNpZ25lZCBsb25nICpyZWFkX2NvdW50LCB1aW50
MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSB7IGlmIChzdGF0aWNfa2V5X2ZhbHNlKCZfX3RyYWNl
cG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KSkgZG8geyBzdHJ1Y3QgdHJhY2Vwb2ludF9mdW5jICpp
dF9mdW5jX3B0cjsgdm9pZCAqaXRfZnVuYzsgdm9pZCAqX19kYXRhOyBpbnQgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9faWR4ID0gMDsgaWYgKCEoY3B1bWFza190ZXN0X2NwdSgoKHsgdHlw
ZW9mKGNwdV9udW1iZXIpIHBzY3JfcmV0X187IGRvIHsgY29uc3Qgdm9pZCAqX192cHBfdmVyaWZ5
ID0gKHR5cGVvZigoJihjcHVfbnVtYmVyKSkgKyAwKSkoKHZvaWQgKikwKTsgKHZvaWQpX192cHBf
dmVyaWZ5OyB9IHdoaWxlICgwKTsgc3dpdGNoKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6
IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNp
emVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
Y2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIg
OiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFz
bSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBm
b19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNw
dV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgMjogcHNjcl9yZXRfXyA9ICh7
IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIp
KSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAy
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xh
dGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRf
XykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92
IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAo
Y3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9f
cmV0X187IH0pOyBicmVhazsgY2FzZSA0OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1i
ZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20g
dm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAo
Im1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAi
bSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAi
IiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251
bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFr
OyBjYXNlIDg6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBz
d2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIg
IjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBj
YXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfY2FsbF9wYXJhbWV0ZXIoKTsgYnJlYWs7IH0gcHNjcl9yZXRfXzsgfSkpLCAoKGNvbnN0
IHN0cnVjdCBjcHVtYXNrICopJl9fY3B1X29ubGluZV9tYXNrKSkpKSByZXR1cm47ICh7IGludCBf
X3JldF93YXJuX29uID0gISEoMCAmJiAocHJlZW1wdF9jb3VudCgpICYgKCgoMVVMIDw8ICgxKSkt
MSkgPDwgKCgoMCArIDgpICsgOCkgKyA0KSkpKTsgaWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19y
ZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNtIF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAi
LmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hzZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxu
IiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxu
IiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0
LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGluZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVn
X2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVjM1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIg
KCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf
ZG1fdHJhY2UuaCIpLCAiaSIgKDM0KSwgImkiICgoMSA8PCAwKXwoKDEgPDwgMSkgfCAoKDkpIDw8
IDgpKSksICJpIiAoc2l6ZW9mKHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBh
c20gdm9sYXRpbGUoIiVjMDpcblx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxu
XHQiICIubG9uZyAlYzBiIC0gLlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQ0KSk7
IH0pOyB9IHdoaWxlICgwKTsgX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7
IH0pOyBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyBpZiAoMCkgeyBfX2lk
eCA9IHNyY3VfcmVhZF9sb2NrX25vdHJhY2UoJnRyYWNlcG9pbnRfc3JjdSk7IHJjdV9pcnFfZW50
ZXJfaXJxc29uKCk7IH0gaXRfZnVuY19wdHIgPSAoeyB0eXBlb2YoKCZfX3RyYWNlcG9pbnRfYW1k
Z3B1X2RjX3JyZWcpLT5mdW5jcykgX19fX19fX19wMSA9ICh7IHVuaW9uIHsgdHlwZW9mKCgmX190
cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnKS0+ZnVuY3MpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBf
X3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3Jy
ZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJl
ZyktPmZ1bmNzKSk7IGVsc2UgX19yZWFkX29uY2Vfc2l6ZV9ub2NoZWNrKCYoKCZfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3JyZWcpLT5mdW5jcyksIF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2lu
dF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3ZhbDsg
fSk7ICgodHlwZW9mKCooJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZyktPmZ1bmNzKSAqKShf
X19fX19fX3AxKSk7IH0pOyBpZiAoaXRfZnVuY19wdHIpIHsgZG8geyBpdF9mdW5jID0gKGl0X2Z1
bmNfcHRyKS0+ZnVuYzsgX19kYXRhID0gKGl0X2Z1bmNfcHRyKS0+ZGF0YTsgKCh2b2lkKCopKHZv
aWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50
MzJfdCB2YWx1ZSkpKGl0X2Z1bmMpKShfX2RhdGEsIHJlYWRfY291bnQsIHJlZywgdmFsdWUpOyB9
IHdoaWxlICgoKytpdF9mdW5jX3B0ciktPmZ1bmMpOyB9IGlmICgwKSB7IHJjdV9pcnFfZXhpdF9p
cnFzb24oKTsgc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UsIF9faWR4
KTsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyB9IHdoaWxlICgwKTsg
aWYgKDAgJiYgKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihjcHVfbnVtYmVyKSBwc2NyX3Jl
dF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X251bWJl
cikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3
aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2NyX3JldF9fID0gKHsgdHlwZW9m
KGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2Fz
ZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsg
fSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAi
dyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2Ug
NDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAo
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUl
IiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJl
cikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODog
YXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVy
Y3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA4OiBwc2NyX3JldF9fID0g
KHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJl
cikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEi
IiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNl
IDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZv
bGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJt
b3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBm
b19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7
IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqKSZfX2Nw
dV9vbmxpbmVfbWFzaykpKSkgeyByY3VfcmVhZF9sb2NrX3NjaGVkX25vdHJhY2UoKTsgKHsgdHlw
ZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkgKl9fX19fX19fcDEgPSAo
dHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkgKikoeyB1bmlvbiB7
IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLmZ1bmNzKSkgX192YWw7IGNoYXIg
X19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigoX190cmFjZXBvaW50X2Ft
ZGdwdV9kY19ycmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdw
dV9kY19ycmVnLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSwgX191Ll9fYywgc2l6ZW9mKChfX3RyYWNl
cG9pbnRfYW1kZ3B1X2RjX3JyZWcuZnVuY3MpKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3Zh
bDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3JyZWcuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3VfcmVhZF91bmxvY2tfc2No
ZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdwdV9kY19ycmVnKHZvaWQg
KCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICpyZWFkX2NvdW50LCB1aW50MzJf
dCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2ludF9w
cm9iZV9yZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19ycmVnLCAodm9pZCAqKXByb2Jl
LCBkYXRhKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkg
X19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRf
ZnVuY3Rpb24pKSBpbnQgcmVnaXN0ZXJfdHJhY2VfcHJpb19hbWRncHVfZGNfcnJlZyh2b2lkICgq
cHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqcmVhZF9jb3VudCwgdWludDMyX3Qg
cmVnLCB1aW50MzJfdCB2YWx1ZSksIHZvaWQgKmRhdGEsIGludCBwcmlvKSB7IHJldHVybiB0cmFj
ZXBvaW50X3Byb2JlX3JlZ2lzdGVyX3ByaW8oJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJlZywg
KHZvaWQgKilwcm9iZSwgZGF0YSwgcHJpbyk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHVucmVnaXN0ZXJfdHJhY2VfYW1kZ3B1
X2RjX3JyZWcodm9pZCAoKnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKnJlYWRf
Y291bnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpLCB2b2lkICpkYXRhKSB7IHJldHVy
biB0cmFjZXBvaW50X3Byb2JlX3VucmVnaXN0ZXIoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcnJl
ZywgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChf
X2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9f
KChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFjZV9jYWxsYmFja190eXBl
X2FtZGdwdV9kY19ycmVnKHZvaWQgKCpjYikodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICpy
ZWFkX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHZhbHVlKSkgeyB9IHN0YXRpYyBpbmxp
bmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNl
ZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdHJhY2Vf
YW1kZ3B1X2RjX3JyZWdfZW5hYmxlZCh2b2lkKSB7IHJldHVybiBzdGF0aWNfa2V5X2ZhbHNlKCZf
X3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3JyZWcua2V5KTsgfQojIDQ5ICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV90cmFjZS5oIgogOwoK
ZXh0ZXJuIHN0cnVjdCB0cmFjZXBvaW50IF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZzsgc3Rh
dGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9p
ZCB0cmFjZV9hbWRncHVfZGNfd3JlZyh1bnNpZ25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMy
X3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkgeyBpZiAoc3RhdGljX2tleV9mYWxzZSgmX190cmFjZXBv
aW50X2FtZGdwdV9kY193cmVnLmtleSkpIGRvIHsgc3RydWN0IHRyYWNlcG9pbnRfZnVuYyAqaXRf
ZnVuY19wdHI7IHZvaWQgKml0X2Z1bmM7IHZvaWQgKl9fZGF0YTsgaW50IF9fYXR0cmlidXRlX18o
KF9fdW51c2VkX18pKSBfX2lkeCA9IDA7IGlmICghKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVv
ZihjcHVfbnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9
ICh0eXBlb2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3Zl
cmlmeTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBw
c2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXpl
b2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNh
c2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDog
Ij1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20g
dm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9f
cmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVf
c2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0
eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkg
eyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjog
YXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRp
bGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
InEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3Jl
dF9fOyB9KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVy
KSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZv
bGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJt
b3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIl
JSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1i
ZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsg
Y2FzZSA4OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dp
dGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJi
ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVf
bnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsg
YnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIx
IiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2Fz
ZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2NhbGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBz
dHJ1Y3QgY3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkgcmV0dXJuOyAoeyBpbnQgX19y
ZXRfd2Fybl9vbiA9ICEhKDAgJiYgKHByZWVtcHRfY291bnQoKSAmICgoKDFVTCA8PCAoMSkpLTEp
IDw8ICgoKDAgKyA4KSArIDgpICsgNCkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0
X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5i
eXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIg
IjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIg
Ilx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53
b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19l
bnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgi
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt
X3RyYWNlLmgiKSwgImkiICg1MSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4
KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNt
IHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0
IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0NSkpOyB9
KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9
KTsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgaWYgKDApIHsgX19pZHgg
PSBzcmN1X3JlYWRfbG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UpOyByY3VfaXJxX2VudGVy
X2lycXNvbigpOyB9IGl0X2Z1bmNfcHRyID0gKHsgdHlwZW9mKCgmX190cmFjZXBvaW50X2FtZGdw
dV9kY193cmVnKS0+ZnVuY3MpIF9fX19fX19fcDEgPSAoeyB1bmlvbiB7IHR5cGVvZigoJl9fdHJh
Y2Vwb2ludF9hbWRncHVfZGNfd3JlZyktPmZ1bmNzKSBfX3ZhbDsgY2hhciBfX2NbMV07IH0gX191
OyBpZiAoMSkgX19yZWFkX29uY2Vfc2l6ZSgmKCgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVn
KS0+ZnVuY3MpLCBfX3UuX19jLCBzaXplb2YoKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcp
LT5mdW5jcykpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKCgmX190cmFjZXBvaW50
X2FtZGdwdV9kY193cmVnKS0+ZnVuY3MpLCBfX3UuX19jLCBzaXplb2YoKCZfX3RyYWNlcG9pbnRf
YW1kZ3B1X2RjX3dyZWcpLT5mdW5jcykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0p
OyAoKHR5cGVvZigqKCZfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcpLT5mdW5jcykgKikoX19f
X19fX19wMSkpOyB9KTsgaWYgKGl0X2Z1bmNfcHRyKSB7IGRvIHsgaXRfZnVuYyA9IChpdF9mdW5j
X3B0ciktPmZ1bmM7IF9fZGF0YSA9IChpdF9mdW5jX3B0ciktPmRhdGE7ICgodm9pZCgqKSh2b2lk
ICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKndyaXRlX2NvdW50LCB1aW50MzJfdCByZWcsIHVpbnQz
Ml90IHZhbHVlKSkoaXRfZnVuYykpKF9fZGF0YSwgd3JpdGVfY291bnQsIHJlZywgdmFsdWUpOyB9
IHdoaWxlICgoKytpdF9mdW5jX3B0ciktPmZ1bmMpOyB9IGlmICgwKSB7IHJjdV9pcnFfZXhpdF9p
cnFzb24oKTsgc3JjdV9yZWFkX3VubG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UsIF9faWR4
KTsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOyB9IHdoaWxlICgwKTsg
aWYgKDAgJiYgKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihjcHVfbnVtYmVyKSBwc2NyX3Jl
dF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0eXBlb2YoKCYoY3B1X251bWJl
cikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3ZlcmlmeTsgfSB3aGlsZSAoMCk7IHN3
aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2NyX3JldF9fID0gKHsgdHlwZW9m
KGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2Fz
ZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgi
bW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJt
IiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsg
fSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZv
X3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAi
dyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdz
IiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7
IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAi
MSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRl
ZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2Ug
NDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAo
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUl
IiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJl
cikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAi
JSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFr
OyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUw
IiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODog
YXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVy
Y3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2FzZSA4OiBwc2NyX3JldF9fID0g
KHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJl
cikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEi
IiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNl
IDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9
ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZv
bGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3Jl
dF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJt
b3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBm
b19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2NhbGxfcGFyYW1ldGVyKCk7
IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1Y3QgY3B1bWFzayAqKSZfX2Nw
dV9vbmxpbmVfbWFzaykpKSkgeyByY3VfcmVhZF9sb2NrX3NjaGVkX25vdHJhY2UoKTsgKHsgdHlw
ZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNzKSkgKl9fX19fX19fcDEgPSAo
dHlwZW9mKCooX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNzKSkgKikoeyB1bmlvbiB7
IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmZ1bmNzKSkgX192YWw7IGNoYXIg
X19jWzFdOyB9IF9fdTsgaWYgKDEpIF9fcmVhZF9vbmNlX3NpemUoJigoX190cmFjZXBvaW50X2Ft
ZGdwdV9kY193cmVnLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdw
dV9kY193cmVnLmZ1bmNzKSkpOyBlbHNlIF9fcmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3dyZWcuZnVuY3MpKSwgX191Ll9fYywgc2l6ZW9mKChfX3RyYWNl
cG9pbnRfYW1kZ3B1X2RjX3dyZWcuZnVuY3MpKSk7IGRvIHsgfSB3aGlsZSAoMCk7IF9fdS5fX3Zh
bDsgfSk7IGRvIHsgfSB3aGlsZSAoMCk7IDsgKCh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3dyZWcuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3VfcmVhZF91bmxvY2tfc2No
ZWRfbm90cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxp
bmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0
cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdwdV9kY193cmVnKHZvaWQg
KCpwcm9iZSkodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25nICp3cml0ZV9jb3VudCwgdWludDMy
X3QgcmVnLCB1aW50MzJfdCB2YWx1ZSksIHZvaWQgKmRhdGEpIHsgcmV0dXJuIHRyYWNlcG9pbnRf
cHJvYmVfcmVnaXN0ZXIoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfd3JlZywgKHZvaWQgKilwcm9i
ZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX3ByaW9fYW1kZ3B1X2RjX3dyZWcodm9pZCAo
KnByb2JlKSh2b2lkICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgKndyaXRlX2NvdW50LCB1aW50MzJf
dCByZWcsIHVpbnQzMl90IHZhbHVlKSwgdm9pZCAqZGF0YSwgaW50IHByaW8pIHsgcmV0dXJuIHRy
YWNlcG9pbnRfcHJvYmVfcmVnaXN0ZXJfcHJpbygmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVn
LCAodm9pZCAqKXByb2JlLCBkYXRhLCBwcmlvKTsgfSBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRl
X18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmli
dXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQgdW5yZWdpc3Rlcl90cmFjZV9hbWRn
cHVfZGNfd3JlZyh2b2lkICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyAqd3Jp
dGVfY291bnQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpLCB2b2lkICpkYXRhKSB7IHJl
dHVybiB0cmFjZXBvaW50X3Byb2JlX3VucmVnaXN0ZXIoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNf
d3JlZywgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFjZV9jYWxsYmFja190
eXBlX2FtZGdwdV9kY193cmVnKHZvaWQgKCpjYikodm9pZCAqX19kYXRhLCB1bnNpZ25lZCBsb25n
ICp3cml0ZV9jb3VudCwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWx1ZSkpIHsgfSBzdGF0aWMg
aW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191
bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIHRy
YWNlX2FtZGdwdV9kY193cmVnX2VuYWJsZWQodm9pZCkgeyByZXR1cm4gc3RhdGljX2tleV9mYWxz
ZSgmX190cmFjZXBvaW50X2FtZGdwdV9kY193cmVnLmtleSk7IH0KIyA2NiAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fdHJhY2UuaCIK
IDsKCgpleHRlcm4gc3RydWN0IHRyYWNlcG9pbnQgX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJm
b3JtYW5jZTsgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9f
YXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1
bmN0aW9uKSkgdm9pZCB0cmFjZV9hbWRncHVfZGNfcGVyZm9ybWFuY2UodW5zaWduZWQgbG9uZyBy
ZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICpsYXN0
X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVuc2ln
bmVkIGludCBsaW5lKSB7IGlmIChzdGF0aWNfa2V5X2ZhbHNlKCZfX3RyYWNlcG9pbnRfYW1kZ3B1
X2RjX3BlcmZvcm1hbmNlLmtleSkpIGRvIHsgc3RydWN0IHRyYWNlcG9pbnRfZnVuYyAqaXRfZnVu
Y19wdHI7IHZvaWQgKml0X2Z1bmM7IHZvaWQgKl9fZGF0YTsgaW50IF9fYXR0cmlidXRlX18oKF9f
dW51c2VkX18pKSBfX2lkeCA9IDA7IGlmICghKGNwdW1hc2tfdGVzdF9jcHUoKCh7IHR5cGVvZihj
cHVfbnVtYmVyKSBwc2NyX3JldF9fOyBkbyB7IGNvbnN0IHZvaWQgKl9fdnBwX3ZlcmlmeSA9ICh0
eXBlb2YoKCYoY3B1X251bWJlcikpICsgMCkpKCh2b2lkICopMCk7ICh2b2lkKV9fdnBwX3Zlcmlm
eTsgfSB3aGlsZSAoMCk7IHN3aXRjaChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBwc2Ny
X3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNoIChzaXplb2Yo
Y3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIiJSUiImdzIiI6
IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJy
ZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoiICIlIiAiMSIi
LCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2Ug
NDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1y
IiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4OiBhc20gdm9s
YXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0
X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9wZXJjcHVfc2l6
ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDI6IHBzY3JfcmV0X18gPSAoeyB0eXBl
b2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVvZihjcHVfbnVtYmVyKSkgeyBj
YXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6
ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgMjogYXNt
IHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZv
X3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA0OiBhc20gdm9sYXRpbGUg
KCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDog
Im0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2b2xhdGlsZSAoIm1vdiIgInEg
IiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9u
dW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9zaXplKCk7IH0gcGZvX3JldF9f
OyB9KTsgYnJlYWs7IGNhc2UgNDogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVfbnVtYmVyKSBw
Zm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogYXNtIHZvbGF0
aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAocGZvX3JldF9f
KSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yi
ICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChj
cHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImwgIiIlJSIi
Z3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIp
KTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJncyIiOiIgIiUi
ICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBicmVhazsgY2Fz
ZSA4OiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRfXzsgc3dpdGNo
IChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJtb3YiICJiICIi
JSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVt
YmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIlJSIiZ3MiIjoi
ICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJl
YWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIgIiUiICIxIiIs
JTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSA4
OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIi
IChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9w
ZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl
X2NhbGxfcGFyYW1ldGVyKCk7IGJyZWFrOyB9IHBzY3JfcmV0X187IH0pKSwgKChjb25zdCBzdHJ1
Y3QgY3B1bWFzayAqKSZfX2NwdV9vbmxpbmVfbWFzaykpKSkgcmV0dXJuOyAoeyBpbnQgX19yZXRf
d2Fybl9vbiA9ICEhKDAgJiYgKHByZWVtcHRfY291bnQoKSAmICgoKDFVTCA8PCAoMSkpLTEpIDw8
ICgoKDAgKyA4KSArIDgpICsgNCkpKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dh
cm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRl
IDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6
XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0
IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3Jk
ICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRy
eTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3Ry
YWNlLmgiKSwgImkiICg2OSksICJpIiAoKDEgPDwgMCl8KCgxIDw8IDEpIHwgKCg5KSA8PCA4KSkp
LCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkpOyB9IHdoaWxlICgwKTsgKHsgYXNtIHZv
bGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAuZGlzY2FyZC5yZWFjaGFibGVcblx0IiAi
LmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25cblx0IiA6IDogImkiICg0NikpOyB9KTsg
fSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApOyB9KTsg
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgaWYgKDApIHsgX19pZHggPSBz
cmN1X3JlYWRfbG9ja19ub3RyYWNlKCZ0cmFjZXBvaW50X3NyY3UpOyByY3VfaXJxX2VudGVyX2ly
cXNvbigpOyB9IGl0X2Z1bmNfcHRyID0gKHsgdHlwZW9mKCgmX190cmFjZXBvaW50X2FtZGdwdV9k
Y19wZXJmb3JtYW5jZSktPmZ1bmNzKSBfX19fX19fX3AxID0gKHsgdW5pb24geyB0eXBlb2YoKCZf
X3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpIF9fdmFsOyBjaGFyIF9f
Y1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYoKCZfX3RyYWNlcG9pbnRfYW1k
Z3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpLCBfX3UuX19jLCBzaXplb2YoKCZfX3RyYWNlcG9p
bnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpKTsgZWxzZSBfX3JlYWRfb25jZV9zaXpl
X25vY2hlY2soJigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UpLT5mdW5jcyks
IF9fdS5fX2MsIHNpemVvZigoJl9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UpLT5m
dW5jcykpOyBkbyB7IH0gd2hpbGUgKDApOyBfX3UuX192YWw7IH0pOyAoKHR5cGVvZigqKCZfX3Ry
YWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKS0+ZnVuY3MpICopKF9fX19fX19fcDEpKTsg
fSk7IGlmIChpdF9mdW5jX3B0cikgeyBkbyB7IGl0X2Z1bmMgPSAoaXRfZnVuY19wdHIpLT5mdW5j
OyBfX2RhdGEgPSAoaXRfZnVuY19wdHIpLT5kYXRhOyAoKHZvaWQoKikodm9pZCAqX19kYXRhLCB1
bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVuc2lnbmVkIGxvbmcgd3JpdGVfY291bnQsIHVuc2ln
bmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWduZWQgbG9uZyAqbGFzdF93cml0ZSwgY29uc3QgY2hh
ciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUpKShpdF9mdW5jKSkoX19kYXRhLCByZWFkX2NvdW50
LCB3cml0ZV9jb3VudCwgbGFzdF9yZWFkLCBsYXN0X3dyaXRlLCBmdW5jLCBsaW5lKTsgfSB3aGls
ZSAoKCsraXRfZnVuY19wdHIpLT5mdW5jKTsgfSBpZiAoMCkgeyByY3VfaXJxX2V4aXRfaXJxc29u
KCk7IHNyY3VfcmVhZF91bmxvY2tfbm90cmFjZSgmdHJhY2Vwb2ludF9zcmN1LCBfX2lkeCk7IH0g
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgfSB3aGlsZSAoMCk7IGlmICgw
ICYmIChjcHVtYXNrX3Rlc3RfY3B1KCgoeyB0eXBlb2YoY3B1X251bWJlcikgcHNjcl9yZXRfXzsg
ZG8geyBjb25zdCB2b2lkICpfX3ZwcF92ZXJpZnkgPSAodHlwZW9mKCgmKGNwdV9udW1iZXIpKSAr
IDApKSgodm9pZCAqKTApOyAodm9pZClfX3ZwcF92ZXJpZnk7IH0gd2hpbGUgKDApOyBzd2l0Y2go
c2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTogcHNjcl9yZXRfXyA9ICh7IHR5cGVvZihjcHVf
bnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7IGNhc2UgMTog
YXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1xIiAo
cGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBhc20gdm9sYXRp
bGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChwZm9fcmV0X18p
IDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiIg
ImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNw
dV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAicSAiIiUlIiJn
cyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0X187IH0pOyBi
cmVhazsgY2FzZSAyOiBwc2NyX3JldF9fID0gKHsgdHlwZW9mKGNwdV9udW1iZXIpIHBmb19yZXRf
Xzsgc3dpdGNoIChzaXplb2YoY3B1X251bWJlcikpIHsgY2FzZSAxOiBhc20gdm9sYXRpbGUgKCJt
b3YiICJiICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXEiIChwZm9fcmV0X18pIDogIm0i
IChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDI6IGFzbSB2b2xhdGlsZSAoIm1vdiIgIncgIiIl
JSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1i
ZXIpKTsgYnJlYWs7IGNhc2UgNDogYXNtIHZvbGF0aWxlICgibW92IiAibCAiIiUlIiJncyIiOiIg
IiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVh
azsgY2FzZSA4OiBhc20gdm9sYXRpbGUgKCJtb3YiICJxICIiJSUiImdzIiI6IiAiJSIgIjEiIiwl
MCIgOiAiPXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9wZXJjcHVfc2l6ZSgpOyB9IHBmb19yZXRfXzsgfSk7IGJyZWFrOyBjYXNlIDQ6IHBz
Y3JfcmV0X18gPSAoeyB0eXBlb2YoY3B1X251bWJlcikgcGZvX3JldF9fOyBzd2l0Y2ggKHNpemVv
ZihjcHVfbnVtYmVyKSkgeyBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiIgImIgIiIlJSIiZ3Mi
IjoiICIlIiAiMSIiLCUwIiA6ICI9cSIgKHBmb19yZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsg
YnJlYWs7IGNhc2UgMjogYXNtIHZvbGF0aWxlICgibW92IiAidyAiIiUlIiJncyIiOiIgIiUiICIx
IiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2Fz
ZSA0OiBhc20gdm9sYXRpbGUgKCJtb3YiICJsICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAi
PXIiIChwZm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDg6IGFzbSB2
b2xhdGlsZSAoIm1vdiIgInEgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19y
ZXRfXykgOiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3BlcmNwdV9z
aXplKCk7IH0gcGZvX3JldF9fOyB9KTsgYnJlYWs7IGNhc2UgODogcHNjcl9yZXRfXyA9ICh7IHR5
cGVvZihjcHVfbnVtYmVyKSBwZm9fcmV0X187IHN3aXRjaCAoc2l6ZW9mKGNwdV9udW1iZXIpKSB7
IGNhc2UgMTogYXNtIHZvbGF0aWxlICgibW92IiAiYiAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAi
IDogIj1xIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1X251bWJlcikpOyBicmVhazsgY2FzZSAyOiBh
c20gdm9sYXRpbGUgKCJtb3YiICJ3ICIiJSUiImdzIiI6IiAiJSIgIjEiIiwlMCIgOiAiPXIiIChw
Zm9fcmV0X18pIDogIm0iIChjcHVfbnVtYmVyKSk7IGJyZWFrOyBjYXNlIDQ6IGFzbSB2b2xhdGls
ZSAoIm1vdiIgImwgIiIlJSIiZ3MiIjoiICIlIiAiMSIiLCUwIiA6ICI9ciIgKHBmb19yZXRfXykg
OiAibSIgKGNwdV9udW1iZXIpKTsgYnJlYWs7IGNhc2UgODogYXNtIHZvbGF0aWxlICgibW92IiAi
cSAiIiUlIiJncyIiOiIgIiUiICIxIiIsJTAiIDogIj1yIiAocGZvX3JldF9fKSA6ICJtIiAoY3B1
X251bWJlcikpOyBicmVhazsgZGVmYXVsdDogX19iYWRfcGVyY3B1X3NpemUoKTsgfSBwZm9fcmV0
X187IH0pOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9jYWxsX3BhcmFtZXRlcigpOyBicmVh
azsgfSBwc2NyX3JldF9fOyB9KSksICgoY29uc3Qgc3RydWN0IGNwdW1hc2sgKikmX19jcHVfb25s
aW5lX21hc2spKSkpIHsgcmN1X3JlYWRfbG9ja19zY2hlZF9ub3RyYWNlKCk7ICh7IHR5cGVvZigq
KF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UuZnVuY3MpKSAqX19fX19fX19wMSA9
ICh0eXBlb2YoKihfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmZ1bmNzKSkgKiko
eyB1bmlvbiB7IHR5cGVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5mdW5j
cykpIF9fdmFsOyBjaGFyIF9fY1sxXTsgfSBfX3U7IGlmICgxKSBfX3JlYWRfb25jZV9zaXplKCYo
KF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFuY2UuZnVuY3MpKSwgX191Ll9fYywgc2l6
ZW9mKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1hbmNlLmZ1bmNzKSkpOyBlbHNlIF9f
cmVhZF9vbmNlX3NpemVfbm9jaGVjaygmKChfX3RyYWNlcG9pbnRfYW1kZ3B1X2RjX3BlcmZvcm1h
bmNlLmZ1bmNzKSksIF9fdS5fX2MsIHNpemVvZigoX190cmFjZXBvaW50X2FtZGdwdV9kY19wZXJm
b3JtYW5jZS5mdW5jcykpKTsgZG8geyB9IHdoaWxlICgwKTsgX191Ll9fdmFsOyB9KTsgZG8geyB9
IHdoaWxlICgwKTsgOyAoKHR5cGVvZigqKF9fdHJhY2Vwb2ludF9hbWRncHVfZGNfcGVyZm9ybWFu
Y2UuZnVuY3MpKSAqKShfX19fX19fX3AxKSk7IH0pOyByY3VfcmVhZF91bmxvY2tfc2NoZWRfbm90
cmFjZSgpOyB9IH0gc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykp
IF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50
X2Z1bmN0aW9uKSkgaW50IHJlZ2lzdGVyX3RyYWNlX2FtZGdwdV9kY19wZXJmb3JtYW5jZSh2b2lk
ICgqcHJvYmUpKHZvaWQgKl9fZGF0YSwgdW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25l
ZCBsb25nIHdyaXRlX2NvdW50LCB1bnNpZ25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxv
bmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNoYXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSwgdm9p
ZCAqZGF0YSkgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3RlcigmX190cmFjZXBvaW50
X2FtZGdwdV9kY19wZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlu
bGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51
c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgaW50IHJlZ2lz
dGVyX3RyYWNlX3ByaW9fYW1kZ3B1X2RjX3BlcmZvcm1hbmNlKHZvaWQgKCpwcm9iZSkodm9pZCAq
X19kYXRhLCB1bnNpZ25lZCBsb25nIHJlYWRfY291bnQsIHVuc2lnbmVkIGxvbmcgd3JpdGVfY291
bnQsIHVuc2lnbmVkIGxvbmcgKmxhc3RfcmVhZCwgdW5zaWduZWQgbG9uZyAqbGFzdF93cml0ZSwg
Y29uc3QgY2hhciAqZnVuYywgdW5zaWduZWQgaW50IGxpbmUpLCB2b2lkICpkYXRhLCBpbnQgcHJp
bykgeyByZXR1cm4gdHJhY2Vwb2ludF9wcm9iZV9yZWdpc3Rlcl9wcmlvKCZfX3RyYWNlcG9pbnRf
YW1kZ3B1X2RjX3BlcmZvcm1hbmNlLCAodm9pZCAqKXByb2JlLCBkYXRhLCBwcmlvKTsgfSBzdGF0
aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygo
X191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBpbnQg
dW5yZWdpc3Rlcl90cmFjZV9hbWRncHVfZGNfcGVyZm9ybWFuY2Uodm9pZCAoKnByb2JlKSh2b2lk
ICpfX2RhdGEsIHVuc2lnbmVkIGxvbmcgcmVhZF9jb3VudCwgdW5zaWduZWQgbG9uZyB3cml0ZV9j
b3VudCwgdW5zaWduZWQgbG9uZyAqbGFzdF9yZWFkLCB1bnNpZ25lZCBsb25nICpsYXN0X3dyaXRl
LCBjb25zdCBjaGFyICpmdW5jLCB1bnNpZ25lZCBpbnQgbGluZSksIHZvaWQgKmRhdGEpIHsgcmV0
dXJuIHRyYWNlcG9pbnRfcHJvYmVfdW5yZWdpc3RlcigmX190cmFjZXBvaW50X2FtZGdwdV9kY19w
ZXJmb3JtYW5jZSwgKHZvaWQgKilwcm9iZSwgZGF0YSk7IH0gc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgdm9pZCBjaGVja190cmFjZV9jYWxs
YmFja190eXBlX2FtZGdwdV9kY19wZXJmb3JtYW5jZSh2b2lkICgqY2IpKHZvaWQgKl9fZGF0YSwg
dW5zaWduZWQgbG9uZyByZWFkX2NvdW50LCB1bnNpZ25lZCBsb25nIHdyaXRlX2NvdW50LCB1bnNp
Z25lZCBsb25nICpsYXN0X3JlYWQsIHVuc2lnbmVkIGxvbmcgKmxhc3Rfd3JpdGUsIGNvbnN0IGNo
YXIgKmZ1bmMsIHVuc2lnbmVkIGludCBsaW5lKSkgeyB9IHN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgdHJhY2VfYW1kZ3B1X2RjX3Bl
cmZvcm1hbmNlX2VuYWJsZWQodm9pZCkgeyByZXR1cm4gc3RhdGljX2tleV9mYWxzZSgmX190cmFj
ZXBvaW50X2FtZGdwdV9kY19wZXJmb3JtYW5jZS5rZXkpOyB9CiMgOTggIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3RyYWNlLmgiCiA7
CgoKCgoKIyAxICIuL2luY2x1ZGUvdHJhY2UvZGVmaW5lX3RyYWNlLmgiIDEKIyAxMDUgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX3Ry
YWNlLmgiIDIKIyAzNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtX3NlcnZpY2VzLmgiIDIKCgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIiAxCiMgMzIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlc190eXBlcy5oIgpzdHJ1Y3QgcHBf
c211X2Z1bmNzOwoKc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlIHsKIGludCBtaW5fa2h6OwogaW50
IG1heF9raHo7Cn07CgplbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSB7CiBETV9QUF9DTE9DS1NfU1RB
VEVfSU5WQUxJRCwKIERNX1BQX0NMT0NLU19TVEFURV9VTFRSQV9MT1csCiBETV9QUF9DTE9DS1Nf
U1RBVEVfTE9XLAogRE1fUFBfQ0xPQ0tTX1NUQVRFX05PTUlOQUwsCiBETV9QUF9DTE9DS1NfU1RB
VEVfUEVSRk9STUFOQ0UsCgoKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfSU5WQUxJRCA9
IERNX1BQX0NMT0NLU19TVEFURV9JTlZBTElELAogRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZF
TF8wLAogRE1fUFBfQ0xPQ0tTX0RQTV9TVEFURV9MRVZFTF8xLAogRE1fUFBfQ0xPQ0tTX0RQTV9T
VEFURV9MRVZFTF8yLAoKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfMywKIERNX1BQX0NM
T0NLU19EUE1fU1RBVEVfTEVWRUxfNCwKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfNSwK
IERNX1BQX0NMT0NLU19EUE1fU1RBVEVfTEVWRUxfNiwKIERNX1BQX0NMT0NLU19EUE1fU1RBVEVf
TEVWRUxfNywKCiBETV9QUF9DTE9DS1NfTUFYX1NUQVRFUwp9OwoKc3RydWN0IGRtX3BwX2dwdV9j
bG9ja19yYW5nZSB7CiBlbnVtIGRtX3BwX2Nsb2Nrc19zdGF0ZSBjbG9ja19zdGF0ZTsKIHN0cnVj
dCBkbV9wcF9jbG9ja19yYW5nZSBzY2xrOwogc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlIG1jbGs7
CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2UgZWNsazsKIHN0cnVjdCBkbV9wcF9jbG9ja19yYW5n
ZSBkY2xrOwp9OwoKZW51bSBkbV9wcF9jbG9ja190eXBlIHsKIERNX1BQX0NMT0NLX1RZUEVfRElT
UExBWV9DTEsgPSAxLAogRE1fUFBfQ0xPQ0tfVFlQRV9FTkdJTkVfQ0xLLAogRE1fUFBfQ0xPQ0tf
VFlQRV9NRU1PUllfQ0xLLAogRE1fUFBfQ0xPQ0tfVFlQRV9EQ0ZDTEssCiBETV9QUF9DTE9DS19U
WVBFX0RDRUZDTEssCiBETV9QUF9DTE9DS19UWVBFX1NPQ0NMSywKIERNX1BQX0NMT0NLX1RZUEVf
UElYRUxDTEssCiBETV9QUF9DTE9DS19UWVBFX0RJU1BMQVlQSFlDTEssCiBETV9QUF9DTE9DS19U
WVBFX0RQUENMSywKIERNX1BQX0NMT0NLX1RZUEVfRkNMSywKfTsKIyA5NyAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgiCnN0cnVj
dCBkbV9wcF9jbG9ja19sZXZlbHMgewogdWludDMyX3QgbnVtX2xldmVsczsKIHVpbnQzMl90IGNs
b2Nrc19pbl9raHpbMTZdOwp9OwoKc3RydWN0IGRtX3BwX2Nsb2NrX3dpdGhfbGF0ZW5jeSB7CiB1
aW50MzJfdCBjbG9ja3NfaW5fa2h6OwogdWludDMyX3QgbGF0ZW5jeV9pbl91czsKfTsKCnN0cnVj
dCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0aF9sYXRlbmN5IHsKIHVpbnQzMl90IG51bV9sZXZlbHM7
CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF9sYXRlbmN5IGRhdGFbMTZdOwp9OwoKc3RydWN0IGRt
X3BwX2Nsb2NrX3dpdGhfdm9sdGFnZSB7CiB1aW50MzJfdCBjbG9ja3NfaW5fa2h6OwogdWludDMy
X3Qgdm9sdGFnZV9pbl9tdjsKfTsKCnN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0aF92b2x0
YWdlIHsKIHVpbnQzMl90IG51bV9sZXZlbHM7CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfd2l0aF92b2x0
YWdlIGRhdGFbMTZdOwp9OwoKc3RydWN0IGRtX3BwX3NpbmdsZV9kaXNwX2NvbmZpZyB7CiBlbnVt
IHNpZ25hbF90eXBlIHNpZ25hbDsKIHVpbnQ4X3QgdHJhbnNtaXR0ZXI7CiB1aW50OF90IGRkaV9j
aGFubmVsX21hcHBpbmc7CiB1aW50OF90IHBpcGVfaWR4OwogdWludDMyX3Qgc3JjX2hlaWdodDsK
IHVpbnQzMl90IHNyY193aWR0aDsKIHVpbnQzMl90IHZfcmVmcmVzaDsKIHVpbnQzMl90IHN5bV9j
bG9jazsKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGxpbmtfc2V0dGluZ3M7Cn07CgoKCmVudW0g
ZG1fcHBfd21fc2V0X2lkIHsKIFdNX1NFVF9BID0gMCwKIFdNX1NFVF9CLAogV01fU0VUX0MsCiBX
TV9TRVRfRCwKIFdNX1NFVF9JTlZBTElEID0gMHhmZmZmLAp9OwoKc3RydWN0IGRtX3BwX2Nsb2Nr
X3JhbmdlX2Zvcl93bV9zZXQgewogZW51bSBkbV9wcF93bV9zZXRfaWQgd21fc2V0X2lkOwogdWlu
dDMyX3Qgd21fbWluX2VuZ19jbGtfaW5fa2h6OwogdWludDMyX3Qgd21fbWF4X2VuZ19jbGtfaW5f
a2h6OwogdWludDMyX3Qgd21fbWluX21lbV9jbGtfaW5fa2h6OwogdWludDMyX3Qgd21fbWF4X21l
bV9jbGtfaW5fa2h6Owp9OwoKc3RydWN0IGRtX3BwX3dtX3NldHNfd2l0aF9jbG9ja19yYW5nZXMg
ewogdWludDMyX3QgbnVtX3dtX3NldHM7CiBzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2VfZm9yX3dt
X3NldCB3bV9jbGtfcmFuZ2VzWzRdOwp9OwoKc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9k
bWlmX3dtX3NldF9zb2MxNSB7CiBlbnVtIGRtX3BwX3dtX3NldF9pZCB3bV9zZXRfaWQ7CiB1aW50
MzJfdCB3bV9taW5fZGNmY2xrX2Nsa19pbl9raHo7CiB1aW50MzJfdCB3bV9tYXhfZGNmY2xrX2Ns
a19pbl9raHo7CiB1aW50MzJfdCB3bV9taW5fbWVtX2Nsa19pbl9raHo7CiB1aW50MzJfdCB3bV9t
YXhfbWVtX2Nsa19pbl9raHo7Cn07CgpzdHJ1Y3QgZG1fcHBfY2xvY2tfcmFuZ2VfZm9yX21jaWZf
d21fc2V0X3NvYzE1IHsKIGVudW0gZG1fcHBfd21fc2V0X2lkIHdtX3NldF9pZDsKIHVpbnQzMl90
IHdtX21pbl9zb2NjbGtfY2xrX2luX2toejsKIHVpbnQzMl90IHdtX21heF9zb2NjbGtfY2xrX2lu
X2toejsKIHVpbnQzMl90IHdtX21pbl9tZW1fY2xrX2luX2toejsKIHVpbnQzMl90IHdtX21heF9t
ZW1fY2xrX2luX2toejsKfTsKCnN0cnVjdCBkbV9wcF93bV9zZXRzX3dpdGhfY2xvY2tfcmFuZ2Vz
X3NvYzE1IHsKIHVpbnQzMl90IG51bV93bV9kbWlmX3NldHM7CiB1aW50MzJfdCBudW1fd21fbWNp
Zl9zZXRzOwogc3RydWN0IGRtX3BwX2Nsb2NrX3JhbmdlX2Zvcl9kbWlmX3dtX3NldF9zb2MxNQog
IHdtX2RtaWZfY2xvY2tzX3Jhbmdlc1s0XTsKIHN0cnVjdCBkbV9wcF9jbG9ja19yYW5nZV9mb3Jf
bWNpZl93bV9zZXRfc29jMTUKICB3bV9tY2lmX2Nsb2Nrc19yYW5nZXNbNF07Cn07CgoKCnN0cnVj
dCBkbV9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gewogYm9vbCBuYl9wc3RhdGVfc3dpdGNoX2Rp
c2FibGU7CiBib29sIGNwdV9jYzZfZGlzYWJsZTsKIGJvb2wgY3B1X3BzdGF0ZV9kaXNhYmxlOwog
dWludDMyX3QgY3B1X3BzdGF0ZV9zZXBhcmF0aW9uX3RpbWU7CgogdWludDMyX3QgbWluX21lbW9y
eV9jbG9ja19raHo7CiB1aW50MzJfdCBtaW5fZW5naW5lX2Nsb2NrX2toejsKIHVpbnQzMl90IG1p
bl9lbmdpbmVfY2xvY2tfZGVlcF9zbGVlcF9raHo7CgogdWludDMyX3QgYXZhaWxfbWNsa19zd2l0
Y2hfdGltZV91czsKIHVpbnQzMl90IGF2YWlsX21jbGtfc3dpdGNoX3RpbWVfaW5fZGlzcF9hY3Rp
dmVfdXM7CiB1aW50MzJfdCBtaW5fZGNmY2xvY2tfa2h6OwogdWludDMyX3QgbWluX2RjZmNfZGVl
cF9zbGVlcF9jbG9ja19raHo7CgogdWludDMyX3QgZGlzcF9jbGtfa2h6OwoKIGJvb2wgYWxsX2Rp
c3BsYXlzX2luX3N5bmM7CgogdWludDhfdCBkaXNwbGF5X2NvdW50Owogc3RydWN0IGRtX3BwX3Np
bmdsZV9kaXNwX2NvbmZpZyBkaXNwX2NvbmZpZ3NbNl07CgoKCiB1aW50OF90IGNydGNfaW5kZXg7
CgogdWludDMyX3QgbGluZV90aW1lX2luX3VzOwp9OwoKc3RydWN0IGRtX2JsX2RhdGFfcG9pbnQg
ewoKICB1aW50OF90IGx1bWluYW5jZTsKCgoKICB1aW50OF90IHNpZ25hbF9sZXZlbDsKfTsKCgoK
c3RydWN0IGRtX2FjcGlfYXRpZl9iYWNrbGlnaHRfY2FwcyB7CiB1aW50MTZfdCBzaXplOwogdWlu
dDE2X3QgZmxhZ3M7CiB1aW50OF90IGVycm9yX2NvZGU7CiB1aW50OF90IGFjX2xldmVsX3BlcmNl
bnRhZ2U7CiB1aW50OF90IGRjX2xldmVsX3BlcmNlbnRhZ2U7CiB1aW50OF90IG1pbl9pbnB1dF9z
aWduYWw7CiB1aW50OF90IG1heF9pbnB1dF9zaWduYWw7CiB1aW50OF90IG51bV9kYXRhX3BvaW50
czsKIHN0cnVjdCBkbV9ibF9kYXRhX3BvaW50IGRhdGFfcG9pbnRzWzk5XTsKfTsKCmVudW0gZG1f
YWNwaV9kaXNwbGF5X3R5cGUgewogQWNwaURpc3BsYXlUeXBlX0xDRDEgPSAwLAogQWNwaURpc3Bs
YXlUeXBlX0NSVDEgPSAxLAogQWNwaURpc3BsYXlUeXBlX0RGUDEgPSAzLAogQWNwaURpc3BsYXlU
eXBlX0NSVDIgPSA0LAogQWNwaURpc3BsYXlUeXBlX0xDRDIgPSA1LAogQWNwaURpc3BsYXlUeXBl
X0RGUDIgPSA3LAogQWNwaURpc3BsYXlUeXBlX0RGUDMgPSA5LAogQWNwaURpc3BsYXlUeXBlX0RG
UDQgPSAxMCwKIEFjcGlEaXNwbGF5VHlwZV9ERlA1ID0gMTEsCiBBY3BpRGlzcGxheVR5cGVfREZQ
NiA9IDEyCn07CgpzdHJ1Y3QgZG1fcHBfcG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3QgewogZW51
bSBkbV9wcF9jbG9ja3Nfc3RhdGUgcG93ZXJfbGV2ZWw7Cn07CgpzdHJ1Y3QgZG1fcHBfY2xvY2tf
Zm9yX3ZvbHRhZ2VfcmVxIHsKIGVudW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtfdHlwZTsKIHVpbnQz
Ml90IGNsb2Nrc19pbl9raHo7Cn07CgpzdHJ1Y3QgZG1fcHBfc3RhdGljX2Nsb2NrX2luZm8gewog
dWludDMyX3QgbWF4X3NjbGtfa2h6OwogdWludDMyX3QgbWF4X21jbGtfa2h6OwoKCiBlbnVtIGRt
X3BwX2Nsb2Nrc19zdGF0ZSBtYXhfY2xvY2tzX3N0YXRlOwp9OwoKc3RydWN0IGR0bl9taW5fY2xr
X2luZm8gewogdWludDMyX3QgZGlzcF9jbGtfa2h6OwogdWludDMyX3QgbWluX2VuZ2luZV9jbG9j
a19raHo7CiB1aW50MzJfdCBtaW5fbWVtb3J5X2Nsb2NrX2toejsKfTsKIyAzOCAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiIDIKIyAxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9sb2dnZXJfaW50
ZXJmYWNlLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2luY2x1ZGUvbG9nZ2VyX2ludGVyZmFjZS5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl90eXBlcy5oIiAxCiMgMzAgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xvZ2dlcl9pbnRlcmZhY2Uu
aCIgMgoKc3RydWN0IGRjX2NvbnRleHQ7CnN0cnVjdCBkY19saW5rOwpzdHJ1Y3QgZGNfc3VyZmFj
ZV91cGRhdGU7CnN0cnVjdCByZXNvdXJjZV9jb250ZXh0OwpzdHJ1Y3QgZGNfc3RhdGU7CgoKCgoK
Cgp2b2lkIGRjX2Nvbm5fbG9nX2hleF9saW51eChjb25zdCB1aW50OF90ICpoZXhfZGF0YSwgaW50
IGhleF9kYXRhX2NvdW50KTsKCnZvaWQgcHJlX3N1cmZhY2VfdHJhY2UoCiAgc3RydWN0IGRjICpk
YywKICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKmNvbnN0ICpwbGFuZV9zdGF0ZXMsCiAg
aW50IHN1cmZhY2VfY291bnQpOwoKdm9pZCB1cGRhdGVfc3VyZmFjZV90cmFjZSgKICBzdHJ1Y3Qg
ZGMgKmRjLAogIGNvbnN0IHN0cnVjdCBkY19zdXJmYWNlX3VwZGF0ZSAqdXBkYXRlcywKICBpbnQg
c3VyZmFjZV9jb3VudCk7Cgp2b2lkIHBvc3Rfc3VyZmFjZV90cmFjZShzdHJ1Y3QgZGMgKmRjKTsK
CnZvaWQgY29udGV4dF90aW1pbmdfdHJhY2UoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgcmVz
b3VyY2VfY29udGV4dCAqcmVzX2N0eCk7Cgp2b2lkIGNvbnRleHRfY2xvY2tfdHJhY2UoCiAgc3Ry
dWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwojIDM5ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIgMgoKCgoKc3Ry
dWN0IGRtdWJfc3J2OwpzdHJ1Y3QgZGNfZG11Yl9zcnY7CgppcnFfaGFuZGxlcl9pZHggZG1fcmVn
aXN0ZXJfaW50ZXJydXB0KAogc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIHN0cnVjdCBkY19pbnRl
cnJ1cHRfcGFyYW1zICppbnRfcGFyYW1zLAogaW50ZXJydXB0X2hhbmRsZXIgaWgsCiB2b2lkICpo
YW5kbGVyX2FyZ3MpOwoKCgoKCgoKdWludDMyX3QgZG1fcmVhZF9yZWdfZnVuYygKIGNvbnN0IHN0
cnVjdCBkY19jb250ZXh0ICpjdHgsCiB1aW50MzJfdCBhZGRyZXNzLAogY29uc3QgY2hhciAqZnVu
Y19uYW1lKTsKIyA3MyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2RtX3NlcnZpY2VzLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5l
X18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1
bWVudF9mdW5jdGlvbikpIHZvaWQgZG1fd3JpdGVfcmVnX2Z1bmMoCiBjb25zdCBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAogdWludDMyX3QgYWRkcmVzcywKIHVpbnQzMl90IHZhbHVlLAogY29uc3Qg
Y2hhciAqZnVuY19uYW1lKQp7CgoKCgoKCiAoKChzdHJ1Y3QgY2dzX2RldmljZSAqKWN0eC0+Y2dz
X2RldmljZSktPm9wcy0+d3JpdGVfcmVnaXN0ZXIoY3R4LT5jZ3NfZGV2aWNlLCBhZGRyZXNzLHZh
bHVlKSk7CiB0cmFjZV9hbWRncHVfZGNfd3JlZygmY3R4LT5wZXJmX3RyYWNlLT53cml0ZV9jb3Vu
dCwgYWRkcmVzcywgdmFsdWUpOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251
X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5v
X2luc3RydW1lbnRfZnVuY3Rpb24pKSB1aW50MzJfdCBkbV9yZWFkX2luZGV4X3JlZygKIGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBlbnVtIGNnc19pbmRfcmVnIGFkZHJfc3BhY2UsCiB1
aW50MzJfdCBpbmRleCkKewogcmV0dXJuICgoKHN0cnVjdCBjZ3NfZGV2aWNlICopY3R4LT5jZ3Nf
ZGV2aWNlKS0+b3BzLT5yZWFkX2luZF9yZWdpc3RlcihjdHgtPmNnc19kZXZpY2UsIGFkZHJfc3Bh
Y2UsaW5kZXgpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgdm9pZCBkbV93cml0ZV9pbmRleF9yZWcoCiBjb25zdCBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAogZW51bSBjZ3NfaW5kX3JlZyBhZGRyX3NwYWNlLAogdWludDMyX3QgaW5k
ZXgsCiB1aW50MzJfdCB2YWx1ZSkKewogKCgoc3RydWN0IGNnc19kZXZpY2UgKiljdHgtPmNnc19k
ZXZpY2UpLT5vcHMtPndyaXRlX2luZF9yZWdpc3RlcihjdHgtPmNnc19kZXZpY2UsIGFkZHJfc3Bh
Y2UsaW5kZXgsdmFsdWUpKTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9p
bmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19p
bnN0cnVtZW50X2Z1bmN0aW9uKSkgdWludDMyX3QgZ2V0X3JlZ19maWVsZF92YWx1ZV9leCgKIHVp
bnQzMl90IHJlZ192YWx1ZSwKIHVpbnQzMl90IG1hc2ssCiB1aW50OF90IHNoaWZ0KQp7CiByZXR1
cm4gKG1hc2sgJiByZWdfdmFsdWUpID4+IHNoaWZ0Owp9CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9f
YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykp
IF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSB1aW50MzJfdCBzZXRfcmVn
X2ZpZWxkX3ZhbHVlX2V4KAogdWludDMyX3QgcmVnX3ZhbHVlLAogdWludDMyX3QgdmFsdWUsCiB1
aW50MzJfdCBtYXNrLAogdWludDhfdCBzaGlmdCkKewogKHsgaW50IF9fcmV0X3dhcm5fb24gPSAh
ISghKG1hc2sgIT0gMCkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwg
MCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBmLCAw
eDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAiLmxv
bmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5sb25n
ICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEiICJc
dCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZsYWdz
XG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIpLCAiaSIgKDEyNiks
ICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRy
eSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rp
b24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0
aW9uXG5cdCIgOiA6ICJpIiAoNDcpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0
KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiByZXR1cm4gKHJlZ192YWx1ZSAmIH5tYXNrKSB8
IChtYXNrICYgKHZhbHVlIDw8IHNoaWZ0KSk7Cn0KIyAxMzcgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIgp1aW50MzJfdCBnZW5lcmljX3Jl
Z19zZXRfZXgoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICB1aW50MzJfdCBhZGRyLCB1
aW50MzJfdCByZWdfdmFsLCBpbnQgbiwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEs
IHVpbnQzMl90IGZpZWxkX3ZhbHVlMSwgLi4uKTsKCnVpbnQzMl90IGdlbmVyaWNfcmVnX3VwZGF0
ZV9leChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHVpbnQzMl90IGFkZHIsIGludCBu
LAogIHVpbnQ4X3Qgc2hpZnQxLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgZmllbGRfdmFsdWUx
LCAuLi4pOwoKc3RydWN0IGRjX2RtdWJfc3J2ICpkY19kbXViX3Nydl9jcmVhdGUoc3RydWN0IGRj
ICpkYywgc3RydWN0IGRtdWJfc3J2ICpkbXViKTsKdm9pZCBkY19kbXViX3Nydl9kZXN0cm95KHN0
cnVjdCBkY19kbXViX3NydiAqKmRtdWJfc3J2KTsKCnZvaWQgcmVnX3NlcXVlbmNlX3N0YXJ0X2dh
dGhlcihjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKdm9pZCByZWdfc2VxdWVuY2Vfc3Rh
cnRfZXhlY3V0ZShjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKdm9pZCByZWdfc2VxdWVu
Y2Vfd2FpdF9kb25lKGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgpOwojIDE1OSAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCnZvaWQg
Z2VuZXJpY19yZWdfd2FpdChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogdWludDMyX3Qg
YWRkciwgdWludDMyX3QgbWFzaywgdWludDMyX3Qgc2hpZnQsIHVpbnQzMl90IGNvbmRpdGlvbl92
YWx1ZSwKIHVuc2lnbmVkIGludCBkZWxheV9iZXR3ZWVuX3BvbGxfdXMsIHVuc2lnbmVkIGludCB0
aW1lX291dF9udW1fdHJpZXMsCiBjb25zdCBjaGFyICpmdW5jX25hbWUsIGludCBsaW5lKTsKCnVu
c2lnbmVkIGludCBzbnByaW50Zl9jb3VudChjaGFyICpwQnVmLCB1bnNpZ25lZCBpbnQgYnVmU2l6
ZSwgY2hhciAqZm10LCAuLi4pOwojIDIwOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RtX3NlcnZpY2VzLmgiCmJvb2wgZG1fcHBfZ2V0X2Nsb2NrX2xldmVsc19i
eV90eXBlKAogY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGVudW0gZG1fcHBfY2xvY2tf
dHlwZSBjbGtfdHlwZSwKIHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHMgKmNsa19sZXZlbF9pbmZv
KTsKCmJvb2wgZG1fcHBfZ2V0X2Nsb2NrX2xldmVsc19ieV90eXBlX3dpdGhfbGF0ZW5jeSgKIGNv
bnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBlbnVtIGRtX3BwX2Nsb2NrX3R5cGUgY2xrX3R5
cGUsCiBzdHJ1Y3QgZG1fcHBfY2xvY2tfbGV2ZWxzX3dpdGhfbGF0ZW5jeSAqY2xrX2xldmVsX2lu
Zm8pOwoKYm9vbCBkbV9wcF9nZXRfY2xvY2tfbGV2ZWxzX2J5X3R5cGVfd2l0aF92b2x0YWdlKAog
Y29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGVudW0gZG1fcHBfY2xvY2tfdHlwZSBjbGtf
dHlwZSwKIHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHNfd2l0aF92b2x0YWdlICpjbGtfbGV2ZWxf
aW5mbyk7Cgpib29sIGRtX3BwX25vdGlmeV93bV9jbG9ja19jaGFuZ2VzKAogY29uc3Qgc3RydWN0
IGRjX2NvbnRleHQgKmN0eCwKIHN0cnVjdCBkbV9wcF93bV9zZXRzX3dpdGhfY2xvY2tfcmFuZ2Vz
ICp3bV93aXRoX2Nsb2NrX3Jhbmdlcyk7Cgp2b2lkIGRtX3BwX2dldF9mdW5jcyhzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4LAogIHN0cnVjdCBwcF9zbXVfZnVuY3MgKmZ1bmNzKTsKIyAyNDEgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIgpib29s
IGRtX3BwX2FwcGx5X2Rpc3BsYXlfcmVxdWlyZW1lbnRzKAogY29uc3Qgc3RydWN0IGRjX2NvbnRl
eHQgKmN0eCwKIGNvbnN0IHN0cnVjdCBkbV9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gKnBwX2Rp
c3BsYXlfY2ZnKTsKCmJvb2wgZG1fcHBfYXBwbHlfcG93ZXJfbGV2ZWxfY2hhbmdlX3JlcXVlc3Qo
CiBjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogc3RydWN0IGRtX3BwX3Bvd2VyX2xldmVs
X2NoYW5nZV9yZXF1ZXN0ICpsZXZlbF9jaGFuZ2VfcmVxKTsKCmJvb2wgZG1fcHBfYXBwbHlfY2xv
Y2tfZm9yX3ZvbHRhZ2VfcmVxdWVzdCgKIGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBz
dHJ1Y3QgZG1fcHBfY2xvY2tfZm9yX3ZvbHRhZ2VfcmVxICpjbG9ja19mb3Jfdm9sdGFnZV9yZXEp
OwoKYm9vbCBkbV9wcF9nZXRfc3RhdGljX2Nsb2NrcygKIGNvbnN0IHN0cnVjdCBkY19jb250ZXh0
ICpjdHgsCiBzdHJ1Y3QgZG1fcHBfc3RhdGljX2Nsb2NrX2luZm8gKnN0YXRpY19jbGtfaW5mbyk7
CgoKCnN0cnVjdCBwZXJzaXN0ZW50X2RhdGFfZmxhZyB7CiBib29sIHNhdmVfcGVyX2xpbms7CiBi
b29sIHNhdmVfcGVyX2VkaWQ7Cn07CiMgMjkxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZG1fc2VydmljZXMuaCIKYm9vbCBkbV93cml0ZV9wZXJzaXN0ZW50X2Rh
dGEoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICBjb25zdCBzdHJ1Y3QgZGNfc2luayAqc2luaywK
ICBjb25zdCBjaGFyICptb2R1bGVfbmFtZSwKICBjb25zdCBjaGFyICprZXlfbmFtZSwKICB2b2lk
ICpwYXJhbXMsCiAgdW5zaWduZWQgaW50IHNpemUsCiAgc3RydWN0IHBlcnNpc3RlbnRfZGF0YV9m
bGFnICpmbGFnKTsKIyAzMjUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9kbV9zZXJ2aWNlcy5oIgpib29sIGRtX3JlYWRfcGVyc2lzdGVudF9kYXRhKHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCiAgY29uc3Qgc3RydWN0IGRjX3NpbmsgKnNpbmssCiAgY29uc3QgY2hh
ciAqbW9kdWxlX25hbWUsCiAgY29uc3QgY2hhciAqa2V5X25hbWUsCiAgdm9pZCAqcGFyYW1zLAog
IHVuc2lnbmVkIGludCBzaXplLAogIHN0cnVjdCBwZXJzaXN0ZW50X2RhdGFfZmxhZyAqZmxhZyk7
Cgpib29sIGRtX3F1ZXJ5X2V4dGVuZGVkX2JyaWdodG5lc3NfY2FwcwogKHN0cnVjdCBkY19jb250
ZXh0ICpjdHgsIGVudW0gZG1fYWNwaV9kaXNwbGF5X3R5cGUgZGlzcGxheSwKICAgc3RydWN0IGRt
X2FjcGlfYXRpZl9iYWNrbGlnaHRfY2FwcyAqcENhcHMpOwoKYm9vbCBkbV9kbWN1X3NldF9waXBl
KHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBjb250cm9sbGVyX2lkKTsKIyAz
NDcgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9zZXJ2aWNl
cy5oIgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSB1bnNpZ25lZCBsb25nIGxvbmcgZG1fZ2V0X3RpbWVzdGFtcChzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4KQp7CiByZXR1cm4ga3RpbWVfZ2V0X3Jhd19ucygpOwp9Cgp1bnNpZ25lZCBsb25nIGxv
bmcgZG1fZ2V0X2VsYXBzZV90aW1lX2luX25zKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgdW5z
aWduZWQgbG9uZyBsb25nIGN1cnJlbnRfdGltZV9zdGFtcCwKICB1bnNpZ25lZCBsb25nIGxvbmcg
bGFzdF90aW1lX3N0YW1wKTsKIyAzNzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9kYy9kbV9zZXJ2aWNlcy5oIgp2b2lkIGRtX2R0bl9sb2dfYmVnaW4oc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKIHN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCk7CnZvaWQg
ZG1fZHRuX2xvZ19hcHBlbmRfdihzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogc3RydWN0IGRjX2xv
Z19idWZmZXJfY3R4ICpsb2dfY3R4LAogY29uc3QgY2hhciAqbXNnLCAuLi4pOwp2b2lkIGRtX2R0
bl9sb2dfZW5kKHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9j
dHggKmxvZ19jdHgpOwojIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvaW5jbHVkZS9iaW9zX3BhcnNlcl90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvc2lnbmFsX3R5cGVzLmgiIDEKIyAzMiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJf
dHlwZXMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9p
bmNsdWRlL2dycGhfb2JqZWN0X2N0cmxfZGVmcy5oIiAxCiMgMzMgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2VyX3R5cGVzLmgiIDIKIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9ncGlvX3R5
cGVzLmgiIDEKIyAzNCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2lu
Y2x1ZGUvYmlvc19wYXJzZXJfdHlwZXMuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2xpbmtfc2VydmljZV90eXBlcy5oIiAxCiMgMzUgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2Jpb3NfcGFyc2Vy
X3R5cGVzLmgiIDIKCgplbnVtIGFzX3NpZ25hbF90eXBlIHsKIEFTX1NJR05BTF9UWVBFX05PTkUg
PSAwTCwKIEFTX1NJR05BTF9UWVBFX0RWSSwKIEFTX1NJR05BTF9UWVBFX0hETUksCiBBU19TSUdO
QUxfVFlQRV9MVkRTLAogQVNfU0lHTkFMX1RZUEVfRElTUExBWV9QT1JULAogQVNfU0lHTkFMX1RZ
UEVfR1BVX1BMTCwKIEFTX1NJR05BTF9UWVBFX1hHTUksCiBBU19TSUdOQUxfVFlQRV9VTktOT1dO
Cn07CgplbnVtIGJwX3Jlc3VsdCB7CiBCUF9SRVNVTFRfT0sgPSAwLAogQlBfUkVTVUxUX0JBRElO
UFVULAogQlBfUkVTVUxUX0JBREJJT1NUQUJMRSwKIEJQX1JFU1VMVF9VTlNVUFBPUlRFRCwKIEJQ
X1JFU1VMVF9OT1JFQ09SRCwKIEJQX1JFU1VMVF9GQUlMVVJFCn07CgplbnVtIGJwX2VuY29kZXJf
Y29udHJvbF9hY3Rpb24gewoKIEVOQ09ERVJfQ09OVFJPTF9ESVNBQkxFID0gMCwKIEVOQ09ERVJf
Q09OVFJPTF9FTkFCTEUsCiBFTkNPREVSX0NPTlRST0xfU0VUVVAsCiBFTkNPREVSX0NPTlRST0xf
SU5JVAp9OwoKZW51bSBicF90cmFuc21pdHRlcl9jb250cm9sX2FjdGlvbiB7CgogVFJBTlNNSVRU
RVJfQ09OVFJPTF9ESVNBQkxFID0gMCwKIFRSQU5TTUlUVEVSX0NPTlRST0xfRU5BQkxFLAogVFJB
TlNNSVRURVJfQ09OVFJPTF9CQUNLTElHSFRfT0ZGLAogVFJBTlNNSVRURVJfQ09OVFJPTF9CQUNL
TElHSFRfT04sCiBUUkFOU01JVFRFUl9DT05UUk9MX0JBQ0tMSUdIVF9CUklHSFRORVNTLAogVFJB
TlNNSVRURVJfQ09OVFJPTF9MQ0RfU0VURl9URVNUX1NUQVJULAogVFJBTlNNSVRURVJfQ09OVFJP
TF9MQ0RfU0VMRl9URVNUX1NUT1AsCiBUUkFOU01JVFRFUl9DT05UUk9MX0lOSVQsCiBUUkFOU01J
VFRFUl9DT05UUk9MX0RFQUNUSVZBVEUsCiBUUkFOU01JVFRFUl9DT05UUk9MX0FDVElBVkFURSwK
IFRSQU5TTUlUVEVSX0NPTlRST0xfU0VUVVAsCiBUUkFOU01JVFRFUl9DT05UUk9MX1NFVF9WT0xU
QUdFX0FORF9QUkVFTVBBU0lTLAoKCgogVFJBTlNNSVRURVJfQ09OVFJPTF9QT1dFUl9PTiwKCgoK
IFRSQU5TTUlUVEVSX0NPTlRST0xfUE9XRVJfT0ZGCn07CgplbnVtIGJwX2V4dGVybmFsX2VuY29k
ZXJfY29udHJvbF9hY3Rpb24gewogRVhURVJOQUxfRU5DT0RFUl9DT05UUk9MX0RJU0FCTEUgPSAw
LAogRVhURVJOQUxfRU5DT0RFUl9DT05UUk9MX0VOQUJMRSA9IDEsCiBFWFRFUk5BTF9FTkNPREVS
X0NPTlRST0xfSU5JVCA9IDB4NywKIEVYVEVSTkFMX0VOQ09ERVJfQ09OVFJPTF9TRVRVUCA9IDB4
ZiwKIEVYVEVSTkFMX0VOQ09ERVJfQ09OVFJPTF9VTkJMQU5LID0gMHgxMCwKIEVYVEVSTkFMX0VO
Q09ERVJfQ09OVFJPTF9CTEFOSyA9IDB4MTEsCn07CgplbnVtIGJwX3BpcGVfY29udHJvbF9hY3Rp
b24gewogQVNJQ19QSVBFX0RJU0FCTEUgPSAwLAogQVNJQ19QSVBFX0VOQUJMRSwKIEFTSUNfUElQ
RV9JTklUCn07CgpzdHJ1Y3QgYnBfZW5jb2Rlcl9jb250cm9sIHsKIGVudW0gYnBfZW5jb2Rlcl9j
b250cm9sX2FjdGlvbiBhY3Rpb247CiBlbnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7CiBlbnVtIHRy
YW5zbWl0dGVyIHRyYW5zbWl0dGVyOwogZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CiBlbnVtIGRj
X2xhbmVfY291bnQgbGFuZXNfbnVtYmVyOwogZW51bSBkY19jb2xvcl9kZXB0aCBjb2xvcl9kZXB0
aDsKIGJvb2wgZW5hYmxlX2RwX2F1ZGlvOwogdWludDMyX3QgcGl4ZWxfY2xvY2s7Cn07CgpzdHJ1
Y3QgYnBfZXh0ZXJuYWxfZW5jb2Rlcl9jb250cm9sIHsKIGVudW0gYnBfZXh0ZXJuYWxfZW5jb2Rl
cl9jb250cm9sX2FjdGlvbiBhY3Rpb247CiBlbnVtIGVuZ2luZV9pZCBlbmdpbmVfaWQ7CiBlbnVt
IGRjX2xpbmtfcmF0ZSBsaW5rX3JhdGU7CiBlbnVtIGRjX2xhbmVfY291bnQgbGFuZXNfbnVtYmVy
OwogZW51bSBzaWduYWxfdHlwZSBzaWduYWw7CiBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2Rl
cHRoOwogYm9vbCBjb2hlcmVudDsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgZW5jb2Rlcl9p
ZDsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yX29ial9pZDsKIHVpbnQzMl90
IHBpeGVsX2Nsb2NrOwp9OwoKc3RydWN0IGJwX2NydGNfc291cmNlX3NlbGVjdCB7CiBlbnVtIGVu
Z2luZV9pZCBlbmdpbmVfaWQ7CiBlbnVtIGNvbnRyb2xsZXJfaWQgY29udHJvbGxlcl9pZDsKCiBl
bnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKCiBlbnVtIHNpZ25hbF90eXBlIHNpbmtfc2lnbmFsOwog
ZW51bSBkaXNwbGF5X291dHB1dF9iaXRfZGVwdGggZGlzcGxheV9vdXRwdXRfYml0X2RlcHRoOwog
Ym9vbCBlbmFibGVfZHBfYXVkaW87Cn07CgpzdHJ1Y3QgYnBfdHJhbnNtaXR0ZXJfY29udHJvbCB7
CiBlbnVtIGJwX3RyYW5zbWl0dGVyX2NvbnRyb2xfYWN0aW9uIGFjdGlvbjsKIGVudW0gZW5naW5l
X2lkIGVuZ2luZV9pZDsKIGVudW0gdHJhbnNtaXR0ZXIgdHJhbnNtaXR0ZXI7CiBlbnVtIGRjX2xh
bmVfY291bnQgbGFuZXNfbnVtYmVyOwogZW51bSBjbG9ja19zb3VyY2VfaWQgcGxsX2lkOwogZW51
bSBzaWduYWxfdHlwZSBzaWduYWw7CiBlbnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoOwog
ZW51bSBocGRfc291cmNlX2lkIGhwZF9zZWw7CiBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGNv
bm5lY3Rvcl9vYmpfaWQ7CgoKCiB1aW50MzJfdCBwaXhlbF9jbG9jazsKIHVpbnQzMl90IGxhbmVf
c2VsZWN0OwogdWludDMyX3QgbGFuZV9zZXR0aW5nczsKIGJvb2wgY29oZXJlbnQ7CiBib29sIG11
bHRpX3BhdGg7CiBib29sIHNpbmdsZV9wbGxfbW9kZTsKfTsKCnN0cnVjdCBicF9od19jcnRjX3Rp
bWluZ19wYXJhbWV0ZXJzIHsKIGVudW0gY29udHJvbGxlcl9pZCBjb250cm9sbGVyX2lkOwoKIHVp
bnQzMl90IGhfdG90YWw7CiB1aW50MzJfdCBoX2FkZHJlc3NhYmxlOwogdWludDMyX3QgaF9vdmVy
c2Nhbl9sZWZ0OwogdWludDMyX3QgaF9vdmVyc2Nhbl9yaWdodDsKIHVpbnQzMl90IGhfc3luY19z
dGFydDsKIHVpbnQzMl90IGhfc3luY193aWR0aDsKCgogdWludDMyX3Qgdl90b3RhbDsKIHVpbnQz
Ml90IHZfYWRkcmVzc2FibGU7CiB1aW50MzJfdCB2X292ZXJzY2FuX3RvcDsKIHVpbnQzMl90IHZf
b3ZlcnNjYW5fYm90dG9tOwogdWludDMyX3Qgdl9zeW5jX3N0YXJ0OwogdWludDMyX3Qgdl9zeW5j
X3dpZHRoOwoKIHN0cnVjdCB0aW1pbmdfZmxhZ3MgewogIHVpbnQzMl90IElOVEVSTEFDRToxOwog
IHVpbnQzMl90IFBJWEVMX1JFUEVUSVRJT046NDsKICB1aW50MzJfdCBIU1lOQ19QT1NJVElWRV9Q
T0xBUklUWToxOwogIHVpbnQzMl90IFZTWU5DX1BPU0lUSVZFX1BPTEFSSVRZOjE7CiAgdWludDMy
X3QgSE9SWl9DT1VOVF9CWV9UV086MTsKIH0gZmxhZ3M7Cn07CgpzdHJ1Y3QgYnBfYWRqdXN0X3Bp
eGVsX2Nsb2NrX3BhcmFtZXRlcnMgewoKIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsX3R5cGU7Cgog
c3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBlbmNvZGVyX29iamVjdF9pZDsKCgoKIHVpbnQzMl90
IHBpeGVsX2Nsb2NrOwoKIHVpbnQzMl90IGFkanVzdGVkX3BpeGVsX2Nsb2NrOwoKCiB1aW50MzJf
dCByZWZlcmVuY2VfZGl2aWRlcjsKCgogdWludDMyX3QgcGl4ZWxfY2xvY2tfcG9zdF9kaXZpZGVy
OwoKIGJvb2wgc3NfZW5hYmxlOwp9OwoKc3RydWN0IGJwX3BpeGVsX2Nsb2NrX3BhcmFtZXRlcnMg
ewogZW51bSBjb250cm9sbGVyX2lkIGNvbnRyb2xsZXJfaWQ7CiBlbnVtIGNsb2NrX3NvdXJjZV9p
ZCBwbGxfaWQ7CgogZW51bSBzaWduYWxfdHlwZSBzaWduYWxfdHlwZTsKCgogdWludDMyX3QgdGFy
Z2V0X3BpeGVsX2Nsb2NrXzEwMGh6OwoKIHVpbnQzMl90IHJlZmVyZW5jZV9kaXZpZGVyOwoKIHVp
bnQzMl90IGZlZWRiYWNrX2RpdmlkZXI7CgogdWludDMyX3QgZnJhY3Rpb25hbF9mZWVkYmFja19k
aXZpZGVyOwoKIHVpbnQzMl90IHBpeGVsX2Nsb2NrX3Bvc3RfZGl2aWRlcjsKIHN0cnVjdCBncmFw
aGljc19vYmplY3RfaWQgZW5jb2Rlcl9vYmplY3RfaWQ7CgoKIHVpbnQzMl90IGRmc19ieXBhc3Nf
ZGlzcGxheV9jbG9jazsKCiBlbnVtIHRyYW5zbWl0dGVyX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRo
OwoKIHN0cnVjdCBwcm9ncmFtX3BpeGVsX2Nsb2NrX2ZsYWdzIHsKICB1aW50MzJfdCBGT1JDRV9Q
Uk9HUkFNTUlOR19PRl9QTEw6MTsKCgogIHVpbnQzMl90IFVTRV9FX0NMT0NLX0FTX1NPVVJDRV9G
T1JfRF9DTE9DSzoxOwoKICB1aW50MzJfdCBTRVRfRVhURVJOQUxfUkVGX0RJVl9TUkM6MTsKCiAg
dWludDMyX3QgU0VUX0RJU1BDTEtfREZTX0JZUEFTUzoxOwoKICB1aW50MzJfdCBQUk9HUkFNX1BI
WV9QTExfT05MWToxOwoKICB1aW50MzJfdCBTVVBQT1JUX1lVVl80MjA6MTsKCiAgdWludDMyX3Qg
U0VUX1hUQUxJTl9SRUZfU1JDOjE7CgogIHVpbnQzMl90IFNFVF9HRU5MT0NLX1JFRl9ESVZfU1JD
OjE7CiB9IGZsYWdzOwp9OwoKZW51bSBicF9kY2VfY2xvY2tfdHlwZSB7CiBEQ0VDTE9DS19UWVBF
X0RJU1BMQVlfQ0xPQ0sgPSAwLAogRENFQ0xPQ0tfVFlQRV9EUFJFRkNMSyA9IDEKfTsKCgpzdHJ1
Y3QgYnBfc2V0X2RjZV9jbG9ja19wYXJhbWV0ZXJzIHsKIGVudW0gY2xvY2tfc291cmNlX2lkIHBs
bF9pZDsKCiB1aW50MzJfdCB0YXJnZXRfY2xvY2tfZnJlcXVlbmN5OwoKIGVudW0gYnBfZGNlX2Ns
b2NrX3R5cGUgY2xvY2tfdHlwZTsKCiBzdHJ1Y3Qgc2V0X2RjZV9jbG9ja19mbGFncyB7CiAgdWlu
dDMyX3QgVVNFX0dFTkVSSUNBX0FTX1NPVVJDRV9GT1JfRFBSRUZDTEs6MTsKCiAgdWludDMyX3Qg
VVNFX1hUQUxJTl9BU19TT1VSQ0VfRk9SX0RQUkVGQ0xLOjE7CgogIHVpbnQzMl90IFVTRV9QQ0lF
X0FTX1NPVVJDRV9GT1JfRFBSRUZDTEs6MTsKCiAgdWludDMyX3QgVVNFX0dFTkxPQ0tfQVNfU09V
UkNFX0ZPUl9EUFJFRkNMSzoxOwogfSBmbGFnczsKfTsKCnN0cnVjdCBzcHJlYWRfc3BlY3RydW1f
ZmxhZ3MgewoKIHVpbnQzMl90IENFTlRFUl9TUFJFQUQ6MTsKCiB1aW50MzJfdCBFWFRFUk5BTF9T
UzoxOwoKIHVpbnQzMl90IERTX1RZUEU6MTsKfTsKCnN0cnVjdCBicF9zcHJlYWRfc3BlY3RydW1f
cGFyYW1ldGVycyB7CiBlbnVtIGNsb2NrX3NvdXJjZV9pZCBwbGxfaWQ7CiB1aW50MzJfdCBwZXJj
ZW50YWdlOwogdWludDMyX3QgZHNfZnJhY19hbW91bnQ7CgogdW5pb24gewogIHN0cnVjdCB7CiAg
IHVpbnQzMl90IHN0ZXA7CiAgIHVpbnQzMl90IGRlbGF5OwogICB1aW50MzJfdCByYW5nZTsKICB9
IHZlcjE7CiAgc3RydWN0IHsKICAgdWludDMyX3QgZmVlZGJhY2tfYW1vdW50OwogICB1aW50MzJf
dCBuZnJhY19hbW91bnQ7CiAgIHVpbnQzMl90IGRzX2ZyYWNfc2l6ZTsKICB9IGRzOwogfTsKCiBz
dHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX2ZsYWdzIGZsYWdzOwp9OwoKc3RydWN0IGJwX2VuY29kZXJf
Y2FwX2luZm8gewogdWludDMyX3QgRFBfSEJSMl9DQVA6MTsKIHVpbnQzMl90IERQX0hCUjJfRU46
MTsKIHVpbnQzMl90IERQX0hCUjNfRU46MTsKIHVpbnQzMl90IEhETUlfNkdCX0VOOjE7CiB1aW50
MzJfdCBEUF9JU19VU0JfQzoxOwogdWludDMyX3QgUkVTRVJWRUQ6Mjc7Cn07CiMgMzIgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY2xvY2tfc291cmNlLmgi
IDIKCnN0cnVjdCBjbG9ja19zb3VyY2U7CgpzdHJ1Y3Qgc3ByZWFkX3NwZWN0cnVtX2RhdGEgewog
dWludDMyX3QgcGVyY2VudGFnZTsKIHVpbnQzMl90IHBlcmNlbnRhZ2VfZGl2aWRlcjsKIHVpbnQz
Ml90IGZyZXFfcmFuZ2Vfa2h6OwogdWludDMyX3QgbW9kdWxhdGlvbl9mcmVxX2h6OwoKIHN0cnVj
dCBzcHJlYWRfc3BlY3RydW1fZmxhZ3MgZmxhZ3M7Cn07CgpzdHJ1Y3QgZGVsdGFfc2lnbWFfZGF0
YSB7CiB1aW50MzJfdCBmZWVkYmFja19hbW91bnQ7CiB1aW50MzJfdCBuZnJhY19hbW91bnQ7CiB1
aW50MzJfdCBkc19mcmFjX3NpemU7CiB1aW50MzJfdCBkc19mcmFjX2Ftb3VudDsKfTsKCgoKCgoK
c3RydWN0IHBpeGVsX2Nsa19mbGFncyB7CiB1aW50MzJfdCBFTkFCTEVfU1M6MTsKIHVpbnQzMl90
IERJU1BMQVlfQkxBTktFRDoxOwogdWludDMyX3QgUFJPR1JBTV9QSVhFTF9DTE9DSzoxOwogdWlu
dDMyX3QgUFJPR1JBTV9JRF9DTE9DSzoxOwogdWludDMyX3QgU1VQUE9SVF9ZQ0JDUjQyMDoxOwp9
OwoKCgoKCnN0cnVjdCBjc2RwX3JlZl9jbGtfZHNfcGFyYW1zIHsKIGJvb2wgaHdfZHNvX25fZHBf
cmVmX2NsazsKCiB1aW50MzJfdCBhdmdfZHBfcmVmX2Nsa19raHo7CgogdWludDMyX3Qgc3NfcGVy
Y2VudGFnZV9vbl9kcF9yZWZfY2xrOwoKCiB1aW50MzJfdCBzc19wZXJjZW50YWdlX2RpdmlkZXI7
Cgp9OwoKc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgewogdWludDMyX3QgcmVxdWVzdGVkX3BpeF9j
bGtfMTAwaHo7CgoKIHVpbnQzMl90IHJlcXVlc3RlZF9zeW1fY2xrOwoKIHVpbnQzMl90IGRwX3Jl
Zl9jbGs7Cgogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBlbmNvZGVyX29iamVjdF9pZDsKCiBl
bnVtIHNpZ25hbF90eXBlIHNpZ25hbF90eXBlOwoKIGVudW0gY29udHJvbGxlcl9pZCBjb250cm9s
bGVyX2lkOwoKIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBzdHJ1Y3QgY3NkcF9y
ZWZfY2xrX2RzX3BhcmFtcyBkZV9zcHJlYWRfcGFyYW1zOwoKIGVudW0gZGNfcGl4ZWxfZW5jb2Rp
bmcgcGl4ZWxfZW5jb2Rpbmc7CiBzdHJ1Y3QgcGl4ZWxfY2xrX2ZsYWdzIGZsYWdzOwp9OwoKCgoK
CgpzdHJ1Y3QgcGxsX3NldHRpbmdzIHsKIHVpbnQzMl90IGFjdHVhbF9waXhfY2xrXzEwMGh6Owog
dWludDMyX3QgYWRqdXN0ZWRfcGl4X2Nsa18xMDBoejsKIHVpbnQzMl90IGNhbGN1bGF0ZWRfcGl4
X2Nsa18xMDBoejsKIHVpbnQzMl90IHZjb19mcmVxOwogdWludDMyX3QgcmVmZXJlbmNlX2ZyZXE7
CiB1aW50MzJfdCByZWZlcmVuY2VfZGl2aWRlcjsKIHVpbnQzMl90IGZlZWRiYWNrX2RpdmlkZXI7
CiB1aW50MzJfdCBmcmFjdF9mZWVkYmFja19kaXZpZGVyOwogdWludDMyX3QgcGl4X2Nsa19wb3N0
X2RpdmlkZXI7CiB1aW50MzJfdCBzc19wZXJjZW50YWdlOwogYm9vbCB1c2VfZXh0ZXJuYWxfY2xr
Owp9OwoKc3RydWN0IGNhbGNfcGxsX2Nsb2NrX3NvdXJjZV9pbml0X2RhdGEgewogc3RydWN0IGRj
X2Jpb3MgKmJwOwogdWludDMyX3QgbWluX3BpeF9jbGtfcGxsX3Bvc3RfZGl2aWRlcjsKIHVpbnQz
Ml90IG1heF9waXhfY2xrX3BsbF9wb3N0X2RpdmlkZXI7CiB1aW50MzJfdCBtaW5fcGxsX3JlZl9k
aXZpZGVyOwogdWludDMyX3QgbWF4X3BsbF9yZWZfZGl2aWRlcjsKIHVpbnQzMl90IG1pbl9vdmVy
cmlkZV9pbnB1dF9weGxfY2xrX3BsbF9mcmVxX2toejsKCgogdWludDMyX3QgbWF4X292ZXJyaWRl
X2lucHV0X3B4bF9jbGtfcGxsX2ZyZXFfa2h6OwoKCiB1aW50MzJfdCBudW1fZnJhY3RfZmJfZGl2
aWRlcl9kZWNpbWFsX3BvaW50OwoKCiB1aW50MzJfdCBudW1fZnJhY3RfZmJfZGl2aWRlcl9kZWNp
bWFsX3BvaW50X3ByZWNpc2lvbjsKCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoKfTsKCnN0cnVj
dCBjYWxjX3BsbF9jbG9ja19zb3VyY2UgewogdWludDMyX3QgcmVmX2ZyZXFfa2h6OwogdWludDMy
X3QgbWluX3BpeF9jbG9ja19wbGxfcG9zdF9kaXZpZGVyOwogdWludDMyX3QgbWF4X3BpeF9jbG9j
a19wbGxfcG9zdF9kaXZpZGVyOwogdWludDMyX3QgbWluX3BsbF9yZWZfZGl2aWRlcjsKIHVpbnQz
Ml90IG1heF9wbGxfcmVmX2RpdmlkZXI7CgogdWludDMyX3QgbWF4X3Zjb19raHo7CiB1aW50MzJf
dCBtaW5fdmNvX2toejsKIHVpbnQzMl90IG1pbl9wbGxfaW5wdXRfZnJlcV9raHo7CiB1aW50MzJf
dCBtYXhfcGxsX2lucHV0X2ZyZXFfa2h6OwoKIHVpbnQzMl90IGZyYWN0X2ZiX2RpdmlkZXJfZGVj
aW1hbF9wb2ludHNfbnVtOwogdWludDMyX3QgZnJhY3RfZmJfZGl2aWRlcl9mYWN0b3I7CiB1aW50
MzJfdCBmcmFjdF9mYl9kaXZpZGVyX3ByZWNpc2lvbjsKIHVpbnQzMl90IGZyYWN0X2ZiX2Rpdmlk
ZXJfcHJlY2lzaW9uX2ZhY3RvcjsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7Cn07CgpzdHJ1Y3Qg
Y2xvY2tfc291cmNlX2Z1bmNzIHsKIGJvb2wgKCpjc19wb3dlcl9kb3duKSgKICAgc3RydWN0IGNs
b2NrX3NvdXJjZSAqKTsKIGJvb2wgKCpwcm9ncmFtX3BpeF9jbGspKHN0cnVjdCBjbG9ja19zb3Vy
Y2UgKiwKICAgc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgKiwgc3RydWN0IHBsbF9zZXR0aW5ncyAq
KTsKIHVpbnQzMl90ICgqZ2V0X3BpeF9jbGtfZGl2aWRlcnMpKAogICBzdHJ1Y3QgY2xvY2tfc291
cmNlICosCiAgIHN0cnVjdCBwaXhlbF9jbGtfcGFyYW1zICosCiAgIHN0cnVjdCBwbGxfc2V0dGlu
Z3MgKik7CiBib29sICgqZ2V0X3BpeGVsX2Nsa19mcmVxdWVuY3lfMTAwaHopKAogICBjb25zdCBz
dHJ1Y3QgY2xvY2tfc291cmNlICpjbG9ja19zb3VyY2UsCiAgIHVuc2lnbmVkIGludCBpbnN0LAog
ICB1bnNpZ25lZCBpbnQgKnBpeGVsX2Nsa19raHopOwp9OwoKc3RydWN0IGNsb2NrX3NvdXJjZSB7
CiBjb25zdCBzdHJ1Y3QgY2xvY2tfc291cmNlX2Z1bmNzICpmdW5jczsKIHN0cnVjdCBkY19jb250
ZXh0ICpjdHg7CiBlbnVtIGNsb2NrX3NvdXJjZV9pZCBpZDsKIGJvb2wgZHBfY2xrX3NyYzsKfTsK
IyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9od19z
ZXF1ZW5jZXIuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9pbmMvaHcvdGltaW5nX2dlbmVyYXRvci5oIiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvdGltaW5nX2dlbmVyYXRvci5oIgpzdHJ1
Y3QgZGNfYmlvczsKCgpzdHJ1Y3QgY3J0Y19wb3NpdGlvbiB7CiBpbnQzMl90IHZlcnRpY2FsX2Nv
dW50OwogaW50MzJfdCBob3Jpem9udGFsX2NvdW50OwogaW50MzJfdCBub21pbmFsX3Zjb3VudDsK
fTsKCnN0cnVjdCBkY3BfZ3NsX3BhcmFtcyB7CiBpbnQgZ3NsX2dyb3VwOwogaW50IGdzbF9tYXN0
ZXI7Cn07CgpzdHJ1Y3QgZ3NsX3BhcmFtcyB7CiBpbnQgZ3NsMF9lbjsKIGludCBnc2wxX2VuOwog
aW50IGdzbDJfZW47CiBpbnQgZ3NsX21hc3Rlcl9lbjsKIGludCBnc2xfbWFzdGVyX21vZGU7CiBp
bnQgbWFzdGVyX3VwZGF0ZV9sb2NrX2dzbF9lbjsKIGludCBnc2xfd2luZG93X3N0YXJ0X3g7CiBp
bnQgZ3NsX3dpbmRvd19lbmRfeDsKIGludCBnc2xfd2luZG93X3N0YXJ0X3k7CiBpbnQgZ3NsX3dp
bmRvd19lbmRfeTsKfTsKCgpzdHJ1Y3QgZHJyX3BhcmFtcyB7CiB1aW50MzJfdCB2ZXJ0aWNhbF90
b3RhbF9taW47CiB1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9tYXg7CiB1aW50MzJfdCB2ZXJ0aWNh
bF90b3RhbF9taWQ7CiB1aW50MzJfdCB2ZXJ0aWNhbF90b3RhbF9taWRfZnJhbWVfbnVtOwogYm9v
bCBpbW1lZGlhdGVfZmxpcDsKfTsKCgoKCmVudW0gY3J0Y19zdGF0ZSB7CiBDUlRDX1NUQVRFX1ZC
TEFOSyA9IDAsCiBDUlRDX1NUQVRFX1ZBQ1RJVkUKfTsKCnN0cnVjdCB2dXBkYXRlX2tlZXBvdXRf
cGFyYW1zIHsKIGludCBzdGFydF9vZmZzZXQ7CiBpbnQgZW5kX29mZnNldDsKIGludCBlbmFibGU7
Cn07CgpzdHJ1Y3QgY3J0Y19zdGVyZW9fZmxhZ3MgewogdWludDhfdCBQUk9HUkFNX1NURVJFTyA6
IDE7CiB1aW50OF90IFBST0dSQU1fUE9MQVJJVFkgOiAxOwogdWludDhfdCBSSUdIVF9FWUVfUE9M
QVJJVFkgOiAxOwogdWludDhfdCBGUkFNRV9QQUNLRUQgOiAxOwogdWludDhfdCBESVNBQkxFX1NU
RVJFT19EUF9TWU5DIDogMTsKfTsKCmVudW0gY3JjX3NlbGVjdGlvbiB7CgogVU5JT05fV0lORE9X
X0FfQiA9IDAsCiBVTklPTl9XSU5ET1dfQV9OT1RfQiwKIFVOSU9OX1dJTkRPV19OT1RfQV9CLAog
VU5JT05fV0lORE9XX05PVF9BX05PVF9CLAogSU5URVJTRUNUX1dJTkRPV19BX0IsCiBJTlRFUlNF
Q1RfV0lORE9XX0FfTk9UX0IsCiBJTlRFUlNFQ1RfV0lORE9XX05PVF9BX0IsCiBJTlRFUlNFQ1Rf
V0lORE9XX05PVF9BX05PVF9CLAp9OwoKZW51bSBoX3RpbWluZ19kaXZfbW9kZSB7CiBIX1RJTUlO
R19OT19ESVYsCiBIX1RJTUlOR19ESVZfQlkyLAp9OwoKc3RydWN0IGNyY19wYXJhbXMgewoKIHVp
bnQxNl90IHdpbmRvd2FfeF9zdGFydDsKIHVpbnQxNl90IHdpbmRvd2FfeF9lbmQ7CiB1aW50MTZf
dCB3aW5kb3dhX3lfc3RhcnQ7CiB1aW50MTZfdCB3aW5kb3dhX3lfZW5kOwoKIHVpbnQxNl90IHdp
bmRvd2JfeF9zdGFydDsKIHVpbnQxNl90IHdpbmRvd2JfeF9lbmQ7CiB1aW50MTZfdCB3aW5kb3di
X3lfc3RhcnQ7CiB1aW50MTZfdCB3aW5kb3diX3lfZW5kOwoKIGVudW0gY3JjX3NlbGVjdGlvbiBz
ZWxlY3Rpb247CgogYm9vbCBjb250aW51b3VzX21vZGU7CiBib29sIGVuYWJsZTsKfTsKCnN0cnVj
dCB0aW1pbmdfZ2VuZXJhdG9yIHsKIGNvbnN0IHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1bmNz
ICpmdW5jczsKIHN0cnVjdCBkY19iaW9zICpicDsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBp
bnQgaW5zdDsKfTsKCnN0cnVjdCBkY19jcnRjX3RpbWluZzsKCnN0cnVjdCBkcnJfcGFyYW1zOwoK
CnN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yX2Z1bmNzIHsKIGJvb2wgKCp2YWxpZGF0ZV90aW1pbmcp
KHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgICAgIGNvbnN0IHN0cnVjdCBkY19jcnRj
X3RpbWluZyAqdGltaW5nKTsKIHZvaWQgKCpwcm9ncmFtX3RpbWluZykoc3RydWN0IHRpbWluZ19n
ZW5lcmF0b3IgKnRnLAogICAgICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcs
CiAgICAgICBpbnQgdnJlYWR5X29mZnNldCwKICAgICAgIGludCB2c3RhcnR1cF9zdGFydCwKICAg
ICAgIGludCB2dXBkYXRlX29mZnNldCwKICAgICAgIGludCB2dXBkYXRlX3dpZHRoLAogICAgICAg
Y29uc3QgZW51bSBzaWduYWxfdHlwZSBzaWduYWwsCiAgICAgICBib29sIHVzZV92YmlvcwogKTsK
IHZvaWQgKCpzZXR1cF92ZXJ0aWNhbF9pbnRlcnJ1cHQwKSgKICAgc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKm9wdGMsCiAgIHVpbnQzMl90IHN0YXJ0X2xpbmUsCiAgIHVpbnQzMl90IGVuZF9saW5l
KTsKIHZvaWQgKCpzZXR1cF92ZXJ0aWNhbF9pbnRlcnJ1cHQxKSgKICAgc3RydWN0IHRpbWluZ19n
ZW5lcmF0b3IgKm9wdGMsCiAgIHVpbnQzMl90IHN0YXJ0X2xpbmUpOwogdm9pZCAoKnNldHVwX3Zl
cnRpY2FsX2ludGVycnVwdDIpKAogICBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKICAg
dWludDMyX3Qgc3RhcnRfbGluZSk7CgogYm9vbCAoKmVuYWJsZV9jcnRjKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqdGcpOwogYm9vbCAoKmRpc2FibGVfY3J0Yykoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnKTsKIGJvb2wgKCppc19jb3VudGVyX21vdmluZykoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnKTsKIHZvaWQgKCpnZXRfcG9zaXRpb24pKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9y
ICp0ZywKICAgIHN0cnVjdCBjcnRjX3Bvc2l0aW9uICpwb3NpdGlvbik7CgogdWludDMyX3QgKCpn
ZXRfZnJhbWVfY291bnQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiB2b2lkICgqZ2V0
X3NjYW5vdXRwb3MpKAogIHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICB1aW50MzJfdCAq
dl9ibGFua19zdGFydCwKICB1aW50MzJfdCAqdl9ibGFua19lbmQsCiAgdWludDMyX3QgKmhfcG9z
aXRpb24sCiAgdWludDMyX3QgKnZfcG9zaXRpb24pOwogYm9vbCAoKmdldF9vdGdfYWN0aXZlX3Np
emUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogICB1aW50MzJfdCAqb3RnX2FjdGl2
ZV93aWR0aCwKICAgdWludDMyX3QgKm90Z19hY3RpdmVfaGVpZ2h0KTsKIGJvb2wgKCppc19tYXRj
aGluZ190aW1pbmcpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgY29uc3Qgc3RydWN0
IGRjX2NydGNfdGltaW5nICpvdGdfdGltaW5nKTsKIHZvaWQgKCpzZXRfZWFybHlfY29udHJvbCko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAogICAgICAgICAgdWludDMyX3QgZWFybHlfY250
bCk7CiB2b2lkICgqd2FpdF9mb3Jfc3RhdGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywK
ICAgICAgIGVudW0gY3J0Y19zdGF0ZSBzdGF0ZSk7CiB2b2lkICgqc2V0X2JsYW5rKShzdHJ1Y3Qg
dGltaW5nX2dlbmVyYXRvciAqdGcsCiAgICAgYm9vbCBlbmFibGVfYmxhbmtpbmcpOwogYm9vbCAo
KmlzX2JsYW5rZWQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiB2b2lkICgqc2V0X292
ZXJzY2FuX2JsYW5rX2NvbG9yKSAoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBjb25zdCBz
dHJ1Y3QgdGdfY29sb3IgKmNvbG9yKTsKIHZvaWQgKCpzZXRfYmxhbmtfY29sb3IpKHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICp0ZywgY29uc3Qgc3RydWN0IHRnX2NvbG9yICpjb2xvcik7CiB2b2lk
ICgqc2V0X2NvbG9ycykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAogICAgICBjb25zdCBz
dHJ1Y3QgdGdfY29sb3IgKmJsYW5rX2NvbG9yLAogICAgICBjb25zdCBzdHJ1Y3QgdGdfY29sb3Ig
Km92ZXJzY2FuX2NvbG9yKTsKCiB2b2lkICgqZGlzYWJsZV92Z2EpKHN0cnVjdCB0aW1pbmdfZ2Vu
ZXJhdG9yICp0Zyk7CiBib29sICgqZGlkX3RyaWdnZXJlZF9yZXNldF9vY2N1cikoc3RydWN0IHRp
bWluZ19nZW5lcmF0b3IgKnRnKTsKIHZvaWQgKCpzZXR1cF9nbG9iYWxfc3dhcF9sb2NrKShzdHJ1
Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAgICAgICBjb25zdCBzdHJ1Y3QgZGNwX2dzbF9wYXJh
bXMgKmdzbF9wYXJhbXMpOwogdm9pZCAoKnVubG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRnKTsKIHZvaWQgKCpsb2NrKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcpOwogdm9pZCAo
KmxvY2tfZG91YmxlYnVmZmVyX2Rpc2FibGUpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7
CiB2b2lkICgqbG9ja19kb3VibGVidWZmZXJfZW5hYmxlKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv
ciAqdGcpOwogdm9pZCgqdHJpcGxlYnVmZmVyX3VubG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0
b3IgKnRnKTsKIHZvaWQoKnRyaXBsZWJ1ZmZlcl9sb2NrKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRv
ciAqdGcpOwogdm9pZCAoKmVuYWJsZV9yZXNldF90cmlnZ2VyKShzdHJ1Y3QgdGltaW5nX2dlbmVy
YXRvciAqdGcsCiAgICAgICAgIGludCBzb3VyY2VfdGdfaW5zdCk7CiB2b2lkICgqZW5hYmxlX2Ny
dGNfcmVzZXQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgICAgaW50IHNvdXJjZV90
Z19pbnN0LAogICAgICBzdHJ1Y3QgY3J0Y190cmlnZ2VyX2luZm8gKmNydGNfdHApOwogdm9pZCAo
KmRpc2FibGVfcmVzZXRfdHJpZ2dlcikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIHZv
aWQgKCp0ZWFyX2Rvd25fZ2xvYmFsX3N3YXBfbG9jaykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRnKTsKIHZvaWQgKCplbmFibGVfYWR2YW5jZWRfcmVxdWVzdCkoc3RydWN0IHRpbWluZ19nZW5l
cmF0b3IgKnRnLAogICAgIGJvb2wgZW5hYmxlLCBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcg
KnRpbWluZyk7CiB2b2lkICgqc2V0X2Rycikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBj
b25zdCBzdHJ1Y3QgZHJyX3BhcmFtcyAqcGFyYW1zKTsKIHZvaWQgKCpzZXRfc3RhdGljX3NjcmVl
bl9jb250cm9sKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAgICAgIHVpbnQzMl90IGV2
ZW50X3RyaWdnZXJzLAogICAgICB1aW50MzJfdCBudW1fZnJhbWVzKTsKIHZvaWQgKCpzZXRfdGVz
dF9wYXR0ZXJuKSgKICBzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcsCiAgZW51bSBjb250cm9s
bGVyX2RwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCiAgZW51bSBkY19jb2xvcl9kZXB0aCBj
b2xvcl9kZXB0aCk7CgogYm9vbCAoKmFybV92ZXJ0X2ludHIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJh
dG9yICp0ZywgdWludDhfdCB3aWR0aCk7Cgogdm9pZCAoKnByb2dyYW1fZ2xvYmFsX3N5bmMpKHN0
cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywKICAgaW50IHZyZWFkeV9vZmZzZXQsCiAgIGludCB2
c3RhcnR1cF9zdGFydCwKICAgaW50IHZ1cGRhdGVfb2Zmc2V0LAogICBpbnQgdnVwZGF0ZV93aWR0
aCk7CiB2b2lkICgqZW5hYmxlX29wdGNfY2xvY2spKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0
ZywgYm9vbCBlbmFibGUpOwogdm9pZCAoKnByb2dyYW1fc3RlcmVvKShzdHJ1Y3QgdGltaW5nX2dl
bmVyYXRvciAqdGcsCiAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcsIHN0cnVj
dCBjcnRjX3N0ZXJlb19mbGFncyAqZmxhZ3MpOwogYm9vbCAoKmlzX3N0ZXJlb19sZWZ0X2V5ZSko
c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKCiB2b2lkICgqc2V0X2JsYW5rX2RhdGFfZG91
YmxlX2J1ZmZlcikoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLCBib29sIGVuYWJsZSk7Cgog
dm9pZCAoKnRnX2luaXQpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CiBib29sICgqaXNf
dGdfZW5hYmxlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIGJvb2wgKCppc19vcHRj
X3VuZGVyZmxvd19vY2N1cnJlZCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKIHZvaWQg
KCpjbGVhcl9vcHRjX3VuZGVyZmxvdykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKCiB2
b2lkICgqc2V0X2R3Yl9zb3VyY2UpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogIHVp
bnQzMl90IGR3Yl9waXBlX2luc3QpOwoKIHZvaWQgKCpnZXRfb3B0Y19zb3VyY2UpKHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogICB1aW50MzJfdCAqbnVtX29mX2lucHV0X3NlZ21lbnRz
LAogICB1aW50MzJfdCAqc2VnMF9zcmNfc2VsLAogICB1aW50MzJfdCAqc2VnMV9zcmNfc2VsKTsK
CgoKCgogYm9vbCAoKmNvbmZpZ3VyZV9jcmMpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZywK
ICAgICAgICAgIGNvbnN0IHN0cnVjdCBjcmNfcGFyYW1zICpwYXJhbXMpOwoKCgoKCiBib29sICgq
Z2V0X2NyYykoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnLAogICB1aW50MzJfdCAqcl9jciwg
dWludDMyX3QgKmdfeSwgdWludDMyX3QgKmJfY2IpOwoKIHZvaWQgKCpwcm9ncmFtX21hbnVhbF90
cmlnZ2VyKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0Yyk7CiB2b2lkICgqc2V0dXBfbWFu
dWFsX3RyaWdnZXIpKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKIGJvb2wgKCpnZXRf
aHdfdGltaW5nKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKICAgc3RydWN0IGRjX2Ny
dGNfdGltaW5nICpod19jcnRjX3RpbWluZyk7Cgogdm9pZCAoKnNldF92dGdfcGFyYW1zKShzdHJ1
Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKICAgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5n
ICpkY19jcnRjX3RpbWluZyk7Cgogdm9pZCAoKnNldF9kc2NfY29uZmlnKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqb3B0YywKICAgICAgICAgIGVudW0gb3B0Y19kc2NfbW9kZSBkc2NfbW9kZSwK
ICAgICAgICAgIHVpbnQzMl90IGRzY19ieXRlc19wZXJfcGl4ZWwsCiAgICAgICAgICB1aW50MzJf
dCBkc2Nfc2xpY2Vfd2lkdGgpOwogdm9pZCAoKnNldF9vZG1fYnlwYXNzKShzdHJ1Y3QgdGltaW5n
X2dlbmVyYXRvciAqb3B0YywgY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICpkY19jcnRjX3Rp
bWluZyk7CiB2b2lkICgqc2V0X29kbV9jb21iaW5lKShzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAq
b3B0YywgaW50ICpvcHBfaWQsIGludCBvcHBfY250LAogICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcg
KnRpbWluZyk7CiB2b2lkICgqc2V0X2dzbCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMs
IGNvbnN0IHN0cnVjdCBnc2xfcGFyYW1zICpwYXJhbXMpOwogdm9pZCAoKnNldF9nc2xfc291cmNl
X3NlbGVjdCkoc3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKm9wdGMsCiAgIGludCBncm91cF9pZHgs
CiAgIHVpbnQzMl90IGdzbF9yZWFkeV9zaWduYWwpOwp9OwojIDMxICIuL2RyaXZlcnMvZ3B1L2Ry
bS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oIiAyCgojIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbGlua19lbmNv
ZGVyLmgiIDEKIyAzNyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9ody9saW5rX2VuY29kZXIuaCIKc3RydWN0IGRjX2NvbnRleHQ7CnN0cnVjdCBlbmNvZGVy
X3NldF9kcF9waHlfcGF0dGVybl9wYXJhbTsKc3RydWN0IGxpbmtfbXN0X3N0cmVhbV9hbGxvY2F0
aW9uX3RhYmxlOwpzdHJ1Y3QgZGNfbGlua19zZXR0aW5nczsKc3RydWN0IGxpbmtfdHJhaW5pbmdf
c2V0dGluZ3M7CnN0cnVjdCBwaXBlX2N0eDsKCnN0cnVjdCBlbmNvZGVyX2luaXRfZGF0YSB7CiBl
bnVtIGNoYW5uZWxfaWQgY2hhbm5lbDsKIHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgY29ubmVj
dG9yOwogZW51bSBocGRfc291cmNlX2lkIGhwZF9zb3VyY2U7Cgogc3RydWN0IGdyYXBoaWNzX29i
amVjdF9pZCBlbmNvZGVyOwogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIGVudW0gdHJhbnNtaXR0
ZXIgdHJhbnNtaXR0ZXI7Cn07CgpzdHJ1Y3QgZW5jb2Rlcl9mZWF0dXJlX3N1cHBvcnQgewogdW5p
b24gewogIHN0cnVjdCB7CiAgIHVpbnQzMl90IElTX0hCUjJfQ0FQQUJMRToxOwogICB1aW50MzJf
dCBJU19IQlIzX0NBUEFCTEU6MTsKICAgdWludDMyX3QgSVNfVFBTM19DQVBBQkxFOjE7CiAgIHVp
bnQzMl90IElTX1RQUzRfQ0FQQUJMRToxOwogICB1aW50MzJfdCBIRE1JXzZHQl9FTjoxOwogICB1
aW50MzJfdCBEUF9JU19VU0JfQzoxOwogIH0gYml0czsKICB1aW50MzJfdCByYXc7CiB9IGZsYWdz
OwoKIGVudW0gZGNfY29sb3JfZGVwdGggbWF4X2hkbWlfZGVlcF9jb2xvcjsKIHVuc2lnbmVkIGlu
dCBtYXhfaGRtaV9waXhlbF9jbG9jazsKIGJvb2wgaGRtaV95Y2JjcjQyMF9zdXBwb3J0ZWQ7CiBi
b29sIGRwX3ljYmNyNDIwX3N1cHBvcnRlZDsKfTsKCnVuaW9uIGRwY2RfcHNyX2NvbmZpZ3VyYXRp
b24gewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIEVOQUJMRSA6IDE7CiAgdW5zaWduZWQgY2hh
ciBUUkFOU01JVFRFUl9BQ1RJVkVfSU5fUFNSIDogMTsKICB1bnNpZ25lZCBjaGFyIENSQ19WRVJJ
RklDQVRJT04gOiAxOwogIHVuc2lnbmVkIGNoYXIgRlJBTUVfQ0FQVFVSRV9JTkRJQ0FUSU9OIDog
MTsKCiAgdW5zaWduZWQgY2hhciBMSU5FX0NBUFRVUkVfSU5ESUNBVElPTiA6IDE7CgogIHVuc2ln
bmVkIGNoYXIgSVJRX0hQRF9XSVRIX0NSQ19FUlJPUiA6IDE7CiAgdW5zaWduZWQgY2hhciBSRVNF
UlZFRCA6IDI7CiB9IGJpdHM7CiB1bnNpZ25lZCBjaGFyIHJhdzsKfTsKCnVuaW9uIHBzcl9lcnJv
cl9zdGF0dXMgewogc3RydWN0IHsKICB1bnNpZ25lZCBjaGFyIExJTktfQ1JDX0VSUk9SIDoxOwog
IHVuc2lnbmVkIGNoYXIgUkZCX1NUT1JBR0VfRVJST1IgOjE7CiAgdW5zaWduZWQgY2hhciBSRVNF
UlZFRCA6NjsKIH0gYml0czsKIHVuc2lnbmVkIGNoYXIgcmF3Owp9OwoKdW5pb24gcHNyX3Npbmtf
cHNyX3N0YXR1cyB7CiBzdHJ1Y3QgewogdW5zaWduZWQgY2hhciBTSU5LX1NFTEZfUkVGUkVTSF9T
VEFUVVMgOjM7CiB1bnNpZ25lZCBjaGFyIFJFU0VSVkVEIDo1OwogfSBiaXRzOwogdW5zaWduZWQg
Y2hhciByYXc7Cn07CgpzdHJ1Y3QgbGlua19lbmNvZGVyIHsKIGNvbnN0IHN0cnVjdCBsaW5rX2Vu
Y29kZXJfZnVuY3MgKmZ1bmNzOwogaW50MzJfdCBhdXhfY2hhbm5lbF9vZmZzZXQ7CiBzdHJ1Y3Qg
ZGNfY29udGV4dCAqY3R4Owogc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCBpZDsKIHN0cnVjdCBn
cmFwaGljc19vYmplY3RfaWQgY29ubmVjdG9yOwogdWludDMyX3Qgb3V0cHV0X3NpZ25hbHM7CiBl
bnVtIGVuZ2luZV9pZCBwcmVmZXJyZWRfZW5naW5lOwogc3RydWN0IGVuY29kZXJfZmVhdHVyZV9z
dXBwb3J0IGZlYXR1cmVzOwogZW51bSB0cmFuc21pdHRlciB0cmFuc21pdHRlcjsKIGVudW0gaHBk
X3NvdXJjZV9pZCBocGRfc291cmNlOwogYm9vbCB1c2JjX2NvbWJvX3BoeTsKfTsKCnN0cnVjdCBs
aW5rX2VuY19zdGF0ZSB7CgogIHVpbnQzMl90IGRwaHlfZmVjX2VuOwogIHVpbnQzMl90IGRwaHlf
ZmVjX3JlYWR5X3NoYWRvdzsKICB1aW50MzJfdCBkcGh5X2ZlY19hY3RpdmVfc3RhdHVzOwogIHVp
bnQzMl90IGRwX2xpbmtfdHJhaW5pbmdfY29tcGxldGU7Cgp9OwoKc3RydWN0IGxpbmtfZW5jb2Rl
cl9mdW5jcyB7CiB2b2lkICgqcmVhZF9zdGF0ZSkoCiAgIHN0cnVjdCBsaW5rX2VuY29kZXIgKmVu
Yywgc3RydWN0IGxpbmtfZW5jX3N0YXRlICpzKTsKIGJvb2wgKCp2YWxpZGF0ZV9vdXRwdXRfd2l0
aF9zdHJlYW0pKAogIHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywgY29uc3Qgc3RydWN0IGRjX3N0
cmVhbV9zdGF0ZSAqc3RyZWFtKTsKIHZvaWQgKCpod19pbml0KShzdHJ1Y3QgbGlua19lbmNvZGVy
ICplbmMpOwogdm9pZCAoKnNldHVwKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCiAgZW51bSBz
aWduYWxfdHlwZSBzaWduYWwpOwogdm9pZCAoKmVuYWJsZV90bWRzX291dHB1dCkoc3RydWN0IGxp
bmtfZW5jb2RlciAqZW5jLAogIGVudW0gY2xvY2tfc291cmNlX2lkIGNsb2NrX3NvdXJjZSwKICBl
bnVtIGRjX2NvbG9yX2RlcHRoIGNvbG9yX2RlcHRoLAogIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFs
LAogIHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKIHZvaWQgKCplbmFibGVfZHBfb3V0cHV0KShzdHJ1
Y3QgbGlua19lbmNvZGVyICplbmMsCiAgY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxp
bmtfc2V0dGluZ3MsCiAgZW51bSBjbG9ja19zb3VyY2VfaWQgY2xvY2tfc291cmNlKTsKIHZvaWQg
KCplbmFibGVfZHBfbXN0X291dHB1dCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAogIGNvbnN0
IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmdzLAogIGVudW0gY2xvY2tfc291
cmNlX2lkIGNsb2NrX3NvdXJjZSk7CiB2b2lkICgqZW5hYmxlX2x2ZHNfb3V0cHV0KShzdHJ1Y3Qg
bGlua19lbmNvZGVyICplbmMsCiAgZW51bSBjbG9ja19zb3VyY2VfaWQgY2xvY2tfc291cmNlLAog
IHVpbnQzMl90IHBpeGVsX2Nsb2NrKTsKIHZvaWQgKCpkaXNhYmxlX291dHB1dCkoc3RydWN0IGxp
bmtfZW5jb2RlciAqbGlua19lbmMsCiAgZW51bSBzaWduYWxfdHlwZSBzaWduYWwpOwogdm9pZCAo
KmRwX3NldF9sYW5lX3NldHRpbmdzKShzdHJ1Y3QgbGlua19lbmNvZGVyICplbmMsCiAgY29uc3Qg
c3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgKmxpbmtfc2V0dGluZ3MpOwogdm9pZCAoKmRw
X3NldF9waHlfcGF0dGVybikoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jLAogIGNvbnN0IHN0cnVj
dCBlbmNvZGVyX3NldF9kcF9waHlfcGF0dGVybl9wYXJhbSAqcGFyYSk7CiB2b2lkICgqdXBkYXRl
X21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSkoCiAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5j
LAogIGNvbnN0IHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZSAqdGFibGUp
Owogdm9pZCAoKnBzcl9wcm9ncmFtX2RwX2RwaHlfZmFzdF90cmFpbmluZykoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jLAogICBib29sIGV4aXRfbGlua190cmFpbmluZ19yZXF1aXJlZCk7CiB2b2lk
ICgqcHNyX3Byb2dyYW1fc2Vjb25kYXJ5X3BhY2tldCkoc3RydWN0IGxpbmtfZW5jb2RlciAqZW5j
LAogICAgdW5zaWduZWQgaW50IHNkcF90cmFuc21pdF9saW5lX251bV9kZWFkbGluZSk7CiB2b2lk
ICgqY29ubmVjdF9kaWdfYmVfdG9fZmUpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKICBlbnVt
IGVuZ2luZV9pZCBlbmdpbmUsCiAgYm9vbCBjb25uZWN0KTsKIHZvaWQgKCplbmFibGVfaHBkKShz
dHJ1Y3QgbGlua19lbmNvZGVyICplbmMpOwogdm9pZCAoKmRpc2FibGVfaHBkKShzdHJ1Y3QgbGlu
a19lbmNvZGVyICplbmMpOwogYm9vbCAoKmlzX2RpZ19lbmFibGVkKShzdHJ1Y3QgbGlua19lbmNv
ZGVyICplbmMpOwogdW5zaWduZWQgaW50ICgqZ2V0X2RpZ19mcm9udGVuZCkoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jKTsKIHZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgbGlua19lbmNvZGVyICoqZW5j
KTsKCiB2b2lkICgqZmVjX3NldF9lbmFibGUpKHN0cnVjdCBsaW5rX2VuY29kZXIgKmVuYywKICBi
b29sIGVuYWJsZSk7Cgogdm9pZCAoKmZlY19zZXRfcmVhZHkpKHN0cnVjdCBsaW5rX2VuY29kZXIg
KmVuYywKICBib29sIHJlYWR5KTsKCiBib29sICgqZmVjX2lzX2FjdGl2ZSkoc3RydWN0IGxpbmtf
ZW5jb2RlciAqZW5jKTsKIGJvb2wgKCppc19pbl9hbHRfbW9kZSkgKHN0cnVjdCBsaW5rX2VuY29k
ZXIgKmVuYyk7Cgogdm9pZCAoKmdldF9tYXhfbGlua19jYXApKHN0cnVjdCBsaW5rX2VuY29kZXIg
KmVuYywKICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5ncyk7CgogZW51bSBz
aWduYWxfdHlwZSAoKmdldF9kaWdfbW9kZSkoCiAgc3RydWN0IGxpbmtfZW5jb2RlciAqZW5jKTsK
fTsKIyAzMyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9o
d19zZXF1ZW5jZXIuaCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV9zdGF0dXMuaCIgMQojIDI5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfc3RhdHVzLmgiCmVudW0gZGNfc3RhdHVzIHsK
IERDX09LID0gMSwKCiBEQ19OT19DT05UUk9MTEVSX1JFU09VUkNFID0gMiwKIERDX05PX1NUUkVB
TV9FTkNfUkVTT1VSQ0UgPSAzLAogRENfTk9fQ0xPQ0tfU09VUkNFX1JFU09VUkNFID0gNCwKIERD
X0ZBSUxfQ09OVFJPTExFUl9WQUxJREFURSA9IDUsCiBEQ19GQUlMX0VOQ19WQUxJREFURSA9IDYs
CiBEQ19GQUlMX0FUVEFDSF9TVVJGQUNFUyA9IDcsCiBEQ19GQUlMX0RFVEFDSF9TVVJGQUNFUyA9
IDgsCiBEQ19GQUlMX1NVUkZBQ0VfVkFMSURBVEUgPSA5LAogRENfTk9fRFBfTElOS19CQU5EV0lE
VEggPSAxMCwKIERDX0VYQ0VFRF9ET05HTEVfQ0FQID0gMTEsCiBEQ19TVVJGQUNFX1BJWEVMX0ZP
Uk1BVF9VTlNVUFBPUlRFRCA9IDEyLAogRENfRkFJTF9CQU5EV0lEVEhfVkFMSURBVEUgPSAxMywK
IERDX0ZBSUxfU0NBTElORyA9IDE0LAogRENfRkFJTF9EUF9MSU5LX1RSQUlOSU5HID0gMTUsCiBE
Q19GQUlMX0RTQ19WQUxJREFURSA9IDE2LAogRENfTk9fRFNDX1JFU09VUkNFID0gMTcsCiBEQ19G
QUlMX1VOU1VQUE9SVEVEXzEgPSAxOCwKIERDX0ZBSUxfQ0xLX0VYQ0VFRF9NQVggPSAyMSwKIERD
X0ZBSUxfQ0xLX0JFTE9XX01JTiA9IDIyLAogRENfRkFJTF9DTEtfQkVMT1dfQ0ZHX1JFUVVJUkVE
ID0gMjMsCgogRENfRVJST1JfVU5FWFBFQ1RFRCA9IC0xCn07CiMgMzQgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHdfc2VxdWVuY2VyLmgiIDIKCmVudW0g
dmxpbmVfc2VsZWN0IHsKIFZMSU5FMCwKIFZMSU5FMQp9OwoKc3RydWN0IHBpcGVfY3R4OwpzdHJ1
Y3QgZGNfc3RhdGU7CnN0cnVjdCBkY19zdHJlYW1fc3RhdHVzOwpzdHJ1Y3QgZGNfd3JpdGViYWNr
X2luZm87CnN0cnVjdCBkY2h1Yl9pbml0X2RhdGE7CnN0cnVjdCBkY19zdGF0aWNfc2NyZWVuX3Bh
cmFtczsKc3RydWN0IHJlc291cmNlX3Bvb2w7CnN0cnVjdCBkY19waHlfYWRkcl9zcGFjZV9jb25m
aWc7CnN0cnVjdCBkY192aXJ0dWFsX2FkZHJfc3BhY2VfY29uZmlnOwpzdHJ1Y3QgZHBwOwpzdHJ1
Y3QgZGNlX2h3c2VxOwoKc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyB7Cgogdm9pZCAoKmVkcF9w
b3dlcl9jb250cm9sKShzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBlbmFibGUpOwogdm9pZCAo
KmVkcF93YWl0X2Zvcl9ocGRfcmVhZHkpKHN0cnVjdCBkY19saW5rICpsaW5rLCBib29sIHBvd2Vy
X3VwKTsKCgogdm9pZCAoKmluaXRfaHcpKHN0cnVjdCBkYyAqZGMpOwogdm9pZCAoKmVuYWJsZV9h
Y2NlbGVyYXRlZF9tb2RlKShzdHJ1Y3QgZGMgKmRjLAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRl
eHQpOwogZW51bSBkY19zdGF0dXMgKCphcHBseV9jdHhfdG9faHcpKHN0cnVjdCBkYyAqZGMsCiAg
IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CiB2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0
IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiB2b2lkICgqYXBwbHlfY3R4X2Zv
cl9zdXJmYWNlKShzdHJ1Y3QgZGMgKmRjLAogICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpzdHJlYW0sCiAgIGludCBudW1fcGxhbmVzLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwog
dm9pZCAoKnByb2dyYW1fZnJvbnRfZW5kX2Zvcl9jdHgpKHN0cnVjdCBkYyAqZGMsCiAgIHN0cnVj
dCBkY19zdGF0ZSAqY29udGV4dCk7CiB2b2lkICgqdXBkYXRlX3BsYW5lX2FkZHIpKGNvbnN0IHN0
cnVjdCBkYyAqZGMsCiAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogdm9pZCAoKnVwZGF0
ZV9kY2h1Yikoc3RydWN0IGRjZV9od3NlcSAqaHdzLAogICBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRh
ICpkaF9kYXRhKTsKIHZvaWQgKCp3YWl0X2Zvcl9tcGNjX2Rpc2Nvbm5lY3QpKHN0cnVjdCBkYyAq
ZGMsCiAgIHN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9vbCwKICAgc3RydWN0IHBpcGVfY3R4
ICpwaXBlX2N0eCk7CiB2b2lkICgqcHJvZ3JhbV90cmlwbGVidWZmZXIpKGNvbnN0IHN0cnVjdCBk
YyAqZGMsCiAgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgYm9vbCBlbmFibGVUcmlwbGVCdWZm
ZXIpOwogdm9pZCAoKnVwZGF0ZV9wZW5kaW5nX3N0YXR1cykoc3RydWN0IHBpcGVfY3R4ICpwaXBl
X2N0eCk7CgoKIHZvaWQgKCpwaXBlX2NvbnRyb2xfbG9ja19nbG9iYWwpKHN0cnVjdCBkYyAqZGMs
CiAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZSwgYm9vbCBsb2NrKTsKIHZvaWQgKCpwaXBlX2NvbnRy
b2xfbG9jaykoc3RydWN0IGRjICpkYywKICAgc3RydWN0IHBpcGVfY3R4ICpwaXBlLCBib29sIGxv
Y2spOwogdm9pZCAoKnNldF9mbGlwX2NvbnRyb2xfZ3NsKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVf
Y3R4LAogICBib29sIGZsaXBfaW1tZWRpYXRlKTsKCgogdm9pZCAoKmdldF9wb3NpdGlvbikoc3Ry
dWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMsCiAgIHN0cnVjdCBjcnRjX3Bv
c2l0aW9uICpwb3NpdGlvbik7CiBpbnQgKCpnZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyko
c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiB2b2lkICgqZW5hYmxlX3Blcl9mcmFtZV9jcnRj
X3Bvc2l0aW9uX3Jlc2V0KShzdHJ1Y3QgZGMgKmRjLAogICBpbnQgZ3JvdXBfc2l6ZSwgc3RydWN0
IHBpcGVfY3R4ICpncm91cGVkX3BpcGVzW10pOwogdm9pZCAoKmVuYWJsZV90aW1pbmdfc3luY2hy
b25pemF0aW9uKShzdHJ1Y3QgZGMgKmRjLAogICBpbnQgZ3JvdXBfaW5kZXgsIGludCBncm91cF9z
aXplLAogICBzdHJ1Y3QgcGlwZV9jdHggKmdyb3VwZWRfcGlwZXNbXSk7CiB2b2lkICgqc2V0dXBf
cGVyaW9kaWNfaW50ZXJydXB0KShzdHJ1Y3QgZGMgKmRjLAogICBzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4LAogICBlbnVtIHZsaW5lX3NlbGVjdCB2bGluZSk7CiB2b2lkICgqc2V0X2Rycikoc3Ry
dWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsIGludCBudW1fcGlwZXMsCiAgIHVuc2lnbmVkIGludCB2
bWluLCB1bnNpZ25lZCBpbnQgdm1heCwKICAgdW5zaWduZWQgaW50IHZtaWQsIHVuc2lnbmVkIGlu
dCB2bWlkX2ZyYW1lX251bWJlcik7CiB2b2lkICgqc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbCko
c3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAgIGludCBudW1fcGlwZXMsCiAgIGNvbnN0IHN0
cnVjdCBkY19zdGF0aWNfc2NyZWVuX3BhcmFtcyAqZXZlbnRzKTsKCgogdm9pZCAoKmVuYWJsZV9z
dHJlYW0pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogdm9pZCAoKmRpc2FibGVfc3RyZWFt
KShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIHZvaWQgKCpibGFua19zdHJlYW0pKHN0cnVj
dCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogdm9pZCAoKnVuYmxhbmtfc3RyZWFtKShzdHJ1Y3QgcGlw
ZV9jdHggKnBpcGVfY3R4LAogICBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5n
cyk7CgoKIHZvaWQgKCpwcmVwYXJlX2JhbmR3aWR0aCkoc3RydWN0IGRjICpkYywgc3RydWN0IGRj
X3N0YXRlICpjb250ZXh0KTsKIGJvb2wgKCp1cGRhdGVfYmFuZHdpZHRoKShzdHJ1Y3QgZGMgKmRj
LCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwogdm9pZCAoKm9wdGltaXplX2JhbmR3aWR0aCko
c3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKCgogdm9pZCAoKnNldF9h
dm11dGUpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKIHZvaWQgKCpz
ZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZSkoCiAgIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgs
CiAgIGNvbnN0IHVpbnQ4X3QgKmN1c3RvbV9zZHBfbWVzc2FnZSwKICAgdW5zaWduZWQgaW50IHNk
cF9tZXNzYWdlX3NpemUpOwogdm9pZCAoKnVwZGF0ZV9pbmZvX2ZyYW1lKShzdHJ1Y3QgcGlwZV9j
dHggKnBpcGVfY3R4KTsKIHZvaWQgKCpzZXRfZG1kYXRhX2F0dHJpYnV0ZXMpKHN0cnVjdCBwaXBl
X2N0eCAqcGlwZSk7CiB2b2lkICgqcHJvZ3JhbV9kbWRhdGFfZW5naW5lKShzdHJ1Y3QgcGlwZV9j
dHggKnBpcGVfY3R4KTsKIGJvb2wgKCpkbWRhdGFfc3RhdHVzX2RvbmUpKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwoKCiB2b2lkICgqc2V0X2N1cnNvcl9wb3NpdGlvbikoc3RydWN0IHBpcGVf
Y3R4ICpwaXBlKTsKIHZvaWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZSkoc3RydWN0IHBpcGVfY3R4
ICpwaXBlKTsKIHZvaWQgKCpzZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbCkoc3RydWN0IHBpcGVf
Y3R4ICpwaXBlKTsKCgogdm9pZCAoKnByb2dyYW1fZ2FtdXRfcmVtYXApKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwogdm9pZCAoKnByb2dyYW1fb3V0cHV0X2NzYykoc3RydWN0IGRjICpkYywg
c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKICAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcnNw
YWNlLAogICB1aW50MTZfdCAqbWF0cml4LCBpbnQgb3BwX2lkKTsKCgogaW50ICgqaW5pdF9zeXNf
Y3R4KShzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAgIHN0cnVjdCBkYyAqZGMsCiAgIHN0cnVjdCBk
Y19waHlfYWRkcl9zcGFjZV9jb25maWcgKnBhX2NvbmZpZyk7CiB2b2lkICgqaW5pdF92bV9jdHgp
KHN0cnVjdCBkY2VfaHdzZXEgKmh3cywKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3Zp
cnR1YWxfYWRkcl9zcGFjZV9jb25maWcgKnZhX2NvbmZpZywKICAgaW50IHZtaWQpOwoKCiB2b2lk
ICgqdXBkYXRlX3dyaXRlYmFjaykoc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3dyaXRlYmFj
a19pbmZvICp3Yl9pbmZvLAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwogdm9pZCAoKmVu
YWJsZV93cml0ZWJhY2spKHN0cnVjdCBkYyAqZGMsCiAgIHN0cnVjdCBkY193cml0ZWJhY2tfaW5m
byAqd2JfaW5mbywKICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKIHZvaWQgKCpkaXNhYmxl
X3dyaXRlYmFjaykoc3RydWN0IGRjICpkYywKICAgdW5zaWduZWQgaW50IGR3Yl9waXBlX2luc3Qp
OwoKIGJvb2wgKCptbWh1YmJ1Yl93YXJtdXApKHN0cnVjdCBkYyAqZGMsCiAgIHVuc2lnbmVkIGlu
dCBudW1fZHdiLAogICBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gKndiX2luZm8pOwoKCiBlbnVt
IGRjX3N0YXR1cyAoKnNldF9jbG9jaykoc3RydWN0IGRjICpkYywKICAgZW51bSBkY19jbG9ja190
eXBlIGNsb2NrX3R5cGUsCiAgIHVpbnQzMl90IGNsa19raHosIHVpbnQzMl90IHN0ZXBwaW5nKTsK
IHZvaWQgKCpnZXRfY2xvY2spKHN0cnVjdCBkYyAqZGMsIGVudW0gZGNfY2xvY2tfdHlwZSBjbG9j
a190eXBlLAogICBzdHJ1Y3QgZGNfY2xvY2tfY29uZmlnICpjbG9ja19jZmcpOwogdm9pZCAoKm9w
dGltaXplX3B3cl9zdGF0ZSkoY29uc3Qgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3N0YXRl
ICpjb250ZXh0KTsKIHZvaWQgKCpleGl0X29wdGltaXplZF9wd3Jfc3RhdGUpKGNvbnN0IHN0cnVj
dCBkYyAqZGMsCiAgIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CgoKIHZvaWQgKCplbmFibGVf
YXVkaW9fc3RyZWFtKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKIHZvaWQgKCpkaXNhYmxl
X2F1ZGlvX3N0cmVhbSkoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CgoKIHZvaWQgKCpzZXR1
cF9zdGVyZW8pKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIHN0cnVjdCBkYyAqZGMpOwoKCiB2
b2lkICgqbG9nX2h3X3N0YXRlKShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9j
dHggKmxvZ19jdHgpOwogdm9pZCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGRjICpkYywgY2hhciAq
cEJ1ZiwKICAgdW5zaWduZWQgaW50IGJ1ZlNpemUsIHVuc2lnbmVkIGludCBtYXNrKTsKIHZvaWQg
KCpjbGVhcl9zdGF0dXNfYml0cykoc3RydWN0IGRjICpkYywgdW5zaWduZWQgaW50IG1hc2spOwoK
Cn07Cgp2b2lkIGNvbG9yX3NwYWNlX3RvX2JsYWNrX2NvbG9yKAogY29uc3Qgc3RydWN0IGRjICpk
YywKIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3JzcGFjZSwKIHN0cnVjdCB0Z19jb2xvciAqYmxh
Y2tfY29sb3IpOwoKYm9vbCBod3NzX3dhaXRfZm9yX2JsYW5rX2NvbXBsZXRlKAogIHN0cnVjdCB0
aW1pbmdfZ2VuZXJhdG9yICp0Zyk7Cgpjb25zdCB1aW50MTZfdCAqZmluZF9jb2xvcl9tYXRyaXgo
CiAgZW51bSBkY19jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZSwKICB1aW50MzJfdCAqYXJyYXlfc2l6
ZSk7CiMgMzggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5o
IiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9j
b21wcmVzc29yLmgiIDEKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2luYy9jb21wcmVzc29yLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiIDEKIyAyOSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2luY2x1ZGUvYmlvc19wYXJzZXJf
aW50ZXJmYWNlLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RjX2Jpb3NfdHlwZXMuaCIgMQojIDQxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZGNfYmlvc190eXBlcy5oIgpzdHJ1Y3QgZGNfdmJpb3NfZnVuY3Mgewog
dWludDhfdCAoKmdldF9jb25uZWN0b3JzX251bWJlcikoc3RydWN0IGRjX2Jpb3MgKmJpb3MpOwoK
IHN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgKCpnZXRfY29ubmVjdG9yX2lkKSgKICBzdHJ1Y3Qg
ZGNfYmlvcyAqYmlvcywKICB1aW50OF90IGNvbm5lY3Rvcl9pbmRleCk7CiBlbnVtIGJwX3Jlc3Vs
dCAoKmdldF9zcmNfb2JqKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3QgZ3JhcGhp
Y3Nfb2JqZWN0X2lkIG9iamVjdF9pZCwgdWludDMyX3QgaW5kZXgsCiAgc3RydWN0IGdyYXBoaWNz
X29iamVjdF9pZCAqc3JjX29iamVjdF9pZCk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9pMmNfaW5m
bykoCiAgc3RydWN0IGRjX2Jpb3MgKmRjYiwKICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlk
LAogIHN0cnVjdCBncmFwaGljc19vYmplY3RfaTJjX2luZm8gKmluZm8pOwogZW51bSBicF9yZXN1
bHQgKCpnZXRfaHBkX2luZm8pKAogIHN0cnVjdCBkY19iaW9zICpiaW9zLAogIHN0cnVjdCBncmFw
aGljc19vYmplY3RfaWQgaWQsCiAgc3RydWN0IGdyYXBoaWNzX29iamVjdF9ocGRfaW5mbyAqaW5m
byk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9kZXZpY2VfdGFnKSgKICBzdHJ1Y3QgZGNfYmlvcyAq
YmlvcywKICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGNvbm5lY3Rvcl9vYmplY3RfaWQsCiAg
dWludDMyX3QgZGV2aWNlX3RhZ19pbmRleCwKICBzdHJ1Y3QgY29ubmVjdG9yX2RldmljZV90YWdf
aW5mbyAqaW5mbyk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9zcHJlYWRfc3BlY3RydW1faW5mbyko
CiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgZW51bSBhc19zaWduYWxfdHlwZSBzaWduYWwsCiAg
dWludDMyX3QgaW5kZXgsCiAgc3RydWN0IHNwcmVhZF9zcGVjdHJ1bV9pbmZvICpzc19pbmZvKTsK
IHVpbnQzMl90ICgqZ2V0X3NzX2VudHJ5X251bWJlcikoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3Ms
CiAgZW51bSBhc19zaWduYWxfdHlwZSBzaWduYWwpOwogZW51bSBicF9yZXN1bHQgKCpnZXRfZW1i
ZWRkZWRfcGFuZWxfaW5mbykoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgc3RydWN0IGVtYmVk
ZGVkX3BhbmVsX2luZm8gKmluZm8pOwogZW51bSBicF9yZXN1bHQgKCpnZXRfZ3Bpb19waW5faW5m
bykoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgdWludDMyX3QgZ3Bpb19pZCwKICBzdHJ1Y3Qg
Z3Bpb19waW5faW5mbyAqaW5mbyk7CiBlbnVtIGJwX3Jlc3VsdCAoKmdldF9lbmNvZGVyX2NhcF9p
bmZvKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lk
IG9iamVjdF9pZCwKICBzdHJ1Y3QgYnBfZW5jb2Rlcl9jYXBfaW5mbyAqaW5mbyk7CgogYm9vbCAo
KmlzX2FjY2VsZXJhdGVkX21vZGUpKAogIHN0cnVjdCBkY19iaW9zICpiaW9zKTsKIHZvaWQgKCpz
ZXRfc2NyYXRjaF9jcml0aWNhbF9zdGF0ZSkoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgYm9v
bCBzdGF0ZSk7CiBib29sICgqaXNfZGV2aWNlX2lkX3N1cHBvcnRlZCkoCiAgc3RydWN0IGRjX2Jp
b3MgKmJpb3MsCiAgc3RydWN0IGRldmljZV9pZCBpZCk7CgoKCiBlbnVtIGJwX3Jlc3VsdCAoKmVu
Y29kZXJfY29udHJvbCkoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAgc3RydWN0IGJwX2VuY29k
ZXJfY29udHJvbCAqY250bCk7CiBlbnVtIGJwX3Jlc3VsdCAoKnRyYW5zbWl0dGVyX2NvbnRyb2wp
KAogIHN0cnVjdCBkY19iaW9zICpiaW9zLAogIHN0cnVjdCBicF90cmFuc21pdHRlcl9jb250cm9s
ICpjbnRsKTsKIGVudW0gYnBfcmVzdWx0ICgqZW5hYmxlX2NydGMpKAogIHN0cnVjdCBkY19iaW9z
ICpiaW9zLAogIGVudW0gY29udHJvbGxlcl9pZCBpZCwKICBib29sIGVuYWJsZSk7CiBlbnVtIGJw
X3Jlc3VsdCAoKmFkanVzdF9waXhlbF9jbG9jaykoCiAgc3RydWN0IGRjX2Jpb3MgKmJpb3MsCiAg
c3RydWN0IGJwX2FkanVzdF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwogZW51
bSBicF9yZXN1bHQgKCpzZXRfcGl4ZWxfY2xvY2spKAogIHN0cnVjdCBkY19iaW9zICpiaW9zLAog
IHN0cnVjdCBicF9waXhlbF9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwogZW51bSBicF9y
ZXN1bHQgKCpzZXRfZGNlX2Nsb2NrKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3Qg
YnBfc2V0X2RjZV9jbG9ja19wYXJhbWV0ZXJzICpicF9wYXJhbXMpOwogZW51bSBicF9yZXN1bHQg
KCplbmFibGVfc3ByZWFkX3NwZWN0cnVtX29uX3BwbGwpKAogIHN0cnVjdCBkY19iaW9zICpiaW9z
LAogIHN0cnVjdCBicF9zcHJlYWRfc3BlY3RydW1fcGFyYW1ldGVycyAqYnBfcGFyYW1zLAogIGJv
b2wgZW5hYmxlKTsKIGVudW0gYnBfcmVzdWx0ICgqcHJvZ3JhbV9jcnRjX3RpbWluZykoCiAgc3Ry
dWN0IGRjX2Jpb3MgKmJpb3MsCiAgc3RydWN0IGJwX2h3X2NydGNfdGltaW5nX3BhcmFtZXRlcnMg
KmJwX3BhcmFtcyk7CiBlbnVtIGJwX3Jlc3VsdCAoKnByb2dyYW1fZGlzcGxheV9lbmdpbmVfcGxs
KSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBzdHJ1Y3QgYnBfcGl4ZWxfY2xvY2tfcGFyYW1l
dGVycyAqYnBfcGFyYW1zKTsKIGVudW0gYnBfcmVzdWx0ICgqZW5hYmxlX2Rpc3BfcG93ZXJfZ2F0
aW5nKSgKICBzdHJ1Y3QgZGNfYmlvcyAqYmlvcywKICBlbnVtIGNvbnRyb2xsZXJfaWQgY29udHJv
bGxlcl9pZCwKICBlbnVtIGJwX3BpcGVfY29udHJvbF9hY3Rpb24gYWN0aW9uKTsKCiB2b2lkICgq
Ymlvc19wYXJzZXJfZGVzdHJveSkoc3RydWN0IGRjX2Jpb3MgKipkY2IpOwoKIGVudW0gYnBfcmVz
dWx0ICgqZ2V0X2JvYXJkX2xheW91dF9pbmZvKSgKICBzdHJ1Y3QgZGNfYmlvcyAqZGNiLAogIHN0
cnVjdCBib2FyZF9sYXlvdXRfaW5mbyAqYm9hcmRfbGF5b3V0X2luZm8pOwp9OwoKc3RydWN0IGJp
b3NfcmVnaXN0ZXJzIHsKIHVpbnQzMl90IEJJT1NfU0NSQVRDSF8zOwogdWludDMyX3QgQklPU19T
Q1JBVENIXzY7Cn07CgpzdHJ1Y3QgZGNfYmlvcyB7CiBjb25zdCBzdHJ1Y3QgZGNfdmJpb3NfZnVu
Y3MgKmZ1bmNzOwoKIHVpbnQ4X3QgKmJpb3M7CiB1aW50MzJfdCBiaW9zX3NpemU7CgogdWludDhf
dCAqYmlvc19sb2NhbF9pbWFnZTsKCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogY29uc3Qgc3Ry
dWN0IGJpb3NfcmVnaXN0ZXJzICpyZWdzOwogc3RydWN0IGludGVncmF0ZWRfaW5mbyAqaW50ZWdy
YXRlZF9pbmZvOwogc3RydWN0IGRjX2Zpcm13YXJlX2luZm8gZndfaW5mbzsKIGJvb2wgZndfaW5m
b192YWxpZDsKfTsKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2luY2x1ZGUvYmlvc19wYXJzZXJfaW50ZXJmYWNlLmgiIDIKCnN0cnVjdCBiaW9zX3BhcnNlcjsK
CnN0cnVjdCBicF9pbml0X2RhdGEgewogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIHVpbnQ4X3Qg
KmJpb3M7Cn07CgpzdHJ1Y3QgZGNfYmlvcyAqZGFsX2Jpb3NfcGFyc2VyX2NyZWF0ZSgKIHN0cnVj
dCBicF9pbml0X2RhdGEgKmluaXQsCiBlbnVtIGRjZV92ZXJzaW9uIGRjZV92ZXJzaW9uKTsKCnZv
aWQgZGFsX2Jpb3NfcGFyc2VyX2Rlc3Ryb3koc3RydWN0IGRjX2Jpb3MgKipkY2IpOwojIDMxICIu
L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvbXByZXNzb3Iu
aCIgMgoKZW51bSBmYmNfY29tcHJlc3NfcmF0aW8gewogRkJDX0NPTVBSRVNTX1JBVElPX0lOVkFM
SUQgPSAwLAogRkJDX0NPTVBSRVNTX1JBVElPXzFUTzEgPSAxLAogRkJDX0NPTVBSRVNTX1JBVElP
XzJUTzEgPSAyLAogRkJDX0NPTVBSRVNTX1JBVElPXzRUTzEgPSA0LAogRkJDX0NPTVBSRVNTX1JB
VElPXzhUTzEgPSA4LAp9OwoKdW5pb24gZmJjX3BoeXNpY2FsX2FkZHJlc3Mgewogc3RydWN0IHsK
ICB1aW50MzJfdCBsb3dfcGFydDsKICBpbnQzMl90IGhpZ2hfcGFydDsKIH0gYWRkcjsKIHVpbnQ2
NF90IHF1YWRfcGFydDsKfTsKCnN0cnVjdCBjb21wcl9hZGRyX2FuZF9waXRjaF9wYXJhbXMgewoK
IHVpbnQzMl90IGluc3Q7CiB1aW50MzJfdCBzb3VyY2Vfdmlld193aWR0aDsKIHVpbnQzMl90IHNv
dXJjZV92aWV3X2hlaWdodDsKfTsKCmVudW0gZmJjX2h3X21heF9yZXNvbHV0aW9uX3N1cHBvcnRl
ZCB7CiBGQkNfTUFYX1ggPSAzODQwLAogRkJDX01BWF9ZID0gMjQwMCwKIEZCQ19NQVhfWF9TRyA9
IDE5MjAsCiBGQkNfTUFYX1lfU0cgPSAxMDgwLAp9OwoKc3RydWN0IGNvbXByZXNzb3I7CgpzdHJ1
Y3QgY29tcHJlc3Nvcl9mdW5jcyB7Cgogdm9pZCAoKnBvd2VyX3VwX2ZiYykoc3RydWN0IGNvbXBy
ZXNzb3IgKmNwKTsKIHZvaWQgKCplbmFibGVfZmJjKShzdHJ1Y3QgY29tcHJlc3NvciAqY3AsCiAg
c3RydWN0IGNvbXByX2FkZHJfYW5kX3BpdGNoX3BhcmFtcyAqcGFyYW1zKTsKIHZvaWQgKCpkaXNh
YmxlX2ZiYykoc3RydWN0IGNvbXByZXNzb3IgKmNwKTsKIHZvaWQgKCpzZXRfZmJjX2ludmFsaWRh
dGlvbl90cmlnZ2Vycykoc3RydWN0IGNvbXByZXNzb3IgKmNwLAogIHVpbnQzMl90IGZiY190cmln
Z2VyKTsKIHZvaWQgKCpzdXJmYWNlX2FkZHJlc3NfYW5kX3BpdGNoKSgKICBzdHJ1Y3QgY29tcHJl
c3NvciAqY3AsCiAgc3RydWN0IGNvbXByX2FkZHJfYW5kX3BpdGNoX3BhcmFtcyAqcGFyYW1zKTsK
IGJvb2wgKCppc19mYmNfZW5hYmxlZF9pbl9odykoc3RydWN0IGNvbXByZXNzb3IgKmNwLAogIHVp
bnQzMl90ICpmYmNfbWFwcGVkX2NydGNfaWQpOwp9OwpzdHJ1Y3QgY29tcHJlc3NvciB7CiBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4OwoKIHVpbnQzMl90IGF0dGFjaGVkX2luc3Q7CiBib29sIGlzX2Vu
YWJsZWQ7CiBjb25zdCBzdHJ1Y3QgY29tcHJlc3Nvcl9mdW5jcyAqZnVuY3M7CiB1bmlvbiB7CiAg
dWludDMyX3QgcmF3OwogIHN0cnVjdCB7CiAgIHVpbnQzMl90IEZCQ19TVVBQT1JUOjE7CiAgIHVp
bnQzMl90IEZCX1BPT0w6MTsKICAgdWludDMyX3QgRFlOQU1JQ19BTExPQzoxOwogICB1aW50MzJf
dCBMUFRfU1VQUE9SVDoxOwogICB1aW50MzJfdCBMUFRfTUNfQ09ORklHOjE7CiAgIHVpbnQzMl90
IERVTU1ZX0JBQ0tFTkQ6MTsKICAgdWludDMyX3QgQ0xLX0dBVElOR19ESVNBQkxFRDoxOwoKICB9
IGJpdHM7CiB9IG9wdGlvbnM7CgogdW5pb24gZmJjX3BoeXNpY2FsX2FkZHJlc3MgY29tcHJfc3Vy
ZmFjZV9hZGRyZXNzOwoKIHVpbnQzMl90IGVtYmVkZGVkX3BhbmVsX2hfc2l6ZTsKIHVpbnQzMl90
IGVtYmVkZGVkX3BhbmVsX3Zfc2l6ZTsKIHVpbnQzMl90IG1lbW9yeV9idXNfd2lkdGg7CiB1aW50
MzJfdCBiYW5rc19udW07CiB1aW50MzJfdCByYXdfc2l6ZTsKIHVpbnQzMl90IGNoYW5uZWxfaW50
ZXJsZWF2ZV9zaXplOwogdWludDMyX3QgZHJhbV9jaGFubmVsc19udW07CgogdWludDMyX3QgYWxs
b2NhdGVkX3NpemU7CiB1aW50MzJfdCBwcmVmZXJyZWRfcmVxdWVzdGVkX3NpemU7CiB1aW50MzJf
dCBscHRfY2hhbm5lbHNfbnVtOwogZW51bSBmYmNfY29tcHJlc3NfcmF0aW8gbWluX2NvbXByZXNz
X3JhdGlvOwp9OwoKc3RydWN0IGZiY19pbnB1dF9pbmZvIHsKIGJvb2wgZHluYW1pY19mYmNfYnVm
ZmVyX2FsbG9jOwogdW5zaWduZWQgaW50IHNvdXJjZV92aWV3X3dpZHRoOwogdW5zaWduZWQgaW50
IHNvdXJjZV92aWV3X2hlaWdodDsKIHVuc2lnbmVkIGludCBudW1fb2ZfYWN0aXZlX3RhcmdldHM7
Cn07CgoKc3RydWN0IGZiY19yZXF1ZXN0ZWRfY29tcHJlc3NlZF9zaXplIHsKIHVuc2lnbmVkIGlu
dCBwcmVmZXJyZWRfc2l6ZTsKIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfc2l6ZV9hbGlnbm1lbnQ7
CiB1bnNpZ25lZCBpbnQgbWluX3NpemU7CiB1bnNpZ25lZCBpbnQgbWluX3NpemVfYWxpZ25tZW50
OwogdW5pb24gewogIHN0cnVjdCB7CgogICB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX211c3RfYmVf
ZnJhbWVidWZmZXJfcG9vbCA6IDE7CgogICB1bnNpZ25lZCBpbnQgbWluX211c3RfYmVfZnJhbWVi
dWZmZXJfcG9vbCA6IDE7CiAgfSBiaXRzOwogIHVuc2lnbmVkIGludCBmbGFnczsKIH07Cn07CiMg
MzkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kYy5oIiAyCiMg
MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9kbWN1
LmgiIDEKIyAyOCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2lu
Yy9ody9kbWN1LmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RtX3NlcnZpY2VzX3R5cGVzLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9kbWN1LmgiIDIKCgoKCgoKZW51bSBkbWN1X3N0YXRl
IHsKIERNQ1VfVU5MT0FERUQgPSAwLAogRE1DVV9MT0FERURfVU5JTklUSUFMSVpFRCA9IDEsCiBE
TUNVX1JVTk5JTkcgPSAyLAp9OwoKc3RydWN0IGRtY3VfdmVyc2lvbiB7CiB1bnNpZ25lZCBpbnQg
aW50ZXJmYWNlX3ZlcnNpb247CiB1bnNpZ25lZCBpbnQgYWJtX3ZlcnNpb247CiB1bnNpZ25lZCBp
bnQgcHNyX3ZlcnNpb247CiB1bnNpZ25lZCBpbnQgYnVpbGRfdmVyc2lvbjsKfTsKCnN0cnVjdCBk
bWN1IHsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBjb25zdCBzdHJ1Y3QgZG1jdV9mdW5jcyAq
ZnVuY3M7CgogZW51bSBkbWN1X3N0YXRlIGRtY3Vfc3RhdGU7CiBzdHJ1Y3QgZG1jdV92ZXJzaW9u
IGRtY3VfdmVyc2lvbjsKIHVuc2lnbmVkIGludCBjYWNoZWRfd2FpdF9sb29wX251bWJlcjsKIHVp
bnQzMl90IHBzcF92ZXJzaW9uOwogYm9vbCBhdXRvX2xvYWRfZG1jdTsKfTsKCnN0cnVjdCBkbWN1
X2Z1bmNzIHsKIGJvb2wgKCpkbWN1X2luaXQpKHN0cnVjdCBkbWN1ICpkbWN1KTsKIGJvb2wgKCps
b2FkX2lyYW0pKHN0cnVjdCBkbWN1ICpkbWN1LAogICB1bnNpZ25lZCBpbnQgc3RhcnRfb2Zmc2V0
LAogICBjb25zdCBjaGFyICpzcmMsCiAgIHVuc2lnbmVkIGludCBieXRlcyk7CiB2b2lkICgqc2V0
X3Bzcl9lbmFibGUpKHN0cnVjdCBkbWN1ICpkbWN1LCBib29sIGVuYWJsZSwgYm9vbCB3YWl0KTsK
IGJvb2wgKCpzZXR1cF9wc3IpKHN0cnVjdCBkbWN1ICpkbWN1LAogICBzdHJ1Y3QgZGNfbGluayAq
bGluaywKICAgc3RydWN0IHBzcl9jb250ZXh0ICpwc3JfY29udGV4dCk7CiB2b2lkICgqZ2V0X3Bz
cl9zdGF0ZSkoc3RydWN0IGRtY3UgKmRtY3UsIHVpbnQzMl90ICpwc3Jfc3RhdGUpOwogdm9pZCAo
KnNldF9wc3Jfd2FpdF9sb29wKShzdHJ1Y3QgZG1jdSAqZG1jdSwKICAgdW5zaWduZWQgaW50IHdh
aXRfbG9vcF9udW1iZXIpOwogdm9pZCAoKmdldF9wc3Jfd2FpdF9sb29wKShzdHJ1Y3QgZG1jdSAq
ZG1jdSwKICAgdW5zaWduZWQgaW50ICpwc3Jfd2FpdF9sb29wX251bWJlcik7CiBib29sICgqaXNf
ZG1jdV9pbml0aWFsaXplZCkoc3RydWN0IGRtY3UgKmRtY3UpOwogYm9vbCAoKmxvY2tfcGh5KShz
dHJ1Y3QgZG1jdSAqZG1jdSk7CiBib29sICgqdW5sb2NrX3BoeSkoc3RydWN0IGRtY3UgKmRtY3Up
Owp9OwojIDQwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMu
aCIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwv
ZGlzcGxheV9tb2RlX2xpYi5oIiAxCiMgMjkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2xpYi5oIgojIDEgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLmgiIDEKIyAz
MCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kbWxfY29t
bW9uX2RlZnMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvZG1sL2RjX2ZlYXR1cmVzLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2RtbC9kbWxfY29tbW9uX2RlZnMuaCIgMgojIDEgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX3N0cnVjdHMu
aCIgMQojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1s
L2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiCnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX3ZvbHRhZ2Vf
c2NhbGluZ19zdCB2b2x0YWdlX3NjYWxpbmdfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX3Nv
Y19ib3VuZGluZ19ib3hfc3Qgc29jX2JvdW5kaW5nX2JveF9zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zj
c19kcGlfaXBfcGFyYW1zX3N0IGlwX3BhcmFtc19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
ZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNfc3QgZGlzcGxheV9waXBlX3NvdXJjZV9wYXJhbXNf
c3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCBkaXNw
bGF5X291dHB1dF9wYXJhbXNfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX3NjYWxlcl9yYXRp
b19kZXB0aF9zdCBzY2FsZXJfcmF0aW9fZGVwdGhfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBp
X3NjYWxlcl90YXBzX3N0IHNjYWxlcl90YXBzX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9k
aXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0Owp0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3BpcGVfcGFyYW1zX3N0IGRpc3BsYXlfcGlw
ZV9wYXJhbXNfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfY2xvY2tzX2FuZF9j
Zmdfc3QgZGlzcGxheV9jbG9ja3NfYW5kX2NmZ19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3Q7CnR5
cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9taXNjX3BhcmFtc19zdCBkaXNw
bGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3Bs
YXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1z
X3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RhdGFfcnFfZGxnX3BhcmFtc19z
dCBkaXNwbGF5X2RhdGFfcnFfZGxnX3BhcmFtc19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlf
ZGlzcGxheV9ycV9kbGdfcGFyYW1zX3N0IGRpc3BsYXlfcnFfZGxnX3BhcmFtc19zdDsKdHlwZWRl
ZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0IGRpc3BsYXlfcnFf
c2l6aW5nX3BhcmFtc19zdDsKdHlwZWRlZiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9taXNj
X3BhcmFtc19zdCBkaXNwbGF5X3JxX21pc2NfcGFyYW1zX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNz
X2RwaV9kaXNwbGF5X3JxX3BhcmFtc19zdCBkaXNwbGF5X3JxX3BhcmFtc19zdDsKdHlwZWRlZiBz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCBkaXNwbGF5X2RsZ19yZWdzX3N0Owp0
eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0IGRpc3BsYXlfdHR1X3Jl
Z3Nfc3Q7CnR5cGVkZWYgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZGF0YV9ycV9yZWdzX3N0IGRp
c3BsYXlfZGF0YV9ycV9yZWdzX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3Jx
X3JlZ3Nfc3QgZGlzcGxheV9ycV9yZWdzX3N0Owp0eXBlZGVmIHN0cnVjdCBfdmNzX2RwaV9kaXNw
bGF5X2RsZ19zeXNfcGFyYW1zX3N0IGRpc3BsYXlfZGxnX3N5c19wYXJhbXNfc3Q7CnR5cGVkZWYg
c3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfYXJiX3BhcmFtc19zdCBkaXNwbGF5X2FyYl9wYXJhbXNf
c3Q7CgpzdHJ1Y3QgX3Zjc19kcGlfdm9sdGFnZV9zY2FsaW5nX3N0IHsKIGludCBzdGF0ZTsKIGRv
dWJsZSBkc2NjbGtfbWh6OwogZG91YmxlIGRjZmNsa19taHo7CiBkb3VibGUgc29jY2xrX21oejsK
IGRvdWJsZSBwaHljbGtfZDE4X21oejsKIGRvdWJsZSBkcmFtX3NwZWVkX210czsKIGRvdWJsZSBm
YWJyaWNjbGtfbWh6OwogZG91YmxlIGRpc3BjbGtfbWh6OwogZG91YmxlIHBoeWNsa19taHo7CiBk
b3VibGUgZHBwY2xrX21oejsKIGRvdWJsZSBkdGJjbGtfbWh6Owp9OwoKc3RydWN0IF92Y3NfZHBp
X3NvY19ib3VuZGluZ19ib3hfc3QgewogZG91YmxlIHNyX2V4aXRfdGltZV91czsKIGRvdWJsZSBz
cl9lbnRlcl9wbHVzX2V4aXRfdGltZV91czsKIGRvdWJsZSB1cmdlbnRfbGF0ZW5jeV91czsKIGRv
dWJsZSB1cmdlbnRfbGF0ZW5jeV9waXhlbF9kYXRhX29ubHlfdXM7CiBkb3VibGUgdXJnZW50X2xh
dGVuY3lfcGl4ZWxfbWl4ZWRfd2l0aF92bV9kYXRhX3VzOwogZG91YmxlIHVyZ2VudF9sYXRlbmN5
X3ZtX2RhdGFfb25seV91czsKIGRvdWJsZSB3cml0ZWJhY2tfbGF0ZW5jeV91czsKIGRvdWJsZSBp
ZGVhbF9kcmFtX2J3X2FmdGVyX3VyZ2VudF9wZXJjZW50OwogZG91YmxlIHBjdF9pZGVhbF9kcmFt
X3NkcF9id19hZnRlcl91cmdlbnRfcGl4ZWxfb25seTsKIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9z
ZHBfYndfYWZ0ZXJfdXJnZW50X3BpeGVsX2FuZF92bTsKIGRvdWJsZSBwY3RfaWRlYWxfZHJhbV9z
ZHBfYndfYWZ0ZXJfdXJnZW50X3ZtX29ubHk7CiBkb3VibGUgbWF4X2F2Z19zZHBfYndfdXNlX25v
cm1hbF9wZXJjZW50OwogZG91YmxlIG1heF9hdmdfZHJhbV9id191c2Vfbm9ybWFsX3BlcmNlbnQ7
CiB1bnNpZ25lZCBpbnQgbWF4X3JlcXVlc3Rfc2l6ZV9ieXRlczsKIGRvdWJsZSBkb3duc3ByZWFk
X3BlcmNlbnQ7CiBkb3VibGUgZHJhbV9wYWdlX29wZW5fdGltZV9uczsKIGRvdWJsZSBkcmFtX3J3
X3R1cm5hcm91bmRfdGltZV9uczsKIGRvdWJsZSBkcmFtX3JldHVybl9idWZmZXJfcGVyX2NoYW5u
ZWxfYnl0ZXM7CiBkb3VibGUgZHJhbV9jaGFubmVsX3dpZHRoX2J5dGVzOwogZG91YmxlIGZhYnJp
Y19kYXRhcGF0aF90b19kY25fZGF0YV9yZXR1cm5fYnl0ZXM7CiBkb3VibGUgZGNuX2Rvd25zcHJl
YWRfcGVyY2VudDsKIGRvdWJsZSBkaXNwY2xrX2RwcGNsa192Y29fc3BlZWRfbWh6OwogZG91Ymxl
IGRmc192Y29fcGVyaW9kX3BzOwogdW5zaWduZWQgaW50IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0
dXJuX3Blcl9jaGFubmVsX3BpeGVsX29ubHlfYnl0ZXM7CiB1bnNpZ25lZCBpbnQgdXJnZW50X291
dF9vZl9vcmRlcl9yZXR1cm5fcGVyX2NoYW5uZWxfcGl4ZWxfYW5kX3ZtX2J5dGVzOwogdW5zaWdu
ZWQgaW50IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsX3ZtX29ubHlfYnl0
ZXM7CiB1bnNpZ25lZCBpbnQgcm91bmRfdHJpcF9waW5nX2xhdGVuY3lfZGNmY2xrX2N5Y2xlczsK
IHVuc2lnbmVkIGludCB1cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbF9ieXRl
czsKIHVuc2lnbmVkIGludCBjaGFubmVsX2ludGVybGVhdmVfYnl0ZXM7CiB1bnNpZ25lZCBpbnQg
bnVtX2JhbmtzOwogdW5zaWduZWQgaW50IG51bV9jaGFuczsKIHVuc2lnbmVkIGludCB2bW1fcGFn
ZV9zaXplX2J5dGVzOwogdW5zaWduZWQgaW50IGhvc3R2bV9taW5fcGFnZV9zaXplX2J5dGVzOwog
dW5zaWduZWQgaW50IGdwdXZtX21pbl9wYWdlX3NpemVfYnl0ZXM7CiBkb3VibGUgZHJhbV9jbG9j
a19jaGFuZ2VfbGF0ZW5jeV91czsKIGRvdWJsZSBkdW1teV9wc3RhdGVfbGF0ZW5jeV91czsKIGRv
dWJsZSB3cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5jeV91czsKIHVuc2lnbmVkIGlu
dCByZXR1cm5fYnVzX3dpZHRoX2J5dGVzOwogdW5zaWduZWQgaW50IHZvbHRhZ2Vfb3ZlcnJpZGU7
CiBkb3VibGUgeGZjX2J1c190cmFuc3BvcnRfdGltZV91czsKIGRvdWJsZSB4ZmNfeGJ1Zl9sYXRl
bmN5X3RvbGVyYW5jZV91czsKIGludCB1c2VfdXJnZW50X2J1cnN0X2J3OwogdW5zaWduZWQgaW50
IG51bV9zdGF0ZXM7CiBzdHJ1Y3QgX3Zjc19kcGlfdm9sdGFnZV9zY2FsaW5nX3N0IGNsb2NrX2xp
bWl0c1s4XTsKIGJvb2wgZG9fdXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudDsKIGRvdWJsZSB1cmdl
bnRfbGF0ZW5jeV9hZGp1c3RtZW50X2ZhYnJpY19jbG9ja19jb21wb25lbnRfdXM7CiBkb3VibGUg
dXJnZW50X2xhdGVuY3lfYWRqdXN0bWVudF9mYWJyaWNfY2xvY2tfcmVmZXJlbmNlX21oejsKIGJv
b2wgZGlzYWJsZV9kcmFtX2Nsb2NrX2NoYW5nZV92YWN0aXZlX3N1cHBvcnQ7Cn07CgpzdHJ1Y3Qg
X3Zjc19kcGlfaXBfcGFyYW1zX3N0IHsKIGJvb2wgZ3B1dm1fZW5hYmxlOwogYm9vbCBob3N0dm1f
ZW5hYmxlOwogdW5zaWduZWQgaW50IGdwdXZtX21heF9wYWdlX3RhYmxlX2xldmVsczsKIHVuc2ln
bmVkIGludCBob3N0dm1fbWF4X3BhZ2VfdGFibGVfbGV2ZWxzOwogdW5zaWduZWQgaW50IGhvc3R2
bV9jYWNoZWRfcGFnZV90YWJsZV9sZXZlbHM7CiB1bnNpZ25lZCBpbnQgcHRlX2dyb3VwX3NpemVf
Ynl0ZXM7CiB1bnNpZ25lZCBpbnQgbWF4X2ludGVyX2Rjbl90aWxlX3JlcGVhdGVyczsKIHVuc2ln
bmVkIGludCBudW1fZHNjOwogdW5zaWduZWQgaW50IG9kbV9jYXBhYmxlOwogdW5zaWduZWQgaW50
IHJvYl9idWZmZXJfc2l6ZV9rYnl0ZXM7CiB1bnNpZ25lZCBpbnQgZGV0X2J1ZmZlcl9zaXplX2ti
eXRlczsKIHVuc2lnbmVkIGludCBkcHRlX2J1ZmZlcl9zaXplX2luX3B0ZV9yZXFzX2x1bWE7CiB1
bnNpZ25lZCBpbnQgZHB0ZV9idWZmZXJfc2l6ZV9pbl9wdGVfcmVxc19jaHJvbWE7CiB1bnNpZ25l
ZCBpbnQgcGRlX3Byb2NfYnVmZmVyX3NpemVfNjRrX3JlcXM7CiB1bnNpZ25lZCBpbnQgZHBwX291
dHB1dF9idWZmZXJfcGl4ZWxzOwogdW5zaWduZWQgaW50IG9wcF9vdXRwdXRfYnVmZmVyX2xpbmVz
OwogdW5zaWduZWQgaW50IHBpeGVsX2NodW5rX3NpemVfa2J5dGVzOwogdW5zaWduZWQgY2hhciBw
dGVfZW5hYmxlOwogdW5zaWduZWQgaW50IHB0ZV9jaHVua19zaXplX2tieXRlczsKIHVuc2lnbmVk
IGludCBtZXRhX2NodW5rX3NpemVfa2J5dGVzOwogdW5zaWduZWQgaW50IHdyaXRlYmFja19jaHVu
a19zaXplX2tieXRlczsKIHVuc2lnbmVkIGludCBsaW5lX2J1ZmZlcl9zaXplX2JpdHM7CiB1bnNp
Z25lZCBpbnQgbWF4X2xpbmVfYnVmZmVyX2xpbmVzOwogdW5zaWduZWQgaW50IHdyaXRlYmFja19s
dW1hX2J1ZmZlcl9zaXplX2tieXRlczsKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfY2hyb21hX2J1
ZmZlcl9zaXplX2tieXRlczsKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfY2hyb21hX2xpbmVfYnVm
ZmVyX3dpZHRoX3BpeGVsczsKCiB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2ludGVyZmFjZV9idWZm
ZXJfc2l6ZV9rYnl0ZXM7CiB1bnNpZ25lZCBpbnQgd3JpdGViYWNrX2xpbmVfYnVmZmVyX2J1ZmZl
cl9zaXplOwoKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfMTBicGM0MjBfc3VwcG9ydGVkOwogZG91
YmxlIHdyaXRlYmFja19tYXhfaHNjbF9yYXRpbzsKIGRvdWJsZSB3cml0ZWJhY2tfbWF4X3ZzY2xf
cmF0aW87CiBkb3VibGUgd3JpdGViYWNrX21pbl9oc2NsX3JhdGlvOwogZG91YmxlIHdyaXRlYmFj
a19taW5fdnNjbF9yYXRpbzsKIHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbWF4X2hzY2xfdGFwczsK
IHVuc2lnbmVkIGludCB3cml0ZWJhY2tfbWF4X3ZzY2xfdGFwczsKIHVuc2lnbmVkIGludCB3cml0
ZWJhY2tfbGluZV9idWZmZXJfbHVtYV9idWZmZXJfc2l6ZTsKIHVuc2lnbmVkIGludCB3cml0ZWJh
Y2tfbGluZV9idWZmZXJfY2hyb21hX2J1ZmZlcl9zaXplOwoKIHVuc2lnbmVkIGludCBtYXhfcGFn
ZV90YWJsZV9sZXZlbHM7CiB1bnNpZ25lZCBpbnQgbWF4X251bV9kcHA7CiB1bnNpZ25lZCBpbnQg
bWF4X251bV9vdGc7CiB1bnNpZ25lZCBpbnQgY3Vyc29yX2NodW5rX3NpemU7CiB1bnNpZ25lZCBp
bnQgY3Vyc29yX2J1ZmZlcl9zaXplOwogdW5zaWduZWQgaW50IG1heF9udW1fd2I7CiB1bnNpZ25l
ZCBpbnQgbWF4X2RjaHViX3BzY2xfYndfcGl4X3Blcl9jbGs7CiB1bnNpZ25lZCBpbnQgbWF4X3Bz
Y2xfbGJfYndfcGl4X3Blcl9jbGs7CiB1bnNpZ25lZCBpbnQgbWF4X2xiX3ZzY2xfYndfcGl4X3Bl
cl9jbGs7CiB1bnNpZ25lZCBpbnQgbWF4X3ZzY2xfaHNjbF9id19waXhfcGVyX2NsazsKIGRvdWJs
ZSBtYXhfaHNjbF9yYXRpbzsKIGRvdWJsZSBtYXhfdnNjbF9yYXRpbzsKIHVuc2lnbmVkIGludCBo
c2NsX211bHRzOwogdW5zaWduZWQgaW50IHZzY2xfbXVsdHM7CiB1bnNpZ25lZCBpbnQgbWF4X2hz
Y2xfdGFwczsKIHVuc2lnbmVkIGludCBtYXhfdnNjbF90YXBzOwogdW5zaWduZWQgaW50IHhmY19z
dXBwb3J0ZWQ7CiB1bnNpZ25lZCBpbnQgcHRvaV9zdXBwb3J0ZWQ7CiB1bnNpZ25lZCBpbnQgZ2Z4
N19jb21wYXRfdGlsaW5nX3N1cHBvcnRlZDsKCiBib29sIG9kbV9jb21iaW5lXzR0bzFfc3VwcG9y
dGVkOwogYm9vbCBkeW5hbWljX21ldGFkYXRhX3ZtX2VuYWJsZWQ7CiB1bnNpZ25lZCBpbnQgbWF4
X251bV9oZG1pX2ZybF9vdXRwdXRzOwoKIHVuc2lnbmVkIGludCB4ZmNfZmlsbF9jb25zdGFudF9i
eXRlczsKIGRvdWJsZSBkaXNwY2xrX3JhbXBfbWFyZ2luX3BlcmNlbnQ7CiBkb3VibGUgeGZjX2Zp
bGxfYndfb3ZlcmhlYWRfcGVyY2VudDsKIGRvdWJsZSB1bmRlcnNjYW5fZmFjdG9yOwogdW5zaWdu
ZWQgaW50IG1pbl92YmxhbmtfbGluZXM7CiB1bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3N1YnRv
dGFsOwogdW5zaWduZWQgaW50IGRpc3BjbGtfZGVsYXlfc3VidG90YWw7CiB1bnNpZ25lZCBpbnQg
ZGNmY2xrX2NzdGF0ZV9sYXRlbmN5OwogdW5zaWduZWQgaW50IGRwcGNsa19kZWxheV9zY2w7CiB1
bnNpZ25lZCBpbnQgZHBwY2xrX2RlbGF5X3NjbF9sYl9vbmx5OwogdW5zaWduZWQgaW50IGRwcGNs
a19kZWxheV9jbnZjX2Zvcm1hdHRlcjsKIHVuc2lnbmVkIGludCBkcHBjbGtfZGVsYXlfY252Y19j
dXJzb3I7CiB1bnNpZ25lZCBpbnQgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwogdW5zaWduZWQg
aW50IGxpbmVfYnVmZmVyX2ZpeGVkX2JwcDsKIHVuc2lnbmVkIGludCBkY2Nfc3VwcG9ydGVkOwoK
IHVuc2lnbmVkIGludCBJc0xpbmVCdWZmZXJCcHBGaXhlZDsKIHVuc2lnbmVkIGludCBMaW5lQnVm
ZmVyRml4ZWRCcHA7CiB1bnNpZ25lZCBpbnQgY2FuX3ZzdGFydHVwX2xpbmVzX2V4Y2VlZF92c3lu
Y19wbHVzX2JhY2tfcG9yY2hfbGluZXNfbWludXNfb25lOwogdW5zaWduZWQgaW50IGJ1Z19mb3Jj
aW5nX0xDX3JlcV9zYW1lX3NpemVfZml4ZWQ7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV94
ZmNfcGFyYW1zX3N0IHsKIGRvdWJsZSB4ZmNfdHNsdl92cmVhZHlfb2Zmc2V0X3VzOwogZG91Ymxl
IHhmY190c2x2X3Z1cGRhdGVfd2lkdGhfdXM7CiBkb3VibGUgeGZjX3RzbHZfdnVwZGF0ZV9vZmZz
ZXRfdXM7CiBpbnQgeGZjX3Nsdl9jaHVua19zaXplX2J5dGVzOwp9OwoKc3RydWN0IF92Y3NfZHBp
X2Rpc3BsYXlfcGlwZV9zb3VyY2VfcGFyYW1zX3N0IHsKIGludCBzb3VyY2VfZm9ybWF0OwogdW5z
aWduZWQgY2hhciBkY2M7CiB1bnNpZ25lZCBpbnQgZGNjX3JhdGU7CiB1bnNpZ25lZCBpbnQgZGNj
X3JhdGVfY2hyb21hOwogdW5zaWduZWQgY2hhciBkY2NfdXNlX2dsb2JhbDsKIHVuc2lnbmVkIGNo
YXIgdm07CiBib29sIGdwdXZtOwogYm9vbCBob3N0dm07CiBib29sIGdwdXZtX2xldmVsc19mb3Jj
ZV9lbjsKIHVuc2lnbmVkIGludCBncHV2bV9sZXZlbHNfZm9yY2U7CiBib29sIGhvc3R2bV9sZXZl
bHNfZm9yY2VfZW47CiB1bnNpZ25lZCBpbnQgaG9zdHZtX2xldmVsc19mb3JjZTsKIGludCBzb3Vy
Y2Vfc2NhbjsKIGludCBzd19tb2RlOwogaW50IG1hY3JvX3RpbGVfc2l6ZTsKIHVuc2lnbmVkIGlu
dCBzdXJmYWNlX3dpZHRoX3k7CiB1bnNpZ25lZCBpbnQgc3VyZmFjZV9oZWlnaHRfeTsKIHVuc2ln
bmVkIGludCBzdXJmYWNlX3dpZHRoX2M7CiB1bnNpZ25lZCBpbnQgc3VyZmFjZV9oZWlnaHRfYzsK
IHVuc2lnbmVkIGludCB2aWV3cG9ydF93aWR0aDsKIHVuc2lnbmVkIGludCB2aWV3cG9ydF9oZWln
aHQ7CiB1bnNpZ25lZCBpbnQgdmlld3BvcnRfeV95OwogdW5zaWduZWQgaW50IHZpZXdwb3J0X3lf
YzsKIHVuc2lnbmVkIGludCB2aWV3cG9ydF93aWR0aF9jOwogdW5zaWduZWQgaW50IHZpZXdwb3J0
X2hlaWdodF9jOwogdW5zaWduZWQgaW50IGRhdGFfcGl0Y2g7CiB1bnNpZ25lZCBpbnQgZGF0YV9w
aXRjaF9jOwogdW5zaWduZWQgaW50IG1ldGFfcGl0Y2g7CiB1bnNpZ25lZCBpbnQgbWV0YV9waXRj
aF9jOwogdW5zaWduZWQgaW50IGN1cjBfc3JjX3dpZHRoOwogaW50IGN1cjBfYnBwOwogdW5zaWdu
ZWQgaW50IGN1cjFfc3JjX3dpZHRoOwogaW50IGN1cjFfYnBwOwogaW50IG51bV9jdXJzb3JzOwog
dW5zaWduZWQgY2hhciBpc19oc3BsaXQ7CiB1bnNpZ25lZCBjaGFyIGR5bmFtaWNfbWV0YWRhdGFf
ZW5hYmxlOwogdW5zaWduZWQgaW50IGR5bmFtaWNfbWV0YWRhdGFfbGluZXNfYmVmb3JlX2FjdGl2
ZTsKIHVuc2lnbmVkIGludCBkeW5hbWljX21ldGFkYXRhX3htaXRfYnl0ZXM7CiB1bnNpZ25lZCBp
bnQgaHNwbGl0X2dycDsKIHVuc2lnbmVkIGNoYXIgeGZjX2VuYWJsZTsKIHVuc2lnbmVkIGNoYXIg
eGZjX3NsYXZlOwogdW5zaWduZWQgY2hhciBpbW1lZGlhdGVfZmxpcDsKIHN0cnVjdCBfdmNzX2Rw
aV9kaXNwbGF5X3hmY19wYXJhbXNfc3QgeGZjX3BhcmFtczsKCiB1bnNpZ25lZCBjaGFyIHZfdG90
YWxfbWluOwogdW5zaWduZWQgY2hhciB2X3RvdGFsX21heDsKfTsKc3RydWN0IHdyaXRlYmFja19z
dCB7CiBpbnQgd2Jfc3JjX2hlaWdodDsKIGludCB3Yl9zcmNfd2lkdGg7CiBpbnQgd2JfZHN0X3dp
ZHRoOwogaW50IHdiX2RzdF9oZWlnaHQ7CiBpbnQgd2JfcGl4ZWxfZm9ybWF0OwogaW50IHdiX2h0
YXBzX2x1bWE7CiBpbnQgd2JfdnRhcHNfbHVtYTsKIGludCB3Yl9odGFwc19jaHJvbWE7CiBpbnQg
d2JfdnRhcHNfY2hyb21hOwogZG91YmxlIHdiX2hyYXRpbzsKIGRvdWJsZSB3Yl92cmF0aW87Cn07
CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9vdXRwdXRfcGFyYW1zX3N0IHsKIGludCBkcF9sYW5l
czsKIGRvdWJsZSBvdXRwdXRfYnBwOwogaW50IGRzY19lbmFibGU7CiBpbnQgd2JfZW5hYmxlOwog
aW50IG51bV9hY3RpdmVfd2I7CiBpbnQgb3V0cHV0X2JwYzsKIGludCBvdXRwdXRfdHlwZTsKIGlu
dCBvdXRwdXRfZm9ybWF0OwogaW50IGRzY19zbGljZXM7CiBpbnQgbWF4X2F1ZGlvX3NhbXBsZV9y
YXRlOwogc3RydWN0IHdyaXRlYmFja19zdCB3YjsKfTsKCnN0cnVjdCBfdmNzX2RwaV9zY2FsZXJf
cmF0aW9fZGVwdGhfc3QgewogZG91YmxlIGhzY2xfcmF0aW87CiBkb3VibGUgdnNjbF9yYXRpbzsK
IGRvdWJsZSBoc2NsX3JhdGlvX2M7CiBkb3VibGUgdnNjbF9yYXRpb19jOwogZG91YmxlIHZpbml0
OwogZG91YmxlIHZpbml0X2M7CiBkb3VibGUgdmluaXRfYm90OwogZG91YmxlIHZpbml0X2JvdF9j
OwogaW50IGxiX2RlcHRoOwogaW50IHNjbF9lbmFibGU7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfc2Nh
bGVyX3RhcHNfc3QgewogdW5zaWduZWQgaW50IGh0YXBzOwogdW5zaWduZWQgaW50IHZ0YXBzOwog
dW5zaWduZWQgaW50IGh0YXBzX2M7CiB1bnNpZ25lZCBpbnQgdnRhcHNfYzsKfTsKCnN0cnVjdCBf
dmNzX2RwaV9kaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgewogdW5zaWduZWQgaW50IHJlY291
dF93aWR0aDsKIHVuc2lnbmVkIGludCByZWNvdXRfaGVpZ2h0OwogdW5zaWduZWQgaW50IGZ1bGxf
cmVjb3V0X3dpZHRoOwogdW5zaWduZWQgaW50IGZ1bGxfcmVjb3V0X2hlaWdodDsKIHVuc2lnbmVk
IGludCBoYmxhbmtfc3RhcnQ7CiB1bnNpZ25lZCBpbnQgaGJsYW5rX2VuZDsKIHVuc2lnbmVkIGlu
dCB2Ymxhbmtfc3RhcnQ7CiB1bnNpZ25lZCBpbnQgdmJsYW5rX2VuZDsKIHVuc2lnbmVkIGludCBo
dG90YWw7CiB1bnNpZ25lZCBpbnQgdnRvdGFsOwogdW5zaWduZWQgaW50IHZhY3RpdmU7CiB1bnNp
Z25lZCBpbnQgaGFjdGl2ZTsKIHVuc2lnbmVkIGludCB2c3RhcnR1cF9zdGFydDsKIHVuc2lnbmVk
IGludCB2dXBkYXRlX29mZnNldDsKIHVuc2lnbmVkIGludCB2dXBkYXRlX3dpZHRoOwogdW5zaWdu
ZWQgaW50IHZyZWFkeV9vZmZzZXQ7CiB1bnNpZ25lZCBjaGFyIGludGVybGFjZWQ7CiB1bnNpZ25l
ZCBjaGFyIGVtYmVkZGVkOwogZG91YmxlIHBpeGVsX3JhdGVfbWh6OwogdW5zaWduZWQgY2hhciBz
eW5jaHJvbml6ZWRfdmJsYW5rX2FsbF9wbGFuZXM7CiB1bnNpZ25lZCBjaGFyIG90Z19pbnN0Owog
dW5zaWduZWQgaW50IG9kbV9jb21iaW5lOwogdW5zaWduZWQgY2hhciB1c2VfbWF4aW11bV92c3Rh
cnR1cDsKIHVuc2lnbmVkIGludCB2dG90YWxfbWF4OwogdW5zaWduZWQgaW50IHZ0b3RhbF9taW47
Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9waXBlX3BhcmFtc19zdCB7CiBkaXNwbGF5X3Bp
cGVfc291cmNlX3BhcmFtc19zdCBzcmM7CiBkaXNwbGF5X3BpcGVfZGVzdF9wYXJhbXNfc3QgZGVz
dDsKIHNjYWxlcl9yYXRpb19kZXB0aF9zdCBzY2FsZV9yYXRpb19kZXB0aDsKIHNjYWxlcl90YXBz
X3N0IHNjYWxlX3RhcHM7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9jbG9ja3NfYW5kX2Nm
Z19zdCB7CiBpbnQgdm9sdGFnZTsKIGRvdWJsZSBkcHBjbGtfbWh6OwogZG91YmxlIHJlZmNsa19t
aHo7CiBkb3VibGUgZGlzcGNsa19taHo7CiBkb3VibGUgZGNmY2xrX21oejsKIGRvdWJsZSBzb2Nj
bGtfbWh6Owp9OwoKc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0IHsK
IGRpc3BsYXlfcGlwZV9wYXJhbXNfc3QgcGlwZTsKIGRpc3BsYXlfb3V0cHV0X3BhcmFtc19zdCBk
b3V0OwogZGlzcGxheV9jbG9ja3NfYW5kX2NmZ19zdCBjbGtzX2NmZzsKfTsKCnN0cnVjdCBfdmNz
X2RwaV9kaXNwbGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3QgewogdW5zaWduZWQgaW50IGZ1bGxf
c3dhdGhfYnl0ZXM7CiB1bnNpZ25lZCBpbnQgc3RvcmVkX3N3YXRoX2J5dGVzOwogdW5zaWduZWQg
aW50IGJsazI1Nl9oZWlnaHQ7CiB1bnNpZ25lZCBpbnQgYmxrMjU2X3dpZHRoOwogdW5zaWduZWQg
aW50IHJlcV9oZWlnaHQ7CiB1bnNpZ25lZCBpbnQgcmVxX3dpZHRoOwp9OwoKc3RydWN0IF92Y3Nf
ZHBpX2Rpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHsKIHVuc2lnbmVkIGludCBjaHVu
a19ieXRlczsKIHVuc2lnbmVkIGludCBtaW5fY2h1bmtfYnl0ZXM7CiB1bnNpZ25lZCBpbnQgbWV0
YV9jaHVua19ieXRlczsKIHVuc2lnbmVkIGludCBtaW5fbWV0YV9jaHVua19ieXRlczsKIHVuc2ln
bmVkIGludCBtcHRlX2dyb3VwX2J5dGVzOwogdW5zaWduZWQgaW50IGRwdGVfZ3JvdXBfYnl0ZXM7
Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kYXRhX3JxX2RsZ19wYXJhbXNfc3QgewogdW5z
aWduZWQgaW50IHN3YXRoX3dpZHRoX3ViOwogdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodDsKIHVu
c2lnbmVkIGludCByZXFfcGVyX3N3YXRoX3ViOwogdW5zaWduZWQgaW50IG1ldGFfcHRlX2J5dGVz
X3Blcl9mcmFtZV91YjsKIHVuc2lnbmVkIGludCBkcHRlX3JlcV9wZXJfcm93X3ViOwogdW5zaWdu
ZWQgaW50IGRwdGVfZ3JvdXBzX3Blcl9yb3dfdWI7CiB1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfaGVp
Z2h0OwogdW5zaWduZWQgaW50IGRwdGVfYnl0ZXNfcGVyX3Jvd191YjsKIHVuc2lnbmVkIGludCBt
ZXRhX2NodW5rc19wZXJfcm93X3ViOwogdW5zaWduZWQgaW50IG1ldGFfcmVxX3Blcl9yb3dfdWI7
CiB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfaGVpZ2h0OwogdW5zaWduZWQgaW50IG1ldGFfYnl0ZXNf
cGVyX3Jvd191YjsKfTsKCnN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3JxX2RsZ19wYXJhbXNfc3Qg
ewogZGlzcGxheV9kYXRhX3JxX2RsZ19wYXJhbXNfc3QgcnFfbDsKIGRpc3BsYXlfZGF0YV9ycV9k
bGdfcGFyYW1zX3N0IHJxX2M7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9zaXppbmdf
cGFyYW1zX3N0IHsKIGRpc3BsYXlfZGF0YV9ycV9zaXppbmdfcGFyYW1zX3N0IHJxX2w7CiBkaXNw
bGF5X2RhdGFfcnFfc2l6aW5nX3BhcmFtc19zdCBycV9jOwp9OwoKc3RydWN0IF92Y3NfZHBpX2Rp
c3BsYXlfcnFfbWlzY19wYXJhbXNfc3QgewogZGlzcGxheV9kYXRhX3JxX21pc2NfcGFyYW1zX3N0
IHJxX2w7CiBkaXNwbGF5X2RhdGFfcnFfbWlzY19wYXJhbXNfc3QgcnFfYzsKfTsKCnN0cnVjdCBf
dmNzX2RwaV9kaXNwbGF5X3JxX3BhcmFtc19zdCB7CiB1bnNpZ25lZCBjaGFyIHl1djQyMDsKIHVu
c2lnbmVkIGNoYXIgeXV2NDIwXzEwYnBjOwogdW5zaWduZWQgY2hhciByZ2JlX2FscGhhOwogZGlz
cGxheV9ycV9taXNjX3BhcmFtc19zdCBtaXNjOwogZGlzcGxheV9ycV9zaXppbmdfcGFyYW1zX3N0
IHNpemluZzsKIGRpc3BsYXlfcnFfZGxnX3BhcmFtc19zdCBkbGc7Cn07CgpzdHJ1Y3QgX3Zjc19k
cGlfZGlzcGxheV9kbGdfcmVnc19zdCB7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX2hfYmxhbmtfZW5k
OwogdW5zaWduZWQgaW50IGRsZ192YmxhbmtfZW5kOwogdW5zaWduZWQgaW50IG1pbl9kc3RfeV9u
ZXh0X3N0YXJ0OwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfaHRvdGFsOwogdW5zaWduZWQgaW50
IHJlZmN5Y194X2FmdGVyX3NjYWxlcjsKIHVuc2lnbmVkIGludCBkc3RfeV9hZnRlcl9zY2FsZXI7
CiB1bnNpZ25lZCBpbnQgZHN0X3lfcHJlZmV0Y2g7CiB1bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3Zt
X3ZibGFuazsKIHVuc2lnbmVkIGludCBkc3RfeV9wZXJfcm93X3ZibGFuazsKIHVuc2lnbmVkIGlu
dCBkc3RfeV9wZXJfdm1fZmxpcDsKIHVuc2lnbmVkIGludCBkc3RfeV9wZXJfcm93X2ZsaXA7CiB1
bnNpZ25lZCBpbnQgcmVmX2ZyZXFfdG9fcGl4X2ZyZXE7CiB1bnNpZ25lZCBpbnQgdnJhdGlvX3By
ZWZldGNoOwogdW5zaWduZWQgaW50IHZyYXRpb19wcmVmZXRjaF9jOwogdW5zaWduZWQgaW50IHJl
ZmN5Y19wZXJfcHRlX2dyb3VwX3ZibGFua19sOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcHRl
X2dyb3VwX3ZibGFua19jOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfbWV0YV9jaHVua192Ymxh
bmtfbDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1bmtfdmJsYW5rX2M7CiB1bnNp
Z25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3JvdXBfZmxpcF9sOwogdW5zaWduZWQgaW50IHJlZmN5
Y19wZXJfcHRlX2dyb3VwX2ZsaXBfYzsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1
bmtfZmxpcF9sOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfbWV0YV9jaHVua19mbGlwX2M7CiB1
bnNpZ25lZCBpbnQgZHN0X3lfcGVyX3B0ZV9yb3dfbm9tX2w7CiB1bnNpZ25lZCBpbnQgZHN0X3lf
cGVyX3B0ZV9yb3dfbm9tX2M7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9t
X2w7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9wdGVfZ3JvdXBfbm9tX2M7CiB1bnNpZ25lZCBp
bnQgZHN0X3lfcGVyX21ldGFfcm93X25vbV9sOwogdW5zaWduZWQgaW50IGRzdF95X3Blcl9tZXRh
X3Jvd19ub21fYzsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX21ldGFfY2h1bmtfbm9tX2w7CiB1
bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9tZXRhX2NodW5rX25vbV9jOwogdW5zaWduZWQgaW50IHJl
ZmN5Y19wZXJfbGluZV9kZWxpdmVyeV9wcmVfbDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX2xp
bmVfZGVsaXZlcnlfcHJlX2M7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5
X2w7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9saW5lX2RlbGl2ZXJ5X2M7CiB1bnNpZ25lZCBp
bnQgY2h1bmtfaGRsX2FkanVzdF9jdXIwOwogdW5zaWduZWQgaW50IGNodW5rX2hkbF9hZGp1c3Rf
Y3VyMTsKIHVuc2lnbmVkIGludCB2cmVhZHlfYWZ0ZXJfdmNvdW50MDsKIHVuc2lnbmVkIGludCBk
c3RfeV9vZmZzZXRfY3VyMDsKIHVuc2lnbmVkIGludCBkc3RfeV9vZmZzZXRfY3VyMTsKIHVuc2ln
bmVkIGludCB4ZmNfcmVnX3RyYW5zZmVyX2RlbGF5OwogdW5zaWduZWQgaW50IHhmY19yZWdfcHJl
Y2hhcmdlX2RlbGF5OwogdW5zaWduZWQgaW50IHhmY19yZWdfcmVtb3RlX3N1cmZhY2VfZmxpcF9s
YXRlbmN5OwogdW5zaWduZWQgaW50IHhmY19yZWdfcHJlZmV0Y2hfbWFyZ2luOwogdW5zaWduZWQg
aW50IGRzdF95X2RlbHRhX2RycV9saW1pdDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3ZtX2dy
b3VwX3ZibGFuazsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3ZtX2dyb3VwX2ZsaXA7CiB1bnNp
Z25lZCBpbnQgcmVmY3ljX3Blcl92bV9yZXFfdmJsYW5rOwogdW5zaWduZWQgaW50IHJlZmN5Y19w
ZXJfdm1fcmVxX2ZsaXA7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl92bV9kbWRhdGE7Cn07Cgpz
dHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV90dHVfcmVnc19zdCB7CiB1bnNpZ25lZCBpbnQgcW9zX2xl
dmVsX2xvd193bTsKIHVuc2lnbmVkIGludCBxb3NfbGV2ZWxfaGlnaF93bTsKIHVuc2lnbmVkIGlu
dCBtaW5fdHR1X3ZibGFuazsKIHVuc2lnbmVkIGludCBxb3NfbGV2ZWxfZmxpcDsKIHVuc2lnbmVk
IGludCByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9sOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJf
cmVxX2RlbGl2ZXJ5X2M7CiB1bnNpZ25lZCBpbnQgcmVmY3ljX3Blcl9yZXFfZGVsaXZlcnlfY3Vy
MDsKIHVuc2lnbmVkIGludCByZWZjeWNfcGVyX3JlcV9kZWxpdmVyeV9jdXIxOwogdW5zaWduZWQg
aW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9sOwogdW5zaWduZWQgaW50IHJlZmN5Y19w
ZXJfcmVxX2RlbGl2ZXJ5X3ByZV9jOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2
ZXJ5X3ByZV9jdXIwOwogdW5zaWduZWQgaW50IHJlZmN5Y19wZXJfcmVxX2RlbGl2ZXJ5X3ByZV9j
dXIxOwogdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9sOwogdW5zaWduZWQgaW50IHFvc19s
ZXZlbF9maXhlZF9jOwogdW5zaWduZWQgaW50IHFvc19sZXZlbF9maXhlZF9jdXIwOwogdW5zaWdu
ZWQgaW50IHFvc19sZXZlbF9maXhlZF9jdXIxOwogdW5zaWduZWQgaW50IHFvc19yYW1wX2Rpc2Fi
bGVfbDsKIHVuc2lnbmVkIGludCBxb3NfcmFtcF9kaXNhYmxlX2M7CiB1bnNpZ25lZCBpbnQgcW9z
X3JhbXBfZGlzYWJsZV9jdXIwOwogdW5zaWduZWQgaW50IHFvc19yYW1wX2Rpc2FibGVfY3VyMTsK
fTsKCnN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RhdGFfcnFfcmVnc19zdCB7CiB1bnNpZ25lZCBp
bnQgY2h1bmtfc2l6ZTsKIHVuc2lnbmVkIGludCBtaW5fY2h1bmtfc2l6ZTsKIHVuc2lnbmVkIGlu
dCBtZXRhX2NodW5rX3NpemU7CiB1bnNpZ25lZCBpbnQgbWluX21ldGFfY2h1bmtfc2l6ZTsKIHVu
c2lnbmVkIGludCBkcHRlX2dyb3VwX3NpemU7CiB1bnNpZ25lZCBpbnQgbXB0ZV9ncm91cF9zaXpl
OwogdW5zaWduZWQgaW50IHN3YXRoX2hlaWdodDsKIHVuc2lnbmVkIGludCBwdGVfcm93X2hlaWdo
dF9saW5lYXI7Cn07CgpzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0IHsKIGRpc3Bs
YXlfZGF0YV9ycV9yZWdzX3N0IHJxX3JlZ3NfbDsKIGRpc3BsYXlfZGF0YV9ycV9yZWdzX3N0IHJx
X3JlZ3NfYzsKIHVuc2lnbmVkIGludCBkcnFfZXhwYW5zaW9uX21vZGU7CiB1bnNpZ25lZCBpbnQg
cHJxX2V4cGFuc2lvbl9tb2RlOwogdW5zaWduZWQgaW50IG1ycV9leHBhbnNpb25fbW9kZTsKIHVu
c2lnbmVkIGludCBjcnFfZXhwYW5zaW9uX21vZGU7CiB1bnNpZ25lZCBpbnQgcGxhbmUxX2Jhc2Vf
YWRkcmVzczsKfTsKCnN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19zeXNfcGFyYW1zX3N0IHsK
IGRvdWJsZSB0X21jbGtfd21fdXM7CiBkb3VibGUgdF91cmdfd21fdXM7CiBkb3VibGUgdF9zcl93
bV91czsKIGRvdWJsZSB0X2V4dHJhX3VzOwogZG91YmxlIG1lbV90cmlwX3VzOwogZG91YmxlIHRf
c3J4X2RlbGF5X3VzOwogZG91YmxlIGRlZXBzbGVlcF9kY2ZjbGtfbWh6OwogZG91YmxlIHRvdGFs
X2ZsaXBfYnc7CiB1bnNpZ25lZCBpbnQgdG90YWxfZmxpcF9ieXRlczsKfTsKCnN0cnVjdCBfdmNz
X2RwaV9kaXNwbGF5X2FyYl9wYXJhbXNfc3QgewogaW50IG1heF9yZXFfb3V0c3RhbmRpbmc7CiBp
bnQgbWluX3JlcV9vdXRzdGFuZGluZzsKIGludCBzYXRfbGV2ZWxfdXM7Cn07CiMgMzIgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZz
LmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1s
L2Rpc3BsYXlfbW9kZV9lbnVtcy5oIiAxCiMgMjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9kbWwvZGlzcGxheV9tb2RlX2VudW1zLmgiCmVudW0gb3V0cHV0X2Vu
Y29kZXJfY2xhc3MgewogZG1fZHAgPSAwLCBkbV9oZG1pID0gMSwgZG1fd2IgPSAyLCBkbV9lZHAK
fTsKZW51bSBvdXRwdXRfZm9ybWF0X2NsYXNzIHsKIGRtXzQ0NCA9IDAsIGRtXzQyMCA9IDEsIGRt
X240MjIsIGRtX3M0MjIKfTsKZW51bSBzb3VyY2VfZm9ybWF0X2NsYXNzIHsKIGRtXzQ0NF8xNiA9
IDAsCiBkbV80NDRfMzIgPSAxLAogZG1fNDQ0XzY0ID0gMiwKIGRtXzQyMF84ID0gMywKIGRtXzQy
MF8xMCA9IDQsCiBkbV80MjBfMTIgPSA1LAogZG1fNDIyXzggPSA2LAogZG1fNDIyXzEwID0gNywK
IGRtXzQ0NF84ID0gOCwKIGRtX21vbm9fOCA9IGRtXzQ0NF84LAogZG1fbW9ub18xNiA9IGRtXzQ0
NF8xNiwKIGRtX3JnYmUgPSA5LAogZG1fcmdiZV9hbHBoYSA9IDEwLAp9OwplbnVtIG91dHB1dF9i
cGNfY2xhc3MgewogZG1fb3V0XzYgPSAwLCBkbV9vdXRfOCA9IDEsIGRtX291dF8xMCA9IDIsIGRt
X291dF8xMiA9IDMsIGRtX291dF8xNiA9IDQKfTsKZW51bSBzY2FuX2RpcmVjdGlvbl9jbGFzcyB7
CiBkbV9ob3J6ID0gMCwgZG1fdmVydCA9IDEKfTsKZW51bSBkbV9zd2l6emxlX21vZGUgewogZG1f
c3dfbGluZWFyID0gMCwKIGRtX3N3XzI1NmJfcyA9IDEsCiBkbV9zd18yNTZiX2QgPSAyLAogZG1f
c3dfU1BBUkVfMCA9IDMsCiBkbV9zd19TUEFSRV8xID0gNCwKIGRtX3N3XzRrYl9zID0gNSwKIGRt
X3N3XzRrYl9kID0gNiwKIGRtX3N3X1NQQVJFXzIgPSA3LAogZG1fc3dfU1BBUkVfMyA9IDgsCiBk
bV9zd182NGtiX3MgPSA5LAogZG1fc3dfNjRrYl9kID0gMTAsCiBkbV9zd19TUEFSRV80ID0gMTEs
CiBkbV9zd19TUEFSRV81ID0gMTIsCiBkbV9zd192YXJfcyA9IDEzLAogZG1fc3dfdmFyX2QgPSAx
NCwKIGRtX3N3X1NQQVJFXzYgPSAxNSwKIGRtX3N3X1NQQVJFXzcgPSAxNiwKIGRtX3N3XzY0a2Jf
c190ID0gMTcsCiBkbV9zd182NGtiX2RfdCA9IDE4LAogZG1fc3dfU1BBUkVfMTAgPSAxOSwKIGRt
X3N3X1NQQVJFXzExID0gMjAsCiBkbV9zd180a2Jfc194ID0gMjEsCiBkbV9zd180a2JfZF94ID0g
MjIsCiBkbV9zd19TUEFSRV8xMiA9IDIzLAogZG1fc3dfU1BBUkVfMTMgPSAyNCwKIGRtX3N3XzY0
a2Jfc194ID0gMjUsCiBkbV9zd182NGtiX2RfeCA9IDI2LAogZG1fc3dfU1BBUkVfMTQgPSAyNywK
IGRtX3N3X1NQQVJFXzE1ID0gMjgsCiBkbV9zd192YXJfc194ID0gMjksCiBkbV9zd192YXJfZF94
ID0gMzAsCiBkbV9zd182NGtiX3JfeCwKIGRtX3N3X2dmeDdfMmRfdGhpbl9sX3ZwLAogZG1fc3df
Z2Z4N18yZF90aGluX2dsLAp9OwplbnVtIGxiX2RlcHRoIHsKIGRtX2xiXzEwID0gMCwgZG1fbGJf
OCA9IDEsIGRtX2xiXzYgPSAyLCBkbV9sYl8xMiA9IDMsIGRtX2xiXzE2ID0gNCwKIGRtX2xiXzE5
ID0gNQp9OwplbnVtIHZvbHRhZ2Vfc3RhdGUgewogZG1fdm1pbiA9IDAsIGRtX3ZtaWQgPSAxLCBk
bV92bm9tID0gMiwgZG1fdm1heCA9IDMKfTsKZW51bSBzb3VyY2VfbWFjcm9fdGlsZV9zaXplIHsK
IGRtXzRrX3RpbGUgPSAwLCBkbV82NGtfdGlsZSA9IDEsIGRtXzI1NmtfdGlsZSA9IDIKfTsKZW51
bSBjdXJzb3JfYnBwIHsKIGRtX2N1cl8yYml0ID0gMCwgZG1fY3VyXzMyYml0ID0gMSwgZG1fY3Vy
XzY0Yml0ID0gMgp9OwplbnVtIGNsb2NrX2NoYW5nZV9zdXBwb3J0IHsKIGRtX2RyYW1fY2xvY2tf
Y2hhbmdlX3VuaW5pdGlhbGl6ZWQgPSAwLAogZG1fZHJhbV9jbG9ja19jaGFuZ2VfdmFjdGl2ZSwK
IGRtX2RyYW1fY2xvY2tfY2hhbmdlX3ZibGFuaywKIGRtX2RyYW1fY2xvY2tfY2hhbmdlX3Vuc3Vw
cG9ydGVkCn07CgplbnVtIG91dHB1dF9zdGFuZGFyZCB7CiBkbV9zdGRfdW5pbml0aWFsaXplZCA9
IDAsIGRtX3N0ZF9jdnRyMiwgZG1fc3RkX2N2dAp9OwoKZW51bSBtcGNfY29tYmluZV9hZmZpbml0
eSB7CiBkbV9tcGNfYWx3YXlzX3doZW5fcG9zc2libGUsCiBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2Us
CiBkbV9tcGNfcmVkdWNlX3ZvbHRhZ2VfYW5kX2Nsb2NrcywKIGRtX21wY19uZXZlcgp9OwoKZW51
bSBSZXF1ZXN0VHlwZSB7CiBSRVFfMjU2Qnl0ZXMsIFJFUV8xMjhCeXRlc05vbkNvbnRpZ3VvdXMs
IFJFUV8xMjhCeXRlc0NvbnRpZ3VvdXMsIFJFUV9OQQp9OwoKZW51bSBzZWxmX3JlZnJlc2hfYWZm
aW5pdHkgewogZG1fdHJ5X3RvX2FsbG93X3NlbGZfcmVmcmVzaF9hbmRfbWNsa19zd2l0Y2gsCiBk
bV9hbGxvd19zZWxmX3JlZnJlc2hfYW5kX21jbGtfc3dpdGNoLAogZG1fYWxsb3dfc2VsZl9yZWZy
ZXNoLAogZG1fbmVpdGhlcl9zZWxmX3JlZnJlc2hfbm9yX21jbGtfc3dpdGNoCn07CgplbnVtIGRt
X3ZhbGlkYXRpb25fc3RhdHVzIHsKIERNTF9WQUxJREFUSU9OX09LLAogRE1MX0ZBSUxfU0NBTEVf
UkFUSU9fVEFQLAogRE1MX0ZBSUxfU09VUkNFX1BJWEVMX0ZPUk1BVCwKIERNTF9GQUlMX1ZJRVdQ
T1JUX1NJWkUsCiBETUxfRkFJTF9UT1RBTF9WX0FDVElWRV9CVywKIERNTF9GQUlMX0RJT19TVVBQ
T1JULAogRE1MX0ZBSUxfTk9UX0VOT1VHSF9EU0MsCiBETUxfRkFJTF9EU0NfQ0xLX1JFUVVJUkVE
LAogRE1MX0ZBSUxfRFNDX1ZBTElEQVRJT05fRkFJTFVSRSwKIERNTF9GQUlMX1VSR0VOVF9MQVRF
TkNZLAogRE1MX0ZBSUxfUkVPUkRFUklOR19CVUZGRVIsCiBETUxfRkFJTF9ESVNQQ0xLX0RQUENM
SywKIERNTF9GQUlMX1RPVEFMX0FWQUlMQUJMRV9QSVBFUywKIERNTF9GQUlMX05VTV9PVEcsCiBE
TUxfRkFJTF9XUklURUJBQ0tfTU9ERSwKIERNTF9GQUlMX1dSSVRFQkFDS19MQVRFTkNZLAogRE1M
X0ZBSUxfV1JJVEVCQUNLX1NDQUxFX1JBVElPX1RBUCwKIERNTF9GQUlMX0NVUlNPUl9TVVBQT1JU
LAogRE1MX0ZBSUxfUElUQ0hfU1VQUE9SVCwKIERNTF9GQUlMX1BURV9CVUZGRVJfU0laRSwKIERN
TF9GQUlMX0hPU1RfVk1fSU1NRURJQVRFX0ZMSVAsCiBETUxfRkFJTF9EU0NfSU5QVVRfQlBDLAog
RE1MX0ZBSUxfUFJFRkVUQ0hfU1VQUE9SVCwKIERNTF9GQUlMX1ZfUkFUSU9fUFJFRkVUQ0gsCn07
CgplbnVtIHdyaXRlYmFja19jb25maWcgewogZG1fbm9ybWFsLAogZG1fd2hvbGVfYnVmZmVyX2Zv
cl9zaW5nbGVfc3RyZWFtX25vX2ludGVybGVhdmUsCiBkbV93aG9sZV9idWZmZXJfZm9yX3Npbmds
ZV9zdHJlYW1faW50ZXJsZWF2ZSwKfTsKCmVudW0gb2RtX2NvbWJpbmVfbW9kZSB7CiBkbV9vZG1f
Y29tYmluZV9tb2RlX2Rpc2FibGVkLAogZG1fb2RtX2NvbWJpbmVfbW9kZV8ydG8xLAogZG1fb2Rt
X2NvbWJpbmVfbW9kZV80dG8xLAp9OwoKZW51bSBvZG1fY29tYmluZV9wb2xpY3kgewogZG1fb2Rt
X2NvbWJpbmVfcG9saWN5X2RhbCwKIGRtX29kbV9jb21iaW5lX3BvbGljeV9ub25lLAogZG1fb2Rt
X2NvbWJpbmVfcG9saWN5XzJ0bzEsCiBkbV9vZG1fY29tYmluZV9wb2xpY3lfNHRvMSwKfTsKCmVu
dW0gaW1tZWRpYXRlX2ZsaXBfcmVxdWlyZW1lbnQgewogZG1faW1tZWRpYXRlX2ZsaXBfbm90X3Jl
cXVpcmVkLAogZG1faW1tZWRpYXRlX2ZsaXBfcmVxdWlyZWQsCn07CiMgMzMgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZG1sX2NvbW1vbl9kZWZzLmgiIDIK
Cgpkb3VibGUgZG1sX3JvdW5kKGRvdWJsZSBhKTsKIyAzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtbC9kaXNwbGF5X21vZGVfbGliLmgiIDIKIyAxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2Rpc3BsYXlfbW9kZV92
YmEuaCIgMQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
ZG1sL2Rpc3BsYXlfbW9kZV92YmEuaCIKc3RydWN0IGRpc3BsYXlfbW9kZV9saWI7Cgp2b2lkIE1v
ZGVTdXBwb3J0QW5kU3lzdGVtQ29uZmlndXJhdGlvbihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAq
bW9kZV9saWIpOwoKCgpkb3VibGUgZ2V0X2Nsa19kY2ZfZGVlcHNsZWVwKHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBp
cGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF93bV91cmdlbnQoc3RydWN0
IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFt
c19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3dtX21lbW9y
eV90cmlwKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9l
MmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91Ymxl
IGdldF93bV93cml0ZWJhY2tfdXJnZW50KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xp
YiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQg
bnVtX3BpcGVzKTsKZG91YmxlIGdldF93bV9zdHV0dGVyX2V4aXQoc3RydWN0IGRpc3BsYXlfbW9k
ZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMs
IHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3dtX3N0dXR0ZXJfZW50ZXJfZXhp
dChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3Bp
cGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRf
d21fZHJhbV9jbG9ja19jaGFuZ2Uoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBj
b25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1f
cGlwZXMpOwpkb3VibGUgZ2V0X3dtX3dyaXRlYmFja19kcmFtX2Nsb2NrX2NoYW5nZShzdHJ1Y3Qg
ZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1z
X3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfd21feGZjX3Vu
ZGVyZmxvdyhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlf
ZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJs
ZSBnZXRfc3R1dHRlcl9lZmZpY2llbmN5X25vX3ZibGFuayhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xp
YiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5z
aWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfc3R1dHRlcl9lZmZpY2llbmN5KHN0cnVj
dCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJh
bXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF91cmdlbnRf
bGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlf
ZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJs
ZSBnZXRfdXJnZW50X2V4dHJhX2xhdGVuY3koc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVf
bGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGlu
dCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X25vbnVyZ2VudF9sYXRlbmN5KHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBp
cGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF9kcmFtX2Nsb2NrX2NoYW5n
ZV9sYXRlbmN5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxh
eV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91
YmxlIGdldF9kaXNwY2xrX2NhbGN1bGF0ZWQoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVf
bGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGlu
dCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3RvdGFsX2RhdGFfcmVhZF9idyhzdHJ1Y3QgZGlzcGxh
eV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpw
aXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfcmV0dXJuX2J3KHN0cnVj
dCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJh
bXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVzKTsKZG91YmxlIGdldF90Y2FsYyhz
dHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVf
cGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfZnJh
Y3Rpb25fb2ZfdXJnZW50X2JhbmR3aWR0aChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9s
aWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50
IG51bV9waXBlcyk7CmRvdWJsZSBnZXRfZnJhY3Rpb25fb2ZfdXJnZW50X2JhbmR3aWR0aF9pbW1f
ZmxpcChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJl
X3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CgoKCmRvdWJs
ZSBnZXRfZHNjX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwgY29uc3Qg
ZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVtX3BpcGVz
LCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfZHBwY2xrX2NhbGN1bGF0ZWQo
c3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBl
X3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3
aGljaF9waXBlKTsKZG91YmxlIGdldF9kc2NjbGtfY2FsY3VsYXRlZChzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBl
cywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3Vi
bGUgZ2V0X21pbl90dHVfdmJsYW5rKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwg
Y29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQgbnVt
X3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfdnJhdGlvX3ByZWZl
dGNoX2woc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2Uy
ZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVk
IGludCB3aGljaF9waXBlKTsKZG91YmxlIGdldF92cmF0aW9fcHJlZmV0Y2hfYyhzdHJ1Y3QgZGlz
cGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0
ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUp
Owpkb3VibGUgZ2V0X2RzdF94X2FmdGVyX3NjYWxlcihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAq
bW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWdu
ZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X2Rz
dF95X2FmdGVyX3NjYWxlcihzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0
IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBl
cywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X2RzdF95X3Blcl92bV92Ymxh
bmsoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGlu
dCB3aGljaF9waXBlKTsKZG91YmxlIGdldF9kc3RfeV9wZXJfcm93X3ZibGFuayhzdHJ1Y3QgZGlz
cGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0
ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUp
Owpkb3VibGUgZ2V0X2RzdF95X3ByZWZldGNoKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2Rl
X2xpYiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBp
bnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfZHN0X3lf
cGVyX3ZtX2ZsaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNw
bGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVu
c2lnbmVkIGludCB3aGljaF9waXBlKTsKZG91YmxlIGdldF9kc3RfeV9wZXJfcm93X2ZsaXAoc3Ry
dWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3Bh
cmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGlj
aF9waXBlKTsKZG91YmxlIGdldF94ZmNfdHJhbnNmZXJfZGVsYXkoc3RydWN0IGRpc3BsYXlfbW9k
ZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMs
IHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGljaF9waXBlKTsKZG91Ymxl
IGdldF94ZmNfcHJlY2hhcmdlX2RlbGF5KHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xp
YiwgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLCB1bnNpZ25lZCBpbnQg
bnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQgd2hpY2hfcGlwZSk7CmRvdWJsZSBnZXRfeGZjX3JlbW90
ZV9zdXJmYWNlX2ZsaXBfbGF0ZW5jeShzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIs
IGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51
bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X3hmY19wcmVmZXRj
aF9tYXJnaW4oc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliLCBjb25zdCBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVkIGludCBudW1fcGlwZXMsIHVuc2ln
bmVkIGludCB3aGljaF9waXBlKTsKZG91YmxlIGdldF9yZWZjeWNfcGVyX3ZtX2dyb3VwX3ZibGFu
ayhzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3Bp
cGVfcGFyYW1zX3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50
IHdoaWNoX3BpcGUpOwpkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fZ3JvdXBfZmxpcChzdHJ1Y3Qg
ZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1z
X3N0ICpwaXBlcywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3Bp
cGUpOwpkb3VibGUgZ2V0X3JlZmN5Y19wZXJfdm1fcmVxX3ZibGFuayhzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYiAqbW9kZV9saWIsIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBl
cywgdW5zaWduZWQgaW50IG51bV9waXBlcywgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwpkb3Vi
bGUgZ2V0X3JlZmN5Y19wZXJfdm1fcmVxX2ZsaXAoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1v
ZGVfbGliLCBjb25zdCBkaXNwbGF5X2UyZV9waXBlX3BhcmFtc19zdCAqcGlwZXMsIHVuc2lnbmVk
IGludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB3aGljaF9waXBlKTsKCnVuc2lnbmVkIGludCBn
ZXRfdnN0YXJ0dXBfY2FsY3VsYXRlZCgKICBzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9s
aWIsCiAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAogIHVuc2lnbmVk
IGludCBudW1fcGlwZXMsCiAgdW5zaWduZWQgaW50IHdoaWNoX3BpcGUpOwoKZG91YmxlIGdldF90
b3RhbF9pbW1lZGlhdGVfZmxpcF9ieXRlcygKICBzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9k
ZV9saWIsCiAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzLAogIHVuc2ln
bmVkIGludCBudW1fcGlwZXMpOwpkb3VibGUgZ2V0X3RvdGFsX2ltbWVkaWF0ZV9mbGlwX2J3KAog
IHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKICBjb25zdCBkaXNwbGF5X2UyZV9w
aXBlX3BhcmFtc19zdCAqcGlwZXMsCiAgdW5zaWduZWQgaW50IG51bV9waXBlcyk7CmRvdWJsZSBn
ZXRfdG90YWxfcHJlZmV0Y2hfYncoCiAgc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGli
LAogIGNvbnN0IGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0ICpwaXBlcywKICB1bnNpZ25lZCBp
bnQgbnVtX3BpcGVzKTsKdW5zaWduZWQgaW50IGRtbF9nZXRfdm9sdGFnZV9sZXZlbCgKICBzdHJ1
Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIsCiAgY29uc3QgZGlzcGxheV9lMmVfcGlwZV9w
YXJhbXNfc3QgKnBpcGVzLAogIHVuc2lnbmVkIGludCBudW1fcGlwZXMpOwoKdm9pZCBQaXhlbENs
b2NrQWRqdXN0bWVudEZvclByb2dyZXNzaXZlVG9JbnRlcmxhY2VVbml0KHN0cnVjdCBkaXNwbGF5
X21vZGVfbGliICptb2RlX2xpYik7Cgpib29sIENhbGN1bGF0ZTI1NkJCbG9ja1NpemVzKAogIGVu
dW0gc291cmNlX2Zvcm1hdF9jbGFzcyBTb3VyY2VQaXhlbEZvcm1hdCwKICBlbnVtIGRtX3N3aXp6
bGVfbW9kZSBTdXJmYWNlVGlsaW5nLAogIHVuc2lnbmVkIGludCBCeXRlUGVyUGl4ZWxZLAogIHVu
c2lnbmVkIGludCBCeXRlUGVyUGl4ZWxDLAogIHVuc2lnbmVkIGludCAqQmxvY2tIZWlnaHQyNTZC
eXRlc1ksCiAgdW5zaWduZWQgaW50ICpCbG9ja0hlaWdodDI1NkJ5dGVzQywKICB1bnNpZ25lZCBp
bnQgKkJsb2NrV2lkdGgyNTZCeXRlc1ksCiAgdW5zaWduZWQgaW50ICpCbG9ja1dpZHRoMjU2Qnl0
ZXNDKTsKCnN0cnVjdCB2YmFfdmFyc19zdCB7CiBpcF9wYXJhbXNfc3QgaXA7CiBzb2NfYm91bmRp
bmdfYm94X3N0IHNvYzsKCiBpbnQgbWF4TXBjQ29tYjsKIGJvb2wgVXNlTWF4aW11bVZTdGFydHVw
OwoKIGRvdWJsZSBXcml0ZWJhY2tESVNQQ0xLOwogZG91YmxlIERQUENMS1VzaW5nU2luZ2xlRFBQ
THVtYTsKIGRvdWJsZSBEUFBDTEtVc2luZ1NpbmdsZURQUENocm9tYTsKIGRvdWJsZSBESVNQQ0xL
V2l0aFJhbXBpbmc7CiBkb3VibGUgRElTUENMS1dpdGhvdXRSYW1waW5nOwogZG91YmxlIEdsb2Jh
bERQUENMSzsKIGRvdWJsZSBESVNQQ0xLV2l0aFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0
eTsKIGRvdWJsZSBESVNQQ0xLV2l0aG91dFJhbXBpbmdSb3VuZGVkVG9ERlNHcmFudWxhcml0eTsK
IGRvdWJsZSBNYXhEaXNwY2xrUm91bmRlZFRvREZTR3JhbnVsYXJpdHk7CiBib29sIERDQ0VuYWJs
ZWRBbnlQbGFuZTsKIGRvdWJsZSBSZXR1cm5CYW5kd2lkdGhUb0RDTjsKIHVuc2lnbmVkIGludCBU
b3RhbEFjdGl2ZURQUDsKIHVuc2lnbmVkIGludCBUb3RhbERDQ0FjdGl2ZURQUDsKIGRvdWJsZSBV
cmdlbnRSb3VuZFRyaXBBbmRPdXRPZk9yZGVyTGF0ZW5jeTsKIGRvdWJsZSBTdHV0dGVyUGVyaW9k
OwogZG91YmxlIEZyYW1lVGltZUZvck1pbkZ1bGxERVRCdWZmZXJpbmdUaW1lOwogZG91YmxlIEF2
ZXJhZ2VSZWFkQmFuZHdpZHRoOwogZG91YmxlIFRvdGFsUm93UmVhZEJhbmR3aWR0aDsKIGRvdWJs
ZSBQYXJ0T2ZCdXJzdFRoYXRGaXRzSW5ST0I7CiBkb3VibGUgU3R1dHRlckJ1cnN0VGltZTsKIHVu
c2lnbmVkIGludCBOZXh0UHJlZmV0Y2hNb2RlOwogZG91YmxlIE5leHRNYXhWU3RhcnR1cDsKIGRv
dWJsZSBWQmxhbmtUaW1lOwogZG91YmxlIFNtYWxsZXN0VkJsYW5rOwogZG91YmxlIERDRkNMS0Rl
ZXBTbGVlcFBlclBsYW5lWzhdOwogZG91YmxlIEVmZmVjdGl2ZURFVFBsdXNMQkxpbmVzTHVtYTsK
IGRvdWJsZSBFZmZlY3RpdmVERVRQbHVzTEJMaW5lc0Nocm9tYTsKIGRvdWJsZSBVcmdlbnRMYXRl
bmN5U3VwcG9ydFVzTHVtYTsKIGRvdWJsZSBVcmdlbnRMYXRlbmN5U3VwcG9ydFVzQ2hyb21hOwog
dW5zaWduZWQgaW50IERTQ0Zvcm1hdEZhY3RvcjsKCiBib29sIER1bW15UFN0YXRlQ2hlY2s7CiBi
b29sIERSQU1DbG9ja0NoYW5nZVN1cHBvcnRzVkFjdGl2ZTsKIGJvb2wgUHJlZmV0Y2hNb2RlU3Vw
cG9ydGVkOwogYm9vbCBQcmVmZXRjaEFuZEltbWVkaWF0ZUZsaXBTdXBwb3J0ZWQ7CiBlbnVtIHNl
bGZfcmVmcmVzaF9hZmZpbml0eSBBbGxvd0RSQU1TZWxmUmVmcmVzaE9yRFJBTUNsb2NrQ2hhbmdl
SW5WYmxhbms7CiBkb3VibGUgWEZDUmVtb3RlU3VyZmFjZUZsaXBEZWxheTsKIGRvdWJsZSBUSW5p
dFhGaWxsOwogZG91YmxlIFRzbHZDaGs7CiBkb3VibGUgU3JjQWN0aXZlRHJhaW5SYXRlOwogYm9v
bCBJbW1lZGlhdGVGbGlwU3VwcG9ydGVkOwogZW51bSBtcGNfY29tYmluZV9hZmZpbml0eSBXaGVu
VG9Eb01QQ0NvbWJpbmU7CgogYm9vbCBQcmVmZXRjaEVSUk9SOwoKIHVuc2lnbmVkIGludCBWU3Rh
cnR1cExpbmVzOwogdW5zaWduZWQgaW50IEFjdGl2ZURQUHM7CiB1bnNpZ25lZCBpbnQgTEJMYXRl
bmN5SGlkaW5nU291cmNlTGluZXNZOwogdW5zaWduZWQgaW50IExCTGF0ZW5jeUhpZGluZ1NvdXJj
ZUxpbmVzQzsKIGRvdWJsZSBBY3RpdmVEUkFNQ2xvY2tDaGFuZ2VMYXRlbmN5TWFyZ2luWzhdOwog
ZG91YmxlIE1pbkFjdGl2ZURSQU1DbG9ja0NoYW5nZU1hcmdpbjsKIGRvdWJsZSBJbml0RmlsbExl
dmVsOwogZG91YmxlIEZpbmFsRmlsbE1hcmdpbjsKIGRvdWJsZSBGaW5hbEZpbGxMZXZlbDsKIGRv
dWJsZSBSZW1haW5pbmdGaWxsTGV2ZWw7CiBkb3VibGUgVEZpbmFseEZpbGw7CgoKCgogZG91Ymxl
IFNSRXhpdFRpbWU7CiBkb3VibGUgU1JFbnRlclBsdXNFeGl0VGltZTsKIGRvdWJsZSBVcmdlbnRM
YXRlbmN5UGl4ZWxEYXRhT25seTsKIGRvdWJsZSBVcmdlbnRMYXRlbmN5UGl4ZWxNaXhlZFdpdGhW
TURhdGE7CiBkb3VibGUgVXJnZW50TGF0ZW5jeVZNRGF0YU9ubHk7CiBkb3VibGUgVXJnZW50TGF0
ZW5jeTsKIGRvdWJsZSBXcml0ZWJhY2tMYXRlbmN5OwogZG91YmxlIFBlcmNlbnRPZklkZWFsRFJB
TUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5UGl4ZWxEYXRhT25seTsK
IGRvdWJsZSBQZXJjZW50T2ZJZGVhbERSQU1GYWJyaWNBbmRTRFBQb3J0QldSZWNlaXZlZEFmdGVy
VXJnTGF0ZW5jeVBpeGVsTWl4ZWRXaXRoVk1EYXRhOwogZG91YmxlIFBlcmNlbnRPZklkZWFsRFJB
TUZhYnJpY0FuZFNEUFBvcnRCV1JlY2VpdmVkQWZ0ZXJVcmdMYXRlbmN5Vk1EYXRhT25seTsKIGRv
dWJsZSBNYXhBdmVyYWdlUGVyY2VudE9mSWRlYWxTRFBQb3J0QldEaXNwbGF5Q2FuVXNlSW5Ob3Jt
YWxTeXN0ZW1PcGVyYXRpb247CiBkb3VibGUgTWF4QXZlcmFnZVBlcmNlbnRPZklkZWFsRFJBTUJX
RGlzcGxheUNhblVzZUluTm9ybWFsU3lzdGVtT3BlcmF0aW9uOwogZG91YmxlIE51bWJlck9mQ2hh
bm5lbHM7CiBkb3VibGUgRFJBTUNoYW5uZWxXaWR0aDsKIGRvdWJsZSBGYWJyaWNEYXRhcGF0aFRv
RENORGF0YVJldHVybjsKIGRvdWJsZSBSZXR1cm5CdXNXaWR0aDsKIGRvdWJsZSBEb3duc3ByZWFk
aW5nOwogZG91YmxlIERJU1BDTEtEUFBDTEtEU0NDTEtEb3duU3ByZWFkaW5nOwogZG91YmxlIERJ
U1BDTEtEUFBDTEtWQ09TcGVlZDsKIGRvdWJsZSBSb3VuZFRyaXBQaW5nTGF0ZW5jeUN5Y2xlczsK
IGRvdWJsZSBVcmdlbnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbDsKIGRvdWJsZSBVcmdlbnRP
dXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFBpeGVsRGF0YU9ubHk7CiBkb3VibGUgVXJnZW50T3V0
T2ZPcmRlclJldHVyblBlckNoYW5uZWxQaXhlbE1peGVkV2l0aFZNRGF0YTsKIGRvdWJsZSBVcmdl
bnRPdXRPZk9yZGVyUmV0dXJuUGVyQ2hhbm5lbFZNRGF0YU9ubHk7CiB1bnNpZ25lZCBpbnQgVk1N
UGFnZVNpemU7CiBkb3VibGUgRFJBTUNsb2NrQ2hhbmdlTGF0ZW5jeTsKIGRvdWJsZSBYRkNCdXNU
cmFuc3BvcnRUaW1lOwogYm9vbCBVc2VVcmdlbnRCdXJzdEJhbmR3aWR0aDsKIGRvdWJsZSBYRkNY
QlVGTGF0ZW5jeVRvbGVyYW5jZTsKCgoKCiB1bnNpZ25lZCBpbnQgUk9CQnVmZmVyU2l6ZUluS0J5
dGU7CiBkb3VibGUgREVUQnVmZmVyU2l6ZUluS0J5dGU7CiBkb3VibGUgREVUQnVmZmVyU2l6ZUlu
VGltZTsKIHVuc2lnbmVkIGludCBEUFBPdXRwdXRCdWZmZXJQaXhlbHM7CiB1bnNpZ25lZCBpbnQg
T1BQT3V0cHV0QnVmZmVyTGluZXM7CiB1bnNpZ25lZCBpbnQgUGl4ZWxDaHVua1NpemVJbktCeXRl
OwogZG91YmxlIFJldHVybkJXOwogYm9vbCBHUFVWTUVuYWJsZTsKIGJvb2wgSG9zdFZNRW5hYmxl
OwogdW5zaWduZWQgaW50IEdQVVZNTWF4UGFnZVRhYmxlTGV2ZWxzOwogdW5zaWduZWQgaW50IEhv
c3RWTU1heFBhZ2VUYWJsZUxldmVsczsKIHVuc2lnbmVkIGludCBIb3N0Vk1DYWNoZWRQYWdlVGFi
bGVMZXZlbHM7CiB1bnNpZ25lZCBpbnQgT3ZlcnJpZGVHUFVWTVBhZ2VUYWJsZUxldmVsczsKIHVu
c2lnbmVkIGludCBPdmVycmlkZUhvc3RWTVBhZ2VUYWJsZUxldmVsczsKIHVuc2lnbmVkIGludCBN
ZXRhQ2h1bmtTaXplOwogZG91YmxlIE1pblBpeGVsQ2h1bmtTaXplQnl0ZXM7CiBkb3VibGUgTWlu
TWV0YUNodW5rU2l6ZUJ5dGVzOwogdW5zaWduZWQgaW50IFdyaXRlYmFja0NodW5rU2l6ZTsKIGJv
b2wgT0RNQ2FwYWJpbGl0eTsKIHVuc2lnbmVkIGludCBOdW1iZXJPZkRTQzsKIHVuc2lnbmVkIGlu
dCBMaW5lQnVmZmVyU2l6ZTsKIHVuc2lnbmVkIGludCBNYXhMaW5lQnVmZmVyTGluZXM7CiB1bnNp
Z25lZCBpbnQgV3JpdGViYWNrSW50ZXJmYWNlTHVtYUJ1ZmZlclNpemU7CiB1bnNpZ25lZCBpbnQg
V3JpdGViYWNrSW50ZXJmYWNlQ2hyb21hQnVmZmVyU2l6ZTsKIHVuc2lnbmVkIGludCBXcml0ZWJh
Y2tDaHJvbWFMaW5lQnVmZmVyV2lkdGg7CiBlbnVtIHdyaXRlYmFja19jb25maWcgV3JpdGViYWNr
Q29uZmlndXJhdGlvbjsKIGRvdWJsZSBNYXhEQ0hVQlRvUFNDTFRocm91Z2hwdXQ7CiBkb3VibGUg
TWF4UFNDTFRvTEJUaHJvdWdocHV0OwogdW5zaWduZWQgaW50IFBURUJ1ZmZlclNpemVJblJlcXVl
c3RzTHVtYTsKIHVuc2lnbmVkIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0Nocm9tYTsKIGRv
dWJsZSBESVNQQ0xLUmFtcGluZ01hcmdpbjsKIHVuc2lnbmVkIGludCBNYXhJbnRlckRDTlRpbGVS
ZXBlYXRlcnM7CiBib29sIFhGQ1N1cHBvcnRlZDsKIGRvdWJsZSBYRkNTbHZDaHVua1NpemU7CiBk
b3VibGUgWEZDRmlsbEJXT3ZlcmhlYWQ7CiBkb3VibGUgWEZDRmlsbENvbnN0YW50OwogZG91Ymxl
IFhGQ1RTbHZWdXBkYXRlT2Zmc2V0OwogZG91YmxlIFhGQ1RTbHZWdXBkYXRlV2lkdGg7CiBkb3Vi
bGUgWEZDVFNsdlZyZWFkeU9mZnNldDsKIGRvdWJsZSBEUFBDTEtEZWxheVN1YnRvdGFsOwogZG91
YmxlIERQUENMS0RlbGF5U0NMOwogZG91YmxlIERQUENMS0RlbGF5U0NMTEJPbmx5OwogZG91Ymxl
IERQUENMS0RlbGF5Q05WQ0Zvcm1hdGVyOwogZG91YmxlIERQUENMS0RlbGF5Q05WQ0N1cnNvcjsK
IGRvdWJsZSBESVNQQ0xLRGVsYXlTdWJ0b3RhbDsKIGJvb2wgUHJvZ3Jlc3NpdmVUb0ludGVybGFj
ZVVuaXRJbk9QUDsKCiBpbnQgVm9sdGFnZUxldmVsOwogZG91YmxlIEZhYnJpY0Nsb2NrOwogZG91
YmxlIERSQU1TcGVlZDsKIGRvdWJsZSBESVNQQ0xLOwogZG91YmxlIFNPQ0NMSzsKIGRvdWJsZSBE
Q0ZDTEs7CgogdW5zaWduZWQgaW50IE51bWJlck9mQWN0aXZlUGxhbmVzOwogdW5zaWduZWQgaW50
IE51bWJlck9mRFNDU2xpY2VzWzhdOwogdW5zaWduZWQgaW50IFZpZXdwb3J0V2lkdGhbOF07CiB1
bnNpZ25lZCBpbnQgVmlld3BvcnRIZWlnaHRbOF07CiB1bnNpZ25lZCBpbnQgVmlld3BvcnRZU3Rh
cnRZWzhdOwogdW5zaWduZWQgaW50IFZpZXdwb3J0WVN0YXJ0Q1s4XTsKIHVuc2lnbmVkIGludCBQ
aXRjaFlbOF07CiB1bnNpZ25lZCBpbnQgUGl0Y2hDWzhdOwogZG91YmxlIEhSYXRpb1s4XTsKIGRv
dWJsZSBWUmF0aW9bOF07CiB1bnNpZ25lZCBpbnQgaHRhcHNbOF07CiB1bnNpZ25lZCBpbnQgdnRh
cHNbOF07CiB1bnNpZ25lZCBpbnQgSFRBUHNDaHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgVlRBUHND
aHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgSFRvdGFsWzhdOwogdW5zaWduZWQgaW50IFZUb3RhbFs4
XTsKIHVuc2lnbmVkIGludCBWVG90YWxfTWF4WzhdOwogdW5zaWduZWQgaW50IFZUb3RhbF9NaW5b
OF07CiBpbnQgRFBQUGVyUGxhbmVbOF07CiBkb3VibGUgUGl4ZWxDbG9ja1s4XTsKIGRvdWJsZSBQ
aXhlbENsb2NrQmFja0VuZFs4XTsKIGJvb2wgRENDRW5hYmxlWzhdOwogYm9vbCBGRUNFbmFibGVb
OF07CiB1bnNpZ25lZCBpbnQgRENDTWV0YVBpdGNoWVs4XTsKIHVuc2lnbmVkIGludCBEQ0NNZXRh
UGl0Y2hDWzhdOwogZW51bSBzY2FuX2RpcmVjdGlvbl9jbGFzcyBTb3VyY2VTY2FuWzhdOwogZW51
bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFNvdXJjZVBpeGVsRm9ybWF0WzhdOwogYm9vbCBXcml0ZWJh
Y2tFbmFibGVbOF07CiB1bnNpZ25lZCBpbnQgQWN0aXZlV3JpdGViYWNrc1BlclBsYW5lWzhdOwog
ZG91YmxlIFdyaXRlYmFja0Rlc3RpbmF0aW9uV2lkdGhbOF07CiBkb3VibGUgV3JpdGViYWNrRGVz
dGluYXRpb25IZWlnaHRbOF07CiBkb3VibGUgV3JpdGViYWNrU291cmNlSGVpZ2h0WzhdOwogZW51
bSBzb3VyY2VfZm9ybWF0X2NsYXNzIFdyaXRlYmFja1BpeGVsRm9ybWF0WzhdOwogdW5zaWduZWQg
aW50IFdyaXRlYmFja0x1bWFIVGFwc1s4XTsKIHVuc2lnbmVkIGludCBXcml0ZWJhY2tMdW1hVlRh
cHNbOF07CiB1bnNpZ25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHNbOF07CiB1bnNpZ25lZCBp
bnQgV3JpdGViYWNrQ2hyb21hVlRhcHNbOF07CiBkb3VibGUgV3JpdGViYWNrSFJhdGlvWzhdOwog
ZG91YmxlIFdyaXRlYmFja1ZSYXRpb1s4XTsKIHVuc2lnbmVkIGludCBIQWN0aXZlWzhdOwogdW5z
aWduZWQgaW50IFZBY3RpdmVbOF07CiBib29sIEludGVybGFjZVs4XTsKIGVudW0gZG1fc3dpenps
ZV9tb2RlIFN1cmZhY2VUaWxpbmdbOF07CiB1bnNpZ25lZCBpbnQgU2NhbGVyUmVjb3V0V2lkdGhb
OF07CiBib29sIER5bmFtaWNNZXRhZGF0YUVuYWJsZVs4XTsKIGludCBEeW5hbWljTWV0YWRhdGFM
aW5lc0JlZm9yZUFjdGl2ZVJlcXVpcmVkWzhdOwogdW5zaWduZWQgaW50IER5bmFtaWNNZXRhZGF0
YVRyYW5zbWl0dGVkQnl0ZXNbOF07CiBkb3VibGUgRENDUmF0ZVs4XTsKIGRvdWJsZSBBdmVyYWdl
RENDQ29tcHJlc3Npb25SYXRlOwogZW51bSBvZG1fY29tYmluZV9tb2RlIE9ETUNvbWJpbmVFbmFi
bGVkWzhdOwogZG91YmxlIE91dHB1dEJwcFs4XTsKIGJvb2wgRFNDRW5hYmxlZFs4XTsKIHVuc2ln
bmVkIGludCBEU0NJbnB1dEJpdFBlckNvbXBvbmVudFs4XTsKIGVudW0gb3V0cHV0X2Zvcm1hdF9j
bGFzcyBPdXRwdXRGb3JtYXRbOF07CiBlbnVtIG91dHB1dF9lbmNvZGVyX2NsYXNzIE91dHB1dFs4
XTsKIHVuc2lnbmVkIGludCBCbGVuZGluZ0FuZFRpbWluZ1s4XTsKIGJvb2wgU3luY2hyb25pemVk
VkJsYW5rOwogdW5zaWduZWQgaW50IE51bWJlck9mQ3Vyc29yc1s4XTsKIHVuc2lnbmVkIGludCBD
dXJzb3JXaWR0aFs4XVsyXTsKIHVuc2lnbmVkIGludCBDdXJzb3JCUFBbOF1bMl07CiBib29sIFhG
Q0VuYWJsZWRbOF07CiBib29sIFNjYWxlckVuYWJsZWRbOF07CgoKIGJvb2wgSW1tZWRpYXRlRmxp
cFN1cHBvcnQ7CiBkb3VibGUgREVUQnVmZmVyU2l6ZVlbOF07CiBkb3VibGUgREVUQnVmZmVyU2l6
ZUNbOF07CiB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZWzhdOwogdW5zaWduZWQgaW50IFN3YXRo
SGVpZ2h0Q1s4XTsKIHVuc2lnbmVkIGludCBMQkJpdFBlclBpeGVsWzhdOwogZG91YmxlIExhc3RQ
aXhlbE9mTGluZUV4dHJhV2F0ZXJtYXJrOwogZG91YmxlIFRvdGFsRGF0YVJlYWRCYW5kd2lkdGg7
CiB1bnNpZ25lZCBpbnQgVG90YWxBY3RpdmVXcml0ZWJhY2s7CiB1bnNpZ25lZCBpbnQgRWZmZWN0
aXZlTEJMYXRlbmN5SGlkaW5nU291cmNlTGluZXNMdW1hOwogdW5zaWduZWQgaW50IEVmZmVjdGl2
ZUxCTGF0ZW5jeUhpZGluZ1NvdXJjZUxpbmVzQ2hyb21hOwogZG91YmxlIEJhbmR3aWR0aEF2YWls
YWJsZUZvckltbWVkaWF0ZUZsaXA7CiB1bnNpZ25lZCBpbnQgUHJlZmV0Y2hNb2RlWzcgKyAxXVsy
XTsKIHVuc2lnbmVkIGludCBQcmVmZXRjaE1vZGVQZXJTdGF0ZVs3ICsgMV1bMl07CiB1bnNpZ25l
ZCBpbnQgTWluUHJlZmV0Y2hNb2RlOwogdW5zaWduZWQgaW50IE1heFByZWZldGNoTW9kZTsKIGJv
b2wgQW55TGluZXNGb3JWTU9yUm93VG9vTGFyZ2U7CiBkb3VibGUgTWF4VlN0YXJ0dXA7CiBib29s
IElnbm9yZVZpZXdwb3J0UG9zaXRpb25pbmc7CiBib29sIEVycm9yUmVzdWx0WzhdOwoKCgogZG91
YmxlIERDRkNMS0RlZXBTbGVlcDsKIGRvdWJsZSBVcmdlbnRXYXRlcm1hcms7CiBkb3VibGUgVXJn
ZW50RXh0cmFMYXRlbmN5OwogZG91YmxlIFdyaXRlYmFja1VyZ2VudFdhdGVybWFyazsKIGRvdWJs
ZSBTdHV0dGVyRXhpdFdhdGVybWFyazsKIGRvdWJsZSBTdHV0dGVyRW50ZXJQbHVzRXhpdFdhdGVy
bWFyazsKIGRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VXYXRlcm1hcms7CiBkb3VibGUgV3JpdGViYWNr
RFJBTUNsb2NrQ2hhbmdlV2F0ZXJtYXJrOwogZG91YmxlIFN0dXR0ZXJFZmZpY2llbmN5OwogZG91
YmxlIFN0dXR0ZXJFZmZpY2llbmN5Tm90SW5jbHVkaW5nVkJsYW5rOwogZG91YmxlIE5vblVyZ2Vu
dExhdGVuY3lUb2xlcmFuY2U7CiBkb3VibGUgTWluQWN0aXZlRFJBTUNsb2NrQ2hhbmdlTGF0ZW5j
eVN1cHBvcnRlZDsKCgoKCiBkb3VibGUgRElTUENMS19jYWxjdWxhdGVkOwogZG91YmxlIERQUENM
S19jYWxjdWxhdGVkWzhdOwoKIHVuc2lnbmVkIGludCBWVXBkYXRlT2Zmc2V0UGl4WzhdOwogZG91
YmxlIFZVcGRhdGVXaWR0aFBpeFs4XTsKIGRvdWJsZSBWUmVhZHlPZmZzZXRQaXhbOF07CgogdW5z
aWduZWQgaW50IFRvdEltbWVkaWF0ZUZsaXBCeXRlczsKIGRvdWJsZSBUQ2FsYzsKCiBkaXNwbGF5
X2UyZV9waXBlX3BhcmFtc19zdCBjYWNoZV9waXBlc1s4XTsKIHVuc2lnbmVkIGludCBjYWNoZV9u
dW1fcGlwZXM7CiB1bnNpZ25lZCBpbnQgcGlwZV9wbGFuZVs4XTsKCgoKIGJvb2wgRW1iZWRkZWRQ
YW5lbFs4XTsKIGJvb2wgU3VwcG9ydEdGWDdDb21wYXRpYmxlVGlsaW5nSW4zMmJwcEFuZDY0YnBw
OwogZG91YmxlIE1heEhTQ0xSYXRpbzsKIGRvdWJsZSBNYXhWU0NMUmF0aW87CiB1bnNpZ25lZCBp
bnQgTWF4TnVtV3JpdGViYWNrOwogYm9vbCBXcml0ZWJhY2tMdW1hQW5kQ2hyb21hU2NhbGluZ1N1
cHBvcnRlZDsKIGJvb2wgQ3Vyc29yNjRCcHBTdXBwb3J0OwogZG91YmxlIERDRkNMS1BlclN0YXRl
WzcgKyAxXTsKIGRvdWJsZSBEQ0ZDTEtTdGF0ZVs3ICsgMV1bMl07CiBkb3VibGUgRmFicmljQ2xv
Y2tQZXJTdGF0ZVs3ICsgMV07CiBkb3VibGUgU09DQ0xLUGVyU3RhdGVbNyArIDFdOwogZG91Ymxl
IFBIWUNMS1BlclN0YXRlWzcgKyAxXTsKIGRvdWJsZSBEVEJDTEtQZXJTdGF0ZVs3ICsgMV07CiBk
b3VibGUgTWF4RHBwY2xrWzcgKyAxXTsKIGRvdWJsZSBNYXhEU0NDTEtbNyArIDFdOwogZG91Ymxl
IERSQU1TcGVlZFBlclN0YXRlWzcgKyAxXTsKIGRvdWJsZSBNYXhEaXNwY2xrWzcgKyAxXTsKIGlu
dCBWb2x0YWdlT3ZlcnJpZGVMZXZlbDsKCgogYm9vbCBTY2FsZVJhdGlvQW5kVGFwc1N1cHBvcnQ7
CiBib29sIFNvdXJjZUZvcm1hdFBpeGVsQW5kU2NhblN1cHBvcnQ7CiBkb3VibGUgVG90YWxCYW5k
d2lkdGhDb25zdW1lZEdCeXRlUGVyU2Vjb25kOwogYm9vbCBEQ0NFbmFibGVkSW5BbnlQbGFuZTsK
IGJvb2wgV3JpdGViYWNrTGF0ZW5jeVN1cHBvcnQ7CiBib29sIFdyaXRlYmFja01vZGVTdXBwb3J0
OwogYm9vbCBXcml0ZWJhY2sxMGJwYzQyMFN1cHBvcnRlZDsKIGJvb2wgQmFuZHdpZHRoU3VwcG9y
dFs3ICsgMV07CiB1bnNpZ25lZCBpbnQgVG90YWxOdW1iZXJPZkFjdGl2ZVdyaXRlYmFjazsKIGRv
dWJsZSBDcml0aWNhbFBvaW50OwogZG91YmxlIFJldHVybkJXVG9EQ05QZXJTdGF0ZTsKIGJvb2wg
SXNFcnJvclJlc3VsdFs3ICsgMV1bMl1bOF07CiBib29sIHByZWZldGNoX3ZtX2J3X3ZhbGlkOwog
Ym9vbCBwcmVmZXRjaF9yb3dfYndfdmFsaWQ7CiBib29sIE51bWJlck9mT1RHU3VwcG9ydDsKIGJv
b2wgTm9uc3VwcG9ydGVkRFNDSW5wdXRCUEM7CiBib29sIFdyaXRlYmFja1NjYWxlUmF0aW9BbmRU
YXBzU3VwcG9ydDsKIGJvb2wgQ3Vyc29yU3VwcG9ydDsKIGJvb2wgUGl0Y2hTdXBwb3J0OwogZW51
bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBWYWxpZGF0aW9uU3RhdHVzWzcgKyAxXTsKCiBkb3VibGUg
V3JpdGViYWNrTGluZUJ1ZmZlckx1bWFCdWZmZXJTaXplOwogZG91YmxlIFdyaXRlYmFja0xpbmVC
dWZmZXJDaHJvbWFCdWZmZXJTaXplOwogZG91YmxlIFdyaXRlYmFja01pbkhTQ0xSYXRpbzsKIGRv
dWJsZSBXcml0ZWJhY2tNaW5WU0NMUmF0aW87CiBkb3VibGUgV3JpdGViYWNrTWF4SFNDTFJhdGlv
OwogZG91YmxlIFdyaXRlYmFja01heFZTQ0xSYXRpbzsKIGRvdWJsZSBXcml0ZWJhY2tNYXhIU0NM
VGFwczsKIGRvdWJsZSBXcml0ZWJhY2tNYXhWU0NMVGFwczsKIHVuc2lnbmVkIGludCBNYXhOdW1E
UFA7CiB1bnNpZ25lZCBpbnQgTWF4TnVtT1RHOwogZG91YmxlIEN1cnNvckJ1ZmZlclNpemU7CiBk
b3VibGUgQ3Vyc29yQ2h1bmtTaXplOwogdW5zaWduZWQgaW50IE1vZGU7CiBkb3VibGUgT3V0cHV0
TGlua0RQTGFuZXNbOF07CiBkb3VibGUgRm9yY2VkT3V0cHV0TGlua0JQUFs4XTsKIGRvdWJsZSBJ
bW1lZGlhdGVGbGlwQldbOF07CiBkb3VibGUgTWF4TWF4VlN0YXJ0dXBbNyArIDFdWzJdOwoKIGRv
dWJsZSBXcml0ZWJhY2tMdW1hVkV4dHJhOwogZG91YmxlIFdyaXRlYmFja0Nocm9tYVZFeHRyYTsK
IGRvdWJsZSBXcml0ZWJhY2tSZXF1aXJlZERJU1BDTEs7CiBkb3VibGUgTWF4aW11bVN3YXRoV2lk
dGhTdXBwb3J0OwogZG91YmxlIE1heGltdW1Td2F0aFdpZHRoSW5ERVRCdWZmZXI7CiBkb3VibGUg
TWF4aW11bVN3YXRoV2lkdGhJbkxpbmVCdWZmZXI7CiBkb3VibGUgTWF4RGlzcGNsa1JvdW5kZWRE
b3duVG9ERlNHcmFudWxhcml0eTsKIGRvdWJsZSBNYXhEcHBjbGtSb3VuZGVkRG93blRvREZTR3Jh
bnVsYXJpdHk7CiBkb3VibGUgUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRob3V0T0RNQ29tYmluZTsK
IGRvdWJsZSBQbGFuZVJlcXVpcmVkRElTUENMS1dpdGhPRE1Db21iaW5lOwogZG91YmxlIFBsYW5l
UmVxdWlyZWRESVNQQ0xLOwogZG91YmxlIFRvdGFsTnVtYmVyT2ZBY3RpdmVPVEc7CiBkb3VibGUg
RkVDT3ZlcmhlYWQ7CiBkb3VibGUgRWZmZWN0aXZlRkVDT3ZlcmhlYWQ7CiBkb3VibGUgT3V0YnBw
OwogdW5zaWduZWQgaW50IE91dGJwcERTQzsKIGRvdWJsZSBUb3RhbERTQ1VuaXRzUmVxdWlyZWQ7
CiBkb3VibGUgYnBwOwogdW5zaWduZWQgaW50IHNsaWNlczsKIGRvdWJsZSBTd2F0aFdpZHRoR3Jh
bnVsYXJpdHlZOwogZG91YmxlIFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVzWTsKIGRvdWJsZSBT
d2F0aFdpZHRoR3JhbnVsYXJpdHlDOwogZG91YmxlIFJvdW5kZWRVcE1heFN3YXRoU2l6ZUJ5dGVz
QzsKIGRvdWJsZSBFZmZlY3RpdmVERVRMQkxpbmVzTHVtYTsKIGRvdWJsZSBFZmZlY3RpdmVERVRM
QkxpbmVzQ2hyb21hOwogZG91YmxlIFByb2plY3RlZERDRkNMS0RlZXBTbGVlcFs3ICsgMV1bMl07
CiBkb3VibGUgUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVZOwogZG91YmxlIFBERUFuZE1ldGFQ
VEVCeXRlc1BlckZyYW1lQzsKIHVuc2lnbmVkIGludCBNZXRhUm93Qnl0ZXNZOwogdW5zaWduZWQg
aW50IE1ldGFSb3dCeXRlc0M7CiB1bnNpZ25lZCBpbnQgRFBURUJ5dGVzUGVyUm93QzsKIHVuc2ln
bmVkIGludCBEUFRFQnl0ZXNQZXJSb3dZOwogZG91YmxlIEV4dHJhTGF0ZW5jeTsKIGRvdWJsZSBU
aW1lQ2FsYzsKIGRvdWJsZSBUV2FpdDsKIGRvdWJsZSBNYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhQ
cmVmZXRjaDsKIGRvdWJsZSBNYXhpbXVtUmVhZEJhbmR3aWR0aFdpdGhvdXRQcmVmZXRjaDsKIGRv
dWJsZSB0b3RhbF9kY25fcmVhZF9id193aXRoX2ZsaXA7CiBkb3VibGUgdG90YWxfZGNuX3JlYWRf
Yndfd2l0aF9mbGlwX25vX3VyZ2VudF9idXJzdDsKIGRvdWJsZSBGcmFjdGlvbk9mVXJnZW50QmFu
ZHdpZHRoOwogZG91YmxlIEZyYWN0aW9uT2ZVcmdlbnRCYW5kd2lkdGhJbW1lZGlhdGVGbGlwOwoK
CiBkb3VibGUgSWRlYWxTRFBQb3J0QmFuZHdpZHRoUGVyU3RhdGVbNyArIDFdWzJdOwogdW5zaWdu
ZWQgaW50IE5vT2ZEUFBbNyArIDFdWzJdWzhdOwogaW50IE5vT2ZEUFBUaGlzU3RhdGVbOF07CiBl
bnVtIG9kbV9jb21iaW5lX21vZGUgT0RNQ29tYmluZUVuYWJsZVBlclN0YXRlWzcgKyAxXVs4XTsK
IGRvdWJsZSBTd2F0aFdpZHRoWVRoaXNTdGF0ZVs4XTsKIHVuc2lnbmVkIGludCBTd2F0aEhlaWdo
dENQZXJTdGF0ZVs3ICsgMV1bMl1bOF07CiB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRZVGhpc1N0
YXRlWzhdOwogdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0Q1RoaXNTdGF0ZVs4XTsKIGRvdWJsZSBW
UmF0aW9QcmVZWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBWUmF0aW9QcmVDWzcgKyAxXVsyXVs4XTsK
IGRvdWJsZSBSZXF1aXJlZFByZWZldGNoUGl4ZWxEYXRhQldMdW1hWzcgKyAxXVsyXVs4XTsKIGRv
dWJsZSBSZXF1aXJlZFByZWZldGNoUGl4ZWxEYXRhQldDaHJvbWFbNyArIDFdWzJdWzhdOwogZG91
YmxlIFJlcXVpcmVkRFBQQ0xLWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBSZXF1aXJlZERQUENMS1Ro
aXNTdGF0ZVs4XTsKIGJvb2wgUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkWVs3ICsgMV1bMl1bOF07
CiBib29sIFBURUJ1ZmZlclNpemVOb3RFeGNlZWRlZENbNyArIDFdWzJdWzhdOwogYm9vbCBCYW5k
d2lkdGhXaXRob3V0UHJlZmV0Y2hTdXBwb3J0ZWRbNyArIDFdWzJdOwogYm9vbCBQcmVmZXRjaFN1
cHBvcnRlZFs3ICsgMV1bMl07CiBib29sIFZSYXRpb0luUHJlZmV0Y2hTdXBwb3J0ZWRbNyArIDFd
WzJdOwogZG91YmxlIFJlcXVpcmVkRElTUENMS1s3ICsgMV1bMl07CiBib29sIERJU1BDTEtfRFBQ
Q0xLX1N1cHBvcnRbNyArIDFdWzJdOwogYm9vbCBUb3RhbEF2YWlsYWJsZVBpcGVzU3VwcG9ydFs3
ICsgMV1bMl07CiB1bnNpZ25lZCBpbnQgVG90YWxOdW1iZXJPZkFjdGl2ZURQUFs3ICsgMV1bMl07
CiB1bnNpZ25lZCBpbnQgVG90YWxOdW1iZXJPZkRDQ0FjdGl2ZURQUFs3ICsgMV1bMl07CiBib29s
IE1vZGVTdXBwb3J0WzcgKyAxXVsyXTsKIGRvdWJsZSBSZXR1cm5CV1BlclN0YXRlWzcgKyAxXVsy
XTsKIGJvb2wgRElPU3VwcG9ydFs3ICsgMV07CiBib29sIE5vdEVub3VnaERTQ1VuaXRzWzcgKyAx
XTsKIGJvb2wgRFNDQ0xLUmVxdWlyZWRNb3JlVGhhblN1cHBvcnRlZFs3ICsgMV07CiBib29sIERU
QkNMS1JlcXVpcmVkTW9yZVRoYW5TdXBwb3J0ZWRbNyArIDFdOwogZG91YmxlIFVyZ2VudFJvdW5k
VHJpcEFuZE91dE9mT3JkZXJMYXRlbmN5UGVyU3RhdGVbNyArIDFdOwogYm9vbCBST0JTdXBwb3J0
WzcgKyAxXVsyXTsKIGJvb2wgUFRFQnVmZmVyU2l6ZU5vdEV4Y2VlZGVkWzcgKyAxXVsyXTsKIGJv
b2wgVG90YWxWZXJ0aWNhbEFjdGl2ZUJhbmR3aWR0aFN1cHBvcnRbNyArIDFdWzJdOwogZG91Ymxl
IE1heFRvdGFsVmVydGljYWxBY3RpdmVBdmFpbGFibGVCYW5kd2lkdGhbNyArIDFdWzJdOwogZG91
YmxlIFByZWZldGNoQldbOF07CiBkb3VibGUgUERFQW5kTWV0YVBURUJ5dGVzUGVyRnJhbWVbNyAr
IDFdWzJdWzhdOwogZG91YmxlIE1ldGFSb3dCeXRlc1s3ICsgMV1bMl1bOF07CiBkb3VibGUgRFBU
RUJ5dGVzUGVyUm93WzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBQcmVmZXRjaExpbmVzWVs3ICsgMV1b
Ml1bOF07CiBkb3VibGUgUHJlZmV0Y2hMaW5lc0NbNyArIDFdWzJdWzhdOwogdW5zaWduZWQgaW50
IE1heE51bVN3WVs4XTsKIHVuc2lnbmVkIGludCBNYXhOdW1Td0NbOF07CiBkb3VibGUgUHJlZmls
bFlbOF07CiBkb3VibGUgUHJlZmlsbENbOF07CiBkb3VibGUgTGluZVRpbWVzRm9yUHJlZmV0Y2hb
OF07CiBkb3VibGUgTGluZXNGb3JNZXRhUFRFWzhdOwogZG91YmxlIExpbmVzRm9yTWV0YUFuZERQ
VEVSb3dbOF07CiBkb3VibGUgTWluRFBQQ0xLVXNpbmdTaW5nbGVEUFBbOF07CiBkb3VibGUgU3dh
dGhXaWR0aFlTaW5nbGVEUFBbOF07CiBkb3VibGUgQnl0ZVBlclBpeGVsSW5ERVRZWzhdOwogZG91
YmxlIEJ5dGVQZXJQaXhlbEluREVUQ1s4XTsKIGJvb2wgUmVxdWlyZXNEU0NbNyArIDFdWzhdOwog
dW5zaWduZWQgaW50IE51bWJlck9mRFNDU2xpY2VbNyArIDFdWzhdOwogZG91YmxlIFJlcXVpcmVz
RkVDWzcgKyAxXVs4XTsKIGRvdWJsZSBPdXRwdXRCcHBQZXJTdGF0ZVs3ICsgMV1bOF07CiBkb3Vi
bGUgRFNDRGVsYXlQZXJTdGF0ZVs3ICsgMV1bOF07CiBib29sIFZpZXdwb3J0U2l6ZVN1cHBvcnRb
NyArIDFdWzJdOwogdW5zaWduZWQgaW50IFJlYWQyNTZCbG9ja0hlaWdodFlbOF07CiB1bnNpZ25l
ZCBpbnQgUmVhZDI1NkJsb2NrV2lkdGhZWzhdOwogdW5zaWduZWQgaW50IFJlYWQyNTZCbG9ja0hl
aWdodENbOF07CiB1bnNpZ25lZCBpbnQgUmVhZDI1NkJsb2NrV2lkdGhDWzhdOwogZG91YmxlIE1h
eFN3YXRoSGVpZ2h0WVs4XTsKIGRvdWJsZSBNYXhTd2F0aEhlaWdodENbOF07CiBkb3VibGUgTWlu
U3dhdGhIZWlnaHRZWzhdOwogZG91YmxlIE1pblN3YXRoSGVpZ2h0Q1s4XTsKIGRvdWJsZSBSZWFk
QmFuZHdpZHRoTHVtYVs4XTsKIGRvdWJsZSBSZWFkQmFuZHdpZHRoQ2hyb21hWzhdOwogZG91Ymxl
IFJlYWRCYW5kd2lkdGhbOF07CiBkb3VibGUgV3JpdGVCYW5kd2lkdGhbOF07CiBkb3VibGUgUFND
TF9GQUNUT1JbOF07CiBkb3VibGUgUFNDTF9GQUNUT1JfQ0hST01BWzhdOwogZG91YmxlIE1heGlt
dW1WU3RhcnR1cFs3ICsgMV1bMl1bOF07CiB1bnNpZ25lZCBpbnQgTWFjcm9UaWxlV2lkdGhZWzhd
OwogdW5zaWduZWQgaW50IE1hY3JvVGlsZVdpZHRoQ1s4XTsKIGRvdWJsZSBBbGlnbmVkRENDTWV0
YVBpdGNoWzhdOwogZG91YmxlIEFsaWduZWRZUGl0Y2hbOF07CiBkb3VibGUgQWxpZ25lZENQaXRj
aFs4XTsKIGRvdWJsZSBNYXhpbXVtU3dhdGhXaWR0aFs4XTsKIGRvdWJsZSBjdXJzb3JfYndbOF07
CiBkb3VibGUgY3Vyc29yX2J3X3ByZVs4XTsKIGRvdWJsZSBUbm9fYndbOF07CiBkb3VibGUgcHJl
ZmV0Y2hfdm1yb3dfYndbOF07CiBkb3VibGUgRGVzdGluYXRpb25MaW5lc1RvUmVxdWVzdFZNSW5J
bW1lZGlhdGVGbGlwWzhdOwogZG91YmxlIERlc3RpbmF0aW9uTGluZXNUb1JlcXVlc3RSb3dJbklt
bWVkaWF0ZUZsaXBbOF07CiBkb3VibGUgZmluYWxfZmxpcF9id1s4XTsKIGJvb2wgSW1tZWRpYXRl
RmxpcFN1cHBvcnRlZEZvclN0YXRlWzcgKyAxXVsyXTsKIGRvdWJsZSBXcml0ZWJhY2tEZWxheVs3
ICsgMV1bOF07CiB1bnNpZ25lZCBpbnQgdm1fZ3JvdXBfYnl0ZXNbOF07CiB1bnNpZ25lZCBpbnQg
ZHB0ZV9ncm91cF9ieXRlc1s4XTsKIHVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRbOF07CiB1
bnNpZ25lZCBpbnQgbWV0YV9yZXFfaGVpZ2h0WzhdOwogdW5zaWduZWQgaW50IG1ldGFfcmVxX3dp
ZHRoWzhdOwogdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodFs4XTsKIHVuc2lnbmVkIGludCBt
ZXRhX3Jvd193aWR0aFs4XTsKIHVuc2lnbmVkIGludCBkcHRlX3Jvd19oZWlnaHRfY2hyb21hWzhd
OwogdW5zaWduZWQgaW50IG1ldGFfcmVxX2hlaWdodF9jaHJvbWFbOF07CiB1bnNpZ25lZCBpbnQg
bWV0YV9yZXFfd2lkdGhfY2hyb21hWzhdOwogdW5zaWduZWQgaW50IG1ldGFfcm93X2hlaWdodF9j
aHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgbWV0YV9yb3dfd2lkdGhfY2hyb21hWzhdOwogYm9vbCBJ
bW1lZGlhdGVGbGlwU3VwcG9ydGVkRm9yUGlwZVs4XTsKIGRvdWJsZSBtZXRhX3Jvd19id1s4XTsK
IGRvdWJsZSBkcHRlX3Jvd19id1s4XTsKIGRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVyeVRp
bWVMdW1hWzhdOwogZG91YmxlIERpc3BsYXlQaXBlTGluZURlbGl2ZXJ5VGltZUNocm9tYVs4XTsK
IGRvdWJsZSBEaXNwbGF5UGlwZVJlcXVlc3REZWxpdmVyeVRpbWVMdW1hWzhdOwogZG91YmxlIERp
c3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNocm9tYVs4XTsKIGVudW0gY2xvY2tfY2hhbmdl
X3N1cHBvcnQgRFJBTUNsb2NrQ2hhbmdlU3VwcG9ydFs3ICsgMV1bMl07CiBkb3VibGUgVXJnZW50
QnVyc3RGYWN0b3JDdXJzb3JbOF07CiBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JDdXJzb3JQcmVb
OF07CiBkb3VibGUgVXJnZW50QnVyc3RGYWN0b3JMdW1hWzhdOwogZG91YmxlIFVyZ2VudEJ1cnN0
RmFjdG9yTHVtYVByZVs4XTsKIGRvdWJsZSBVcmdlbnRCdXJzdEZhY3RvckNocm9tYVs4XTsKIGRv
dWJsZSBVcmdlbnRCdXJzdEZhY3RvckNocm9tYVByZVs4XTsKCgogYm9vbCBNUENDb21iaW5lWzcg
KyAxXVsyXVs4XTsKIGRvdWJsZSBTd2F0aFdpZHRoQ1NpbmdsZURQUFs4XTsKIGRvdWJsZSBNYXhp
bXVtU3dhdGhXaWR0aEluTGluZUJ1ZmZlckx1bWE7CiBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhJ
bkxpbmVCdWZmZXJDaHJvbWE7CiBkb3VibGUgTWF4aW11bVN3YXRoV2lkdGhMdW1hWzhdOwogZG91
YmxlIE1heGltdW1Td2F0aFdpZHRoQ2hyb21hWzhdOwogZW51bSBvZG1fY29tYmluZV9tb2RlIG9k
bV9jb21iaW5lX2R1bW15WzhdOwogZG91YmxlIGR1bW15MVs4XTsKIGRvdWJsZSBkdW1teTJbOF07
CiBkb3VibGUgZHVtbXkzWzhdOwogZG91YmxlIGR1bW15NFs4XTsKIGRvdWJsZSBkdW1teTU7CiBk
b3VibGUgZHVtbXk2OwogZG91YmxlIGR1bW15N1s4XTsKIGRvdWJsZSBkdW1teThbOF07CiB1bnNp
Z25lZCBpbnQgZHVtbXlpbnRlZ2VyMW1zWzhdOwogZG91YmxlIGR1bW15aW50ZWdlcjJtc1s4XTsK
IHVuc2lnbmVkIGludCBkdW1teWludGVnZXIzWzhdOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdl
cjRbOF07CiB1bnNpZ25lZCBpbnQgZHVtbXlpbnRlZ2VyNTsKIHVuc2lnbmVkIGludCBkdW1teWlu
dGVnZXI2OwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjc7CiB1bnNpZ25lZCBpbnQgZHVtbXlp
bnRlZ2VyODsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXI5OwogdW5zaWduZWQgaW50IGR1bW15
aW50ZWdlcjEwOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjExOwogdW5zaWduZWQgaW50IGR1
bW15aW50ZWdlcjEyOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcmFycjFbOF07CiB1bnNpZ25l
ZCBpbnQgZHVtbXlpbnRlZ2VyYXJyMls4XTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXJhcnIz
WzhdOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcmFycjRbOF07CiBib29sIGR1bW15c2luZ2xl
c3RyaW5nOwogYm9vbCBTaW5nbGVEUFBWaWV3cG9ydFNpemVTdXBwb3J0UGVyUGxhbmVbOF07CiBk
b3VibGUgUGxhbmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmluZTJUbzE7CiBkb3VibGUgUGxh
bmVSZXF1aXJlZERJU1BDTEtXaXRoT0RNQ29tYmluZTRUbzE7CiB1bnNpZ25lZCBpbnQgVG90YWxO
dW1iZXJPZlNpbmdsZURQUFBsYW5lc1s3ICsgMV1bMl07CiBib29sIExpbmtEU0NFbmFibGU7CiBi
b29sIE9ETUNvbWJpbmU0VG8xU3VwcG9ydENoZWNrT0tbNyArIDFdOwogZW51bSBvZG1fY29tYmlu
ZV9tb2RlIE9ETUNvbWJpbmVFbmFibGVUaGlzU3RhdGVbOF07CiBkb3VibGUgU3dhdGhXaWR0aENU
aGlzU3RhdGVbOF07CiBib29sIFZpZXdwb3J0U2l6ZVN1cHBvcnRQZXJQbGFuZVs4XTsKIGRvdWJs
ZSBBbGlnbmVkRENDTWV0YVBpdGNoWVs4XTsKIGRvdWJsZSBBbGlnbmVkRENDTWV0YVBpdGNoQ1s4
XTsKCiB1bnNpZ25lZCBpbnQgTm90RW5vdWdoVXJnZW50TGF0ZW5jeUhpZGluZzsKIHVuc2lnbmVk
IGludCBOb3RFbm91Z2hVcmdlbnRMYXRlbmN5SGlkaW5nUHJlOwogaW50IFBURUJ1ZmZlclNpemVJ
blJlcXVlc3RzRm9yTHVtYTsKIGludCBQVEVCdWZmZXJTaXplSW5SZXF1ZXN0c0ZvckNocm9tYTsK
CgogaW50IGRwdGVfZ3JvdXBfYnl0ZXNfY2hyb21hOwogdW5zaWduZWQgaW50IHZtX2dyb3VwX2J5
dGVzX2Nocm9tYTsKIGRvdWJsZSBkc3RfeF9hZnRlcl9zY2FsZXI7CiBkb3VibGUgZHN0X3lfYWZ0
ZXJfc2NhbGVyOwogdW5zaWduZWQgaW50IFZTdGFydHVwUmVxdWlyZWRXaGVuTm90RW5vdWdoVGlt
ZUZvckR5bmFtaWNNZXRhZGF0YTsKCgogZG91YmxlIFByZWZldGNoQmFuZHdpZHRoWzhdOwogZG91
YmxlIFZJbml0UHJlRmlsbFlbOF07CiBkb3VibGUgVkluaXRQcmVGaWxsQ1s4XTsKIHVuc2lnbmVk
IGludCBNYXhOdW1Td2F0aFlbOF07CiB1bnNpZ25lZCBpbnQgTWF4TnVtU3dhdGhDWzhdOwogdW5z
aWduZWQgaW50IFZTdGFydHVwWzhdOwogZG91YmxlIERTVFlBZnRlclNjYWxlcls4XTsKIGRvdWJs
ZSBEU1RYQWZ0ZXJTY2FsZXJbOF07CiBib29sIEFsbG93RFJBTUNsb2NrQ2hhbmdlRHVyaW5nVkJs
YW5rWzhdOwogYm9vbCBBbGxvd0RSQU1TZWxmUmVmcmVzaER1cmluZ1ZCbGFua1s4XTsKIGRvdWJs
ZSBWUmF0aW9QcmVmZXRjaFlbOF07CiBkb3VibGUgVlJhdGlvUHJlZmV0Y2hDWzhdOwogZG91Ymxl
IERlc3RpbmF0aW9uTGluZXNGb3JQcmVmZXRjaFs4XTsKIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVz
VG9SZXF1ZXN0Vk1JblZCbGFua1s4XTsKIGRvdWJsZSBEZXN0aW5hdGlvbkxpbmVzVG9SZXF1ZXN0
Um93SW5WQmxhbmtbOF07CiBkb3VibGUgTWluVFRVVkJsYW5rWzhdOwogZG91YmxlIEJ5dGVQZXJQ
aXhlbERFVFlbOF07CiBkb3VibGUgQnl0ZVBlclBpeGVsREVUQ1s4XTsKIGRvdWJsZSBTd2F0aFdp
ZHRoWVs4XTsKIGRvdWJsZSBTd2F0aFdpZHRoU2luZ2xlRFBQWVs4XTsKIGRvdWJsZSBDdXJzb3JS
ZXF1ZXN0RGVsaXZlcnlUaW1lWzhdOwogZG91YmxlIEN1cnNvclJlcXVlc3REZWxpdmVyeVRpbWVQ
cmVmZXRjaFs4XTsKIGRvdWJsZSBSZWFkQmFuZHdpZHRoUGxhbmVMdW1hWzhdOwogZG91YmxlIFJl
YWRCYW5kd2lkdGhQbGFuZUNocm9tYVs4XTsKIGRvdWJsZSBEaXNwbGF5UGlwZUxpbmVEZWxpdmVy
eVRpbWVMdW1hUHJlZmV0Y2hbOF07CiBkb3VibGUgRGlzcGxheVBpcGVMaW5lRGVsaXZlcnlUaW1l
Q2hyb21hUHJlZmV0Y2hbOF07CiBkb3VibGUgRGlzcGxheVBpcGVSZXF1ZXN0RGVsaXZlcnlUaW1l
THVtYVByZWZldGNoWzhdOwogZG91YmxlIERpc3BsYXlQaXBlUmVxdWVzdERlbGl2ZXJ5VGltZUNo
cm9tYVByZWZldGNoWzhdOwogZG91YmxlIFBpeGVsUFRFQnl0ZXNQZXJSb3dbOF07CiBkb3VibGUg
UERFQW5kTWV0YVBURUJ5dGVzRnJhbWVbOF07CiBkb3VibGUgTWV0YVJvd0J5dGVbOF07CiBkb3Vi
bGUgUHJlZmV0Y2hTb3VyY2VMaW5lc1lbOF07CiBkb3VibGUgUmVxdWlyZWRQcmVmZXRjaFBpeERh
dGFCV0x1bWFbOF07CiBkb3VibGUgUmVxdWlyZWRQcmVmZXRjaFBpeERhdGFCV0Nocm9tYVs4XTsK
IGRvdWJsZSBQcmVmZXRjaFNvdXJjZUxpbmVzQ1s4XTsKIGRvdWJsZSBQU0NMX1RIUk9VR0hQVVRf
TFVNQVs4XTsKIGRvdWJsZSBQU0NMX1RIUk9VR0hQVVRfQ0hST01BWzhdOwogZG91YmxlIERTQ0NM
S19jYWxjdWxhdGVkWzhdOwogdW5zaWduZWQgaW50IERTQ0RlbGF5WzhdOwogdW5zaWduZWQgaW50
IE1heFZTdGFydHVwTGluZXNbOF07CiBkb3VibGUgRFBQQ0xLVXNpbmdTaW5nbGVEUFBbOF07CiBk
b3VibGUgRFBQQ0xLWzhdOwogdW5zaWduZWQgaW50IERDQ1lNYXhVbmNvbXByZXNzZWRCbG9ja1s4
XTsKIHVuc2lnbmVkIGludCBEQ0NZTWF4Q29tcHJlc3NlZEJsb2NrWzhdOwogdW5zaWduZWQgaW50
IERDQ1lJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrWzhdOwogZG91YmxlIE1heGltdW1EQ0NDb21wcmVz
c2lvbllTdXJmYWNlWzhdOwogdW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNZWzhdOwog
dW5zaWduZWQgaW50IEJsb2NrSGVpZ2h0MjU2Qnl0ZXNDWzhdOwogdW5zaWduZWQgaW50IEJsb2Nr
V2lkdGgyNTZCeXRlc1lbOF07CiB1bnNpZ25lZCBpbnQgQmxvY2tXaWR0aDI1NkJ5dGVzQ1s4XTsK
IGRvdWJsZSBYRkNTbGF2ZVZVcGRhdGVPZmZzZXRbOF07CiBkb3VibGUgWEZDU2xhdmVWdXBkYXRl
V2lkdGhbOF07CiBkb3VibGUgWEZDU2xhdmVWUmVhZHlPZmZzZXRbOF07CiBkb3VibGUgWEZDVHJh
bnNmZXJEZWxheVs4XTsKIGRvdWJsZSBYRkNQcmVjaGFyZ2VEZWxheVs4XTsKIGRvdWJsZSBYRkNS
ZW1vdGVTdXJmYWNlRmxpcExhdGVuY3lbOF07CiBkb3VibGUgWEZDUHJlZmV0Y2hNYXJnaW5bOF07
CiB1bnNpZ25lZCBpbnQgZHB0ZV9yb3dfd2lkdGhfbHVtYV91Yls4XTsKIHVuc2lnbmVkIGludCBk
cHRlX3Jvd193aWR0aF9jaHJvbWFfdWJbOF07CiBkb3VibGUgRnVsbERFVEJ1ZmZlcmluZ1RpbWVZ
WzhdOwogZG91YmxlIEZ1bGxERVRCdWZmZXJpbmdUaW1lQ1s4XTsKIGRvdWJsZSBEU1RfWV9QRVJf
UFRFX1JPV19OT01fTFs4XTsKIGRvdWJsZSBEU1RfWV9QRVJfUFRFX1JPV19OT01fQ1s4XTsKIGRv
dWJsZSBEU1RfWV9QRVJfTUVUQV9ST1dfTk9NX0xbOF07CiBkb3VibGUgVGltZVBlck1ldGFDaHVu
a05vbWluYWxbOF07CiBkb3VibGUgVGltZVBlck1ldGFDaHVua1ZCbGFua1s4XTsKIGRvdWJsZSBU
aW1lUGVyTWV0YUNodW5rRmxpcFs4XTsKIHVuc2lnbmVkIGludCBzd2F0aF93aWR0aF9sdW1hX3Vi
WzhdOwogdW5zaWduZWQgaW50IHN3YXRoX3dpZHRoX2Nocm9tYV91Yls4XTsKIHVuc2lnbmVkIGlu
dCBQaXhlbFBURVJlcVdpZHRoWVs4XTsKIHVuc2lnbmVkIGludCBQaXhlbFBURVJlcUhlaWdodFlb
OF07CiB1bnNpZ25lZCBpbnQgUFRFUmVxdWVzdFNpemVZWzhdOwogdW5zaWduZWQgaW50IFBpeGVs
UFRFUmVxV2lkdGhDWzhdOwogdW5zaWduZWQgaW50IFBpeGVsUFRFUmVxSGVpZ2h0Q1s4XTsKIHVu
c2lnbmVkIGludCBQVEVSZXF1ZXN0U2l6ZUNbOF07CiBkb3VibGUgdGltZV9wZXJfcHRlX2dyb3Vw
X25vbV9sdW1hWzhdOwogZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF9ub21fY2hyb21hWzhdOwog
ZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF92YmxhbmtfbHVtYVs4XTsKIGRvdWJsZSB0aW1lX3Bl
cl9wdGVfZ3JvdXBfdmJsYW5rX2Nocm9tYVs4XTsKIGRvdWJsZSB0aW1lX3Blcl9wdGVfZ3JvdXBf
ZmxpcF9sdW1hWzhdOwogZG91YmxlIHRpbWVfcGVyX3B0ZV9ncm91cF9mbGlwX2Nocm9tYVs4XTsK
IGRvdWJsZSBUaW1lUGVyVk1Hcm91cFZCbGFua1s4XTsKIGRvdWJsZSBUaW1lUGVyVk1Hcm91cEZs
aXBbOF07CiBkb3VibGUgVGltZVBlclZNUmVxdWVzdFZCbGFua1s4XTsKIGRvdWJsZSBUaW1lUGVy
Vk1SZXF1ZXN0RmxpcFs4XTsKIHVuc2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJf
bFs4XTsKIHVuc2lnbmVkIGludCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfbFs4XTsKIHVu
c2lnbmVkIGludCBkcGRlMF9ieXRlc19wZXJfZnJhbWVfdWJfY1s4XTsKIHVuc2lnbmVkIGludCBt
ZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfdWJfY1s4XTsKIGRvdWJsZSBMaW5lc1RvRmluaXNoU3dh
dGhUcmFuc2ZlclN0dXR0ZXJDcml0aWNhbFBsYW5lOwogdW5zaWduZWQgaW50IEJ5dGVQZXJQaXhl
bFlDcml0aWNhbFBsYW5lOwogZG91YmxlIFN3YXRoV2lkdGhZQ3JpdGljYWxQbGFuZTsKIGRvdWJs
ZSBMaW5lc0luREVUWVs4XTsKIGRvdWJsZSBMaW5lc0luREVUWVJvdW5kZWREb3duVG9Td2F0aFs4
XTsKCiBkb3VibGUgU3dhdGhXaWR0aFNpbmdsZURQUENbOF07CiBkb3VibGUgU3dhdGhXaWR0aENb
OF07CiB1bnNpZ25lZCBpbnQgQnl0ZVBlclBpeGVsWVs4XTsKIHVuc2lnbmVkIGludCBCeXRlUGVy
UGl4ZWxDWzhdOwogdW5zaWduZWQgaW50IGR1bW15aW50ZWdlcjE7CiB1bnNpZ25lZCBpbnQgZHVt
bXlpbnRlZ2VyMjsKIGRvdWJsZSBGaW5hbERSQU1DbG9ja0NoYW5nZUxhdGVuY3k7CiBkb3VibGUg
VGRtZGxfdm1bOF07CiBkb3VibGUgVGRtZGxbOF07CiB1bnNpZ25lZCBpbnQgVGhpc1ZTdGFydHVw
OwogYm9vbCBXcml0ZWJhY2tBbGxvd0RSQU1DbG9ja0NoYW5nZUVuZFBvc2l0aW9uWzhdOwogZG91
YmxlIERTVF9ZX1BFUl9NRVRBX1JPV19OT01fQ1s4XTsKIGRvdWJsZSBUaW1lUGVyQ2hyb21hTWV0
YUNodW5rTm9taW5hbFs4XTsKIGRvdWJsZSBUaW1lUGVyQ2hyb21hTWV0YUNodW5rVkJsYW5rWzhd
OwogZG91YmxlIFRpbWVQZXJDaHJvbWFNZXRhQ2h1bmtGbGlwWzhdOwogdW5zaWduZWQgaW50IERD
Q0NNYXhVbmNvbXByZXNzZWRCbG9ja1s4XTsKIHVuc2lnbmVkIGludCBEQ0NDTWF4Q29tcHJlc3Nl
ZEJsb2NrWzhdOwogdW5zaWduZWQgaW50IERDQ0NJbmRlcGVuZGVudDY0Qnl0ZUJsb2NrWzhdOwog
ZG91YmxlIFZTdGFydHVwTWFyZ2luOwogYm9vbCBOb3RFbm91Z2hUaW1lRm9yRHluYW1pY01ldGFk
YXRhOwoKCiB1bnNpZ25lZCBpbnQgTWF4aW11bU1heFZTdGFydHVwTGluZXM7CiBkb3VibGUgRmFi
cmljQW5kRFJBTUJhbmR3aWR0aDsKIGRvdWJsZSBMaW5lc0luREVUTHVtYTsKIGRvdWJsZSBMaW5l
c0luREVUQ2hyb21hOwogdW5zaWduZWQgaW50IEltbWVkaWF0ZUZsaXBCeXRlc1s4XTsKIHVuc2ln
bmVkIGludCBMaW5lc0luREVUQ1s4XTsKIHVuc2lnbmVkIGludCBMaW5lc0luREVUQ1JvdW5kZWRE
b3duVG9Td2F0aFs4XTsKIGRvdWJsZSBVcmdlbnRMYXRlbmN5U3VwcG9ydFVzUGVyU3RhdGVbNyAr
IDFdWzJdWzhdOwogZG91YmxlIFVyZ2VudExhdGVuY3lTdXBwb3J0VXNbOF07CiBkb3VibGUgRmFi
cmljQW5kRFJBTUJhbmR3aWR0aFBlclN0YXRlWzcgKyAxXTsKIGJvb2wgVXJnZW50TGF0ZW5jeVN1
cHBvcnRbNyArIDFdWzJdOwogdW5zaWduZWQgaW50IFN3YXRoV2lkdGhZUGVyU3RhdGVbNyArIDFd
WzJdWzhdOwogdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WVBlclN0YXRlWzcgKyAxXVsyXVs4XTsK
IGRvdWJsZSBxdWFsX3Jvd19id1s4XTsKIGRvdWJsZSBwcmVmZXRjaF9yb3dfYndbOF07CiBkb3Vi
bGUgcHJlZmV0Y2hfdm1fYndbOF07CgogZG91YmxlIFBURUdyb3VwU2l6ZTsKIHVuc2lnbmVkIGlu
dCBQREVQcm9jZXNzaW5nQnVmSW42NEtCUmVxczsKCiBkb3VibGUgTWF4VG90YWxWQWN0aXZlUkRC
YW5kd2lkdGg7CiBib29sIERvVXJnZW50TGF0ZW5jeUFkanVzdG1lbnQ7CiBkb3VibGUgVXJnZW50
TGF0ZW5jeUFkanVzdG1lbnRGYWJyaWNDbG9ja0NvbXBvbmVudDsKIGRvdWJsZSBVcmdlbnRMYXRl
bmN5QWRqdXN0bWVudEZhYnJpY0Nsb2NrUmVmZXJlbmNlOwogZG91YmxlIE1pblVyZ2VudExhdGVu
Y3lTdXBwb3J0VXM7CiBkb3VibGUgTWluRnVsbERFVEJ1ZmZlcmluZ1RpbWU7CiBkb3VibGUgQXZl
cmFnZVJlYWRCYW5kd2lkdGhHQnl0ZVBlclNlY29uZDsKIGJvb2wgRmlyc3RNYWluUGxhbmU7Cgog
dW5zaWduZWQgaW50IFZpZXdwb3J0V2lkdGhDaHJvbWFbOF07CiB1bnNpZ25lZCBpbnQgVmlld3Bv
cnRIZWlnaHRDaHJvbWFbOF07CiBkb3VibGUgSFJhdGlvQ2hyb21hWzhdOwogZG91YmxlIFZSYXRp
b0Nocm9tYVs4XTsKIGludCBXcml0ZWJhY2tTb3VyY2VXaWR0aFs4XTsKCiBib29sIE1vZGVJc1N1
cHBvcnRlZDsKIGJvb2wgT0RNQ29tYmluZTRUbzFTdXBwb3J0ZWQ7CgogdW5zaWduZWQgaW50IFN1
cmZhY2VXaWR0aFlbOF07CiB1bnNpZ25lZCBpbnQgU3VyZmFjZVdpZHRoQ1s4XTsKIHVuc2lnbmVk
IGludCBTdXJmYWNlSGVpZ2h0WVs4XTsKIHVuc2lnbmVkIGludCBTdXJmYWNlSGVpZ2h0Q1s4XTsK
IHVuc2lnbmVkIGludCBXcml0ZWJhY2tIVGFwc1s4XTsKIHVuc2lnbmVkIGludCBXcml0ZWJhY2tW
VGFwc1s4XTsKIGJvb2wgRFNDRW5hYmxlWzhdOwoKIGRvdWJsZSBEUkFNQ2xvY2tDaGFuZ2VMYXRl
bmN5T3ZlcnJpZGU7CgogZG91YmxlIEdQVVZNTWluUGFnZVNpemU7CiBkb3VibGUgSG9zdFZNTWlu
UGFnZVNpemU7CgogYm9vbCBNUENDb21iaW5lRW5hYmxlWzhdOwogdW5zaWduZWQgaW50IEhvc3RW
TU1heE5vbkNhY2hlZFBhZ2VUYWJsZUxldmVsczsKIGJvb2wgRHluYW1pY01ldGFkYXRhVk1FbmFi
bGVkOwogZG91YmxlIFdyaXRlYmFja0ludGVyZmFjZUJ1ZmZlclNpemU7CiBkb3VibGUgV3JpdGVi
YWNrTGluZUJ1ZmZlclNpemU7CgogZG91YmxlIERDQ1JhdGVMdW1hWzhdOwogZG91YmxlIERDQ1Jh
dGVDaHJvbWFbOF07CgogZG91YmxlIFBIWUNMS0QxOFBlclN0YXRlWzcgKyAxXTsKIGludCBNaW5W
b2x0YWdlTGV2ZWw7CiBpbnQgTWF4Vm9sdGFnZUxldmVsOwoKIGJvb2wgV3JpdGViYWNrU3VwcG9y
dEludGVybGVhdmVBbmRVc2luZ1dob2xlQnVmZmVyRm9yQVNpbmdsZVN0cmVhbTsKIGJvb2wgTnVt
YmVyT2ZIRE1JRlJMU3VwcG9ydDsKIHVuc2lnbmVkIGludCBNYXhOdW1IRE1JRlJMT3V0cHV0czsK
IGludCBBdWRpb1NhbXBsZVJhdGVbOF07CiBpbnQgQXVkaW9TYW1wbGVMYXlvdXRbOF07CgogaW50
IFBlcmNlbnRNYXJnaW5PdmVyTWluaW11bVJlcXVpcmVkRENGQ0xLOwogYm9vbCBEeW5hbWljTWV0
YWRhdGFTdXBwb3J0ZWRbNyArIDFdWzJdOwogZW51bSBpbW1lZGlhdGVfZmxpcF9yZXF1aXJlbWVu
dCBJbW1lZGlhdGVGbGlwUmVxdWlyZW1lbnQ7CiBkb3VibGUgREVUQnVmZmVyU2l6ZVlUaGlzU3Rh
dGVbOF07CiBkb3VibGUgREVUQnVmZmVyU2l6ZUNUaGlzU3RhdGVbOF07CiBib29sIE5vVXJnZW50
TGF0ZW5jeUhpZGluZ1s4XTsKIGJvb2wgTm9VcmdlbnRMYXRlbmN5SGlkaW5nUHJlWzhdOwogaW50
IHN3YXRoX3dpZHRoX2x1bWFfdWJfdGhpc19zdGF0ZVs4XTsKIGludCBzd2F0aF93aWR0aF9jaHJv
bWFfdWJfdGhpc19zdGF0ZVs4XTsKIGRvdWJsZSBVcmdMYXRlbmN5WzcgKyAxXTsKIGRvdWJsZSBW
QWN0aXZlQ3Vyc29yQmFuZHdpZHRoWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBWQWN0aXZlUGl4ZWxC
YW5kd2lkdGhbNyArIDFdWzJdWzhdOwogYm9vbCBOb1RpbWVGb3JQcmVmZXRjaFs3ICsgMV1bMl1b
OF07CiBib29sIE5vVGltZUZvckR5bmFtaWNNZXRhZGF0YVs3ICsgMV1bMl1bOF07CiBkb3VibGUg
ZHB0ZV9yb3dfYmFuZHdpZHRoWzcgKyAxXVsyXVs4XTsKIGRvdWJsZSBtZXRhX3Jvd19iYW5kd2lk
dGhbNyArIDFdWzJdWzhdOwogZG91YmxlIERFVEJ1ZmZlclNpemVZQWxsU3RhdGVzWzcgKyAxXVsy
XVs4XTsKIGRvdWJsZSBERVRCdWZmZXJTaXplQ0FsbFN0YXRlc1s3ICsgMV1bMl1bOF07CiBpbnQg
c3dhdGhfd2lkdGhfbHVtYV91Yl9hbGxfc3RhdGVzWzcgKyAxXVsyXVs4XTsKIGludCBzd2F0aF93
aWR0aF9jaHJvbWFfdWJfYWxsX3N0YXRlc1s3ICsgMV1bMl1bOF07CiBib29sIE5vdFVyZ2VudExh
dGVuY3lIaWRpbmdbNyArIDFdWzJdOwogdW5zaWduZWQgaW50IFN3YXRoSGVpZ2h0WUFsbFN0YXRl
c1s3ICsgMV1bMl1bOF07CiB1bnNpZ25lZCBpbnQgU3dhdGhIZWlnaHRDQWxsU3RhdGVzWzcgKyAx
XVsyXVs4XTsKIHVuc2lnbmVkIGludCBTd2F0aFdpZHRoWUFsbFN0YXRlc1s3ICsgMV1bMl1bOF07
CiB1bnNpZ25lZCBpbnQgU3dhdGhXaWR0aENBbGxTdGF0ZXNbNyArIDFdWzJdWzhdOwogZG91Ymxl
IFRvdGFsRFBURVJvd0JhbmR3aWR0aFs3ICsgMV1bMl07CiBkb3VibGUgVG90YWxNZXRhUm93QmFu
ZHdpZHRoWzcgKyAxXVsyXTsKIGRvdWJsZSBUb3RhbFZBY3RpdmVDdXJzb3JCYW5kd2lkdGhbNyAr
IDFdWzJdOwogZG91YmxlIFRvdGFsVkFjdGl2ZVBpeGVsQmFuZHdpZHRoWzcgKyAxXVsyXTsKIGJv
b2wgVXNlTWluaW11bVJlcXVpcmVkRENGQ0xLOwogZG91YmxlIFdyaXRlYmFja0RlbGF5VGltZVs4
XTsKIHVuc2lnbmVkIGludCBEQ0NZSW5kZXBlbmRlbnRCbG9ja1s4XTsKIHVuc2lnbmVkIGludCBE
Q0NDSW5kZXBlbmRlbnRCbG9ja1s4XTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxNTsKIHVu
c2lnbmVkIGludCBkdW1teWludGVnZXIxNjsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxNzsK
IHVuc2lnbmVkIGludCBkdW1teWludGVnZXIxODsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIx
OTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyMDsKIHVuc2lnbmVkIGludCBkdW1teWludGVn
ZXIyMTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyMjsKIHVuc2lnbmVkIGludCBkdW1teWlu
dGVnZXIyMzsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyNDsKIHVuc2lnbmVkIGludCBkdW1t
eWludGVnZXIyNTsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyNjsKIHVuc2lnbmVkIGludCBk
dW1teWludGVnZXIyNzsKIHVuc2lnbmVkIGludCBkdW1teWludGVnZXIyODsKIHVuc2lnbmVkIGlu
dCBkdW1teWludGVnZXIyOTsKIGJvb2wgZHVtbXlzdHJpbmdbOF07CiBkb3VibGUgQlBQOwogZW51
bSBvZG1fY29tYmluZV9wb2xpY3kgT0RNQ29tYmluZVBvbGljeTsKfTsKCmJvb2wgQ2FsY3VsYXRl
TWluQW5kTWF4UHJlZmV0Y2hNb2RlKAogIGVudW0gc2VsZl9yZWZyZXNoX2FmZmluaXR5IEFsbG93
RFJBTVNlbGZSZWZyZXNoT3JEUkFNQ2xvY2tDaGFuZ2VJblZibGFuaywKICB1bnNpZ25lZCBpbnQg
Kk1pblByZWZldGNoTW9kZSwKICB1bnNpZ25lZCBpbnQgKk1heFByZWZldGNoTW9kZSk7Cgpkb3Vi
bGUgQ2FsY3VsYXRlV3JpdGVCYWNrRElTUENMSygKICBlbnVtIHNvdXJjZV9mb3JtYXRfY2xhc3Mg
V3JpdGViYWNrUGl4ZWxGb3JtYXQsCiAgZG91YmxlIFBpeGVsQ2xvY2ssCiAgZG91YmxlIFdyaXRl
YmFja0hSYXRpbywKICBkb3VibGUgV3JpdGViYWNrVlJhdGlvLAogIHVuc2lnbmVkIGludCBXcml0
ZWJhY2tMdW1hSFRhcHMsCiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0x1bWFWVGFwcywKICB1bnNp
Z25lZCBpbnQgV3JpdGViYWNrQ2hyb21hSFRhcHMsCiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0No
cm9tYVZUYXBzLAogIGRvdWJsZSBXcml0ZWJhY2tEZXN0aW5hdGlvbldpZHRoLAogIHVuc2lnbmVk
IGludCBIVG90YWwsCiAgdW5zaWduZWQgaW50IFdyaXRlYmFja0Nocm9tYUxpbmVCdWZmZXJXaWR0
aCk7CiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwv
ZGlzcGxheV9tb2RlX2xpYi5oIiAyCgplbnVtIGRtbF9wcm9qZWN0IHsKIERNTF9QUk9KRUNUX1VO
REVGSU5FRCwKIERNTF9QUk9KRUNUX1JBVkVOMSwKIERNTF9QUk9KRUNUX05BVkkxMCwKIERNTF9Q
Uk9KRUNUX05BVkkxMHYyLAogRE1MX1BST0pFQ1RfRENOMjEsCn07CgpzdHJ1Y3QgZGlzcGxheV9t
b2RlX2xpYjsKCnN0cnVjdCBkbWxfZnVuY3Mgewogdm9pZCAoKnJxX2RsZ19nZXRfZGxnX3JlZyko
CiAgIHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKICAgZGlzcGxheV9kbGdfcmVn
c19zdCAqZGxnX3JlZ3MsCiAgIGRpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzLAogICBkaXNw
bGF5X2UyZV9waXBlX3BhcmFtc19zdCAqZTJlX3BpcGVfcGFyYW0sCiAgIGNvbnN0IHVuc2lnbmVk
IGludCBudW1fcGlwZXMsCiAgIGNvbnN0IHVuc2lnbmVkIGludCBwaXBlX2lkeCwKICAgY29uc3Qg
Ym9vbCBjc3RhdGVfZW4sCiAgIGNvbnN0IGJvb2wgcHN0YXRlX2VuLAogICBjb25zdCBib29sIHZt
X2VuLAogICBjb25zdCBib29sIGlnbm9yZV92aWV3cG9ydF9wb3MsCiAgIGNvbnN0IGJvb2wgaW1t
ZWRpYXRlX2ZsaXBfc3VwcG9ydCk7CiB2b2lkICgqcnFfZGxnX2dldF9ycV9yZWcpKAogIHN0cnVj
dCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYiwKICBkaXNwbGF5X3JxX3JlZ3Nfc3QgKnJxX3Jl
Z3MsCiAgY29uc3QgZGlzcGxheV9waXBlX3BhcmFtc19zdCBwaXBlX3BhcmFtKTsKIHZvaWQgKCpy
ZWNhbGN1bGF0ZSkoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKTsKIHZvaWQgKCp2
YWxpZGF0ZSkoc3RydWN0IGRpc3BsYXlfbW9kZV9saWIgKm1vZGVfbGliKTsKfTsKCnN0cnVjdCBk
aXNwbGF5X21vZGVfbGliIHsKIHN0cnVjdCBfdmNzX2RwaV9pcF9wYXJhbXNfc3QgaXA7CiBzdHJ1
Y3QgX3Zjc19kcGlfc29jX2JvdW5kaW5nX2JveF9zdCBzb2M7CiBlbnVtIGRtbF9wcm9qZWN0IHBy
b2plY3Q7CiBzdHJ1Y3QgdmJhX3ZhcnNfc3QgdmJhOwogc3RydWN0IGRhbF9sb2dnZXIgKmxvZ2dl
cjsKIHN0cnVjdCBkbWxfZnVuY3MgZnVuY3M7Cn07Cgp2b2lkIGRtbF9pbml0X2luc3RhbmNlKHN0
cnVjdCBkaXNwbGF5X21vZGVfbGliICpsaWIsCiAgY29uc3Qgc3RydWN0IF92Y3NfZHBpX3NvY19i
b3VuZGluZ19ib3hfc3QgKnNvY19iYiwKICBjb25zdCBzdHJ1Y3QgX3Zjc19kcGlfaXBfcGFyYW1z
X3N0ICppcF9wYXJhbXMsCiAgZW51bSBkbWxfcHJvamVjdCBwcm9qZWN0KTsKCmNvbnN0IGNoYXIg
KmRtbF9nZXRfc3RhdHVzX21lc3NhZ2UoZW51bSBkbV92YWxpZGF0aW9uX3N0YXR1cyBzdGF0dXMp
OwojIDQxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIg
MgojIDUyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIK
c3RydWN0IGRjX3ZlcnNpb25zIHsKIGNvbnN0IGNoYXIgKmRjX3ZlcjsKIHN0cnVjdCBkbWN1X3Zl
cnNpb24gZG1jdV92ZXJzaW9uOwp9OwoKZW51bSBkcF9wcm90b2NvbF92ZXJzaW9uIHsKIERQX1ZF
UlNJT05fMV80LAp9OwoKZW51bSBkY19wbGFuZV90eXBlIHsKIERDX1BMQU5FX1RZUEVfSU5WQUxJ
RCwKIERDX1BMQU5FX1RZUEVfRENFX1JHQiwKIERDX1BMQU5FX1RZUEVfRENFX1VOREVSTEFZLAog
RENfUExBTkVfVFlQRV9EQ05fVU5JVkVSU0FMLAp9OwoKc3RydWN0IGRjX3BsYW5lX2NhcCB7CiBl
bnVtIGRjX3BsYW5lX3R5cGUgdHlwZTsKIHVpbnQzMl90IGJsZW5kc193aXRoX2Fib3ZlIDogMTsK
IHVpbnQzMl90IGJsZW5kc193aXRoX2JlbG93IDogMTsKIHVpbnQzMl90IHBlcl9waXhlbF9hbHBo
YSA6IDE7CiBzdHJ1Y3QgewogIHVpbnQzMl90IGFyZ2I4ODg4IDogMTsKICB1aW50MzJfdCBudjEy
IDogMTsKICB1aW50MzJfdCBmcDE2IDogMTsKICB1aW50MzJfdCBwMDEwIDogMTsKICB1aW50MzJf
dCBheXV2IDogMTsKIH0gcGl4ZWxfZm9ybWF0X3N1cHBvcnQ7CgoKCiBzdHJ1Y3QgewogIHVpbnQz
Ml90IGFyZ2I4ODg4OwogIHVpbnQzMl90IG52MTI7CiAgdWludDMyX3QgZnAxNjsKIH0gbWF4X3Vw
c2NhbGVfZmFjdG9yOwoKCgogc3RydWN0IHsKICB1aW50MzJfdCBhcmdiODg4ODsKICB1aW50MzJf
dCBudjEyOwogIHVpbnQzMl90IGZwMTY7CiB9IG1heF9kb3duc2NhbGVfZmFjdG9yOwp9OwoKc3Ry
dWN0IGRjX2NhcHMgewogdWludDMyX3QgbWF4X3N0cmVhbXM7CiB1aW50MzJfdCBtYXhfbGlua3M7
CiB1aW50MzJfdCBtYXhfYXVkaW9zOwogdWludDMyX3QgbWF4X3NsYXZlX3BsYW5lczsKIHVpbnQz
Ml90IG1heF9wbGFuZXM7CiB1aW50MzJfdCBtYXhfZG93bnNjYWxlX3JhdGlvOwogdWludDMyX3Qg
aTJjX3NwZWVkX2luX2toejsKIHVpbnQzMl90IGRtZGF0YV9hbGxvY19zaXplOwogdW5zaWduZWQg
aW50IG1heF9jdXJzb3Jfc2l6ZTsKIHVuc2lnbmVkIGludCBtYXhfdmlkZW9fd2lkdGg7CiBpbnQg
bGluZWFyX3BpdGNoX2FsaWdubWVudDsKIGJvb2wgZGNjX2NvbnN0X2NvbG9yOwogYm9vbCBkeW5h
bWljX2F1ZGlvOwogYm9vbCBpc19hcHU7CiBib29sIGR1YWxfbGlua19kdmk7CiBib29sIHBvc3Rf
YmxlbmRfY29sb3JfcHJvY2Vzc2luZzsKIGJvb2wgZm9yY2VfZHBfdHBzNF9mb3JfY3AyNTIwOwog
Ym9vbCBkaXNhYmxlX2RwX2Nsa19zaGFyZTsKIGJvb2wgcHNwX3NldHVwX3BhbmVsX21vZGU7CiBi
b29sIGV4dGVuZGVkX2F1eF90aW1lb3V0X3N1cHBvcnQ7CiBib29sIGRtY3ViX3N1cHBvcnQ7CiBi
b29sIGh3XzNkX2x1dDsKIGVudW0gZHBfcHJvdG9jb2xfdmVyc2lvbiBtYXhfZHBfcHJvdG9jb2xf
dmVyc2lvbjsKIHN0cnVjdCBkY19wbGFuZV9jYXAgcGxhbmVzWzZdOwp9OwoKc3RydWN0IGRjX2J1
Z193YSB7CiBib29sIG5vX2Nvbm5lY3RfcGh5X2NvbmZpZzsKIGJvb2wgZGVkY24yMF8zMDVfd2E7
CiBib29sIHNraXBfY2xvY2tfdXBkYXRlOwp9OwoKc3RydWN0IGRjX2RjY19zdXJmYWNlX3BhcmFt
IHsKIHN0cnVjdCBkY19zaXplIHN1cmZhY2Vfc2l6ZTsKIGVudW0gc3VyZmFjZV9waXhlbF9mb3Jt
YXQgZm9ybWF0OwogZW51bSBzd2l6emxlX21vZGVfdmFsdWVzIHN3aXp6bGVfbW9kZTsKIGVudW0g
ZGNfc2Nhbl9kaXJlY3Rpb24gc2NhbjsKfTsKCnN0cnVjdCBkY19kY2Nfc2V0dGluZyB7CiB1bnNp
Z25lZCBpbnQgbWF4X2NvbXByZXNzZWRfYmxrX3NpemU7CiB1bnNpZ25lZCBpbnQgbWF4X3VuY29t
cHJlc3NlZF9ibGtfc2l6ZTsKIGJvb2wgaW5kZXBlbmRlbnRfNjRiX2Jsa3M7Cn07CgpzdHJ1Y3Qg
ZGNfc3VyZmFjZV9kY2NfY2FwIHsKIHVuaW9uIHsKICBzdHJ1Y3QgewogICBzdHJ1Y3QgZGNfZGNj
X3NldHRpbmcgcmdiOwogIH0gZ3JwaDsKCiAgc3RydWN0IHsKICAgc3RydWN0IGRjX2RjY19zZXR0
aW5nIGx1bWE7CiAgIHN0cnVjdCBkY19kY2Nfc2V0dGluZyBjaHJvbWE7CiAgfSB2aWRlbzsKIH07
CgogYm9vbCBjYXBhYmxlOwogYm9vbCBjb25zdF9jb2xvcl9zdXBwb3J0Owp9OwoKc3RydWN0IGRj
X3N0YXRpY19zY3JlZW5fcGFyYW1zIHsKIHN0cnVjdCB7CiAgYm9vbCBmb3JjZV90cmlnZ2VyOwog
IGJvb2wgY3Vyc29yX3VwZGF0ZTsKICBib29sIHN1cmZhY2VfdXBkYXRlOwogIGJvb2wgb3Zlcmxh
eV91cGRhdGU7CiB9IHRyaWdnZXJzOwogdW5zaWduZWQgaW50IG51bV9mcmFtZXM7Cn07CiMgMTk3
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIKZW51bSBz
dXJmYWNlX3VwZGF0ZV90eXBlIHsKIFVQREFURV9UWVBFX0ZBU1QsCiBVUERBVEVfVFlQRV9NRUQs
CiBVUERBVEVfVFlQRV9GVUxMLAp9OwoKCnN0cnVjdCBkYzsKc3RydWN0IGRjX3BsYW5lX3N0YXRl
OwpzdHJ1Y3QgZGNfc3RhdGU7CgoKc3RydWN0IGRjX2NhcF9mdW5jcyB7CiBib29sICgqZ2V0X2Rj
Y19jb21wcmVzc2lvbl9jYXApKGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgIGNvbnN0IHN0cnVjdCBk
Y19kY2Nfc3VyZmFjZV9wYXJhbSAqaW5wdXQsCiAgIHN0cnVjdCBkY19zdXJmYWNlX2RjY19jYXAg
Km91dHB1dCk7Cn07CgpzdHJ1Y3QgbGlua190cmFpbmluZ19zZXR0aW5nczsKCgoKc3RydWN0IGRj
X2NvbmZpZyB7CiBib29sIGdwdV92bV9zdXBwb3J0OwogYm9vbCBkaXNhYmxlX2Rpc3BfcGxsX3No
YXJpbmc7CiBib29sIGZiY19zdXBwb3J0OwogYm9vbCBvcHRpbWl6ZV9lZHBfbGlua19yYXRlOwog
Ym9vbCBkaXNhYmxlX2ZyYWN0aW9uYWxfcHdtOwogYm9vbCBhbGxvd19zZWFtbGVzc19ib290X29w
dGltaXphdGlvbjsKIGJvb2wgcG93ZXJfZG93bl9kaXNwbGF5X29uX2Jvb3Q7CiBib29sIGVkcF9u
b3RfY29ubmVjdGVkOwogYm9vbCBmb3JjZV9lbnVtX2VkcDsKIGJvb2wgZm9yY2VkX2Nsb2NrczsK
IGJvb2wgZGlzYWJsZV9leHRlbmRlZF90aW1lb3V0X3N1cHBvcnQ7CiBib29sIG11bHRpX21vbl9w
cF9tY2xrX3N3aXRjaDsKfTsKCmVudW0gdmlzdWFsX2NvbmZpcm0gewogVklTVUFMX0NPTkZJUk1f
RElTQUJMRSA9IDAsCiBWSVNVQUxfQ09ORklSTV9TVVJGQUNFID0gMSwKIFZJU1VBTF9DT05GSVJN
X0hEUiA9IDIsCiBWSVNVQUxfQ09ORklSTV9NUENUUkVFID0gNCwKfTsKCmVudW0gZGNjX29wdGlv
biB7CiBEQ0NfRU5BQkxFID0gMCwKIERDQ19ESVNBQkxFID0gMSwKIERDQ19IQUxGX1JFUV9ESVNB
TEJFID0gMiwKfTsKCmVudW0gcGlwZV9zcGxpdF9wb2xpY3kgewogTVBDX1NQTElUX0RZTkFNSUMg
PSAwLAogTVBDX1NQTElUX0FWT0lEID0gMSwKIE1QQ19TUExJVF9BVk9JRF9NVUxUX0RJU1AgPSAy
LAp9OwoKZW51bSB3bV9yZXBvcnRfbW9kZSB7CiBXTV9SRVBPUlRfREVGQVVMVCA9IDAsCiBXTV9S
RVBPUlRfT1ZFUlJJREUgPSAxLAp9OwplbnVtIGR0bV9wc3RhdGV7CiBkdG1fbGV2ZWxfcDAgPSAw
LAogZHRtX2xldmVsX3AxLAogZHRtX2xldmVsX3AyLAogZHRtX2xldmVsX3AzLAogZHRtX2xldmVs
X3A0LAp9OwoKZW51bSBkY25fcHdyX3N0YXRlIHsKIERDTl9QV1JfU1RBVEVfVU5LTk9XTiA9IC0x
LAogRENOX1BXUl9TVEFURV9NSVNTSU9OX01PREUgPSAwLAogRENOX1BXUl9TVEFURV9MT1dfUE9X
RVIgPSAzLAp9OwoKCgoKCnN0cnVjdCBkY19jbG9ja3MgewogaW50IGRpc3BjbGtfa2h6OwogaW50
IGRwcGNsa19raHo7CiBpbnQgZGNmY2xrX2toejsKIGludCBzb2NjbGtfa2h6OwogaW50IGRjZmNs
a19kZWVwX3NsZWVwX2toejsKIGludCBmY2xrX2toejsKIGludCBwaHljbGtfa2h6OwogaW50IGRy
YW1jbGtfa2h6OwogYm9vbCBwX3N0YXRlX2NoYW5nZV9zdXBwb3J0OwogZW51bSBkY25fcHdyX3N0
YXRlIHB3cl9zdGF0ZTsKCgoKCiBib29sIHByZXZfcF9zdGF0ZV9jaGFuZ2Vfc3VwcG9ydDsKIGVu
dW0gZHRtX3BzdGF0ZSBkdG1fbGV2ZWw7CiBpbnQgbWF4X3N1cHBvcnRlZF9kcHBjbGtfa2h6Owog
aW50IG1heF9zdXBwb3J0ZWRfZGlzcGNsa19raHo7CiBpbnQgYndfZHBwY2xrX2toejsKIGludCBi
d19kaXNwY2xrX2toejsKfTsKCnN0cnVjdCBkY19id192YWxpZGF0aW9uX3Byb2ZpbGUgewogYm9v
bCBlbmFibGU7CgogdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX3RpY2tzOwogdW5zaWduZWQgbG9u
ZyBsb25nIHZvbHRhZ2VfbGV2ZWxfdGlja3M7CiB1bnNpZ25lZCBsb25nIGxvbmcgd2F0ZXJtYXJr
X3RpY2tzOwogdW5zaWduZWQgbG9uZyBsb25nIHJxX2RsZ190aWNrczsKCiB1bnNpZ25lZCBsb25n
IGxvbmcgdG90YWxfY291bnQ7CiB1bnNpZ25lZCBsb25nIGxvbmcgc2tpcF9mYXN0X2NvdW50Owog
dW5zaWduZWQgbG9uZyBsb25nIHNraXBfcGFzc19jb3VudDsKIHVuc2lnbmVkIGxvbmcgbG9uZyBz
a2lwX2ZhaWxfY291bnQ7Cn07CiMgMzQ5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZGMuaCIKc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgewogZW51bSB2aXN1YWxf
Y29uZmlybSB2aXN1YWxfY29uZmlybTsKIGJvb2wgc2FuaXR5X2NoZWNrczsKIGJvb2wgbWF4X2Rp
c3BfY2xrOwogYm9vbCBzdXJmYWNlX3RyYWNlOwogYm9vbCB0aW1pbmdfdHJhY2U7CiBib29sIGNs
b2NrX3RyYWNlOwogYm9vbCB2YWxpZGF0aW9uX3RyYWNlOwogYm9vbCBiYW5kd2lkdGhfY2FsY3Nf
dHJhY2U7CiBpbnQgbWF4X2Rvd25zY2FsZV9zcmNfd2lkdGg7CgoKIGJvb2wgZGlzYWJsZV9zdHV0
dGVyOwogYm9vbCB1c2VfbWF4X2xiOwogZW51bSBkY2Nfb3B0aW9uIGRpc2FibGVfZGNjOwogZW51
bSBwaXBlX3NwbGl0X3BvbGljeSBwaXBlX3NwbGl0X3BvbGljeTsKIGJvb2wgZm9yY2Vfc2luZ2xl
X2Rpc3BfcGlwZV9zcGxpdDsKIGJvb2wgdm9sdGFnZV9hbGlnbl9mY2xrOwoKIGJvb2wgZGlzYWJs
ZV9kZnNfYnlwYXNzOwogYm9vbCBkaXNhYmxlX2RwcF9wb3dlcl9nYXRlOwogYm9vbCBkaXNhYmxl
X2h1YnBfcG93ZXJfZ2F0ZTsKIGJvb2wgZGlzYWJsZV9kc2NfcG93ZXJfZ2F0ZTsKIGludCBkc2Nf
bWluX3NsaWNlX2hlaWdodF9vdmVycmlkZTsKIGludCBkc2NfYnBwX2luY3JlbWVudF9kaXY7CiBi
b29sIG5hdGl2ZTQyMl9zdXBwb3J0OwogYm9vbCBkaXNhYmxlX3BwbGliX3dtX3JhbmdlOwogZW51
bSB3bV9yZXBvcnRfbW9kZSBwcGxpYl93bV9yZXBvcnRfbW9kZTsKIHVuc2lnbmVkIGludCBtaW5f
ZGlzcF9jbGtfa2h6OwogdW5zaWduZWQgaW50IG1pbl9kcHBfY2xrX2toejsKIGludCBzcl9leGl0
X3RpbWVfZHBtMF9uczsKIGludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9kcG0wX25zOwogaW50
IHNyX2V4aXRfdGltZV9uczsKIGludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9uczsKIGludCB1
cmdlbnRfbGF0ZW5jeV9uczsKIHVpbnQzMl90IHVuZGVyZmxvd19hc3NlcnRfZGVsYXlfdXM7CiBp
bnQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYnc7CiBpbnQgZHJhbV9jbG9ja19jaGFuZ2VfbGF0ZW5j
eV9uczsKIGJvb2wgb3B0aW1pemVkX3dhdGVybWFyazsKIGludCBhbHdheXNfc2NhbGU7CiBib29s
IGRpc2FibGVfcHBsaWJfY2xvY2tfcmVxdWVzdDsKIGJvb2wgZGlzYWJsZV9jbG9ja19nYXRlOwog
Ym9vbCBkaXNhYmxlX2RtY3U7CiBib29sIGRpc2FibGVfcHNyOwogYm9vbCBmb3JjZV9hYm1fZW5h
YmxlOwogYm9vbCBkaXNhYmxlX3N0ZXJlb19zdXBwb3J0OwogYm9vbCB2c3Jfc3VwcG9ydDsKIGJv
b2wgcGVyZm9ybWFuY2VfdHJhY2U7CiBib29sIGF6X2VuZHBvaW50X211dGVfb25seTsKIGJvb2wg
YWx3YXlzX3VzZV9yZWdhbW1hOwogYm9vbCBwMDEwX21wb19zdXBwb3J0OwogYm9vbCByZWNvdmVy
eV9lbmFibGVkOwogYm9vbCBhdm9pZF92Ymlvc19leGVjX3RhYmxlOwogYm9vbCBzY2xfcmVzZXRf
bGVuZ3RoMTA7CiBib29sIGhkbWkyMF9kaXNhYmxlOwogYm9vbCBza2lwX2RldGVjdGlvbl9saW5r
X3RyYWluaW5nOwogYm9vbCByZW1vdmVfZGlzY29ubmVjdF9lZHA7CiB1bnNpZ25lZCBpbnQgZm9y
Y2Vfb2RtX2NvbWJpbmU7CiB1bnNpZ25lZCBpbnQgZm9yY2VfZmNsa19raHo7CiBib29sIGRpc2Fi
bGVfdHJpX2J1ZjsKIGJvb2wgZG11Yl9vZmZsb2FkX2VuYWJsZWQ7CiBib29sIGRtY3ViX2VtdWxh
dGlvbjsKIGJvb2wgZG11Yl9jb21tYW5kX3RhYmxlOwogc3RydWN0IGRjX2J3X3ZhbGlkYXRpb25f
cHJvZmlsZSBid192YWxfcHJvZmlsZTsKIGJvb2wgZGlzYWJsZV9mZWM7CiBib29sIGRpc2FibGVf
NDhtaHpfcHdyZHduOwoKCgogdW5zaWduZWQgaW50IGZvcmNlX21pbl9kY2ZjbGtfbWh6OwogYm9v
bCBkaXNhYmxlX3RpbWluZ19zeW5jOwogYm9vbCBjbV9pbl9ieXBhc3M7CiBpbnQgZm9yY2VfY2xv
Y2tfbW9kZTsKCiBib29sIG52MTJfaWZsaXBfdm1fd2E7CiBib29sIGRpc2FibGVfZHJhbV9jbG9j
a19jaGFuZ2VfdmFjdGl2ZV9zdXBwb3J0OwogYm9vbCB2YWxpZGF0ZV9kbWxfb3V0cHV0OwogYm9v
bCBlbmFibGVfZG1jdWJfc3VyZmFjZV9mbGlwOwogYm9vbCB1c2JjX2NvbWJvX3BoeV9yZXNldF93
YTsKIGJvb2wgZGlzYWJsZV9kc2M7Cn07CgpzdHJ1Y3QgZGNfZGVidWdfZGF0YSB7CiB1aW50MzJf
dCBsdEZhaWxDb3VudDsKIHVpbnQzMl90IGkyY0Vycm9yQ291bnQ7CiB1aW50MzJfdCBhdXhFcnJv
ckNvdW50Owp9OwoKc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyB7CiBzdHJ1Y3Qgewog
IHVpbnQ2NF90IHN0YXJ0X2FkZHI7CiAgdWludDY0X3QgZW5kX2FkZHI7CiAgdWludDY0X3QgZmJf
dG9wOwogIHVpbnQ2NF90IGZiX29mZnNldDsKICB1aW50NjRfdCBmYl9iYXNlOwogIHVpbnQ2NF90
IGFncF90b3A7CiAgdWludDY0X3QgYWdwX2JvdDsKICB1aW50NjRfdCBhZ3BfYmFzZTsKIH0gc3lz
dGVtX2FwZXJ0dXJlOwoKIHN0cnVjdCB7CiAgdWludDY0X3QgcGFnZV90YWJsZV9zdGFydF9hZGRy
OwogIHVpbnQ2NF90IHBhZ2VfdGFibGVfZW5kX2FkZHI7CiAgdWludDY0X3QgcGFnZV90YWJsZV9i
YXNlX2FkZHI7CiB9IGdhcnRfY29uZmlnOwoKIGJvb2wgdmFsaWQ7CiB1aW50NjRfdCBwYWdlX3Rh
YmxlX2RlZmF1bHRfcGFnZV9hZGRyOwp9OwoKc3RydWN0IGRjX3ZpcnR1YWxfYWRkcl9zcGFjZV9j
b25maWcgewogdWludDY0X3QgcGFnZV90YWJsZV9iYXNlX2FkZHI7CiB1aW50NjRfdCBwYWdlX3Rh
YmxlX3N0YXJ0X2FkZHI7CiB1aW50NjRfdCBwYWdlX3RhYmxlX2VuZF9hZGRyOwogdWludDMyX3Qg
cGFnZV90YWJsZV9ibG9ja19zaXplX2luX2J5dGVzOwogdWludDhfdCBwYWdlX3RhYmxlX2RlcHRo
Owp9OwoKc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgewogaW50IHNyX2V4aXRfdGlt
ZV9uczsKIGludCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV9uczsKIGludCB1cmdlbnRfbGF0ZW5j
eV9uczsKIGludCBwZXJjZW50X29mX2lkZWFsX2RyYW1idzsKIGludCBkcmFtX2Nsb2NrX2NoYW5n
ZV9sYXRlbmN5X25zOwoKCgoKIGludCBtaW5fZGNmY2xrX21oejsKfTsKCnN0cnVjdCBkY19zdGF0
ZTsKc3RydWN0IHJlc291cmNlX3Bvb2w7CnN0cnVjdCBkY2VfaHdzZXE7CnN0cnVjdCBncHVfaW5m
b19zb2NfYm91bmRpbmdfYm94X3YxXzA7CnN0cnVjdCBkYyB7CiBzdHJ1Y3QgZGNfdmVyc2lvbnMg
dmVyc2lvbnM7CiBzdHJ1Y3QgZGNfY2FwcyBjYXBzOwogc3RydWN0IGRjX2NhcF9mdW5jcyBjYXBf
ZnVuY3M7CiBzdHJ1Y3QgZGNfY29uZmlnIGNvbmZpZzsKIHN0cnVjdCBkY19kZWJ1Z19vcHRpb25z
IGRlYnVnOwogc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgYmJfb3ZlcnJpZGVzOwog
c3RydWN0IGRjX2J1Z193YSB3b3JrX2Fyb3VuZHM7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4Owog
c3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyB2bV9wYV9jb25maWc7CgogdWludDhfdCBs
aW5rX2NvdW50Owogc3RydWN0IGRjX2xpbmsgKmxpbmtzWzYgKiAyXTsKCiBzdHJ1Y3QgZGNfc3Rh
dGUgKmN1cnJlbnRfc3RhdGU7CiBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcmVzX3Bvb2w7Cgogc3Ry
dWN0IGNsa19tZ3IgKmNsa19tZ3I7CgoKIHN0cnVjdCBkbV9wcF9jbG9ja19sZXZlbHMgc2Nsa19s
dmxzOwoKCiBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgKmJ3X2RjZWlwOwogc3RydWN0IGJ3X2NhbGNz
X3ZiaW9zICpid192YmlvczsKCiBzdHJ1Y3QgZGNuX3NvY19ib3VuZGluZ19ib3ggKmRjbl9zb2M7
CiBzdHJ1Y3QgZGNuX2lwX3BhcmFtcyAqZGNuX2lwOwogc3RydWN0IGRpc3BsYXlfbW9kZV9saWIg
ZG1sOwoKCgogc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyBod3NzOwogc3RydWN0IGRjZV9od3Nl
cSAqaHdzZXE7CgoKIGJvb2wgb3B0aW1pemVkX3JlcXVpcmVkOwoKCiBpbnQgb3B0aW1pemVfc2Vh
bWxlc3NfYm9vdF9zdHJlYW1zOwoKCiBzdHJ1Y3QgY29tcHJlc3NvciAqZmJjX2NvbXByZXNzb3I7
Cgogc3RydWN0IGRjX2RlYnVnX2RhdGEgZGVidWdfZGF0YTsKCiBjb25zdCBjaGFyICpidWlsZF9p
ZDsKIHN0cnVjdCB2bV9oZWxwZXIgKnZtX2hlbHBlcjsKIGNvbnN0IHN0cnVjdCBncHVfaW5mb19z
b2NfYm91bmRpbmdfYm94X3YxXzAgKnNvY19ib3VuZGluZ19ib3g7Cn07CgplbnVtIGZyYW1lX2J1
ZmZlcl9tb2RlIHsKIEZSQU1FX0JVRkZFUl9NT0RFX0xPQ0FMX09OTFkgPSAwLAogRlJBTUVfQlVG
RkVSX01PREVfWkZCX09OTFksCiBGUkFNRV9CVUZGRVJfTU9ERV9NSVhFRF9aRkJfQU5EX0xPQ0FM
LAp9IDsKCnN0cnVjdCBkY2h1Yl9pbml0X2RhdGEgewogaW50NjRfdCB6ZmJfcGh5c19hZGRyX2Jh
c2U7CiBpbnQ2NF90IHpmYl9tY19iYXNlX2FkZHI7CiB1aW50NjRfdCB6ZmJfc2l6ZV9pbl9ieXRl
OwogZW51bSBmcmFtZV9idWZmZXJfbW9kZSBmYl9tb2RlOwogYm9vbCBkY2h1Yl9pbml0aWFsemll
ZDsKIGJvb2wgZGNodWJfaW5mb192YWxpZDsKfTsKCnN0cnVjdCBkY19pbml0X2RhdGEgewogc3Ry
dWN0IGh3X2FzaWNfaWQgYXNpY19pZDsKIHZvaWQgKmRyaXZlcjsKIHN0cnVjdCBjZ3NfZGV2aWNl
ICpjZ3NfZGV2aWNlOwogc3RydWN0IGRjX2JvdW5kaW5nX2JveF9vdmVycmlkZXMgYmJfb3ZlcnJp
ZGVzOwoKIGludCBudW1fdmlydHVhbF9saW5rczsKCgoKCiBzdHJ1Y3QgZGNfYmlvcyAqdmJpb3Nf
b3ZlcnJpZGU7CiBlbnVtIGRjZV9lbnZpcm9ubWVudCBkY2VfZW52aXJvbm1lbnQ7Cgogc3RydWN0
IGRtdWJfb2ZmbG9hZF9mdW5jcyAqZG11Yl9pZjsKIHN0cnVjdCBkY19yZWdfaGVscGVyX3N0YXRl
ICpkbXViX29mZmxvYWQ7Cgogc3RydWN0IGRjX2NvbmZpZyBmbGFnczsKIHVpbnQzMl90IGxvZ19t
YXNrOwoKCgoKIGNvbnN0IHN0cnVjdCBncHVfaW5mb19zb2NfYm91bmRpbmdfYm94X3YxXzAgKnNv
Y19ib3VuZGluZ19ib3g7Cn07CgpzdHJ1Y3QgZGNfY2FsbGJhY2tfaW5pdCB7CgoKCiB1aW50OF90
IHJlc2VydmVkOwoKfTsKCnN0cnVjdCBkYyAqZGNfY3JlYXRlKGNvbnN0IHN0cnVjdCBkY19pbml0
X2RhdGEgKmluaXRfcGFyYW1zKTsKdm9pZCBkY19oYXJkd2FyZV9pbml0KHN0cnVjdCBkYyAqZGMp
OwoKaW50IGRjX2dldF92bWlkX3VzZV92ZWN0b3Ioc3RydWN0IGRjICpkYyk7CnZvaWQgZGNfc2V0
dXBfdm1fY29udGV4dChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfdmlydHVhbF9hZGRyX3NwYWNl
X2NvbmZpZyAqdmFfY29uZmlnLCBpbnQgdm1pZCk7CgppbnQgZGNfc2V0dXBfc3lzdGVtX2NvbnRl
eHQoc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyAqcGFfY29u
ZmlnKTsKdm9pZCBkY19pbml0X2NhbGxiYWNrcyhzdHJ1Y3QgZGMgKmRjLAogIGNvbnN0IHN0cnVj
dCBkY19jYWxsYmFja19pbml0ICppbml0X3BhcmFtcyk7CnZvaWQgZGNfZGVpbml0X2NhbGxiYWNr
cyhzdHJ1Y3QgZGMgKmRjKTsKdm9pZCBkY19kZXN0cm95KHN0cnVjdCBkYyAqKmRjKTsKCgoKCgpl
bnVtIHsKIFRSQU5TRkVSX0ZVTkNfUE9JTlRTID0gMTAyNQp9OwoKc3RydWN0IGRjX2hkcl9zdGF0
aWNfbWV0YWRhdGEgewoKIHVuc2lnbmVkIGludCBjaHJvbWF0aWNpdHlfZ3JlZW5feDsKIHVuc2ln
bmVkIGludCBjaHJvbWF0aWNpdHlfZ3JlZW5feTsKIHVuc2lnbmVkIGludCBjaHJvbWF0aWNpdHlf
Ymx1ZV94OwogdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9ibHVlX3k7CiB1bnNpZ25lZCBpbnQg
Y2hyb21hdGljaXR5X3JlZF94OwogdW5zaWduZWQgaW50IGNocm9tYXRpY2l0eV9yZWRfeTsKIHVu
c2lnbmVkIGludCBjaHJvbWF0aWNpdHlfd2hpdGVfcG9pbnRfeDsKIHVuc2lnbmVkIGludCBjaHJv
bWF0aWNpdHlfd2hpdGVfcG9pbnRfeTsKCiB1aW50MzJfdCBtaW5fbHVtaW5hbmNlOwogdWludDMy
X3QgbWF4X2x1bWluYW5jZTsKIHVpbnQzMl90IG1heGltdW1fY29udGVudF9saWdodF9sZXZlbDsK
IHVpbnQzMl90IG1heGltdW1fZnJhbWVfYXZlcmFnZV9saWdodF9sZXZlbDsKfTsKCmVudW0gZGNf
dHJhbnNmZXJfZnVuY190eXBlIHsKIFRGX1RZUEVfUFJFREVGSU5FRCwKIFRGX1RZUEVfRElTVFJJ
QlVURURfUE9JTlRTLAogVEZfVFlQRV9CWVBBU1MsCiBURl9UWVBFX0hXUFdMCn07CgpzdHJ1Y3Qg
ZGNfdHJhbnNmZXJfZnVuY19kaXN0cmlidXRlZF9wb2ludHMgewogc3RydWN0IGZpeGVkMzFfMzIg
cmVkW1RSQU5TRkVSX0ZVTkNfUE9JTlRTXTsKIHN0cnVjdCBmaXhlZDMxXzMyIGdyZWVuW1RSQU5T
RkVSX0ZVTkNfUE9JTlRTXTsKIHN0cnVjdCBmaXhlZDMxXzMyIGJsdWVbVFJBTlNGRVJfRlVOQ19Q
T0lOVFNdOwoKIHVpbnQxNl90IGVuZF9leHBvbmVudDsKIHVpbnQxNl90IHhfcG9pbnRfYXRfeTFf
cmVkOwogdWludDE2X3QgeF9wb2ludF9hdF95MV9ncmVlbjsKIHVpbnQxNl90IHhfcG9pbnRfYXRf
eTFfYmx1ZTsKfTsKCmVudW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHsKIFRSQU5TRkVS
X0ZVTkNUSU9OX1NSR0IsCiBUUkFOU0ZFUl9GVU5DVElPTl9CVDcwOSwKIFRSQU5TRkVSX0ZVTkNU
SU9OX1BRLAogVFJBTlNGRVJfRlVOQ1RJT05fTElORUFSLAogVFJBTlNGRVJfRlVOQ1RJT05fVU5J
VFksCiBUUkFOU0ZFUl9GVU5DVElPTl9ITEcsCiBUUkFOU0ZFUl9GVU5DVElPTl9ITEcxMiwKIFRS
QU5TRkVSX0ZVTkNUSU9OX0dBTU1BMjIsCiBUUkFOU0ZFUl9GVU5DVElPTl9HQU1NQTI0LAogVFJB
TlNGRVJfRlVOQ1RJT05fR0FNTUEyNgp9OwoKCnN0cnVjdCBkY190cmFuc2Zlcl9mdW5jIHsKIHN0
cnVjdCBrcmVmIHJlZmNvdW50OwogZW51bSBkY190cmFuc2Zlcl9mdW5jX3R5cGUgdHlwZTsKIGVu
dW0gZGNfdHJhbnNmZXJfZnVuY19wcmVkZWZpbmVkIHRmOwoKIHVpbnQzMl90IHNkcl9yZWZfd2hp
dGVfbGV2ZWw7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogdW5pb24gewogIHN0cnVjdCBwd2xf
cGFyYW1zIHB3bDsKICBzdHJ1Y3QgZGNfdHJhbnNmZXJfZnVuY19kaXN0cmlidXRlZF9wb2ludHMg
dGZfcHRzOwogfTsKfTsKCgp1bmlvbiBkY18zZGx1dF9zdGF0ZSB7CiBzdHJ1Y3QgewogIHVpbnQz
Ml90IGluaXRpYWxpemVkOjE7CiAgdWludDMyX3Qgcm11X2lkeF92YWxpZDoxOwogIHVpbnQzMl90
IHJtdV9tdXhfbnVtOjM7CiAgdWludDMyX3QgbXBjX3JtdTBfbXV4OjQ7CiAgdWludDMyX3QgbXBj
X3JtdTFfbXV4OjQ7CiAgdWludDMyX3QgbXBjX3JtdTJfbXV4OjQ7CiAgdWludDMyX3QgcmVzZXJ2
ZWQ6MTU7CiB9IGJpdHM7CiB1aW50MzJfdCByYXc7Cn07CgoKc3RydWN0IGRjXzNkbHV0IHsKIHN0
cnVjdCBrcmVmIHJlZmNvdW50Owogc3RydWN0IHRldHJhaGVkcmFsX3BhcmFtcyBsdXRfM2Q7CiBz
dHJ1Y3QgZml4ZWQzMV8zMiBoZHJfbXVsdGlwbGllcjsKIGJvb2wgaW5pdGlhbGl6ZWQ7CiB1bmlv
biBkY18zZGx1dF9zdGF0ZSBzdGF0ZTsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7Cn07CgoKCgoK
c3RydWN0IGRjX3BsYW5lX3N0YXR1cyB7CiBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyByZXF1ZXN0
ZWRfYWRkcmVzczsKIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIGN1cnJlbnRfYWRkcmVzczsKIGJv
b2wgaXNfZmxpcF9wZW5kaW5nOwogYm9vbCBpc19yaWdodF9leWU7Cn07Cgp1bmlvbiBzdXJmYWNl
X3VwZGF0ZV9mbGFncyB7Cgogc3RydWN0IHsKICB1aW50MzJfdCBhZGRyX3VwZGF0ZToxOwoKICB1
aW50MzJfdCBkY2NfY2hhbmdlOjE7CiAgdWludDMyX3QgY29sb3Jfc3BhY2VfY2hhbmdlOjE7CiAg
dWludDMyX3QgaG9yaXpvbnRhbF9taXJyb3JfY2hhbmdlOjE7CiAgdWludDMyX3QgcGVyX3BpeGVs
X2FscGhhX2NoYW5nZToxOwogIHVpbnQzMl90IGdsb2JhbF9hbHBoYV9jaGFuZ2U6MTsKICB1aW50
MzJfdCBoZHJfbXVsdDoxOwogIHVpbnQzMl90IHJvdGF0aW9uX2NoYW5nZToxOwogIHVpbnQzMl90
IHN3aXp6bGVfY2hhbmdlOjE7CiAgdWludDMyX3Qgc2NhbGluZ19jaGFuZ2U6MTsKICB1aW50MzJf
dCBwb3NpdGlvbl9jaGFuZ2U6MTsKICB1aW50MzJfdCBpbl90cmFuc2Zlcl9mdW5jX2NoYW5nZTox
OwogIHVpbnQzMl90IGlucHV0X2NzY19jaGFuZ2U6MTsKICB1aW50MzJfdCBjb2VmZl9yZWR1Y3Rp
b25fY2hhbmdlOjE7CiAgdWludDMyX3Qgb3V0cHV0X3RmX2NoYW5nZToxOwogIHVpbnQzMl90IHBp
eGVsX2Zvcm1hdF9jaGFuZ2U6MTsKICB1aW50MzJfdCBwbGFuZV9zaXplX2NoYW5nZToxOwoKCiAg
dWludDMyX3QgbmV3X3BsYW5lOjE7CiAgdWludDMyX3QgYnBwX2NoYW5nZToxOwogIHVpbnQzMl90
IGdhbW1hX2NoYW5nZToxOwogIHVpbnQzMl90IGJhbmR3aWR0aF9jaGFuZ2U6MTsKICB1aW50MzJf
dCBjbG9ja19jaGFuZ2U6MTsKICB1aW50MzJfdCBzdGVyZW9fZm9ybWF0X2NoYW5nZToxOwogIHVp
bnQzMl90IGZ1bGxfdXBkYXRlOjE7CiB9IGJpdHM7CgogdWludDMyX3QgcmF3Owp9OwoKc3RydWN0
IGRjX3BsYW5lX3N0YXRlIHsKIHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzIGFkZHJlc3M7CiBzdHJ1
Y3QgZGNfcGxhbmVfZmxpcF90aW1lIHRpbWU7CiBib29sIHRyaXBsZWJ1ZmZlcl9mbGlwczsKIHN0
cnVjdCBzY2FsaW5nX3RhcHMgc2NhbGluZ19xdWFsaXR5Owogc3RydWN0IHJlY3Qgc3JjX3JlY3Q7
CiBzdHJ1Y3QgcmVjdCBkc3RfcmVjdDsKIHN0cnVjdCByZWN0IGNsaXBfcmVjdDsKCiBzdHJ1Y3Qg
cGxhbmVfc2l6ZSBwbGFuZV9zaXplOwogdW5pb24gZGNfdGlsaW5nX2luZm8gdGlsaW5nX2luZm87
Cgogc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSBkY2M7Cgogc3RydWN0IGRjX2dhbW1hICpnYW1t
YV9jb3JyZWN0aW9uOwogc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmluX3RyYW5zZmVyX2Z1bmM7
CiBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgKmJpYXNfYW5kX3NjYWxlOwogc3RydWN0IGRjX2Nz
Y190cmFuc2Zvcm0gaW5wdXRfY3NjX2NvbG9yX21hdHJpeDsKIHN0cnVjdCBmaXhlZDMxXzMyIGNv
ZWZmX3JlZHVjdGlvbl9mYWN0b3I7CiBzdHJ1Y3QgZml4ZWQzMV8zMiBoZHJfbXVsdDsKCgogc3Ry
dWN0IGRjX2hkcl9zdGF0aWNfbWV0YWRhdGEgaGRyX3N0YXRpY19jdHg7CgogZW51bSBkY19jb2xv
cl9zcGFjZSBjb2xvcl9zcGFjZTsKCiBzdHJ1Y3QgZGNfM2RsdXQgKmx1dDNkX2Z1bmM7CiBzdHJ1
Y3QgZGNfdHJhbnNmZXJfZnVuYyAqaW5fc2hhcGVyX2Z1bmM7CiBzdHJ1Y3QgZGNfdHJhbnNmZXJf
ZnVuYyAqYmxlbmRfdGY7CgogZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQ7CiBlbnVt
IGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwogZW51bSBwbGFuZV9zdGVyZW9fZm9ybWF0IHN0
ZXJlb19mb3JtYXQ7CgogYm9vbCBpc190aWxpbmdfcm90YXRlZDsKIGJvb2wgcGVyX3BpeGVsX2Fs
cGhhOwogYm9vbCBnbG9iYWxfYWxwaGE7CiBpbnQgZ2xvYmFsX2FscGhhX3ZhbHVlOwogYm9vbCB2
aXNpYmxlOwogYm9vbCBmbGlwX2ltbWVkaWF0ZTsKIGJvb2wgaG9yaXpvbnRhbF9taXJyb3I7CiBp
bnQgbGF5ZXJfaW5kZXg7CgogdW5pb24gc3VyZmFjZV91cGRhdGVfZmxhZ3MgdXBkYXRlX2ZsYWdz
OwoKIHN0cnVjdCBkY19wbGFuZV9zdGF0dXMgc3RhdHVzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKCgogYm9vbCBmb3JjZV9mdWxsX3VwZGF0ZTsKCgogZW51bSBkY19pcnFfc291cmNlIGlycV9z
b3VyY2U7CiBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKfTsKCnN0cnVjdCBkY19wbGFuZV9pbmZvIHsK
IHN0cnVjdCBwbGFuZV9zaXplIHBsYW5lX3NpemU7CiB1bmlvbiBkY190aWxpbmdfaW5mbyB0aWxp
bmdfaW5mbzsKIHN0cnVjdCBkY19wbGFuZV9kY2NfcGFyYW0gZGNjOwogZW51bSBzdXJmYWNlX3Bp
eGVsX2Zvcm1hdCBmb3JtYXQ7CiBlbnVtIGRjX3JvdGF0aW9uX2FuZ2xlIHJvdGF0aW9uOwogZW51
bSBwbGFuZV9zdGVyZW9fZm9ybWF0IHN0ZXJlb19mb3JtYXQ7CiBlbnVtIGRjX2NvbG9yX3NwYWNl
IGNvbG9yX3NwYWNlOwogYm9vbCBob3Jpem9udGFsX21pcnJvcjsKIGJvb2wgdmlzaWJsZTsKIGJv
b2wgcGVyX3BpeGVsX2FscGhhOwogYm9vbCBnbG9iYWxfYWxwaGE7CiBpbnQgZ2xvYmFsX2FscGhh
X3ZhbHVlOwogYm9vbCBpbnB1dF9jc2NfZW5hYmxlZDsKIGludCBsYXllcl9pbmRleDsKfTsKCnN0
cnVjdCBkY19zY2FsaW5nX2luZm8gewogc3RydWN0IHJlY3Qgc3JjX3JlY3Q7CiBzdHJ1Y3QgcmVj
dCBkc3RfcmVjdDsKIHN0cnVjdCByZWN0IGNsaXBfcmVjdDsKIHN0cnVjdCBzY2FsaW5nX3RhcHMg
c2NhbGluZ19xdWFsaXR5Owp9OwoKc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlIHsKIHN0cnVjdCBk
Y19wbGFuZV9zdGF0ZSAqc3VyZmFjZTsKCgogY29uc3Qgc3RydWN0IGRjX2ZsaXBfYWRkcnMgKmZs
aXBfYWRkcjsKIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9pbmZvICpwbGFuZV9pbmZvOwogY29uc3Qg
c3RydWN0IGRjX3NjYWxpbmdfaW5mbyAqc2NhbGluZ19pbmZvOwogc3RydWN0IGZpeGVkMzFfMzIg
aGRyX211bHQ7CgoKCiBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1hOwogY29uc3Qgc3RydWN0
IGRjX3RyYW5zZmVyX2Z1bmMgKmluX3RyYW5zZmVyX2Z1bmM7CgogY29uc3Qgc3RydWN0IGRjX2Nz
Y190cmFuc2Zvcm0gKmlucHV0X2NzY19jb2xvcl9tYXRyaXg7CiBjb25zdCBzdHJ1Y3QgZml4ZWQz
MV8zMiAqY29lZmZfcmVkdWN0aW9uX2ZhY3RvcjsKIGNvbnN0IHN0cnVjdCBkY190cmFuc2Zlcl9m
dW5jICpmdW5jX3NoYXBlcjsKIGNvbnN0IHN0cnVjdCBkY18zZGx1dCAqbHV0M2RfZnVuYzsKIGNv
bnN0IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpibGVuZF90ZjsKfTsKCgoKCnN0cnVjdCBkY19w
bGFuZV9zdGF0ZSAqZGNfY3JlYXRlX3BsYW5lX3N0YXRlKHN0cnVjdCBkYyAqZGMpOwpjb25zdCBz
dHJ1Y3QgZGNfcGxhbmVfc3RhdHVzICpkY19wbGFuZV9nZXRfc3RhdHVzKAogIGNvbnN0IHN0cnVj
dCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwoKdm9pZCBkY19wbGFuZV9zdGF0ZV9yZXRh
aW4oc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CnZvaWQgZGNfcGxhbmVfc3Rh
dGVfcmVsZWFzZShzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKCnZvaWQgZGNf
Z2FtbWFfcmV0YWluKHN0cnVjdCBkY19nYW1tYSAqZGNfZ2FtbWEpOwp2b2lkIGRjX2dhbW1hX3Jl
bGVhc2Uoc3RydWN0IGRjX2dhbW1hICoqZGNfZ2FtbWEpOwpzdHJ1Y3QgZGNfZ2FtbWEgKmRjX2Ny
ZWF0ZV9nYW1tYSh2b2lkKTsKCnZvaWQgZGNfdHJhbnNmZXJfZnVuY19yZXRhaW4oc3RydWN0IGRj
X3RyYW5zZmVyX2Z1bmMgKmRjX3RmKTsKdm9pZCBkY190cmFuc2Zlcl9mdW5jX3JlbGVhc2Uoc3Ry
dWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmRjX3RmKTsKc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKmRj
X2NyZWF0ZV90cmFuc2Zlcl9mdW5jKHZvaWQpOwoKc3RydWN0IGRjXzNkbHV0ICpkY19jcmVhdGVf
M2RsdXRfZnVuYyh2b2lkKTsKdm9pZCBkY18zZGx1dF9mdW5jX3JlbGVhc2Uoc3RydWN0IGRjXzNk
bHV0ICpsdXQpOwp2b2lkIGRjXzNkbHV0X2Z1bmNfcmV0YWluKHN0cnVjdCBkY18zZGx1dCAqbHV0
KTsKCgoKCgpzdHJ1Y3QgZGNfZmxpcF9hZGRycyB7CiBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBh
ZGRyZXNzOwogdW5zaWduZWQgaW50IGZsaXBfdGltZXN0YW1wX2luX3VzOwogYm9vbCBmbGlwX2lt
bWVkaWF0ZTsKCn07Cgpib29sIGRjX3Bvc3RfdXBkYXRlX3N1cmZhY2VzX3RvX3N0cmVhbSgKICBz
dHJ1Y3QgZGMgKmRjKTsKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw
bGF5L2RjL2RjX3N0cmVhbS5oIiAxCiMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9kY19zdHJlYW0uaCIKc3RydWN0IHRpbWluZ19zeW5jX2luZm8gewogaW50
IGdyb3VwX2lkOwogaW50IGdyb3VwX3NpemU7CiBib29sIG1hc3RlcjsKfTsKCnN0cnVjdCBkY19z
dHJlYW1fc3RhdHVzIHsKIGludCBwcmltYXJ5X290Z19pbnN0OwogaW50IHN0cmVhbV9lbmNfaW5z
dDsKIGludCBwbGFuZV9jb3VudDsKIGludCBhdWRpb19pbnN0Owogc3RydWN0IHRpbWluZ19zeW5j
X2luZm8gdGltaW5nX3N5bmNfaW5mbzsKIHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh
dGVzWzRdOwp9OwoKCnN0cnVjdCBmcmVlc3luY19jb250ZXh0IHsKIGJvb2wgZHVtbXk7Cn07Cgpl
bnVtIGh1YnBfZG1kYXRhX21vZGUgewogRE1EQVRBX1NXX01PREUsCiBETURBVEFfSFdfTU9ERQp9
OwoKc3RydWN0IGRjX2RtZGF0YV9hdHRyaWJ1dGVzIHsKCgoKIGVudW0gaHVicF9kbWRhdGFfbW9k
ZSBkbWRhdGFfbW9kZTsKCiBib29sIGRtZGF0YV9yZXBlYXQ7CgogdWludDMyX3QgZG1kYXRhX3Np
emU7CgogYm9vbCBkbWRhdGFfdXBkYXRlZDsKCiB1bmlvbiBsYXJnZV9pbnRlZ2VyIGFkZHJlc3M7
CgogYm9vbCBkbWRhdGFfcW9zX21vZGU7CgogdWludDMyX3QgZG1kYXRhX3Fvc19sZXZlbDsKCgoK
IHVpbnQzMl90IGRtZGF0YV9kbF9kZWx0YTsKCiB1aW50MzJfdCAqZG1kYXRhX3N3X2RhdGE7Cn07
CgpzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gewogYm9vbCB3Yl9lbmFibGVkOwogaW50IGR3Yl9w
aXBlX2luc3Q7CiBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyBkd2JfcGFyYW1zOwogc3RydWN0IG1jaWZf
YnVmX3BhcmFtcyBtY2lmX2J1Zl9wYXJhbXM7Cn07CgpzdHJ1Y3QgZGNfd3JpdGViYWNrX3VwZGF0
ZSB7CiB1bnNpZ25lZCBpbnQgbnVtX3diX2luZm87CiBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8g
d3JpdGViYWNrX2luZm9bMV07Cn07CgplbnVtIHZlcnRpY2FsX2ludGVycnVwdF9yZWZfcG9pbnQg
ewogU1RBUlRfVl9VUERBVEUgPSAwLAogU1RBUlRfVl9TWU5DLAogSU5WQUxJRF9QT0lOVAoKCgoK
fTsKCnN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnIHsKIGVudW0gdmVydGljYWxfaW50
ZXJydXB0X3JlZl9wb2ludCByZWZfcG9pbnQ7CiBpbnQgbGluZXNfb2Zmc2V0Owp9OwoKdW5pb24g
c3RyZWFtX3VwZGF0ZV9mbGFncyB7CiBzdHJ1Y3QgewogIHVpbnQzMl90IHNjYWxpbmc6MTsKICB1
aW50MzJfdCBvdXRfdGY6MTsKICB1aW50MzJfdCBvdXRfY3NjOjE7CiAgdWludDMyX3QgYWJtX2xl
dmVsOjE7CiAgdWludDMyX3QgZHBtc19vZmY6MTsKICB1aW50MzJfdCBnYW11dF9yZW1hcDoxOwog
IHVpbnQzMl90IHdiX3VwZGF0ZToxOwogfSBiaXRzOwoKIHVpbnQzMl90IHJhdzsKfTsKCnN0cnVj
dCBkY19zdHJlYW1fc3RhdGUgewoKCiBzdHJ1Y3QgZGNfc2luayAqc2luazsKCiBzdHJ1Y3QgZGNf
bGluayAqbGluazsKIHN0cnVjdCBkY19wYW5lbF9wYXRjaCBzaW5rX3BhdGNoZXM7CiB1bmlvbiBk
aXNwbGF5X2NvbnRlbnRfc3VwcG9ydCBjb250ZW50X3N1cHBvcnQ7CiBzdHJ1Y3QgZGNfY3J0Y190
aW1pbmcgdGltaW5nOwogc3RydWN0IGRjX2NydGNfdGltaW5nX2FkanVzdCBhZGp1c3Q7CiBzdHJ1
Y3QgZGNfaW5mb19wYWNrZXQgdnJyX2luZm9wYWNrZXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQg
dnNjX2luZm9wYWNrZXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgdnNwX2luZm9wYWNrZXQ7Cgog
c3RydWN0IHJlY3Qgc3JjOwogc3RydWN0IHJlY3QgZHN0OwoKCiBzdHJ1Y3QgZnJlZXN5bmNfY29u
dGV4dCBmcmVlc3luY19jdHg7Cgogc3RydWN0IGF1ZGlvX2luZm8gYXVkaW9faW5mbzsKCiBzdHJ1
Y3QgZGNfaW5mb19wYWNrZXQgaGRyX3N0YXRpY19tZXRhZGF0YTsKIHVuaW9uIGxhcmdlX2ludGVn
ZXIgZG1kYXRhX2FkZHJlc3M7CiBib29sIHVzZV9keW5hbWljX21ldGE7Cgogc3RydWN0IGRjX3Ry
YW5zZmVyX2Z1bmMgKm91dF90cmFuc2Zlcl9mdW5jOwogc3RydWN0IGNvbG9yc3BhY2VfdHJhbnNm
b3JtIGdhbXV0X3JlbWFwX21hdHJpeDsKIHN0cnVjdCBkY19jc2NfdHJhbnNmb3JtIGNzY19jb2xv
cl9tYXRyaXg7CgogZW51bSBkY19jb2xvcl9zcGFjZSBvdXRwdXRfY29sb3Jfc3BhY2U7CiBlbnVt
IGRjX2RpdGhlcl9vcHRpb24gZGl0aGVyX29wdGlvbjsKCiBlbnVtIHZpZXdfM2RfZm9ybWF0IHZp
ZXdfZm9ybWF0OwoKIGJvb2wgdXNlX3ZzY19zZHBfZm9yX2NvbG9yaW1ldHJ5OwogYm9vbCBpZ25v
cmVfbXNhX3RpbWluZ19wYXJhbTsKIGJvb2wgY29udmVydGVyX2Rpc2FibGVfYXVkaW87CiB1aW50
OF90IHFzX2JpdDsKIHVpbnQ4X3QgcXlfYml0OwoKCgoKIHVuc2lnbmVkIGNoYXIgcHNyX3ZlcnNp
b247CgoKCiB1bnNpZ25lZCBpbnQgYWJtX2xldmVsOwoKIHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1
cHRfY29uZmlnIHBlcmlvZGljX2ludGVycnVwdDA7CiBzdHJ1Y3QgcGVyaW9kaWNfaW50ZXJydXB0
X2NvbmZpZyBwZXJpb2RpY19pbnRlcnJ1cHQxOwoKCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwoK
CiBzdHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgYml0X2RlcHRoX3BhcmFtczsKIHN0
cnVjdCBjbGFtcGluZ19hbmRfcGl4ZWxfZW5jb2RpbmdfcGFyYW1zIGNsYW1waW5nOwoKIGludCBw
aHlfcGl4X2NsazsKIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwogYm9vbCBkcG1zX29mZjsKCiB2
b2lkICpkbV9zdHJlYW1fY29udGV4dDsKCiBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgY3Vy
c29yX2F0dHJpYnV0ZXM7CiBzdHJ1Y3QgZGNfY3Vyc29yX3Bvc2l0aW9uIGN1cnNvcl9wb3NpdGlv
bjsKIHVpbnQzMl90IHNkcl93aGl0ZV9sZXZlbDsKCgogc3RydWN0IGtyZWYgcmVmY291bnQ7Cgog
c3RydWN0IGNydGNfdHJpZ2dlcl9pbmZvIHRyaWdnZXJlZF9jcnRjX3Jlc2V0OwoKCiB1bnNpZ25l
ZCBpbnQgbnVtX3diX2luZm87CiBzdHJ1Y3QgZGNfd3JpdGViYWNrX2luZm8gd3JpdGViYWNrX2lu
Zm9bMV07CgogYm9vbCBtb2RlX2NoYW5nZWQgOiAxOwoKCgoKCgogc3RydWN0IHsKCgogIHVpbnQ4
X3Qgb3RnX29mZnNldDsKIH0gb3V0OwoKIGJvb2wgYXBwbHlfZWRwX2Zhc3RfYm9vdF9vcHRpbWl6
YXRpb247CiBib29sIGFwcGx5X3NlYW1sZXNzX2Jvb3Rfb3B0aW1pemF0aW9uOwoKIHVpbnQzMl90
IHN0cmVhbV9pZDsKIGJvb2wgaXNfZHNjX2VuYWJsZWQ7CiB1bmlvbiBzdHJlYW1fdXBkYXRlX2Zs
YWdzIHVwZGF0ZV9mbGFnczsKfTsKCgoKc3RydWN0IGRjX3N0cmVhbV91cGRhdGUgewogc3RydWN0
IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtOwoKIHN0cnVjdCByZWN0IHNyYzsKIHN0cnVjdCByZWN0
IGRzdDsKIHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICpvdXRfdHJhbnNmZXJfZnVuYzsKIHN0cnVj
dCBkY19pbmZvX3BhY2tldCAqaGRyX3N0YXRpY19tZXRhZGF0YTsKIHVuc2lnbmVkIGludCAqYWJt
X2xldmVsOwoKIHN0cnVjdCBwZXJpb2RpY19pbnRlcnJ1cHRfY29uZmlnICpwZXJpb2RpY19pbnRl
cnJ1cHQwOwogc3RydWN0IHBlcmlvZGljX2ludGVycnVwdF9jb25maWcgKnBlcmlvZGljX2ludGVy
cnVwdDE7Cgogc3RydWN0IGRjX2luZm9fcGFja2V0ICp2cnJfaW5mb3BhY2tldDsKIHN0cnVjdCBk
Y19pbmZvX3BhY2tldCAqdnNjX2luZm9wYWNrZXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgKnZz
cF9pbmZvcGFja2V0OwoKIGJvb2wgKmRwbXNfb2ZmOwogYm9vbCBpbnRlZ2VyX3NjYWxpbmdfdXBk
YXRlOwoKIHN0cnVjdCBjb2xvcnNwYWNlX3RyYW5zZm9ybSAqZ2FtdXRfcmVtYXA7CiBlbnVtIGRj
X2NvbG9yX3NwYWNlICpvdXRwdXRfY29sb3Jfc3BhY2U7CiBlbnVtIGRjX2RpdGhlcl9vcHRpb24g
KmRpdGhlcl9vcHRpb247Cgogc3RydWN0IGRjX2NzY190cmFuc2Zvcm0gKm91dHB1dF9jc2NfdHJh
bnNmb3JtOwoKIHN0cnVjdCBkY193cml0ZWJhY2tfdXBkYXRlICp3Yl91cGRhdGU7CiBzdHJ1Y3Qg
ZGNfZHNjX2NvbmZpZyAqZHNjX2NvbmZpZzsKfTsKCmJvb2wgZGNfaXNfc3RyZWFtX3VuY2hhbmdl
ZCgKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKm9sZF9zdHJlYW0sIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7CmJvb2wgZGNfaXNfc3RyZWFtX3NjYWxpbmdfdW5jaGFuZ2VkKAogc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqb2xkX3N0cmVhbSwgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAq
c3RyZWFtKTsKIyAyNzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9kY19zdHJlYW0uaCIKdm9pZCBkY19jb21taXRfdXBkYXRlc19mb3Jfc3RyZWFtKHN0cnVjdCBk
YyAqZGMsCiAgc3RydWN0IGRjX3N1cmZhY2VfdXBkYXRlICpzcmZfdXBkYXRlcywKICBpbnQgc3Vy
ZmFjZV9jb3VudCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRj
X3N0cmVhbV91cGRhdGUgKnN0cmVhbV91cGRhdGUsCiAgc3RydWN0IGRjX3N0YXRlICpzdGF0ZSk7
CgoKCnZvaWQgZGNfc3RyZWFtX2xvZyhjb25zdCBzdHJ1Y3QgZGMgKmRjLCBjb25zdCBzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoKdWludDhfdCBkY19nZXRfY3VycmVudF9zdHJlYW1f
Y291bnQoc3RydWN0IGRjICpkYyk7CnN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX2dldF9zdHJl
YW1fYXRfaW5kZXgoc3RydWN0IGRjICpkYywgdWludDhfdCBpKTsKCgoKCnVpbnQzMl90IGRjX3N0
cmVhbV9nZXRfdmJsYW5rX2NvdW50ZXIoY29uc3Qgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3Ry
ZWFtKTsKCgoKCmJvb2wgZGNfc3RyZWFtX3NlbmRfZHBfc2RwKGNvbnN0IHN0cnVjdCBkY19zdHJl
YW1fc3RhdGUgKnN0cmVhbSwKICBjb25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCiAg
dW5zaWduZWQgaW50IHNkcF9tZXNzYWdlX3NpemUpOwoKCgoKCmJvb2wgZGNfc3RyZWFtX2dldF9z
Y2Fub3V0cG9zKGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICAgICAgdWlu
dDMyX3QgKnZfYmxhbmtfc3RhcnQsCiAgICAgIHVpbnQzMl90ICp2X2JsYW5rX2VuZCwKICAgICAg
dWludDMyX3QgKmhfcG9zaXRpb24sCiAgICAgIHVpbnQzMl90ICp2X3Bvc2l0aW9uKTsKCmVudW0g
ZGNfc3RhdHVzIGRjX2FkZF9zdHJlYW1fdG9fY3R4KAogICBzdHJ1Y3QgZGMgKmRjLAogIHN0cnVj
dCBkY19zdGF0ZSAqbmV3X2N0eCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoK
ZW51bSBkY19zdGF0dXMgZGNfcmVtb3ZlX3N0cmVhbV9mcm9tX2N0eCgKICBzdHJ1Y3QgZGMgKmRj
LAogICBzdHJ1Y3QgZGNfc3RhdGUgKm5ld19jdHgsCiAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg
KnN0cmVhbSk7CgoKYm9vbCBkY19hZGRfcGxhbmVfdG9fY29udGV4dCgKICBjb25zdCBzdHJ1Y3Qg
ZGMgKmRjLAogIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICBzdHJ1Y3QgZGNfcGxh
bmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Cgpib29s
IGRjX3JlbW92ZV9wbGFuZV9mcm9tX2NvbnRleHQoCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpw
bGFuZV9zdGF0ZSwKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwoKYm9vbCBkY19yZW1fYWxs
X3BsYW5lc19mb3Jfc3RyZWFtKAogIGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgc3RydWN0IGRjX3N0
cmVhbV9zdGF0ZSAqc3RyZWFtLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Cgpib29sIGRj
X2FkZF9hbGxfcGxhbmVzX2Zvcl9zdHJlYW0oCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBzdHJ1
Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRjX3BsYW5lX3N0YXRlICogY29u
c3QgKnBsYW5lX3N0YXRlcywKICBpbnQgcGxhbmVfY291bnQsCiAgc3RydWN0IGRjX3N0YXRlICpj
b250ZXh0KTsKCmJvb2wgZGNfc3RyZWFtX2FkZF93cml0ZWJhY2soc3RydWN0IGRjICpkYywKICBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0IGRjX3dyaXRlYmFja19pbmZv
ICp3Yl9pbmZvKTsKCmJvb2wgZGNfc3RyZWFtX3JlbW92ZV93cml0ZWJhY2soc3RydWN0IGRjICpk
YywKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgdWludDMyX3QgZHdiX3BpcGVf
aW5zdCk7Cgpib29sIGRjX3N0cmVhbV93YXJtdXBfd3JpdGViYWNrKHN0cnVjdCBkYyAqZGMsCiAg
aW50IG51bV9kd2IsCiAgc3RydWN0IGRjX3dyaXRlYmFja19pbmZvICp3Yl9pbmZvKTsKCmJvb2wg
ZGNfc3RyZWFtX2RtZGF0YV9zdGF0dXNfZG9uZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXRlICpzdHJlYW0pOwoKYm9vbCBkY19zdHJlYW1fc2V0X2R5bmFtaWNfbWV0YWRhdGEo
c3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgc3RydWN0
IGRjX2RtZGF0YV9hdHRyaWJ1dGVzICpkbWRhdGFfYXR0cik7CgplbnVtIGRjX3N0YXR1cyBkY192
YWxpZGF0ZV9zdHJlYW0oc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3Ry
ZWFtKTsKIyAzNzYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9k
Y19zdHJlYW0uaCIKYm9vbCBkY19lbmFibGVfc3RlcmVvKAogc3RydWN0IGRjICpkYywKIHN0cnVj
dCBkY19zdGF0ZSAqY29udGV4dCwKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbXNbXSwK
IHVpbnQ4X3Qgc3RyZWFtX2NvdW50KTsKCgplbnVtIHN1cmZhY2VfdXBkYXRlX3R5cGUgZGNfY2hl
Y2tfdXBkYXRlX3N1cmZhY2VzX2Zvcl9zdHJlYW0oCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3Qg
ZGNfc3VyZmFjZV91cGRhdGUgKnVwZGF0ZXMsCiAgaW50IHN1cmZhY2VfY291bnQsCiAgc3RydWN0
IGRjX3N0cmVhbV91cGRhdGUgKnN0cmVhbV91cGRhdGUsCiAgY29uc3Qgc3RydWN0IGRjX3N0cmVh
bV9zdGF0dXMgKnN0cmVhbV9zdGF0dXMpOwoKCgoKc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqZGNf
Y3JlYXRlX3N0cmVhbV9mb3Jfc2luayhzdHJ1Y3QgZGNfc2luayAqZGNfc2luayk7CgpzdHJ1Y3Qg
ZGNfc3RyZWFtX3N0YXRlICpkY19jb3B5X3N0cmVhbShjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpzdHJlYW0pOwoKdm9pZCB1cGRhdGVfc3RyZWFtX3NpZ25hbChzdHJ1Y3QgZGNfc3RyZWFt
X3N0YXRlICpzdHJlYW0sIHN0cnVjdCBkY19zaW5rICpzaW5rKTsKCnZvaWQgZGNfc3RyZWFtX3Jl
dGFpbihzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0pOwp2b2lkIGRjX3N0cmVhbV9y
ZWxlYXNlKHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKmRjX3N0cmVhbSk7CgpzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXR1cyAqZGNfc3RyZWFtX2dldF9zdGF0dXNfZnJvbV9zdGF0ZSgKIHN0cnVjdCBkY19z
dGF0ZSAqc3RhdGUsCiBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwpzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXR1cyAqZGNfc3RyZWFtX2dldF9zdGF0dXMoCiBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpkY19zdHJlYW0pOwoKCgoKCmJvb2wgZGNfc3RyZWFtX3NldF9jdXJzb3JfYXR0cmlidXRl
cygKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKIGNvbnN0IHN0cnVjdCBkY19jdXJz
b3JfYXR0cmlidXRlcyAqYXR0cmlidXRlcyk7Cgpib29sIGRjX3N0cmVhbV9zZXRfY3Vyc29yX3Bv
c2l0aW9uKAogc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogY29uc3Qgc3RydWN0IGRj
X2N1cnNvcl9wb3NpdGlvbiAqcG9zaXRpb24pOwoKCmJvb2wgZGNfc3RyZWFtX2FkanVzdF92bWlu
X3ZtYXgoc3RydWN0IGRjICpkYywKICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwK
ICAgIHN0cnVjdCBkY19jcnRjX3RpbWluZ19hZGp1c3QgKmFkanVzdCk7Cgpib29sIGRjX3N0cmVh
bV9nZXRfY3J0Y19wb3NpdGlvbihzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKipzdHJlYW0sCiAgICAgaW50IG51bV9zdHJlYW1zLAogICAgIHVuc2lnbmVkIGludCAq
dl9wb3MsCiAgICAgdW5zaWduZWQgaW50ICpub21fdl9wb3MpOwoKYm9vbCBkY19zdHJlYW1fY29u
ZmlndXJlX2NyYyhzdHJ1Y3QgZGMgKmRjLAogICAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg
KnN0cmVhbSwKICAgICAgICBib29sIGVuYWJsZSwKICAgICAgICBib29sIGNvbnRpbnVvdXMpOwoK
Ym9vbCBkY19zdHJlYW1fZ2V0X2NyYyhzdHJ1Y3QgZGMgKmRjLAogICAgICAgICBzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgICAgICAgIHVpbnQzMl90ICpyX2NyLAogICAgICAgICB1
aW50MzJfdCAqZ195LAogICAgICAgICB1aW50MzJfdCAqYl9jYik7Cgp2b2lkIGRjX3N0cmVhbV9z
ZXRfc3RhdGljX3NjcmVlbl9wYXJhbXMoc3RydWN0IGRjICpkYywKICAgICBzdHJ1Y3QgZGNfc3Ry
ZWFtX3N0YXRlICoqc3RyZWFtLAogICAgIGludCBudW1fc3RyZWFtcywKICAgICBjb25zdCBzdHJ1
Y3QgZGNfc3RhdGljX3NjcmVlbl9wYXJhbXMgKnBhcmFtcyk7Cgp2b2lkIGRjX3N0cmVhbV9zZXRf
ZHluX2V4cGFuc2lvbihzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl
YW0sCiAgZW51bSBkY19keW5hbWljX2V4cGFuc2lvbiBvcHRpb24pOwoKdm9pZCBkY19zdHJlYW1f
c2V0X2RpdGhlcl9vcHRpb24oc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogICAgIGVu
dW0gZGNfZGl0aGVyX29wdGlvbiBvcHRpb24pOwoKYm9vbCBkY19zdHJlYW1fc2V0X2dhbXV0X3Jl
bWFwKHN0cnVjdCBkYyAqZGMsCiAgICAgICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpzdHJlYW0pOwoKYm9vbCBkY19zdHJlYW1fcHJvZ3JhbV9jc2NfbWF0cml4KHN0cnVjdCBkYyAq
ZGMsCiAgICAgIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7Cgpib29sIGRjX3N0cmVh
bV9nZXRfY3J0Y19wb3NpdGlvbihzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKipzdHJlYW0sCiAgICAgaW50IG51bV9zdHJlYW1zLAogICAgIHVuc2lnbmVkIGludCAq
dl9wb3MsCiAgICAgdW5zaWduZWQgaW50ICpub21fdl9wb3MpOwojIDg3NCAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDIKCgoKCnN0cnVjdCBkY192YWxp
ZGF0aW9uX3NldCB7CiBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW07CiBzdHJ1Y3QgZGNf
cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlc1szXTsKIHVpbnQ4X3QgcGxhbmVfY291bnQ7Cn07Cgpi
b29sIGRjX3ZhbGlkYXRlX3NlYW1sZXNzX2Jvb3RfdGltaW5nKGNvbnN0IHN0cnVjdCBkYyAqZGMs
CiAgICBjb25zdCBzdHJ1Y3QgZGNfc2luayAqc2luaywKICAgIHN0cnVjdCBkY19jcnRjX3RpbWlu
ZyAqY3J0Y190aW1pbmcpOwoKZW51bSBkY19zdGF0dXMgZGNfdmFsaWRhdGVfcGxhbmUoc3RydWN0
IGRjICpkYywgY29uc3Qgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cgp2b2lk
IGdldF9jbG9ja19yZXF1aXJlbWVudHNfZm9yX3N0YXRlKHN0cnVjdCBkY19zdGF0ZSAqc3RhdGUs
IHN0cnVjdCBBc2ljU3RhdGVFeCAqaW5mbyk7Cgpib29sIGRjX3NldF9nZW5lcmljX2dwaW9fZm9y
X3N0ZXJlbyhib29sIGVuYWJsZSwKICBzdHJ1Y3QgZ3Bpb19zZXJ2aWNlICpncGlvX3NlcnZpY2Up
OwoKCgoKCmVudW0gZGNfc3RhdHVzIGRjX3ZhbGlkYXRlX2dsb2JhbF9zdGF0ZSgKICBzdHJ1Y3Qg
ZGMgKmRjLAogIHN0cnVjdCBkY19zdGF0ZSAqbmV3X2N0eCwKICBib29sIGZhc3RfdmFsaWRhdGUp
OwoKCnZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVfY29uc3RydWN0KAogIGNvbnN0IHN0cnVjdCBkYyAq
ZGMsCiAgc3RydWN0IGRjX3N0YXRlICpkc3RfY3R4KTsKCnZvaWQgZGNfcmVzb3VyY2Vfc3RhdGVf
Y29weV9jb25zdHJ1Y3QoCiAgY29uc3Qgc3RydWN0IGRjX3N0YXRlICpzcmNfY3R4LAogIHN0cnVj
dCBkY19zdGF0ZSAqZHN0X2N0eCk7Cgp2b2lkIGRjX3Jlc291cmNlX3N0YXRlX2NvcHlfY29uc3Ry
dWN0X2N1cnJlbnQoCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmRz
dF9jdHgpOwoKdm9pZCBkY19yZXNvdXJjZV9zdGF0ZV9kZXN0cnVjdChzdHJ1Y3QgZGNfc3RhdGUg
KmNvbnRleHQpOwoKYm9vbCBkY19yZXNvdXJjZV9pc19kc2NfZW5jb2Rpbmdfc3VwcG9ydGVkKGNv
bnN0IHN0cnVjdCBkYyAqZGMpOwojIDkzMCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2RjLmgiCmJvb2wgZGNfY29tbWl0X3N0YXRlKHN0cnVjdCBkYyAqZGMsIHN0
cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7CgoKc3RydWN0IGRjX3N0YXRlICpkY19jcmVhdGVfc3Rh
dGUoc3RydWN0IGRjICpkYyk7CnN0cnVjdCBkY19zdGF0ZSAqZGNfY29weV9zdGF0ZShzdHJ1Y3Qg
ZGNfc3RhdGUgKnNyY19jdHgpOwp2b2lkIGRjX3JldGFpbl9zdGF0ZShzdHJ1Y3QgZGNfc3RhdGUg
KmNvbnRleHQpOwp2b2lkIGRjX3JlbGVhc2Vfc3RhdGUoc3RydWN0IGRjX3N0YXRlICpjb250ZXh0
KTsKCgoKCgpzdHJ1Y3QgZHBjZF9jYXBzIHsKIHVuaW9uIGRwY2RfcmV2IGRwY2RfcmV2OwogdW5p
b24gbWF4X2xhbmVfY291bnQgbWF4X2xuX2NvdW50OwogdW5pb24gbWF4X2Rvd25fc3ByZWFkIG1h
eF9kb3duX3NwcmVhZDsKIHVuaW9uIGRwcnhfZmVhdHVyZSBkcHJ4X2ZlYXR1cmU7CgoKIHVpbnQ4
X3QgZWRwX3N1cHBvcnRlZF9saW5rX3JhdGVzX2NvdW50OwogZW51bSBkY19saW5rX3JhdGUgZWRw
X3N1cHBvcnRlZF9saW5rX3JhdGVzWzhdOwoKCiBlbnVtIGRpc3BsYXlfZG9uZ2xlX3R5cGUgZG9u
Z2xlX3R5cGU7CgogYm9vbCBpc19icmFuY2hfZGV2OwoKIHVuaW9uIHNpbmtfY291bnQgc2lua19j
b3VudDsKCgogc3RydWN0IGRjX2RvbmdsZV9jYXBzIGRvbmdsZV9jYXBzOwoKIHVpbnQzMl90IHNp
bmtfZGV2X2lkOwogaW50OF90IHNpbmtfZGV2X2lkX3N0cls2XTsKIGludDhfdCBzaW5rX2h3X3Jl
dmlzaW9uOwogaW50OF90IHNpbmtfZndfcmV2aXNpb25bMl07CgogdWludDMyX3QgYnJhbmNoX2Rl
dl9pZDsKIGludDhfdCBicmFuY2hfZGV2X25hbWVbNl07CiBpbnQ4X3QgYnJhbmNoX2h3X3Jldmlz
aW9uOwogaW50OF90IGJyYW5jaF9md19yZXZpc2lvblsyXTsKCiBib29sIGFsbG93X2ludmFsaWRf
TVNBX3RpbWluZ19wYXJhbTsKIGJvb2wgcGFuZWxfbW9kZV9lZHA7CiBib29sIGRwY2RfZGlzcGxh
eV9jb250cm9sX2NhcGFibGU7CiBib29sIGV4dF9yZWNlaXZlcl9jYXBfZmllbGRfcHJlc2VudDsK
IHVuaW9uIGRwY2RfZmVjX2NhcGFiaWxpdHkgZmVjX2NhcDsKIHN0cnVjdCBkcGNkX2RzY19jYXBh
YmlsaXRpZXMgZHNjX2NhcHM7CiBzdHJ1Y3QgZGNfbHR0cHJfY2FwcyBsdHRwcl9jYXBzOwoKfTsK
CiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2xpbmsu
aCIgMQojIDMyICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNf
bGluay5oIgplbnVtIGRjX2xpbmtfZmVjX3N0YXRlIHsKIGRjX2xpbmtfZmVjX25vdF9yZWFkeSwK
IGRjX2xpbmtfZmVjX3JlYWR5LAogZGNfbGlua19mZWNfZW5hYmxlZAp9OwpzdHJ1Y3QgZGNfbGlu
a19zdGF0dXMgewogYm9vbCBsaW5rX2FjdGl2ZTsKIHN0cnVjdCBkcGNkX2NhcHMgKmRwY2RfY2Fw
czsKfTsKCgpzdHJ1Y3QgbGlua19tc3Rfc3RyZWFtX2FsbG9jYXRpb24gewoKIGNvbnN0IHN0cnVj
dCBzdHJlYW1fZW5jb2RlciAqc3RyZWFtX2VuYzsKCiB1aW50OF90IHZjcF9pZDsKCiB1aW50OF90
IHNsb3RfY291bnQ7Cn07CgoKc3RydWN0IGxpbmtfbXN0X3N0cmVhbV9hbGxvY2F0aW9uX3RhYmxl
IHsKCiBpbnQgc3RyZWFtX2NvdW50OwoKIHN0cnVjdCBsaW5rX21zdF9zdHJlYW1fYWxsb2NhdGlv
biBzdHJlYW1fYWxsb2NhdGlvbnNbTUFYX0NPTlRST0xMRVJfTlVNXTsKfTsKCnN0cnVjdCB0aW1l
X3N0YW1wIHsKIHVpbnQ2NF90IGVkcF9wb3dlcm9mZjsKIHVpbnQ2NF90IGVkcF9wb3dlcm9uOwp9
OwoKc3RydWN0IGxpbmtfdHJhY2Ugewogc3RydWN0IHRpbWVfc3RhbXAgdGltZV9zdGFtcDsKfTsK
CgoKCnN0cnVjdCBkY19saW5rIHsKIHN0cnVjdCBkY19zaW5rICpyZW1vdGVfc2lua3NbNF07CiB1
bnNpZ25lZCBpbnQgc2lua19jb3VudDsKIHN0cnVjdCBkY19zaW5rICpsb2NhbF9zaW5rOwogdW5z
aWduZWQgaW50IGxpbmtfaW5kZXg7CiBlbnVtIGRjX2Nvbm5lY3Rpb25fdHlwZSB0eXBlOwogZW51
bSBzaWduYWxfdHlwZSBjb25uZWN0b3Jfc2lnbmFsOwogZW51bSBkY19pcnFfc291cmNlIGlycV9z
b3VyY2VfaHBkOwogZW51bSBkY19pcnFfc291cmNlIGlycV9zb3VyY2VfaHBkX3J4OwogYm9vbCBp
c19ocGRfZmlsdGVyX2Rpc2FibGVkOwogYm9vbCBkcF9zc19vZmY7CiBib29sIGxpbmtfc3RhdGVf
dmFsaWQ7CiBib29sIGF1eF9hY2Nlc3NfZGlzYWJsZWQ7CiBib29sIHN5bmNfbHRfaW5fcHJvZ3Jl
c3M7CiBib29sIGlzX2x0dHByX21vZGVfdHJhbnNwYXJlbnQ7CgoKCgogc3RydWN0IGRjX2xpbmtf
c2V0dGluZ3MgcmVwb3J0ZWRfbGlua19jYXA7CiBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyB2ZXJp
ZmllZF9saW5rX2NhcDsKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGN1cl9saW5rX3NldHRpbmdz
Owogc3RydWN0IGRjX2xhbmVfc2V0dGluZ3MgY3VyX2xhbmVfc2V0dGluZzsKIHN0cnVjdCBkY19s
aW5rX3NldHRpbmdzIHByZWZlcnJlZF9saW5rX3NldHRpbmc7CiBzdHJ1Y3QgZGNfbGlua190cmFp
bmluZ19vdmVycmlkZXMgcHJlZmVycmVkX3RyYWluaW5nX3NldHRpbmdzOwogc3RydWN0IGRwX2F1
ZGlvX3Rlc3RfZGF0YSBhdWRpb190ZXN0X2RhdGE7CgogdWludDhfdCBkZGNfaHdfaW5zdDsKCiB1
aW50OF90IGhwZF9zcmM7CgogdWludDhfdCBsaW5rX2VuY19od19pbnN0OwoKIGJvb2wgdGVzdF9w
YXR0ZXJuX2VuYWJsZWQ7CiB1bmlvbiBjb21wbGlhbmNlX3Rlc3Rfc3RhdGUgY29tcGxpYW5jZV90
ZXN0X3N0YXRlOwoKIHZvaWQgKnByaXY7Cgogc3RydWN0IGRkY19zZXJ2aWNlICpkZGM7CgogYm9v
bCBhdXhfbW9kZTsKCgoKIGNvbnN0IHN0cnVjdCBkYyAqZGM7Cgogc3RydWN0IGRjX2NvbnRleHQg
KmN0eDsKCiBzdHJ1Y3QgbGlua19lbmNvZGVyICpsaW5rX2VuYzsKIHN0cnVjdCBncmFwaGljc19v
YmplY3RfaWQgbGlua19pZDsKIHVuaW9uIGRkaV9jaGFubmVsX21hcHBpbmcgZGRpX2NoYW5uZWxf
bWFwcGluZzsKIHN0cnVjdCBjb25uZWN0b3JfZGV2aWNlX3RhZ19pbmZvIGRldmljZV90YWc7CiBz
dHJ1Y3QgZHBjZF9jYXBzIGRwY2RfY2FwczsKIHVpbnQzMl90IGRvbmdsZV9tYXhfcGl4X2NsazsK
IHVuc2lnbmVkIHNob3J0IGNoaXBfY2FwczsKIHVuc2lnbmVkIGludCBkcGNkX3NpbmtfY291bnQ7
CiBlbnVtIGVkcF9yZXZpc2lvbiBlZHBfcmV2aXNpb247CiBib29sIHBzcl9mZWF0dXJlX2VuYWJs
ZWQ7CiBib29sIHBzcl9hbGxvd19hY3RpdmU7CgoKIHN0cnVjdCBsaW5rX2ZsYWdzIHsKICBib29s
IGRwX2tlZXBfcmVjZWl2ZXJfcG93ZXJlZDsKICBib29sIGRwX3NraXBfRElEMjsKICBib29sIGRw
X3NraXBfcmVzZXRfc2VnbWVudDsKIH0gd2FfZmxhZ3M7CiBzdHJ1Y3QgbGlua19tc3Rfc3RyZWFt
X2FsbG9jYXRpb25fdGFibGUgbXN0X3N0cmVhbV9hbGxvY190YWJsZTsKCiBzdHJ1Y3QgZGNfbGlu
a19zdGF0dXMgbGlua19zdGF0dXM7Cgogc3RydWN0IGxpbmtfdHJhY2UgbGlua190cmFjZTsKIHN0
cnVjdCBncGlvICpocGRfZ3BpbzsKIGVudW0gZGNfbGlua19mZWNfc3RhdGUgZmVjX3N0YXRlOwp9
OwoKY29uc3Qgc3RydWN0IGRjX2xpbmtfc3RhdHVzICpkY19saW5rX2dldF9zdGF0dXMoY29uc3Qg
c3RydWN0IGRjX2xpbmsgKmRjX2xpbmspOwojIDE1NiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2xpbmsuaCIKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9f
KChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0
ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgc3RydWN0IGRjX2xpbmsgKmRjX2dldF9saW5r
X2F0X2luZGV4KHN0cnVjdCBkYyAqZGMsIHVpbnQzMl90IGxpbmtfaW5kZXgpCnsKIHJldHVybiBk
Yy0+bGlua3NbbGlua19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBkY19saW5rICpnZXRfZWRwX2xpbmsoY29u
c3Qgc3RydWN0IGRjICpkYykKewogaW50IGk7CgoKIGZvciAoaSA9IDA7IGkgPCBkYy0+bGlua19j
b3VudDsgaSsrKSB7CiAgaWYgKGRjLT5saW5rc1tpXS0+Y29ubmVjdG9yX3NpZ25hbCA9PSBTSUdO
QUxfVFlQRV9FRFApCiAgIHJldHVybiBkYy0+bGlua3NbaV07CiB9CiByZXR1cm4gKCh2b2lkICop
MCk7Cn0KCgoKCgpib29sIGRjX2xpbmtfc2V0X2JhY2tsaWdodF9sZXZlbChjb25zdCBzdHJ1Y3Qg
ZGNfbGluayAqZGNfbGluaywKICB1aW50MzJfdCBiYWNrbGlnaHRfcHdtX3UxNl8xNiwKICB1aW50
MzJfdCBmcmFtZV9yYW1wKTsKCmludCBkY19saW5rX2dldF9iYWNrbGlnaHRfbGV2ZWwoY29uc3Qg
c3RydWN0IGRjX2xpbmsgKmRjX2xpbmspOwoKYm9vbCBkY19saW5rX3NldF9hYm1fZGlzYWJsZShj
b25zdCBzdHJ1Y3QgZGNfbGluayAqZGNfbGluayk7Cgpib29sIGRjX2xpbmtfc2V0X3Bzcl9hbGxv
d19hY3RpdmUoc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssIGJvb2wgZW5hYmxlLCBib29sIHdhaXQp
OwoKYm9vbCBkY19saW5rX2dldF9wc3Jfc3RhdGUoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmRjX2xp
bmssIHVpbnQzMl90ICpwc3Jfc3RhdGUpOwoKYm9vbCBkY19saW5rX3NldHVwX3BzcihzdHJ1Y3Qg
ZGNfbGluayAqZGNfbGluaywKICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0s
IHN0cnVjdCBwc3JfY29uZmlnICpwc3JfY29uZmlnLAogIHN0cnVjdCBwc3JfY29udGV4dCAqcHNy
X2NvbnRleHQpOwoKCgoKCgoKZW51bSBkY19kZXRlY3RfcmVhc29uIHsKIERFVEVDVF9SRUFTT05f
Qk9PVCwKIERFVEVDVF9SRUFTT05fSFBELAogREVURUNUX1JFQVNPTl9IUERSWCwKfTsKCmJvb2wg
ZGNfbGlua19kZXRlY3Qoc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssIGVudW0gZGNfZGV0ZWN0X3Jl
YXNvbiByZWFzb24pOwpib29sIGRjX2xpbmtfZ2V0X2hwZF9zdGF0ZShzdHJ1Y3QgZGNfbGluayAq
ZGNfbGluayk7CmVudW0gZGNfc3RhdHVzIGRjX2xpbmtfYWxsb2NhdGVfbXN0X3BheWxvYWQoc3Ry
dWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CmVudW0gZGNfc3RhdHVzIGRjX2xpbmtfcmVhbGxvY2F0
ZV9tc3RfcGF5bG9hZChzdHJ1Y3QgZGNfbGluayAqbGluayk7CgoKCgoKCgpib29sIGRjX2xpbmtf
aGFuZGxlX2hwZF9yeF9pcnEoc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssCiAgdW5pb24gaHBkX2ly
cV9kYXRhICpocGRfaXJxX2RwY2RfZGF0YSwgYm9vbCAqb3V0X2xpbmtfbG9zcyk7CgpzdHJ1Y3Qg
ZGNfc2lua19pbml0X2RhdGE7CgpzdHJ1Y3QgZGNfc2luayAqZGNfbGlua19hZGRfcmVtb3RlX3Np
bmsoCiAgc3RydWN0IGRjX2xpbmsgKmRjX2xpbmssCiAgY29uc3QgdWludDhfdCAqZWRpZCwKICBp
bnQgbGVuLAogIHN0cnVjdCBkY19zaW5rX2luaXRfZGF0YSAqaW5pdF9kYXRhKTsKCnZvaWQgZGNf
bGlua19yZW1vdmVfcmVtb3RlX3NpbmsoCiBzdHJ1Y3QgZGNfbGluayAqbGluaywKIHN0cnVjdCBk
Y19zaW5rICpzaW5rKTsKCgoKdm9pZCBkY19saW5rX2RwX3NldF9kcml2ZV9zZXR0aW5ncygKIHN0
cnVjdCBkY19saW5rICpsaW5rLAogc3RydWN0IGxpbmtfdHJhaW5pbmdfc2V0dGluZ3MgKmx0X3Nl
dHRpbmdzKTsKCmJvb2wgZGNfbGlua19kcF9wZXJmb3JtX2xpbmtfdHJhaW5pbmdfc2tpcF9hdXgo
CiBzdHJ1Y3QgZGNfbGluayAqbGluaywKIGNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICps
aW5rX3NldHRpbmcpOwoKZW51bSBsaW5rX3RyYWluaW5nX3Jlc3VsdCBkY19saW5rX2RwX3BlcmZv
cm1fbGlua190cmFpbmluZygKIHN0cnVjdCBkY19saW5rICpsaW5rLAogY29uc3Qgc3RydWN0IGRj
X2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywKIGJvb2wgc2tpcF92aWRlb19wYXR0ZXJuKTsK
CmJvb2wgZGNfbGlua19kcF9zeW5jX2x0X2JlZ2luKHN0cnVjdCBkY19saW5rICpsaW5rKTsKCmVu
dW0gbGlua190cmFpbmluZ19yZXN1bHQgZGNfbGlua19kcF9zeW5jX2x0X2F0dGVtcHQoCiBzdHJ1
Y3QgZGNfbGluayAqbGluaywKIHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcs
CiBzdHJ1Y3QgZGNfbGlua190cmFpbmluZ19vdmVycmlkZXMgKmx0X3NldHRpbmdzKTsKCmJvb2wg
ZGNfbGlua19kcF9zeW5jX2x0X2VuZChzdHJ1Y3QgZGNfbGluayAqbGluaywgYm9vbCBsaW5rX2Rv
d24pOwoKdm9pZCBkY19saW5rX2RwX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxp
bmspOwoKdm9pZCBkY19saW5rX2RwX2Rpc2FibGVfaHBkKGNvbnN0IHN0cnVjdCBkY19saW5rICps
aW5rKTsKCmJvb2wgZGNfbGlua19kcF9zZXRfdGVzdF9wYXR0ZXJuKAogc3RydWN0IGRjX2xpbmsg
KmxpbmssCiBlbnVtIGRwX3Rlc3RfcGF0dGVybiB0ZXN0X3BhdHRlcm4sCiBlbnVtIGRwX3Rlc3Rf
cGF0dGVybl9jb2xvcl9zcGFjZSB0ZXN0X3BhdHRlcm5fY29sb3Jfc3BhY2UsCiBjb25zdCBzdHJ1
Y3QgbGlua190cmFpbmluZ19zZXR0aW5ncyAqcF9saW5rX3NldHRpbmdzLAogY29uc3QgdW5zaWdu
ZWQgY2hhciAqcF9jdXN0b21fcGF0dGVybiwKIHVuc2lnbmVkIGludCBjdXN0X3BhdHRlcm5fc2l6
ZSk7Cgp2b2lkIGRjX2xpbmtfZW5hYmxlX2hwZF9maWx0ZXIoc3RydWN0IGRjX2xpbmsgKmxpbmss
IGJvb2wgZW5hYmxlKTsKCmJvb2wgZGNfbGlua19pc19kcF9zaW5rX3ByZXNlbnQoc3RydWN0IGRj
X2xpbmsgKmxpbmspOwoKYm9vbCBkY19saW5rX2RldGVjdF9zaW5rKHN0cnVjdCBkY19saW5rICps
aW5rLCBlbnVtIGRjX2Nvbm5lY3Rpb25fdHlwZSAqdHlwZSk7CgoKCgp2b2lkIGRjX2xpbmtfc2V0
X2RyaXZlX3NldHRpbmdzKHN0cnVjdCBkYyAqZGMsCiAgICBzdHJ1Y3QgbGlua190cmFpbmluZ19z
ZXR0aW5ncyAqbHRfc2V0dGluZ3MsCiAgICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CnZv
aWQgZGNfbGlua19wZXJmb3JtX2xpbmtfdHJhaW5pbmcoc3RydWN0IGRjICpkYywKICAgICAgIHN0
cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmcsCiAgICAgICBib29sIHNraXBfdmlk
ZW9fcGF0dGVybik7CnZvaWQgZGNfbGlua19zZXRfcHJlZmVycmVkX2xpbmtfc2V0dGluZ3Moc3Ry
dWN0IGRjICpkYywKICAgICAgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmxpbmtfc2V0dGluZywK
ICAgICAgc3RydWN0IGRjX2xpbmsgKmxpbmspOwp2b2lkIGRjX2xpbmtfc2V0X3ByZWZlcnJlZF90
cmFpbmluZ19zZXR0aW5ncyhzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19saW5rX3NldHRp
bmdzICpsaW5rX3NldHRpbmcsCiAgICAgc3RydWN0IGRjX2xpbmtfdHJhaW5pbmdfb3ZlcnJpZGVz
ICpsdF9vdmVycmlkZXMsCiAgICAgc3RydWN0IGRjX2xpbmsgKmxpbmssCiAgICAgYm9vbCBza2lw
X2ltbWVkaWF0ZV9yZXRyYWluKTsKdm9pZCBkY19saW5rX2VuYWJsZV9ocGQoY29uc3Qgc3RydWN0
IGRjX2xpbmsgKmxpbmspOwp2b2lkIGRjX2xpbmtfZGlzYWJsZV9ocGQoY29uc3Qgc3RydWN0IGRj
X2xpbmsgKmxpbmspOwp2b2lkIGRjX2xpbmtfc2V0X3Rlc3RfcGF0dGVybihzdHJ1Y3QgZGNfbGlu
ayAqbGluaywKICAgZW51bSBkcF90ZXN0X3BhdHRlcm4gdGVzdF9wYXR0ZXJuLAogICBlbnVtIGRw
X3Rlc3RfcGF0dGVybl9jb2xvcl9zcGFjZSB0ZXN0X3BhdHRlcm5fY29sb3Jfc3BhY2UsCiAgIGNv
bnN0IHN0cnVjdCBsaW5rX3RyYWluaW5nX3NldHRpbmdzICpwX2xpbmtfc2V0dGluZ3MsCiAgIGNv
bnN0IHVuc2lnbmVkIGNoYXIgKnBfY3VzdG9tX3BhdHRlcm4sCiAgIHVuc2lnbmVkIGludCBjdXN0
X3BhdHRlcm5fc2l6ZSk7CnVpbnQzMl90IGRjX2xpbmtfYmFuZHdpZHRoX2ticHMoCiBjb25zdCBz
dHJ1Y3QgZGNfbGluayAqbGluaywKIGNvbnN0IHN0cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5r
X3NldHRpbmcpOwoKY29uc3Qgc3RydWN0IGRjX2xpbmtfc2V0dGluZ3MgKmRjX2xpbmtfZ2V0X2xp
bmtfY2FwKAogIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsKCnZvaWQgZGNfbGlua19vdmVy
d3JpdGVfZXh0ZW5kZWRfcmVjZWl2ZXJfY2FwKAogIHN0cnVjdCBkY19saW5rICpsaW5rKTsKCmJv
b2wgZGNfc3VibWl0X2kyYygKICBzdHJ1Y3QgZGMgKmRjLAogIHVpbnQzMl90IGxpbmtfaW5kZXgs
CiAgc3RydWN0IGkyY19jb21tYW5kICpjbWQpOwoKYm9vbCBkY19zdWJtaXRfaTJjX29lbSgKICBz
dHJ1Y3QgZGMgKmRjLAogIHN0cnVjdCBpMmNfY29tbWFuZCAqY21kKTsKCnVpbnQzMl90IGRjX2Jh
bmR3aWR0aF9pbl9rYnBzX2Zyb21fdGltaW5nKAogY29uc3Qgc3RydWN0IGRjX2NydGNfdGltaW5n
ICp0aW1pbmcpOwojIDk4MyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2RjLmgiIDIKCgoKCgpzdHJ1Y3QgZGNfY29udGFpbmVyX2lkIHsKCiB1bnNpZ25lZCBjaGFy
IGd1aWRbMTZdOwoKIHVuc2lnbmVkIGludCBwb3J0SWRbMl07CgogdW5zaWduZWQgc2hvcnQgbWFu
dWZhY3R1cmVyTmFtZTsKCiB1bnNpZ25lZCBzaG9ydCBwcm9kdWN0Q29kZTsKfTsKCgpzdHJ1Y3Qg
ZGNfc2lua19kc2NfY2FwcyB7CgoKIGJvb2wgaXNfdmlydHVhbF9kcGNkX2RzYzsKIHN0cnVjdCBk
c2NfZGVjX2RwY2RfY2FwcyBkc2NfZGVjX2NhcHM7Cn07CgoKCgpzdHJ1Y3QgZGNfc2luayB7CiBl
bnVtIHNpZ25hbF90eXBlIHNpbmtfc2lnbmFsOwogc3RydWN0IGRjX2VkaWQgZGNfZWRpZDsKIHN0
cnVjdCBkY19lZGlkX2NhcHMgZWRpZF9jYXBzOwogc3RydWN0IGRjX2NvbnRhaW5lcl9pZCAqZGNf
Y29udGFpbmVyX2lkOwogdWludDMyX3QgZG9uZ2xlX21heF9waXhfY2xrOwogdm9pZCAqcHJpdjsK
IHN0cnVjdCBzdGVyZW9fM2RfZmVhdHVyZXMgZmVhdHVyZXNfM2RbVElNSU5HXzNEX0ZPUk1BVF9N
QVhdOwogYm9vbCBjb252ZXJ0ZXJfZGlzYWJsZV9hdWRpbzsKCiBzdHJ1Y3QgZGNfc2lua19kc2Nf
Y2FwcyBzaW5rX2RzY19jYXBzOwoKCiBzdHJ1Y3QgZGNfbGluayAqbGluazsKIHN0cnVjdCBkY19j
b250ZXh0ICpjdHg7CgogdWludDMyX3Qgc2lua19pZDsKCgoKCgogc3RydWN0IGtyZWYgcmVmY291
bnQ7Cn07Cgp2b2lkIGRjX3NpbmtfcmV0YWluKHN0cnVjdCBkY19zaW5rICpzaW5rKTsKdm9pZCBk
Y19zaW5rX3JlbGVhc2Uoc3RydWN0IGRjX3NpbmsgKnNpbmspOwoKc3RydWN0IGRjX3NpbmtfaW5p
dF9kYXRhIHsKIGVudW0gc2lnbmFsX3R5cGUgc2lua19zaWduYWw7CiBzdHJ1Y3QgZGNfbGluayAq
bGluazsKIHVpbnQzMl90IGRvbmdsZV9tYXhfcGl4X2NsazsKIGJvb2wgY29udmVydGVyX2Rpc2Fi
bGVfYXVkaW87Cn07CgpzdHJ1Y3QgZGNfc2luayAqZGNfc2lua19jcmVhdGUoY29uc3Qgc3RydWN0
IGRjX3NpbmtfaW5pdF9kYXRhICppbml0X3BhcmFtcyk7CgoKc3RydWN0IGRjX2N1cnNvciB7CiBz
dHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyBhZGRyZXNzOwogc3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1
dGVzIGF0dHJpYnV0ZXM7Cn07CgoKCgoKZW51bSBkY19pcnFfc291cmNlIGRjX2ludGVycnVwdF90
b19pcnFfc291cmNlKAogIHN0cnVjdCBkYyAqZGMsCiAgdWludDMyX3Qgc3JjX2lkLAogIHVpbnQz
Ml90IGV4dF9pZCk7CmJvb2wgZGNfaW50ZXJydXB0X3NldChzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRj
X2lycV9zb3VyY2Ugc3JjLCBib29sIGVuYWJsZSk7CnZvaWQgZGNfaW50ZXJydXB0X2FjayhzdHJ1
Y3QgZGMgKmRjLCBlbnVtIGRjX2lycV9zb3VyY2Ugc3JjKTsKZW51bSBkY19pcnFfc291cmNlIGRj
X2dldF9ocGRfaXJxX3NvdXJjZV9hdF9pbmRleCgKICBzdHJ1Y3QgZGMgKmRjLCB1aW50MzJfdCBs
aW5rX2luZGV4KTsKCgoKCgp2b2lkIGRjX3NldF9wb3dlcl9zdGF0ZSgKICBzdHJ1Y3QgZGMgKmRj
LAogIGVudW0gZGNfYWNwaV9jbV9wb3dlcl9zdGF0ZSBwb3dlcl9zdGF0ZSk7CnZvaWQgZGNfcmVz
dW1lKHN0cnVjdCBkYyAqZGMpOwp1bnNpZ25lZCBpbnQgZGNfZ2V0X2N1cnJlbnRfYmFja2xpZ2h0
X3B3bShzdHJ1Y3QgZGMgKmRjKTsKdW5zaWduZWQgaW50IGRjX2dldF90YXJnZXRfYmFja2xpZ2h0
X3B3bShzdHJ1Y3QgZGMgKmRjKTsKCmJvb2wgZGNfaXNfZG1jdV9pbml0aWFsaXplZChzdHJ1Y3Qg
ZGMgKmRjKTsKYm9vbCBkY19pc19od19pbml0aWFsaXplZChzdHJ1Y3QgZGMgKmRjKTsKCmVudW0g
ZGNfc3RhdHVzIGRjX3NldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUg
Y2xvY2tfdHlwZSwgdWludDMyX3QgY2xrX2toeiwgdWludDMyX3Qgc3RlcHBpbmcpOwp2b2lkIGRj
X2dldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLCBlbnVtIGRjX2Nsb2NrX3R5cGUgY2xvY2tfdHlwZSwg
c3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tfY2ZnKTsKCgoKIyAxICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNfZHNjLmgiIDEKIyAzNCAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjX2RzYy5oIgpzdHJ1Y3QgZGNfZHNj
X2J3X3JhbmdlIHsKIHVpbnQzMl90IG1pbl9rYnBzOwogdWludDMyX3QgbWluX3RhcmdldF9icHBf
eDE2OwogdWludDMyX3QgbWF4X2ticHM7CiB1aW50MzJfdCBtYXhfdGFyZ2V0X2JwcF94MTY7CiB1
aW50MzJfdCBzdHJlYW1fa2JwczsKfTsKCnN0cnVjdCBkaXNwbGF5X3N0cmVhbV9jb21wcmVzc29y
IHsKIGNvbnN0IHN0cnVjdCBkc2NfZnVuY3MgKmZ1bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0
eDsKIGludCBpbnN0Owp9OwoKc3RydWN0IGRjX2RzY19wb2xpY3kgewogYm9vbCB1c2VfbWluX3Ns
aWNlc19oOwogaW50IG1heF9zbGljZXNfaDsKIGludCBtaW5fc2xpY2VfaGVpZ2h0OwogdWludDMy
X3QgbWF4X3RhcmdldF9icHA7CiB1aW50MzJfdCBtaW5fdGFyZ2V0X2JwcDsKfTsKCmJvb2wgZGNf
ZHNjX3BhcnNlX2RzY19kcGNkKGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgY29uc3QgdWludDhfdCAq
ZHBjZF9kc2NfYmFzaWNfZGF0YSwKICBjb25zdCB1aW50OF90ICpkcGNkX2RzY19leHRfZGF0YSwK
ICBzdHJ1Y3QgZHNjX2RlY19kcGNkX2NhcHMgKmRzY19zaW5rX2NhcHMpOwoKYm9vbCBkY19kc2Nf
Y29tcHV0ZV9iYW5kd2lkdGhfcmFuZ2UoCiAgY29uc3Qgc3RydWN0IGRpc3BsYXlfc3RyZWFtX2Nv
bXByZXNzb3IgKmRzYywKICBjb25zdCB1aW50MzJfdCBkc2NfbWluX3NsaWNlX2hlaWdodF9vdmVy
cmlkZSwKICBjb25zdCB1aW50MzJfdCBtaW5fYnBwLAogIGNvbnN0IHVpbnQzMl90IG1heF9icHAs
CiAgY29uc3Qgc3RydWN0IGRzY19kZWNfZHBjZF9jYXBzICpkc2Nfc2lua19jYXBzLAogIGNvbnN0
IHN0cnVjdCBkY19jcnRjX3RpbWluZyAqdGltaW5nLAogIHN0cnVjdCBkY19kc2NfYndfcmFuZ2Ug
KnJhbmdlKTsKCmJvb2wgZGNfZHNjX2NvbXB1dGVfY29uZmlnKAogIGNvbnN0IHN0cnVjdCBkaXNw
bGF5X3N0cmVhbV9jb21wcmVzc29yICpkc2MsCiAgY29uc3Qgc3RydWN0IGRzY19kZWNfZHBjZF9j
YXBzICpkc2Nfc2lua19jYXBzLAogIGNvbnN0IHVpbnQzMl90IGRzY19taW5fc2xpY2VfaGVpZ2h0
X292ZXJyaWRlLAogIHVpbnQzMl90IHRhcmdldF9iYW5kd2lkdGhfa2JwcywKICBjb25zdCBzdHJ1
Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZywKICBzdHJ1Y3QgZGNfZHNjX2NvbmZpZyAqZHNjX2Nm
Zyk7Cgp2b2lkIGRjX2RzY19nZXRfcG9saWN5X2Zvcl90aW1pbmcoY29uc3Qgc3RydWN0IGRjX2Ny
dGNfdGltaW5nICp0aW1pbmcsCiAgc3RydWN0IGRjX2RzY19wb2xpY3kgKnBvbGljeSk7Cgp2b2lk
IGRjX2RzY19wb2xpY3lfc2V0X21heF90YXJnZXRfYnBwX2xpbWl0KHVpbnQzMl90IGxpbWl0KTsK
IyAxMDg2ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGMuaCIg
MgojIDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3
L2Nsa19tZ3IuaCIgMgojIDUxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2h3L2Nsa19tZ3IuaCIKc3RydWN0IGNsa19saW1pdF90YWJsZV9lbnRyeSB7CiB1
bnNpZ25lZCBpbnQgdm9sdGFnZTsKIHVuc2lnbmVkIGludCBkY2ZjbGtfbWh6OwogdW5zaWduZWQg
aW50IGZjbGtfbWh6OwogdW5zaWduZWQgaW50IG1lbWNsa19taHo7CiB1bnNpZ25lZCBpbnQgc29j
Y2xrX21oejsKfTsKCgpzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlIHsKIHN0cnVjdCBjbGtfbGltaXRf
dGFibGVfZW50cnkgZW50cmllc1s4XTsKIHVuc2lnbmVkIGludCBudW1fZW50cmllczsKfTsKCnN0
cnVjdCB3bV9yYW5nZV90YWJsZV9lbnRyeSB7CiB1bnNpZ25lZCBpbnQgd21faW5zdDsKIHVuc2ln
bmVkIGludCB3bV90eXBlOwogZG91YmxlIHBzdGF0ZV9sYXRlbmN5X3VzOwogZG91YmxlIHNyX2V4
aXRfdGltZV91czsKIGRvdWJsZSBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91czsKIGJvb2wgdmFs
aWQ7Cn07CgoKc3RydWN0IGNsa19sb2dfaW5mbyB7CiBib29sIGVuYWJsZWQ7CiBjaGFyICpwQnVm
OwogdW5zaWduZWQgaW50IGJ1ZlNpemU7CiB1bnNpZ25lZCBpbnQgKnN1bV9jaGFyc19wcmludGVk
Owp9OwoKc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5cGFzcyB7CiB1aW50MzJfdCBk
Y2ZjbGs7CiB1aW50MzJfdCBkY2ZfZGVlcF9zbGVlcF9kaXZpZGVyOwogdWludDMyX3QgZGNmX2Rl
ZXBfc2xlZXBfYWxsb3c7CiB1aW50MzJfdCBkcHJlZmNsazsKIHVpbnQzMl90IGRpc3BjbGs7CiB1
aW50MzJfdCBkcHBjbGs7CgogdWludDMyX3QgZHBwY2xrX2J5cGFzczsKIHVpbnQzMl90IGRjZmNs
a19ieXBhc3M7CiB1aW50MzJfdCBkcHJlZmNsa19ieXBhc3M7CiB1aW50MzJfdCBkaXNwY2xrX2J5
cGFzczsKfTsKCnN0cnVjdCBydjFfY2xrX2ludGVybmFsIHsKIHVpbnQzMl90IENMSzBfQ0xLOF9D
VVJSRU5UX0NOVDsKIHVpbnQzMl90IENMSzBfQ0xLOF9EU19DTlRMOwogdWludDMyX3QgQ0xLMF9D
TEs4X0FMTE9XX0RTOwogdWludDMyX3QgQ0xLMF9DTEsxMF9DVVJSRU5UX0NOVDsKIHVpbnQzMl90
IENMSzBfQ0xLMTFfQ1VSUkVOVF9DTlQ7CgogdWludDMyX3QgQ0xLMF9DTEs4X0JZUEFTU19DTlRM
OwogdWludDMyX3QgQ0xLMF9DTEsxMF9CWVBBU1NfQ05UTDsKIHVpbnQzMl90IENMSzBfQ0xLMTFf
QllQQVNTX0NOVEw7Cn07CgpzdHJ1Y3Qgcm5fY2xrX2ludGVybmFsIHsKIHVpbnQzMl90IENMSzFf
Q0xLMF9DVVJSRU5UX0NOVDsKIHVpbnQzMl90IENMSzFfQ0xLMV9DVVJSRU5UX0NOVDsKIHVpbnQz
Ml90IENMSzFfQ0xLMl9DVVJSRU5UX0NOVDsKIHVpbnQzMl90IENMSzFfQ0xLM19DVVJSRU5UX0NO
VDsKIHVpbnQzMl90IENMSzFfQ0xLM19EU19DTlRMOwogdWludDMyX3QgQ0xLMV9DTEszX0FMTE9X
X0RTOwoKIHVpbnQzMl90IENMSzFfQ0xLMF9CWVBBU1NfQ05UTDsKIHVpbnQzMl90IENMSzFfQ0xL
MV9CWVBBU1NfQ05UTDsKIHVpbnQzMl90IENMSzFfQ0xLMl9CWVBBU1NfQ05UTDsKIHVpbnQzMl90
IENMSzFfQ0xLM19CWVBBU1NfQ05UTDsKCn07CgoKc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnMg
ewogIHVpbnQzMl90IENMSzBfQ0xLOF9DVVJSRU5UX0NOVDsKICB1aW50MzJfdCBDTEswX0NMSzhf
RFNfQ05UTDsKICB1aW50MzJfdCBDTEswX0NMSzhfQUxMT1dfRFM7CiAgdWludDMyX3QgQ0xLMF9D
TEsxMF9DVVJSRU5UX0NOVDsKICB1aW50MzJfdCBDTEswX0NMSzExX0NVUlJFTlRfQ05UOwp9OwoK
CnN0cnVjdCBjbGtfYnlwYXNzIHsKIHVpbnQzMl90IGRjZmNsa19ieXBhc3M7CiB1aW50MzJfdCBk
aXNwY2xrX3B5cGFzczsKIHVpbnQzMl90IGRwcmVmY2xrX2J5cGFzczsKfTsKCgoKCgoKc3RydWN0
IHdtX3RhYmxlIHsKIHN0cnVjdCB3bV9yYW5nZV90YWJsZV9lbnRyeSBlbnRyaWVzWzRdOwp9OwoK
c3RydWN0IGNsa19id19wYXJhbXMgewogdW5zaWduZWQgaW50IHZyYW1fdHlwZTsKIHVuc2lnbmVk
IGludCBudW1fY2hhbm5lbHM7CiBzdHJ1Y3QgY2xrX2xpbWl0X3RhYmxlIGNsa190YWJsZTsKIHN0
cnVjdCB3bV90YWJsZSB3bV90YWJsZTsKfTsKCgpzdHJ1Y3QgY2xrX3N0YXRlcyB7CiB1aW50MzJf
dCBkcHJlZmNsa19raHo7Cn07CgpzdHJ1Y3QgY2xrX21ncl9mdW5jcyB7CgoKCgoKCgogdm9pZCAo
KnVwZGF0ZV9jbG9ja3MpKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAogICBzdHJ1Y3QgZGNfc3Rh
dGUgKmNvbnRleHQsCiAgIGJvb2wgc2FmZV90b19sb3dlcik7CgogaW50ICgqZ2V0X2RwX3JlZl9j
bGtfZnJlcXVlbmN5KShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7Cgogdm9pZCAoKmluaXRfY2xv
Y2tzKShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7Cgogdm9pZCAoKmVuYWJsZV9wbWVfd2EpIChz
dHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CiB2b2lkICgqZ2V0X2Nsb2NrKShzdHJ1Y3QgY2xrX21n
ciAqY2xrX21nciwKICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAogICBlbnVtIGRjX2Nsb2Nr
X3R5cGUgY2xvY2tfdHlwZSwKICAgc3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tfY2ZnKTsK
CiBib29sICgqYXJlX2Nsb2NrX3N0YXRlc19lcXVhbCkgKHN0cnVjdCBkY19jbG9ja3MgKmEsCiAg
IHN0cnVjdCBkY19jbG9ja3MgKmIpOwogdm9pZCAoKm5vdGlmeV93bV9yYW5nZXMpKHN0cnVjdCBj
bGtfbWdyICpjbGtfbWdyKTsKfTsKCnN0cnVjdCBjbGtfbWdyIHsKIHN0cnVjdCBkY19jb250ZXh0
ICpjdHg7CiBzdHJ1Y3QgY2xrX21ncl9mdW5jcyAqZnVuY3M7CiBzdHJ1Y3QgZGNfY2xvY2tzIGNs
a3M7CiBib29sIHBzcl9hbGxvd19hY3RpdmVfY2FjaGU7CiBpbnQgZHByZWZjbGtfa2h6OwogaW50
IGRlbnRpc3RfdmNvX2ZyZXFfa2h6Owogc3RydWN0IGNsa19zdGF0ZV9yZWdpc3RlcnNfYW5kX2J5
cGFzcyBib290X3NuYXBzaG90Owogc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFtczsKfTsK
CgpzdHJ1Y3QgZGNjZzsKCnN0cnVjdCBjbGtfbWdyICpkY19jbGtfbWdyX2NyZWF0ZShzdHJ1Y3Qg
ZGNfY29udGV4dCAqY3R4LCBzdHJ1Y3QgcHBfc211X2Z1bmNzICpwcF9zbXUsIHN0cnVjdCBkY2Nn
ICpkY2NnKTsKCnZvaWQgZGNfZGVzdHJveV9jbGtfbWdyKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdy
KTsKCnZvaWQgY2xrX21ncl9leGl0X29wdGltaXplZF9wd3Jfc3RhdGUoY29uc3Qgc3RydWN0IGRj
ICpkYywgc3RydWN0IGNsa19tZ3IgKmNsa19tZ3IpOwoKdm9pZCBjbGtfbWdyX29wdGltaXplX3B3
cl9zdGF0ZShjb25zdCBzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgY2xrX21nciAqY2xrX21ncik7CiMg
MzAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xr
X21ncl9pbnRlcm5hbC5oIiAyCgoKCgoKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9yZXNvdXJjZS5oIiAxCiMgMjggIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvcmVzb3VyY2UuaCIKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMQojIDMw
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlw
ZXMuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5j
L2RjZV9jYWxjcy5oIiAxCiMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvZGNlX2NhbGNzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9id19maXhlZC5oIiAxCiMgMzIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvYndfZml4ZWQuaCIKc3RydWN0IGJ3X2ZpeGVk
IHsKIGludDY0X3QgdmFsdWU7Cn07CgoKCgoKCgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBzdHJ1Y3QgYndfZml4ZWQgYndfbWluMihjb25z
dCBzdHJ1Y3QgYndfZml4ZWQgYXJnMSwKICAgICAgICAgIGNvbnN0IHN0cnVjdCBid19maXhlZCBh
cmcyKQp7CiByZXR1cm4gKGFyZzEudmFsdWUgPD0gYXJnMi52YWx1ZSkgPyBhcmcxIDogYXJnMjsK
fQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGJ3X2ZpeGVkIGJ3X21heDIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCiAg
ICAgICAgICBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKewogcmV0dXJuIChhcmcyLnZhbHVl
IDw9IGFyZzEudmFsdWUpID8gYXJnMSA6IGFyZzI7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1
dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRy
aWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19taW4z
KHN0cnVjdCBid19maXhlZCB2MSwKICAgICAgICAgIHN0cnVjdCBid19maXhlZCB2MiwKICAgICAg
ICAgIHN0cnVjdCBid19maXhlZCB2MykKewogcmV0dXJuIGJ3X21pbjIoYndfbWluMih2MSwgdjIp
LCB2Myk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBf
X2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9m
dW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19tYXgzKHN0cnVjdCBid19maXhlZCB2MSwKICAg
ICAgICAgIHN0cnVjdCBid19maXhlZCB2MiwKICAgICAgICAgIHN0cnVjdCBid19maXhlZCB2MykK
ewogcmV0dXJuIGJ3X21heDIoYndfbWF4Mih2MSwgdjIpLCB2Myk7Cn0KCnN0cnVjdCBid19maXhl
ZCBid19pbnRfdG9fZml4ZWRfbm9uY29uc3QoaW50NjRfdCB2YWx1ZSk7CnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhl
ZCBid19pbnRfdG9fZml4ZWQoaW50NjRfdCB2YWx1ZSkKewogaWYgKF9fYnVpbHRpbl9jb25zdGFu
dF9wKHZhbHVlKSkgewogIHN0cnVjdCBid19maXhlZCByZXM7CiAgZG8geyBleHRlcm4gdm9pZCBf
X2NvbXBpbGV0aW1lX2Fzc2VydF83Myh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oIkJV
SUxEX0JVR19PTiBmYWlsZWQ6ICIgInZhbHVlID4gQldfRklYRURfTUFYX0kzMiB8fCB2YWx1ZSA8
IEJXX0ZJWEVEX01JTl9JMzIiKSkpOyBpZiAoISghKHZhbHVlID4gKGludDY0X3QpKCgxVUxMIDw8
ICg2MyAtIDI0KSkgLSAxKSB8fCB2YWx1ZSA8IChpbnQ2NF90KSgtKDFMTCA8PCAoNjMgLSAyNCkp
KSkpKSBfX2NvbXBpbGV0aW1lX2Fzc2VydF83MygpOyB9IHdoaWxlICgwKTsKICByZXMudmFsdWUg
PSB2YWx1ZSA8PCAyNDsKICByZXR1cm4gcmVzOwogfSBlbHNlCiAgcmV0dXJuIGJ3X2ludF90b19m
aXhlZF9ub25jb25zdCh2YWx1ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19n
bnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygo
bm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGludDMyX3QgYndfZml4ZWRfdG9faW50KHN0cnVjdCBi
d19maXhlZCB2YWx1ZSkKewogcmV0dXJuICgodmFsdWUudmFsdWUpID4+IDI0KTsKfQoKc3RydWN0
IGJ3X2ZpeGVkIGJ3X2ZyY190b19maXhlZChpbnQ2NF90IG51bSwgaW50NjRfdCBkZW51bSk7Cgpz
dGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVf
XygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBz
dHJ1Y3QgYndfZml4ZWQgZml4ZWQzMV8zMl90b19id19maXhlZChpbnQ2NF90IHJhdykKewogc3Ry
dWN0IGJ3X2ZpeGVkIHJlc3VsdCA9IHsgMCB9OwoKIGlmIChyYXcgPCAwKSB7CiAgcmF3ID0gLXJh
dzsKICByZXN1bHQudmFsdWUgPSAtKHJhdyA+PiAoMzIgLSAyNCkpOwogfSBlbHNlIHsKICByZXN1
bHQudmFsdWUgPSByYXcgPj4gKDMyIC0gMjQpOwogfQoKIHJldHVybiByZXN1bHQ7Cn0KCnN0YXRp
YyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChf
X3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVj
dCBid19maXhlZCBid19hZGQoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsCiAgICAgICAgIGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoKIHJlcy52
YWx1ZSA9IGFyZzEudmFsdWUgKyBhcmcyLnZhbHVlOwoKIHJldHVybiByZXM7Cn0KCnN0YXRpYyBp
bmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3Vu
dXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBi
d19maXhlZCBid19zdWIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBi
d19maXhlZCBhcmcyKQp7CiBzdHJ1Y3QgYndfZml4ZWQgcmVzOwoKIHJlcy52YWx1ZSA9IGFyZzEu
dmFsdWUgLSBhcmcyLnZhbHVlOwoKIHJldHVybiByZXM7Cn0KCnN0cnVjdCBid19maXhlZCBid19t
dWwoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcy
KTsKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmli
dXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9u
KSkgc3RydWN0IGJ3X2ZpeGVkIGJ3X2Rpdihjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMSwgY29u
c3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCnsKIHJldHVybiBid19mcmNfdG9fZml4ZWQoYXJnMS52
YWx1ZSwgYXJnMi52YWx1ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIHN0cnVjdCBid19maXhlZCBid19tb2QoY29uc3Qgc3RydWN0
IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiBzdHJ1Y3QgYndf
Zml4ZWQgcmVzOwogZGl2NjRfdTY0X3JlbShhcmcxLnZhbHVlLCBhcmcyLnZhbHVlLCAodWludDY0
X3QgKikmcmVzLnZhbHVlKTsKIHJldHVybiByZXM7Cn0KCnN0cnVjdCBid19maXhlZCBid19mbG9v
cjIoY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZywgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIHNpZ25p
ZmljYW5jZSk7CnN0cnVjdCBid19maXhlZCBid19jZWlsMihjb25zdCBzdHJ1Y3QgYndfZml4ZWQg
YXJnLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgc2lnbmlmaWNhbmNlKTsKCnN0YXRpYyBpbmxpbmUg
X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9f
KSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYndfZXF1KGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKewog
cmV0dXJuIGFyZzEudmFsdWUgPT0gYXJnMi52YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJp
YnV0ZV9fKChfX2dudV9pbmxpbmVfXykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0
dHJpYnV0ZV9fKChub19pbnN0cnVtZW50X2Z1bmN0aW9uKSkgYm9vbCBid19uZXEoY29uc3Qgc3Ry
dWN0IGJ3X2ZpeGVkIGFyZzEsIGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiByZXR1cm4g
YXJnMS52YWx1ZSAhPSBhcmcyLnZhbHVlOwp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18o
KF9fZ251X2lubGluZV9fKSkgX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRl
X18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKSBib29sIGJ3X2xlcShjb25zdCBzdHJ1Y3QgYndf
Zml4ZWQgYXJnMSwgY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzIpCnsKIHJldHVybiBhcmcxLnZh
bHVlIDw9IGFyZzIudmFsdWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVf
aW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9f
aW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgYndfbWVxKGNvbnN0IHN0cnVjdCBid19maXhlZCBh
cmcxLCBjb25zdCBzdHJ1Y3QgYndfZml4ZWQgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPj0g
YXJnMi52YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf
XykpIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSBfX2F0dHJpYnV0ZV9fKChub19pbnN0cnVt
ZW50X2Z1bmN0aW9uKSkgYm9vbCBid19sdG4oY29uc3Qgc3RydWN0IGJ3X2ZpeGVkIGFyZzEsIGNv
bnN0IHN0cnVjdCBid19maXhlZCBhcmcyKQp7CiByZXR1cm4gYXJnMS52YWx1ZSA8IGFyZzIudmFs
dWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18pKSBfX2F0
dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1dGVfXygobm9faW5zdHJ1bWVudF9mdW5j
dGlvbikpIGJvb2wgYndfbXRuKGNvbnN0IHN0cnVjdCBid19maXhlZCBhcmcxLCBjb25zdCBzdHJ1
Y3QgYndfZml4ZWQgYXJnMikKewogcmV0dXJuIGFyZzEudmFsdWUgPiBhcmcyLnZhbHVlOwp9CiMg
MzQgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNlX2Nh
bGNzLmgiIDIKCnN0cnVjdCBwaXBlX2N0eDsKc3RydWN0IGRjOwpzdHJ1Y3QgZGNfc3RhdGU7CnN0
cnVjdCBkY2VfYndfb3V0cHV0OwoKZW51bSBid19jYWxjc192ZXJzaW9uIHsKIEJXX0NBTENTX1ZF
UlNJT05fSU5WQUxJRCwKIEJXX0NBTENTX1ZFUlNJT05fQ0FSUklaTywKIEJXX0NBTENTX1ZFUlNJ
T05fUE9MQVJJUzEwLAogQldfQ0FMQ1NfVkVSU0lPTl9QT0xBUklTMTEsCiBCV19DQUxDU19WRVJT
SU9OX1BPTEFSSVMxMiwKIEJXX0NBTENTX1ZFUlNJT05fVkVHQU0sCiBCV19DQUxDU19WRVJTSU9O
X1NUT05FWSwKIEJXX0NBTENTX1ZFUlNJT05fVkVHQTEwCn07CiMgNTggIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvZGNlX2NhbGNzLmgiCmVudW0gYndfZGVm
aW5lcyB7CgogYndfZGVmX25vID0gMCwKIGJ3X2RlZl9ub25lID0gMCwKIGJ3X2RlZl95ZXMgPSAx
LAogYndfZGVmX29rID0gMSwKIGJ3X2RlZl9oaWdoID0gMiwKIGJ3X2RlZl9taWQgPSAxLAogYndf
ZGVmX2xvdyA9IDAsCgoKIGJ3X2RlZnNfc3RhcnQgPSAyNTUsCiBid19kZWZfdW5kZXJsYXk0MjIs
CiBid19kZWZfdW5kZXJsYXk0MjBfbHVtYSwKIGJ3X2RlZl91bmRlcmxheTQyMF9jaHJvbWEsCiBi
d19kZWZfdW5kZXJsYXk0NDQsCiBid19kZWZfZ3JhcGhpY3MsCiBid19kZWZfZGlzcGxheV93cml0
ZV9iYWNrNDIwX2x1bWEsCiBid19kZWZfZGlzcGxheV93cml0ZV9iYWNrNDIwX2Nocm9tYSwKIGJ3
X2RlZl9wb3J0cmFpdCwKIGJ3X2RlZl9oc3JfbXRuXzQsCiBid19kZWZfaHNyX210bl9oX3RhcHMs
CiBid19kZWZfY2VpbGluZ19faF90YXBzX2Rpdl80X19fbWVxX2hzciwKIGJ3X2RlZl9pbnZhbGlk
X2xpbmVhcl9vcl9zdGVyZW9fbW9kZSwKIGJ3X2RlZl9pbnZhbGlkX3JvdGF0aW9uX29yX2JwcF9v
cl9zdGVyZW8sCiBid19kZWZfdnNyX210bl92X3RhcHMsCiBid19kZWZfdnNyX210bl80LAogYndf
ZGVmX2F1dG8sCiBid19kZWZfbWFudWFsLAogYndfZGVmX2V4Y2VlZGVkX2FsbG93ZWRfbWF4aW11
bV9zY2xrLAogYndfZGVmX2V4Y2VlZGVkX2FsbG93ZWRfcGFnZV9jbG9zZV9vcGVuLAogYndfZGVm
X2V4Y2VlZGVkX2FsbG93ZWRfb3V0c3RhbmRpbmdfcHRlX3JlcV9xdWV1ZV9zaXplLAogYndfZGVm
X2V4Y2VlZGVkX2FsbG93ZWRfbWF4aW11bV9idywKIGJ3X2RlZl9sYW5kc2NhcGUsCgoKIGJ3X2Rl
Zl9hbnlfbGluZXMsCgoKIGJ3X2RlZl91bmRlcmxheV9vbmx5LAogYndfZGVmX2JsZW5kZWQsCiBi
d19kZWZfYmxlbmQsCgoKIGJ3X2RlZl9tb25vLAogYndfZGVmX3NpZGVfYnlfc2lkZSwKIGJ3X2Rl
Zl90b3BfYm90dG9tLAoKCiBid19kZWZfNDIwLAogYndfZGVmXzQyMiwKIGJ3X2RlZl80NDQsCgoK
IGJ3X2RlZl9saW5lYXIsCiBid19kZWZfdGlsZWQsCiBid19kZWZfYXJyYXlfbGluZWFyX2dlbmVy
YWwsCiBid19kZWZfYXJyYXlfbGluZWFyX2FsaWduZWQsCiBid19kZWZfcm90YXRlZF9taWNyb190
aWxpbmcsCiBid19kZWZfZGlzcGxheV9taWNyb190aWxpbmcsCgoKIGJ3X2RlZl9nZGRyNSwKIGJ3
X2RlZl9oYm0sCgoKIGJ3X2RlZl9oaWdoX25vX25icF9zdGF0ZV9jaGFuZ2UsCiBid19kZWZfMF83
MiwKIGJ3X2RlZl8wXzgsCiBid19kZWZfMF85LAoKIGJ3X2RlZl9ub3RvayA9IC0xLAogYndfZGVm
X25hID0gLTEKfTsKCnN0cnVjdCBid19jYWxjc19kY2VpcCB7CiBlbnVtIGJ3X2NhbGNzX3ZlcnNp
b24gdmVyc2lvbjsKIHVpbnQzMl90IHBlcmNlbnRfb2ZfaWRlYWxfcG9ydF9id19yZWNlaXZlZF9h
ZnRlcl91cmdlbnRfbGF0ZW5jeTsKIHVpbnQzMl90IG1heF9hdmVyYWdlX3BlcmNlbnRfb2ZfaWRl
YWxfcG9ydF9id19kaXNwbGF5X2Nhbl91c2VfaW5fbm9ybWFsX3N5c3RlbV9vcGVyYXRpb247CiB1
aW50MzJfdCBtYXhfYXZlcmFnZV9wZXJjZW50X29mX2lkZWFsX2RyYW1id19kaXNwbGF5X2Nhbl91
c2VfaW5fbm9ybWFsX3N5c3RlbV9vcGVyYXRpb247CiBib29sIGxhcmdlX2N1cnNvcjsKIHVpbnQz
Ml90IGN1cnNvcl9tYXhfb3V0c3RhbmRpbmdfZ3JvdXBfbnVtOwogYm9vbCBkbWlmX3BpcGVfZW5f
ZmJjX2NodW5rX3RyYWNrZXI7CiBzdHJ1Y3QgYndfZml4ZWQgZG1pZl9yZXF1ZXN0X2J1ZmZlcl9z
aXplOwogdWludDMyX3QgbGluZXNfaW50ZXJsZWF2ZWRfaW50b19sYjsKIHVpbnQzMl90IGxvd19w
b3dlcl90aWxpbmdfbW9kZTsKIHVpbnQzMl90IGNodW5rX3dpZHRoOwogdWludDMyX3QgbnVtYmVy
X29mX2dyYXBoaWNzX3BpcGVzOwogdWludDMyX3QgbnVtYmVyX29mX3VuZGVybGF5X3BpcGVzOwog
Ym9vbCBkaXNwbGF5X3dyaXRlX2JhY2tfc3VwcG9ydGVkOwogYm9vbCBhcmdiX2NvbXByZXNzaW9u
X3N1cHBvcnQ7CiBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXlfdnNjYWxlcl9lZmZpY2llbmN5Nl9i
aXRfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV92c2NhbGVyX2VmZmlj
aWVuY3k4X2JpdF9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2ZpeGVkIHVuZGVybGF5X3ZzY2Fs
ZXJfZWZmaWNpZW5jeTEwX2JpdF9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2ZpeGVkIHVuZGVy
bGF5X3ZzY2FsZXJfZWZmaWNpZW5jeTEyX2JpdF9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2Zp
eGVkIGdyYXBoaWNzX3ZzY2FsZXJfZWZmaWNpZW5jeTZfYml0X3Blcl9jb21wb25lbnQ7CiBzdHJ1
Y3QgYndfZml4ZWQgZ3JhcGhpY3NfdnNjYWxlcl9lZmZpY2llbmN5OF9iaXRfcGVyX2NvbXBvbmVu
dDsKIHN0cnVjdCBid19maXhlZCBncmFwaGljc192c2NhbGVyX2VmZmljaWVuY3kxMF9iaXRfcGVy
X2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCBncmFwaGljc192c2NhbGVyX2VmZmljaWVuY3kx
Ml9iaXRfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCBhbHBoYV92c2NhbGVyX2VmZmlj
aWVuY3k7CiB1aW50MzJfdCBtYXhfZG1pZl9idWZmZXJfYWxsb2NhdGVkOwogdWludDMyX3QgZ3Jh
cGhpY3NfZG1pZl9zaXplOwogdWludDMyX3QgdW5kZXJsYXlfbHVtYV9kbWlmX3NpemU7CiB1aW50
MzJfdCB1bmRlcmxheV9jaHJvbWFfZG1pZl9zaXplOwogYm9vbCBwcmVfZG93bnNjYWxlcl9lbmFi
bGVkOwogYm9vbCB1bmRlcmxheV9kb3duc2NhbGVfcHJlZmV0Y2hfZW5hYmxlZDsKIHN0cnVjdCBi
d19maXhlZCBsYl93cml0ZV9waXhlbHNfcGVyX2Rpc3BjbGs7CiBzdHJ1Y3QgYndfZml4ZWQgbGJf
c2l6ZV9wZXJfY29tcG9uZW50NDQ0OwogYm9vbCBncmFwaGljc19sYl9ub2Rvd25zY2FsaW5nX211
bHRpX2xpbmVfcHJlZmV0Y2hpbmc7CiBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9hbmRfZHJhbV9j
bG9ja19zdGF0ZV9jaGFuZ2VfZ2F0ZWRfYmVmb3JlX2N1cnNvcjsKIHN0cnVjdCBid19maXhlZCB1
bmRlcmxheTQyMF9sdW1hX2xiX3NpemVfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCB1
bmRlcmxheTQyMF9jaHJvbWFfbGJfc2l6ZV9wZXJfY29tcG9uZW50Owogc3RydWN0IGJ3X2ZpeGVk
IHVuZGVybGF5NDIyX2xiX3NpemVfcGVyX2NvbXBvbmVudDsKIHN0cnVjdCBid19maXhlZCBjdXJz
b3JfY2h1bmtfd2lkdGg7CiBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX2RjcF9idWZmZXJfbGluZXM7
CiBzdHJ1Y3QgYndfZml4ZWQgdW5kZXJsYXlfbWF4aW11bV93aWR0aF9lZmZpY2llbnRfZm9yX3Rp
bGluZzsKIHN0cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX2hlaWdodF9lZmZpY2llbnRf
Zm9yX3RpbGluZzsKIHN0cnVjdCBid19maXhlZCBwZWFrX3B0ZV9yZXF1ZXN0X3RvX2V2aWN0aW9u
X3JhdGlvX2xpbWl0aW5nX211bHRpcGxlX2Rpc3BsYXlzX29yX3NpbmdsZV9yb3RhdGVkX2Rpc3Bs
YXk7CiBzdHJ1Y3QgYndfZml4ZWQgcGVha19wdGVfcmVxdWVzdF90b19ldmljdGlvbl9yYXRpb19s
aW1pdGluZ19zaW5nbGVfZGlzcGxheV9ub19yb3RhdGlvbjsKIHN0cnVjdCBid19maXhlZCBtaW5p
bXVtX291dHN0YW5kaW5nX3B0ZV9yZXF1ZXN0X2xpbWl0Owogc3RydWN0IGJ3X2ZpeGVkIG1heGlt
dW1fdG90YWxfb3V0c3RhbmRpbmdfcHRlX3JlcXVlc3RzX2FsbG93ZWRfYnlfc2F3OwogYm9vbCBs
aW1pdF9leGNlc3NpdmVfb3V0c3RhbmRpbmdfZG1pZl9yZXF1ZXN0czsKIHN0cnVjdCBid19maXhl
ZCBsaW5lYXJfbW9kZV9saW5lX3JlcXVlc3RfYWx0ZXJuYXRpb25fc2xpY2U7CiB1aW50MzJfdCBz
Y2F0dGVyX2dhdGhlcl9saW5lc19vZl9wdGVfcHJlZmV0Y2hpbmdfaW5fbGluZWFyX21vZGU7CiB1
aW50MzJfdCBkaXNwbGF5X3dyaXRlX2JhY2s0MjBfbHVtYV9tY2lmd3JfYnVmZmVyX3NpemU7CiB1
aW50MzJfdCBkaXNwbGF5X3dyaXRlX2JhY2s0MjBfY2hyb21hX21jaWZ3cl9idWZmZXJfc2l6ZTsK
IHN0cnVjdCBid19maXhlZCByZXF1ZXN0X2VmZmljaWVuY3k7CiBzdHJ1Y3QgYndfZml4ZWQgZGlz
cGNsa19wZXJfcmVxdWVzdDsKIHN0cnVjdCBid19maXhlZCBkaXNwY2xrX3JhbXBpbmdfZmFjdG9y
Owogc3RydWN0IGJ3X2ZpeGVkIGRpc3BsYXlfcGlwZV90aHJvdWdocHV0X2ZhY3RvcjsKIHVpbnQz
Ml90IHNjYXR0ZXJfZ2F0aGVyX3B0ZV9yZXF1ZXN0X3Jvd3NfaW5fdGlsaW5nX21vZGU7CiBzdHJ1
Y3QgYndfZml4ZWQgbWNpZndyX2FsbF9zdXJmYWNlc19idXJzdF90aW1lOwp9OwoKc3RydWN0IGJ3
X2NhbGNzX3ZiaW9zIHsKIGVudW0gYndfZGVmaW5lcyBtZW1vcnlfdHlwZTsKIHVpbnQzMl90IGRy
YW1fY2hhbm5lbF93aWR0aF9pbl9iaXRzOwogdWludDMyX3QgbnVtYmVyX29mX2RyYW1fY2hhbm5l
bHM7CiB1aW50MzJfdCBudW1iZXJfb2ZfZHJhbV9iYW5rczsKIHN0cnVjdCBid19maXhlZCBsb3df
eWNsazsKIHN0cnVjdCBid19maXhlZCBtaWRfeWNsazsKIHN0cnVjdCBid19maXhlZCBoaWdoX3lj
bGs7CiBzdHJ1Y3QgYndfZml4ZWQgbG93X3NjbGs7CiBzdHJ1Y3QgYndfZml4ZWQgbWlkMV9zY2xr
Owogc3RydWN0IGJ3X2ZpeGVkIG1pZDJfc2NsazsKIHN0cnVjdCBid19maXhlZCBtaWQzX3NjbGs7
CiBzdHJ1Y3QgYndfZml4ZWQgbWlkNF9zY2xrOwogc3RydWN0IGJ3X2ZpeGVkIG1pZDVfc2NsazsK
IHN0cnVjdCBid19maXhlZCBtaWQ2X3NjbGs7CiBzdHJ1Y3QgYndfZml4ZWQgaGlnaF9zY2xrOwog
c3RydWN0IGJ3X2ZpeGVkIGxvd192b2x0YWdlX21heF9kaXNwY2xrOwogc3RydWN0IGJ3X2ZpeGVk
IG1pZF92b2x0YWdlX21heF9kaXNwY2xrOwogc3RydWN0IGJ3X2ZpeGVkIGhpZ2hfdm9sdGFnZV9t
YXhfZGlzcGNsazsKIHN0cnVjdCBid19maXhlZCBsb3dfdm9sdGFnZV9tYXhfcGh5Y2xrOwogc3Ry
dWN0IGJ3X2ZpeGVkIG1pZF92b2x0YWdlX21heF9waHljbGs7CiBzdHJ1Y3QgYndfZml4ZWQgaGln
aF92b2x0YWdlX21heF9waHljbGs7CiBzdHJ1Y3QgYndfZml4ZWQgZGF0YV9yZXR1cm5fYnVzX3dp
ZHRoOwogc3RydWN0IGJ3X2ZpeGVkIHRyYzsKIHN0cnVjdCBid19maXhlZCBkbWlmbWNfdXJnZW50
X2xhdGVuY3k7CiBzdHJ1Y3QgYndfZml4ZWQgc3R1dHRlcl9zZWxmX3JlZnJlc2hfZXhpdF9sYXRl
bmN5Owogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfc2VsZl9yZWZyZXNoX2VudHJ5X2xhdGVuY3k7
CiBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0YXRlX2NoYW5nZV9sYXRlbmN5Owogc3RydWN0IGJ3X2Zp
eGVkIG1jaWZ3cm1jX3VyZ2VudF9sYXRlbmN5OwogYm9vbCBzY2F0dGVyX2dhdGhlcl9lbmFibGU7
CiBzdHJ1Y3QgYndfZml4ZWQgZG93bl9zcHJlYWRfcGVyY2VudGFnZTsKIHVpbnQzMl90IGN1cnNv
cl93aWR0aDsKIHVpbnQzMl90IGF2ZXJhZ2VfY29tcHJlc3Npb25fcmF0ZTsKIHVpbnQzMl90IG51
bWJlcl9vZl9yZXF1ZXN0X3Nsb3RzX2dtY19yZXNlcnZlc19mb3JfZG1pZl9wZXJfY2hhbm5lbDsK
IHN0cnVjdCBid19maXhlZCBibGFja291dF9kdXJhdGlvbjsKIHN0cnVjdCBid19maXhlZCBtYXhp
bXVtX2JsYWNrb3V0X3JlY292ZXJ5X3RpbWU7Cn07CgoKCgoKCgpzdHJ1Y3QgYndfY2FsY3NfZGF0
YSB7CgogYm9vbCBkaXNwbGF5X3N5bmNocm9uaXphdGlvbl9lbmFibGVkOwogdWludDMyX3QgbnVt
YmVyX29mX2Rpc3BsYXlzOwogZW51bSBid19kZWZpbmVzIHVuZGVybGF5X3N1cmZhY2VfdHlwZTsK
IGVudW0gYndfZGVmaW5lcyBwYW5uaW5nX2FuZF9iZXplbF9hZGp1c3RtZW50OwogZW51bSBid19k
ZWZpbmVzIGdyYXBoaWNzX3RpbGluZ19tb2RlOwogdWludDMyX3QgZ3JhcGhpY3NfbGJfYnBjOwog
dWludDMyX3QgdW5kZXJsYXlfbGJfYnBjOwogZW51bSBid19kZWZpbmVzIHVuZGVybGF5X3RpbGlu
Z19tb2RlOwogZW51bSBid19kZWZpbmVzIGQwX3VuZGVybGF5X21vZGU7CiBib29sIGQxX2Rpc3Bs
YXlfd3JpdGVfYmFja19kd2JfZW5hYmxlOwogZW51bSBid19kZWZpbmVzIGQxX3VuZGVybGF5X21v
ZGU7CgogYm9vbCBpbmNyZWFzZV92b2x0YWdlX3RvX3N1cHBvcnRfbWNsa19zd2l0Y2g7CiBib29s
IGNwdXBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKIGJvb2wgY3B1Y19zdGF0ZV9jaGFuZ2VfZW5hYmxl
OwogYm9vbCBuYnBfc3RhdGVfY2hhbmdlX2VuYWJsZTsKIGJvb2wgc3R1dHRlcl9tb2RlX2VuYWJs
ZTsKIHVpbnQzMl90IHlfY2xrX2xldmVsOwogdWludDMyX3Qgc2Nsa19sZXZlbDsKIHVpbnQzMl90
IG51bWJlcl9vZl91bmRlcmxheV9zdXJmYWNlczsKIHVpbnQzMl90IG51bWJlcl9vZl9kcmFtX3dy
Y2hhbm5lbHM7CiB1aW50MzJfdCBjaHVua19yZXF1ZXN0X2RlbGF5OwogdWludDMyX3QgbnVtYmVy
X29mX2RyYW1fY2hhbm5lbHM7CiBlbnVtIGJ3X2RlZmluZXMgdW5kZXJsYXlfbWljcm9fdGlsZV9t
b2RlOwogZW51bSBid19kZWZpbmVzIGdyYXBoaWNzX21pY3JvX3RpbGVfbW9kZTsKIHN0cnVjdCBi
d19maXhlZCBtYXhfcGh5Y2xrOwogc3RydWN0IGJ3X2ZpeGVkIGRyYW1fZWZmaWNpZW5jeTsKIHN0
cnVjdCBid19maXhlZCBzcmNfd2lkdGhfYWZ0ZXJfc3VyZmFjZV90eXBlOwogc3RydWN0IGJ3X2Zp
eGVkIHNyY19oZWlnaHRfYWZ0ZXJfc3VyZmFjZV90eXBlOwogc3RydWN0IGJ3X2ZpeGVkIGhzcl9h
ZnRlcl9zdXJmYWNlX3R5cGU7CiBzdHJ1Y3QgYndfZml4ZWQgdnNyX2FmdGVyX3N1cmZhY2VfdHlw
ZTsKIHN0cnVjdCBid19maXhlZCBzcmNfd2lkdGhfYWZ0ZXJfcm90YXRpb247CiBzdHJ1Y3QgYndf
Zml4ZWQgc3JjX2hlaWdodF9hZnRlcl9yb3RhdGlvbjsKIHN0cnVjdCBid19maXhlZCBoc3JfYWZ0
ZXJfcm90YXRpb247CiBzdHJ1Y3QgYndfZml4ZWQgdnNyX2FmdGVyX3JvdGF0aW9uOwogc3RydWN0
IGJ3X2ZpeGVkIHNvdXJjZV9oZWlnaHRfcGl4ZWxzOwogc3RydWN0IGJ3X2ZpeGVkIGhzcl9hZnRl
cl9zdGVyZW87CiBzdHJ1Y3QgYndfZml4ZWQgdnNyX2FmdGVyX3N0ZXJlbzsKIHN0cnVjdCBid19m
aXhlZCBzb3VyY2Vfd2lkdGhfaW5fbGI7CiBzdHJ1Y3QgYndfZml4ZWQgbGJfbGluZV9waXRjaDsK
IHN0cnVjdCBid19maXhlZCB1bmRlcmxheV9tYXhpbXVtX3NvdXJjZV9lZmZpY2llbnRfZm9yX3Rp
bGluZzsKIHN0cnVjdCBid19maXhlZCBudW1fbGluZXNfYXRfZnJhbWVfc3RhcnQ7CiBzdHJ1Y3Qg
YndfZml4ZWQgbWluX2RtaWZfc2l6ZV9pbl90aW1lOwogc3RydWN0IGJ3X2ZpeGVkIG1pbl9tY2lm
d3Jfc2l6ZV9pbl90aW1lOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX3JlcXVlc3RzX2Zvcl9kbWlm
X3NpemU7CiBzdHJ1Y3QgYndfZml4ZWQgcGVha19wdGVfcmVxdWVzdF90b19ldmljdGlvbl9yYXRp
b19saW1pdGluZzsKIHN0cnVjdCBid19maXhlZCB1c2VmdWxfcHRlX3Blcl9wdGVfcmVxdWVzdDsK
IHN0cnVjdCBid19maXhlZCBzY2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVzdF9yb3dzOwogc3RydWN0
IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3Jvd19oZWlnaHQ7CiBzdHJ1Y3QgYndfZml4ZWQgc2Nh
dHRlcl9nYXRoZXJfcHRlX3JlcXVlc3RzX2luX3ZibGFuazsKIHN0cnVjdCBid19maXhlZCBpbmVm
ZmljaWVudF9saW5lYXJfcGl0Y2hfaW5fYnl0ZXM7CiBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3Rv
dGFsX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3RvdGFsX3JlcXVlc3RfZ3JvdXBzOwog
c3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3RvdGFsX3B0ZV9yZXF1ZXN0czsKIHN0cnVj
dCBid19maXhlZCBzY2F0dGVyX2dhdGhlcl90b3RhbF9wdGVfcmVxdWVzdF9ncm91cHM7CiBzdHJ1
Y3QgYndfZml4ZWQgdGlsZV93aWR0aF9pbl9waXhlbHM7CiBzdHJ1Y3QgYndfZml4ZWQgZG1pZl90
b3RhbF9udW1iZXJfb2ZfZGF0YV9yZXF1ZXN0X3BhZ2VfY2xvc2Vfb3BlbjsKIHN0cnVjdCBid19m
aXhlZCBtY2lmd3JfdG90YWxfbnVtYmVyX29mX2RhdGFfcmVxdWVzdF9wYWdlX2Nsb3NlX29wZW47
CiBzdHJ1Y3QgYndfZml4ZWQgYnl0ZXNfcGVyX3BhZ2VfY2xvc2Vfb3BlbjsKIHN0cnVjdCBid19m
aXhlZCBtY2lmd3JfdG90YWxfcGFnZV9jbG9zZV9vcGVuX3RpbWU7CiBzdHJ1Y3QgYndfZml4ZWQg
dG90YWxfcmVxdWVzdHNfZm9yX2FkanVzdGVkX2RtaWZfc2l6ZTsKIHN0cnVjdCBid19maXhlZCB0
b3RhbF9kbWlmbWNfdXJnZW50X3RyaXBzOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2RtaWZtY191
cmdlbnRfbGF0ZW5jeTsKIHN0cnVjdCBid19maXhlZCB0b3RhbF9kaXNwbGF5X3JlYWRzX3JlcXVp
cmVkX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGxheV9yZWFkc19yZXF1aXJlZF9k
cmFtX2FjY2Vzc19kYXRhOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BsYXlfd3JpdGVzX3Jl
cXVpcmVkX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGxheV93cml0ZXNfcmVxdWly
ZWRfZHJhbV9hY2Nlc3NfZGF0YTsKIHN0cnVjdCBid19maXhlZCBkaXNwbGF5X3JlYWRzX3JlcXVp
cmVkX2RhdGE7CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9yZWFkc19yZXF1aXJlZF9kcmFtX2Fj
Y2Vzc19kYXRhOwogc3RydWN0IGJ3X2ZpeGVkIGRtaWZfdG90YWxfcGFnZV9jbG9zZV9vcGVuX3Rp
bWU7CiBzdHJ1Y3QgYndfZml4ZWQgbWluX2N1cnNvcl9tZW1vcnlfaW50ZXJmYWNlX2J1ZmZlcl9z
aXplX2luX3RpbWU7CiBzdHJ1Y3QgYndfZml4ZWQgbWluX3JlYWRfYnVmZmVyX3NpemVfaW5fdGlt
ZTsKIHN0cnVjdCBid19maXhlZCBkaXNwbGF5X3JlYWRzX3RpbWVfZm9yX2RhdGFfdHJhbnNmZXI7
CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV93cml0ZXNfdGltZV9mb3JfZGF0YV90cmFuc2ZlcjsK
IHN0cnVjdCBid19maXhlZCBkbWlmX3JlcXVpcmVkX2RyYW1fYmFuZHdpZHRoOwogc3RydWN0IGJ3
X2ZpeGVkIG1jaWZ3cl9yZXF1aXJlZF9kcmFtX2JhbmR3aWR0aDsKIHN0cnVjdCBid19maXhlZCBy
ZXF1aXJlZF9kbWlmbWNfdXJnZW50X2xhdGVuY3lfZm9yX3BhZ2VfY2xvc2Vfb3BlbjsKIHN0cnVj
dCBid19maXhlZCByZXF1aXJlZF9tY2lmbWN3cl91cmdlbnRfbGF0ZW5jeTsKIHN0cnVjdCBid19m
aXhlZCByZXF1aXJlZF9kcmFtX2JhbmR3aWR0aF9nYnl0ZV9wZXJfc2Vjb25kOwogc3RydWN0IGJ3
X2ZpeGVkIGRyYW1fYmFuZHdpZHRoOwogc3RydWN0IGJ3X2ZpeGVkIGRtaWZfcmVxdWlyZWRfc2Ns
azsKIHN0cnVjdCBid19maXhlZCBtY2lmd3JfcmVxdWlyZWRfc2NsazsKIHN0cnVjdCBid19maXhl
ZCByZXF1aXJlZF9zY2xrOwogc3RydWN0IGJ3X2ZpeGVkIGRvd25zcHJlYWRfZmFjdG9yOwogc3Ry
dWN0IGJ3X2ZpeGVkIHZfc2NhbGVyX2VmZmljaWVuY3k7CiBzdHJ1Y3QgYndfZml4ZWQgc2NhbGVy
X2xpbWl0c19mYWN0b3I7CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9waXBlX3BpeGVsX3Rocm91
Z2hwdXQ7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGNsa19yZXF1aXJlZF93aXRoX3JhbXBp
bmc7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGNsa19yZXF1aXJlZF93aXRob3V0X3JhbXBp
bmc7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfcmVhZF9yZXF1ZXN0X2JhbmR3aWR0aDsKIHN0cnVj
dCBid19maXhlZCB0b3RhbF93cml0ZV9yZXF1ZXN0X2JhbmR3aWR0aDsKIHN0cnVjdCBid19maXhl
ZCBkaXNwY2xrX3JlcXVpcmVkX2Zvcl90b3RhbF9yZWFkX3JlcXVlc3RfYmFuZHdpZHRoOwogc3Ry
dWN0IGJ3X2ZpeGVkIHRvdGFsX2Rpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1waW5nX3dpdGhfcmVx
dWVzdF9iYW5kd2lkdGg7CiBzdHJ1Y3QgYndfZml4ZWQgdG90YWxfZGlzcGNsa19yZXF1aXJlZF93
aXRob3V0X3JhbXBpbmdfd2l0aF9yZXF1ZXN0X2JhbmR3aWR0aDsKIHN0cnVjdCBid19maXhlZCBk
aXNwY2xrOwogc3RydWN0IGJ3X2ZpeGVkIGJsYWNrb3V0X3JlY292ZXJ5X3RpbWU7CiBzdHJ1Y3Qg
YndfZml4ZWQgbWluX3BpeGVsc19wZXJfZGF0YV9maWZvX2VudHJ5Owogc3RydWN0IGJ3X2ZpeGVk
IHNjbGtfZGVlcF9zbGVlcDsKIHN0cnVjdCBid19maXhlZCBjaHVua19yZXF1ZXN0X3RpbWU7CiBz
dHJ1Y3QgYndfZml4ZWQgY3Vyc29yX3JlcXVlc3RfdGltZTsKIHN0cnVjdCBid19maXhlZCBsaW5l
X3NvdXJjZV9waXhlbHNfdHJhbnNmZXJfdGltZTsKIHN0cnVjdCBid19maXhlZCBkbWlmZHJhbV9h
Y2Nlc3NfZWZmaWNpZW5jeTsKIHN0cnVjdCBid19maXhlZCBtY2lmd3JkcmFtX2FjY2Vzc19lZmZp
Y2llbmN5Owogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2F2ZXJhZ2VfYmFuZHdpZHRoX25vX2NvbXBy
ZXNzaW9uOwogc3RydWN0IGJ3X2ZpeGVkIHRvdGFsX2F2ZXJhZ2VfYmFuZHdpZHRoOwogc3RydWN0
IGJ3X2ZpeGVkIHRvdGFsX3N0dXR0ZXJfY3ljbGVfZHVyYXRpb247CiBzdHJ1Y3QgYndfZml4ZWQg
c3R1dHRlcl9idXJzdF90aW1lOwogc3RydWN0IGJ3X2ZpeGVkIHRpbWVfaW5fc2VsZl9yZWZyZXNo
Owogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZWZmaWNpZW5jeTsKIHN0cnVjdCBid19maXhlZCB3
b3JzdF9udW1iZXJfb2ZfdHJpcHNfdG9fbWVtb3J5Owogc3RydWN0IGJ3X2ZpeGVkIGltbWVkaWF0
ZV9mbGlwX3RpbWU7CiBzdHJ1Y3QgYndfZml4ZWQgbGF0ZW5jeV9mb3Jfbm9uX2RtaWZfY2xpZW50
czsKIHN0cnVjdCBid19maXhlZCBsYXRlbmN5X2Zvcl9ub25fbWNpZndyX2NsaWVudHM7CiBzdHJ1
Y3QgYndfZml4ZWQgZG1pZm1jX3VyZ2VudF9sYXRlbmN5X3N1cHBvcnRlZF9pbl9oaWdoX3NjbGtf
YW5kX3ljbGs7CiBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0YXRlX2RyYW1fc3BlZWRfY2hhbmdlX21h
cmdpbjsKIHN0cnVjdCBid19maXhlZCBkaXNwbGF5X3JlYWRzX3RpbWVfZm9yX2RhdGFfdHJhbnNm
ZXJfYW5kX3VyZ2VudF9sYXRlbmN5Owogc3RydWN0IGJ3X2ZpeGVkIGRyYW1fc3BlZWRfY2hhbmdl
X21hcmdpbjsKIHN0cnVjdCBid19maXhlZCBtaW5fdmJsYW5rX2RyYW1fc3BlZWRfY2hhbmdlX21h
cmdpbjsKIHN0cnVjdCBid19maXhlZCBtaW5fc3R1dHRlcl9yZWZyZXNoX2R1cmF0aW9uOwogdWlu
dDMyX3QgdG90YWxfc3R1dHRlcl9kbWlmX2J1ZmZlcl9zaXplOwogdWludDMyX3QgdG90YWxfYnl0
ZXNfcmVxdWVzdGVkOwogdWludDMyX3QgbWluX3N0dXR0ZXJfZG1pZl9idWZmZXJfc2l6ZTsKIHVp
bnQzMl90IG51bV9zdHV0dGVyX2J1cnN0czsKIHN0cnVjdCBid19maXhlZCB2X2JsYW5rX25icF9z
dGF0ZV9kcmFtX3NwZWVkX2NoYW5nZV9sYXRlbmN5X3N1cHBvcnRlZDsKIHN0cnVjdCBid19maXhl
ZCBuYnBfc3RhdGVfZHJhbV9zcGVlZF9jaGFuZ2VfbGF0ZW5jeV9zdXBwb3J0ZWQ7CiBib29sIGZi
Y19lblsxMl07CiBib29sIGxwdF9lblsxMl07CiBib29sIGRpc3BsYXlzX21hdGNoX2ZsYWdbMTJd
OwogYm9vbCB1c2VfYWxwaGFbMTJdOwogYm9vbCBvcnRob2dvbmFsX3JvdGF0aW9uWzEyXTsKIGJv
b2wgZW5hYmxlWzEyXTsKIGJvb2wgYWNjZXNzX29uZV9jaGFubmVsX29ubHlbMTJdOwogYm9vbCBz
Y2F0dGVyX2dhdGhlcl9lbmFibGVfZm9yX3BpcGVbMTJdOwogYm9vbCBpbnRlcmxhY2VfbW9kZVsx
Ml07CiBib29sIGRpc3BsYXlfcHN0YXRlX2NoYW5nZV9lbmFibGVbMTJdOwogYm9vbCBsaW5lX2J1
ZmZlcl9wcmVmZXRjaFsxMl07CiB1aW50MzJfdCBieXRlc19wZXJfcGl4ZWxbMTJdOwogdWludDMy
X3QgbWF4X2NodW5rc19ub25fZmJjX21vZGVbMTJdOwogdWludDMyX3QgbGJfYnBjWzEyXTsKIHVp
bnQzMl90IG91dHB1dF9icHBoZG1pWzEyXTsKIHVpbnQzMl90IG91dHB1dF9icHBkcDRfbGFuZV9o
YnJbMTJdOwogdWludDMyX3Qgb3V0cHV0X2JwcGRwNF9sYW5lX2hicjJbMTJdOwogdWludDMyX3Qg
b3V0cHV0X2JwcGRwNF9sYW5lX2hicjNbMTJdOwogZW51bSBid19kZWZpbmVzIHN0ZXJlb19tb2Rl
WzEyXTsKIHN0cnVjdCBid19maXhlZCBkbWlmX2J1ZmZlcl90cmFuc2Zlcl90aW1lWzEyXTsKIHN0
cnVjdCBid19maXhlZCBkaXNwbGF5c193aXRoX3NhbWVfbW9kZVsxMl07CiBzdHJ1Y3QgYndfZml4
ZWQgc3R1dHRlcl9kbWlmX2J1ZmZlcl9zaXplWzEyXTsKIHN0cnVjdCBid19maXhlZCBzdHV0dGVy
X3JlZnJlc2hfZHVyYXRpb25bMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZXhpdF93YXRl
cm1hcmtbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfZW50cnlfd2F0ZXJtYXJrWzEyXTsK
IHN0cnVjdCBid19maXhlZCBoX3RvdGFsWzEyXTsKIHN0cnVjdCBid19maXhlZCB2X3RvdGFsWzEy
XTsKIHN0cnVjdCBid19maXhlZCBwaXhlbF9yYXRlWzEyXTsKIHN0cnVjdCBid19maXhlZCBzcmNf
d2lkdGhbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHBpdGNoX2luX3BpeGVsc1sxMl07CiBzdHJ1Y3Qg
YndfZml4ZWQgcGl0Y2hfaW5fcGl4ZWxzX2FmdGVyX3N1cmZhY2VfdHlwZVsxMl07CiBzdHJ1Y3Qg
YndfZml4ZWQgc3JjX2hlaWdodFsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc2NhbGVfcmF0aW9bMTJd
Owogc3RydWN0IGJ3X2ZpeGVkIGhfdGFwc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgdl90YXBzWzEy
XTsKIHN0cnVjdCBid19maXhlZCBoX3NjYWxlX3JhdGlvWzEyXTsKIHN0cnVjdCBid19maXhlZCB2
X3NjYWxlX3JhdGlvWzEyXTsKIHN0cnVjdCBid19maXhlZCByb3RhdGlvbl9hbmdsZVsxMl07CiBz
dHJ1Y3QgYndfZml4ZWQgY29tcHJlc3Npb25fcmF0ZVsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgaHNy
WzEyXTsKIHN0cnVjdCBid19maXhlZCB2c3JbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHNvdXJjZV93
aWR0aF9yb3VuZGVkX3VwX3RvX2NodW5rc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc291cmNlX3dp
ZHRoX3BpeGVsc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc291cmNlX2hlaWdodF9yb3VuZGVkX3Vw
X3RvX2NodW5rc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgZGlzcGxheV9iYW5kd2lkdGhbMTJdOwog
c3RydWN0IGJ3X2ZpeGVkIHJlcXVlc3RfYmFuZHdpZHRoWzEyXTsKIHN0cnVjdCBid19maXhlZCBi
eXRlc19wZXJfcmVxdWVzdFsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgdXNlZnVsX2J5dGVzX3Blcl9y
ZXF1ZXN0WzEyXTsKIHN0cnVjdCBid19maXhlZCBsaW5lc19pbnRlcmxlYXZlZF9pbl9tZW1fYWNj
ZXNzWzEyXTsKIHN0cnVjdCBid19maXhlZCBsYXRlbmN5X2hpZGluZ19saW5lc1sxMl07CiBzdHJ1
Y3QgYndfZml4ZWQgbGJfcGFydGl0aW9uc1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgbGJfcGFydGl0
aW9uc19tYXhbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfd2l0aF9yYW1w
aW5nWzEyXTsKIHN0cnVjdCBid19maXhlZCBkaXNwY2xrX3JlcXVpcmVkX3dpdGhvdXRfcmFtcGlu
Z1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgZGF0YV9idWZmZXJfc2l6ZVsxMl07CiBzdHJ1Y3QgYndf
Zml4ZWQgb3V0c3RhbmRpbmdfY2h1bmtfcmVxdWVzdF9saW1pdFsxMl07CiBzdHJ1Y3QgYndfZml4
ZWQgdXJnZW50X3dhdGVybWFya1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgbmJwX3N0YXRlX2NoYW5n
ZV93YXRlcm1hcmtbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHZfZmlsdGVyX2luaXRbMTJdOwogc3Ry
dWN0IGJ3X2ZpeGVkIHN0dXR0ZXJfY3ljbGVfZHVyYXRpb25bMTJdOwogc3RydWN0IGJ3X2ZpeGVk
IGF2ZXJhZ2VfYmFuZHdpZHRoWzEyXTsKIHN0cnVjdCBid19maXhlZCBhdmVyYWdlX2JhbmR3aWR0
aF9ub19jb21wcmVzc2lvblsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgc2NhdHRlcl9nYXRoZXJfcHRl
X3JlcXVlc3RfbGltaXRbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIGxiX3NpemVfcGVyX2NvbXBvbmVu
dFsxMl07CiBzdHJ1Y3QgYndfZml4ZWQgbWVtb3J5X2NodW5rX3NpemVfaW5fYnl0ZXNbMTJdOwog
c3RydWN0IGJ3X2ZpeGVkIHBpcGVfY2h1bmtfc2l6ZV9pbl9ieXRlc1sxMl07CiBzdHJ1Y3QgYndf
Zml4ZWQgbnVtYmVyX29mX3RyaXBzX3RvX21lbW9yeV9mb3JfZ2V0dGluZ19hcHRlX3Jvd1sxMl07
CiBzdHJ1Y3QgYndfZml4ZWQgYWRqdXN0ZWRfZGF0YV9idWZmZXJfc2l6ZVsxMl07CiBzdHJ1Y3Qg
YndfZml4ZWQgYWRqdXN0ZWRfZGF0YV9idWZmZXJfc2l6ZV9pbl9tZW1vcnlbMTJdOwogc3RydWN0
IGJ3X2ZpeGVkIHBpeGVsc19wZXJfZGF0YV9maWZvX2VudHJ5WzEyXTsKIHN0cnVjdCBid19maXhl
ZCBzY2F0dGVyX2dhdGhlcl9wdGVfcmVxdWVzdHNfaW5fcm93WzEyXTsKIHN0cnVjdCBid19maXhl
ZCBwdGVfcmVxdWVzdF9wZXJfY2h1bmtbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0
aGVyX3BhZ2Vfd2lkdGhbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIHNjYXR0ZXJfZ2F0aGVyX3BhZ2Vf
aGVpZ2h0WzEyXTsKIHN0cnVjdCBid19maXhlZCBsYl9saW5lc19pbl9wZXJfbGluZV9vdXRfaW5f
YmVnaW5uaW5nX29mX2ZyYW1lWzEyXTsKIHN0cnVjdCBid19maXhlZCBsYl9saW5lc19pbl9wZXJf
bGluZV9vdXRfaW5fbWlkZGxlX29mX2ZyYW1lWzEyXTsKIHN0cnVjdCBid19maXhlZCBjdXJzb3Jf
d2lkdGhfcGl4ZWxzWzEyXTsKIHN0cnVjdCBid19maXhlZCBtaW5pbXVtX2xhdGVuY3lfaGlkaW5n
WzEyXTsKIHN0cnVjdCBid19maXhlZCBtYXhpbXVtX2xhdGVuY3lfaGlkaW5nWzEyXTsKIHN0cnVj
dCBid19maXhlZCBtaW5pbXVtX2xhdGVuY3lfaGlkaW5nX3dpdGhfY3Vyc29yWzEyXTsKIHN0cnVj
dCBid19maXhlZCBtYXhpbXVtX2xhdGVuY3lfaGlkaW5nX3dpdGhfY3Vyc29yWzEyXTsKIHN0cnVj
dCBid19maXhlZCBzcmNfcGl4ZWxzX2Zvcl9maXJzdF9vdXRwdXRfcGl4ZWxbMTJdOwogc3RydWN0
IGJ3X2ZpeGVkIHNyY19waXhlbHNfZm9yX2xhc3Rfb3V0cHV0X3BpeGVsWzEyXTsKIHN0cnVjdCBi
d19maXhlZCBzcmNfZGF0YV9mb3JfZmlyc3Rfb3V0cHV0X3BpeGVsWzEyXTsKIHN0cnVjdCBid19m
aXhlZCBzcmNfZGF0YV9mb3JfbGFzdF9vdXRwdXRfcGl4ZWxbMTJdOwogc3RydWN0IGJ3X2ZpeGVk
IGFjdGl2ZV90aW1lWzEyXTsKIHN0cnVjdCBid19maXhlZCBob3Jpem9udGFsX2JsYW5rX2FuZF9j
aHVua19ncmFudWxhcml0eV9mYWN0b3JbMTJdOwogc3RydWN0IGJ3X2ZpeGVkIGN1cnNvcl9sYXRl
bmN5X2hpZGluZ1sxMl07CiBzdHJ1Y3QgYndfZml4ZWQgdl9ibGFua19kcmFtX3NwZWVkX2NoYW5n
ZV9tYXJnaW5bMTJdOwogdWludDMyX3QgbnVtX2Rpc3BsYXlzX3dpdGhfbWFyZ2luWzNdWzhdOwog
c3RydWN0IGJ3X2ZpeGVkIGRtaWZfYnVyc3RfdGltZVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBt
Y2lmd3JfYnVyc3RfdGltZVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBsaW5lX3NvdXJjZV90cmFu
c2Zlcl90aW1lWzEyXVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBkcmFtX3NwZWVkX2NoYW5nZV9s
aW5lX3NvdXJjZV90cmFuc2Zlcl90aW1lWzEyXVszXVs4XTsKIHN0cnVjdCBid19maXhlZCBtaW5f
ZHJhbV9zcGVlZF9jaGFuZ2VfbWFyZ2luWzNdWzhdOwogc3RydWN0IGJ3X2ZpeGVkIGRpc3BjbGtf
cmVxdWlyZWRfZm9yX2RyYW1fc3BlZWRfY2hhbmdlWzNdWzhdOwogc3RydWN0IGJ3X2ZpeGVkIGRp
c3BjbGtfcmVxdWlyZWRfZm9yX2RyYW1fc3BlZWRfY2hhbmdlX3BpcGVbM11bOF07CiBzdHJ1Y3Qg
YndfZml4ZWQgYmxhY2tvdXRfZHVyYXRpb25fbWFyZ2luWzNdWzhdOwogc3RydWN0IGJ3X2ZpeGVk
IGRpc3BjbGtfcmVxdWlyZWRfZm9yX2JsYWNrb3V0X2R1cmF0aW9uWzNdWzhdOwogc3RydWN0IGJ3
X2ZpeGVkIGRpc3BjbGtfcmVxdWlyZWRfZm9yX2JsYWNrb3V0X3JlY292ZXJ5WzNdWzhdOwogc3Ry
dWN0IGJ3X2ZpeGVkIGRtaWZfcmVxdWlyZWRfc2Nsa19mb3JfdXJnZW50X2xhdGVuY3lbNl07Cn07
CgoKCgp2b2lkIGJ3X2NhbGNzX2luaXQoCiBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgKmJ3X2RjZWlw
LAogc3RydWN0IGJ3X2NhbGNzX3ZiaW9zICpid192YmlvcywKIHN0cnVjdCBod19hc2ljX2lkIGFz
aWNfaWQpOwoKCgoKCgoKYm9vbCBid19jYWxjcygKIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiBj
b25zdCBzdHJ1Y3QgYndfY2FsY3NfZGNlaXAgKmRjZWlwLAogY29uc3Qgc3RydWN0IGJ3X2NhbGNz
X3ZiaW9zICp2YmlvcywKIGNvbnN0IHN0cnVjdCBwaXBlX2N0eCAqcGlwZSwKIGludCBwaXBlX2Nv
dW50LAogc3RydWN0IGRjZV9id19vdXRwdXQgKmNhbGNzX291dHB1dCk7CiMgMzEgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMg
MSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9kY25fY2Fs
Y3MuaCIgMQojIDM0ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMv
aW5jL2Rjbl9jYWxjcy5oIgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvLi4vZG1sL2Rpc3BsYXlfbW9kZV9saWIuaCIgMQojIDM1ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Rjbl9jYWxjcy5oIiAyCgoKc3Ry
dWN0IGRjOwpzdHJ1Y3QgZGNfc3RhdGU7CiMgNTEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvZGNuX2NhbGNzLmgiCmVudW0gZGNuX2J3X2RlZnMgewogZGNu
X2J3X3ZfbWluMHA2NSwKIGRjbl9id192X21pZDBwNzIsCiBkY25fYndfdl9ub20wcDgsCiBkY25f
Yndfdl9tYXgwcDksCiBkY25fYndfdl9tYXgwcDkxLAogZGNuX2J3X25vX3N1cHBvcnQgPSA1LAog
ZGNuX2J3X3llcywKIGRjbl9id19ob3IsCiBkY25fYndfdmVydCwKIGRjbl9id19vdmVycmlkZSwK
IGRjbl9id19yZ2Jfc3ViXzY0LAogZGNuX2J3X3JnYl9zdWJfMzIsCiBkY25fYndfcmdiX3N1Yl8x
NiwKIGRjbl9id19ubywKIGRjbl9id19zd19saW5lYXIsCiBkY25fYndfc3dfNF9rYl9kLAogZGNu
X2J3X3N3XzRfa2JfZF94LAogZGNuX2J3X3N3XzY0X2tiX2QsCiBkY25fYndfc3dfNjRfa2JfZF90
LAogZGNuX2J3X3N3XzY0X2tiX2RfeCwKIGRjbl9id19zd192YXJfZCwKIGRjbl9id19zd192YXJf
ZF94LAogZGNuX2J3X3l1djQyMF9zdWJfOCwKIGRjbl9id19zd180X2tiX3MsCiBkY25fYndfc3df
NF9rYl9zX3gsCiBkY25fYndfc3dfNjRfa2JfcywKIGRjbl9id19zd182NF9rYl9zX3QsCiBkY25f
Yndfc3dfNjRfa2Jfc194LAogZGNuX2J3X3dyaXRlYmFjaywKIGRjbl9id180NDQsCiBkY25fYndf
ZHAsCiBkY25fYndfNDIwLAogZGNuX2J3X2hkbWksCiBkY25fYndfc3dfdmFyX3MsCiBkY25fYndf
c3dfdmFyX3NfeCwKIGRjbl9id195dXY0MjBfc3ViXzEwLAogZGNuX2J3X3N1cHBvcnRlZF9pbl92
X2FjdGl2ZSwKIGRjbl9id19zdXBwb3J0ZWRfaW5fdl9ibGFuaywKIGRjbl9id19ub3Rfc3VwcG9y
dGVkLAogZGNuX2J3X25hLAogZGNuX2J3X2VuY29kZXJfOGJwYywKIGRjbl9id19lbmNvZGVyXzEw
YnBjLAogZGNuX2J3X2VuY29kZXJfMTJicGMsCiBkY25fYndfZW5jb2Rlcl8xNmJwYywKfTsKCgoK
CgpzdHJ1Y3QgZGNuX2J3X2ludGVybmFsX3ZhcnMgewogZmxvYXQgdm9sdGFnZVs1ICsgMV07CiBm
bG9hdCBtYXhfZGlzcGNsa1s1ICsgMV07CiBmbG9hdCBtYXhfZHBwY2xrWzUgKyAxXTsKIGZsb2F0
IGRjZmNsa19wZXJfc3RhdGVbNSArIDFdOwogZmxvYXQgcGh5Y2xrX3Blcl9zdGF0ZVs1ICsgMV07
CiBmbG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdpZHRoX3Blcl9zdGF0ZVs1ICsgMV07CiBmbG9h
dCBzcl9leGl0X3RpbWU7CiBmbG9hdCBzcl9lbnRlcl9wbHVzX2V4aXRfdGltZTsKIGZsb2F0IGRy
YW1fY2xvY2tfY2hhbmdlX2xhdGVuY3k7CiBmbG9hdCB1cmdlbnRfbGF0ZW5jeTsKIGZsb2F0IHdy
aXRlX2JhY2tfbGF0ZW5jeTsKIGZsb2F0IHBlcmNlbnRfb2ZfaWRlYWxfZHJhbWJ3X3JlY2VpdmVk
X2FmdGVyX3VyZ19sYXRlbmN5OwogZmxvYXQgZGNmY2xrdl9tYXgwcDk7CiBmbG9hdCBkY2ZjbGt2
X25vbTBwODsKIGZsb2F0IGRjZmNsa3ZfbWlkMHA3MjsKIGZsb2F0IGRjZmNsa3ZfbWluMHA2NTsK
IGZsb2F0IG1heF9kaXNwY2xrX3ZtYXgwcDk7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtYXgwcDk7CiBm
bG9hdCBtYXhfZGlzcGNsa192bm9tMHA4OwogZmxvYXQgbWF4X2RwcGNsa192bm9tMHA4OwogZmxv
YXQgbWF4X2Rpc3BjbGtfdm1pZDBwNzI7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwogZmxv
YXQgbWF4X2Rpc3BjbGtfdm1pbjBwNjU7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtaW4wcDY1OwogZmxv
YXQgc29jY2xrOwogZmxvYXQgZmFicmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bWF4MHA5OwogZmxv
YXQgZmFicmljX2FuZF9kcmFtX2JhbmR3aWR0aF92bm9tMHA4OwogZmxvYXQgZmFicmljX2FuZF9k
cmFtX2JhbmR3aWR0aF92bWlkMHA3MjsKIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhf
dm1pbjBwNjU7CiBmbG9hdCByb3VuZF90cmlwX3BpbmdfbGF0ZW5jeV9jeWNsZXM7CiBmbG9hdCB1
cmdlbnRfb3V0X29mX29yZGVyX3JldHVybl9wZXJfY2hhbm5lbDsKIGZsb2F0IG51bWJlcl9vZl9j
aGFubmVsczsKIGZsb2F0IHZtbV9wYWdlX3NpemU7CiBmbG9hdCByZXR1cm5fYnVzX3dpZHRoOwog
ZmxvYXQgcm9iX2J1ZmZlcl9zaXplX2luX2tieXRlOwogZmxvYXQgZGV0X2J1ZmZlcl9zaXplX2lu
X2tieXRlOwogZmxvYXQgZHBwX291dHB1dF9idWZmZXJfcGl4ZWxzOwogZmxvYXQgb3BwX291dHB1
dF9idWZmZXJfbGluZXM7CiBmbG9hdCBwaXhlbF9jaHVua19zaXplX2luX2tieXRlOwogZmxvYXQg
cHRlX2NodW5rX3NpemU7CiBmbG9hdCBtZXRhX2NodW5rX3NpemU7CiBmbG9hdCB3cml0ZWJhY2tf
Y2h1bmtfc2l6ZTsKIGVudW0gZGNuX2J3X2RlZnMgb2RtX2NhcGFiaWxpdHk7CiBlbnVtIGRjbl9i
d19kZWZzIGRzY19jYXBhYmlsaXR5OwogZmxvYXQgbGluZV9idWZmZXJfc2l6ZTsKIGVudW0gZGNu
X2J3X2RlZnMgaXNfbGluZV9idWZmZXJfYnBwX2ZpeGVkOwogZmxvYXQgbGluZV9idWZmZXJfZml4
ZWRfYnBwOwogZmxvYXQgbWF4X2xpbmVfYnVmZmVyX2xpbmVzOwogZmxvYXQgd3JpdGViYWNrX2x1
bWFfYnVmZmVyX3NpemU7CiBmbG9hdCB3cml0ZWJhY2tfY2hyb21hX2J1ZmZlcl9zaXplOwogZmxv
YXQgbWF4X251bV9kcHA7CiBmbG9hdCBtYXhfbnVtX3dyaXRlYmFjazsKIGZsb2F0IG1heF9kY2h1
Yl90b3BzY2xfdGhyb3VnaHB1dDsKIGZsb2F0IG1heF9wc2NsX3RvbGJfdGhyb3VnaHB1dDsKIGZs
b2F0IG1heF9sYl90b3ZzY2xfdGhyb3VnaHB1dDsKIGZsb2F0IG1heF92c2NsX3RvaHNjbF90aHJv
dWdocHV0OwogZmxvYXQgbWF4X2hzY2xfcmF0aW87CiBmbG9hdCBtYXhfdnNjbF9yYXRpbzsKIGZs
b2F0IG1heF9oc2NsX3RhcHM7CiBmbG9hdCBtYXhfdnNjbF90YXBzOwogZmxvYXQgdW5kZXJfc2Nh
bl9mYWN0b3I7CiBmbG9hdCBwaHljbGt2X21heDBwOTsKIGZsb2F0IHBoeWNsa3Zfbm9tMHA4Owog
ZmxvYXQgcGh5Y2xrdl9taWQwcDcyOwogZmxvYXQgcGh5Y2xrdl9taW4wcDY1OwogZmxvYXQgcHRl
X2J1ZmZlcl9zaXplX2luX3JlcXVlc3RzOwogZmxvYXQgZGlzcGNsa19yYW1waW5nX21hcmdpbjsK
IGZsb2F0IGRvd25zcHJlYWRpbmc7CiBmbG9hdCBtYXhfaW50ZXJfZGNuX3RpbGVfcmVwZWF0ZXJz
OwogZW51bSBkY25fYndfZGVmcyBjYW5fdnN0YXJ0dXBfbGluZXNfZXhjZWVkX3ZzeW5jX3BsdXNf
YmFja19wb3JjaF9saW5lc19taW51c19vbmU7CiBlbnVtIGRjbl9id19kZWZzIGJ1Z19mb3JjaW5n
X2x1bWFfYW5kX2Nocm9tYV9yZXF1ZXN0X3RvX3NhbWVfc2l6ZV9maXhlZDsKIGludCBtb2RlOwog
ZmxvYXQgdmlld3BvcnRfd2lkdGhbNSArIDFdOwogZmxvYXQgaHRvdGFsWzUgKyAxXTsKIGZsb2F0
IHZ0b3RhbFs1ICsgMV07CiBmbG9hdCB2X3N5bmNfcGx1c19iYWNrX3BvcmNoWzUgKyAxXTsKIGZs
b2F0IHZhY3RpdmVbNSArIDFdOwogZmxvYXQgcGl4ZWxfY2xvY2tbNSArIDFdOwogZmxvYXQgdmll
d3BvcnRfaGVpZ2h0WzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgZGNjX2VuYWJsZVs1ICsgMV07
CiBmbG9hdCBkY2NfcmF0ZVs1ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIHNvdXJjZV9zY2FuWzUg
KyAxXTsKIGZsb2F0IGxiX2JpdF9wZXJfcGl4ZWxbNSArIDFdOwogZW51bSBkY25fYndfZGVmcyBz
b3VyY2VfcGl4ZWxfZm9ybWF0WzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgc291cmNlX3N1cmZh
Y2VfbW9kZVs1ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIG91dHB1dF9mb3JtYXRbNSArIDFdOwog
ZW51bSBkY25fYndfZGVmcyBvdXRwdXRfZGVlcF9jb2xvcls1ICsgMV07CiBlbnVtIGRjbl9id19k
ZWZzIG91dHB1dFs1ICsgMV07CiBmbG9hdCBzY2FsZXJfcmVjX291dF93aWR0aFs1ICsgMV07CiBm
bG9hdCBzY2FsZXJfcmVjb3V0X2hlaWdodFs1ICsgMV07CiBmbG9hdCB1bmRlcnNjYW5fb3V0cHV0
WzUgKyAxXTsKIGZsb2F0IGludGVybGFjZV9vdXRwdXRbNSArIDFdOwogZmxvYXQgb3ZlcnJpZGVf
aHRhX3BzWzUgKyAxXTsKIGZsb2F0IG92ZXJyaWRlX3Z0YV9wc1s1ICsgMV07CiBmbG9hdCBvdmVy
cmlkZV9odGFfcHNjaHJvbWFbNSArIDFdOwogZmxvYXQgb3ZlcnJpZGVfdnRhX3BzY2hyb21hWzUg
KyAxXTsKIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNbNSArIDFdOwogZmxvYXQgaF9y
YXRpb1s1ICsgMV07CiBmbG9hdCB2X3JhdGlvWzUgKyAxXTsKIGZsb2F0IGh0YXBzWzUgKyAxXTsK
IGZsb2F0IHZ0YXBzWzUgKyAxXTsKIGZsb2F0IGh0YV9wc2Nocm9tYVs1ICsgMV07CiBmbG9hdCB2
dGFfcHNjaHJvbWFbNSArIDFdOwogZW51bSBkY25fYndfZGVmcyBwdGVfZW5hYmxlOwogZW51bSBk
Y25fYndfZGVmcyBzeW5jaHJvbml6ZWRfdmJsYW5rOwogZW51bSBkY25fYndfZGVmcyB0YV9wc2Nh
bGN1bGF0aW9uOwogaW50IHZvbHRhZ2Vfb3ZlcnJpZGVfbGV2ZWw7CiBpbnQgbnVtYmVyX29mX2Fj
dGl2ZV9wbGFuZXM7CiBpbnQgdm9sdGFnZV9sZXZlbDsKIGVudW0gZGNuX2J3X2RlZnMgaW1tZWRp
YXRlX2ZsaXBfc3VwcG9ydGVkOwogZmxvYXQgZGNmY2xrOwogZmxvYXQgbWF4X3BoeWNsazsKIGZs
b2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGg7CiBmbG9hdCBkcHBfcGVyX3BsYW5lX3Blcl9y
YXRpb1sxICsgMV1bNSArIDFdOwogZW51bSBkY25fYndfZGVmcyBkaXNwY2xrX2RwcGNsa19zdXBw
b3J0X3Blcl9yYXRpb1sxICsgMV07CiBmbG9hdCByZXF1aXJlZF9kaXNwY2xrX3Blcl9yYXRpb1sx
ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIGVycm9yX21lc3NhZ2VbMSArIDFdOwogaW50IGRpc3Bj
bGtfZHBwY2xrX3JhdGlvOwogZmxvYXQgZHBwX3Blcl9wbGFuZVs1ICsgMV07CiBmbG9hdCBkZXRf
YnVmZmVyX3NpemVfeVs1ICsgMV07CiBmbG9hdCBkZXRfYnVmZmVyX3NpemVfY1s1ICsgMV07CiBm
bG9hdCBzd2F0aF9oZWlnaHRfeVs1ICsgMV07CiBmbG9hdCBzd2F0aF9oZWlnaHRfY1s1ICsgMV07
CiBlbnVtIGRjbl9id19kZWZzIGZpbmFsX2Vycm9yX21lc3NhZ2U7CiBmbG9hdCBmcmVxdWVuY3k7
CiBmbG9hdCBoZWFkZXJfbGluZTsKIGZsb2F0IGhlYWRlcjsKIGVudW0gZGNuX2J3X2RlZnMgdm9s
dGFnZV9vdmVycmlkZTsKIGVudW0gZGNuX2J3X2RlZnMgYWxsb3dfZGlmZmVyZW50X2hyYXRpb192
cmF0aW87CiBmbG9hdCBhY2NlcHRhYmxlX3F1YWxpdHlfaHRhX3BzOwogZmxvYXQgYWNjZXB0YWJs
ZV9xdWFsaXR5X3Z0YV9wczsKIGZsb2F0IG5vX29mX2RwcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsK
IGZsb2F0IHN3YXRoX3dpZHRoX3lwZXJfc3RhdGVbNSArIDFdWzEgKyAxXVs1ICsgMV07CiBmbG9h
dCBzd2F0aF9oZWlnaHRfeXBlcl9zdGF0ZVs1ICsgMV1bMSArIDFdWzUgKyAxXTsKIGZsb2F0IHN3
YXRoX2hlaWdodF9jcGVyX3N0YXRlWzUgKyAxXVsxICsgMV1bNSArIDFdOwogZmxvYXQgdXJnZW50
X2xhdGVuY3lfc3VwcG9ydF91c19wZXJfc3RhdGVbNSArIDFdWzEgKyAxXVs1ICsgMV07CiBmbG9h
dCB2X3JhdGlvX3ByZV95d2l0aF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsK
IGZsb2F0IHZfcmF0aW9fcHJlX2N3aXRoX2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSAr
IDFdOwogZmxvYXQgcmVxdWlyZWRfcHJlZmV0Y2hfcGl4ZWxfZGF0YV9id193aXRoX2ltbWVkaWF0
ZV9mbGlwWzUgKyAxXVsxICsgMV1bNSArIDFdOwogZmxvYXQgdl9yYXRpb19wcmVfeXdpdGhvdXRf
aW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXVs1ICsgMV07CiBmbG9hdCB2X3JhdGlvX3ByZV9j
d2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdWzUgKyAxXTsKIGZsb2F0IHJlcXVp
cmVkX3ByZWZldGNoX3BpeGVsX2RhdGFfYndfd2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1b
MSArIDFdWzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgcHJlZmV0Y2hfc3VwcG9ydGVkX3dpdGhf
aW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgcHJlZmV0Y2hf
c3VwcG9ydGVkX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNu
X2J3X2RlZnMgdl9yYXRpb19pbl9wcmVmZXRjaF9zdXBwb3J0ZWRfd2l0aF9pbW1lZGlhdGVfZmxp
cFs1ICsgMV1bMSArIDFdOwogZW51bSBkY25fYndfZGVmcyB2X3JhdGlvX2luX3ByZWZldGNoX3N1
cHBvcnRlZF93aXRob3V0X2ltbWVkaWF0ZV9mbGlwWzUgKyAxXVsxICsgMV07CiBmbG9hdCByZXF1
aXJlZF9kaXNwY2xrWzUgKyAxXVsxICsgMV07CiBlbnVtIGRjbl9id19kZWZzIGRpc3BjbGtfZHBw
Y2xrX3N1cHBvcnRbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgdG90YWxfYXZhaWxh
YmxlX3BpcGVzX3N1cHBvcnRbNSArIDFdWzEgKyAxXTsKIGZsb2F0IHRvdGFsX251bWJlcl9vZl9h
Y3RpdmVfZHBwWzUgKyAxXVsxICsgMV07CiBmbG9hdCB0b3RhbF9udW1iZXJfb2ZfZGNjX2FjdGl2
ZV9kcHBbNSArIDFdWzEgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgdXJnZW50X2xhdGVuY3lfc3Vw
cG9ydFs1ICsgMV1bMSArIDFdOwogZW51bSBkY25fYndfZGVmcyBtb2RlX3N1cHBvcnRfd2l0aF9p
bW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwogZW51bSBkY25fYndfZGVmcyBtb2RlX3N1cHBv
cnRfd2l0aG91dF9pbW1lZGlhdGVfZmxpcFs1ICsgMV1bMSArIDFdOwogZmxvYXQgcmV0dXJuX2J3
X3Blcl9zdGF0ZVs1ICsgMV07CiBlbnVtIGRjbl9id19kZWZzIGRpb19zdXBwb3J0WzUgKyAxXTsK
IGZsb2F0IHVyZ2VudF9yb3VuZF90cmlwX2FuZF9vdXRfb2Zfb3JkZXJfbGF0ZW5jeV9wZXJfc3Rh
dGVbNSArIDFdOwogZW51bSBkY25fYndfZGVmcyByb2Jfc3VwcG9ydFs1ICsgMV07CiBlbnVtIGRj
bl9id19kZWZzIGJhbmR3aWR0aF9zdXBwb3J0WzUgKyAxXTsKIGZsb2F0IHByZWZldGNoX2J3WzUg
KyAxXTsKIGZsb2F0IG1ldGFfcHRlX2J5dGVzX3Blcl9mcmFtZVs1ICsgMV07CiBmbG9hdCBtZXRh
X3Jvd19ieXRlc1s1ICsgMV07CiBmbG9hdCBkcHRlX2J5dGVzX3Blcl9yb3dbNSArIDFdOwogZmxv
YXQgcHJlZmV0Y2hfbGluZXNfeVs1ICsgMV07CiBmbG9hdCBwcmVmZXRjaF9saW5lc19jWzUgKyAx
XTsKIGZsb2F0IG1heF9udW1fc3dfeVs1ICsgMV07CiBmbG9hdCBtYXhfbnVtX3N3X2NbNSArIDFd
OwogZmxvYXQgbGluZV90aW1lc19mb3JfcHJlZmV0Y2hbNSArIDFdOwogZmxvYXQgbGluZXNfZm9y
X21ldGFfcHRlX3dpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxvYXQgbGluZXNfZm9yX21l
dGFfcHRlX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxvYXQgbGluZXNfZm9yX21l
dGFfYW5kX2RwdGVfcm93X3dpdGhfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxvYXQgbGluZXNf
Zm9yX21ldGFfYW5kX2RwdGVfcm93X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXBbNSArIDFdOwogZmxv
YXQgbWluX2RwcGNsa191c2luZ19zaW5nbGVfZHBwWzUgKyAxXTsKIGZsb2F0IHN3YXRoX3dpZHRo
X3lzaW5nbGVfZHBwWzUgKyAxXTsKIGZsb2F0IGJ5dGVfcGVyX3BpeGVsX2luX2RldHlbNSArIDFd
OwogZmxvYXQgYnl0ZV9wZXJfcGl4ZWxfaW5fZGV0Y1s1ICsgMV07CiBmbG9hdCBudW1iZXJfb2Zf
ZHBwX3JlcXVpcmVkX2Zvcl9kZXRfYW5kX2xiX3NpemVbNSArIDFdOwogZmxvYXQgcmVxdWlyZWRf
cGh5Y2xrWzUgKyAxXTsKIGZsb2F0IHJlYWQyNTZfYmxvY2tfaGVpZ2h0X3lbNSArIDFdOwogZmxv
YXQgcmVhZDI1Nl9ibG9ja193aWR0aF95WzUgKyAxXTsKIGZsb2F0IHJlYWQyNTZfYmxvY2tfaGVp
Z2h0X2NbNSArIDFdOwogZmxvYXQgcmVhZDI1Nl9ibG9ja193aWR0aF9jWzUgKyAxXTsKIGZsb2F0
IG1heF9zd2F0aF9oZWlnaHRfeVs1ICsgMV07CiBmbG9hdCBtYXhfc3dhdGhfaGVpZ2h0X2NbNSAr
IDFdOwogZmxvYXQgbWluX3N3YXRoX2hlaWdodF95WzUgKyAxXTsKIGZsb2F0IG1pbl9zd2F0aF9o
ZWlnaHRfY1s1ICsgMV07CiBmbG9hdCByZWFkX2JhbmR3aWR0aFs1ICsgMV07CiBmbG9hdCB3cml0
ZV9iYW5kd2lkdGhbNSArIDFdOwogZmxvYXQgcHNjbF9mYWN0b3JbNSArIDFdOwogZmxvYXQgcHNj
bF9mYWN0b3JfY2hyb21hWzUgKyAxXTsKIGVudW0gZGNuX2J3X2RlZnMgc2NhbGVfcmF0aW9fc3Vw
cG9ydDsKIGVudW0gZGNuX2J3X2RlZnMgc291cmNlX2Zvcm1hdF9waXhlbF9hbmRfc2Nhbl9zdXBw
b3J0OwogZmxvYXQgdG90YWxfcmVhZF9iYW5kd2lkdGhfY29uc3VtZWRfZ2J5dGVfcGVyX3NlY29u
ZDsKIGZsb2F0IHRvdGFsX3dyaXRlX2JhbmR3aWR0aF9jb25zdW1lZF9nYnl0ZV9wZXJfc2Vjb25k
OwogZmxvYXQgdG90YWxfYmFuZHdpZHRoX2NvbnN1bWVkX2dieXRlX3Blcl9zZWNvbmQ7CiBlbnVt
IGRjbl9id19kZWZzIGRjY19lbmFibGVkX2luX2FueV9wbGFuZTsKIGZsb2F0IHJldHVybl9id190
b2Rjbl9wZXJfc3RhdGU7CiBmbG9hdCBjcml0aWNhbF9wb2ludDsKIGVudW0gZGNuX2J3X2RlZnMg
d3JpdGViYWNrX2xhdGVuY3lfc3VwcG9ydDsKIGZsb2F0IHJlcXVpcmVkX291dHB1dF9idzsKIGZs
b2F0IHRvdGFsX251bWJlcl9vZl9hY3RpdmVfd3JpdGViYWNrOwogZW51bSBkY25fYndfZGVmcyB0
b3RhbF9hdmFpbGFibGVfd3JpdGViYWNrX3N1cHBvcnQ7CiBmbG9hdCBtYXhpbXVtX3N3YXRoX3dp
ZHRoOwogZmxvYXQgbnVtYmVyX29mX2RwcF9yZXF1aXJlZF9mb3JfZGV0X3NpemU7CiBmbG9hdCBu
dW1iZXJfb2ZfZHBwX3JlcXVpcmVkX2Zvcl9sYl9zaXplOwogZmxvYXQgbWluX2Rpc3BjbGtfdXNp
bmdfc2luZ2xlX2RwcDsKIGZsb2F0IG1pbl9kaXNwY2xrX3VzaW5nX2R1YWxfZHBwOwogZW51bSBk
Y25fYndfZGVmcyB2aWV3cG9ydF9zaXplX3N1cHBvcnQ7CiBmbG9hdCBzd2F0aF93aWR0aF9ncmFu
dWxhcml0eV95OwogZmxvYXQgcm91bmRlZF91cF9tYXhfc3dhdGhfc2l6ZV9ieXRlc195OwogZmxv
YXQgc3dhdGhfd2lkdGhfZ3JhbnVsYXJpdHlfYzsKIGZsb2F0IHJvdW5kZWRfdXBfbWF4X3N3YXRo
X3NpemVfYnl0ZXNfYzsKIGZsb2F0IGxpbmVzX2luX2RldF9sdW1hOwogZmxvYXQgbGluZXNfaW5f
ZGV0X2Nocm9tYTsKIGZsb2F0IGVmZmVjdGl2ZV9sYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGlu
ZXNfbHVtYTsKIGZsb2F0IGVmZmVjdGl2ZV9sYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNf
Y2hyb21hOwogZmxvYXQgZWZmZWN0aXZlX2RldGxiX2xpbmVzX2x1bWE7CiBmbG9hdCBlZmZlY3Rp
dmVfZGV0bGJfbGluZXNfY2hyb21hOwogZmxvYXQgcHJvamVjdGVkX2RjZmNsa19kZWVwX3NsZWVw
OwogZmxvYXQgbWV0YV9yZXFfaGVpZ2h0X3k7CiBmbG9hdCBtZXRhX3JlcV93aWR0aF95OwogZmxv
YXQgbWV0YV9zdXJmYWNlX3dpZHRoX3k7CiBmbG9hdCBtZXRhX3N1cmZhY2VfaGVpZ2h0X3k7CiBm
bG9hdCBtZXRhX3B0ZV9ieXRlc19wZXJfZnJhbWVfeTsKIGZsb2F0IG1ldGFfcm93X2J5dGVzX3k7
CiBmbG9hdCBtYWNyb190aWxlX2Jsb2NrX3NpemVfYnl0ZXNfeTsKIGZsb2F0IG1hY3JvX3RpbGVf
YmxvY2tfaGVpZ2h0X3k7CiBmbG9hdCBkYXRhX3B0ZV9yZXFfaGVpZ2h0X3k7CiBmbG9hdCBkYXRh
X3B0ZV9yZXFfd2lkdGhfeTsKIGZsb2F0IGRwdGVfYnl0ZXNfcGVyX3Jvd195OwogZmxvYXQgbWV0
YV9yZXFfaGVpZ2h0X2M7CiBmbG9hdCBtZXRhX3JlcV93aWR0aF9jOwogZmxvYXQgbWV0YV9zdXJm
YWNlX3dpZHRoX2M7CiBmbG9hdCBtZXRhX3N1cmZhY2VfaGVpZ2h0X2M7CiBmbG9hdCBtZXRhX3B0
ZV9ieXRlc19wZXJfZnJhbWVfYzsKIGZsb2F0IG1ldGFfcm93X2J5dGVzX2M7CiBmbG9hdCBtYWNy
b190aWxlX2Jsb2NrX3NpemVfYnl0ZXNfYzsKIGZsb2F0IG1hY3JvX3RpbGVfYmxvY2tfaGVpZ2h0
X2M7CiBmbG9hdCBtYWNyb190aWxlX2Jsb2NrX3dpZHRoX2M7CiBmbG9hdCBkYXRhX3B0ZV9yZXFf
aGVpZ2h0X2M7CiBmbG9hdCBkYXRhX3B0ZV9yZXFfd2lkdGhfYzsKIGZsb2F0IGRwdGVfYnl0ZXNf
cGVyX3Jvd19jOwogZmxvYXQgdl9pbml0X3k7CiBmbG9hdCBtYXhfcGFydGlhbF9zd195OwogZmxv
YXQgdl9pbml0X2M7CiBmbG9hdCBtYXhfcGFydGlhbF9zd19jOwogZmxvYXQgZHN0X3hfYWZ0ZXJf
c2NhbGVyOwogZmxvYXQgZHN0X3lfYWZ0ZXJfc2NhbGVyOwogZmxvYXQgdGltZV9jYWxjOwogZmxv
YXQgdl91cGRhdGVfb2Zmc2V0WzUgKyAxXVsyXTsKIGZsb2F0IHRvdGFsX3JlcGVhdGVyX2RlbGF5
OwogZmxvYXQgdl91cGRhdGVfd2lkdGhbNSArIDFdWzJdOwogZmxvYXQgdl9yZWFkeV9vZmZzZXRb
NSArIDFdWzJdOwogZmxvYXQgdGltZV9zZXR1cDsKIGZsb2F0IGV4dHJhX2xhdGVuY3k7CiBmbG9h
dCBtYXhpbXVtX3ZzdGFydHVwOwogZmxvYXQgYndfYXZhaWxhYmxlX2Zvcl9pbW1lZGlhdGVfZmxp
cDsKIGZsb2F0IHRvdGFsX2ltbWVkaWF0ZV9mbGlwX2J5dGVzWzUgKyAxXTsKIGZsb2F0IHRpbWVf
Zm9yX21ldGFfcHRlX3dpdGhfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB0aW1lX2Zvcl9tZXRhX3B0
ZV93aXRob3V0X2ltbWVkaWF0ZV9mbGlwOwogZmxvYXQgdGltZV9mb3JfbWV0YV9hbmRfZHB0ZV9y
b3dfd2l0aF9pbW1lZGlhdGVfZmxpcDsKIGZsb2F0IHRpbWVfZm9yX21ldGFfYW5kX2RwdGVfcm93
X3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCBsaW5lX3RpbWVzX3RvX3JlcXVlc3RfcHJl
ZmV0Y2hfcGl4ZWxfZGF0YV93aXRoX2ltbWVkaWF0ZV9mbGlwOwogZmxvYXQgbGluZV90aW1lc190
b19yZXF1ZXN0X3ByZWZldGNoX3BpeGVsX2RhdGFfd2l0aG91dF9pbW1lZGlhdGVfZmxpcDsKIGZs
b2F0IG1heGltdW1fcmVhZF9iYW5kd2lkdGhfd2l0aF9wcmVmZXRjaF93aXRoX2ltbWVkaWF0ZV9m
bGlwOwogZmxvYXQgbWF4aW11bV9yZWFkX2JhbmR3aWR0aF93aXRoX3ByZWZldGNoX3dpdGhvdXRf
aW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB2b2x0YWdlX2xldmVsX3dpdGhfaW1tZWRpYXRlX2ZsaXA7
CiBmbG9hdCB2b2x0YWdlX2xldmVsX3dpdGhvdXRfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB0b3Rh
bF9udW1iZXJfb2ZfYWN0aXZlX2RwcF9wZXJfcmF0aW9bMSArIDFdOwogZmxvYXQgYnl0ZV9wZXJf
cGl4X2RldHk7CiBmbG9hdCBieXRlX3Blcl9waXhfZGV0YzsKIGZsb2F0IHJlYWQyNTZfYnl0ZXNf
YmxvY2tfaGVpZ2h0X3k7CiBmbG9hdCByZWFkMjU2X2J5dGVzX2Jsb2NrX3dpZHRoX3k7CiBmbG9h
dCByZWFkMjU2X2J5dGVzX2Jsb2NrX2hlaWdodF9jOwogZmxvYXQgcmVhZDI1Nl9ieXRlc19ibG9j
a193aWR0aF9jOwogZmxvYXQgbWF4aW11bV9zd2F0aF9oZWlnaHRfeTsKIGZsb2F0IG1heGltdW1f
c3dhdGhfaGVpZ2h0X2M7CiBmbG9hdCBtaW5pbXVtX3N3YXRoX2hlaWdodF95OwogZmxvYXQgbWlu
aW11bV9zd2F0aF9oZWlnaHRfYzsKIGZsb2F0IHN3YXRoX3dpZHRoOwogZmxvYXQgcHJlZmV0Y2hf
YmFuZHdpZHRoWzUgKyAxXTsKIGZsb2F0IHZfaW5pdF9wcmVfZmlsbF95WzUgKyAxXTsKIGZsb2F0
IHZfaW5pdF9wcmVfZmlsbF9jWzUgKyAxXTsKIGZsb2F0IG1heF9udW1fc3dhdGhfeVs1ICsgMV07
CiBmbG9hdCBtYXhfbnVtX3N3YXRoX2NbNSArIDFdOwogZmxvYXQgcHJlZmlsbF95WzUgKyAxXTsK
IGZsb2F0IHByZWZpbGxfY1s1ICsgMV07CiBmbG9hdCB2X3N0YXJ0dXBbNSArIDFdOwogZW51bSBk
Y25fYndfZGVmcyBhbGxvd19kcmFtX2Nsb2NrX2NoYW5nZV9kdXJpbmdfdmJsYW5rWzUgKyAxXTsK
IGZsb2F0IGFsbG93X2RyYW1fc2VsZl9yZWZyZXNoX2R1cmluZ192YmxhbmtbNSArIDFdOwogZmxv
YXQgdl9yYXRpb19wcmVmZXRjaF95WzUgKyAxXTsKIGZsb2F0IHZfcmF0aW9fcHJlZmV0Y2hfY1s1
ICsgMV07CiBmbG9hdCBkZXN0aW5hdGlvbl9saW5lc19mb3JfcHJlZmV0Y2hbNSArIDFdOwogZmxv
YXQgZGVzdGluYXRpb25fbGluZXNfdG9fcmVxdWVzdF92bV9pbnZfYmxhbmtbNSArIDFdOwogZmxv
YXQgZGVzdGluYXRpb25fbGluZXNfdG9fcmVxdWVzdF9yb3dfaW5fdmJsYW5rWzUgKyAxXTsKIGZs
b2F0IG1pbl90dHV2X2JsYW5rWzUgKyAxXTsKIGZsb2F0IGJ5dGVfcGVyX3BpeGVsX2RldHlbNSAr
IDFdOwogZmxvYXQgYnl0ZV9wZXJfcGl4ZWxfZGV0Y1s1ICsgMV07CiBmbG9hdCBzd2F0aF93aWR0
aF95WzUgKyAxXTsKIGZsb2F0IGxpbmVzX2luX2RldHlbNSArIDFdOwogZmxvYXQgbGluZXNfaW5f
ZGV0eV9yb3VuZGVkX2Rvd25fdG9fc3dhdGhbNSArIDFdOwogZmxvYXQgbGluZXNfaW5fZGV0Y1s1
ICsgMV07CiBmbG9hdCBsaW5lc19pbl9kZXRjX3JvdW5kZWRfZG93bl90b19zd2F0aFs1ICsgMV07
CiBmbG9hdCBmdWxsX2RldF9idWZmZXJpbmdfdGltZV95WzUgKyAxXTsKIGZsb2F0IGZ1bGxfZGV0
X2J1ZmZlcmluZ190aW1lX2NbNSArIDFdOwogZmxvYXQgYWN0aXZlX2RyYW1fY2xvY2tfY2hhbmdl
X2xhdGVuY3lfbWFyZ2luWzUgKyAxXTsKIGZsb2F0IHZfYmxhbmtfZHJhbV9jbG9ja19jaGFuZ2Vf
bGF0ZW5jeV9tYXJnaW5bNSArIDFdOwogZmxvYXQgZGNmY2xrX2RlZXBfc2xlZXBfcGVyX3BsYW5l
WzUgKyAxXTsKIGZsb2F0IHJlYWRfYmFuZHdpZHRoX3BsYW5lX2x1bWFbNSArIDFdOwogZmxvYXQg
cmVhZF9iYW5kd2lkdGhfcGxhbmVfY2hyb21hWzUgKyAxXTsKIGZsb2F0IGRpc3BsYXlfcGlwZV9s
aW5lX2RlbGl2ZXJ5X3RpbWVfbHVtYVs1ICsgMV07CiBmbG9hdCBkaXNwbGF5X3BpcGVfbGluZV9k
ZWxpdmVyeV90aW1lX2Nocm9tYVs1ICsgMV07CiBmbG9hdCBkaXNwbGF5X3BpcGVfbGluZV9kZWxp
dmVyeV90aW1lX2x1bWFfcHJlZmV0Y2hbNSArIDFdOwogZmxvYXQgZGlzcGxheV9waXBlX2xpbmVf
ZGVsaXZlcnlfdGltZV9jaHJvbWFfcHJlZmV0Y2hbNSArIDFdOwogZmxvYXQgcGl4ZWxfcHRlX2J5
dGVzX3Blcl9yb3dbNSArIDFdOwogZmxvYXQgbWV0YV9wdGVfYnl0ZXNfZnJhbWVbNSArIDFdOwog
ZmxvYXQgbWV0YV9yb3dfYnl0ZVs1ICsgMV07CiBmbG9hdCBwcmVmZXRjaF9zb3VyY2VfbGluZXNf
eVs1ICsgMV07CiBmbG9hdCBwcmVmZXRjaF9zb3VyY2VfbGluZXNfY1s1ICsgMV07CiBmbG9hdCBw
c2NsX3Rocm91Z2hwdXRbNSArIDFdOwogZmxvYXQgcHNjbF90aHJvdWdocHV0X2Nocm9tYVs1ICsg
MV07CiBmbG9hdCBvdXRwdXRfYnBwaGRtaVs1ICsgMV07CiBmbG9hdCBvdXRwdXRfYnBwZHA0X2xh
bmVfaGJyWzUgKyAxXTsKIGZsb2F0IG91dHB1dF9icHBkcDRfbGFuZV9oYnIyWzUgKyAxXTsKIGZs
b2F0IG91dHB1dF9icHBkcDRfbGFuZV9oYnIzWzUgKyAxXTsKIGZsb2F0IG1heF92c3RhcnR1cF9s
aW5lc1s1ICsgMV07CiBmbG9hdCBkaXNwY2xrX3dpdGhfcmFtcGluZzsKIGZsb2F0IGRpc3BjbGtf
d2l0aG91dF9yYW1waW5nOwogZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9kcHBfbHVtYTsKIGZs
b2F0IGRwcGNsa191c2luZ19zaW5nbGVfZHBwOwogZmxvYXQgZHBwY2xrX3VzaW5nX3NpbmdsZV9k
cHBfY2hyb21hOwogZW51bSBkY25fYndfZGVmcyBvZG1fY2FwYWJsZTsKIGZsb2F0IGRpc3BjbGs7
CiBmbG9hdCBkcHBjbGs7CiBmbG9hdCByZXR1cm5fYmFuZHdpZHRoX3RvX2RjbjsKIGVudW0gZGNu
X2J3X2RlZnMgZGNjX2VuYWJsZWRfYW55X3BsYW5lOwogZmxvYXQgcmV0dXJuX2J3OwogZmxvYXQg
Y3JpdGljYWxfY29tcHJlc3Npb247CiBmbG9hdCB0b3RhbF9kYXRhX3JlYWRfYmFuZHdpZHRoOwog
ZmxvYXQgdG90YWxfYWN0aXZlX2RwcDsKIGZsb2F0IHRvdGFsX2RjY19hY3RpdmVfZHBwOwogZmxv
YXQgdXJnZW50X3JvdW5kX3RyaXBfYW5kX291dF9vZl9vcmRlcl9sYXRlbmN5OwogZmxvYXQgbGFz
dF9waXhlbF9vZl9saW5lX2V4dHJhX3dhdGVybWFyazsKIGZsb2F0IGRhdGFfZmFicmljX2xpbmVf
ZGVsaXZlcnlfdGltZV9sdW1hOwogZmxvYXQgZGF0YV9mYWJyaWNfbGluZV9kZWxpdmVyeV90aW1l
X2Nocm9tYTsKIGZsb2F0IHVyZ2VudF9leHRyYV9sYXRlbmN5OwogZmxvYXQgdXJnZW50X3dhdGVy
bWFyazsKIGZsb2F0IHB0ZW1ldGFfdXJnZW50X3dhdGVybWFyazsKIGZsb2F0IGRyYW1fY2xvY2tf
Y2hhbmdlX3dhdGVybWFyazsKIGZsb2F0IHRvdGFsX2FjdGl2ZV93cml0ZWJhY2s7CiBmbG9hdCB3
cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2Vfd2F0ZXJtYXJrOwogZmxvYXQgbWluX2Z1bGxfZGV0
X2J1ZmZlcmluZ190aW1lOwogZmxvYXQgZnJhbWVfdGltZV9mb3JfbWluX2Z1bGxfZGV0X2J1ZmZl
cmluZ190aW1lOwogZmxvYXQgYXZlcmFnZV9yZWFkX2JhbmR3aWR0aF9nYnl0ZV9wZXJfc2Vjb25k
OwogZmxvYXQgcGFydF9vZl9idXJzdF90aGF0X2ZpdHNfaW5fcm9iOwogZmxvYXQgc3R1dHRlcl9i
dXJzdF90aW1lOwogZmxvYXQgc3R1dHRlcl9lZmZpY2llbmN5X25vdF9pbmNsdWRpbmdfdmJsYW5r
OwogZmxvYXQgc21hbGxlc3RfdmJsYW5rOwogZmxvYXQgdl9ibGFua190aW1lOwogZmxvYXQgc3R1
dHRlcl9lZmZpY2llbmN5OwogZmxvYXQgZGNmX2Nsa19kZWVwX3NsZWVwOwogZmxvYXQgc3R1dHRl
cl9leGl0X3dhdGVybWFyazsKIGZsb2F0IHN0dXR0ZXJfZW50ZXJfcGx1c19leGl0X3dhdGVybWFy
azsKIGZsb2F0IGVmZmVjdGl2ZV9kZXRfcGx1c19sYl9saW5lc19sdW1hOwogZmxvYXQgdXJnZW50
X2xhdGVuY3lfc3VwcG9ydF91c19sdW1hOwogZmxvYXQgZWZmZWN0aXZlX2RldF9wbHVzX2xiX2xp
bmVzX2Nocm9tYTsKIGZsb2F0IHVyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXNfY2hyb21hOwogZmxv
YXQgbWluX3VyZ2VudF9sYXRlbmN5X3N1cHBvcnRfdXM7CiBmbG9hdCBub25fdXJnZW50X2xhdGVu
Y3lfdG9sZXJhbmNlOwogZmxvYXQgYmxvY2tfaGVpZ2h0MjU2X2J5dGVzX3k7CiBmbG9hdCBibG9j
a19oZWlnaHQyNTZfYnl0ZXNfYzsKIGZsb2F0IG1ldGFfcmVxdWVzdF93aWR0aF95OwogZmxvYXQg
bWV0YV9zdXJmX3dpZHRoX3k7CiBmbG9hdCBtZXRhX3N1cmZfaGVpZ2h0X3k7CiBmbG9hdCBtZXRh
X3B0ZV9ieXRlc19mcmFtZV95OwogZmxvYXQgbWV0YV9yb3dfYnl0ZV95OwogZmxvYXQgbWFjcm9f
dGlsZV9zaXplX2J5dGVfeTsKIGZsb2F0IG1hY3JvX3RpbGVfaGVpZ2h0X3k7CiBmbG9hdCBwaXhl
bF9wdGVfcmVxX2hlaWdodF95OwogZmxvYXQgcGl4ZWxfcHRlX3JlcV93aWR0aF95OwogZmxvYXQg
cGl4ZWxfcHRlX2J5dGVzX3Blcl9yb3dfeTsKIGZsb2F0IG1ldGFfcmVxdWVzdF93aWR0aF9jOwog
ZmxvYXQgbWV0YV9zdXJmX3dpZHRoX2M7CiBmbG9hdCBtZXRhX3N1cmZfaGVpZ2h0X2M7CiBmbG9h
dCBtZXRhX3B0ZV9ieXRlc19mcmFtZV9jOwogZmxvYXQgbWV0YV9yb3dfYnl0ZV9jOwogZmxvYXQg
bWFjcm9fdGlsZV9zaXplX2J5dGVzX2M7CiBmbG9hdCBtYWNyb190aWxlX2hlaWdodF9jOwogZmxv
YXQgcGl4ZWxfcHRlX3JlcV9oZWlnaHRfYzsKIGZsb2F0IHBpeGVsX3B0ZV9yZXFfd2lkdGhfYzsK
IGZsb2F0IHBpeGVsX3B0ZV9ieXRlc19wZXJfcm93X2M7CiBmbG9hdCBtYXhfcGFydGlhbF9zd2F0
aF95OwogZmxvYXQgbWF4X3BhcnRpYWxfc3dhdGhfYzsKIGZsb2F0IHRfY2FsYzsKIGZsb2F0IG5l
eHRfcHJlZmV0Y2hfbW9kZTsKIGZsb2F0IHZfc3RhcnR1cF9saW5lczsKIGVudW0gZGNuX2J3X2Rl
ZnMgcGxhbmVzX3dpdGhfcm9vbV90b19pbmNyZWFzZV92c3RhcnR1cF9wcmVmZXRjaF9id19sZXNz
X3RoYW5fYWN0aXZlX2J3OwogZW51bSBkY25fYndfZGVmcyBwbGFuZXNfd2l0aF9yb29tX3RvX2lu
Y3JlYXNlX3ZzdGFydHVwX3ZyYXRpb19wcmVmZXRjaF9tb3JlX3RoYW40OwogZW51bSBkY25fYndf
ZGVmcyBwbGFuZXNfd2l0aF9yb29tX3RvX2luY3JlYXNlX3ZzdGFydHVwX2Rlc3RpbmF0aW9uX2xp
bmVfdGltZXNfZm9yX3ByZWZldGNoX2xlc3NfdGhhbjI7CiBlbnVtIGRjbl9id19kZWZzIHZfcmF0
aW9fcHJlZmV0Y2hfbW9yZV90aGFuNDsKIGVudW0gZGNuX2J3X2RlZnMgZGVzdGluYXRpb25fbGlu
ZV90aW1lc19mb3JfcHJlZmV0Y2hfbGVzc190aGFuMjsKIGZsb2F0IHByZWZldGNoX21vZGU7CiBm
bG9hdCBkc3R4X2FmdGVyX3NjYWxlcjsKIGZsb2F0IGRzdHlfYWZ0ZXJfc2NhbGVyOwogZmxvYXQg
dl91cGRhdGVfb2Zmc2V0X3BpeFs1ICsgMV07CiBmbG9hdCB0b3RhbF9yZXBlYXRlcl9kZWxheV90
aW1lOwogZmxvYXQgdl91cGRhdGVfd2lkdGhfcGl4WzUgKyAxXTsKIGZsb2F0IHZfcmVhZHlfb2Zm
c2V0X3BpeFs1ICsgMV07CiBmbG9hdCB0X3NldHVwOwogZmxvYXQgdF93YWl0OwogZmxvYXQgYmFu
ZHdpZHRoX2F2YWlsYWJsZV9mb3JfaW1tZWRpYXRlX2ZsaXA7CiBmbG9hdCB0b3RfaW1tZWRpYXRl
X2ZsaXBfYnl0ZXM7CiBmbG9hdCBtYXhfcmRfYmFuZHdpZHRoOwogZmxvYXQgdGltZV9mb3JfZmV0
Y2hpbmdfbWV0YV9wdGU7CiBmbG9hdCB0aW1lX2Zvcl9mZXRjaGluZ19yb3dfaW5fdmJsYW5rOwog
ZmxvYXQgbGluZXNfdG9fcmVxdWVzdF9wcmVmZXRjaF9waXhlbF9kYXRhOwogZmxvYXQgcmVxdWly
ZWRfcHJlZmV0Y2hfcGl4X2RhdGFfYnc7CiBlbnVtIGRjbl9id19kZWZzIHByZWZldGNoX21vZGVf
c3VwcG9ydGVkOwogZmxvYXQgYWN0aXZlX2RwX3BzOwogZmxvYXQgbGJfbGF0ZW5jeV9oaWRpbmdf
c291cmNlX2xpbmVzX3k7CiBmbG9hdCBsYl9sYXRlbmN5X2hpZGluZ19zb3VyY2VfbGluZXNfYzsK
IGZsb2F0IGVmZmVjdGl2ZV9sYl9sYXRlbmN5X2hpZGluZ195OwogZmxvYXQgZWZmZWN0aXZlX2xi
X2xhdGVuY3lfaGlkaW5nX2M7CiBmbG9hdCBkcHBfb3V0cHV0X2J1ZmZlcl9saW5lc195OwogZmxv
YXQgZHBwX291dHB1dF9idWZmZXJfbGluZXNfYzsKIGZsb2F0IGRwcG9wcF9idWZmZXJpbmdfeTsK
IGZsb2F0IG1heF9kZXRfYnVmZmVyaW5nX3RpbWVfeTsKIGZsb2F0IGFjdGl2ZV9kcmFtX2Nsb2Nr
X2NoYW5nZV9sYXRlbmN5X21hcmdpbl95OwogZmxvYXQgZHBwb3BwX2J1ZmZlcmluZ19jOwogZmxv
YXQgbWF4X2RldF9idWZmZXJpbmdfdGltZV9jOwogZmxvYXQgYWN0aXZlX2RyYW1fY2xvY2tfY2hh
bmdlX2xhdGVuY3lfbWFyZ2luX2M7CiBmbG9hdCB3cml0ZWJhY2tfZHJhbV9jbG9ja19jaGFuZ2Vf
bGF0ZW5jeV9tYXJnaW47CiBmbG9hdCBtaW5fYWN0aXZlX2RyYW1fY2xvY2tfY2hhbmdlX21hcmdp
bjsKIGZsb2F0IHZfYmxhbmtfb2ZfbWluX2FjdGl2ZV9kcmFtX2Nsb2NrX2NoYW5nZV9tYXJnaW47
CiBmbG9hdCBzZWNvbmRfbWluX2FjdGl2ZV9kcmFtX2Nsb2NrX2NoYW5nZV9tYXJnaW47CiBmbG9h
dCBtaW5fdmJsYW5rX2RyYW1fY2xvY2tfY2hhbmdlX21hcmdpbjsKIGZsb2F0IGRyYW1fY2xvY2tf
Y2hhbmdlX21hcmdpbjsKIGZsb2F0IGRyYW1fY2xvY2tfY2hhbmdlX3N1cHBvcnQ7CiBmbG9hdCB3
cl9iYW5kd2lkdGg7CiBmbG9hdCBtYXhfdXNlZF9idzsKfTsKCnN0cnVjdCBkY25fc29jX2JvdW5k
aW5nX2JveCB7CiBmbG9hdCBzcl9leGl0X3RpbWU7CiBmbG9hdCBzcl9lbnRlcl9wbHVzX2V4aXRf
dGltZTsKIGZsb2F0IHVyZ2VudF9sYXRlbmN5OwogZmxvYXQgd3JpdGVfYmFja19sYXRlbmN5Owog
ZmxvYXQgcGVyY2VudF9vZl9pZGVhbF9kcmFtYndfcmVjZWl2ZWRfYWZ0ZXJfdXJnX2xhdGVuY3k7
CiBpbnQgbWF4X3JlcXVlc3Rfc2l6ZTsKIGZsb2F0IGRjZmNsa3ZfbWF4MHA5OwogZmxvYXQgZGNm
Y2xrdl9ub20wcDg7CiBmbG9hdCBkY2ZjbGt2X21pZDBwNzI7CiBmbG9hdCBkY2ZjbGt2X21pbjBw
NjU7CiBmbG9hdCBtYXhfZGlzcGNsa192bWF4MHA5OwogZmxvYXQgbWF4X2Rpc3BjbGtfdm1pZDBw
NzI7CiBmbG9hdCBtYXhfZGlzcGNsa192bm9tMHA4OwogZmxvYXQgbWF4X2Rpc3BjbGtfdm1pbjBw
NjU7CiBmbG9hdCBtYXhfZHBwY2xrX3ZtYXgwcDk7CiBmbG9hdCBtYXhfZHBwY2xrX3Zub20wcDg7
CiBmbG9hdCBtYXhfZHBwY2xrX3ZtaWQwcDcyOwogZmxvYXQgbWF4X2RwcGNsa192bWluMHA2NTsK
IGZsb2F0IHNvY2NsazsKIGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm1heDBwOTsK
IGZsb2F0IGZhYnJpY19hbmRfZHJhbV9iYW5kd2lkdGhfdm5vbTBwODsKIGZsb2F0IGZhYnJpY19h
bmRfZHJhbV9iYW5kd2lkdGhfdm1pZDBwNzI7CiBmbG9hdCBmYWJyaWNfYW5kX2RyYW1fYmFuZHdp
ZHRoX3ZtaW4wcDY1OwogZmxvYXQgcGh5Y2xrdl9tYXgwcDk7CiBmbG9hdCBwaHljbGt2X25vbTBw
ODsKIGZsb2F0IHBoeWNsa3ZfbWlkMHA3MjsKIGZsb2F0IHBoeWNsa3ZfbWluMHA2NTsKIGZsb2F0
IGRvd25zcHJlYWRpbmc7CiBpbnQgcm91bmRfdHJpcF9waW5nX2xhdGVuY3lfY3ljbGVzOwogaW50
IHVyZ2VudF9vdXRfb2Zfb3JkZXJfcmV0dXJuX3Blcl9jaGFubmVsOwogaW50IG51bWJlcl9vZl9j
aGFubmVsczsKIGludCB2bW1fcGFnZV9zaXplOwogZmxvYXQgZHJhbV9jbG9ja19jaGFuZ2VfbGF0
ZW5jeTsKIGludCByZXR1cm5fYnVzX3dpZHRoOwogZmxvYXQgcGVyY2VudF9kaXNwX2J3X2xpbWl0
Owp9OwpleHRlcm4gY29uc3Qgc3RydWN0IGRjbl9zb2NfYm91bmRpbmdfYm94IGRjbjEwX3NvY19k
ZWZhdWx0czsKCnN0cnVjdCBkY25faXBfcGFyYW1zIHsKIGZsb2F0IHJvYl9idWZmZXJfc2l6ZV9p
bl9rYnl0ZTsKIGZsb2F0IGRldF9idWZmZXJfc2l6ZV9pbl9rYnl0ZTsKIGZsb2F0IGRwcF9vdXRw
dXRfYnVmZmVyX3BpeGVsczsKIGZsb2F0IG9wcF9vdXRwdXRfYnVmZmVyX2xpbmVzOwogZmxvYXQg
cGl4ZWxfY2h1bmtfc2l6ZV9pbl9rYnl0ZTsKIGVudW0gZGNuX2J3X2RlZnMgcHRlX2VuYWJsZTsK
IGludCBwdGVfY2h1bmtfc2l6ZTsKIGludCBtZXRhX2NodW5rX3NpemU7CiBpbnQgd3JpdGViYWNr
X2NodW5rX3NpemU7CiBlbnVtIGRjbl9id19kZWZzIG9kbV9jYXBhYmlsaXR5OwogZW51bSBkY25f
YndfZGVmcyBkc2NfY2FwYWJpbGl0eTsKIGludCBsaW5lX2J1ZmZlcl9zaXplOwogaW50IG1heF9s
aW5lX2J1ZmZlcl9saW5lczsKIGVudW0gZGNuX2J3X2RlZnMgaXNfbGluZV9idWZmZXJfYnBwX2Zp
eGVkOwogaW50IGxpbmVfYnVmZmVyX2ZpeGVkX2JwcDsKIGludCB3cml0ZWJhY2tfbHVtYV9idWZm
ZXJfc2l6ZTsKIGludCB3cml0ZWJhY2tfY2hyb21hX2J1ZmZlcl9zaXplOwogaW50IG1heF9udW1f
ZHBwOwogaW50IG1heF9udW1fd3JpdGViYWNrOwogaW50IG1heF9kY2h1Yl90b3BzY2xfdGhyb3Vn
aHB1dDsKIGludCBtYXhfcHNjbF90b2xiX3Rocm91Z2hwdXQ7CiBpbnQgbWF4X2xiX3RvdnNjbF90
aHJvdWdocHV0OwogaW50IG1heF92c2NsX3RvaHNjbF90aHJvdWdocHV0OwogZmxvYXQgbWF4X2hz
Y2xfcmF0aW87CiBmbG9hdCBtYXhfdnNjbF9yYXRpbzsKIGludCBtYXhfaHNjbF90YXBzOwogaW50
IG1heF92c2NsX3RhcHM7CiBpbnQgcHRlX2J1ZmZlcl9zaXplX2luX3JlcXVlc3RzOwogZmxvYXQg
ZGlzcGNsa19yYW1waW5nX21hcmdpbjsKIGZsb2F0IHVuZGVyX3NjYW5fZmFjdG9yOwogaW50IG1h
eF9pbnRlcl9kY25fdGlsZV9yZXBlYXRlcnM7CiBlbnVtIGRjbl9id19kZWZzIGNhbl92c3RhcnR1
cF9saW5lc19leGNlZWRfdnN5bmNfcGx1c19iYWNrX3BvcmNoX2xpbmVzX21pbnVzX29uZTsKIGVu
dW0gZGNuX2J3X2RlZnMgYnVnX2ZvcmNpbmdfbHVtYV9hbmRfY2hyb21hX3JlcXVlc3RfdG9fc2Ft
ZV9zaXplX2ZpeGVkOwogaW50IGRjZmNsa19jc3RhdGVfbGF0ZW5jeTsKfTsKZXh0ZXJuIGNvbnN0
IHN0cnVjdCBkY25faXBfcGFyYW1zIGRjbjEwX2lwX2RlZmF1bHRzOwoKYm9vbCBkY25fdmFsaWRh
dGVfYmFuZHdpZHRoKAogIHN0cnVjdCBkYyAqZGMsCiAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0
LAogIGJvb2wgZmFzdF92YWxpZGF0ZSk7Cgp1bnNpZ25lZCBpbnQgZGNuX2ZpbmRfZGNmY2xrX3N1
aXRzX2FsbCgKIGNvbnN0IHN0cnVjdCBkYyAqZGMsCiBzdHJ1Y3QgZGNfY2xvY2tzICpjbG9ja3Mp
OwoKdm9pZCBkY25fYndfdXBkYXRlX2Zyb21fcHBsaWIoc3RydWN0IGRjICpkYyk7CnZvaWQgZGNu
X2J3X25vdGlmeV9wcGxpYl9vZl93bV9yYW5nZXMoc3RydWN0IGRjICpkYyk7CnZvaWQgZGNuX2J3
X3N5bmNfY2FsY3NfYW5kX2RtbChzdHJ1Y3QgZGMgKmRjKTsKCmVudW0gc291cmNlX21hY3JvX3Rp
bGVfc2l6ZSBzd2l6emxlX21vZGVfdG9fbWFjcm9fdGlsZV9zaXplKGVudW0gc3dpenpsZV9tb2Rl
X3ZhbHVlcyBzd19tb2RlKTsKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVkZS9kZGNfc2VydmljZV90eXBlcy5oIiAxCiMgMzcgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2RkY19zZXJ2aWNl
X3R5cGVzLmgiCmVudW0gZGRjX3Jlc3VsdCB7CiBERENfUkVTVUxUX1VOS05PV04gPSAwLAogRERD
X1JFU1VMVF9TVUNFU1NGVUxMLAogRERDX1JFU1VMVF9GQUlMRURfQ0hBTk5FTF9CVVNZLAogRERD
X1JFU1VMVF9GQUlMRURfVElNRU9VVCwKIEREQ19SRVNVTFRfRkFJTEVEX1BST1RPQ09MX0VSUk9S
LAogRERDX1JFU1VMVF9GQUlMRURfTkFDSywKIEREQ19SRVNVTFRfRkFJTEVEX0lOQ09NUExFVEUs
CiBERENfUkVTVUxUX0ZBSUxFRF9PUEVSQVRJT04sCiBERENfUkVTVUxUX0ZBSUxFRF9JTlZBTElE
X09QRVJBVElPTiwKIEREQ19SRVNVTFRfRkFJTEVEX0JVRkZFUl9PVkVSRkxPVywKIEREQ19SRVNV
TFRfRkFJTEVEX0hQRF9ESVNDT04KfTsKCmVudW0gZGRjX3NlcnZpY2VfdHlwZSB7CiBERENfU0VS
VklDRV9UWVBFX0NPTk5FQ1RPUiwKIEREQ19TRVJWSUNFX1RZUEVfRElTUExBWV9QT1JUX01TVCwK
fTsKCgoKCnN0cnVjdCBkaXNwbGF5X3NpbmtfY2FwYWJpbGl0eSB7CgogZW51bSBkaXNwbGF5X2Rv
bmdsZV90eXBlIGRvbmdsZV90eXBlOwoKCgoKCiB1aW50MzJfdCBkb3duc3RybV9zaW5rX2NvdW50
OwoKCiBib29sIGRvd25zdHJtX3NpbmtfY291bnRfdmFsaWQ7CgoKIHVpbnQzMl90IGFkZGl0aW9u
YWxfYXVkaW9fZGVsYXk7CgogdWludDMyX3QgYXVkaW9fbGF0ZW5jeTsKCiB1aW50MzJfdCB2aWRl
b19sYXRlbmN5X2ludGVybGFjZTsKCiB1aW50MzJfdCB2aWRlb19sYXRlbmN5X3Byb2dyZXNzaXZl
OwoKIHVpbnQzMl90IG1heF9oZG1pX3BpeGVsX2Nsb2NrOwoKIGVudW0gZGNfY29sb3JfZGVwdGgg
bWF4X2hkbWlfZGVlcF9jb2xvcjsKCgoKCgogYm9vbCBzc19zdXBwb3J0ZWQ7CgogdWludDMyX3Qg
ZHBfbGlua19sYW5lX2NvdW50OwogdWludDMyX3QgZHBfbGlua19yYXRlOwogdWludDMyX3QgZHBf
bGlua19zcGVhZDsKCgoKIGJvb2wgaXNfZHBfaGRtaV9zM2RfY29udmVydGVyOwoKCiBib29sIGlz
X2VkcF9zaW5rX2NhcF92YWxpZDsKCiBlbnVtIGRkY190cmFuc2FjdGlvbl90eXBlIHRyYW5zYWN0
aW9uX3R5cGU7CiBlbnVtIHNpZ25hbF90eXBlIHNpZ25hbDsKfTsKCnN0cnVjdCBhdl9zeW5jX2Rh
dGEgewogdWludDhfdCBhdl9ncmFudWxhcml0eTsKIHVpbnQ4X3QgYXVkX2RlY19sYXQxOwogdWlu
dDhfdCBhdWRfZGVjX2xhdDI7CiB1aW50OF90IGF1ZF9wcF9sYXQxOwogdWludDhfdCBhdWRfcHBf
bGF0MjsKIHVpbnQ4X3QgdmlkX2ludGVyX2xhdDsKIHVpbnQ4X3QgdmlkX3Byb2dfbGF0OwogdWlu
dDhfdCBhdWRfZGVsX2luczE7CiB1aW50OF90IGF1ZF9kZWxfaW5zMjsKIHVpbnQ4X3QgYXVkX2Rl
bF9pbnMzOwp9OwoKCnN0YXRpYyBjb25zdCB1aW50OF90IERQX1ZHQV9MVkRTX0NPTlZFUlRFUl9J
RF8yW10gPSAic2l2YXJUIjsKCnN0YXRpYyBjb25zdCB1aW50OF90IERQX1ZHQV9MVkRTX0NPTlZF
UlRFUl9JRF8zW10gPSAiZG5vbWxBIjsKCnN0YXRpYyBjb25zdCB1aW50OF90IERQX0RWSV9DT05W
RVJURVJfSURfNFtdID0gIm0yRFZJYSI7CiMgMzMgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCgojIDEgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvbWVtX2lucHV0LmgiIDEKIyAzMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5w
dXQuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1s
L2Rpc3BsYXlfbW9kZV9zdHJ1Y3RzLmgiIDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaCIgMgoKc3RydWN0IGRjaHViX2lu
aXRfZGF0YTsKc3RydWN0IGNzdGF0ZV9wc3RhdGVfd2F0ZXJtYXJrc19zdCB7CiB1aW50MzJfdCBj
c3RhdGVfZXhpdF9uczsKIHVpbnQzMl90IGNzdGF0ZV9lbnRlcl9wbHVzX2V4aXRfbnM7CiB1aW50
MzJfdCBwc3RhdGVfY2hhbmdlX25zOwp9OwoKc3RydWN0IGRjbl93YXRlcm1hcmtzIHsKIHVpbnQz
Ml90IHB0ZV9tZXRhX3VyZ2VudF9uczsKIHVpbnQzMl90IHVyZ2VudF9uczsKIHVpbnQzMl90IGZy
YWNfdXJnX2J3X25vbTsKIHVpbnQzMl90IGZyYWNfdXJnX2J3X2ZsaXA7CiBpbnQzMl90IHVyZ2Vu
dF9sYXRlbmN5X25zOwogc3RydWN0IGNzdGF0ZV9wc3RhdGVfd2F0ZXJtYXJrc19zdCBjc3RhdGVf
cHN0YXRlOwp9OwoKc3RydWN0IGRjbl93YXRlcm1hcmtfc2V0IHsKIHN0cnVjdCBkY25fd2F0ZXJt
YXJrcyBhOwogc3RydWN0IGRjbl93YXRlcm1hcmtzIGI7CiBzdHJ1Y3QgZGNuX3dhdGVybWFya3Mg
YzsKIHN0cnVjdCBkY25fd2F0ZXJtYXJrcyBkOwp9OwoKc3RydWN0IGRjZV93YXRlcm1hcmtzIHsK
IGludCBhX21hcms7CiBpbnQgYl9tYXJrOwogaW50IGNfbWFyazsKIGludCBkX21hcms7Cn07Cgpz
dHJ1Y3Qgc3R1dHRlcl9tb2RlcyB7CiBib29sIGVuaGFuY2VkOwogYm9vbCBxdWFkX2RtaWZfYnVm
ZmVyOwogYm9vbCB3YXRlcm1hcmtfbmJfcHN0YXRlOwp9OwoKc3RydWN0IG1lbV9pbnB1dCB7CiBj
b25zdCBzdHJ1Y3QgbWVtX2lucHV0X2Z1bmNzICpmdW5jczsKIHN0cnVjdCBkY19jb250ZXh0ICpj
dHg7CiBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyByZXF1ZXN0X2FkZHJlc3M7CiBzdHJ1Y3QgZGNf
cGxhbmVfYWRkcmVzcyBjdXJyZW50X2FkZHJlc3M7CiBpbnQgaW5zdDsKIHN0cnVjdCBzdHV0dGVy
X21vZGVzIHN0dXR0ZXJfbW9kZTsKfTsKCnN0cnVjdCB2bV9zeXN0ZW1fYXBlcnR1cmVfcGFyYW0g
ewogdW5pb24gbGFyZ2VfaW50ZWdlciBzeXNfZGVmYXVsdDsKIHVuaW9uIGxhcmdlX2ludGVnZXIg
c3lzX2xvdzsKIHVuaW9uIGxhcmdlX2ludGVnZXIgc3lzX2hpZ2g7Cn07CgpzdHJ1Y3Qgdm1fY29u
dGV4dDBfcGFyYW0gewogdW5pb24gbGFyZ2VfaW50ZWdlciBwdGVfYmFzZTsKIHVuaW9uIGxhcmdl
X2ludGVnZXIgcHRlX3N0YXJ0OwogdW5pb24gbGFyZ2VfaW50ZWdlciBwdGVfZW5kOwogdW5pb24g
bGFyZ2VfaW50ZWdlciBmYXVsdF9kZWZhdWx0Owp9OwoKc3RydWN0IG1lbV9pbnB1dF9mdW5jcyB7
CiB2b2lkICgqbWVtX2lucHV0X3NldHVwKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0
LAogICBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9kbGdfcmVnc19zdCAqZGxnX3JlZ3MsCiAgIHN0
cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICp0dHVfcmVncywKICAgc3RydWN0IF92
Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCAqcnFfcmVncywKICAgc3RydWN0IF92Y3NfZHBpX2Rp
c3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCAqcGlwZV9kZXN0KTsKCiB2b2lkICgqZGNjX2NvbnRy
b2wpKHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwgYm9vbCBlbmFibGUsCiAgIGJvb2wgaW5k
ZXBlbmRlbnRfNjRiX2Jsa3MpOwogdm9pZCAoKm1lbV9wcm9ncmFtX3ZpZXdwb3J0KSgKICAgc3Ry
dWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogICBjb25zdCBzdHJ1Y3QgcmVjdCAqdmlld3BvcnQs
CiAgIGNvbnN0IHN0cnVjdCByZWN0ICp2aWV3cG9ydF9jKTsKCiB2b2lkICgqbWVtX2lucHV0X3By
b2dyYW1fZGlzcGxheV9tYXJrcykoCiAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogIHN0
cnVjdCBkY2Vfd2F0ZXJtYXJrcyBuYnAsCiAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXIs
CiAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJfZW50ZXIsCiAgc3RydWN0IGRjZV93YXRl
cm1hcmtzIHVyZ2VudCwKICB1aW50MzJfdCB0b3RhbF9kZXN0X2xpbmVfdGltZV9ucyk7Cgogdm9p
ZCAoKm1lbV9pbnB1dF9wcm9ncmFtX2Nocm9tYV9kaXNwbGF5X21hcmtzKSgKICAgc3RydWN0IG1l
bV9pbnB1dCAqbWVtX2lucHV0LAogICBzdHJ1Y3QgZGNlX3dhdGVybWFya3MgbmJwLAogICBzdHJ1
Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlciwKICAgc3RydWN0IGRjZV93YXRlcm1hcmtzIHVyZ2Vu
dCwKICAgdWludDMyX3QgdG90YWxfZGVzdF9saW5lX3RpbWVfbnMpOwoKIHZvaWQgKCphbGxvY2F0
ZV9tZW1faW5wdXQpKAogIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKICB1aW50MzJfdCBo
X3RvdGFsLAogIHVpbnQzMl90IHZfdG90YWwsCiAgdWludDMyX3QgcGl4X2Nsa19raHosCiAgdWlu
dDMyX3QgdG90YWxfc3RyZWFtc19udW0pOwoKIHZvaWQgKCpmcmVlX21lbV9pbnB1dCkoCiAgc3Ry
dWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogIHVpbnQzMl90IHBhdGhzX251bSk7CgogYm9vbCAo
Km1lbV9pbnB1dF9wcm9ncmFtX3N1cmZhY2VfZmxpcF9hbmRfYWRkcikoCiAgc3RydWN0IG1lbV9p
bnB1dCAqbWVtX2lucHV0LAogIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNz
LAogIGJvb2wgZmxpcF9pbW1lZGlhdGUpOwoKIHZvaWQgKCptZW1faW5wdXRfcHJvZ3JhbV9wdGVf
dm0pKAogIHN0cnVjdCBtZW1faW5wdXQgKm1lbV9pbnB1dCwKICBlbnVtIHN1cmZhY2VfcGl4ZWxf
Zm9ybWF0IGZvcm1hdCwKICB1bmlvbiBkY190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCiAgZW51
bSBkY19yb3RhdGlvbl9hbmdsZSByb3RhdGlvbik7Cgogdm9pZCAoKm1lbV9pbnB1dF9zZXRfdm1f
c3lzdGVtX2FwZXJ0dXJlX3NldHRpbmdzKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0
LAogICBzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJlX3BhcmFtICphcHQpOwoKIHZvaWQgKCptZW1f
aW5wdXRfc2V0X3ZtX2NvbnRleHQwX3NldHRpbmdzKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVt
X2lucHV0LAogICBjb25zdCBzdHJ1Y3Qgdm1fY29udGV4dDBfcGFyYW0gKnZtMCk7Cgogdm9pZCAo
Km1lbV9pbnB1dF9wcm9ncmFtX3N1cmZhY2VfY29uZmlnKSgKICBzdHJ1Y3QgbWVtX2lucHV0ICpt
ZW1faW5wdXQsCiAgZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCiAgdW5pb24gZGNf
dGlsaW5nX2luZm8gKnRpbGluZ19pbmZvLAogIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXpl
LAogIGVudW0gZGNfcm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAgc3RydWN0IGRjX3BsYW5lX2Rj
Y19wYXJhbSAqZGNjLAogIGJvb2wgaG9yaXpvbnRhbF9taXJyb3IpOwoKIGJvb2wgKCptZW1faW5w
dXRfaXNfZmxpcF9wZW5kaW5nKShzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQpOwoKIHZvaWQg
KCptZW1faW5wdXRfdXBkYXRlX2RjaHViKShzdHJ1Y3QgbWVtX2lucHV0ICptZW1faW5wdXQsCiAg
ICBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRhICpkaF9kYXRhKTsKCiB2b2lkICgqc2V0X2JsYW5rKShz
dHJ1Y3QgbWVtX2lucHV0ICptaSwgYm9vbCBibGFuayk7CiB2b2lkICgqc2V0X2h1YnBfYmxhbmtf
ZW4pKHN0cnVjdCBtZW1faW5wdXQgKm1pLCBib29sIGJsYW5rKTsKCiB2b2lkICgqc2V0X2N1cnNv
cl9hdHRyaWJ1dGVzKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogICBjb25zdCBz
dHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgKmF0dHIpOwoKIHZvaWQgKCpzZXRfY3Vyc29yX3Bv
c2l0aW9uKSgKICAgc3RydWN0IG1lbV9pbnB1dCAqbWVtX2lucHV0LAogICBjb25zdCBzdHJ1Y3Qg
ZGNfY3Vyc29yX3Bvc2l0aW9uICpwb3MsCiAgIGNvbnN0IHN0cnVjdCBkY19jdXJzb3JfbWlfcGFy
YW0gKnBhcmFtKTsKCn07CiMgMzUgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9odWJwLmgiCiMgMSAiLi9kcml2ZXJz
L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tZW1faW5wdXQuaCIgMQoj
IDMwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2h1
YnAuaCIgMgoKCgoKZW51bSBjdXJzb3JfcGl0Y2ggewogQ1VSU09SX1BJVENIXzY0X1BJWEVMUyA9
IDAsCiBDVVJTT1JfUElUQ0hfMTI4X1BJWEVMUywKIENVUlNPUl9QSVRDSF8yNTZfUElYRUxTCn07
CgplbnVtIGN1cnNvcl9saW5lc19wZXJfY2h1bmsgewogQ1VSU09SX0xJTkVfUEVSX0NIVU5LXzEg
PSAwLAogQ1VSU09SX0xJTkVfUEVSX0NIVU5LXzIgPSAxLAogQ1VSU09SX0xJTkVfUEVSX0NIVU5L
XzQsCiBDVVJTT1JfTElORV9QRVJfQ0hVTktfOCwKIENVUlNPUl9MSU5FX1BFUl9DSFVOS18xNgp9
OwoKZW51bSBodWJwX2luZF9ibG9ja19zaXplIHsKIGh1YnBfaW5kX2Jsb2NrX3VuY29uc3RyYWlu
ZWQgPSAwLAogaHVicF9pbmRfYmxvY2tfNjRiLAp9OwoKc3RydWN0IGh1YnAgewogY29uc3Qgc3Ry
dWN0IGh1YnBfZnVuY3MgKmZ1bmNzOwogc3RydWN0IGRjX2NvbnRleHQgKmN0eDsKIHN0cnVjdCBk
Y19wbGFuZV9hZGRyZXNzIHJlcXVlc3RfYWRkcmVzczsKIGludCBpbnN0OwoKCiBpbnQgb3BwX2lk
OwogaW50IG1wY2NfaWQ7CiBzdHJ1Y3QgZGNfY3Vyc29yX2F0dHJpYnV0ZXMgY3Vyc19hdHRyOwog
Ym9vbCBwb3dlcl9nYXRlZDsKfTsKCnN0cnVjdCBzdXJmYWNlX2ZsaXBfcmVnaXN0ZXJzIHsKIHVp
bnQzMl90IERDU1VSRl9TVVJGQUNFX0NPTlRST0w7CiB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9N
RVRBX1NVUkZBQ0VfQUREUkVTU19ISUdIOwogdWludDMyX3QgRENTVVJGX1BSSU1BUllfTUVUQV9T
VVJGQUNFX0FERFJFU1M7CiB1aW50MzJfdCBEQ1NVUkZfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1Nf
SElHSDsKIHVpbnQzMl90IERDU1VSRl9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUzsKIHVpbnQzMl90
IERDU1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0hJR0hfQzsKIHVpbnQzMl90IERD
U1VSRl9QUklNQVJZX01FVEFfU1VSRkFDRV9BRERSRVNTX0M7CiB1aW50MzJfdCBEQ1NVUkZfUFJJ
TUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSF9DOwogdWludDMyX3QgRENTVVJGX1BSSU1BUllfU1VS
RkFDRV9BRERSRVNTX0M7CiB1aW50MzJfdCBEQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9B
RERSRVNTX0hJR0g7CiB1aW50MzJfdCBEQ1NVUkZfU0VDT05EQVJZX01FVEFfU1VSRkFDRV9BRERS
RVNTOwogdWludDMyX3QgRENTVVJGX1NFQ09OREFSWV9TVVJGQUNFX0FERFJFU1NfSElHSDsKIHVp
bnQzMl90IERDU1VSRl9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTOwogYm9vbCB0bXpfc3VyZmFj
ZTsKIGJvb2wgaW1tZWRpYXRlOwogdWludDhfdCB2bWlkOwogYm9vbCBncnBoX3N0ZXJlbzsKfTsK
CnN0cnVjdCBodWJwX2Z1bmNzIHsKIHZvaWQgKCpodWJwX3NldHVwKSgKICAgc3RydWN0IGh1YnAg
Kmh1YnAsCiAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywK
ICAgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzLAogICBzdHJ1
Y3QgX3Zjc19kcGlfZGlzcGxheV9ycV9yZWdzX3N0ICpycV9yZWdzLAogICBzdHJ1Y3QgX3Zjc19k
cGlfZGlzcGxheV9waXBlX2Rlc3RfcGFyYW1zX3N0ICpwaXBlX2Rlc3QpOwoKIHZvaWQgKCpodWJw
X3NldHVwX2ludGVyZGVwZW5kZW50KSgKICAgc3RydWN0IGh1YnAgKmh1YnAsCiAgIHN0cnVjdCBf
dmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbGdfcmVncywKICAgc3RydWN0IF92Y3NfZHBp
X2Rpc3BsYXlfdHR1X3JlZ3Nfc3QgKnR0dV9yZWdzKTsKCiB2b2lkICgqZGNjX2NvbnRyb2wpKHN0
cnVjdCBodWJwICpodWJwLCBib29sIGVuYWJsZSwKICAgZW51bSBodWJwX2luZF9ibG9ja19zaXpl
IGJsa19zaXplKTsKCiB2b2lkICgqbWVtX3Byb2dyYW1fdmlld3BvcnQpKAogICBzdHJ1Y3QgaHVi
cCAqaHVicCwKICAgY29uc3Qgc3RydWN0IHJlY3QgKnZpZXdwb3J0LAogICBjb25zdCBzdHJ1Y3Qg
cmVjdCAqdmlld3BvcnRfYyk7Cgogdm9pZCAoKmFwcGx5X1BMQVRfNTQxODZfd2EpKHN0cnVjdCBo
dWJwICpodWJwLAogICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfYWRkcmVzcyAqYWRkcmVzcyk7Cgog
Ym9vbCAoKmh1YnBfcHJvZ3JhbV9zdXJmYWNlX2ZsaXBfYW5kX2FkZHIpKAogIHN0cnVjdCBodWJw
ICpodWJwLAogIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9hZGRyZXNzICphZGRyZXNzLAogIGJvb2wg
ZmxpcF9pbW1lZGlhdGUpOwoKIHZvaWQgKCpodWJwX3Byb2dyYW1fcHRlX3ZtKSgKICBzdHJ1Y3Qg
aHVicCAqaHVicCwKICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZvcm1hdCwKICB1bmlvbiBk
Y190aWxpbmdfaW5mbyAqdGlsaW5nX2luZm8sCiAgZW51bSBkY19yb3RhdGlvbl9hbmdsZSByb3Rh
dGlvbik7Cgogdm9pZCAoKmh1YnBfc2V0X3ZtX3N5c3RlbV9hcGVydHVyZV9zZXR0aW5ncykoCiAg
IHN0cnVjdCBodWJwICpodWJwLAogICBzdHJ1Y3Qgdm1fc3lzdGVtX2FwZXJ0dXJlX3BhcmFtICph
cHQpOwoKIHZvaWQgKCpodWJwX3NldF92bV9jb250ZXh0MF9zZXR0aW5ncykoCiAgIHN0cnVjdCBo
dWJwICpodWJwLAogICBjb25zdCBzdHJ1Y3Qgdm1fY29udGV4dDBfcGFyYW0gKnZtMCk7Cgogdm9p
ZCAoKmh1YnBfcHJvZ3JhbV9zdXJmYWNlX2NvbmZpZykoCiAgc3RydWN0IGh1YnAgKmh1YnAsCiAg
ZW51bSBzdXJmYWNlX3BpeGVsX2Zvcm1hdCBmb3JtYXQsCiAgdW5pb24gZGNfdGlsaW5nX2luZm8g
KnRpbGluZ19pbmZvLAogIHN0cnVjdCBwbGFuZV9zaXplICpwbGFuZV9zaXplLAogIGVudW0gZGNf
cm90YXRpb25fYW5nbGUgcm90YXRpb24sCiAgc3RydWN0IGRjX3BsYW5lX2RjY19wYXJhbSAqZGNj
LAogIGJvb2wgaG9yaXpvbnRhbF9taXJyb3IsCiAgdW5zaWduZWQgaW50IGNvbXBhX2xldmVsKTsK
CiBib29sICgqaHVicF9pc19mbGlwX3BlbmRpbmcpKHN0cnVjdCBodWJwICpodWJwKTsKCiB2b2lk
ICgqc2V0X2JsYW5rKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBibGFuayk7CiB2b2lkICgqc2V0
X2h1YnBfYmxhbmtfZW4pKHN0cnVjdCBodWJwICpodWJwLCBib29sIGJsYW5rKTsKCiB2b2lkICgq
c2V0X2N1cnNvcl9hdHRyaWJ1dGVzKSgKICAgc3RydWN0IGh1YnAgKmh1YnAsCiAgIGNvbnN0IHN0
cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyAqYXR0cik7Cgogdm9pZCAoKnNldF9jdXJzb3JfcG9z
aXRpb24pKAogICBzdHJ1Y3QgaHVicCAqaHVicCwKICAgY29uc3Qgc3RydWN0IGRjX2N1cnNvcl9w
b3NpdGlvbiAqcG9zLAogICBjb25zdCBzdHJ1Y3QgZGNfY3Vyc29yX21pX3BhcmFtICpwYXJhbSk7
Cgogdm9pZCAoKmh1YnBfZGlzY29ubmVjdCkoc3RydWN0IGh1YnAgKmh1YnApOwoKIHZvaWQgKCpo
dWJwX2Nsa19jbnRsKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBlbmFibGUpOwogdm9pZCAoKmh1
YnBfdnRnX3NlbCkoc3RydWN0IGh1YnAgKmh1YnAsIHVpbnQzMl90IG90Z19pbnN0KTsKIHZvaWQg
KCpodWJwX3JlYWRfc3RhdGUpKHN0cnVjdCBodWJwICpodWJwKTsKIHZvaWQgKCpodWJwX2NsZWFy
X3VuZGVyZmxvdykoc3RydWN0IGh1YnAgKmh1YnApOwogdm9pZCAoKmh1YnBfZGlzYWJsZV9jb250
cm9sKShzdHJ1Y3QgaHVicCAqaHVicCwgYm9vbCBkaXNhYmxlX2h1YnApOwogdW5zaWduZWQgaW50
ICgqaHVicF9nZXRfdW5kZXJmbG93X3N0YXR1cykoc3RydWN0IGh1YnAgKmh1YnApOwogdm9pZCAo
Kmh1YnBfaW5pdCkoc3RydWN0IGh1YnAgKmh1YnApOwoKIHZvaWQgKCpkbWRhdGFfc2V0X2F0dHJp
YnV0ZXMpKAogICBzdHJ1Y3QgaHVicCAqaHVicCwKICAgY29uc3Qgc3RydWN0IGRjX2RtZGF0YV9h
dHRyaWJ1dGVzICphdHRyKTsKCiB2b2lkICgqZG1kYXRhX2xvYWQpKAogICBzdHJ1Y3QgaHVicCAq
aHVicCwKICAgdWludDMyX3QgZG1kYXRhX3N3X3NpemUsCiAgIGNvbnN0IHVpbnQzMl90ICpkbWRh
dGFfc3dfZGF0YSk7CiBib29sICgqZG1kYXRhX3N0YXR1c19kb25lKShzdHJ1Y3QgaHVicCAqaHVi
cCk7CiB2b2lkICgqaHVicF9lbmFibGVfdHJpcGxlQnVmZmVyKSgKICBzdHJ1Y3QgaHVicCAqaHVi
cCwKICBib29sIGVuYWJsZSk7CgogYm9vbCAoKmh1YnBfaXNfdHJpcGxlYnVmZmVyX2VuYWJsZWQp
KAogIHN0cnVjdCBodWJwICpodWJwKTsKCiB2b2lkICgqaHVicF9zZXRfZmxpcF9jb250cm9sX3N1
cmZhY2VfZ3NsKSgKICBzdHJ1Y3QgaHVicCAqaHVicCwKICBib29sIGVuYWJsZSk7Cgogdm9pZCAo
KnZhbGlkYXRlX2RtbF9vdXRwdXQpKAogICBzdHJ1Y3QgaHVicCAqaHVicCwKICAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKICAgc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCAqZG1s
X3JxX3JlZ3MsCiAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X2RsZ19yZWdzX3N0ICpkbWxfZGxn
X2F0dHIsCiAgIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0ICpkbWxfdHR1X2F0
dHIpOwoKfTsKIyAzNiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9jb3JlX3R5cGVzLmgiIDIKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2luYy9ody9tcGMuaCIgMQojIDM4ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoKIyAxICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2R3Yi5oIiAxCiMgMzUgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZHdiLmgiCnN0
cnVjdCBtY2lmX3diOwoKZW51bSBkY2VfdmVyc2lvbjsKCmVudW0gZHdiX3N3X3ZlcnNpb24gewog
ZHdiX3Zlcl8xXzAgPSAxLAogZHdiX3Zlcl8yXzAgPSAyLAp9OwoKZW51bSBkd2Jfc291cmNlIHsK
IGR3Yl9zcmNfc2NsID0gMCwKIGR3Yl9zcmNfYmxuZCwKIGR3Yl9zcmNfZm10LAogZHdiX3NyY19v
dGcwID0gMHgxMDAsCiBkd2Jfc3JjX290ZzEsCiBkd2Jfc3JjX290ZzIsCiBkd2Jfc3JjX290ZzMs
Cn07CgoKZW51bSBkd2JfcGlwZSB7CiBkd2JfcGlwZTAgPSAwLAoKIGR3Yl9waXBlMSwKCiBkd2Jf
cGlwZV9tYXhfbnVtLAp9OwoKZW51bSBkd2JfZnJhbWVfY2FwdHVyZV9lbmFibGUgewogRFdCX0ZS
QU1FX0NBUFRVUkVfRElTQUJMRSA9IDAsCiBEV0JfRlJBTUVfQ0FQVFVSRV9FTkFCTEUgPSAxLAp9
OwoKZW51bSB3YnNjbF9jb2VmX2ZpbHRlcl90eXBlX3NlbCB7CiBXQlNDTF9DT0VGX0xVTUFfVkVS
VF9GSUxURVIgPSAwLAogV0JTQ0xfQ09FRl9DSFJPTUFfVkVSVF9GSUxURVIgPSAxLAogV0JTQ0xf
Q09FRl9MVU1BX0hPUlpfRklMVEVSID0gMiwKIFdCU0NMX0NPRUZfQ0hST01BX0hPUlpfRklMVEVS
ID0gMwp9OwoKCnN0cnVjdCBkd2Jfd2FybXVwX3BhcmFtcyB7CiBib29sIHdhcm11cF9lbjsKIGJv
b2wgd2FybXVwX21vZGU7CiBib29sIHdhcm11cF9kZXB0aDsKIGludCB3YXJtdXBfZGF0YTsKIGlu
dCB3YXJtdXBfd2lkdGg7CiBpbnQgd2FybXVwX2hlaWdodDsKfTsKCnN0cnVjdCBkd2JfY2FwcyB7
CiBlbnVtIGRjZV92ZXJzaW9uIGh3X3ZlcnNpb247CiBlbnVtIGR3Yl9zd192ZXJzaW9uIHN3X3Zl
cnNpb247CiB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWRbNl07CiB1bnNpZ25lZCBpbnQgYWRhcHRlcl9p
ZDsKIHVuc2lnbmVkIGludCBudW1fcGlwZXM7CiBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCBzdXBw
b3J0X2R3YiA6MTsKICB1bnNpZ25lZCBpbnQgc3VwcG9ydF9vZ2FtIDoxOwogIHVuc2lnbmVkIGlu
dCBzdXBwb3J0X3dic2NsIDoxOwogIHVuc2lnbmVkIGludCBzdXBwb3J0X29jc2MgOjE7CiAgdW5z
aWduZWQgaW50IHN1cHBvcnRfc3RlcmVvIDoxOwogfSBjYXBzOwogdW5zaWduZWQgaW50IHJlc2Vy
dmVkMls5XTsKfTsKCnN0cnVjdCBkd2JjIHsKIGNvbnN0IHN0cnVjdCBkd2JjX2Z1bmNzICpmdW5j
czsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBpbnQgaW5zdDsKIHN0cnVjdCBtY2lmX3diICpt
Y2lmOwogYm9vbCBzdGF0dXM7CiBpbnQgaW5wdXRTcmNTZWxlY3Q7CiBib29sIGR3Yl9vdXRwdXRf
YmxhY2s7CiBlbnVtIGRjX3RyYW5zZmVyX2Z1bmNfcHJlZGVmaW5lZCB0ZjsKIGVudW0gZGNfY29s
b3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlOwogYm9vbCBkd2JfaXNfZWZjX3RyYW5zaXRpb247
CiBib29sIGR3Yl9pc19kcmM7CiBpbnQgd2Jfc3JjX3BsYW5lX2luc3Q7CiBib29sIHVwZGF0ZV9w
cml2YWN5bWFzazsKIHVpbnQzMl90IG1hc2tfaWQ7CiAgICAgICAgaW50IG90Z19pbnN0OwogICAg
ICAgIGJvb2wgbXZjX2NmZzsKfTsKCnN0cnVjdCBkd2JjX2Z1bmNzIHsKIGJvb2wgKCpnZXRfY2Fw
cykoCiAgc3RydWN0IGR3YmMgKmR3YmMsCiAgc3RydWN0IGR3Yl9jYXBzICpjYXBzKTsKCiBib29s
ICgqZW5hYmxlKSgKICBzdHJ1Y3QgZHdiYyAqZHdiYywKICBzdHJ1Y3QgZGNfZHdiX3BhcmFtcyAq
cGFyYW1zKTsKCiBib29sICgqZGlzYWJsZSkoc3RydWN0IGR3YmMgKmR3YmMpOwoKIGJvb2wgKCp1
cGRhdGUpKAogIHN0cnVjdCBkd2JjICpkd2JjLAogIHN0cnVjdCBkY19kd2JfcGFyYW1zICpwYXJh
bXMpOwoKIGJvb2wgKCppc19lbmFibGVkKSgKICBzdHJ1Y3QgZHdiYyAqZHdiYyk7Cgogdm9pZCAo
KnNldF9zdGVyZW8pKAogIHN0cnVjdCBkd2JjICpkd2JjLAogIHN0cnVjdCBkd2Jfc3RlcmVvX3Bh
cmFtcyAqc3RlcmVvX3BhcmFtcyk7Cgogdm9pZCAoKnNldF9uZXdfY29udGVudCkoCiAgc3RydWN0
IGR3YmMgKmR3YmMsCiAgYm9vbCBpc19uZXdfY29udGVudCk7CgoKIHZvaWQgKCpzZXRfd2FybXVw
KSgKICBzdHJ1Y3QgZHdiYyAqZHdiYywKICBzdHJ1Y3QgZHdiX3dhcm11cF9wYXJhbXMgKndhcm11
cF9wYXJhbXMpOwoKCiBib29sICgqZ2V0X2R3Yl9zdGF0dXMpKAogIHN0cnVjdCBkd2JjICpkd2Jj
KTsKIHZvaWQgKCpkd2Jfc2V0X3NjYWxlcikoCiAgc3RydWN0IGR3YmMgKmR3YmMsCiAgc3RydWN0
IGRjX2R3Yl9wYXJhbXMgKnBhcmFtcyk7Cn07CiMgNDAgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tY2lmX3diLmgiIDEKIyAzMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9tY2lmX3di
LmgiCmVudW0gbW1odWJidWJfd2JpZl9tb2RlIHsKIFBBQ0tFRF80NDQgPSAwLAogUEFDS0VEXzQ0
NF9GUDE2ID0gMSwKIFBMQU5BUl80MjBfOEJQQyA9IDIsCiBQTEFOQVJfNDIwXzEwQlBDID0gMwp9
OwoKc3RydWN0IG1jaWZfYXJiX3BhcmFtcyB7CgogdW5zaWduZWQgaW50IHRpbWVfcGVyX3BpeGVs
OwogdW5zaWduZWQgaW50IGNsaV93YXRlcm1hcmtbNF07CiB1bnNpZ25lZCBpbnQgcHN0YXRlX3dh
dGVybWFya1s0XTsKIHVuc2lnbmVkIGludCBhcmJpdHJhdGlvbl9zbGljZTsKIHVuc2lnbmVkIGlu
dCBzbGljZV9saW5lczsKIHVuc2lnbmVkIGludCBtYXhfc2NhbGVkX3RpbWU7Cn07CgpzdHJ1Y3Qg
bWNpZl9pcnFfcGFyYW1zIHsKIHVuc2lnbmVkIGludCBzd19pbnRfZW47CiB1bnNpZ25lZCBpbnQg
c3dfc2xpY2VfaW50X2VuOwogdW5zaWduZWQgaW50IHN3X292ZXJydW5faW50X2VuOwogdW5zaWdu
ZWQgaW50IHZjZV9pbnRfZW47CiB1bnNpZ25lZCBpbnQgdmNlX3NsaWNlX2ludF9lbjsKfTsKCgoK
c3RydWN0IG1jaWZfd2JfZnJhbWVfZHVtcF9pbmZvIHsKIHVuc2lnbmVkIGludCBzaXplOwogdW5z
aWduZWQgaW50IHdpZHRoOwogdW5zaWduZWQgaW50IGhlaWdodDsKIHVuc2lnbmVkIGludCBsdW1h
X3BpdGNoOwogdW5zaWduZWQgaW50IGNocm9tYV9waXRjaDsKIGVudW0gZHdiX3NjYWxlcl9tb2Rl
IGZvcm1hdDsKfTsKCnN0cnVjdCBtY2lmX3diIHsKIGNvbnN0IHN0cnVjdCBtY2lmX3diX2Z1bmNz
ICpmdW5jczsKIHN0cnVjdCBkY19jb250ZXh0ICpjdHg7CiBpbnQgaW5zdDsKfTsKCnN0cnVjdCBt
Y2lmX3diX2Z1bmNzIHsKCiB2b2lkICgqZW5hYmxlX21jaWYpKHN0cnVjdCBtY2lmX3diICptY2lm
X3diKTsKCiB2b2lkICgqZGlzYWJsZV9tY2lmKShzdHJ1Y3QgbWNpZl93YiAqbWNpZl93Yik7Cgog
dm9pZCAoKmNvbmZpZ19tY2lmX2J1ZikoCiAgc3RydWN0IG1jaWZfd2IgKm1jaWZfd2IsCiAgc3Ry
dWN0IG1jaWZfYnVmX3BhcmFtcyAqcGFyYW1zLAogIHVuc2lnbmVkIGludCBkZXN0X2hlaWdodCk7
CgogIHZvaWQgKCpjb25maWdfbWNpZl9hcmIpKAogIHN0cnVjdCBtY2lmX3diICptY2lmX3diLAog
IHN0cnVjdCBtY2lmX2FyYl9wYXJhbXMgKnBhcmFtcyk7CgogIHZvaWQgKCpjb25maWdfbWNpZl9p
cnEpKAogIHN0cnVjdCBtY2lmX3diICptY2lmX3diLAogIHN0cnVjdCBtY2lmX2lycV9wYXJhbXMg
KnBhcmFtcyk7Cgogdm9pZCAoKmR1bXBfZnJhbWUpKAogIHN0cnVjdCBtY2lmX3diICptY2lmX3di
LAogIHN0cnVjdCBtY2lmX2J1Zl9wYXJhbXMgKm1jaWZfcGFyYW1zLAogIGVudW0gZHdiX3NjYWxl
cl9tb2RlIG91dF9mb3JtYXQsCiAgdW5zaWduZWQgaW50IGRlc3Rfd2lkdGgsCiAgdW5zaWduZWQg
aW50IGRlc3RfaGVpZ2h0LAogIHN0cnVjdCBtY2lmX3diX2ZyYW1lX2R1bXBfaW5mbyAqZHVtcF9p
bmZvLAogIHVuc2lnbmVkIGNoYXIgKmx1bWFfYnVmZmVyLAogIHVuc2lnbmVkIGNoYXIgKmNocm9t
YV9idWZmZXIsCiAgdW5zaWduZWQgY2hhciAqZGVzdF9sdW1hX2J1ZmZlciwKICB1bnNpZ25lZCBj
aGFyICpkZXN0X2Nocm9tYV9idWZmZXIpOwp9OwojIDQxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgoKCgp2b2lkIGVuYWJsZV9z
dXJmYWNlX2ZsaXBfcmVwb3J0aW5nKHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUs
CiAgdWludDMyX3QgY29udHJvbGxlcl9pZCk7CgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9pbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiIDEKIyA0OCAiLi9kcml2
ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9jb3JlX3R5cGVzLmgiIDIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2xp
bmtfZW5jb2Rlci5oIiAxCiMgNDkgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9zdHJlYW1fZW5jb2Rlci5oIiAxCiMgMzEgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvc3RyZWFtX2VuY29k
ZXIuaCIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvaW5jbHVk
ZS9hdWRpb190eXBlcy5oIiAxCiMgMzYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2F1ZGlvX3R5cGVzLmgiCnN0cnVjdCBhdWRpb19jcnRjX2luZm8gewog
dWludDMyX3QgaF90b3RhbDsKIHVpbnQzMl90IGhfYWN0aXZlOwogdWludDMyX3Qgdl9hY3RpdmU7
CiB1aW50MzJfdCBwaXhlbF9yZXBldGl0aW9uOwogdWludDMyX3QgcmVxdWVzdGVkX3BpeGVsX2Ns
b2NrXzEwMEh6OwogdWludDMyX3QgY2FsY3VsYXRlZF9waXhlbF9jbG9ja18xMDBIejsKIHVpbnQz
Ml90IHJlZnJlc2hfcmF0ZTsKIGVudW0gZGNfY29sb3JfZGVwdGggY29sb3JfZGVwdGg7CiBib29s
IGludGVybGFjZWQ7Cn07CnN0cnVjdCBhemFsaWFfY2xvY2tfaW5mbyB7CiB1aW50MzJfdCBwaXhl
bF9jbG9ja19pbl8xMGtoejsKIHVpbnQzMl90IGF1ZGlvX2R0b19waGFzZTsKIHVpbnQzMl90IGF1
ZGlvX2R0b19tb2R1bGU7CiB1aW50MzJfdCBhdWRpb19kdG9fd2FsbF9jbG9ja19yYXRpbzsKfTsK
CmVudW0gYXVkaW9fZHRvX3NvdXJjZSB7CiBEVE9fU09VUkNFX1VOS05PV04gPSAwLAogRFRPX1NP
VVJDRV9JRDAsCiBEVE9fU09VUkNFX0lEMSwKIERUT19TT1VSQ0VfSUQyLAogRFRPX1NPVVJDRV9J
RDMsCiBEVE9fU09VUkNFX0lENCwKIERUT19TT1VSQ0VfSUQ1Cn07CgoKCnN0cnVjdCBhdWRpb19w
bGxfaW5mbyB7CiB1aW50MzJfdCBkcF9kdG9fc291cmNlX2Nsb2NrX2luX2toejsKIHVpbnQzMl90
IGZlZWRfYmFja19kaXZpZGVyOwogZW51bSBhdWRpb19kdG9fc291cmNlIGR0b19zb3VyY2U7CiBi
b29sIHNzX2VuYWJsZWQ7CiB1aW50MzJfdCBzc19wZXJjZW50YWdlOwogdWludDMyX3Qgc3NfcGVy
Y2VudGFnZV9kaXZpZGVyOwp9OwoKc3RydWN0IGF1ZGlvX2NoYW5uZWxfYXNzb2NpYXRlX2luZm8g
ewogdW5pb24gewogIHN0cnVjdCB7CiAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0ZMOjQ7CiAgIHVp
bnQzMl90IEFMTF9DSEFOTkVMX0ZSOjQ7CiAgIHVpbnQzMl90IEFMTF9DSEFOTkVMX0ZDOjQ7CiAg
IHVpbnQzMl90IEFMTF9DSEFOTkVMX1N1Yjo0OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9TTDo0
OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9TUjo0OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9C
TDo0OwogICB1aW50MzJfdCBBTExfQ0hBTk5FTF9CUjo0OwogIH0gYml0czsKICB1aW50MzJfdCB1
MzJhbGw7CiB9Owp9OwoKc3RydWN0IGF1ZGlvX291dHB1dCB7CgogZW51bSBlbmdpbmVfaWQgZW5n
aW5lX2lkOwoKIGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsOwoKIHN0cnVjdCBhdWRpb19jcnRjX2lu
Zm8gY3J0Y19pbmZvOwoKIHN0cnVjdCBhdWRpb19wbGxfaW5mbyBwbGxfaW5mbzsKfTsKCmVudW0g
YXVkaW9fcGF5bG9hZCB7CiBDSEFOTkVMX1NQTElUX01BUFBJTkdDSEFORyA9IDB4OSwKfTsKIyAz
MiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9zdHJl
YW1fZW5jb2Rlci5oIiAyCgoKc3RydWN0IGRjX2Jpb3M7CnN0cnVjdCBkY19jb250ZXh0OwpzdHJ1
Y3QgZGNfY3J0Y190aW1pbmc7CgplbnVtIGRwX3BpeGVsX2VuY29kaW5nX3R5cGUgewogRFBfUElY
RUxfRU5DT0RJTkdfVFlQRV9SR0I0NDQgPSAweDAwMDAwMDAwLAogRFBfUElYRUxfRU5DT0RJTkdf
VFlQRV9ZQ0JDUjQyMiA9IDB4MDAwMDAwMDEsCiBEUF9QSVhFTF9FTkNPRElOR19UWVBFX1lDQkNS
NDQ0ID0gMHgwMDAwMDAwMiwKIERQX1BJWEVMX0VOQ09ESU5HX1RZUEVfUkdCX1dJREVfR0FNVVQg
PSAweDAwMDAwMDAzLAogRFBfUElYRUxfRU5DT0RJTkdfVFlQRV9ZX09OTFkgPSAweDAwMDAwMDA0
LAogRFBfUElYRUxfRU5DT0RJTkdfVFlQRV9ZQ0JDUjQyMCA9IDB4MDAwMDAwMDUKfTsKCmVudW0g
ZHBfY29tcG9uZW50X2RlcHRoIHsKIERQX0NPTVBPTkVOVF9QSVhFTF9ERVBUSF82QlBDID0gMHgw
MDAwMDAwMCwKIERQX0NPTVBPTkVOVF9QSVhFTF9ERVBUSF84QlBDID0gMHgwMDAwMDAwMSwKIERQ
X0NPTVBPTkVOVF9QSVhFTF9ERVBUSF8xMEJQQyA9IDB4MDAwMDAwMDIsCiBEUF9DT01QT05FTlRf
UElYRUxfREVQVEhfMTJCUEMgPSAweDAwMDAwMDAzLAogRFBfQ09NUE9ORU5UX1BJWEVMX0RFUFRI
XzE2QlBDID0gMHgwMDAwMDAwNAp9OwoKc3RydWN0IGF1ZGlvX2Nsb2NrX2luZm8gewoKIHVpbnQz
Ml90IHBpeGVsX2Nsb2NrX2luXzEwa2h6OwoKIHVpbnQzMl90IG5fMzJraHo7CgogdWludDMyX3Qg
Y3RzXzMya2h6OwogdWludDMyX3Qgbl80NGtoejsKIHVpbnQzMl90IGN0c180NGtoejsKIHVpbnQz
Ml90IG5fNDhraHo7CiB1aW50MzJfdCBjdHNfNDhraHo7Cn07CgplbnVtIGR5bmFtaWNfbWV0YWRh
dGFfbW9kZSB7CiBkbWRhdGFfZHAsCiBkbWRhdGFfaGRtaSwKIGRtZGF0YV9kb2xieV92aXNpb24K
fTsKCnN0cnVjdCBlbmNvZGVyX2luZm9fZnJhbWUgewoKIHN0cnVjdCBkY19pbmZvX3BhY2tldCBh
dmk7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQgZ2FtdXQ7CiBzdHJ1Y3QgZGNfaW5mb19wYWNrZXQg
dmVuZG9yOwogc3RydWN0IGRjX2luZm9fcGFja2V0IGhmdnNpZjsKCiBzdHJ1Y3QgZGNfaW5mb19w
YWNrZXQgc3BkOwoKIHN0cnVjdCBkY19pbmZvX3BhY2tldCB2c2M7Cgogc3RydWN0IGRjX2luZm9f
cGFja2V0IGhkcnNtZDsKfTsKCnN0cnVjdCBlbmNvZGVyX3VuYmxhbmtfcGFyYW0gewogc3RydWN0
IGRjX2xpbmtfc2V0dGluZ3MgbGlua19zZXR0aW5nczsKIHN0cnVjdCBkY19jcnRjX3RpbWluZyB0
aW1pbmc7CiBpbnQgb3BwX2NudDsKfTsKCnN0cnVjdCBlbmNvZGVyX3NldF9kcF9waHlfcGF0dGVy
bl9wYXJhbSB7CiBlbnVtIGRwX3Rlc3RfcGF0dGVybiBkcF9waHlfcGF0dGVybjsKIGNvbnN0IHVp
bnQ4X3QgKmN1c3RvbV9wYXR0ZXJuOwogdWludDMyX3QgY3VzdG9tX3BhdHRlcm5fc2l6ZTsKIGVu
dW0gZHBfcGFuZWxfbW9kZSBkcF9wYW5lbF9tb2RlOwp9OwoKc3RydWN0IHN0cmVhbV9lbmNvZGVy
IHsKIGNvbnN0IHN0cnVjdCBzdHJlYW1fZW5jb2Rlcl9mdW5jcyAqZnVuY3M7CiBzdHJ1Y3QgZGNf
Y29udGV4dCAqY3R4Owogc3RydWN0IGRjX2Jpb3MgKmJwOwogZW51bSBlbmdpbmVfaWQgaWQ7Cn07
CgpzdHJ1Y3QgZW5jX3N0YXRlIHsKIHVpbnQzMl90IGRzY19tb2RlOwogdWludDMyX3QgZHNjX3Ns
aWNlX3dpZHRoOwogdWludDMyX3Qgc2VjX2dzcF9wcHNfbGluZV9udW07CiB1aW50MzJfdCB2Ymlk
Nl9saW5lX3JlZmVyZW5jZTsKIHVpbnQzMl90IHZiaWQ2X2xpbmVfbnVtOwogdWludDMyX3Qgc2Vj
X2dzcF9wcHNfZW5hYmxlOwogdWludDMyX3Qgc2VjX3N0cmVhbV9lbmFibGU7Cn07CgpzdHJ1Y3Qg
c3RyZWFtX2VuY29kZXJfZnVuY3Mgewogdm9pZCAoKmRwX3NldF9zdHJlYW1fYXR0cmlidXRlKSgK
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNy
dGNfdGltaW5nLAogIGVudW0gZGNfY29sb3Jfc3BhY2Ugb3V0cHV0X2NvbG9yX3NwYWNlLAogIGJv
b2wgdXNlX3ZzY19zZHBfZm9yX2NvbG9yaW1ldHJ5LAogIHVpbnQzMl90IGVuYWJsZV9zZHBfc3Bs
aXR0aW5nKTsKCiB2b2lkICgqaGRtaV9zZXRfc3RyZWFtX2F0dHJpYnV0ZSkoCiAgc3RydWN0IHN0
cmVhbV9lbmNvZGVyICplbmMsCiAgc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZywK
ICBpbnQgYWN0dWFsX3BpeF9jbGtfa2h6LAogIGJvb2wgZW5hYmxlX2F1ZGlvKTsKCiB2b2lkICgq
ZHZpX3NldF9zdHJlYW1fYXR0cmlidXRlKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywK
ICBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmNydGNfdGltaW5nLAogIGJvb2wgaXNfZHVhbF9saW5r
KTsKCiB2b2lkICgqbHZkc19zZXRfc3RyZWFtX2F0dHJpYnV0ZSkoCiAgc3RydWN0IHN0cmVhbV9l
bmNvZGVyICplbmMsCiAgc3RydWN0IGRjX2NydGNfdGltaW5nICpjcnRjX3RpbWluZyk7Cgogdm9p
ZCAoKnNldF9tc3RfYmFuZHdpZHRoKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKICBz
dHJ1Y3QgZml4ZWQzMV8zMiBhdmdfdGltZV9zbG90c19wZXJfbXRwKTsKCiB2b2lkICgqdXBkYXRl
X2hkbWlfaW5mb19wYWNrZXRzKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywKICBjb25z
dCBzdHJ1Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lICppbmZvX2ZyYW1lKTsKCiB2b2lkICgqc3RvcF9o
ZG1pX2luZm9fcGFja2V0cykoCiAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMpOwoKIHZvaWQg
KCp1cGRhdGVfZHBfaW5mb19wYWNrZXRzKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywK
ICBjb25zdCBzdHJ1Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lICppbmZvX2ZyYW1lKTsKCiB2b2lkICgq
c2VuZF9pbW1lZGlhdGVfc2RwX21lc3NhZ2UpKAogICAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICpl
bmMsCiAgICBjb25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCiAgICB1bnNpZ25lZCBp
bnQgc2RwX21lc3NhZ2Vfc2l6ZSk7Cgogdm9pZCAoKnN0b3BfZHBfaW5mb19wYWNrZXRzKSgKICBz
dHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7Cgogdm9pZCAoKmRwX2JsYW5rKSgKICBzdHJ1Y3Qg
c3RyZWFtX2VuY29kZXIgKmVuYyk7Cgogdm9pZCAoKmRwX3VuYmxhbmspKAogIHN0cnVjdCBzdHJl
YW1fZW5jb2RlciAqZW5jLAogIGNvbnN0IHN0cnVjdCBlbmNvZGVyX3VuYmxhbmtfcGFyYW0gKnBh
cmFtKTsKCiB2b2lkICgqYXVkaW9fbXV0ZV9jb250cm9sKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29k
ZXIgKmVuYywgYm9vbCBtdXRlKTsKCiB2b2lkICgqZHBfYXVkaW9fc2V0dXApKAogIHN0cnVjdCBz
dHJlYW1fZW5jb2RlciAqZW5jLAogIHVuc2lnbmVkIGludCBhel9pbnN0LAogIHN0cnVjdCBhdWRp
b19pbmZvICppbmZvKTsKCiB2b2lkICgqZHBfYXVkaW9fZW5hYmxlKSAoCiAgIHN0cnVjdCBzdHJl
YW1fZW5jb2RlciAqZW5jKTsKCiB2b2lkICgqZHBfYXVkaW9fZGlzYWJsZSkgKAogICBzdHJ1Y3Qg
c3RyZWFtX2VuY29kZXIgKmVuYyk7Cgogdm9pZCAoKmhkbWlfYXVkaW9fc2V0dXApKAogIHN0cnVj
dCBzdHJlYW1fZW5jb2RlciAqZW5jLAogIHVuc2lnbmVkIGludCBhel9pbnN0LAogIHN0cnVjdCBh
dWRpb19pbmZvICppbmZvLAogIHN0cnVjdCBhdWRpb19jcnRjX2luZm8gKmF1ZGlvX2NydGNfaW5m
byk7Cgogdm9pZCAoKmhkbWlfYXVkaW9fZGlzYWJsZSkgKAogICBzdHJ1Y3Qgc3RyZWFtX2VuY29k
ZXIgKmVuYyk7Cgogdm9pZCAoKnNldHVwX3N0ZXJlb19zeW5jKSAoCiAgIHN0cnVjdCBzdHJlYW1f
ZW5jb2RlciAqZW5jLAogICBpbnQgdGdfaW5zdCwKICAgYm9vbCBlbmFibGUpOwoKIHZvaWQgKCpz
ZXRfYXZtdXRlKSgKICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYywgYm9vbCBlbmFibGUpOwoK
IHZvaWQgKCpkaWdfY29ubmVjdF90b19vdGcpKAogIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5j
LAogIGludCB0Z19pbnN0KTsKCiB2b2lkICgqaGRtaV9yZXNldF9zdHJlYW1fYXR0cmlidXRlKSgK
ICBzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIgKmVuYyk7CgogdW5zaWduZWQgaW50ICgqZGlnX3NvdXJj
ZV9vdGcpKAogIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jKTsKCiBib29sICgqZHBfZ2V0X3Bp
eGVsX2Zvcm1hdCkoCiAgc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAgZW51bSBkY19waXhl
bF9lbmNvZGluZyAqZW5jb2RpbmcsCiAgZW51bSBkY19jb2xvcl9kZXB0aCAqZGVwdGgpOwoKIHZv
aWQgKCplbmNfcmVhZF9zdGF0ZSkoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsIHN0cnVjdCBl
bmNfc3RhdGUgKnMpOwoKIHZvaWQgKCpkcF9zZXRfZHNjX2NvbmZpZykoCiAgIHN0cnVjdCBzdHJl
YW1fZW5jb2RlciAqZW5jLAogICBlbnVtIG9wdGNfZHNjX21vZGUgZHNjX21vZGUsCiAgIHVpbnQz
Ml90IGRzY19ieXRlc19wZXJfcGl4ZWwsCiAgIHVpbnQzMl90IGRzY19zbGljZV93aWR0aCk7Cgog
dm9pZCAoKmRwX3NldF9kc2NfcHBzX2luZm9fcGFja2V0KShzdHJ1Y3Qgc3RyZWFtX2VuY29kZXIg
KmVuYywKICAgIGJvb2wgZW5hYmxlLAogICAgdWludDhfdCAqZHNjX3BhY2tlZF9wcHMpOwoKIHZv
aWQgKCpzZXRfZHluYW1pY19tZXRhZGF0YSkoc3RydWN0IHN0cmVhbV9lbmNvZGVyICplbmMsCiAg
IGJvb2wgZW5hYmxlLAogICB1aW50MzJfdCBodWJwX3JlcXVlc3Rvcl9pZCwKICAgZW51bSBkeW5h
bWljX21ldGFkYXRhX21vZGUgZG1kYXRhX21vZGUpOwoKIHZvaWQgKCpkcF9zZXRfb2RtX2NvbWJp
bmUpKAogIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqZW5jLAogIGJvb2wgb2RtX2NvbWJpbmUpOwp9
OwojIDUwICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2Nv
cmVfdHlwZXMuaCIgMgoKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3Bs
YXkvZGMvaW5jL2h3L2F1ZGlvLmgiIDEKIyAzMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2luYy9ody9hdWRpby5oIgpzdHJ1Y3QgYXVkaW87CgpzdHJ1Y3QgYXVk
aW9fZnVuY3MgewoKIGJvb2wgKCplbmRwb2ludF92YWxpZCkoc3RydWN0IGF1ZGlvICphdWRpbyk7
Cgogdm9pZCAoKmh3X2luaXQpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoKIHZvaWQgKCphel9lbmFi
bGUpKHN0cnVjdCBhdWRpbyAqYXVkaW8pOwoKIHZvaWQgKCphel9kaXNhYmxlKShzdHJ1Y3QgYXVk
aW8gKmF1ZGlvKTsKCiB2b2lkICgqYXpfY29uZmlndXJlKShzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAog
IGVudW0gc2lnbmFsX3R5cGUgc2lnbmFsLAogIGNvbnN0IHN0cnVjdCBhdWRpb19jcnRjX2luZm8g
KmNydGNfaW5mbywKICBjb25zdCBzdHJ1Y3QgYXVkaW9faW5mbyAqYXVkaW9faW5mbyk7Cgogdm9p
ZCAoKndhbGxfZHRvX3NldHVwKShzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAogIGVudW0gc2lnbmFsX3R5
cGUgc2lnbmFsLAogIGNvbnN0IHN0cnVjdCBhdWRpb19jcnRjX2luZm8gKmNydGNfaW5mbywKICBj
b25zdCBzdHJ1Y3QgYXVkaW9fcGxsX2luZm8gKnBsbF9pbmZvKTsKCiB2b2lkICgqZGVzdHJveSko
c3RydWN0IGF1ZGlvICoqYXVkaW8pOwp9OwoKc3RydWN0IGF1ZGlvIHsKIGNvbnN0IHN0cnVjdCBh
dWRpb19mdW5jcyAqZnVuY3M7CiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4OwogdW5zaWduZWQgaW50
IGluc3Q7CiBib29sIGVuYWJsZWQ7Cn07CiMgNTIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn
cHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX3BwX3NtdS5oIiAxCiMgMzMgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9wcF9zbXUuaCIKdHlwZWRlZiBi
b29sIEJPT0xFQU47CgplbnVtIHBwX3NtdV92ZXIgewoKCgoKCgogUFBfU01VX1VOU1VQUE9SVEVE
LAogUFBfU01VX1ZFUl9SViwKIFBQX1NNVV9WRVJfTlYsCiBQUF9TTVVfVkVSX1JOLAoKIFBQX1NN
VV9WRVJfTUFYCn07CgpzdHJ1Y3QgcHBfc211IHsKIGVudW0gcHBfc211X3ZlciB2ZXI7CiBjb25z
dCB2b2lkICpwcDsKCgoKCgoKIGNvbnN0IHZvaWQgKmRtOwp9OwoKZW51bSBwcF9zbXVfc3RhdHVz
IHsKIFBQX1NNVV9SRVNVTFRfVU5ERUZJTkVEID0gMCwKIFBQX1NNVV9SRVNVTFRfT0sgPSAxLAog
UFBfU01VX1JFU1VMVF9GQUlMLAogUFBfU01VX1JFU1VMVF9VTlNVUFBPUlRFRAp9OwoKCgoKZW51
bSB3bV90eXBlIHsKIFdNX1RZUEVfUFNUQVRFX0NIRyA9IDAsCiBXTV9UWVBFX1JFVFJBSU5JTkcg
PSAxLAp9OwoKCnN0cnVjdCBwcF9zbXVfd21fc2V0X3JhbmdlIHsKIHVpbnQxNl90IG1pbl9maWxs
X2Nsa19taHo7CiB1aW50MTZfdCBtYXhfZmlsbF9jbGtfbWh6OwogdWludDE2X3QgbWluX2RyYWlu
X2Nsa19taHo7CiB1aW50MTZfdCBtYXhfZHJhaW5fY2xrX21oejsKCiB1aW50OF90IHdtX2luc3Q7
CiB1aW50OF90IHdtX3R5cGU7Cn07CgoKCnN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyB7CiB1
bnNpZ25lZCBpbnQgbnVtX3JlYWRlcl93bV9zZXRzOwogc3RydWN0IHBwX3NtdV93bV9zZXRfcmFu
Z2UgcmVhZGVyX3dtX3NldHNbNF07CgogdW5zaWduZWQgaW50IG51bV93cml0ZXJfd21fc2V0czsK
IHN0cnVjdCBwcF9zbXVfd21fc2V0X3JhbmdlIHdyaXRlcl93bV9zZXRzWzRdOwp9OwoKc3RydWN0
IHBwX3NtdV9mdW5jc19ydiB7CiBzdHJ1Y3QgcHBfc211IHBwX3NtdTsKCgoKCgogdm9pZCAoKnNl
dF9kaXNwbGF5X2NvdW50KShzdHJ1Y3QgcHBfc211ICpwcCwgaW50IGNvdW50KTsKIyAxMTQgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9wcF9zbXUuaCIKIHZv
aWQgKCpzZXRfd21fcmFuZ2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKICAgc3RydWN0IHBwX3NtdV93
bV9yYW5nZV9zZXRzICpyYW5nZXMpOwoKCgoKIHZvaWQgKCpzZXRfaGFyZF9taW5fZGNmY2xrX2J5
X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKCgoKCgogdm9pZCAoKnNldF9taW5f
ZGVlcF9zbGVlcF9kY2ZjbGspKHN0cnVjdCBwcF9zbXUgKnBwLCBpbnQgbWh6KTsKCgoKCiB2b2lk
ICgqc2V0X2hhcmRfbWluX2ZjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBtaHop
OwoKCgoKIHZvaWQgKCpzZXRfaGFyZF9taW5fc29jY2xrX2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUg
KnBwLCBpbnQgbWh6KTsKCgogdm9pZCAoKnNldF9wbWVfd2FfZW5hYmxlKShzdHJ1Y3QgcHBfc211
ICpwcCk7Cn07CgoKCgplbnVtIHBwX3NtdV9udl9jbG9ja19pZCB7CiBQUF9TTVVfTlZfRElTUENM
SywKIFBQX1NNVV9OVl9QSFlDTEssCiBQUF9TTVVfTlZfUElYRUxDTEsKfTsKCgoKCnN0cnVjdCBw
cF9zbXVfbnZfY2xvY2tfdGFibGUgewoKIHVuc2lnbmVkIGludCBkaXNwbGF5Q2xvY2tJbktoejsK
IHVuc2lnbmVkIGludCBkcHBDbG9ja0luS2h6OwogdW5zaWduZWQgaW50IHBoeUNsb2NrSW5LaHo7
CiB1bnNpZ25lZCBpbnQgcGl4ZWxDbG9ja0luS2h6OwogdW5zaWduZWQgaW50IGRzY0Nsb2NrSW5L
aHo7CgoKIHVuc2lnbmVkIGludCBmYWJyaWNDbG9ja0luS2h6OwogdW5zaWduZWQgaW50IHNvY0Ns
b2NrSW5LaHo7CiB1bnNpZ25lZCBpbnQgZGNmQ2xvY2tJbktoejsKIHVuc2lnbmVkIGludCB1Q2xv
Y2tJbktoejsKfTsKCnN0cnVjdCBwcF9zbXVfZnVuY3NfbnYgewogc3RydWN0IHBwX3NtdSBwcF9z
bXU7CgoKCgogZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X2Rpc3BsYXlfY291bnQpKHN0cnVjdCBw
cF9zbXUgKnBwLCBpbnQgY291bnQpOwoKCgoKIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF9oYXJk
X21pbl9kY2ZjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBNaHopOwoKCgoKCiBl
bnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfbWluX2RlZXBfc2xlZXBfZGNmY2xrKShzdHJ1Y3QgcHBf
c211ICpwcCwgaW50IE1oeik7CgoKCgogZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X2hhcmRfbWlu
X3VjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAqcHAsIGludCBNaHopOwoKCgoKIGVudW0gcHBf
c211X3N0YXR1cyAoKnNldF9oYXJkX21pbl9zb2NjbGtfYnlfZnJlcSkoc3RydWN0IHBwX3NtdSAq
cHAsIGludCBNaHopOwoKCiBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfcG1lX3dhX2VuYWJsZSko
c3RydWN0IHBwX3NtdSAqcHApOwoKCgoKIGVudW0gcHBfc211X3N0YXR1cyAoKnNldF92b2x0YWdl
X2J5X2ZyZXEpKHN0cnVjdCBwcF9zbXUgKnBwLAogICBlbnVtIHBwX3NtdV9udl9jbG9ja19pZCBj
bG9ja19pZCwgaW50IE1oeik7CiMgMjE5ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4u
L2Rpc3BsYXkvZGMvZG1fcHBfc211LmgiCiBlbnVtIHBwX3NtdV9zdGF0dXMgKCpzZXRfd21fcmFu
Z2VzKShzdHJ1Y3QgcHBfc211ICpwcCwKICAgc3RydWN0IHBwX3NtdV93bV9yYW5nZV9zZXRzICpy
YW5nZXMpOwoKCgoKIGVudW0gcHBfc211X3N0YXR1cyAoKmdldF9tYXhpbXVtX3N1c3RhaW5hYmxl
X2Nsb2Nrcykoc3RydWN0IHBwX3NtdSAqcHAsCiAgIHN0cnVjdCBwcF9zbXVfbnZfY2xvY2tfdGFi
bGUgKm1heF9jbG9ja3MpOwoKCgogZW51bSBwcF9zbXVfc3RhdHVzICgqZ2V0X3VjbGtfZHBtX3N0
YXRlcykoc3RydWN0IHBwX3NtdSAqcHAsCiAgIHVuc2lnbmVkIGludCAqY2xvY2tfdmFsdWVzX2lu
X2toeiwgdW5zaWduZWQgaW50ICpudW1fc3RhdGVzKTsKIyAyNDIgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9wcF9zbXUuaCIKIGVudW0gcHBfc211X3N0YXR1
cyAoKnNldF9wc3RhdGVfaGFuZHNoYWtlX3N1cHBvcnQpKHN0cnVjdCBwcF9zbXUgKnBwLAogICBC
T09MRUFOIHBzdGF0ZV9oYW5kc2hha2Vfc3VwcG9ydGVkKTsKfTsKCgoKCgoKc3RydWN0IGRwbV9j
bG9jayB7CiAgdWludDMyX3QgRnJlcTsKICB1aW50MzJfdCBWb2w7Cn07CgoKCnN0cnVjdCBkcG1f
Y2xvY2tzIHsKIHN0cnVjdCBkcG1fY2xvY2sgRGNmQ2xvY2tzWzhdOwogc3RydWN0IGRwbV9jbG9j
ayBTb2NDbG9ja3NbOF07CiBzdHJ1Y3QgZHBtX2Nsb2NrIEZDbG9ja3NbNF07CiBzdHJ1Y3QgZHBt
X2Nsb2NrIE1lbUNsb2Nrc1s0XTsKfTsKCgpzdHJ1Y3QgcHBfc211X2Z1bmNzX3JuIHsKIHN0cnVj
dCBwcF9zbXUgcHBfc211OwojIDI3NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2RtX3BwX3NtdS5oIgogZW51bSBwcF9zbXVfc3RhdHVzICgqc2V0X3dtX3Jhbmdl
cykoc3RydWN0IHBwX3NtdSAqcHAsCiAgIHN0cnVjdCBwcF9zbXVfd21fcmFuZ2Vfc2V0cyAqcmFu
Z2VzKTsKCiBlbnVtIHBwX3NtdV9zdGF0dXMgKCpnZXRfZHBtX2Nsb2NrX3RhYmxlKSAoc3RydWN0
IHBwX3NtdSAqcHAsCiAgIHN0cnVjdCBkcG1fY2xvY2tzICpjbG9ja190YWJsZSk7Cn07CgpzdHJ1
Y3QgcHBfc211X2Z1bmNzIHsKIHN0cnVjdCBwcF9zbXUgY3R4OwogdW5pb24gewogIHN0cnVjdCBw
cF9zbXVfZnVuY3NfcnYgcnZfZnVuY3M7CiAgc3RydWN0IHBwX3NtdV9mdW5jc19udiBudl9mdW5j
czsKICBzdHJ1Y3QgcHBfc211X2Z1bmNzX3JuIHJuX2Z1bmNzOwoKIH07Cn07CiMgNTMgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAy
CgoKCgoKc3RydWN0IGxpbmtfaW5pdF9kYXRhIHsKIGNvbnN0IHN0cnVjdCBkYyAqZGM7CiBzdHJ1
Y3QgZGNfY29udGV4dCAqY3R4OwogdWludDMyX3QgY29ubmVjdG9yX2luZGV4OwogdWludDMyX3Qg
bGlua19pbmRleDsKCn07CgpzdHJ1Y3QgZGNfbGluayAqbGlua19jcmVhdGUoY29uc3Qgc3RydWN0
IGxpbmtfaW5pdF9kYXRhICppbml0X3BhcmFtcyk7CnZvaWQgbGlua19kZXN0cm95KHN0cnVjdCBk
Y19saW5rICoqbGluayk7CgplbnVtIGRjX3N0YXR1cyBkY19saW5rX3ZhbGlkYXRlX21vZGVfdGlt
aW5nKAogIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICBzdHJ1Y3QgZGNf
bGluayAqbGluaywKICBjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKnRpbWluZyk7Cgp2b2lk
IGNvcmVfbGlua19yZXN1bWUoc3RydWN0IGRjX2xpbmsgKmxpbmspOwoKdm9pZCBjb3JlX2xpbmtf
ZW5hYmxlX3N0cmVhbSgKICBzdHJ1Y3QgZGNfc3RhdGUgKnN0YXRlLAogIHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgpOwoKdm9pZCBjb3JlX2xpbmtfZGlzYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVf
Y3R4ICpwaXBlX2N0eCk7Cgp2b2lkIGNvcmVfbGlua19zZXRfYXZtdXRlKHN0cnVjdCBwaXBlX2N0
eCAqcGlwZV9jdHgsIGJvb2wgZW5hYmxlKTsKCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody90cmFuc2Zvcm0uaCIgMQojIDg1ICIuL2RyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIgMgojIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvZHBwLmgi
IDEKIyAzMiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9o
dy9kcHAuaCIKc3RydWN0IGRwcCB7CiBjb25zdCBzdHJ1Y3QgZHBwX2Z1bmNzICpmdW5jczsKIHN0
cnVjdCBkY19jb250ZXh0ICpjdHg7CiBpbnQgaW5zdDsKIHN0cnVjdCBkcHBfY2FwcyAqY2FwczsK
IHN0cnVjdCBwd2xfcGFyYW1zIHJlZ2FtbWFfcGFyYW1zOwogc3RydWN0IHB3bF9wYXJhbXMgZGVn
YW1tYV9wYXJhbXM7CiBzdHJ1Y3QgZHBwX2N1cnNvcl9hdHRyaWJ1dGVzIGN1cl9hdHRyOwoKIHN0
cnVjdCBwd2xfcGFyYW1zIHNoYXBlcl9wYXJhbXM7CiBib29sIGNtX2J5cGFzc19tb2RlOwp9OwoK
c3RydWN0IGRwcF9pbnB1dF9jc2NfbWF0cml4IHsKIGVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3Jf
c3BhY2U7CiB1aW50MTZfdCByZWd2YWxbMTJdOwp9OwoKc3RhdGljIGNvbnN0IHN0cnVjdCBkcHBf
aW5wdXRfY3NjX21hdHJpeCBkcHBfaW5wdXRfY3NjX21hdHJpeFtdID0gewoge0NPTE9SX1NQQUNF
X1NSR0IsCiAgezB4MjAwMCwgMCwgMCwgMCwgMCwgMHgyMDAwLCAwLCAwLCAwLCAwLCAweDIwMDAs
IDB9IH0sCiB7Q09MT1JfU1BBQ0VfU1JHQl9MSU1JVEVELAogIHsweDIwMDAsIDAsIDAsIDAsIDAs
IDB4MjAwMCwgMCwgMCwgMCwgMCwgMHgyMDAwLCAwfSB9LAoge0NPTE9SX1NQQUNFX1lDQkNSNjAx
LAogIHsweDJjZGQsIDB4MjAwMCwgMCwgMHhlOTkxLCAweGU5MjYsIDB4MjAwMCwgMHhmNGZkLCAw
eDEwZWYsCiAgICAgIDAsIDB4MjAwMCwgMHgzOGI0LCAweGUzYTZ9IH0sCiB7Q09MT1JfU1BBQ0Vf
WUNCQ1I2MDFfTElNSVRFRCwKICB7MHgzMzUzLCAweDI1NjgsIDAsIDB4ZTQwMCwgMHhlNWRjLCAw
eDI1NjgsIDB4ZjM2NywgMHgxMTA4LAogICAgICAwLCAweDI1NjgsIDB4NDBkZSwgMHhkZDNhfSB9
LAoge0NPTE9SX1NQQUNFX1lDQkNSNzA5LAogIHsweDMyNjUsIDB4MjAwMCwgMCwgMHhlNmNlLCAw
eGYxMDUsIDB4MjAwMCwgMHhmYTAxLCAweGE3ZCwgMCwKICAgICAgMHgyMDAwLCAweDNiNjEsIDB4
ZTI0Zn0gfSwKCiB7Q09MT1JfU1BBQ0VfWUNCQ1I3MDlfTElNSVRFRCwKICB7MHgzOWE2LCAweDI1
NjgsIDAsIDB4ZTBkNiwgMHhlZWRkLCAweDI1NjgsIDB4ZjkyNSwgMHg5YTgsIDAsCiAgICAgIDB4
MjU2OCwgMHg0M2VlLCAweGRiYjJ9IH0KfTsKCnN0cnVjdCBkcHBfZ3JwaF9jc2NfYWRqdXN0bWVu
dCB7CiBzdHJ1Y3QgZml4ZWQzMV8zMiB0ZW1wZXJhdHVyZV9tYXRyaXhbMTJdOwogZW51bSBncmFw
aGljc19nYW11dF9hZGp1c3RfdHlwZSBnYW11dF9hZGp1c3RfdHlwZTsKfTsKCnN0cnVjdCBjbnZf
Y29sb3Jfa2V5ZXJfcGFyYW1zIHsKIGludCBjb2xvcl9rZXllcl9lbjsKIGludCBjb2xvcl9rZXll
cl9tb2RlOwogaW50IGNvbG9yX2tleWVyX2FscGhhX2xvdzsKIGludCBjb2xvcl9rZXllcl9hbHBo
YV9oaWdoOwogaW50IGNvbG9yX2tleWVyX3JlZF9sb3c7CiBpbnQgY29sb3Jfa2V5ZXJfcmVkX2hp
Z2g7CiBpbnQgY29sb3Jfa2V5ZXJfZ3JlZW5fbG93OwogaW50IGNvbG9yX2tleWVyX2dyZWVuX2hp
Z2g7CiBpbnQgY29sb3Jfa2V5ZXJfYmx1ZV9sb3c7CiBpbnQgY29sb3Jfa2V5ZXJfYmx1ZV9oaWdo
Owp9OwoKCgoKCgoKc3RydWN0IGNudl9hbHBoYV8yYml0X2x1dCB7CiBpbnQgbHV0MDsKIGludCBs
dXQxOwogaW50IGx1dDI7CiBpbnQgbHV0MzsKfTsKCnN0cnVjdCBkY25fZHBwX3N0YXRlIHsKIHVp
bnQzMl90IGlzX2VuYWJsZWQ7CiB1aW50MzJfdCBpZ2FtX2x1dF9tb2RlOwogdWludDMyX3QgaWdh
bV9pbnB1dF9mb3JtYXQ7CiB1aW50MzJfdCBkZ2FtX2x1dF9tb2RlOwogdWludDMyX3QgcmdhbV9s
dXRfbW9kZTsKIHVpbnQzMl90IGdhbXV0X3JlbWFwX21vZGU7CiB1aW50MzJfdCBnYW11dF9yZW1h
cF9jMTFfYzEyOwogdWludDMyX3QgZ2FtdXRfcmVtYXBfYzEzX2MxNDsKIHVpbnQzMl90IGdhbXV0
X3JlbWFwX2MyMV9jMjI7CiB1aW50MzJfdCBnYW11dF9yZW1hcF9jMjNfYzI0OwogdWludDMyX3Qg
Z2FtdXRfcmVtYXBfYzMxX2MzMjsKIHVpbnQzMl90IGdhbXV0X3JlbWFwX2MzM19jMzQ7Cn07Cgpz
dHJ1Y3QgQ01fYmlhc19wYXJhbXMgewogdWludDMyX3QgY21fYmlhc19jcl9yOwogdWludDMyX3Qg
Y21fYmlhc195X2c7CiB1aW50MzJfdCBjbV9iaWFzX2NiX2I7CiB1aW50MzJfdCBjbV9iaWFzX2Zv
cm1hdDsKfTsKCnN0cnVjdCBkcHBfZnVuY3MgewoKIHZvaWQgKCpkcHBfcHJvZ3JhbV9jbV9kZWFs
cGhhKShzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICB1aW50MzJfdCBlbmFibGUsIHVpbnQzMl90IGFk
ZGl0aXZlX2JsZW5kaW5nKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fY21fYmlhcykoCiAgc3RydWN0
IGRwcCAqZHBwX2Jhc2UsCiAgc3RydWN0IENNX2JpYXNfcGFyYW1zICpiaWFzX3BhcmFtcyk7Cgog
dm9pZCAoKmRwcF9yZWFkX3N0YXRlKShzdHJ1Y3QgZHBwICpkcHAsIHN0cnVjdCBkY25fZHBwX3N0
YXRlICpzKTsKCiB2b2lkICgqZHBwX3Jlc2V0KShzdHJ1Y3QgZHBwICpkcHApOwoKIHZvaWQgKCpk
cHBfc2V0X3NjYWxlcikoc3RydWN0IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3Qgc2NhbGVyX2Rh
dGEgKnNjbF9kYXRhKTsKCiB2b2lkICgqZHBwX3NldF9waXhlbF9zdG9yYWdlX2RlcHRoKSgKICAg
c3RydWN0IGRwcCAqZHBwLAogICBlbnVtIGxiX3BpeGVsX2RlcHRoIGRlcHRoLAogICBjb25zdCBz
dHJ1Y3QgYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMgKmJpdF9kZXB0aF9wYXJhbXMpOwoKIGJv
b2wgKCpkcHBfZ2V0X29wdGltYWxfbnVtYmVyX29mX3RhcHMpKAogICBzdHJ1Y3QgZHBwICpkcHAs
CiAgIHN0cnVjdCBzY2FsZXJfZGF0YSAqc2NsX2RhdGEsCiAgIGNvbnN0IHN0cnVjdCBzY2FsaW5n
X3RhcHMgKmluX3RhcHMpOwoKIHZvaWQgKCpkcHBfc2V0X2dhbXV0X3JlbWFwKSgKICAgc3RydWN0
IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3QgZHBwX2dycGhfY3NjX2FkanVzdG1lbnQgKmFkanVz
dCk7Cgogdm9pZCAoKmRwcF9zZXRfY3NjX2RlZmF1bHQpKAogIHN0cnVjdCBkcHAgKmRwcCwKICBl
bnVtIGRjX2NvbG9yX3NwYWNlIGNvbG9yc3BhY2UpOwoKIHZvaWQgKCpkcHBfc2V0X2NzY19hZGp1
c3RtZW50KSgKICBzdHJ1Y3QgZHBwICpkcHAsCiAgY29uc3QgdWludDE2X3QgKnJlZ3ZhbCk7Cgog
dm9pZCAoKmRwcF9wb3dlcl9vbl9yZWdhbW1hX2x1dCkoCiAgc3RydWN0IGRwcCAqZHBwLAogIGJv
b2wgcG93ZXJfb24pOwoKIHZvaWQgKCpkcHBfcHJvZ3JhbV9yZWdhbW1hX2x1dCkoCiAgIHN0cnVj
dCBkcHAgKmRwcCwKICAgY29uc3Qgc3RydWN0IHB3bF9yZXN1bHRfZGF0YSAqcmdiLAogICB1aW50
MzJfdCBudW0pOwoKIHZvaWQgKCpkcHBfY29uZmlndXJlX3JlZ2FtbWFfbHV0KSgKICAgc3RydWN0
IGRwcCAqZHBwLAogICBib29sIGlzX3JhbV9hKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1t
YV9sdXRiX3NldHRpbmdzKSgKICAgc3RydWN0IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3QgcHds
X3BhcmFtcyAqcGFyYW1zKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9sdXRhX3NldHRp
bmdzKSgKICAgc3RydWN0IGRwcCAqZHBwLAogICBjb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFy
YW1zKTsKCiB2b2lkICgqZHBwX3Byb2dyYW1fcmVnYW1tYV9wd2wpKAogIHN0cnVjdCBkcHAgKmRw
cCwKICBjb25zdCBzdHJ1Y3QgcHdsX3BhcmFtcyAqcGFyYW1zLAogIGVudW0gb3BwX3JlZ2FtbWEg
bW9kZSk7Cgogdm9pZCAoKmRwcF9wcm9ncmFtX2JpYXNfYW5kX3NjYWxlKSgKICAgc3RydWN0IGRw
cCAqZHBwLAogICBzdHJ1Y3QgZGNfYmlhc19hbmRfc2NhbGUgKnBhcmFtcyk7Cgogdm9pZCAoKmRw
cF9zZXRfZGVnYW1tYSkoCiAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICBlbnVtIGlwcF9kZWdh
bW1hX21vZGUgbW9kZSk7Cgogdm9pZCAoKmRwcF9wcm9ncmFtX2lucHV0X2x1dCkoCiAgIHN0cnVj
dCBkcHAgKmRwcF9iYXNlLAogICBjb25zdCBzdHJ1Y3QgZGNfZ2FtbWEgKmdhbW1hKTsKCiB2b2lk
ICgqZHBwX3Byb2dyYW1fZGVnYW1tYV9wd2wpKHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICAgICAg
ICAgY29uc3Qgc3RydWN0IHB3bF9wYXJhbXMgKnBhcmFtcyk7Cgogdm9pZCAoKmRwcF9zZXR1cCko
CiAgIHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICBlbnVtIHN1cmZhY2VfcGl4ZWxfZm9ybWF0IGZv
cm1hdCwKICAgZW51bSBleHBhbnNpb25fbW9kZSBtb2RlLAogICBzdHJ1Y3QgZGNfY3NjX3RyYW5z
Zm9ybSBpbnB1dF9jc2NfY29sb3JfbWF0cml4LAogICBlbnVtIGRjX2NvbG9yX3NwYWNlIGlucHV0
X2NvbG9yX3NwYWNlLAogICBzdHJ1Y3QgY252X2FscGhhXzJiaXRfbHV0ICphbHBoYV8yYml0X2x1
dCk7Cgogdm9pZCAoKmRwcF9mdWxsX2J5cGFzcykoc3RydWN0IGRwcCAqZHBwX2Jhc2UpOwoKIHZv
aWQgKCpzZXRfY3Vyc29yX2F0dHJpYnV0ZXMpKAogICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICAg
c3RydWN0IGRjX2N1cnNvcl9hdHRyaWJ1dGVzICpjdXJzb3JfYXR0cmlidXRlcyk7Cgogdm9pZCAo
KnNldF9jdXJzb3JfcG9zaXRpb24pKAogICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICAgY29uc3Qg
c3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiAqcG9zLAogICBjb25zdCBzdHJ1Y3QgZGNfY3Vyc29y
X21pX3BhcmFtICpwYXJhbSwKICAgdWludDMyX3Qgd2lkdGgsCiAgIHVpbnQzMl90IGhlaWdodAog
ICApOwoKIHZvaWQgKCpkcHBfc2V0X2hkcl9tdWx0aXBsaWVyKSgKICAgc3RydWN0IGRwcCAqZHBw
X2Jhc2UsCiAgIHVpbnQzMl90IG11bHRpcGxpZXIpOwoKIHZvaWQgKCpzZXRfb3B0aW9uYWxfY3Vy
c29yX2F0dHJpYnV0ZXMpKAogICBzdHJ1Y3QgZHBwICpkcHBfYmFzZSwKICAgc3RydWN0IGRwcF9j
dXJzb3JfYXR0cmlidXRlcyAqYXR0cik7Cgogdm9pZCAoKmRwcF9kcHBjbGtfY29udHJvbCkoCiAg
IHN0cnVjdCBkcHAgKmRwcF9iYXNlLAogICBib29sIGRwcGNsa19kaXYsCiAgIGJvb2wgZW5hYmxl
KTsKCiBib29sICgqZHBwX3Byb2dyYW1fYmxuZF9sdXQpKAogICBzdHJ1Y3QgZHBwICpkcHAsCiAg
IGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1zICpwYXJhbXMpOwogYm9vbCAoKmRwcF9wcm9ncmFtX3No
YXBlcl9sdXQpKAogICBzdHJ1Y3QgZHBwICpkcHAsCiAgIGNvbnN0IHN0cnVjdCBwd2xfcGFyYW1z
ICpwYXJhbXMpOwogYm9vbCAoKmRwcF9wcm9ncmFtXzNkbHV0KSgKICAgc3RydWN0IGRwcCAqZHBw
LAogICBzdHJ1Y3QgdGV0cmFoZWRyYWxfcGFyYW1zICpwYXJhbXMpOwogdm9pZCAoKmRwcF9jbnZf
c2V0X2FscGhhX2tleWVyKSgKICAgc3RydWN0IGRwcCAqZHBwX2Jhc2UsCiAgIHN0cnVjdCBjbnZf
Y29sb3Jfa2V5ZXJfcGFyYW1zICpjb2xvcl9rZXllcik7Cn07CiMgODYgIi4vZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5oIiAyCgpzdHJ1Y3Qg
cmVzb3VyY2VfcG9vbDsKc3RydWN0IGRjX3N0YXRlOwpzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dDsK
c3RydWN0IGNsa19id19wYXJhbXM7CgpzdHJ1Y3QgcmVzb3VyY2VfZnVuY3Mgewogdm9pZCAoKmRl
c3Ryb3kpKHN0cnVjdCByZXNvdXJjZV9wb29sICoqcG9vbCk7CiB2b2lkICgqbGlua19pbml0KShz
dHJ1Y3QgZGNfbGluayAqbGluayk7CiBzdHJ1Y3QgbGlua19lbmNvZGVyICooKmxpbmtfZW5jX2Ny
ZWF0ZSkoCiAgIGNvbnN0IHN0cnVjdCBlbmNvZGVyX2luaXRfZGF0YSAqaW5pdCk7CiBib29sICgq
dmFsaWRhdGVfYmFuZHdpZHRoKSgKICAgICBzdHJ1Y3QgZGMgKmRjLAogICAgIHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCwKICAgICBib29sIGZhc3RfdmFsaWRhdGUpOwoKIGludCAoKnBvcHVsYXRl
X2RtbF9waXBlcykoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQs
CiAgZGlzcGxheV9lMmVfcGlwZV9wYXJhbXNfc3QgKnBpcGVzKTsKCiBlbnVtIGRjX3N0YXR1cyAo
KnZhbGlkYXRlX2dsb2JhbCkoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNv
bnRleHQpOwoKIHN0cnVjdCBwaXBlX2N0eCAqKCphY3F1aXJlX2lkbGVfcGlwZV9mb3JfbGF5ZXIp
KAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9w
b29sICpwb29sLAogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwoKIGVudW0gZGNf
c3RhdHVzICgqdmFsaWRhdGVfcGxhbmUpKGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh
bmVfc3RhdGUsIHN0cnVjdCBkY19jYXBzICpjYXBzKTsKCiBlbnVtIGRjX3N0YXR1cyAoKmFkZF9z
dHJlYW1fdG9fY3R4KSgKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGRjX3N0YXRlICpuZXdf
Y3R4LAogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0pOwoKIGVudW0gZGNfc3Rh
dHVzICgqcmVtb3ZlX3N0cmVhbV9mcm9tX2N0eCkoCiAgICBzdHJ1Y3QgZGMgKmRjLAogICAgc3Ry
dWN0IGRjX3N0YXRlICpuZXdfY3R4LAogICAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFt
KTsKIGVudW0gZGNfc3RhdHVzICgqZ2V0X2RlZmF1bHRfc3dpenpsZV9tb2RlKSgKICAgc3RydWN0
IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cgogc3RydWN0IHN0cmVhbV9lbmNvZGVyICoo
KmZpbmRfZmlyc3RfZnJlZV9tYXRjaF9zdHJlYW1fZW5jX2Zvcl9saW5rKSgKICAgc3RydWN0IHJl
c291cmNlX2NvbnRleHQgKnJlc19jdHgsCiAgIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpw
b29sLAogICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pOwogdm9pZCAoKnBvcHVsYXRl
X2RtbF93cml0ZWJhY2tfZnJvbV9jb250ZXh0KSgKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0
IHJlc291cmNlX2NvbnRleHQgKnJlc19jdHgsCiAgIGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1zX3N0
ICpwaXBlcyk7Cgogdm9pZCAoKnNldF9tY2lmX2FyYl9wYXJhbXMpKAogICBzdHJ1Y3QgZGMgKmRj
LAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAgIGRpc3BsYXlfZTJlX3BpcGVfcGFyYW1z
X3N0ICpwaXBlcywKICAgaW50IHBpcGVfY250KTsKIHZvaWQgKCp1cGRhdGVfYndfYm91bmRpbmdf
Ym94KSgKICAgc3RydWN0IGRjICpkYywKICAgc3RydWN0IGNsa19id19wYXJhbXMgKmJ3X3BhcmFt
cyk7Cgp9OwoKc3RydWN0IGF1ZGlvX3N1cHBvcnR7CiBib29sIGRwX2F1ZGlvOwogYm9vbCBoZG1p
X2F1ZGlvX29uX2RvbmdsZTsKIGJvb2wgaGRtaV9hdWRpb19uYXRpdmU7Cn07CgoKCnN0cnVjdCBy
ZXNvdXJjZV9wb29sIHsKIHN0cnVjdCBtZW1faW5wdXQgKm1pc1s2XTsKIHN0cnVjdCBodWJwICpo
dWJwc1s2XTsKIHN0cnVjdCBpbnB1dF9waXhlbF9wcm9jZXNzb3IgKmlwcHNbNl07CiBzdHJ1Y3Qg
dHJhbnNmb3JtICp0cmFuc2Zvcm1zWzZdOwogc3RydWN0IGRwcCAqZHBwc1s2XTsKIHN0cnVjdCBv
dXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHBzWzZdOwogc3RydWN0IHRpbWluZ19nZW5lcmF0b3Ig
KnRpbWluZ19nZW5lcmF0b3JzWzZdOwogc3RydWN0IHN0cmVhbV9lbmNvZGVyICpzdHJlYW1fZW5j
WzYgKiAyXTsKIHN0cnVjdCBodWJidWIgKmh1YmJ1YjsKIHN0cnVjdCBtcGMgKm1wYzsKIHN0cnVj
dCBwcF9zbXVfZnVuY3MgKnBwX3NtdTsKIHN0cnVjdCBkY2VfYXV4ICplbmdpbmVzWzZdOwogc3Ry
dWN0IGRjZV9pMmNfaHcgKmh3X2kyY3NbNl07CiBzdHJ1Y3QgZGNlX2kyY19zdyAqc3dfaTJjc1s2
XTsKIGJvb2wgaTJjX2h3X2J1ZmZlcl9pbl91c2U7Cgogc3RydWN0IGR3YmMgKmR3YmNbMV07CiBz
dHJ1Y3QgbWNpZl93YiAqbWNpZl93YlsxXTsKIHN0cnVjdCB7CiAgdW5zaWduZWQgaW50IGdzbF8w
OjE7CiAgdW5zaWduZWQgaW50IGdzbF8xOjE7CiAgdW5zaWduZWQgaW50IGdzbF8yOjE7CiB9IGdz
bF9ncm91cHM7Cgogc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzY3NbNl07Cgog
dW5zaWduZWQgaW50IHBpcGVfY291bnQ7CiB1bnNpZ25lZCBpbnQgdW5kZXJsYXlfcGlwZV9pbmRl
eDsKIHVuc2lnbmVkIGludCBzdHJlYW1fZW5jX2NvdW50OwoKIHN0cnVjdCB7CiAgdW5zaWduZWQg
aW50IHh0YWxpbl9jbG9ja19pbktoejsKICB1bnNpZ25lZCBpbnQgZGNjZ19yZWZfY2xvY2tfaW5L
aHo7CiAgdW5zaWduZWQgaW50IGRjaHViX3JlZl9jbG9ja19pbktoejsKIH0gcmVmX2Nsb2NrczsK
IHVuc2lnbmVkIGludCB0aW1pbmdfZ2VuZXJhdG9yX2NvdW50OwogdW5zaWduZWQgaW50IG1wY2Nf
Y291bnQ7CgogdW5zaWduZWQgaW50IHdyaXRlYmFja19waXBlX2NvdW50OwoKCgogc3RydWN0IGNs
b2NrX3NvdXJjZSAqZHBfY2xvY2tfc291cmNlOwoKIHN0cnVjdCBjbG9ja19zb3VyY2UgKmNsb2Nr
X3NvdXJjZXNbN107CiB1bnNpZ25lZCBpbnQgY2xrX3NyY19jb3VudDsKCiBzdHJ1Y3QgYXVkaW8g
KmF1ZGlvc1s3XTsKIHVuc2lnbmVkIGludCBhdWRpb19jb3VudDsKIHN0cnVjdCBhdWRpb19zdXBw
b3J0IGF1ZGlvX3N1cHBvcnQ7Cgogc3RydWN0IGRjY2cgKmRjY2c7CiBzdHJ1Y3QgaXJxX3NlcnZp
Y2UgKmlycXM7Cgogc3RydWN0IGFibSAqYWJtOwogc3RydWN0IGRtY3UgKmRtY3U7CiBzdHJ1Y3Qg
ZG11Yl9wc3IgKnBzcjsKCiBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfZnVuY3MgKmZ1bmNzOwogY29u
c3Qgc3RydWN0IHJlc291cmNlX2NhcHMgKnJlc19jYXA7Cgogc3RydWN0IGRkY19zZXJ2aWNlICpv
ZW1fZGV2aWNlOwp9OwoKc3RydWN0IGRjbl9mZV9iYW5kd2lkdGggewogaW50IGRwcGNsa19raHo7
Cgp9OwoKc3RydWN0IHN0cmVhbV9yZXNvdXJjZSB7CiBzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nl
c3NvciAqb3BwOwogc3RydWN0IGRpc3BsYXlfc3RyZWFtX2NvbXByZXNzb3IgKmRzYzsKIHN0cnVj
dCB0aW1pbmdfZ2VuZXJhdG9yICp0ZzsKIHN0cnVjdCBzdHJlYW1fZW5jb2RlciAqc3RyZWFtX2Vu
YzsKIHN0cnVjdCBhdWRpbyAqYXVkaW87Cgogc3RydWN0IHBpeGVsX2Nsa19wYXJhbXMgcGl4X2Ns
a19wYXJhbXM7CiBzdHJ1Y3QgZW5jb2Rlcl9pbmZvX2ZyYW1lIGVuY29kZXJfaW5mb19mcmFtZTsK
CiBzdHJ1Y3QgYWJtICphYm07CgoKCiB1aW50OF90IGdzbF9ncm91cDsKfTsKCnN0cnVjdCBwbGFu
ZV9yZXNvdXJjZSB7CiBzdHJ1Y3Qgc2NhbGVyX2RhdGEgc2NsX2RhdGE7CiBzdHJ1Y3QgaHVicCAq
aHVicDsKIHN0cnVjdCBtZW1faW5wdXQgKm1pOwogc3RydWN0IGlucHV0X3BpeGVsX3Byb2Nlc3Nv
ciAqaXBwOwogc3RydWN0IHRyYW5zZm9ybSAqeGZtOwogc3RydWN0IGRwcCAqZHBwOwogdWludDhf
dCBtcGNjX2luc3Q7Cgogc3RydWN0IGRjbl9mZV9iYW5kd2lkdGggYnc7Cn07Cgp1bmlvbiBwaXBl
X3VwZGF0ZV9mbGFncyB7CiBzdHJ1Y3QgewogIHVpbnQzMl90IGVuYWJsZSA6IDE7CiAgdWludDMy
X3QgZGlzYWJsZSA6IDE7CiAgdWludDMyX3Qgb2RtIDogMTsKICB1aW50MzJfdCBnbG9iYWxfc3lu
YyA6IDE7CiAgdWludDMyX3Qgb3BwX2NoYW5nZWQgOiAxOwogIHVpbnQzMl90IHRnX2NoYW5nZWQg
OiAxOwogIHVpbnQzMl90IG1wY2MgOiAxOwogIHVpbnQzMl90IGRwcGNsayA6IDE7CiAgdWludDMy
X3QgaHVicF9pbnRlcmRlcGVuZGVudCA6IDE7CiAgdWludDMyX3QgaHVicF9ycV9kbGdfdHR1IDog
MTsKICB1aW50MzJfdCBnYW11dF9yZW1hcCA6IDE7CiAgdWludDMyX3Qgc2NhbGVyIDogMTsKICB1
aW50MzJfdCB2aWV3cG9ydCA6IDE7CiB9IGJpdHM7CiB1aW50MzJfdCByYXc7Cn07CgpzdHJ1Y3Qg
cGlwZV9jdHggewogc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKIHN0cnVjdCBk
Y19zdHJlYW1fc3RhdGUgKnN0cmVhbTsKCiBzdHJ1Y3QgcGxhbmVfcmVzb3VyY2UgcGxhbmVfcmVz
Owogc3RydWN0IHN0cmVhbV9yZXNvdXJjZSBzdHJlYW1fcmVzOwoKIHN0cnVjdCBjbG9ja19zb3Vy
Y2UgKmNsb2NrX3NvdXJjZTsKCiBzdHJ1Y3QgcGxsX3NldHRpbmdzIHBsbF9zZXR0aW5nczsKCiB1
aW50OF90IHBpcGVfaWR4OwoKIHN0cnVjdCBwaXBlX2N0eCAqdG9wX3BpcGU7CiBzdHJ1Y3QgcGlw
ZV9jdHggKmJvdHRvbV9waXBlOwogc3RydWN0IHBpcGVfY3R4ICpuZXh0X29kbV9waXBlOwogc3Ry
dWN0IHBpcGVfY3R4ICpwcmV2X29kbV9waXBlOwoKCiBzdHJ1Y3QgX3Zjc19kcGlfZGlzcGxheV9k
bGdfcmVnc19zdCBkbGdfcmVnczsKIHN0cnVjdCBfdmNzX2RwaV9kaXNwbGF5X3R0dV9yZWdzX3N0
IHR0dV9yZWdzOwogc3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcnFfcmVnc19zdCBycV9yZWdzOwog
c3RydWN0IF92Y3NfZHBpX2Rpc3BsYXlfcGlwZV9kZXN0X3BhcmFtc19zdCBwaXBlX2RsZ19wYXJh
bTsKCiB1bmlvbiBwaXBlX3VwZGF0ZV9mbGFncyB1cGRhdGVfZmxhZ3M7CiBzdHJ1Y3QgZHdiYyAq
ZHdiYzsKIHN0cnVjdCBtY2lmX3diICptY2lmX3diOwp9OwoKc3RydWN0IHJlc291cmNlX2NvbnRl
eHQgewogc3RydWN0IHBpcGVfY3R4IHBpcGVfY3R4WzZdOwogYm9vbCBpc19zdHJlYW1fZW5jX2Fj
cXVpcmVkWzYgKiAyXTsKIGJvb2wgaXNfYXVkaW9fYWNxdWlyZWRbNl07CiB1aW50OF90IGNsb2Nr
X3NvdXJjZV9yZWZfY291bnRbN107CiB1aW50OF90IGRwX2Nsb2NrX3NvdXJjZV9yZWZfY291bnQ7
CiBib29sIGlzX2RzY19hY3F1aXJlZFs2XTsKfTsKCnN0cnVjdCBkY2VfYndfb3V0cHV0IHsKIGJv
b2wgY3B1Y19zdGF0ZV9jaGFuZ2VfZW5hYmxlOwogYm9vbCBjcHVwX3N0YXRlX2NoYW5nZV9lbmFi
bGU7CiBib29sIHN0dXR0ZXJfbW9kZV9lbmFibGU7CiBib29sIG5icF9zdGF0ZV9jaGFuZ2VfZW5h
YmxlOwogYm9vbCBhbGxfZGlzcGxheXNfaW5fc3luYzsKIHN0cnVjdCBkY2Vfd2F0ZXJtYXJrcyB1
cmdlbnRfd21fbnNbNl07CiBzdHJ1Y3QgZGNlX3dhdGVybWFya3Mgc3R1dHRlcl9leGl0X3dtX25z
WzZdOwogc3RydWN0IGRjZV93YXRlcm1hcmtzIHN0dXR0ZXJfZW50cnlfd21fbnNbNl07CiBzdHJ1
Y3QgZGNlX3dhdGVybWFya3MgbmJwX3N0YXRlX2NoYW5nZV93bV9uc1s2XTsKIGludCBzY2xrX2to
ejsKIGludCBzY2xrX2RlZXBfc2xlZXBfa2h6OwogaW50IHljbGtfa2h6OwogaW50IGRpc3BjbGtf
a2h6OwogaW50IGJsYWNrb3V0X3JlY292ZXJ5X3RpbWVfdXM7Cn07CgpzdHJ1Y3QgZGNuX2J3X3dy
aXRlYmFjayB7CiBzdHJ1Y3QgbWNpZl9hcmJfcGFyYW1zIG1jaWZfd2JfYXJiWzFdOwp9OwoKc3Ry
dWN0IGRjbl9id19vdXRwdXQgewogc3RydWN0IGRjX2Nsb2NrcyBjbGs7CiBzdHJ1Y3QgZGNuX3dh
dGVybWFya19zZXQgd2F0ZXJtYXJrczsKIHN0cnVjdCBkY25fYndfd3JpdGViYWNrIGJ3X3dyaXRl
YmFjazsKfTsKCnVuaW9uIGJ3X291dHB1dCB7CiBzdHJ1Y3QgZGNuX2J3X291dHB1dCBkY247CiBz
dHJ1Y3QgZGNlX2J3X291dHB1dCBkY2U7Cn07CgpzdHJ1Y3QgYndfY29udGV4dCB7CiB1bmlvbiBi
d19vdXRwdXQgYnc7CiBzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiBkbWw7Cn07CiMgMzYxICIuL2Ry
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2NvcmVfdHlwZXMuaCIK
c3RydWN0IGRjX3N0YXRlIHsKIHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbXNbNl07CiBz
dHJ1Y3QgZGNfc3RyZWFtX3N0YXR1cyBzdHJlYW1fc3RhdHVzWzZdOwogdWludDhfdCBzdHJlYW1f
Y291bnQ7Cgogc3RydWN0IHJlc291cmNlX2NvbnRleHQgcmVzX2N0eDsKCiBzdHJ1Y3QgYndfY29u
dGV4dCBid19jdHg7CgoKIHN0cnVjdCBkbV9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gcHBfZGlz
cGxheV9jZmc7Cgogc3RydWN0IGRjbl9id19pbnRlcm5hbF92YXJzIGRjbl9id192YXJzOwoKCiBz
dHJ1Y3QgY2xrX21nciAqY2xrX21ncjsKCiBzdHJ1Y3Qga3JlZiByZWZjb3VudDsKfTsKIyAyOSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9yZXNvdXJjZS5o
IiAyCgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9pbmNsdWRl
L2RhbF9hc2ljX2lkLmgiIDEKIyAxNjggIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
ZGlzcGxheS9pbmNsdWRlL2RhbF9hc2ljX2lkLmgiCmVudW0gewogTlZfTkFWSTEwX1BfQTAgPSAx
LAogTlZfTkFWSTEyX1BfQTAgPSAxMCwKIE5WX05BVkkxNF9NX0EwID0gMjAsCiBOVl9VTktOT1dO
ID0gMHhGRgp9OwojIDMxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv
ZGMvaW5jL3Jlc291cmNlLmgiIDIKCgoKCgoKZW51bSBkY2VfdmVyc2lvbiByZXNvdXJjZV9wYXJz
ZV9hc2ljX2lkKAogIHN0cnVjdCBod19hc2ljX2lkIGFzaWNfaWQpOwoKc3RydWN0IHJlc291cmNl
X2NhcHMgewogaW50IG51bV90aW1pbmdfZ2VuZXJhdG9yOwogaW50IG51bV9vcHA7CiBpbnQgbnVt
X3ZpZGVvX3BsYW5lOwogaW50IG51bV9hdWRpbzsKIGludCBudW1fc3RyZWFtX2VuY29kZXI7CiBp
bnQgbnVtX3BsbDsKIGludCBudW1fZHdiOwogaW50IG51bV9kZGM7CiBpbnQgbnVtX3ZtaWQ7CiBp
bnQgbnVtX2RzYzsKfTsKCnN0cnVjdCByZXNvdXJjZV9zdHJhcHMgewogdWludDMyX3QgaGRtaV9k
aXNhYmxlOwogdWludDMyX3QgZGNfcGluc3RyYXBzX2F1ZGlvOwogdWludDMyX3QgYXVkaW9fc3Ry
ZWFtX251bWJlcjsKfTsKCnN0cnVjdCByZXNvdXJjZV9jcmVhdGVfZnVuY3Mgewogdm9pZCAoKnJl
YWRfZGNlX3N0cmFwcykoCiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHN0cnVjdCByZXNvdXJj
ZV9zdHJhcHMgKnN0cmFwcyk7Cgogc3RydWN0IGF1ZGlvICooKmNyZWF0ZV9hdWRpbykoCiAgIHN0
cnVjdCBkY19jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCBpbnN0KTsKCiBzdHJ1Y3Qgc3RyZWFt
X2VuY29kZXIgKigqY3JlYXRlX3N0cmVhbV9lbmNvZGVyKSgKICAgZW51bSBlbmdpbmVfaWQgZW5n
X2lkLCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4KTsKCiBzdHJ1Y3QgZGNlX2h3c2VxICooKmNyZWF0
ZV9od3NlcSkoCiAgIHN0cnVjdCBkY19jb250ZXh0ICpjdHgpOwp9OwoKYm9vbCByZXNvdXJjZV9j
b25zdHJ1Y3QoCiB1bnNpZ25lZCBpbnQgbnVtX3ZpcnR1YWxfbGlua3MsCiBzdHJ1Y3QgZGMgKmRj
LAogc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCiBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfY3Jl
YXRlX2Z1bmNzICpjcmVhdGVfZnVuY3MpOwoKc3RydWN0IHJlc291cmNlX3Bvb2wgKmRjX2NyZWF0
ZV9yZXNvdXJjZV9wb29sKHN0cnVjdCBkYyAqZGMsCiAgICAgICAgICAgY29uc3Qgc3RydWN0IGRj
X2luaXRfZGF0YSAqaW5pdF9kYXRhLAogICAgICAgICAgIGVudW0gZGNlX3ZlcnNpb24gZGNfdmVy
c2lvbik7Cgp2b2lkIGRjX2Rlc3Ryb3lfcmVzb3VyY2VfcG9vbChzdHJ1Y3QgZGMgKmRjKTsKCmVu
dW0gZGNfc3RhdHVzIHJlc291cmNlX21hcF9wb29sX3Jlc291cmNlcygKICBjb25zdCBzdHJ1Y3Qg
ZGMgKmRjLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0
YXRlICpzdHJlYW0pOwoKYm9vbCByZXNvdXJjZV9idWlsZF9zY2FsaW5nX3BhcmFtcyhzdHJ1Y3Qg
cGlwZV9jdHggKnBpcGVfY3R4KTsKCmVudW0gZGNfc3RhdHVzIHJlc291cmNlX2J1aWxkX3NjYWxp
bmdfcGFyYW1zX2Zvcl9jb250ZXh0KAogIGNvbnN0IHN0cnVjdCBkYyAqZGMsCiAgc3RydWN0IGRj
X3N0YXRlICpjb250ZXh0KTsKCnZvaWQgcmVzb3VyY2VfYnVpbGRfaW5mb19mcmFtZShzdHJ1Y3Qg
cGlwZV9jdHggKnBpcGVfY3R4KTsKCnZvaWQgcmVzb3VyY2VfdW5yZWZlcmVuY2VfY2xvY2tfc291
cmNlKAogIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpyZXNfY3R4LAogIGNvbnN0IHN0cnVjdCBy
ZXNvdXJjZV9wb29sICpwb29sLAogIHN0cnVjdCBjbG9ja19zb3VyY2UgKmNsb2NrX3NvdXJjZSk7
Cgp2b2lkIHJlc291cmNlX3JlZmVyZW5jZV9jbG9ja19zb3VyY2UoCiAgc3RydWN0IHJlc291cmNl
X2NvbnRleHQgKnJlc19jdHgsCiAgY29uc3Qgc3RydWN0IHJlc291cmNlX3Bvb2wgKnBvb2wsCiAg
c3RydWN0IGNsb2NrX3NvdXJjZSAqY2xvY2tfc291cmNlKTsKCmludCByZXNvdXJjZV9nZXRfY2xv
Y2tfc291cmNlX3JlZmVyZW5jZSgKICBzdHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwK
ICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCwKICBzdHJ1Y3QgY2xvY2tfc291cmNl
ICpjbG9ja19zb3VyY2UpOwoKYm9vbCByZXNvdXJjZV9hcmVfc3RyZWFtc190aW1pbmdfc3luY2hy
b25pemFibGUoCiAgc3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtMSwKICBzdHJ1Y3QgZGNf
c3RyZWFtX3N0YXRlICpzdHJlYW0yKTsKCnN0cnVjdCBjbG9ja19zb3VyY2UgKnJlc291cmNlX2Zp
bmRfdXNlZF9jbGtfc3JjX2Zvcl9zaGFyaW5nKAogIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0ICpy
ZXNfY3R4LAogIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwoKc3RydWN0IGNsb2NrX3NvdXJj
ZSAqZGNfcmVzb3VyY2VfZmluZF9maXJzdF9mcmVlX3BsbCgKICBzdHJ1Y3QgcmVzb3VyY2VfY29u
dGV4dCAqcmVzX2N0eCwKICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCk7CgpzdHJ1
Y3QgcGlwZV9jdHggKnJlc291cmNlX2dldF9oZWFkX3BpcGVfZm9yX3N0cmVhbSgKICBzdHJ1Y3Qg
cmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl
YW0pOwoKYm9vbCByZXNvdXJjZV9hdHRhY2hfc3VyZmFjZXNfdG9fY29udGV4dCgKICBzdHJ1Y3Qg
ZGNfcGxhbmVfc3RhdGUgKmNvbnN0ICpwbGFuZV9zdGF0ZSwKICBpbnQgc3VyZmFjZV9jb3VudCwK
ICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpkY19zdHJlYW0sCiAgc3RydWN0IGRjX3N0YXRlICpj
b250ZXh0LAogIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sKTsKCnN0cnVjdCBwaXBl
X2N0eCAqZmluZF9pZGxlX3NlY29uZGFyeV9waXBlKAogIHN0cnVjdCByZXNvdXJjZV9jb250ZXh0
ICpyZXNfY3R4LAogIGNvbnN0IHN0cnVjdCByZXNvdXJjZV9wb29sICpwb29sLAogIGNvbnN0IHN0
cnVjdCBwaXBlX2N0eCAqcHJpbWFyeV9waXBlKTsKCmJvb2wgcmVzb3VyY2VfaXNfc3RyZWFtX3Vu
Y2hhbmdlZCgKIHN0cnVjdCBkY19zdGF0ZSAqb2xkX2NvbnRleHQsIHN0cnVjdCBkY19zdHJlYW1f
c3RhdGUgKnN0cmVhbSk7Cgpib29sIHJlc291cmNlX3ZhbGlkYXRlX2F0dGFjaF9zdXJmYWNlcygK
ICBjb25zdCBzdHJ1Y3QgZGNfdmFsaWRhdGlvbl9zZXQgc2V0W10sCiAgaW50IHNldF9jb3VudCwK
ICBjb25zdCBzdHJ1Y3QgZGNfc3RhdGUgKm9sZF9jb250ZXh0LAogIHN0cnVjdCBkY19zdGF0ZSAq
Y29udGV4dCwKICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2VfcG9vbCAqcG9vbCk7Cgp2b2lkIHJlc291
cmNlX3ZhbGlkYXRlX2N0eF91cGRhdGVfcG9pbnRlcl9hZnRlcl9jb3B5KAogIGNvbnN0IHN0cnVj
dCBkY19zdGF0ZSAqc3JjX2N0eCwKICBzdHJ1Y3QgZGNfc3RhdGUgKmRzdF9jdHgpOwoKZW51bSBk
Y19zdGF0dXMgcmVzb3VyY2VfbWFwX2Nsb2NrX3Jlc291cmNlcygKICBjb25zdCBzdHJ1Y3QgZGMg
KmRjLAogIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKICBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl
ICpzdHJlYW0pOwoKZW51bSBkY19zdGF0dXMgcmVzb3VyY2VfbWFwX3BoeV9jbG9ja19yZXNvdXJj
ZXMoCiAgY29uc3Qgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAg
c3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtKTsKCmJvb2wgcGlwZV9uZWVkX3JlcHJvZ3Jh
bSgKICBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4X29sZCwKICBzdHJ1Y3QgcGlwZV9jdHggKnBp
cGVfY3R4KTsKCnZvaWQgcmVzb3VyY2VfYnVpbGRfYml0X2RlcHRoX3JlZHVjdGlvbl9wYXJhbXMo
c3RydWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogIHN0cnVjdCBiaXRfZGVwdGhfcmVkdWN0
aW9uX3BhcmFtcyAqZm10X2JpdF9kZXB0aCk7Cgp2b2lkIHVwZGF0ZV9hdWRpb191c2FnZSgKICBz
dHJ1Y3QgcmVzb3VyY2VfY29udGV4dCAqcmVzX2N0eCwKICBjb25zdCBzdHJ1Y3QgcmVzb3VyY2Vf
cG9vbCAqcG9vbCwKICBzdHJ1Y3QgYXVkaW8gKmF1ZGlvLAogIGJvb2wgYWNxdWlyZWQpOwoKdW5z
aWduZWQgaW50IHJlc291cmNlX3BpeGVsX2Zvcm1hdF90b19icHAoZW51bSBzdXJmYWNlX3BpeGVs
X2Zvcm1hdCBmb3JtYXQpOwoKdm9pZCBnZXRfYXVkaW9fY2hlY2soc3RydWN0IGF1ZGlvX2luZm8g
KmF1ZF9tb2RlcywKIHN0cnVjdCBhdWRpb19jaGVjayAqYXVkX2Noayk7CiMgMzcgIi4vZHJpdmVy
cy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvaHcvY2xrX21ncl9pbnRlcm5h
bC5oIiAyCgoKCmVudW0gZGVudGlzdF9iYXNlX2RpdmlkZXJfaWQgewogREVOVElTVF9CQVNFX0RJ
RF8xID0gMHgwOCwKIERFTlRJU1RfQkFTRV9ESURfMiA9IDB4NDAsCiBERU5USVNUX0JBU0VfRElE
XzMgPSAweDYwLAogREVOVElTVF9CQVNFX0RJRF80ID0gMHg3ZSwKIERFTlRJU1RfTUFYX0RJRCA9
IDB4N2YKfTsKCgplbnVtIGRlbnRpc3RfZGl2aWRlcl9yYW5nZSB7CiBERU5USVNUX0RJVklERVJf
UkFOR0VfMV9TVEFSVCA9IDgsCiBERU5USVNUX0RJVklERVJfUkFOR0VfMV9TVEVQID0gMSwKIERF
TlRJU1RfRElWSURFUl9SQU5HRV8yX1NUQVJUID0gNjQsCiBERU5USVNUX0RJVklERVJfUkFOR0Vf
Ml9TVEVQID0gMiwKIERFTlRJU1RfRElWSURFUl9SQU5HRV8zX1NUQVJUID0gMTI4LAogREVOVElT
VF9ESVZJREVSX1JBTkdFXzNfU1RFUCA9IDQsCiBERU5USVNUX0RJVklERVJfUkFOR0VfNF9TVEFS
VCA9IDI0OCwKIERFTlRJU1RfRElWSURFUl9SQU5HRV80X1NURVAgPSAyNjQsCiBERU5USVNUX0RJ
VklERVJfUkFOR0VfU0NBTEVfRkFDVE9SID0gNAp9OwojIDE1MSAiLi9kcml2ZXJzL2dwdS9kcm0v
YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgiCnN0cnVj
dCBjbGtfbWdyX3NoaWZ0IHsKIHVpbnQ4X3QgRFBSRUZDTEtfU1JDX1NFTDsgdWludDhfdCBERU5U
SVNUX0RQUkVGQ0xLX1dESVZJREVSOyB1aW50OF90IERFTlRJU1RfRElTUENMS19XRElWSURFUjsg
dWludDhfdCBERU5USVNUX0RJU1BDTEtfQ0hHX0RPTkU7CiB1aW50OF90IERFTlRJU1RfRFBQQ0xL
X1dESVZJREVSOyB1aW50OF90IERFTlRJU1RfRFBQQ0xLX0NIR19ET05FOyB1aW50OF90IEZiTXVs
dF9pbnQ7IHVpbnQ4X3QgRmJNdWx0X2ZyYWM7CiB1aW50MzJfdCBDT05URU5UOwp9OwoKc3RydWN0
IGNsa19tZ3JfbWFzayB7CiB1aW50MzJfdCBEUFJFRkNMS19TUkNfU0VMOyB1aW50MzJfdCBERU5U
SVNUX0RQUkVGQ0xLX1dESVZJREVSOyB1aW50MzJfdCBERU5USVNUX0RJU1BDTEtfV0RJVklERVI7
IHVpbnQzMl90IERFTlRJU1RfRElTUENMS19DSEdfRE9ORTsKIHVpbnQzMl90IERFTlRJU1RfRFBQ
Q0xLX1dESVZJREVSOyB1aW50MzJfdCBERU5USVNUX0RQUENMS19DSEdfRE9ORTsgdWludDMyX3Qg
RmJNdWx0X2ludDsgdWludDMyX3QgRmJNdWx0X2ZyYWM7CiB1aW50MzJfdCBDT05URU5UOwp9OwoK
c3RydWN0IGNsa19tZ3JfcmVnaXN0ZXJzIHsKIHVpbnQzMl90IERQUkVGQ0xLX0NOVEw7CiB1aW50
MzJfdCBERU5USVNUX0RJU1BDTEtfQ05UTDsKCiB1aW50MzJfdCBDTEszX0NMSzJfREZTX0NOVEw7
CiB1aW50MzJfdCBDTEszX0NMS19QTExfUkVROwoKIHVpbnQzMl90IE1QMV9TTU5fQzJQTVNHXzY3
OwogdWludDMyX3QgTVAxX1NNTl9DMlBNU0dfODM7CiB1aW50MzJfdCBNUDFfU01OX0MyUE1TR185
MTsKfTsKCmVudW0gY2xvY2tfdHlwZSB7CiBjbG9ja190eXBlX2Rpc3BjbGsgPSAxLAogY2xvY2tf
dHlwZV9kY2ZjbGssCiBjbG9ja190eXBlX3NvY2NsaywKIGNsb2NrX3R5cGVfcGl4ZWxjbGssCiBj
bG9ja190eXBlX3BoeWNsaywKIGNsb2NrX3R5cGVfZHBwY2xrLAogY2xvY2tfdHlwZV9mY2xrLAog
Y2xvY2tfdHlwZV9kY2Zkc2NsaywKIGNsb2NrX3R5cGVfZHNjY2xrLAogY2xvY2tfdHlwZV91Y2xr
LAogY2xvY2tfdHlwZV9kcmFtY2xrLAp9OwoKCnN0cnVjdCBzdGF0ZV9kZXBlbmRlbnRfY2xvY2tz
IHsKIGludCBkaXNwbGF5X2Nsa19raHo7CiBpbnQgcGl4ZWxfY2xrX2toejsKfTsKCnN0cnVjdCBj
bGtfbWdyX2ludGVybmFsIHsKIHN0cnVjdCBjbGtfbWdyIGJhc2U7CiBpbnQgc211X3ZlcjsKIHN0
cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdTsKIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsX2Z1bmNz
ICpmdW5jczsKCiBzdHJ1Y3QgZGNjZyAqZGNjZzsKCgoKCgoKCiBjb25zdCBzdHJ1Y3QgY2xrX21n
cl9yZWdpc3RlcnMgKnJlZ3M7CiBjb25zdCBzdHJ1Y3QgY2xrX21ncl9zaGlmdCAqY2xrX21ncl9z
aGlmdDsKIGNvbnN0IHN0cnVjdCBjbGtfbWdyX21hc2sgKmNsa19tZ3JfbWFzazsKCiBzdHJ1Y3Qg
c3RhdGVfZGVwZW5kZW50X2Nsb2NrcyBtYXhfY2xrc19ieV9zdGF0ZVtETV9QUF9DTE9DS1NfTUFY
X1NUQVRFU107CgoKCiBib29sIGRmc19ieXBhc3NfZW5hYmxlZDsKCiBib29sIGRmc19ieXBhc3Nf
YWN0aXZlOwoKIHVpbnQzMl90IGRmc19yZWZfZnJlcV9raHo7CgoKCgogaW50IGRmc19ieXBhc3Nf
ZGlzcF9jbGs7CgoKCgoKCiBib29sIHNzX29uX2RwcmVmY2xrOwoKCgoKCgoKIGJvb2wgeGdtaV9l
bmFibGVkOwojIDI1MiAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgiCiBpbnQgZHByZWZjbGtfc3NfcGVyY2VudGFnZTsK
CgoKCgoKIGludCBkcHJlZmNsa19zc19kaXZpZGVyOwoKIGVudW0gZG1fcHBfY2xvY2tzX3N0YXRl
IG1heF9jbGtzX3N0YXRlOwogZW51bSBkbV9wcF9jbG9ja3Nfc3RhdGUgY3VyX21pbl9jbGtzX3N0
YXRlOwp9OwoKc3RydWN0IGNsa19tZ3JfaW50ZXJuYWxfZnVuY3MgewogaW50ICgqc2V0X2Rpc3Bj
bGspKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVkX2Rpc3Bj
bGtfa2h6KTsKIGludCAoKnNldF9kcHJlZmNsaykoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNs
a19tZ3IpOwp9OwojIDI3OCAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5
L2RjL2luYy9ody9jbGtfbWdyX2ludGVybmFsLmgiCnN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVf
XygoX19nbnVfaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgX19hdHRyaWJ1
dGVfXygobm9faW5zdHJ1bWVudF9mdW5jdGlvbikpIGJvb2wgc2hvdWxkX3NldF9jbG9jayhib29s
IHNhZmVfdG9fbG93ZXIsIGludCBjYWxjX2NsaywgaW50IGN1cl9jbGspCnsKIHJldHVybiAoKHNh
ZmVfdG9fbG93ZXIgJiYgY2FsY19jbGsgPCBjdXJfY2xrKSB8fCBjYWxjX2NsayA+IGN1cl9jbGsp
Owp9CgpzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fKSkgX19hdHRy
aWJ1dGVfXygoX191bnVzZWRfXykpIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rp
b24pKSBib29sIHNob3VsZF91cGRhdGVfcHN0YXRlX3N1cHBvcnQoYm9vbCBzYWZlX3RvX2xvd2Vy
LCBib29sIGNhbGNfc3VwcG9ydCwgYm9vbCBjdXJfc3VwcG9ydCkKewogaWYgKGN1cl9zdXBwb3J0
ICE9IGNhbGNfc3VwcG9ydCkgewogIGlmIChjYWxjX3N1cHBvcnQgPT0gdHJ1ZSAmJiBzYWZlX3Rv
X2xvd2VyKQogICByZXR1cm4gdHJ1ZTsKICBlbHNlIGlmIChjYWxjX3N1cHBvcnQgPT0gZmFsc2Ug
JiYgIXNhZmVfdG9fbG93ZXIpCiAgIHJldHVybiB0cnVlOwogfQoKIHJldHVybiBmYWxzZTsKfQoK
aW50IGNsa19tZ3JfaGVscGVyX2dldF9hY3RpdmVfZGlzcGxheV9jbnQoCiAgc3RydWN0IGRjICpk
YywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwojIDI4ICJkcml2ZXJzL2dwdS9kcm0vYW1k
L2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiAyCgoKIyAx
ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24y
MC9kY24yMF9jbGtfbWdyLmgiIDEKIyAyOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjAvZGNuMjBfY2xrX21nci5oIgp2b2lkIGRjbjJfdXBk
YXRlX2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqZGNjZywKICAgc3RydWN0IGRjX3N0YXRlICpjb250
ZXh0LAogICBib29sIHNhZmVfdG9fbG93ZXIpOwoKdm9pZCBkY24yX3VwZGF0ZV9jbG9ja3NfZnBn
YShzdHJ1Y3QgY2xrX21nciAqY2xrX21nciwKICAgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAog
ICBib29sIHNhZmVfdG9fbG93ZXIpOwp2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRlX2Rw
cF9kdG8oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsCiAgc3RydWN0IGRjX3N0YXRl
ICpjb250ZXh0LCBib29sIHNhZmVfdG9fbG93ZXIpOwoKdm9pZCBkY24yX2luaXRfY2xvY2tzKHN0
cnVjdCBjbGtfbWdyICpjbGtfbWdyKTsKCnZvaWQgZGNuMjBfY2xrX21ncl9jb25zdHJ1Y3Qoc3Ry
dWN0IGRjX2NvbnRleHQgKmN0eCwKICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwK
ICBzdHJ1Y3QgcHBfc211X2Z1bmNzICpwcF9zbXUsCiAgc3RydWN0IGRjY2cgKmRjY2cpOwoKdWlu
dDMyX3QgZGVudGlzdF9nZXRfZGlkX2Zyb21fZGl2aWRlcihpbnQgZGl2aWRlcik7Cgp2b2lkIGRj
bjJfZ2V0X2Nsb2NrKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyLAogIHN0cnVjdCBkY19zdGF0ZSAq
Y29udGV4dCwKICAgZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCiAgIHN0cnVjdCBkY19j
bG9ja19jb25maWcgKmNsb2NrX2NmZyk7Cgp2b2lkIGRjbjIwX3VwZGF0ZV9jbG9ja3NfdXBkYXRl
X2RlbnRpc3Qoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwoKdm9pZCBkY24yX3Jl
YWRfY2xvY2tzX2Zyb21faHdfZGVudGlzdChzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKTsK
IyAzMSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2Rj
bjIxL3JuX2Nsa19tZ3IuYyIgMgojIDEgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdyLmgiIDEKIyAyOSAiZHJpdmVycy9ncHUv
ZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuaCIK
IyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvaW5jL2h3L2Ns
a19tZ3IuaCIgMQojIDMwICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj
L2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5oIiAyCgoKc3RydWN0IHJuX2Nsa19yZWdpc3RlcnMg
ewogdWludDMyX3QgQ0xLMV9DTEswX0NVUlJFTlRfQ05UOwp9OwoKdm9pZCBybl9jbGtfbWdyX2Nv
bnN0cnVjdChzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHN0cnVjdCBjbGtfbWdyX2ludGVybmFs
ICpjbGtfbWdyLAogIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwKICBzdHJ1Y3QgZGNjZyAq
ZGNjZyk7CiMgMzIgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xr
X21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKCgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEwMC9kY2VfY2xrX21nci5oIiAxCiMgMzMg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjZTEw
MC9kY2VfY2xrX21nci5oIgppbnQgZGNlX2FkanVzdF9kcF9yZWZfZnJlcV9mb3Jfc3Moc3RydWN0
IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3JfZGNlLCBpbnQgZHBfcmVmX2Nsa19raHopOwppbnQg
ZGNlX2dldF9kcF9yZWZfZnJlcV9raHooc3RydWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSk7CmVu
dW0gZG1fcHBfY2xvY2tzX3N0YXRlIGRjZV9nZXRfcmVxdWlyZWRfY2xvY2tzX3N0YXRlKAogc3Ry
dWN0IGNsa19tZ3IgKmNsa19tZ3JfYmFzZSwKIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Cgp1
aW50MzJfdCBkY2VfZ2V0X21heF9waXhlbF9jbG9ja19mb3JfYWxsX3BhdGhzKHN0cnVjdCBkY19z
dGF0ZSAqY29udGV4dCk7CgoKdm9pZCBkY2VfY2xrX21ncl9jb25zdHJ1Y3QoCiAgc3RydWN0IGRj
X2NvbnRleHQgKmN0eCwKICBzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21ncl9kY2UpOwoK
dm9pZCBkY2VfY2xvY2tfcmVhZF9zc19pbmZvKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpkY2Nn
X2RjZSk7CgppbnQgZGNlMTJfZ2V0X2RwX3JlZl9mcmVxX2toeihzdHJ1Y3QgY2xrX21nciAqZGNj
Zyk7CgppbnQgZGNlX3NldF9jbG9jaygKIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UsCiBp
bnQgcmVxdWVzdGVkX2Nsa19raHopOwoKCnZvaWQgZGNlX2Nsa19tZ3JfZGVzdHJveShzdHJ1Y3Qg
Y2xrX21nciAqKmNsa19tZ3IpOwoKaW50IGRlbnRpc3RfZ2V0X2RpdmlkZXJfZnJvbV9kaWQoaW50
IGRpZCk7CiMgMzUgImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xr
X21nci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKIyAxICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw
dS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21ncl92Ymlvc19zbXUuaCIgMQoj
IDI5ICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNu
MjEvcm5fY2xrX21ncl92Ymlvc19zbXUuaCIKaW50IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNp
b24oc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IpOwppbnQgcm5fdmJpb3Nfc211X3Nl
dF9kaXNwY2xrKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyLCBpbnQgcmVxdWVzdGVk
X2Rpc3BjbGtfa2h6KTsKaW50IHJuX3ZiaW9zX3NtdV9zZXRfZHByZWZjbGsoc3RydWN0IGNsa19t
Z3JfaW50ZXJuYWwgKmNsa19tZ3IpOwppbnQgcm5fdmJpb3Nfc211X3NldF9oYXJkX21pbl9kY2Zj
bGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfZGNmY2xr
X2toeik7CmludCBybl92Ymlvc19zbXVfc2V0X21pbl9kZWVwX3NsZWVwX2RjZmNsayhzdHJ1Y3Qg
Y2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9taW5fZHNfZGNmY2xrX2to
eik7CnZvaWQgcm5fdmJpb3Nfc211X3NldF9waHljbGsoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwg
KmNsa19tZ3IsIGludCByZXF1ZXN0ZWRfcGh5Y2xrX2toeik7CmludCBybl92Ymlvc19zbXVfc2V0
X2RwcGNsayhzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciwgaW50IHJlcXVlc3RlZF9k
cHBfa2h6KTsKdm9pZCBybl92Ymlvc19zbXVfc2V0X2Rjbl9sb3dfcG93ZXJfc3RhdGUoc3RydWN0
IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IsIGludCBkaXNwbGF5X2NvdW50KTsKdm9pZCBybl92
Ymlvc19zbXVfZW5hYmxlXzQ4bWh6X3RtZHBfcmVmY2xrX3B3cmR3bihzdHJ1Y3QgY2xrX21ncl9p
bnRlcm5hbCAqY2xrX21nciwgYm9vbCBlbmFibGUpOwp2b2lkIHJuX3ZiaW9zX3NtdV9lbmFibGVf
cG1lX3dhKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtfbWdyKTsKIyAzNiAiZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3Iu
YyIgMgojIDEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMv
cmVnX2hlbHBlci5oIiAxCiMgMzkxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rp
c3BsYXkvZGMvaW5jL3JlZ19oZWxwZXIuaCIKdWludDMyX3QgZ2VuZXJpY19yZWdfZ2V0KGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCiAgdWludDhfdCBzaGlmdCwg
dWludDMyX3QgbWFzaywgdWludDMyX3QgKmZpZWxkX3ZhbHVlKTsKCnVpbnQzMl90IGdlbmVyaWNf
cmVnX2dldDIoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3QgYWRkciwKICB1
aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCiAg
dWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFsdWUyKTsK
CnVpbnQzMl90IGdlbmVyaWNfcmVnX2dldDMoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwg
dWludDMyX3QgYWRkciwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90
ICpmaWVsZF92YWx1ZTEsCiAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJf
dCAqZmllbGRfdmFsdWUyLAogIHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWludDMy
X3QgKmZpZWxkX3ZhbHVlMyk7Cgp1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ0KGNvbnN0IHN0cnVj
dCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCiAgdWludDhfdCBzaGlmdDEsIHVpbnQz
Ml90IG1hc2sxLCB1aW50MzJfdCAqZmllbGRfdmFsdWUxLAogIHVpbnQ4X3Qgc2hpZnQyLCB1aW50
MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKICB1aW50OF90IHNoaWZ0MywgdWlu
dDMyX3QgbWFzazMsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTMsCiAgdWludDhfdCBzaGlmdDQsIHVp
bnQzMl90IG1hc2s0LCB1aW50MzJfdCAqZmllbGRfdmFsdWU0KTsKCnVpbnQzMl90IGdlbmVyaWNf
cmVnX2dldDUoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3QgYWRkciwKICB1
aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCiAg
dWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRfdmFsdWUyLAog
IHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWludDMyX3QgKmZpZWxkX3ZhbHVlMywK
ICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTQs
CiAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1aW50MzJfdCAqZmllbGRfdmFsdWU1
KTsKCnVpbnQzMl90IGdlbmVyaWNfcmVnX2dldDYoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0
eCwgdWludDMyX3QgYWRkciwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQz
Ml90ICpmaWVsZF92YWx1ZTEsCiAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50
MzJfdCAqZmllbGRfdmFsdWUyLAogIHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWlu
dDMyX3QgKmZpZWxkX3ZhbHVlMywKICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVp
bnQzMl90ICpmaWVsZF92YWx1ZTQsCiAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1
aW50MzJfdCAqZmllbGRfdmFsdWU1LAogIHVpbnQ4X3Qgc2hpZnQ2LCB1aW50MzJfdCBtYXNrNiwg
dWludDMyX3QgKmZpZWxkX3ZhbHVlNik7Cgp1aW50MzJfdCBnZW5lcmljX3JlZ19nZXQ3KGNvbnN0
IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsIHVpbnQzMl90IGFkZHIsCiAgdWludDhfdCBzaGlmdDEs
IHVpbnQzMl90IG1hc2sxLCB1aW50MzJfdCAqZmllbGRfdmFsdWUxLAogIHVpbnQ4X3Qgc2hpZnQy
LCB1aW50MzJfdCBtYXNrMiwgdWludDMyX3QgKmZpZWxkX3ZhbHVlMiwKICB1aW50OF90IHNoaWZ0
MywgdWludDMyX3QgbWFzazMsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTMsCiAgdWludDhfdCBzaGlm
dDQsIHVpbnQzMl90IG1hc2s0LCB1aW50MzJfdCAqZmllbGRfdmFsdWU0LAogIHVpbnQ4X3Qgc2hp
ZnQ1LCB1aW50MzJfdCBtYXNrNSwgdWludDMyX3QgKmZpZWxkX3ZhbHVlNSwKICB1aW50OF90IHNo
aWZ0NiwgdWludDMyX3QgbWFzazYsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTYsCiAgdWludDhfdCBz
aGlmdDcsIHVpbnQzMl90IG1hc2s3LCB1aW50MzJfdCAqZmllbGRfdmFsdWU3KTsKCnVpbnQzMl90
IGdlbmVyaWNfcmVnX2dldDgoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwgdWludDMyX3Qg
YWRkciwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90ICpmaWVsZF92
YWx1ZTEsCiAgdWludDhfdCBzaGlmdDIsIHVpbnQzMl90IG1hc2syLCB1aW50MzJfdCAqZmllbGRf
dmFsdWUyLAogIHVpbnQ4X3Qgc2hpZnQzLCB1aW50MzJfdCBtYXNrMywgdWludDMyX3QgKmZpZWxk
X3ZhbHVlMywKICB1aW50OF90IHNoaWZ0NCwgdWludDMyX3QgbWFzazQsIHVpbnQzMl90ICpmaWVs
ZF92YWx1ZTQsCiAgdWludDhfdCBzaGlmdDUsIHVpbnQzMl90IG1hc2s1LCB1aW50MzJfdCAqZmll
bGRfdmFsdWU1LAogIHVpbnQ4X3Qgc2hpZnQ2LCB1aW50MzJfdCBtYXNrNiwgdWludDMyX3QgKmZp
ZWxkX3ZhbHVlNiwKICB1aW50OF90IHNoaWZ0NywgdWludDMyX3QgbWFzazcsIHVpbnQzMl90ICpm
aWVsZF92YWx1ZTcsCiAgdWludDhfdCBzaGlmdDgsIHVpbnQzMl90IG1hc2s4LCB1aW50MzJfdCAq
ZmllbGRfdmFsdWU4KTsKIyA0ODEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlz
cGxheS9kYy9pbmMvcmVnX2hlbHBlci5oIgp2b2lkIGdlbmVyaWNfd3JpdGVfaW5kaXJlY3RfcmVn
KGNvbnN0IHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgdWludDMyX3QgYWRkcl9pbmRleCwgdWlu
dDMyX3QgYWRkcl9kYXRhLAogIHVpbnQzMl90IGluZGV4LCB1aW50MzJfdCBkYXRhKTsKCnVpbnQz
Ml90IGdlbmVyaWNfcmVhZF9pbmRpcmVjdF9yZWcoY29uc3Qgc3RydWN0IGRjX2NvbnRleHQgKmN0
eCwKICB1aW50MzJfdCBhZGRyX2luZGV4LCB1aW50MzJfdCBhZGRyX2RhdGEsCiAgdWludDMyX3Qg
aW5kZXgpOwoKdWludDMyX3QgZ2VuZXJpY19pbmRpcmVjdF9yZWdfZ2V0KGNvbnN0IHN0cnVjdCBk
Y19jb250ZXh0ICpjdHgsCiAgdWludDMyX3QgYWRkcl9pbmRleCwgdWludDMyX3QgYWRkcl9kYXRh
LAogIHVpbnQzMl90IGluZGV4LCBpbnQgbiwKICB1aW50OF90IHNoaWZ0MSwgdWludDMyX3QgbWFz
azEsIHVpbnQzMl90ICpmaWVsZF92YWx1ZTEsCiAgLi4uKTsKCnVpbnQzMl90IGdlbmVyaWNfaW5k
aXJlY3RfcmVnX3VwZGF0ZV9leChjb25zdCBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHVpbnQz
Ml90IGFkZHJfaW5kZXgsIHVpbnQzMl90IGFkZHJfZGF0YSwKICB1aW50MzJfdCBpbmRleCwgdWlu
dDMyX3QgcmVnX3ZhbCwgaW50IG4sCiAgdWludDhfdCBzaGlmdDEsIHVpbnQzMl90IG1hc2sxLCB1
aW50MzJfdCBmaWVsZF92YWx1ZTEsCiAgLi4uKTsKIyAzNyAiZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgojIDEgIi4v
ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9pbmMvY29yZV90eXBlcy5o
IiAxCiMgMzggImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21n
ci9kY24yMS9ybl9jbGtfbWdyLmMiIDIKIyAxICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1
Ly4uL2Rpc3BsYXkvZGMvZG1faGVscGVycy5oIiAxCiMgMzQgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbV9oZWxwZXJzLmgiCiMgMSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjLmgiIDEKIyAzNSAiLi9kcml2ZXJzL2dwdS9k
cm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RtX2hlbHBlcnMuaCIgMgoKc3RydWN0IGRwX21z
dF9zdHJlYW1fYWxsb2NhdGlvbl90YWJsZTsKCmVudW0gZGNfZWRpZF9zdGF0dXMgZG1faGVscGVy
c19wYXJzZV9lZGlkX2NhcHMoCiBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogY29uc3Qgc3RydWN0
IGRjX2VkaWQgKmVkaWQsCiBzdHJ1Y3QgZGNfZWRpZF9jYXBzICplZGlkX2NhcHMpOwoKCgoKCnZv
aWQgZG1faGVscGVyc19kcF91cGRhdGVfYnJhbmNoX2luZm8oCiAgc3RydWN0IGRjX2NvbnRleHQg
KmN0eCwKICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluayk7CgoKCgpib29sIGRtX2hlbHBlcnNf
ZHBfbXN0X3dyaXRlX3BheWxvYWRfYWxsb2NhdGlvbl90YWJsZSgKICBzdHJ1Y3QgZGNfY29udGV4
dCAqY3R4LAogIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKICBzdHJ1Y3Qg
ZHBfbXN0X3N0cmVhbV9hbGxvY2F0aW9uX3RhYmxlICpwcm9wb3NlZF90YWJsZSwKICBib29sIGVu
YWJsZSk7CgoKCgp2b2lkIGRtX2hlbHBlcnNfZHBfbXN0X3BvbGxfcGVuZGluZ19kb3duX3JlcGx5
KAogc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsK
CgoKCnZvaWQgZG1faGVscGVyc19kcF9tc3RfY2xlYXJfcGF5bG9hZF9hbGxvY2F0aW9uX3RhYmxl
KAogc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rKTsK
CgoKCmVudW0gYWN0X3JldHVybl9zdGF0dXMgZG1faGVscGVyc19kcF9tc3RfcG9sbF9mb3JfYWxs
b2NhdGlvbl9jaGFuZ2VfdHJpZ2dlcigKICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIGNvbnN0
IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7CgoKCmJvb2wgZG1faGVscGVyc19kcF9t
c3Rfc2VuZF9wYXlsb2FkX2FsbG9jYXRpb24oCiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICBj
b25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCiAgYm9vbCBlbmFibGUpOwoKYm9v
bCBkbV9oZWxwZXJzX2RwX21zdF9zdGFydF90b3BfbWdyKAogIHN0cnVjdCBkY19jb250ZXh0ICpj
dHgsCiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmssCiAgYm9vbCBib290KTsKCnZvaWQgZG1f
aGVscGVyc19kcF9tc3Rfc3RvcF90b3BfbWdyKAogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAg
Y29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoKCgpib29sIGRtX2hlbHBlcnNfZHBfcmVhZF9k
cGNkKAogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxp
bmssCiAgdWludDMyX3QgYWRkcmVzcywKICB1aW50OF90ICpkYXRhLAogIHVpbnQzMl90IHNpemUp
OwoKCgoKYm9vbCBkbV9oZWxwZXJzX2RwX3dyaXRlX2RwY2QoCiAgc3RydWN0IGRjX2NvbnRleHQg
KmN0eCwKICBjb25zdCBzdHJ1Y3QgZGNfbGluayAqbGluaywKICB1aW50MzJfdCBhZGRyZXNzLAog
IGNvbnN0IHVpbnQ4X3QgKmRhdGEsCiAgdWludDMyX3Qgc2l6ZSk7Cgpib29sIGRtX2hlbHBlcnNf
c3VibWl0X2kyYygKICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIGNvbnN0IHN0cnVjdCBkY19s
aW5rICpsaW5rLAogIHN0cnVjdCBpMmNfY29tbWFuZCAqY21kKTsKCmJvb2wgZG1faGVscGVyc19k
cF93cml0ZV9kc2NfZW5hYmxlKAogIHN0cnVjdCBkY19jb250ZXh0ICpjdHgsCiAgY29uc3Qgc3Ry
dWN0IGRjX3N0cmVhbV9zdGF0ZSAqc3RyZWFtLAogIGJvb2wgZW5hYmxlCik7CmJvb2wgZG1faGVs
cGVyc19pc19kcF9zaW5rX3ByZXNlbnQoCiAgc3RydWN0IGRjX2xpbmsgKmxpbmspOwoKZW51bSBk
Y19lZGlkX3N0YXR1cyBkbV9oZWxwZXJzX3JlYWRfbG9jYWxfZWRpZCgKICBzdHJ1Y3QgZGNfY29u
dGV4dCAqY3R4LAogIHN0cnVjdCBkY19saW5rICpsaW5rLAogIHN0cnVjdCBkY19zaW5rICpzaW5r
KTsKCnZvaWQgZG1fc2V0X2Rjbl9jbG9ja3MoCiAgc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKICBz
dHJ1Y3QgZGNfY2xvY2tzICpjbGtzKTsKIyAzOSAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgoKIyAxICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiIDEKIyAzOCAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgpl
bnVtIGF0b21fYmlvc19oZWFkZXJfdmVyc2lvbl9kZWZ7CiAgQVRPTV9NQUpPUl9WRVJTSU9OID0w
eDAwMDMsCiAgQVRPTV9NSU5PUl9WRVJTSU9OID0weDAwMDMsCn07CiMgNTcgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKZW51bSBhdG9tX2Ny
dGNfZGVmewogIEFUT01fQ1JUQzEgPTAsCiAgQVRPTV9DUlRDMiA9MSwKICBBVE9NX0NSVEMzID0y
LAogIEFUT01fQ1JUQzQgPTMsCiAgQVRPTV9DUlRDNSA9NCwKICBBVE9NX0NSVEM2ID01LAogIEFU
T01fQ1JUQ19JTlZBTElEID0weGZmLAp9OwoKZW51bSBhdG9tX3BwbGxfZGVmewogIEFUT01fUFBM
TDAgPTIsCiAgQVRPTV9HQ0tfREZTID04LAogIEFUT01fRkNIX0NMSyA9OSwKICBBVE9NX0RQX0RU
TyA9MTEsCiAgQVRPTV9DT01CT1BIWV9QTEwwID0yMCwKICBBVE9NX0NPTUJPUEhZX1BMTDEgPTIx
LAogIEFUT01fQ09NQk9QSFlfUExMMiA9MjIsCiAgQVRPTV9DT01CT1BIWV9QTEwzID0yMywKICBB
VE9NX0NPTUJPUEhZX1BMTDQgPTI0LAogIEFUT01fQ09NQk9QSFlfUExMNSA9MjUsCiAgQVRPTV9Q
UExMX0lOVkFMSUQgPTB4ZmYsCn07CgoKZW51bSBhdG9tX2RpZ19kZWZ7CiAgQVNJQ19JTlRfRElH
MV9FTkNPREVSX0lEID0weDAzLAogIEFTSUNfSU5UX0RJRzJfRU5DT0RFUl9JRCA9MHgwOSwKICBB
U0lDX0lOVF9ESUczX0VOQ09ERVJfSUQgPTB4MGEsCiAgQVNJQ19JTlRfRElHNF9FTkNPREVSX0lE
ID0weDBiLAogIEFTSUNfSU5UX0RJRzVfRU5DT0RFUl9JRCA9MHgwYywKICBBU0lDX0lOVF9ESUc2
X0VOQ09ERVJfSUQgPTB4MGQsCiAgQVNJQ19JTlRfRElHN19FTkNPREVSX0lEID0weDBlLAp9OwoK
CmVudW0gYXRvbV9lbmNvZGVfbW9kZV9kZWYKewogIEFUT01fRU5DT0RFUl9NT0RFX0RQID0wLAog
IEFUT01fRU5DT0RFUl9NT0RFX0RQX1NTVCA9MCwKICBBVE9NX0VOQ09ERVJfTU9ERV9MVkRTID0x
LAogIEFUT01fRU5DT0RFUl9NT0RFX0RWSSA9MiwKICBBVE9NX0VOQ09ERVJfTU9ERV9IRE1JID0z
LAogIEFUT01fRU5DT0RFUl9NT0RFX0RQX0FVRElPID01LAogIEFUT01fRU5DT0RFUl9NT0RFX0RQ
X01TVCA9NSwKICBBVE9NX0VOQ09ERVJfTU9ERV9DUlQgPTE1LAogIEFUT01fRU5DT0RFUl9NT0RF
X0RWTyA9MTYsCn07CgplbnVtIGF0b21fZW5jb2Rlcl9yZWZjbGtfc3JjX2RlZnsKICBFTkNPREVS
X1JFRkNMS19TUkNfUDFQTEwgPTAsCiAgRU5DT0RFUl9SRUZDTEtfU1JDX1AyUExMID0xLAogIEVO
Q09ERVJfUkVGQ0xLX1NSQ19QM1BMTCA9MiwKICBFTkNPREVSX1JFRkNMS19TUkNfRVhUQ0xLID0z
LAogIEVOQ09ERVJfUkVGQ0xLX1NSQ19JTlZBTElEID0weGZmLAp9OwoKZW51bSBhdG9tX3NjYWxl
cl9kZWZ7CiAgQVRPTV9TQ0FMRVJfRElTQUJMRSA9MCwKICBBVE9NX1NDQUxFUl9DRU5URVIgPTEs
CiAgQVRPTV9TQ0FMRVJfRVhQQU5TSU9OID0yLAp9OwoKZW51bSBhdG9tX29wZXJhdGlvbl9kZWZ7
CiAgQVRPTV9ESVNBQkxFID0gMCwKICBBVE9NX0VOQUJMRSA9IDEsCiAgQVRPTV9JTklUID0gNywK
ICBBVE9NX0dFVF9TVEFUVVMgPSA4LAp9OwoKZW51bSBhdG9tX2VtYmVkZGVkX2Rpc3BsYXlfb3Bf
ZGVmewogIEFUT01fTENEX0JMX09GRiA9IDIsCiAgQVRPTV9MQ0RfQkxfT00gPSAzLAogIEFUT01f
TENEX0JMX0JSSUdIVE5FU1NfQ09OVFJPTCA9IDQsCiAgQVRPTV9MQ0RfU0VMRlRFU1RfU1RBUlQg
PSA1LAogIEFUT01fTENEX1NFTEZURVNUX1NUT1AgPSA2LAp9OwoKZW51bSBhdG9tX3NwcmVhZF9z
cGVjdHJ1bV9tb2RlewogIEFUT01fU1NfQ0VOVEVSX09SX0RPV05fTU9ERV9NQVNLID0gMHgwMSwK
ICBBVE9NX1NTX0RPV05fU1BSRUFEX01PREUgPSAweDAwLAogIEFUT01fU1NfQ0VOVFJFX1NQUkVB
RF9NT0RFID0gMHgwMSwKICBBVE9NX0lOVF9PUl9FWFRfU1NfTUFTSyA9IDB4MDIsCiAgQVRPTV9J
TlRFUk5BTF9TU19NQVNLID0gMHgwMCwKICBBVE9NX0VYVEVSTkFMX1NTX01BU0sgPSAweDAyLAp9
OwoKCmVudW0gYXRvbV9wYW5lbF9iaXRfcGVyX2NvbG9yewogIFBBTkVMX0JQQ19VTkRFRklORSA9
MHgwMCwKICBQQU5FTF82QklUX1BFUl9DT0xPUiA9MHgwMSwKICBQQU5FTF84QklUX1BFUl9DT0xP
UiA9MHgwMiwKICBQQU5FTF8xMEJJVF9QRVJfQ09MT1IgPTB4MDMsCiAgUEFORUxfMTJCSVRfUEVS
X0NPTE9SID0weDA0LAogIFBBTkVMXzE2QklUX1BFUl9DT0xPUiA9MHgwNSwKfTsKCgplbnVtIGF0
b21fdm9sdGFnZV90eXBlCnsKICBWT0xUQUdFX1RZUEVfVkREQyA9IDEsCiAgVk9MVEFHRV9UWVBF
X01WRERDID0gMiwKICBWT0xUQUdFX1RZUEVfTVZERFEgPSAzLAogIFZPTFRBR0VfVFlQRV9WRERD
SSA9IDQsCiAgVk9MVEFHRV9UWVBFX1ZEREdGWCA9IDUsCiAgVk9MVEFHRV9UWVBFX1BDQyA9IDYs
CiAgVk9MVEFHRV9UWVBFX01WUFAgPSA3LAogIFZPTFRBR0VfVFlQRV9MRUREUE0gPSA4LAogIFZP
TFRBR0VfVFlQRV9QQ0NfTVZERCA9IDksCiAgVk9MVEFHRV9UWVBFX1BDSUVfVkREQyA9IDEwLAog
IFZPTFRBR0VfVFlQRV9QQ0lFX1ZERFIgPSAxMSwKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNf
MSA9IDB4MTEsCiAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzIgPSAweDEyLAogIFZPTFRBR0Vf
VFlQRV9HRU5FUklDX0kyQ18zID0gMHgxMywKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfNCA9
IDB4MTQsCiAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzUgPSAweDE1LAogIFZPTFRBR0VfVFlQ
RV9HRU5FUklDX0kyQ182ID0gMHgxNiwKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfNyA9IDB4
MTcsCiAgVk9MVEFHRV9UWVBFX0dFTkVSSUNfSTJDXzggPSAweDE4LAogIFZPTFRBR0VfVFlQRV9H
RU5FUklDX0kyQ185ID0gMHgxOSwKICBWT0xUQUdFX1RZUEVfR0VORVJJQ19JMkNfMTAgPSAweDFB
LAp9OwoKZW51bSBhdG9tX2RncHVfdnJhbV90eXBlIHsKICBBVE9NX0RHUFVfVlJBTV9UWVBFX0dE
RFI1ID0gMHg1MCwKICBBVE9NX0RHUFVfVlJBTV9UWVBFX0hCTTIgPSAweDYwLAogIEFUT01fREdQ
VV9WUkFNX1RZUEVfR0REUjYgPSAweDcwLAp9OwoKZW51bSBhdG9tX2RwX3ZzX3ByZWVtcGhfZGVm
ewogIERQX1ZTX0xFVkVMMF9QUkVFTVBIX0xFVkVMMCA9IDB4MDAsCiAgRFBfVlNfTEVWRUwxX1BS
RUVNUEhfTEVWRUwwID0gMHgwMSwKICBEUF9WU19MRVZFTDJfUFJFRU1QSF9MRVZFTDAgPSAweDAy
LAogIERQX1ZTX0xFVkVMM19QUkVFTVBIX0xFVkVMMCA9IDB4MDMsCiAgRFBfVlNfTEVWRUwwX1BS
RUVNUEhfTEVWRUwxID0gMHgwOCwKICBEUF9WU19MRVZFTDFfUFJFRU1QSF9MRVZFTDEgPSAweDA5
LAogIERQX1ZTX0xFVkVMMl9QUkVFTVBIX0xFVkVMMSA9IDB4MGEsCiAgRFBfVlNfTEVWRUwwX1BS
RUVNUEhfTEVWRUwyID0gMHgxMCwKICBEUF9WU19MRVZFTDFfUFJFRU1QSF9MRVZFTDIgPSAweDEx
LAogIERQX1ZTX0xFVkVMMF9QUkVFTVBIX0xFVkVMMyA9IDB4MTgsCn07CiMgMjA4ICIuL2RyaXZl
cnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCiNwcmFnbWEg
cGFjaygxKQoKZW51bSBhdG9tYmlvc19pbWFnZV9vZmZzZXR7Ck9GRlNFVF9UT19BVE9NX1JPTV9I
RUFERVJfUE9JTlRFUiA9MHgwMDAwMDA0OCwKT0ZGU0VUX1RPX0FUT01fUk9NX0lNQUdFX1NJWkUg
PTB4MDAwMDAwMDIsCk9GRlNFVF9UT19BVE9NQklPU19BU0lDX0JVU19NRU1fVFlQRSA9MHg5NCwK
TUFYU0laRV9PRl9BVE9NQklPU19BU0lDX0JVU19NRU1fVFlQRSA9MjAsCk9GRlNFVF9UT19HRVRf
QVRPTUJJT1NfTlVNQkVSX09GX1NUUklOR1MgPTB4MmYsCk9GRlNFVF9UT19HRVRfQVRPTUJJT1Nf
U1RSSU5HX1NUQVJUID0weDZlLAp9OwoKCgoKCgoKc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hl
YWRlcgp7CiAgdWludDE2X3Qgc3RydWN0dXJlc2l6ZTsKICB1aW50OF90IGZvcm1hdF9yZXZpc2lv
bjsKICB1aW50OF90IGNvbnRlbnRfcmV2aXNpb247Cn07CgoKCgpzdHJ1Y3QgYXRvbV9yb21faGVh
ZGVyX3YyXzIKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVy
OwogIHVpbnQ4X3QgYXRvbV9iaW9zX3N0cmluZ1s0XTsKICB1aW50MTZfdCBiaW9zX3NlZ21lbnRf
YWRkcmVzczsKICB1aW50MTZfdCBwcm90ZWN0ZWRtb2Rlb2Zmc2V0OwogIHVpbnQxNl90IGNvbmZp
Z2ZpbGVuYW1lb2Zmc2V0OwogIHVpbnQxNl90IGNyY19ibG9ja19vZmZzZXQ7CiAgdWludDE2X3Qg
dmJpb3NfYm9vdHVwbWVzc2FnZW9mZnNldDsKICB1aW50MTZfdCBpbnQxMF9vZmZzZXQ7CiAgdWlu
dDE2X3QgcGNpYnVzZGV2aW5pdGNvZGU7CiAgdWludDE2X3QgaW9iYXNlYWRkcmVzczsKICB1aW50
MTZfdCBzdWJzeXN0ZW1fdmVuZG9yX2lkOwogIHVpbnQxNl90IHN1YnN5c3RlbV9pZDsKICB1aW50
MTZfdCBwY2lfaW5mb19vZmZzZXQ7CiAgdWludDE2X3QgbWFzdGVyaHdmdW5jdGlvbl9vZmZzZXQ7
CiAgdWludDE2X3QgbWFzdGVyZGF0YXRhYmxlX29mZnNldDsKICB1aW50MTZfdCByZXNlcnZlZDsK
ICB1aW50MzJfdCBwc3BkaXJ0YWJsZW9mZnNldDsKfTsKIyAyNjQgIi4vZHJpdmVycy9ncHUvZHJt
L2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IGF0b21fbWFzdGVy
X2xpc3Rfb2ZfY29tbWFuZF9mdW5jdGlvbnNfdjJfMXsKICB1aW50MTZfdCBhc2ljX2luaXQ7CiAg
dWludDE2X3QgY21kX2Z1bmN0aW9uMTsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yOwogIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjM7CiAgdWludDE2X3QgZGlneGVuY29kZXJjb250cm9sOwogIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjU7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjsKICB1aW50MTZfdCBj
bWRfZnVuY3Rpb243OwogIHVpbnQxNl90IGNtZF9mdW5jdGlvbjg7CiAgdWludDE2X3QgY21kX2Z1
bmN0aW9uOTsKICB1aW50MTZfdCBzZXRlbmdpbmVjbG9jazsKICB1aW50MTZfdCBzZXRtZW1vcnlj
bG9jazsKICB1aW50MTZfdCBzZXRwaXhlbGNsb2NrOwogIHVpbnQxNl90IGVuYWJsZWRpc3Bwb3dl
cmdhdGluZzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xNDsKICB1aW50MTZfdCBjbWRfZnVuY3Rp
b24xNTsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xNjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24x
NzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xODsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24xOTsK
ICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMDsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMTsKICB1
aW50MTZfdCBjbWRfZnVuY3Rpb24yMjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yMzsKICB1aW50
MTZfdCBjbWRfZnVuY3Rpb24yNDsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yNTsKICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24yNjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yNzsKICB1aW50MTZfdCBj
bWRfZnVuY3Rpb24yODsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24yOTsKICB1aW50MTZfdCBjbWRf
ZnVuY3Rpb24zMDsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zMTsKICB1aW50MTZfdCBjbWRfZnVu
Y3Rpb24zMjsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zMzsKICB1aW50MTZfdCBibGFua2NydGM7
CiAgdWludDE2X3QgZW5hYmxlY3J0YzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zNjsKICB1aW50
MTZfdCBjbWRfZnVuY3Rpb24zNzsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb24zODsKICB1aW50MTZf
dCBjbWRfZnVuY3Rpb24zOTsKICB1aW50MTZfdCBjbWRfZnVuY3Rpb240MDsKICB1aW50MTZfdCBn
ZXRzbXVjbG9ja2luZm87CiAgdWludDE2X3Qgc2VsZWN0Y3J0Y19zb3VyY2U7CiAgdWludDE2X3Qg
Y21kX2Z1bmN0aW9uNDM7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNDQ7CiAgdWludDE2X3QgY21k
X2Z1bmN0aW9uNDU7CiAgdWludDE2X3Qgc2V0ZGNlY2xvY2s7CiAgdWludDE2X3QgZ2V0bWVtb3J5
Y2xvY2s7CiAgdWludDE2X3QgZ2V0ZW5naW5lY2xvY2s7CiAgdWludDE2X3Qgc2V0Y3J0Y191c2lu
Z2R0ZHRpbWluZzsKICB1aW50MTZfdCBleHRlcm5hbGVuY29kZXJjb250cm9sOwogIHVpbnQxNl90
IGNtZF9mdW5jdGlvbjUxOwogIHVpbnQxNl90IGNtZF9mdW5jdGlvbjUyOwogIHVpbnQxNl90IGNt
ZF9mdW5jdGlvbjUzOwogIHVpbnQxNl90IHByb2Nlc3NpMmNjaGFubmVsdHJhbnNhY3Rpb247CiAg
dWludDE2X3QgY21kX2Z1bmN0aW9uNTU7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTY7CiAgdWlu
dDE2X3QgY21kX2Z1bmN0aW9uNTc7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNTg7CiAgdWludDE2
X3QgY21kX2Z1bmN0aW9uNTk7CiAgdWludDE2X3QgY29tcHV0ZWdwdWNsb2NrcGFyYW07CiAgdWlu
dDE2X3QgY21kX2Z1bmN0aW9uNjE7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjI7CiAgdWludDE2
X3QgZHluYW1pY21lbW9yeXNldHRpbmdzOwogIHVpbnQxNl90IG1lbW9yeXRyYWluaW5nOwogIHVp
bnQxNl90IGNtZF9mdW5jdGlvbjY1OwogIHVpbnQxNl90IGNtZF9mdW5jdGlvbjY2OwogIHVpbnQx
Nl90IHNldHZvbHRhZ2U7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNjg7CiAgdWludDE2X3QgcmVh
ZGVmdXNldmFsdWU7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzA7CiAgdWludDE2X3QgY21kX2Z1
bmN0aW9uNzE7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzI7CiAgdWludDE2X3QgY21kX2Z1bmN0
aW9uNzM7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9uNzQ7CiAgdWludDE2X3QgY21kX2Z1bmN0aW9u
NzU7CiAgdWludDE2X3QgZGlnMXRyYW5zbWl0dGVyY29udHJvbDsKICB1aW50MTZfdCBjbWRfZnVu
Y3Rpb243NzsKICB1aW50MTZfdCBwcm9jZXNzYXV4Y2hhbm5lbHRyYW5zYWN0aW9uOwogIHVpbnQx
Nl90IGNtZF9mdW5jdGlvbjc5OwogIHVpbnQxNl90IGdldHZvbHRhZ2VpbmZvOwp9OwoKc3RydWN0
IGF0b21fbWFzdGVyX2NvbW1hbmRfZnVuY3Rpb25fdjJfMQp7CiAgc3RydWN0IGF0b21fY29tbW9u
X3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgc3RydWN0IGF0b21fbWFzdGVyX2xpc3Rfb2Zf
Y29tbWFuZF9mdW5jdGlvbnNfdjJfMSBsaXN0b2ZjbWRmdW5jdGlvbnM7Cn07CgoKCgpzdHJ1Y3Qg
YXRvbV9mdW5jdGlvbl9hdHRyaWJ1dGUKewogIHVpbnQxNl90IHdzX2luX2J5dGVzOjg7CiAgdWlu
dDE2X3QgcHNfaW5fYnl0ZXM6NzsKICB1aW50MTZfdCB1cGRhdGVkX2J5X3V0aWw6MTsKfTsKCgoK
CgoKCnN0cnVjdCBhdG9tX3JvbV9od19mdW5jdGlvbl9oZWFkZXIKewogIHN0cnVjdCBhdG9tX2Nv
bW1vbl90YWJsZV9oZWFkZXIgZnVuY19oZWFkZXI7CiAgc3RydWN0IGF0b21fZnVuY3Rpb25fYXR0
cmlidXRlIGZ1bmNfYXR0cmliOwp9OwoKCgoKCgoKc3RydWN0IGF0b21fbWFzdGVyX2xpc3Rfb2Zf
ZGF0YV90YWJsZXNfdjJfMXsKICB1aW50MTZfdCB1dGlsaXR5cGlwZWxpbmU7CiAgdWludDE2X3Qg
bXVsdGltZWRpYV9pbmZvOwogIHVpbnQxNl90IHNtY19kcG1faW5mbzsKICB1aW50MTZfdCBzd19k
YXRhdGFibGUzOwogIHVpbnQxNl90IGZpcm13YXJlaW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFi
bGU1OwogIHVpbnQxNl90IGxjZF9pbmZvOwogIHVpbnQxNl90IHN3X2RhdGF0YWJsZTc7CiAgdWlu
dDE2X3Qgc211X2luZm87CiAgdWludDE2X3Qgc3dfZGF0YXRhYmxlOTsKICB1aW50MTZfdCBzd19k
YXRhdGFibGUxMDsKICB1aW50MTZfdCB2cmFtX3VzYWdlYnlmaXJtd2FyZTsKICB1aW50MTZfdCBn
cGlvX3Bpbl9sdXQ7CiAgdWludDE2X3Qgc3dfZGF0YXRhYmxlMTM7CiAgdWludDE2X3QgZ2Z4X2lu
Zm87CiAgdWludDE2X3QgcG93ZXJwbGF5aW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUxNjsK
ICB1aW50MTZfdCBzd19kYXRhdGFibGUxNzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUxODsKICB1
aW50MTZfdCBzd19kYXRhdGFibGUxOTsKICB1aW50MTZfdCBzd19kYXRhdGFibGUyMDsKICB1aW50
MTZfdCBzd19kYXRhdGFibGUyMTsKICB1aW50MTZfdCBkaXNwbGF5b2JqZWN0aW5mbzsKICB1aW50
MTZfdCBpbmRpcmVjdGlvYWNjZXNzOwogIHVpbnQxNl90IHVtY19pbmZvOwogIHVpbnQxNl90IHN3
X2RhdGF0YWJsZTI1OwogIHVpbnQxNl90IHN3X2RhdGF0YWJsZTI2OwogIHVpbnQxNl90IGRjZV9p
bmZvOwogIHVpbnQxNl90IHZyYW1faW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUyOTsKICB1
aW50MTZfdCBpbnRlZ3JhdGVkc3lzdGVtaW5mbzsKICB1aW50MTZfdCBhc2ljX3Byb2ZpbGluZ19p
bmZvOwogIHVpbnQxNl90IHZvbHRhZ2VvYmplY3RfaW5mbzsKICB1aW50MTZfdCBzd19kYXRhdGFi
bGUzMzsKICB1aW50MTZfdCBzd19kYXRhdGFibGUzNDsKfTsKCgpzdHJ1Y3QgYXRvbV9tYXN0ZXJf
ZGF0YV90YWJsZV92Ml8xCnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxl
X2hlYWRlcjsKICBzdHJ1Y3QgYXRvbV9tYXN0ZXJfbGlzdF9vZl9kYXRhX3RhYmxlc192Ml8xIGxp
c3RPZmRhdGF0YWJsZXM7Cn07CgoKc3RydWN0IGF0b21fZHRkX2Zvcm1hdAp7CiAgdWludDE2X3Qg
cGl4Y2xrOwogIHVpbnQxNl90IGhfYWN0aXZlOwogIHVpbnQxNl90IGhfYmxhbmtpbmdfdGltZTsK
ICB1aW50MTZfdCB2X2FjdGl2ZTsKICB1aW50MTZfdCB2X2JsYW5raW5nX3RpbWU7CiAgdWludDE2
X3QgaF9zeW5jX29mZnNldDsKICB1aW50MTZfdCBoX3N5bmNfd2lkdGg7CiAgdWludDE2X3Qgdl9z
eW5jX29mZnNldDsKICB1aW50MTZfdCB2X3N5bmN3aWR0aDsKICB1aW50MTZfdCByZXNlcnZlZDsK
ICB1aW50MTZfdCByZXNlcnZlZDA7CiAgdWludDhfdCBoX2JvcmRlcjsKICB1aW50OF90IHZfYm9y
ZGVyOwogIHVpbnQxNl90IG1pc2NpbmZvOwogIHVpbnQ4X3QgYXRvbV9tb2RlX2lkOwogIHVpbnQ4
X3QgcmVmcmVzaHJhdGU7Cn07CgoKZW51bSBhdG9tX2R0ZF9mb3JtYXRfbW9kZW1pc2NpbmZvewog
IEFUT01fSFNZTkNfUE9MQVJJVFkgPSAweDAwMDIsCiAgQVRPTV9WU1lOQ19QT0xBUklUWSA9IDB4
MDAwNCwKICBBVE9NX0hfUkVQTElDQVRJT05CWTIgPSAweDAwMTAsCiAgQVRPTV9WX1JFUExJQ0FU
SU9OQlkyID0gMHgwMDIwLAogIEFUT01fSU5URVJMQUNFID0gMHgwMDgwLAogIEFUT01fQ09NUE9T
SVRFU1lOQyA9IDB4MDA0MCwKfTsKIyA0NzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv
Li4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IGF0b21fZmlybXdhcmVfaW5mb192M18x
CnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50
MzJfdCBmaXJtd2FyZV9yZXZpc2lvbjsKICB1aW50MzJfdCBib290dXBfc2Nsa19pbjEwa2h6Owog
IHVpbnQzMl90IGJvb3R1cF9tY2xrX2luMTBraHo7CiAgdWludDMyX3QgZmlybXdhcmVfY2FwYWJp
bGl0eTsKICB1aW50MzJfdCBtYWluX2NhbGxfcGFyc2VyX2VudHJ5OwogIHVpbnQzMl90IGJpb3Nf
c2NyYXRjaF9yZWdfc3RhcnRhZGRyOwogIHVpbnQxNl90IGJvb3R1cF92ZGRjX212OwogIHVpbnQx
Nl90IGJvb3R1cF92ZGRjaV9tdjsKICB1aW50MTZfdCBib290dXBfbXZkZGNfbXY7CiAgdWludDE2
X3QgYm9vdHVwX3ZkZGdmeF9tdjsKICB1aW50OF90IG1lbV9tb2R1bGVfaWQ7CiAgdWludDhfdCBj
b29saW5nc29sdXRpb25faWQ7CiAgdWludDhfdCByZXNlcnZlZDFbMl07CiAgdWludDMyX3QgbWNf
YmFzZWFkZHJfaGlnaDsKICB1aW50MzJfdCBtY19iYXNlYWRkcl9sb3c7CiAgdWludDMyX3QgcmVz
ZXJ2ZWQyWzZdOwp9OwoKCmVudW0gYXRvbWJpb3NfZmlybXdhcmVfY2FwYWJpbGl0eQp7CiBBVE9N
X0ZJUk1XQVJFX0NBUF9GSVJNV0FSRV9QT1NURUQgPSAweDAwMDAwMDAxLAogQVRPTV9GSVJNV0FS
RV9DQVBfR1BVX1ZJUlRVQUxJWkFUSU9OID0gMHgwMDAwMDAwMiwKIEFUT01fRklSTVdBUkVfQ0FQ
X1dNSV9TVVBQT1JUID0gMHgwMDAwMDA0MCwKIEFUT01fRklSTVdBUkVfQ0FQX0hXRU1VX0VOQUJM
RSA9IDB4MDAwMDAwODAsCiBBVE9NX0ZJUk1XQVJFX0NBUF9IV0VNVV9VTUNfQ0ZHID0gMHgwMDAw
MDEwMCwKIEFUT01fRklSTVdBUkVfQ0FQX1NSQU1fRUNDID0gMHgwMDAwMDIwMCwKIEFUT01fRklS
TVdBUkVfQ0FQX0VOQUJMRV8yU1RBR0VfQklTVF9UUkFJTklORyA9IDB4MDAwMDA0MDAsCn07Cgpl
bnVtIGF0b21fY29vbGluZ19zb2x1dGlvbl9pZHsKICBBSVJfQ09PTElORyA9IDB4MDAsCiAgTElR
VUlEX0NPT0xJTkcgPSAweDAxCn07CgpzdHJ1Y3QgYXRvbV9maXJtd2FyZV9pbmZvX3YzXzIgewog
IHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90
IGZpcm13YXJlX3JldmlzaW9uOwogIHVpbnQzMl90IGJvb3R1cF9zY2xrX2luMTBraHo7CiAgdWlu
dDMyX3QgYm9vdHVwX21jbGtfaW4xMGtoejsKICB1aW50MzJfdCBmaXJtd2FyZV9jYXBhYmlsaXR5
OwogIHVpbnQzMl90IG1haW5fY2FsbF9wYXJzZXJfZW50cnk7CiAgdWludDMyX3QgYmlvc19zY3Jh
dGNoX3JlZ19zdGFydGFkZHI7CiAgdWludDE2X3QgYm9vdHVwX3ZkZGNfbXY7CiAgdWludDE2X3Qg
Ym9vdHVwX3ZkZGNpX212OwogIHVpbnQxNl90IGJvb3R1cF9tdmRkY19tdjsKICB1aW50MTZfdCBi
b290dXBfdmRkZ2Z4X212OwogIHVpbnQ4X3QgbWVtX21vZHVsZV9pZDsKICB1aW50OF90IGNvb2xp
bmdzb2x1dGlvbl9pZDsKICB1aW50OF90IHJlc2VydmVkMVsyXTsKICB1aW50MzJfdCBtY19iYXNl
YWRkcl9oaWdoOwogIHVpbnQzMl90IG1jX2Jhc2VhZGRyX2xvdzsKICB1aW50OF90IGJvYXJkX2ky
Y19mZWF0dXJlX2lkOwogIHVpbnQ4X3QgYm9hcmRfaTJjX2ZlYXR1cmVfZ3Bpb19pZDsKICB1aW50
OF90IGJvYXJkX2kyY19mZWF0dXJlX3NsYXZlX2FkZHI7CiAgdWludDhfdCByZXNlcnZlZDM7CiAg
dWludDE2X3QgYm9vdHVwX212ZGRxX212OwogIHVpbnQxNl90IGJvb3R1cF9tdnBwX212OwogIHVp
bnQzMl90IHpmYnN0YXJ0YWRkcmluMTZtYjsKICB1aW50MzJfdCByZXNlcnZlZDJbM107Cn07Cgpz
dHJ1Y3QgYXRvbV9maXJtd2FyZV9pbmZvX3YzXzMKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJs
ZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IGZpcm13YXJlX3JldmlzaW9uOwogIHVp
bnQzMl90IGJvb3R1cF9zY2xrX2luMTBraHo7CiAgdWludDMyX3QgYm9vdHVwX21jbGtfaW4xMGto
ejsKICB1aW50MzJfdCBmaXJtd2FyZV9jYXBhYmlsaXR5OwogIHVpbnQzMl90IG1haW5fY2FsbF9w
YXJzZXJfZW50cnk7CiAgdWludDMyX3QgYmlvc19zY3JhdGNoX3JlZ19zdGFydGFkZHI7CiAgdWlu
dDE2X3QgYm9vdHVwX3ZkZGNfbXY7CiAgdWludDE2X3QgYm9vdHVwX3ZkZGNpX212OwogIHVpbnQx
Nl90IGJvb3R1cF9tdmRkY19tdjsKICB1aW50MTZfdCBib290dXBfdmRkZ2Z4X212OwogIHVpbnQ4
X3QgbWVtX21vZHVsZV9pZDsKICB1aW50OF90IGNvb2xpbmdzb2x1dGlvbl9pZDsKICB1aW50OF90
IHJlc2VydmVkMVsyXTsKICB1aW50MzJfdCBtY19iYXNlYWRkcl9oaWdoOwogIHVpbnQzMl90IG1j
X2Jhc2VhZGRyX2xvdzsKICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX2lkOwogIHVpbnQ4X3Qg
Ym9hcmRfaTJjX2ZlYXR1cmVfZ3Bpb19pZDsKICB1aW50OF90IGJvYXJkX2kyY19mZWF0dXJlX3Ns
YXZlX2FkZHI7CiAgdWludDhfdCByZXNlcnZlZDM7CiAgdWludDE2X3QgYm9vdHVwX212ZGRxX212
OwogIHVpbnQxNl90IGJvb3R1cF9tdnBwX212OwogIHVpbnQzMl90IHpmYnN0YXJ0YWRkcmluMTZt
YjsKICB1aW50MzJfdCBwcGxpYl9wcHRhYmxlX2lkOwogIHVpbnQzMl90IHJlc2VydmVkMlsyXTsK
fTsKCgoKCgoKCnN0cnVjdCBsY2RfaW5mb192Ml8xCnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFi
bGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICBzdHJ1Y3QgYXRvbV9kdGRfZm9ybWF0IGxjZF90aW1p
bmc7CiAgdWludDE2X3QgYmFja2xpZ2h0X3B3bTsKICB1aW50MTZfdCBzcGVjaWFsX2hhbmRsZV9j
YXA7CiAgdWludDE2X3QgcGFuZWxfbWlzYzsKICB1aW50MTZfdCBsdmRzX21heF9zbGlua19wY2xr
OwogIHVpbnQxNl90IGx2ZHNfc3NfcGVyY2VudGFnZTsKICB1aW50MTZfdCBsdmRzX3NzX3JhdGVf
MTBoejsKICB1aW50OF90IHB3cl9vbl9kaWdvbl90b19kZTsKICB1aW50OF90IHB3cl9vbl9kZV90
b192YXJ5X2JsOwogIHVpbnQ4X3QgcHdyX2Rvd25fdmFyeV9ibG9mZl90b19kZTsKICB1aW50OF90
IHB3cl9kb3duX2RlX3RvX2RpZ29mZjsKICB1aW50OF90IHB3cl9vZmZfZGVsYXk7CiAgdWludDhf
dCBwd3Jfb25fdmFyeV9ibF90b19ibG9uOwogIHVpbnQ4X3QgcHdyX2Rvd25fYmxvZmZfdG9fdmFy
eV9ibG9mZjsKICB1aW50OF90IHBhbmVsX2JwYzsKICB1aW50OF90IGRwY2RfZWRwX2NvbmZpZ19j
YXA7CiAgdWludDhfdCBkcGNkX21heF9saW5rX3JhdGU7CiAgdWludDhfdCBkcGNkX21heF9sYW5l
X2NvdW50OwogIHVpbnQ4X3QgZHBjZF9tYXhfZG93bnNwcmVhZDsKICB1aW50OF90IG1pbl9hbGxv
d2VkX2JsX2xldmVsOwogIHVpbnQ4X3QgbWF4X2FsbG93ZWRfYmxfbGV2ZWw7CiAgdWludDhfdCBi
b290dXBfYmxfbGV2ZWw7CiAgdWludDhfdCBkcGx2ZHNyeGlkOwogIHVpbnQzMl90IHJlc2VydmVk
MVs4XTsKfTsKCgplbnVtIGF0b21fbGNkX2luZm9fcGFuZWxfbWlzY3sKICBBVE9NX1BBTkVMX01J
U0NfRlBESSA9MHgwMDAyLAp9OwoKCmVudW0gYXRvbV9sY2RfaW5mb19kcHRvbHZkc19yeF9pZAp7
CiAgZURQX1RPX0xWRFNfUlhfRElTQUJMRSA9IDB4MDAsCiAgZURQX1RPX0xWRFNfQ09NTU9OX0lE
ID0gMHgwMSwKICBlRFBfVE9fTFZEU19SRUFMVEVLX0lEID0gMHgwMiwKfTsKIyA2MjAgIi4vZHJp
dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0
IGF0b21fZ3Bpb19waW5fYXNzaWdubWVudAp7CiAgdWludDMyX3QgZGF0YV9hX3JlZ19pbmRleDsK
ICB1aW50OF90IGdwaW9fYml0c2hpZnQ7CiAgdWludDhfdCBncGlvX21hc2tfYml0c2hpZnQ7CiAg
dWludDhfdCBncGlvX2lkOwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7Cn07CgoKZW51bSBhdG9tX2dwaW9f
cGluX2Fzc2lnbm1lbnRfZ3Bpb19pZCB7CiAgSTJDX0hXX0xBTkVfTVVYID0weDBmLAogIEkyQ19I
V19FTkdJTkVfSURfTUFTSyA9MHg3MCwKICBJMkNfSFdfQ0FQID0weDgwLAoKCgogIFBDSUVfVkRE
Q19DT05UUk9MX0dQSU9fUElOSUQgPSA1NiwKCiAgUFBfQUNfRENfU1dJVENIX0dQSU9fUElOSUQg
PSA2MCwKCiAgVkREQ19WUkhPVF9HUElPX1BJTklEID0gNjEsCgogIFZERENfUENDX0dQSU9fUElO
SUQgPSA2MiwKCiAgRUZVU0VfQ1VUX0VOQUJMRV9HUElPX1BJTklEID0gNjMsCgogIERSQU1fU0VM
Rl9SRUZSRVNIX0dQSU9fUElOSUQgPSA2NCwKCiAgVEhFUk1BTF9JTlRfT1VUUFVUX0dQSU9fUElO
SUQgPTY1LAp9OwoKCnN0cnVjdCBhdG9tX2dwaW9fcGluX2x1dF92Ml8xCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKCiAgc3RydWN0IGF0b21fZ3Bpb19w
aW5fYXNzaWdubWVudCBncGlvX3Bpbls4XTsKfTsKIyA2NjcgIi4vZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IHZyYW1fdXNhZ2VieWZp
cm13YXJlX3YyXzEKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVh
ZGVyOwogIHVpbnQzMl90IHN0YXJ0X2FkZHJlc3NfaW5fa2I7CiAgdWludDE2X3QgdXNlZF9ieV9m
aXJtd2FyZV9pbl9rYjsKICB1aW50MTZfdCB1c2VkX2J5X2RyaXZlcl9pbl9rYjsKfTsKIyA2ODIg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIK
ZW51bSBhdG9tX29iamVjdF9yZWNvcmRfdHlwZV9pZAp7CiAgQVRPTV9JMkNfUkVDT1JEX1RZUEUg
PTEsCiAgQVRPTV9IUERfSU5UX1JFQ09SRF9UWVBFID0yLAogIEFUT01fT0JKRUNUX0dQSU9fQ05U
TF9SRUNPUkRfVFlQRSA9OSwKICBBVE9NX0NPTk5FQ1RPUl9IUERQSU5fTFVUX1JFQ09SRF9UWVBF
ID0xNiwKICBBVE9NX0NPTk5FQ1RPUl9BVVhERENfTFVUX1JFQ09SRF9UWVBFID0xNywKICBBVE9N
X0VOQ09ERVJfQ0FQX1JFQ09SRF9UWVBFPTIwLAogIEFUT01fQlJBQ0tFVF9MQVlPVVRfUkVDT1JE
X1RZUEU9MjEsCiAgQVRPTV9DT05ORUNUT1JfRk9SQ0VEX1RNRFNfQ0FQX1JFQ09SRF9UWVBFPTIy
LAogIEFUT01fUkVDT1JEX0VORF9UWVBFID0weEZGLAp9OwoKc3RydWN0IGF0b21fY29tbW9uX3Jl
Y29yZF9oZWFkZXIKewogIHVpbnQ4X3QgcmVjb3JkX3R5cGU7CiAgdWludDhfdCByZWNvcmRfc2l6
ZTsKfTsKCnN0cnVjdCBhdG9tX2kyY19yZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNv
cmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWludDhfdCBpMmNfaWQ7CiAgdWludDhfdCBpMmNf
c2xhdmVfYWRkcjsKfTsKCnN0cnVjdCBhdG9tX2hwZF9pbnRfcmVjb3JkCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fcmVjb3JkX2hlYWRlciByZWNvcmRfaGVhZGVyOwogIHVpbnQ4X3QgcGluX2lkOwog
IHVpbnQ4X3QgcGx1Z2luX3Bpbl9zdGF0ZTsKfTsKCgplbnVtIGF0b21fZW5jb2Rlcl9jYXBzX2Rl
Zgp7CiAgQVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSMiA9MHgwMSwKICBBVE9NX0VOQ09ERVJf
Q0FQX1JFQ09SRF9NU1RfRU4gPTB4MDEsCiAgQVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSMl9F
TiA9MHgwMiwKICBBVE9NX0VOQ09ERVJfQ0FQX1JFQ09SRF9IRE1JNkdicHNfRU4gPTB4MDQsCiAg
QVRPTV9FTkNPREVSX0NBUF9SRUNPUkRfSEJSM19FTiA9MHgwOCwKICBBVE9NX0VOQ09ERVJfQ0FQ
X1JFQ09SRF9VU0JfQ19UWVBFID0weDEwMCwKfTsKCnN0cnVjdCBhdG9tX2VuY29kZXJfY2Fwc19y
ZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7
CiAgdWludDMyX3QgZW5jb2RlcmNhcHM7Cn07CgplbnVtIGF0b21fY29ubmVjdG9yX2NhcHNfZGVm
CnsKICBBVE9NX0NPTk5FQ1RPUl9DQVBfSU5URVJOQUxfRElTUExBWSA9IDB4MDEsCiAgQVRPTV9D
T05ORUNUT1JfQ0FQX0lOVEVSTkFMX0RJU1BMQVlfQkwgPSAweDAyLAp9OwoKc3RydWN0IGF0b21f
ZGlzcF9jb25uZWN0b3JfY2Fwc19yZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRf
aGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWludDMyX3QgY29ubmVjdGNhcHM7Cn07CgoKc3RydWN0
IGF0b21fZ3Bpb19waW5fY29udHJvbF9wYWlyCnsKICB1aW50OF90IGdwaW9faWQ7CiAgdWludDhf
dCBncGlvX3BpbnN0YXRlOwp9OwoKc3RydWN0IGF0b21fb2JqZWN0X2dwaW9fY250bF9yZWNvcmQK
ewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWlu
dDhfdCBmbGFnOwogIHVpbnQ4X3QgbnVtYmVyX29mX3BpbnM7CiAgc3RydWN0IGF0b21fZ3Bpb19w
aW5fY29udHJvbF9wYWlyIGdwaW9bMV07Cn07CgoKZW51bSBhdG9tX2dwaW9fcGluX2NvbnRyb2xf
cGluc3RhdGVfZGVmCnsKICBHUElPX1BJTl9UWVBFX0lOUFVUID0gMHgwMCwKICBHUElPX1BJTl9U
WVBFX09VVFBVVCA9IDB4MTAsCiAgR1BJT19QSU5fVFlQRV9IV19DT05UUk9MID0gMHgyMCwKCgog
IEdQSU9fUElOX09VVFBVVF9TVEFURV9NQVNLID0gMHgwMSwKICBHUElPX1BJTl9PVVRQVVRfU1RB
VEVfU0hJRlQgPSAwLAogIEdQSU9fUElOX1NUQVRFX0FDVElWRV9MT1cgPSAweDAsCiAgR1BJT19Q
SU5fU1RBVEVfQUNUSVZFX0hJR0ggPSAweDEsCn07CgoKCmVudW0gYXRvbV9nbHN5bmNfcmVjb3Jk
X2dwaW9faW5kZXhfZGVmCnsKICBBVE9NX0dQSU9fSU5ERVhfR0xTWU5DX1JFRkNMSyA9IDAsCiAg
QVRPTV9HUElPX0lOREVYX0dMU1lOQ19IU1lOQyA9IDEsCiAgQVRPTV9HUElPX0lOREVYX0dMU1lO
Q19WU1lOQyA9IDIsCiAgQVRPTV9HUElPX0lOREVYX0dMU1lOQ19TV0FQX1JFUSA9IDMsCiAgQVRP
TV9HUElPX0lOREVYX0dMU1lOQ19TV0FQX0dOVCA9IDQsCiAgQVRPTV9HUElPX0lOREVYX0dMU1lO
Q19JTlRFUlJVUFQgPSA1LAogIEFUT01fR1BJT19JTkRFWF9HTFNZTkNfVl9SRVNFVCA9IDYsCiAg
QVRPTV9HUElPX0lOREVYX0dMU1lOQ19TV0FQX0NOVEwgPSA3LAogIEFUT01fR1BJT19JTkRFWF9H
TFNZTkNfU1dBUF9TRUwgPSA4LAogIEFUT01fR1BJT19JTkRFWF9HTFNZTkNfTUFYID0gOSwKfTsK
CgpzdHJ1Y3QgYXRvbV9jb25uZWN0b3JfaHBkcGluX2x1dF9yZWNvcmQKewogIHN0cnVjdCBhdG9t
X2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7CiAgdWludDhfdCBocGRfcGluX21h
cFs4XTsKfTsKCnN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9hdXhkZGNfbHV0X3JlY29yZAp7CiAgc3Ry
dWN0IGF0b21fY29tbW9uX3JlY29yZF9oZWFkZXIgcmVjb3JkX2hlYWRlcjsKICB1aW50OF90IGF1
eF9kZGNfbWFwWzhdOwp9OwoKc3RydWN0IGF0b21fY29ubmVjdG9yX2ZvcmNlZF90bWRzX2NhcF9y
ZWNvcmQKewogIHN0cnVjdCBhdG9tX2NvbW1vbl9yZWNvcmRfaGVhZGVyIHJlY29yZF9oZWFkZXI7
CgogIHVpbnQ4X3QgbWF4dG1kc2Nsa3JhdGVfaW4yXzVtaHo7CiAgdWludDhfdCByZXNlcnZlZDsK
fTsKCnN0cnVjdCBhdG9tX2Nvbm5lY3Rvcl9sYXlvdXRfaW5mbwp7CiAgdWludDE2X3QgY29ubmVj
dG9yb2JqaWQ7CiAgdWludDhfdCBjb25uZWN0b3JfdHlwZTsKICB1aW50OF90IHBvc2l0aW9uOwp9
OwoKCmVudW0gYXRvbV9jb25uZWN0b3JfbGF5b3V0X2luZm9fY29ubmVjdG9yX3R5cGVfZGVmCnsK
ICBDT05ORUNUT1JfVFlQRV9EVklfRCA9IDEsCgogIENPTk5FQ1RPUl9UWVBFX0hETUkgPSA0LAog
IENPTk5FQ1RPUl9UWVBFX0RJU1BMQVlfUE9SVCA9IDUsCiAgQ09OTkVDVE9SX1RZUEVfTUlOSV9E
SVNQTEFZX1BPUlQgPSA2LAp9OwoKc3RydWN0IGF0b21fYnJhY2tldF9sYXlvdXRfcmVjb3JkCnsK
ICBzdHJ1Y3QgYXRvbV9jb21tb25fcmVjb3JkX2hlYWRlciByZWNvcmRfaGVhZGVyOwogIHVpbnQ4
X3QgYnJhY2tldGxlbjsKICB1aW50OF90IGJyYWNrZXR3aWR0aDsKICB1aW50OF90IGNvbm5fbnVt
OwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7CiAgc3RydWN0IGF0b21fY29ubmVjdG9yX2xheW91dF9pbmZv
IGNvbm5faW5mb1sxXTsKfTsKCmVudW0gYXRvbV9kaXNwbGF5X2RldmljZV90YWdfZGVmewogIEFU
T01fRElTUExBWV9MQ0QxX1NVUFBPUlQgPSAweDAwMDIsCiAgQVRPTV9ESVNQTEFZX0RGUDFfU1VQ
UE9SVCA9IDB4MDAwOCwKICBBVE9NX0RJU1BMQVlfREZQMl9TVVBQT1JUID0gMHgwMDgwLAogIEFU
T01fRElTUExBWV9ERlAzX1NVUFBPUlQgPSAweDAyMDAsCiAgQVRPTV9ESVNQTEFZX0RGUDRfU1VQ
UE9SVCA9IDB4MDQwMCwKICBBVE9NX0RJU1BMQVlfREZQNV9TVVBQT1JUID0gMHgwODAwLAogIEFU
T01fRElTUExBWV9ERlA2X1NVUFBPUlQgPSAweDAwNDAsCiAgQVRPTV9ESVNQTEFZX0RGUHhfU1VQ
UE9SVCA9IDB4MGVjOCwKfTsKCnN0cnVjdCBhdG9tX2Rpc3BsYXlfb2JqZWN0X3BhdGhfdjIKewog
IHVpbnQxNl90IGRpc3BsYXlfb2JqaWQ7CiAgdWludDE2X3QgZGlzcF9yZWNvcmRvZmZzZXQ7CiAg
dWludDE2X3QgZW5jb2Rlcm9iamlkOwogIHVpbnQxNl90IGV4dGVuY29kZXJvYmppZDsKICB1aW50
MTZfdCBlbmNvZGVyX3JlY29yZG9mZnNldDsKICB1aW50MTZfdCBleHRlbmNvZGVyX3JlY29yZG9m
ZnNldDsKICB1aW50MTZfdCBkZXZpY2VfdGFnOwogIHVpbnQ4X3QgcHJpb3JpdHlfaWQ7CiAgdWlu
dDhfdCByZXNlcnZlZDsKfTsKCnN0cnVjdCBkaXNwbGF5X29iamVjdF9pbmZvX3RhYmxlX3YxXzQK
ewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQx
Nl90IHN1cHBvcnRlZGRldmljZXM7CiAgdWludDhfdCBudW1iZXJfb2ZfcGF0aDsKICB1aW50OF90
IHJlc2VydmVkOwogIHN0cnVjdCBhdG9tX2Rpc3BsYXlfb2JqZWN0X3BhdGhfdjIgZGlzcGxheV9w
YXRoWzhdOwp9OwoKCgoKCgoKc3RydWN0IGF0b21fZGlzcGxheV9jb250cm9sbGVyX2luZm9fdjRf
MQp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWlu
dDMyX3QgZGlzcGxheV9jYXBzOwogIHVpbnQzMl90IGJvb3R1cF9kaXNwY2xrXzEwa2h6OwogIHVp
bnQxNl90IGRjZV9yZWZjbGtfMTBraHo7CiAgdWludDE2X3QgaTJjX2VuZ2luZV9yZWZjbGtfMTBr
aHo7CiAgdWludDE2X3QgZHZpX3NzX3BlcmNlbnRhZ2U7CiAgdWludDE2X3QgZHZpX3NzX3JhdGVf
MTBoejsKICB1aW50MTZfdCBoZG1pX3NzX3BlcmNlbnRhZ2U7CiAgdWludDE2X3QgaGRtaV9zc19y
YXRlXzEwaHo7CiAgdWludDE2X3QgZHBfc3NfcGVyY2VudGFnZTsKICB1aW50MTZfdCBkcF9zc19y
YXRlXzEwaHo7CiAgdWludDhfdCBkdmlfc3NfbW9kZTsKICB1aW50OF90IGhkbWlfc3NfbW9kZTsK
ICB1aW50OF90IGRwX3NzX21vZGU7CiAgdWludDhfdCBzc19yZXNlcnZlZDsKICB1aW50OF90IGhh
cmRjb2RlX21vZGVfbnVtOwogIHVpbnQ4X3QgcmVzZXJ2ZWQxWzNdOwogIHVpbnQxNl90IGRwcGh5
X3JlZmNsa18xMGtoejsKICB1aW50MTZfdCByZXNlcnZlZDI7CiAgdWludDhfdCBkY2VpcF9taW5f
dmVyOwogIHVpbnQ4X3QgZGNlaXBfbWF4X3ZlcjsKICB1aW50OF90IG1heF9kaXNwX3BpcGVfbnVt
OwogIHVpbnQ4X3QgbWF4X3ZiaW9zX2FjdGl2ZV9kaXNwX3BpcGVfbnVtOwogIHVpbnQ4X3QgbWF4
X3BwbGxfbnVtOwogIHVpbnQ4X3QgbWF4X2Rpc3BfcGh5X251bTsKICB1aW50OF90IG1heF9hdXhf
cGFpcnM7CiAgdWludDhfdCByZW1vdGVkaXNwbGF5Y29uZmlnOwogIHVpbnQ4X3QgcmVzZXJ2ZWQz
WzhdOwp9OwoKCnN0cnVjdCBhdG9tX2Rpc3BsYXlfY29udHJvbGxlcl9pbmZvX3Y0XzIKewogIHN0
cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IGRp
c3BsYXlfY2FwczsKICB1aW50MzJfdCBib290dXBfZGlzcGNsa18xMGtoejsKICB1aW50MTZfdCBk
Y2VfcmVmY2xrXzEwa2h6OwogIHVpbnQxNl90IGkyY19lbmdpbmVfcmVmY2xrXzEwa2h6OwogIHVp
bnQxNl90IGR2aV9zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IGR2aV9zc19yYXRlXzEwaHo7CiAg
dWludDE2X3QgaGRtaV9zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IGhkbWlfc3NfcmF0ZV8xMGh6
OwogIHVpbnQxNl90IGRwX3NzX3BlcmNlbnRhZ2U7CiAgdWludDE2X3QgZHBfc3NfcmF0ZV8xMGh6
OwogIHVpbnQ4X3QgZHZpX3NzX21vZGU7CiAgdWludDhfdCBoZG1pX3NzX21vZGU7CiAgdWludDhf
dCBkcF9zc19tb2RlOwogIHVpbnQ4X3Qgc3NfcmVzZXJ2ZWQ7CiAgdWludDhfdCBkZnBfaGFyZGNv
ZGVfbW9kZV9udW07CiAgdWludDhfdCBkZnBfaGFyZGNvZGVfcmVmcmVzaHJhdGU7CiAgdWludDhf
dCB2Z2FfaGFyZGNvZGVfbW9kZV9udW07CiAgdWludDhfdCB2Z2FfaGFyZGNvZGVfcmVmcmVzaHJh
dGU7CiAgdWludDE2X3QgZHBwaHlfcmVmY2xrXzEwa2h6OwogIHVpbnQxNl90IHJlc2VydmVkMjsK
ICB1aW50OF90IGRjbmlwX21pbl92ZXI7CiAgdWludDhfdCBkY25pcF9tYXhfdmVyOwogIHVpbnQ4
X3QgbWF4X2Rpc3BfcGlwZV9udW07CiAgdWludDhfdCBtYXhfdmJpb3NfYWN0aXZlX2Rpc3BfcGlw
ZV9udW07CiAgdWludDhfdCBtYXhfcHBsbF9udW07CiAgdWludDhfdCBtYXhfZGlzcF9waHlfbnVt
OwogIHVpbnQ4X3QgbWF4X2F1eF9wYWlyczsKICB1aW50OF90IHJlbW90ZWRpc3BsYXljb25maWc7
CiAgdWludDhfdCByZXNlcnZlZDNbOF07Cn07CgoKZW51bSBkY2VfaW5mb19jYXBzX2RlZgp7Cgog
IERDRV9JTkZPX0NBUFNfRk9SQ0VfRElTUERFVl9DT05ORUNURUQgPTB4MDIsCgogIERDRV9JTkZP
X0NBUFNfRElTQUJMRV9ERlBfRFBfSEJSMiA9MHgwNCwKCiAgRENFX0lORk9fQ0FQU19FTkFCTEVf
SU5URVJMQUNfVElNSU5HID0weDA4LAoKfTsKCgoKCgoKc3RydWN0IGF0b21fZXh0X2Rpc3BsYXlf
cGF0aAp7CiAgdWludDE2X3QgZGV2aWNlX3RhZzsKICB1aW50MTZfdCBkZXZpY2VfYWNwaV9lbnVt
OwogIHVpbnQxNl90IGNvbm5lY3Rvcm9iamlkOwogIHVpbnQ4X3QgYXV4ZGRjbHV0X2luZGV4Owog
IHVpbnQ4X3QgaHBkbHV0X2luZGV4OwogIHVpbnQxNl90IGV4dF9lbmNvZGVyX29iamlkOwogIHVp
bnQ4X3QgY2hhbm5lbG1hcHBpbmc7CiAgdWludDhfdCBjaHBuaW52ZXJ0OwogIHVpbnQxNl90IGNh
cHM7CiAgdWludDE2X3QgcmVzZXJ2ZWQ7Cn07CgoKZW51bSBleHRfZGlzcGxheV9wYXRoX2NhcF9k
ZWYKewogIEVYVF9ESVNQTEFZX1BBVEhfQ0FQU19fSEJSMl9ESVNBQkxFID0weDAwMDEsCiAgRVhU
X0RJU1BMQVlfUEFUSF9DQVBTX19EUF9GSVhFRF9WU19FTiA9MHgwMDAyLAogIEVYVF9ESVNQTEFZ
X1BBVEhfQ0FQU19fRVhUX0NISVBfTUFTSyA9MHgwMDdDLAp9OwoKc3RydWN0IGF0b21fZXh0ZXJu
YWxfZGlzcGxheV9jb25uZWN0aW9uX2luZm8KewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9o
ZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQ4X3QgZ3VpZFsxNl07CiAgc3RydWN0IGF0b21fZXh0
X2Rpc3BsYXlfcGF0aCBwYXRoWzddOwogIHVpbnQ4X3QgY2hlY2tzdW07CiAgdWludDhfdCBzdGVy
ZW9waW5pZDsKICB1aW50OF90IHJlbW90ZWRpc3BsYXljb25maWc7CiAgdWludDhfdCBlZHB0b2x2
ZHNyeGlkOwogIHVpbnQ4X3QgZml4ZHB2b2x0YWdlc3dpbmc7CiAgdWludDhfdCByZXNlcnZlZFsz
XTsKfTsKCgoKCgoKCnN0cnVjdCBhdG9tX2NhbWVyYV9kcGh5X3RpbWluZ19wYXJhbQp7CiAgdWlu
dDhfdCBwcm9maWxlX2lkOwogIHVpbnQzMl90IHBhcmFtOwp9OwoKc3RydWN0IGF0b21fY2FtZXJh
X2RwaHlfZWxlY19wYXJhbQp7CiAgdWludDE2X3QgcGFyYW1bM107Cn07CgpzdHJ1Y3QgYXRvbV9j
YW1lcmFfbW9kdWxlX2luZm8KewogIHVpbnQ4X3QgbW9kdWxlX2lkOwogIHVpbnQ4X3QgbW9kdWxl
X25hbWVbOF07CiAgc3RydWN0IGF0b21fY2FtZXJhX2RwaHlfdGltaW5nX3BhcmFtIHRpbWluZ3Bh
cmFtWzZdOwp9OwoKc3RydWN0IGF0b21fY2FtZXJhX2ZsYXNobGlnaHRfaW5mbwp7CiAgdWludDhf
dCBmbGFzaGxpZ2h0X2lkOwogIHVpbnQ4X3QgbmFtZVs4XTsKfTsKCnN0cnVjdCBhdG9tX2NhbWVy
YV9kYXRhCnsKICB1aW50MzJfdCB2ZXJzaW9uQ29kZTsKICBzdHJ1Y3QgYXRvbV9jYW1lcmFfbW9k
dWxlX2luZm8gY2FtZXJhSW5mb1szXTsKICBzdHJ1Y3QgYXRvbV9jYW1lcmFfZmxhc2hsaWdodF9p
bmZvIGZsYXNoSW5mbzsKICBzdHJ1Y3QgYXRvbV9jYW1lcmFfZHBoeV9lbGVjX3BhcmFtIGRwaHlf
cGFyYW07CiAgdWludDMyX3QgY3JjX3ZhbDsKfTsKCgpzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2R2
aWhkbWlfdHVuaW5nc2V0CnsKICB1aW50MzJfdCBtYXhfc3ltY2xrX2luMTBraHo7CiAgdWludDhf
dCBlbmNvZGVyX21vZGU7CiAgdWludDhfdCBwaHlfc2VsOwogIHVpbnQxNl90IG1hcmdpbmRlZW1w
aDsKICB1aW50OF90IGRlZW1waF82ZGJfNDsKICB1aW50OF90IGJvb3N0YWRqOwogIHVpbnQ4X3Qg
dHhfZHJpdmVyX2ZpZnR5X29obXM7CiAgdWludDhfdCBkZWVtcGhfc2VsOwp9OwoKc3RydWN0IGF0
b21fMTRubV9kcHBoeV9kcF9zZXR0aW5newogIHVpbnQ4X3QgZHBfdnNfcGVtcGhfbGV2ZWw7CiAg
dWludDE2X3QgbWFyZ2luZGVlbXBoOwogIHVpbnQ4X3QgZGVlbXBoXzZkYl80OwogIHVpbnQ4X3Qg
Ym9vc3RhZGo7Cn07CgpzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldHsKICB1aW50
OF90IHBoeV9zZWw7CiAgdWludDhfdCB2ZXJzaW9uOwogIHVpbnQxNl90IHRhYmxlX3NpemU7CiAg
dWludDE2X3QgcmVzZXJ2ZWQ7CiAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kcF9zZXR0aW5nIGRw
dHVuaW5nWzEwXTsKfTsKCnN0cnVjdCBhdG9tXzE0bm1fZGlnX3RyYW5zbWl0dGVyX2luZm9faGVh
ZGVyX3Y0XzB7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7
CiAgdWludDE2X3QgcGNpZV9waHlfdG1kc19oZG1pX21hY3JvX3NldHRpbmdzX29mZnNldDsKICB1
aW50MTZfdCB1bmlwaHlfdnNfZW1waF9sb29rdXBfdGFibGVfb2Zmc2V0OwogIHVpbnQxNl90IHVu
aXBoeV94YmFyX3NldHRpbmdzX3RhYmxlX29mZnNldDsKfTsKCnN0cnVjdCBhdG9tXzE0bm1fY29t
YnBoeV90bWRzX3ZzX3NldAp7CiAgdWludDhfdCBzeW1fY2xrOwogIHVpbnQ4X3QgZGlnX21vZGU7
CiAgdWludDhfdCBwaHlfc2VsOwogIHVpbnQxNl90IGNvbW1vbl9tYXJfZGVlbXBoX25vbV9fbWFy
Z2luX2RlZW1waF92YWw7CiAgdWludDhfdCBjb21tb25fc2VsZGVlbXBoNjBfX2RlZW1waF82ZGJf
NF92YWw7CiAgdWludDhfdCBjbWRfYnVzX2dsb2JhbF9mb3JfdHhfbGFuZTBfX2Jvb3N0YWRqX3Zh
bCA7CiAgdWludDhfdCBjb21tb25femNhbGNvZGVfY3RybF9fdHhfZHJpdmVyX2ZpZnR5X29obXNf
dmFsOwogIHVpbnQ4X3QgbWFyZ2luX2RlZW1waF9sYW5lMF9fZGVlbXBoX3NlbF92YWw7Cn07Cgpz
dHJ1Y3QgYXRvbV9pMmNfcmVnX2luZm8gewogIHVpbnQ4X3QgdWNJMmNSZWdJbmRleDsKICB1aW50
OF90IHVjSTJjUmVnVmFsOwp9OwoKc3RydWN0IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3Nl
dCB7CiAgdWludDhfdCBIZG1pU2x2QWRkcjsKICB1aW50OF90IEhkbWlSZWdOdW07CiAgdWludDhf
dCBIZG1pNkdSZWdOdW07CiAgc3RydWN0IGF0b21faTJjX3JlZ19pbmZvIEhkbWlSZWdTZXR0aW5n
WzldOwogIHN0cnVjdCBhdG9tX2kyY19yZWdfaW5mbyBIZG1pNkdoelJlZ1NldHRpbmdbM107Cn07
CgpzdHJ1Y3QgYXRvbV9pbnRlZ3JhdGVkX3N5c3RlbV9pbmZvX3YxXzExCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50MzJfdCB2Ymlvc19taXNj
OwogIHVpbnQzMl90IGdwdWNhcGluZm87CiAgdWludDMyX3Qgc3lzdGVtX2NvbmZpZzsKICB1aW50
MzJfdCBjcHVjYXBpbmZvOwogIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwogIHVpbnQx
Nl90IGdwdWNsa19zc190eXBlOwogIHVpbnQxNl90IGx2ZHNfc3NfcGVyY2VudGFnZTsKICB1aW50
MTZfdCBsdmRzX3NzX3JhdGVfMTBoejsKICB1aW50MTZfdCBoZG1pX3NzX3BlcmNlbnRhZ2U7CiAg
dWludDE2X3QgaGRtaV9zc19yYXRlXzEwaHo7CiAgdWludDE2X3QgZHZpX3NzX3BlcmNlbnRhZ2U7
CiAgdWludDE2X3QgZHZpX3NzX3JhdGVfMTBoejsKICB1aW50MTZfdCBkcHBoeV9vdmVycmlkZTsK
ICB1aW50MTZfdCBsdmRzX21pc2M7CiAgdWludDE2X3QgYmFja2xpZ2h0X3B3bV9oejsKICB1aW50
OF90IG1lbW9yeXR5cGU7CiAgdWludDhfdCB1bWFjaGFubmVsbnVtYmVyOwogIHVpbnQ4X3QgcHdy
X29uX2RpZ29uX3RvX2RlOwogIHVpbnQ4X3QgcHdyX29uX2RlX3RvX3ZhcnlfYmw7CiAgdWludDhf
dCBwd3JfZG93bl92YXJ5X2Jsb2ZmX3RvX2RlOwogIHVpbnQ4X3QgcHdyX2Rvd25fZGVfdG9fZGln
b2ZmOwogIHVpbnQ4X3QgcHdyX29mZl9kZWxheTsKICB1aW50OF90IHB3cl9vbl92YXJ5X2JsX3Rv
X2Jsb247CiAgdWludDhfdCBwd3JfZG93bl9ibG9mZl90b192YXJ5X2Jsb2ZmOwogIHVpbnQ4X3Qg
bWluX2FsbG93ZWRfYmxfbGV2ZWw7CiAgdWludDhfdCBodGNfaHlzdF9saW1pdDsKICB1aW50OF90
IGh0Y190bXBfbGltaXQ7CiAgdWludDhfdCByZXNlcnZlZDE7CiAgdWludDhfdCByZXNlcnZlZDI7
CiAgc3RydWN0IGF0b21fZXh0ZXJuYWxfZGlzcGxheV9jb25uZWN0aW9uX2luZm8gZXh0ZGlzcGNv
bm5pbmZvOwogIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHZpaGRtaV90dW5pbmdzZXQgZHZpX3R1
bmluZ3NldDsKICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2R2aWhkbWlfdHVuaW5nc2V0IGhkbWlf
dHVuaW5nc2V0OwogIHN0cnVjdCBhdG9tXzE0bm1fZHBwaHlfZHZpaGRtaV90dW5pbmdzZXQgaGRt
aTZnX3R1bmluZ3NldDsKICBzdHJ1Y3QgYXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBkcF90
dW5pbmdzZXQ7CiAgc3RydWN0IGF0b21fMTRubV9kcHBoeV9kcF90dW5pbmdzZXQgZHBfaGJyM190
dW5pbmdzZXQ7CiAgc3RydWN0IGF0b21fY2FtZXJhX2RhdGEgY2FtZXJhX2luZm87CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDBfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDFfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDJfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21faGRtaV9yZXRpbWVyX3JlZHJpdmVyX3NldCBkcDNfcmV0aW1lcl9zZXQ7CiAgc3RydWN0
IGF0b21fMTRubV9kcHBoeV9kcF90dW5pbmdzZXQgZHBfaGJyX3R1bmluZ3NldDsKICBzdHJ1Y3Qg
YXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBkcF9oYnIyX3R1bmluZ3NldDsKICBzdHJ1Y3Qg
YXRvbV8xNG5tX2RwcGh5X2RwX3R1bmluZ3NldCBlZHBfdHVuaW5nc2V0OwogIHVpbnQzMl90IHJl
c2VydmVkWzY2XTsKfTsKCgoKZW51bSBhdG9tX3N5c3RlbV92Ymlvc21pc2NfZGVmewogIElOVEVH
UkFURURfU1lTVEVNX0lORk9fX0dFVF9FRElEX0NBTExCQUNLX0ZVTkNfU1VQUE9SVCA9IDB4MDEs
Cn07CgoKCmVudW0gYXRvbV9zeXN0ZW1fZ3B1Y2FwaW5mX2RlZnsKICBTWVNfSU5GT19HUFVDQVBT
X19FTkFCRUxfREZTX0JZUEFTUyA9IDB4MTAsCn07CgoKZW51bSBhdG9tX3N5c2luZm9fZHBwaHlf
b3ZlcnJpZGVfZGVmewogIEFUT01fRU5BQkxFX0RWSV9UVU5JTkdTRVQgPSAweDAxLAogIEFUT01f
RU5BQkxFX0hETUlfVFVOSU5HU0VUID0gMHgwMiwKICBBVE9NX0VOQUJMRV9IRE1JNkdfVFVOSU5H
U0VUID0gMHgwNCwKICBBVE9NX0VOQUJMRV9EUF9UVU5JTkdTRVQgPSAweDA4LAogIEFUT01fRU5B
QkxFX0RQX0hCUjNfVFVOSU5HU0VUID0gMHgxMCwKfTsKCgplbnVtIGF0b21fc3lzX2luZm9fbHZk
c19taXNjX2RlZgp7CiAgU1lTX0lORk9fTFZEU19NSVNDXzg4OF9GUERJX01PREUgPTB4MDEsCiAg
U1lTX0lORk9fTFZEU19NSVNDXzg4OF9CUENfTU9ERSA9MHgwNCwKICBTWVNfSU5GT19MVkRTX01J
U0NfT1ZFUlJJREVfRU4gPTB4MDgsCn07CgoKCmVudW0gYXRvbV9kbWlfdDE3X21lbV90eXBlX2Rl
ZnsKICBPdGhlck1lbVR5cGUgPSAweDAxLAogIFVua25vd25NZW1UeXBlLAogIERyYW1NZW1UeXBl
LAogIEVkcmFtTWVtVHlwZSwKICBWcmFtTWVtVHlwZSwKICBTcmFtTWVtVHlwZSwKICBSYW1NZW1U
eXBlLAogIFJvbU1lbVR5cGUsCiAgRmxhc2hNZW1UeXBlLAogIEVlcHJvbU1lbVR5cGUsCiAgRmVw
cm9tTWVtVHlwZSwKICBFcHJvbU1lbVR5cGUsCiAgQ2RyYW1NZW1UeXBlLAogIFRocmVlRHJhbU1l
bVR5cGUsCiAgU2RyYW1NZW1UeXBlLAogIFNncmFtTWVtVHlwZSwKICBSZHJhbU1lbVR5cGUsCiAg
RGRyTWVtVHlwZSwKICBEZHIyTWVtVHlwZSwKICBEZHIyRmJkaW1tTWVtVHlwZSwKICBEZHIzTWVt
VHlwZSA9IDB4MTgsCiAgRmJkMk1lbVR5cGUsCiAgRGRyNE1lbVR5cGUsCiAgTHBEZHJNZW1UeXBl
LAogIExwRGRyMk1lbVR5cGUsCiAgTHBEZHIzTWVtVHlwZSwKICBMcERkcjRNZW1UeXBlLAp9OwoK
CgpzdHJ1Y3QgYXRvbV9mdXNpb25fc3lzdGVtX2luZm9fdjQKewogIHN0cnVjdCBhdG9tX2ludGVn
cmF0ZWRfc3lzdGVtX2luZm9fdjFfMTEgc3lzaW5mbzsKICB1aW50MzJfdCBwb3dlcnBsYXlpbmZv
WzI1Nl07Cn07CiMgMTIxOSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRl
L2F0b21maXJtd2FyZS5oIgpzdHJ1Y3QgYXRvbV9nZnhfaW5mb192Ml8yCnsKICBzdHJ1Y3QgYXRv
bV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50OF90IGdmeGlwX21pbl92
ZXI7CiAgdWludDhfdCBnZnhpcF9tYXhfdmVyOwogIHVpbnQ4X3QgbWF4X3NoYWRlcl9lbmdpbmVz
OwogIHVpbnQ4X3QgbWF4X3RpbGVfcGlwZXM7CiAgdWludDhfdCBtYXhfY3VfcGVyX3NoOwogIHVp
bnQ4X3QgbWF4X3NoX3Blcl9zZTsKICB1aW50OF90IG1heF9iYWNrZW5kc19wZXJfc2U7CiAgdWlu
dDhfdCBtYXhfdGV4dHVyZV9jaGFubmVsX2NhY2hlczsKICB1aW50MzJfdCByZWdhZGRyX2NwX2Rt
YV9zcmNfYWRkcjsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcl9oaTsKICB1aW50
MzJfdCByZWdhZGRyX2NwX2RtYV9kc3RfYWRkcjsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9k
c3RfYWRkcl9oaTsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9jb21tYW5kOwogIHVpbnQzMl90
IHJlZ2FkZHJfY3Bfc3RhdHVzOwogIHVpbnQzMl90IHJlZ2FkZHJfcmxjX2dwdV9jbG9ja18zMjsK
ICB1aW50MzJfdCBybGNfZ3B1X3RpbWVyX3JlZmNsazsKfTsKCnN0cnVjdCBhdG9tX2dmeF9pbmZv
X3YyXzMgewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwog
IHVpbnQ4X3QgZ2Z4aXBfbWluX3ZlcjsKICB1aW50OF90IGdmeGlwX21heF92ZXI7CiAgdWludDhf
dCBtYXhfc2hhZGVyX2VuZ2luZXM7CiAgdWludDhfdCBtYXhfdGlsZV9waXBlczsKICB1aW50OF90
IG1heF9jdV9wZXJfc2g7CiAgdWludDhfdCBtYXhfc2hfcGVyX3NlOwogIHVpbnQ4X3QgbWF4X2Jh
Y2tlbmRzX3Blcl9zZTsKICB1aW50OF90IG1heF90ZXh0dXJlX2NoYW5uZWxfY2FjaGVzOwogIHVp
bnQzMl90IHJlZ2FkZHJfY3BfZG1hX3NyY19hZGRyOwogIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1h
X3NyY19hZGRyX2hpOwogIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyOwogIHVpbnQz
Ml90IHJlZ2FkZHJfY3BfZG1hX2RzdF9hZGRyX2hpOwogIHVpbnQzMl90IHJlZ2FkZHJfY3BfZG1h
X2NvbW1hbmQ7CiAgdWludDMyX3QgcmVnYWRkcl9jcF9zdGF0dXM7CiAgdWludDMyX3QgcmVnYWRk
cl9ybGNfZ3B1X2Nsb2NrXzMyOwogIHVpbnQzMl90IHJsY19ncHVfdGltZXJfcmVmY2xrOwogIHVp
bnQ4X3QgYWN0aXZlX2N1X3Blcl9zaDsKICB1aW50OF90IGFjdGl2ZV9yYl9wZXJfc2U7CiAgdWlu
dDE2X3QgZ2Nnb2xkZW5vZmZzZXQ7CiAgdWludDMyX3Qgcm0yMV9zcmFtX3ZtaW5fdmFsdWU7Cn07
CgpzdHJ1Y3QgYXRvbV9nZnhfaW5mb192Ml80CnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVf
aGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50OF90IGdmeGlwX21pbl92ZXI7CiAgdWludDhfdCBn
ZnhpcF9tYXhfdmVyOwogIHVpbnQ4X3QgbWF4X3NoYWRlcl9lbmdpbmVzOwogIHVpbnQ4X3QgcmVz
ZXJ2ZWQ7CiAgdWludDhfdCBtYXhfY3VfcGVyX3NoOwogIHVpbnQ4X3QgbWF4X3NoX3Blcl9zZTsK
ICB1aW50OF90IG1heF9iYWNrZW5kc19wZXJfc2U7CiAgdWludDhfdCBtYXhfdGV4dHVyZV9jaGFu
bmVsX2NhY2hlczsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcjsKICB1aW50MzJf
dCByZWdhZGRyX2NwX2RtYV9zcmNfYWRkcl9oaTsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9k
c3RfYWRkcjsKICB1aW50MzJfdCByZWdhZGRyX2NwX2RtYV9kc3RfYWRkcl9oaTsKICB1aW50MzJf
dCByZWdhZGRyX2NwX2RtYV9jb21tYW5kOwogIHVpbnQzMl90IHJlZ2FkZHJfY3Bfc3RhdHVzOwog
IHVpbnQzMl90IHJlZ2FkZHJfcmxjX2dwdV9jbG9ja18zMjsKICB1aW50MzJfdCBybGNfZ3B1X3Rp
bWVyX3JlZmNsazsKICB1aW50OF90IGFjdGl2ZV9jdV9wZXJfc2g7CiAgdWludDhfdCBhY3RpdmVf
cmJfcGVyX3NlOwogIHVpbnQxNl90IGdjZ29sZGVub2Zmc2V0OwogIHVpbnQxNl90IGdjX251bV9n
cHJzOwogIHVpbnQxNl90IGdjX2dzcHJpbV9idWZmX2RlcHRoOwogIHVpbnQxNl90IGdjX3BhcmFt
ZXRlcl9jYWNoZV9kZXB0aDsKICB1aW50MTZfdCBnY193YXZlX3NpemU7CiAgdWludDE2X3QgZ2Nf
bWF4X3dhdmVzX3Blcl9zaW1kOwogIHVpbnQxNl90IGdjX2xkc19zaXplOwogIHVpbnQ4X3QgZ2Nf
bnVtX21heF9nc190aGRzOwogIHVpbnQ4X3QgZ2NfZ3NfdGFibGVfZGVwdGg7CiAgdWludDhfdCBn
Y19kb3VibGVfb2ZmY2hpcF9sZHNfYnVmZmVyOwogIHVpbnQ4X3QgZ2NfbWF4X3NjcmF0Y2hfc2xv
dHNfcGVyX2N1OwogIHVpbnQzMl90IHNyYW1fcm1fZnVzZXNfdmFsOwogIHVpbnQzMl90IHNyYW1f
Y3VzdG9tX3JtX2Z1c2VzX3ZhbDsKfTsKCgoKCgoKc3RydWN0IGF0b21fc211X2luZm9fdjNfMQp7
CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWludDhf
dCBzbXVpcF9taW5fdmVyOwogIHVpbnQ4X3Qgc211aXBfbWF4X3ZlcjsKICB1aW50OF90IHNtdV9y
c2QxOwogIHVpbnQ4X3QgZ3B1Y2xrX3NzX21vZGU7CiAgdWludDE2X3Qgc2Nsa19zc19wZXJjZW50
YWdlOwogIHVpbnQxNl90IHNjbGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQxNl90IGdwdWNsa19zc19w
ZXJjZW50YWdlOwogIHVpbnQxNl90IGdwdWNsa19zc19yYXRlXzEwaHo7CiAgdWludDMyX3QgY29y
ZV9yZWZjbGtfMTBraHo7CiAgdWludDhfdCBhY19kY19ncGlvX2JpdDsKICB1aW50OF90IGFjX2Rj
X3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIwaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIwaG90X3Bv
bGFyaXR5OwogIHVpbnQ4X3QgdnIxaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIxaG90X3BvbGFy
aXR5OwogIHVpbnQ4X3QgZndfY3RmX2dwaW9fYml0OwogIHVpbnQ4X3QgZndfY3RmX3BvbGFyaXR5
Owp9OwoKc3RydWN0IGF0b21fc211X2luZm9fdjNfMiB7CiAgc3RydWN0IGF0b21fY29tbW9uX3Rh
YmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWludDhfdCBzbXVpcF9taW5fdmVyOwogIHVpbnQ4
X3Qgc211aXBfbWF4X3ZlcjsKICB1aW50OF90IHNtdV9yc2QxOwogIHVpbnQ4X3QgZ3B1Y2xrX3Nz
X21vZGU7CiAgdWludDE2X3Qgc2Nsa19zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IHNjbGtfc3Nf
cmF0ZV8xMGh6OwogIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IGdw
dWNsa19zc19yYXRlXzEwaHo7CiAgdWludDMyX3QgY29yZV9yZWZjbGtfMTBraHo7CiAgdWludDhf
dCBhY19kY19ncGlvX2JpdDsKICB1aW50OF90IGFjX2RjX3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIw
aG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIxaG90
X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIxaG90X3BvbGFyaXR5OwogIHVpbnQ4X3QgZndfY3RmX2dw
aW9fYml0OwogIHVpbnQ4X3QgZndfY3RmX3BvbGFyaXR5OwogIHVpbnQ4X3QgcGNjX2dwaW9fYml0
OwogIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CiAgdWludDE2X3Qgc211Z29sZGVub2Zmc2V0
OwogIHVpbnQzMl90IGdwdXBsbF92Y29fZnJlcV8xMGtoejsKICB1aW50MzJfdCBib290dXBfc21u
Y2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9zb2NjbGtfMTBraHo7CiAgdWludDMyX3QgYm9v
dHVwX21wMGNsa18xMGtoejsKICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEwa2h6OwogIHVpbnQz
Ml90IGJvb3R1cF9sY2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9kY2VmY2xrXzEwa2h6Owog
IHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVfdmFsdWU7CiAgdWludDMyX3QgcmVzZXJ2
ZWRbNV07Cn07CgpzdHJ1Y3QgYXRvbV9zbXVfaW5mb192M18zIHsKICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50OF90IHNtdWlwX21pbl92ZXI7CiAg
dWludDhfdCBzbXVpcF9tYXhfdmVyOwogIHVpbnQ4X3Qgd2FmbGNsa19zc19tb2RlOwogIHVpbnQ4
X3QgZ3B1Y2xrX3NzX21vZGU7CiAgdWludDE2X3Qgc2Nsa19zc19wZXJjZW50YWdlOwogIHVpbnQx
Nl90IHNjbGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQxNl90IGdwdWNsa19zc19wZXJjZW50YWdlOwog
IHVpbnQxNl90IGdwdWNsa19zc19yYXRlXzEwaHo7CiAgdWludDMyX3QgY29yZV9yZWZjbGtfMTBr
aHo7CiAgdWludDhfdCBhY19kY19ncGlvX2JpdDsKICB1aW50OF90IGFjX2RjX3BvbGFyaXR5Owog
IHVpbnQ4X3QgdnIwaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIwaG90X3BvbGFyaXR5OwogIHVp
bnQ4X3QgdnIxaG90X2dwaW9fYml0OwogIHVpbnQ4X3QgdnIxaG90X3BvbGFyaXR5OwogIHVpbnQ4
X3QgZndfY3RmX2dwaW9fYml0OwogIHVpbnQ4X3QgZndfY3RmX3BvbGFyaXR5OwogIHVpbnQ4X3Qg
cGNjX2dwaW9fYml0OwogIHVpbnQ4X3QgcGNjX2dwaW9fcG9sYXJpdHk7CiAgdWludDE2X3Qgc211
Z29sZGVub2Zmc2V0OwogIHVpbnQzMl90IGdwdXBsbF92Y29fZnJlcV8xMGtoejsKICB1aW50MzJf
dCBib290dXBfc21uY2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9zb2NjbGtfMTBraHo7CiAg
dWludDMyX3QgYm9vdHVwX21wMGNsa18xMGtoejsKICB1aW50MzJfdCBib290dXBfbXAxY2xrXzEw
a2h6OwogIHVpbnQzMl90IGJvb3R1cF9sY2xrXzEwa2h6OwogIHVpbnQzMl90IGJvb3R1cF9kY2Vm
Y2xrXzEwa2h6OwogIHVpbnQzMl90IGN0Zl90aHJlc2hvbGRfb3ZlcnJpZGVfdmFsdWU7CiAgdWlu
dDMyX3Qgc3lzcGxsM18wX3Zjb19mcmVxXzEwa2h6OwogIHVpbnQzMl90IHN5c3BsbDNfMV92Y29f
ZnJlcV8xMGtoejsKICB1aW50MzJfdCBib290dXBfZmNsa18xMGtoejsKICB1aW50MzJfdCBib290
dXBfd2FmbGNsa18xMGtoejsKICB1aW50MzJfdCBzbXVfaW5mb19jYXBzOwogIHVpbnQxNl90IHdh
ZmxjbGtfc3NfcGVyY2VudGFnZTsKICB1aW50MTZfdCBzbXVpbml0b2Zmc2V0OwogIHVpbnQzMl90
IHJlc2VydmVkOwp9OwoKCgoKCgpzdHJ1Y3QgYXRvbV9zbWNfZHBtX2luZm9fdjRfMQp7CiAgc3Ry
dWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiAgdWludDhfdCBsaXF1
aWQxX2kyY19hZGRyZXNzOwogIHVpbnQ4X3QgbGlxdWlkMl9pMmNfYWRkcmVzczsKICB1aW50OF90
IHZyX2kyY19hZGRyZXNzOwogIHVpbnQ4X3QgcGx4X2kyY19hZGRyZXNzOwoKICB1aW50OF90IGxp
cXVpZF9pMmNfbGluZXNjbDsKICB1aW50OF90IGxpcXVpZF9pMmNfbGluZXNkYTsKICB1aW50OF90
IHZyX2kyY19saW5lc2NsOwogIHVpbnQ4X3QgdnJfaTJjX2xpbmVzZGE7CgogIHVpbnQ4X3QgcGx4
X2kyY19saW5lc2NsOwogIHVpbnQ4X3QgcGx4X2kyY19saW5lc2RhOwogIHVpbnQ4X3QgdnJzZW5z
b3JwcmVzZW50OwogIHVpbnQ4X3QgbGlxdWlkc2Vuc29ycHJlc2VudDsKCiAgdWludDE2X3QgbWF4
dm9sdGFnZXN0ZXBnZng7CiAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBzb2M7CgogIHVpbnQ4X3Qg
dmRkZ2Z4dnJtYXBwaW5nOwogIHVpbnQ4X3QgdmRkc29jdnJtYXBwaW5nOwogIHVpbnQ4X3QgdmRk
bWVtMHZybWFwcGluZzsKICB1aW50OF90IHZkZG1lbTF2cm1hcHBpbmc7CgogIHVpbnQ4X3QgZ2Z4
dWx2cGhhc2VzaGVkZGluZ21hc2s7CiAgdWludDhfdCBzb2N1bHZwaGFzZXNoZWRkaW5nbWFzazsK
ICB1aW50OF90IHBhZGRpbmc4X3ZbMl07CgogIHVpbnQxNl90IGdmeG1heGN1cnJlbnQ7CiAgdWlu
dDhfdCBnZnhvZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWdmeDsKCiAgdWludDE2
X3Qgc29jbWF4Y3VycmVudDsKICB1aW50OF90IHNvY29mZnNldDsKICB1aW50OF90IHBhZGRpbmdf
dGVsZW1ldHJ5c29jOwoKICB1aW50MTZfdCBtZW0wbWF4Y3VycmVudDsKICB1aW50OF90IG1lbTBv
ZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeW1lbTA7CgogIHVpbnQxNl90IG1lbTFt
YXhjdXJyZW50OwogIHVpbnQ4X3QgbWVtMW9mZnNldDsKICB1aW50OF90IHBhZGRpbmdfdGVsZW1l
dHJ5bWVtMTsKCiAgdWludDhfdCBhY2RjZ3BpbzsKICB1aW50OF90IGFjZGNwb2xhcml0eTsKICB1
aW50OF90IHZyMGhvdGdwaW87CiAgdWludDhfdCB2cjBob3Rwb2xhcml0eTsKCiAgdWludDhfdCB2
cjFob3RncGlvOwogIHVpbnQ4X3QgdnIxaG90cG9sYXJpdHk7CiAgdWludDhfdCBwYWRkaW5nMTsK
ICB1aW50OF90IHBhZGRpbmcyOwoKICB1aW50OF90IGxlZHBpbjA7CiAgdWludDhfdCBsZWRwaW4x
OwogIHVpbnQ4X3QgbGVkcGluMjsKICB1aW50OF90IHBhZGRpbmc4XzQ7CgogdWludDhfdCBwbGxn
ZnhjbGtzcHJlYWRlbmFibGVkOwogdWludDhfdCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogdWlu
dDE2X3QgcGxsZ2Z4Y2xrc3ByZWFkZnJlcTsKCiAgdWludDhfdCB1Y2xrc3ByZWFkZW5hYmxlZDsK
ICB1aW50OF90IHVjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IHVjbGtzcHJlYWRmcmVxOwoK
ICB1aW50OF90IHNvY2Nsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBzb2NjbGtzcHJlYWRwZXJj
ZW50OwogIHVpbnQxNl90IHNvY2Nsa3NwcmVhZGZyZXE7CgogdWludDhfdCBhY2dnZnhjbGtzcHJl
YWRlbmFibGVkOwogdWludDhfdCBhY2dnZnhjbGtzcHJlYWRwZXJjZW50OwogdWludDE2X3QgYWNn
Z2Z4Y2xrc3ByZWFkZnJlcTsKCiB1aW50OF90IFZyMl9JMkNfYWRkcmVzczsKIHVpbnQ4X3QgcGFk
ZGluZ192cjJbM107CgogdWludDMyX3QgYm9hcmRyZXNlcnZlZFs5XTsKfTsKCgoKCgoKc3RydWN0
IGF0b21fc21jX2RwbV9pbmZvX3Y0XzMKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFk
ZXIgdGFibGVfaGVhZGVyOwogIHVpbnQ4X3QgbGlxdWlkMV9pMmNfYWRkcmVzczsKICB1aW50OF90
IGxpcXVpZDJfaTJjX2FkZHJlc3M7CiAgdWludDhfdCB2cl9pMmNfYWRkcmVzczsKICB1aW50OF90
IHBseF9pMmNfYWRkcmVzczsKCiAgdWludDhfdCBsaXF1aWRfaTJjX2xpbmVzY2w7CiAgdWludDhf
dCBsaXF1aWRfaTJjX2xpbmVzZGE7CiAgdWludDhfdCB2cl9pMmNfbGluZXNjbDsKICB1aW50OF90
IHZyX2kyY19saW5lc2RhOwoKICB1aW50OF90IHBseF9pMmNfbGluZXNjbDsKICB1aW50OF90IHBs
eF9pMmNfbGluZXNkYTsKICB1aW50OF90IHZyc2Vuc29ycHJlc2VudDsKICB1aW50OF90IGxpcXVp
ZHNlbnNvcnByZXNlbnQ7CgogIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwZ2Z4OwogIHVpbnQxNl90
IG1heHZvbHRhZ2VzdGVwc29jOwoKICB1aW50OF90IHZkZGdmeHZybWFwcGluZzsKICB1aW50OF90
IHZkZHNvY3ZybWFwcGluZzsKICB1aW50OF90IHZkZG1lbTB2cm1hcHBpbmc7CiAgdWludDhfdCB2
ZGRtZW0xdnJtYXBwaW5nOwoKICB1aW50OF90IGdmeHVsdnBoYXNlc2hlZGRpbmdtYXNrOwogIHVp
bnQ4X3Qgc29jdWx2cGhhc2VzaGVkZGluZ21hc2s7CiAgdWludDhfdCBleHRlcm5hbHNlbnNvcnBy
ZXNlbnQ7CiAgdWludDhfdCBwYWRkaW5nOF92OwoKICB1aW50MTZfdCBnZnhtYXhjdXJyZW50Owog
IHVpbnQ4X3QgZ2Z4b2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlnZng7CgogIHVp
bnQxNl90IHNvY21heGN1cnJlbnQ7CiAgdWludDhfdCBzb2NvZmZzZXQ7CiAgdWludDhfdCBwYWRk
aW5nX3RlbGVtZXRyeXNvYzsKCiAgdWludDE2X3QgbWVtMG1heGN1cnJlbnQ7CiAgdWludDhfdCBt
ZW0wb2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnltZW0wOwoKICB1aW50MTZfdCBt
ZW0xbWF4Y3VycmVudDsKICB1aW50OF90IG1lbTFvZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3Rl
bGVtZXRyeW1lbTE7CgogIHVpbnQ4X3QgYWNkY2dwaW87CiAgdWludDhfdCBhY2RjcG9sYXJpdHk7
CiAgdWludDhfdCB2cjBob3RncGlvOwogIHVpbnQ4X3QgdnIwaG90cG9sYXJpdHk7CgogIHVpbnQ4
X3QgdnIxaG90Z3BpbzsKICB1aW50OF90IHZyMWhvdHBvbGFyaXR5OwogIHVpbnQ4X3QgcGFkZGlu
ZzE7CiAgdWludDhfdCBwYWRkaW5nMjsKCiAgdWludDhfdCBsZWRwaW4wOwogIHVpbnQ4X3QgbGVk
cGluMTsKICB1aW50OF90IGxlZHBpbjI7CiAgdWludDhfdCBwYWRkaW5nOF80OwoKICB1aW50OF90
IHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50
OwogIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7CgogIHVpbnQ4X3QgdWNsa3NwcmVhZGVu
YWJsZWQ7CiAgdWludDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKICB1aW50MTZfdCB1Y2xrc3ByZWFk
ZnJlcTsKCiAgdWludDhfdCBmY2xrc3ByZWFkZW5hYmxlZDsKICB1aW50OF90IGZjbGtzcHJlYWRw
ZXJjZW50OwogIHVpbnQxNl90IGZjbGtzcHJlYWRmcmVxOwoKICB1aW50OF90IGZsbGdmeGNsa3Nw
cmVhZGVuYWJsZWQ7CiAgdWludDhfdCBmbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90
IGZsbGdmeGNsa3NwcmVhZGZyZXE7CgogIHVpbnQzMl90IGJvYXJkcmVzZXJ2ZWRbMTBdOwp9OwoK
c3RydWN0IHNtdWRwbV9pMmNjb250cm9sbGVyY29uZmlnX3QgewogIHVpbnQzMl90IGVuYWJsZWQ7
CiAgdWludDMyX3Qgc2xhdmVhZGRyZXNzOwogIHVpbnQzMl90IGNvbnRyb2xsZXJwb3J0OwogIHVp
bnQzMl90IGNvbnRyb2xsZXJuYW1lOwogIHVpbnQzMl90IHRoZXJtYWx0aHJvdHRsZXI7CiAgdWlu
dDMyX3QgaTJjcHJvdG9jb2w7CiAgdWludDMyX3QgaTJjc3BlZWQ7Cn07CgpzdHJ1Y3QgYXRvbV9z
bWNfZHBtX2luZm9fdjRfNAp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJs
ZV9oZWFkZXI7CiAgdWludDMyX3QgaTJjX3BhZGRpbmdbM107CgogIHVpbnQxNl90IG1heHZvbHRh
Z2VzdGVwZ2Z4OwogIHVpbnQxNl90IG1heHZvbHRhZ2VzdGVwc29jOwoKICB1aW50OF90IHZkZGdm
eHZybWFwcGluZzsKICB1aW50OF90IHZkZHNvY3ZybWFwcGluZzsKICB1aW50OF90IHZkZG1lbTB2
cm1hcHBpbmc7CiAgdWludDhfdCB2ZGRtZW0xdnJtYXBwaW5nOwoKICB1aW50OF90IGdmeHVsdnBo
YXNlc2hlZGRpbmdtYXNrOwogIHVpbnQ4X3Qgc29jdWx2cGhhc2VzaGVkZGluZ21hc2s7CiAgdWlu
dDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CiAgdWludDhfdCBwYWRkaW5nOF92OwoKICB1aW50
MTZfdCBnZnhtYXhjdXJyZW50OwogIHVpbnQ4X3QgZ2Z4b2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGlu
Z190ZWxlbWV0cnlnZng7CgogIHVpbnQxNl90IHNvY21heGN1cnJlbnQ7CiAgdWludDhfdCBzb2Nv
ZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeXNvYzsKCiAgdWludDE2X3QgbWVtMG1h
eGN1cnJlbnQ7CiAgdWludDhfdCBtZW0wb2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0
cnltZW0wOwoKICB1aW50MTZfdCBtZW0xbWF4Y3VycmVudDsKICB1aW50OF90IG1lbTFvZmZzZXQ7
CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeW1lbTE7CgoKICB1aW50OF90IGFjZGNncGlvOwog
IHVpbnQ4X3QgYWNkY3BvbGFyaXR5OwogIHVpbnQ4X3QgdnIwaG90Z3BpbzsKICB1aW50OF90IHZy
MGhvdHBvbGFyaXR5OwoKICB1aW50OF90IHZyMWhvdGdwaW87CiAgdWludDhfdCB2cjFob3Rwb2xh
cml0eTsKICB1aW50OF90IHBhZGRpbmcxOwogIHVpbnQ4X3QgcGFkZGluZzI7CgoKICB1aW50OF90
IGxlZHBpbjA7CiAgdWludDhfdCBsZWRwaW4xOwogIHVpbnQ4X3QgbGVkcGluMjsKICB1aW50OF90
IHBhZGRpbmc4XzQ7CgoKICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhf
dCBwbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IHBsbGdmeGNsa3NwcmVhZGZyZXE7
CgoKICB1aW50OF90IHVjbGtzcHJlYWRlbmFibGVkOwogIHVpbnQ4X3QgdWNsa3NwcmVhZHBlcmNl
bnQ7CiAgdWludDE2X3QgdWNsa3NwcmVhZGZyZXE7CgoKICB1aW50OF90IGZjbGtzcHJlYWRlbmFi
bGVkOwogIHVpbnQ4X3QgZmNsa3NwcmVhZHBlcmNlbnQ7CiAgdWludDE2X3QgZmNsa3NwcmVhZGZy
ZXE7CgoKICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBmbGxnZnhj
bGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IGZsbGdmeGNsa3NwcmVhZGZyZXE7CgoKICBzdHJ1
Y3Qgc211ZHBtX2kyY2NvbnRyb2xsZXJjb25maWdfdCBpMmNjb250cm9sbGVyc1s3XTsKCgogIHVp
bnQzMl90IGJvYXJkcmVzZXJ2ZWRbMTBdOwp9OwoKZW51bSBzbXVkcG1fdjRfNV9pMmNjb250cm9s
bGVybmFtZV9lewogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9WUl9HRlggPSAwLAog
ICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9WUl9TT0MsCiAgICBTTUNfVjRfNV9JMkNf
Q09OVFJPTExFUl9OQU1FX1ZSX1ZERENJLAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFN
RV9WUl9NVkRELAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9MSVFVSUQwLAogICAg
U01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9MSVFVSUQxLAogICAgU01DX1Y0XzVfSTJDX0NP
TlRST0xMRVJfTkFNRV9QTFgsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9OQU1FX1NQQVJF
LAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfTkFNRV9DT1VOVCwKfTsKCmVudW0gc211ZHBt
X3Y0XzVfaTJjY29udHJvbGxlcnRocm90dGxlcl9lewogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xM
RVJfVEhST1RUTEVSX1RZUEVfTk9ORSA9IDAsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9U
SFJPVFRMRVJfVlJfR0ZYLAogICAgU01DX1Y0XzVfSTJDX0NPTlRST0xMRVJfVEhST1RUTEVSX1ZS
X1NPQywKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9WRERDSSwKICAg
IFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9UVExFUl9WUl9NVkRELAogICAgU01DX1Y0XzVf
STJDX0NPTlRST0xMRVJfVEhST1RUTEVSX0xJUVVJRDAsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJP
TExFUl9USFJPVFRMRVJfTElRVUlEMSwKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1RIUk9U
VExFUl9QTFgsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9USFJPVFRMRVJfQ09VTlQsCn07
CgplbnVtIHNtdWRwbV92NF81X2kyY2NvbnRyb2xsZXJwcm90b2NvbF9lewogICAgU01DX1Y0XzVf
STJDX0NPTlRST0xMRVJfUFJPVE9DT0xfVlJfMCwKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVS
X1BST1RPQ09MX1ZSXzEsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9UT0NPTF9UTVBf
MCwKICAgIFNNQ19WNF81X0kyQ19DT05UUk9MTEVSX1BST1RPQ09MX1RNUF8xLAogICAgU01DX1Y0
XzVfSTJDX0NPTlRST0xMRVJfUFJPVE9DT0xfU1BBUkVfMCwKICAgIFNNQ19WNF81X0kyQ19DT05U
Uk9MTEVSX1BST1RPQ09MX1NQQVJFXzEsCiAgICBTTUNfVjRfNV9JMkNfQ09OVFJPTExFUl9QUk9U
T0NPTF9DT1VOVCwKfTsKCnN0cnVjdCBzbXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyCnsK
ICAgIHVpbnQ4X3QgRW5hYmxlZDsKICAgIHVpbnQ4X3QgU3BlZWQ7CiAgICB1aW50OF90IFBhZGRp
bmdbMl07CiAgICB1aW50MzJfdCBTbGF2ZUFkZHJlc3M7CiAgICB1aW50OF90IENvbnRyb2xsZXJQ
b3J0OwogICAgdWludDhfdCBDb250cm9sbGVyTmFtZTsKICAgIHVpbnQ4X3QgVGhlcm1hbFRocm90
dGVyOwogICAgdWludDhfdCBJMmNQcm90b2NvbDsKfTsKCnN0cnVjdCBhdG9tX3NtY19kcG1faW5m
b192NF81CnsKICBzdHJ1Y3QgYXRvbV9jb21tb25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsK
CgogIHN0cnVjdCBzbXVkcG1faTJjX2NvbnRyb2xsZXJfY29uZmlnX3YyIEkyY0NvbnRyb2xsZXJz
WzhdOwoKCiAgdWludDE2X3QgTWF4Vm9sdGFnZVN0ZXBHZng7CiAgdWludDE2X3QgTWF4Vm9sdGFn
ZVN0ZXBTb2M7CgogIHVpbnQ4X3QgVmRkR2Z4VnJNYXBwaW5nOwogIHVpbnQ4X3QgVmRkU29jVnJN
YXBwaW5nOwogIHVpbnQ4X3QgVmRkTWVtMFZyTWFwcGluZzsKICB1aW50OF90IFZkZE1lbTFWck1h
cHBpbmc7CgogIHVpbnQ4X3QgR2Z4VWx2UGhhc2VTaGVkZGluZ01hc2s7CiAgdWludDhfdCBTb2NV
bHZQaGFzZVNoZWRkaW5nTWFzazsKICB1aW50OF90IEV4dGVybmFsU2Vuc29yUHJlc2VudDsKICB1
aW50OF90IFBhZGRpbmc4X1Y7CgoKICB1aW50MTZfdCBHZnhNYXhDdXJyZW50OwogIHVpbnQ4X3Qg
R2Z4T2Zmc2V0OwogIHVpbnQ4X3QgUGFkZGluZ19UZWxlbWV0cnlHZng7CiAgdWludDE2X3QgU29j
TWF4Q3VycmVudDsKICB1aW50OF90IFNvY09mZnNldDsKICB1aW50OF90IFBhZGRpbmdfVGVsZW1l
dHJ5U29jOwoKICB1aW50MTZfdCBNZW0wTWF4Q3VycmVudDsKICB1aW50OF90IE1lbTBPZmZzZXQ7
CiAgdWludDhfdCBQYWRkaW5nX1RlbGVtZXRyeU1lbTA7CgogIHVpbnQxNl90IE1lbTFNYXhDdXJy
ZW50OwogIHVpbnQ4X3QgTWVtMU9mZnNldDsKICB1aW50OF90IFBhZGRpbmdfVGVsZW1ldHJ5TWVt
MTsKCgogIHVpbnQ4X3QgQWNEY0dwaW87CiAgdWludDhfdCBBY0RjUG9sYXJpdHk7CiAgdWludDhf
dCBWUjBIb3RHcGlvOwogIHVpbnQ4X3QgVlIwSG90UG9sYXJpdHk7CgogIHVpbnQ4X3QgVlIxSG90
R3BpbzsKICB1aW50OF90IFZSMUhvdFBvbGFyaXR5OwogIHVpbnQ4X3QgR3RockdwaW87CiAgdWlu
dDhfdCBHdGhyUG9sYXJpdHk7CgoKICB1aW50OF90IExlZFBpbjA7CiAgdWludDhfdCBMZWRQaW4x
OwogIHVpbnQ4X3QgTGVkUGluMjsKICB1aW50OF90IHBhZGRpbmc4XzQ7CgoKICB1aW50OF90IFBs
bEdmeGNsa1NwcmVhZEVuYWJsZWQ7CiAgdWludDhfdCBQbGxHZnhjbGtTcHJlYWRQZXJjZW50Owog
IHVpbnQxNl90IFBsbEdmeGNsa1NwcmVhZEZyZXE7CgoKICB1aW50OF90IERmbGxHZnhjbGtTcHJl
YWRFbmFibGVkOwogIHVpbnQ4X3QgRGZsbEdmeGNsa1NwcmVhZFBlcmNlbnQ7CiAgdWludDE2X3Qg
RGZsbEdmeGNsa1NwcmVhZEZyZXE7CgoKICB1aW50OF90IFVjbGtTcHJlYWRFbmFibGVkOwogIHVp
bnQ4X3QgVWNsa1NwcmVhZFBlcmNlbnQ7CiAgdWludDE2X3QgVWNsa1NwcmVhZEZyZXE7CgoKICB1
aW50OF90IFNvY2xrU3ByZWFkRW5hYmxlZDsKICB1aW50OF90IFNvY2Nsa1NwcmVhZFBlcmNlbnQ7
CiAgdWludDE2X3QgU29jY2xrU3ByZWFkRnJlcTsKCgogIHVpbnQxNl90IFRvdGFsQm9hcmRQb3dl
cjsKICB1aW50MTZfdCBCb2FyZFBhZGRpbmc7CgoKICB1aW50MzJfdCBNdmRkUmF0aW87CgogIHVp
bnQzMl90IEJvYXJkUmVzZXJ2ZWRbOV07Cgp9OwoKc3RydWN0IGF0b21fc21jX2RwbV9pbmZvX3Y0
XzYKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwoKICB1
aW50MzJfdCBpMmNfcGFkZGluZ1szXTsKCiAgdWludDE2X3QgbWF4dm9sdGFnZXN0ZXBnZng7CiAg
dWludDE2X3QgbWF4dm9sdGFnZXN0ZXBzb2M7CgogIHVpbnQ4X3QgdmRkZ2Z4dnJtYXBwaW5nOwog
IHVpbnQ4X3QgdmRkc29jdnJtYXBwaW5nOwogIHVpbnQ4X3QgdmRkbWVtdnJtYXBwaW5nOwogIHVp
bnQ4X3QgYm9hcmR2cm1hcHBpbmc7CgogIHVpbnQ4X3QgZ2Z4dWx2cGhhc2VzaGVkZGluZ21hc2s7
CiAgdWludDhfdCBleHRlcm5hbHNlbnNvcnByZXNlbnQ7CiAgdWludDhfdCBwYWRkaW5nOF92WzJd
OwoKCiAgdWludDE2X3QgZ2Z4bWF4Y3VycmVudDsKICB1aW50OF90IGdmeG9mZnNldDsKICB1aW50
OF90IHBhZGRpbmdfdGVsZW1ldHJ5Z2Z4OwoKICB1aW50MTZfdCBzb2NtYXhjdXJyZW50OwogIHVp
bnQ4X3Qgc29jb2Zmc2V0OwogIHVpbnQ4X3QgcGFkZGluZ190ZWxlbWV0cnlzb2M7CgogIHVpbnQx
Nl90IG1lbW1heGN1cnJlbnQ7CiAgdWludDhfdCBtZW1vZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5n
X3RlbGVtZXRyeW1lbTsKCiAgdWludDE2X3QgYm9hcmRtYXhjdXJyZW50OwogIHVpbnQ4X3QgYm9h
cmRvZmZzZXQ7CiAgdWludDhfdCBwYWRkaW5nX3RlbGVtZXRyeWJvYXJkaW5wdXQ7CgoKICB1aW50
OF90IHZyMGhvdGdwaW87CiAgdWludDhfdCB2cjBob3Rwb2xhcml0eTsKICB1aW50OF90IHZyMWhv
dGdwaW87CiAgdWludDhfdCB2cjFob3Rwb2xhcml0eTsKCgogIHVpbnQ4X3QgcGxsZ2Z4Y2xrc3By
ZWFkZW5hYmxlZDsKICB1aW50OF90IHBsbGdmeGNsa3NwcmVhZHBlcmNlbnQ7CiAgdWludDE2X3Qg
cGxsZ2Z4Y2xrc3ByZWFkZnJlcTsKCgogIHVpbnQ4X3QgdWNsa3NwcmVhZGVuYWJsZWQ7CiAgdWlu
dDhfdCB1Y2xrc3ByZWFkcGVyY2VudDsKICB1aW50MTZfdCB1Y2xrc3ByZWFkZnJlcTsKCgogIHVp
bnQ4X3QgZmNsa3NwcmVhZGVuYWJsZWQ7CiAgdWludDhfdCBmY2xrc3ByZWFkcGVyY2VudDsKICB1
aW50MTZfdCBmY2xrc3ByZWFkZnJlcTsKCgoKICB1aW50OF90IGZsbGdmeGNsa3NwcmVhZGVuYWJs
ZWQ7CiAgdWludDhfdCBmbGxnZnhjbGtzcHJlYWRwZXJjZW50OwogIHVpbnQxNl90IGZsbGdmeGNs
a3NwcmVhZGZyZXE7CgoKICBzdHJ1Y3Qgc211ZHBtX2kyY19jb250cm9sbGVyX2NvbmZpZ192MiBp
MmNjb250cm9sbGVyc1s4XTsKCgogIHVpbnQzMl90IG1lbW9yeWNoYW5uZWxlbmFibGVkOwoKICB1
aW50OF90IGRyYW1iaXR3aWR0aDsKICB1aW50OF90IHBhZGRpbmdtZW1bM107CgoKICB1aW50MTZf
dCB0b3RhbGJvYXJkcG93ZXI7CiAgdWludDE2X3QgYm9hcmRwYWRkaW5nOwoKCiAgdWludDhfdCB4
Z21pbGlua3NwZWVkWzRdOwogIHVpbnQ4X3QgeGdtaWxpbmt3aWR0aFs0XTsKCiAgdWludDE2X3Qg
eGdtaWZjbGtmcmVxWzRdOwogIHVpbnQxNl90IHhnbWlzb2N2b2x0YWdlWzRdOwoKCiAgdWludDMy
X3QgYm9hcmRyZXNlcnZlZFsxMF07Cn07CgoKCgoKCnN0cnVjdCBhdG9tX2FzaWNfcHJvZmlsaW5n
X2luZm9fdjRfMQp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFk
ZXI7CiAgdWludDMyX3QgbWF4dmRkYzsKICB1aW50MzJfdCBtaW52ZGRjOwogIHVpbnQzMl90IGF2
ZnNfbWVhbm5zaWdtYV9hY29udGFudDA7CiAgdWludDMyX3QgYXZmc19tZWFubnNpZ21hX2Fjb250
YW50MTsKICB1aW50MzJfdCBhdmZzX21lYW5uc2lnbWFfYWNvbnRhbnQyOwogIHVpbnQxNl90IGF2
ZnNfbWVhbm5zaWdtYV9kY190b2xfc2lnbWE7CiAgdWludDE2X3QgYXZmc19tZWFubnNpZ21hX3Bs
YXRmb3JtX21lYW47CiAgdWludDE2X3QgYXZmc19tZWFubnNpZ21hX3BsYXRmb3JtX3NpZ21hOwog
IHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3NvZmZfYTA7CiAgdWludDMyX3QgZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZl9hMTsKICB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb2ZmX2EyOwog
IHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMDsKICB1aW50MzJfdCBnYl92ZHJvb3Bf
dGFibGVfY2tzb25fYTE7CiAgdWludDMyX3QgZ2JfdmRyb29wX3RhYmxlX2Nrc29uX2EyOwogIHVp
bnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9tMTsKICB1aW50MzJfdCBhdmZzZ2JfZnVz
ZV90YWJsZV9ja3NvZmZfbTI7CiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb2ZmX2I7
CiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25fbTE7CiAgdWludDMyX3QgYXZmc2di
X2Z1c2VfdGFibGVfY2tzb25fbTI7CiAgdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25f
YjsKICB1aW50MTZfdCBtYXhfdm9sdGFnZV8wXzI1bXY7CiAgdWludDhfdCBlbmFibGVfZ2JfdmRy
b29wX3RhYmxlX2Nrc29mZjsKICB1aW50OF90IGVuYWJsZV9nYl92ZHJvb3BfdGFibGVfY2tzb247
CiAgdWludDhfdCBlbmFibGVfZ2JfZnVzZV90YWJsZV9ja3NvZmY7CiAgdWludDhfdCBlbmFibGVf
Z2JfZnVzZV90YWJsZV9ja3NvbjsKICB1aW50MTZfdCBwc21fYWdlX2NvbWZhY3RvcjsKICB1aW50
OF90IGVuYWJsZV9hcHBseV9hdmZzX2Nrc29mZl92b2x0YWdlOwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7
CiAgdWludDMyX3QgZGlzcGNsazJnZnhjbGtfYTsKICB1aW50MzJfdCBkaXNwY2xrMmdmeGNsa19i
OwogIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2M7CiAgdWludDMyX3QgcGl4Y2xrMmdmeGNsa19h
OwogIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYjsKICB1aW50MzJfdCBwaXhjbGsyZ2Z4Y2xrX2M7
CiAgdWludDMyX3QgZGNlZmNsazJnZnhjbGtfYTsKICB1aW50MzJfdCBkY2VmY2xrMmdmeGNsa19i
OwogIHVpbnQzMl90IGRjZWZjbGsyZ2Z4Y2xrX2M7CiAgdWludDMyX3QgcGh5Y2xrMmdmeGNsa19h
OwogIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYjsKICB1aW50MzJfdCBwaHljbGsyZ2Z4Y2xrX2M7
Cn07CgpzdHJ1Y3QgYXRvbV9hc2ljX3Byb2ZpbGluZ19pbmZvX3Y0XzIgewogc3RydWN0IGF0b21f
Y29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7CiB1aW50MzJfdCBtYXh2ZGRjOwogdWlu
dDMyX3QgbWludmRkYzsKIHVpbnQzMl90IGF2ZnNfbWVhbm5zaWdtYV9hY29udGFudDA7CiB1aW50
MzJfdCBhdmZzX21lYW5uc2lnbWFfYWNvbnRhbnQxOwogdWludDMyX3QgYXZmc19tZWFubnNpZ21h
X2Fjb250YW50MjsKIHVpbnQxNl90IGF2ZnNfbWVhbm5zaWdtYV9kY190b2xfc2lnbWE7CiB1aW50
MTZfdCBhdmZzX21lYW5uc2lnbWFfcGxhdGZvcm1fbWVhbjsKIHVpbnQxNl90IGF2ZnNfbWVhbm5z
aWdtYV9wbGF0Zm9ybV9zaWdtYTsKIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3NvZmZfYTA7
CiB1aW50MzJfdCBnYl92ZHJvb3BfdGFibGVfY2tzb2ZmX2ExOwogdWludDMyX3QgZ2JfdmRyb29w
X3RhYmxlX2Nrc29mZl9hMjsKIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMDsKIHVp
bnQzMl90IGdiX3Zkcm9vcF90YWJsZV9ja3Nvbl9hMTsKIHVpbnQzMl90IGdiX3Zkcm9vcF90YWJs
ZV9ja3Nvbl9hMjsKIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9tMTsKIHVpbnQz
Ml90IGF2ZnNnYl9mdXNlX3RhYmxlX2Nrc29mZl9tMjsKIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3Rh
YmxlX2Nrc29mZl9iOwogdWludDMyX3QgYXZmc2diX2Z1c2VfdGFibGVfY2tzb25fbTE7CiB1aW50
MzJfdCBhdmZzZ2JfZnVzZV90YWJsZV9ja3Nvbl9tMjsKIHVpbnQzMl90IGF2ZnNnYl9mdXNlX3Rh
YmxlX2Nrc29uX2I7CiB1aW50MTZfdCBtYXhfdm9sdGFnZV8wXzI1bXY7CiB1aW50OF90IGVuYWJs
ZV9nYl92ZHJvb3BfdGFibGVfY2tzb2ZmOwogdWludDhfdCBlbmFibGVfZ2JfdmRyb29wX3RhYmxl
X2Nrc29uOwogdWludDhfdCBlbmFibGVfZ2JfZnVzZV90YWJsZV9ja3NvZmY7CiB1aW50OF90IGVu
YWJsZV9nYl9mdXNlX3RhYmxlX2Nrc29uOwogdWludDE2X3QgcHNtX2FnZV9jb21mYWN0b3I7CiB1
aW50OF90IGVuYWJsZV9hcHBseV9hdmZzX2Nrc29mZl92b2x0YWdlOwogdWludDhfdCByZXNlcnZl
ZDsKIHVpbnQzMl90IGRpc3BjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBkaXNwY2xrMmdmeGNsa19i
OwogdWludDMyX3QgZGlzcGNsazJnZnhjbGtfYzsKIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYTsK
IHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYjsKIHVpbnQzMl90IHBpeGNsazJnZnhjbGtfYzsKIHVp
bnQzMl90IGRjZWZjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBkY2VmY2xrMmdmeGNsa19iOwogdWlu
dDMyX3QgZGNlZmNsazJnZnhjbGtfYzsKIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYTsKIHVpbnQz
Ml90IHBoeWNsazJnZnhjbGtfYjsKIHVpbnQzMl90IHBoeWNsazJnZnhjbGtfYzsKIHVpbnQzMl90
IGFjZ19nYl92ZHJvb3BfdGFibGVfYTA7CiB1aW50MzJfdCBhY2dfZ2JfdmRyb29wX3RhYmxlX2Ex
OwogdWludDMyX3QgYWNnX2diX3Zkcm9vcF90YWJsZV9hMjsKIHVpbnQzMl90IGFjZ19hdmZzZ2Jf
ZnVzZV90YWJsZV9tMTsKIHVpbnQzMl90IGFjZ19hdmZzZ2JfZnVzZV90YWJsZV9tMjsKIHVpbnQz
Ml90IGFjZ19hdmZzZ2JfZnVzZV90YWJsZV9iOwogdWludDhfdCBlbmFibGVfYWNnX2diX3Zkcm9v
cF90YWJsZTsKIHVpbnQ4X3QgZW5hYmxlX2FjZ19nYl9mdXNlX3RhYmxlOwogdWludDMyX3QgYWNn
X2Rpc3BjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBhY2dfZGlzcGNsazJnZnhjbGtfYjsKIHVpbnQz
Ml90IGFjZ19kaXNwY2xrMmdmeGNsa19jOwogdWludDMyX3QgYWNnX3BpeGNsazJnZnhjbGtfYTsK
IHVpbnQzMl90IGFjZ19waXhjbGsyZ2Z4Y2xrX2I7CiB1aW50MzJfdCBhY2dfcGl4Y2xrMmdmeGNs
a19jOwogdWludDMyX3QgYWNnX2RjZWZjbGsyZ2Z4Y2xrX2E7CiB1aW50MzJfdCBhY2dfZGNlZmNs
azJnZnhjbGtfYjsKIHVpbnQzMl90IGFjZ19kY2VmY2xrMmdmeGNsa19jOwogdWludDMyX3QgYWNn
X3BoeWNsazJnZnhjbGtfYTsKIHVpbnQzMl90IGFjZ19waHljbGsyZ2Z4Y2xrX2I7CiB1aW50MzJf
dCBhY2dfcGh5Y2xrMmdmeGNsa19jOwp9OwoKCgoKCgpzdHJ1Y3QgYXRvbV9tdWx0aW1lZGlhX2lu
Zm9fdjJfMQp7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJsZV9oZWFkZXI7
CiAgdWludDhfdCB1dmRpcF9taW5fdmVyOwogIHVpbnQ4X3QgdXZkaXBfbWF4X3ZlcjsKICB1aW50
OF90IHZjZWlwX21pbl92ZXI7CiAgdWludDhfdCB2Y2VpcF9tYXhfdmVyOwogIHVpbnQxNl90IHV2
ZF9lbmNfbWF4X2lucHV0X3dpZHRoX3BpeGVsczsKICB1aW50MTZfdCB1dmRfZW5jX21heF9pbnB1
dF9oZWlnaHRfcGl4ZWxzOwogIHVpbnQxNl90IHZjZV9lbmNfbWF4X2lucHV0X3dpZHRoX3BpeGVs
czsKICB1aW50MTZfdCB2Y2VfZW5jX21heF9pbnB1dF9oZWlnaHRfcGl4ZWxzOwogIHVpbnQzMl90
IHV2ZF9lbmNfbWF4X2JhbmR3aWR0aDsKICB1aW50MzJfdCB2Y2VfZW5jX21heF9iYW5kd2lkdGg7
Cn07CgoKCgoKCgpzdHJ1Y3QgYXRvbV91bWNfaW5mb192M18xCnsKICBzdHJ1Y3QgYXRvbV9jb21t
b25fdGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50MzJfdCB1Y29kZV92ZXJzaW9uOwog
IHVpbnQzMl90IHVjb2RlX3JvbV9zdGFydGFkZHI7CiAgdWludDMyX3QgdWNvZGVfbGVuZ3RoOwog
IHVpbnQxNl90IHVtY19yZWdfaW5pdF9vZmZzZXQ7CiAgdWludDE2X3QgY3VzdG9tZXJfdWNvZGVf
bmFtZV9vZmZzZXQ7CiAgdWludDE2X3QgbWNsa19zc19wZXJjZW50YWdlOwogIHVpbnQxNl90IG1j
bGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKICB1aW50OF90IHVtY2lw
X21heF92ZXI7CiAgdWludDhfdCB2cmFtX3R5cGU7CiAgdWludDhfdCB1bWNfY29uZmlnOwogIHVp
bnQzMl90IG1lbV9yZWZjbGtfMTBraHo7Cn07CgoKZW51bSBhdG9tX3VtY19jb25maWdfZGVmIHsK
ICBVTUNfQ09ORklHX19FTkFCTEVfMUtCX0lOVEVSTEVBVkVfTU9ERSA9IDB4MDAwMDAwMDEsCiAg
VU1DX0NPTkZJR19fREVGQVVMVF9NRU1fRUNDX0VOQUJMRSA9IDB4MDAwMDAwMDIsCiAgVU1DX0NP
TkZJR19fRU5BQkxFX0hCTV9MQU5FX1JFUEFJUiA9IDB4MDAwMDAwMDQsCiAgVU1DX0NPTkZJR19f
RU5BQkxFX0JBTktfSEFSVkVTVElORyA9IDB4MDAwMDAwMDgsCiAgVU1DX0NPTkZJR19fRU5BQkxF
X1BIWV9SRUlOSVQgPSAweDAwMDAwMDEwLAogIFVNQ19DT05GSUdfX0RJU0FCTEVfVUNPREVfQ0hL
U1RBVFVTID0gMHgwMDAwMDAyMCwKfTsKCnN0cnVjdCBhdG9tX3VtY19pbmZvX3YzXzIKewogIHN0
cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IHVj
b2RlX3ZlcnNpb247CiAgdWludDMyX3QgdWNvZGVfcm9tX3N0YXJ0YWRkcjsKICB1aW50MzJfdCB1
Y29kZV9sZW5ndGg7CiAgdWludDE2X3QgdW1jX3JlZ19pbml0X29mZnNldDsKICB1aW50MTZfdCBj
dXN0b21lcl91Y29kZV9uYW1lX29mZnNldDsKICB1aW50MTZfdCBtY2xrX3NzX3BlcmNlbnRhZ2U7
CiAgdWludDE2X3QgbWNsa19zc19yYXRlXzEwaHo7CiAgdWludDhfdCB1bWNpcF9taW5fdmVyOwog
IHVpbnQ4X3QgdW1jaXBfbWF4X3ZlcjsKICB1aW50OF90IHZyYW1fdHlwZTsKICB1aW50OF90IHVt
Y19jb25maWc7CiAgdWludDMyX3QgbWVtX3JlZmNsa18xMGtoejsKICB1aW50MzJfdCBwc3RhdGVf
dWNsa18xMGtoels0XTsKICB1aW50MTZfdCB1bWNnb2xkZW5vZmZzZXQ7CiAgdWludDE2X3QgZGVu
c2l0eWdvbGRlbm9mZnNldDsKfTsKCnN0cnVjdCBhdG9tX3VtY19pbmZvX3YzXzMKewogIHN0cnVj
dCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVfaGVhZGVyOwogIHVpbnQzMl90IHVjb2Rl
X3Jlc2VydmVkOwogIHVpbnQzMl90IHVjb2RlX3JvbV9zdGFydGFkZHI7CiAgdWludDMyX3QgdWNv
ZGVfbGVuZ3RoOwogIHVpbnQxNl90IHVtY19yZWdfaW5pdF9vZmZzZXQ7CiAgdWludDE2X3QgY3Vz
dG9tZXJfdWNvZGVfbmFtZV9vZmZzZXQ7CiAgdWludDE2X3QgbWNsa19zc19wZXJjZW50YWdlOwog
IHVpbnQxNl90IG1jbGtfc3NfcmF0ZV8xMGh6OwogIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKICB1
aW50OF90IHVtY2lwX21heF92ZXI7CiAgdWludDhfdCB2cmFtX3R5cGU7CiAgdWludDhfdCB1bWNf
Y29uZmlnOwogIHVpbnQzMl90IG1lbV9yZWZjbGtfMTBraHo7CiAgdWludDMyX3QgcHN0YXRlX3Vj
bGtfMTBraHpbNF07CiAgdWludDE2X3QgdW1jZ29sZGVub2Zmc2V0OwogIHVpbnQxNl90IGRlbnNp
dHlnb2xkZW5vZmZzZXQ7CiAgdWludDMyX3QgcmVzZXJ2ZWRbNF07Cn07CgoKCgoKCnN0cnVjdCBh
dG9tX3ZyYW1fbW9kdWxlX3Y5IHsKCiAgdWludDMyX3QgbWVtb3J5X3NpemU7CiAgdWludDMyX3Qg
Y2hhbm5lbF9lbmFibGU7CiAgdWludDMyX3QgbWF4X21lbV9jbGs7CiAgdWludDE2X3QgcmVzZXJ2
ZWRbM107CiAgdWludDE2X3QgbWVtX3ZvbHRhZ2U7CiAgdWludDE2X3QgdnJhbV9tb2R1bGVfc2l6
ZTsKICB1aW50OF90IGV4dF9tZW1vcnlfaWQ7CiAgdWludDhfdCBtZW1vcnlfdHlwZTsKICB1aW50
OF90IGNoYW5uZWxfbnVtOwogIHVpbnQ4X3QgY2hhbm5lbF93aWR0aDsKICB1aW50OF90IGRlbnNp
dHk7CiAgdWludDhfdCB0dW5uaW5nc2V0X2lkOwogIHVpbnQ4X3QgdmVuZGVyX3Jldl9pZDsKICB1
aW50OF90IHJlZnJlc2hyYXRlOwogIHVpbnQ4X3QgaGJtX3Zlbl9yZXZfaWQ7CiAgdWludDhfdCB2
cmFtX3JzZDI7CiAgY2hhciBkcmFtX3Buc3RyaW5nWzIwXTsKfTsKCnN0cnVjdCBhdG9tX3ZyYW1f
aW5mb19oZWFkZXJfdjJfMyB7CiAgc3RydWN0IGF0b21fY29tbW9uX3RhYmxlX2hlYWRlciB0YWJs
ZV9oZWFkZXI7CiAgdWludDE2X3QgbWVtX2FkanVzdF90YmxvZmZzZXQ7CiAgdWludDE2X3QgbWVt
X2Nsa19wYXRjaF90YmxvZmZzZXQ7CiAgdWludDE2X3QgbWNfYWRqdXN0X3BlcnRpbGVfdGJsb2Zm
c2V0OwogIHVpbnQxNl90IG1jX3BoeWluaXRfdGJsb2Zmc2V0OwogIHVpbnQxNl90IGRyYW1fZGF0
YV9yZW1hcF90YmxvZmZzZXQ7CiAgdWludDE2X3QgdG1yc19zZXFfb2Zmc2V0OwogIHVpbnQxNl90
IHBvc3RfdWNvZGVfaW5pdF9vZmZzZXQ7CiAgdWludDE2X3QgdnJhbV9yc2QyOwogIHVpbnQ4X3Qg
dnJhbV9tb2R1bGVfbnVtOwogIHVpbnQ4X3QgdW1jaXBfbWluX3ZlcjsKICB1aW50OF90IHVtY2lw
X21heF92ZXI7CiAgdWludDhfdCBtY19waHlfdGlsZV9udW07CiAgc3RydWN0IGF0b21fdnJhbV9t
b2R1bGVfdjkgdnJhbV9tb2R1bGVbMTZdOwp9OwoKc3RydWN0IGF0b21fdW1jX3JlZ2lzdGVyX2Fk
ZHJfaW5mb3sKICB1aW50MzJfdCB1bWNfcmVnaXN0ZXJfYWRkcjoyNDsKICB1aW50MzJfdCB1bWNf
cmVnX3R5cGVfaW5kOjE7CiAgdWludDMyX3QgdW1jX3JlZ19yc3ZkOjc7Cn07CgoKZW51bSBhdG9t
X3VtY19yZWdpc3Rlcl9hZGRyX2luZm9fZmxhZ3sKICBiM0FUT01fVU1DX1JFR19BRERfSU5GT19J
TkRJUkVDVF9BQ0NFU1MgPTB4MDEsCn07Cgp1bmlvbiBhdG9tX3VtY19yZWdpc3Rlcl9hZGRyX2lu
Zm9fYWNjZXNzCnsKICBzdHJ1Y3QgYXRvbV91bWNfcmVnaXN0ZXJfYWRkcl9pbmZvIHVtY19yZWdf
YWRkcjsKICB1aW50MzJfdCB1MzJ1bWNfcmVnX2FkZHI7Cn07CgpzdHJ1Y3QgYXRvbV91bWNfcmVn
X3NldHRpbmdfaWRfY29uZmlnewogIHVpbnQzMl90IG1lbWNsb2NrcmFuZ2U6MjQ7CiAgdWludDMy
X3QgbWVtX2Jsa19pZDo4Owp9OwoKdW5pb24gYXRvbV91bWNfcmVnX3NldHRpbmdfaWRfY29uZmln
X2FjY2Vzcwp7CiAgc3RydWN0IGF0b21fdW1jX3JlZ19zZXR0aW5nX2lkX2NvbmZpZyB1bWNfaWRf
YWNjZXNzOwogIHVpbnQzMl90IHUzMnVtY19pZF9hY2Nlc3M7Cn07CgpzdHJ1Y3QgYXRvbV91bWNf
cmVnX3NldHRpbmdfZGF0YV9ibG9ja3sKICB1bmlvbiBhdG9tX3VtY19yZWdfc2V0dGluZ19pZF9j
b25maWdfYWNjZXNzIGJsb2NrX2lkOwogIHVpbnQzMl90IHUzMnVtY19yZWdfZGF0YVsxXTsKfTsK
CnN0cnVjdCBhdG9tX3VtY19pbml0X3JlZ19ibG9ja3sKICB1aW50MTZfdCB1bWNfcmVnX251bTsK
ICB1aW50MTZfdCByZXNlcnZlZDsKICB1bmlvbiBhdG9tX3VtY19yZWdpc3Rlcl9hZGRyX2luZm9f
YWNjZXNzIHVtY19yZWdfbGlzdFsxXTsKICBzdHJ1Y3QgYXRvbV91bWNfcmVnX3NldHRpbmdfZGF0
YV9ibG9jayB1bWNfcmVnX3NldHRpbmdfbGlzdFsxXTsKfTsKCnN0cnVjdCBhdG9tX3ZyYW1fbW9k
dWxlX3YxMCB7CgogIHVpbnQzMl90IG1lbW9yeV9zaXplOwogIHVpbnQzMl90IGNoYW5uZWxfZW5h
YmxlOwogIHVpbnQzMl90IG1heF9tZW1fY2xrOwogIHVpbnQxNl90IHJlc2VydmVkWzNdOwogIHVp
bnQxNl90IG1lbV92b2x0YWdlOwogIHVpbnQxNl90IHZyYW1fbW9kdWxlX3NpemU7CiAgdWludDhf
dCBleHRfbWVtb3J5X2lkOwogIHVpbnQ4X3QgbWVtb3J5X3R5cGU7CiAgdWludDhfdCBjaGFubmVs
X251bTsKICB1aW50OF90IGNoYW5uZWxfd2lkdGg7CiAgdWludDhfdCBkZW5zaXR5OwogIHVpbnQ4
X3QgdHVubmluZ3NldF9pZDsKICB1aW50OF90IHZlbmRlcl9yZXZfaWQ7CiAgdWludDhfdCByZWZy
ZXNocmF0ZTsKICB1aW50OF90IHZyYW1fZmxhZ3M7CiAgdWludDhfdCB2cmFtX3JzZDI7CiAgdWlu
dDE2X3QgZ2RkcjZfbXIxMDsKICB1aW50MTZfdCBnZGRyNl9tcjE7CiAgdWludDE2X3QgZ2RkcjZf
bXIyOwogIHVpbnQxNl90IGdkZHI2X21yNzsKICBjaGFyIGRyYW1fcG5zdHJpbmdbMjBdOwp9OwoK
c3RydWN0IGF0b21fdnJhbV9pbmZvX2hlYWRlcl92Ml80IHsKICBzdHJ1Y3QgYXRvbV9jb21tb25f
dGFibGVfaGVhZGVyIHRhYmxlX2hlYWRlcjsKICB1aW50MTZfdCBtZW1fYWRqdXN0X3RibG9mZnNl
dDsKICB1aW50MTZfdCBtZW1fY2xrX3BhdGNoX3RibG9mZnNldDsKICB1aW50MTZfdCBtY19hZGp1
c3RfcGVydGlsZV90YmxvZmZzZXQ7CiAgdWludDE2X3QgbWNfcGh5aW5pdF90YmxvZmZzZXQ7CiAg
dWludDE2X3QgZHJhbV9kYXRhX3JlbWFwX3RibG9mZnNldDsKICB1aW50MTZfdCByZXNlcnZlZDsK
ICB1aW50MTZfdCBwb3N0X3Vjb2RlX2luaXRfb2Zmc2V0OwogIHVpbnQxNl90IHZyYW1fcnNkMjsK
ICB1aW50OF90IHZyYW1fbW9kdWxlX251bTsKICB1aW50OF90IHVtY2lwX21pbl92ZXI7CiAgdWlu
dDhfdCB1bWNpcF9tYXhfdmVyOwogIHVpbnQ4X3QgbWNfcGh5X3RpbGVfbnVtOwogIHN0cnVjdCBh
dG9tX3ZyYW1fbW9kdWxlX3YxMCB2cmFtX21vZHVsZVsxNl07Cn07CgoKCgoKCnN0cnVjdCBhdG9t
X2kyY19kYXRhX2VudHJ5CnsKICB1aW50MTZfdCBpMmNfcmVnX2luZGV4OwogIHVpbnQxNl90IGky
Y19yZWdfZGF0YTsKfTsKCnN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NHsKICB1
aW50OF90IHZvbHRhZ2VfdHlwZTsKICB1aW50OF90IHZvbHRhZ2VfbW9kZTsKICB1aW50MTZfdCBv
YmplY3Rfc2l6ZTsKfTsKCgplbnVtIGF0b21fdm9sdGFnZV9vYmplY3RfbW9kZQp7CiAgIFZPTFRB
R0VfT0JKX0dQSU9fTFVUID0gMCwKICAgVk9MVEFHRV9PQkpfVlJfSTJDX0lOSVRfU0VRID0gMywK
ICAgVk9MVEFHRV9PQkpfUEhBU0VfTFVUID0gNCwKICAgVk9MVEFHRV9PQkpfU1ZJRDIgPSA3LAog
ICBWT0xUQUdFX09CSl9FVlYgPSA4LAogICBWT0xUQUdFX09CSl9NRVJHRURfUE9XRVIgPSA5LAp9
OwoKc3RydWN0IGF0b21faTJjX3ZvbHRhZ2Vfb2JqZWN0X3Y0CnsKICAgc3RydWN0IGF0b21fdm9s
dGFnZV9vYmplY3RfaGVhZGVyX3Y0IGhlYWRlcjsKICAgdWludDhfdCByZWd1bGF0b3JfaWQ7CiAg
IHVpbnQ4X3QgaTJjX2lkOwogICB1aW50OF90IGkyY19zbGF2ZV9hZGRyOwogICB1aW50OF90IGky
Y19jb250cm9sX29mZnNldDsKICAgdWludDhfdCBpMmNfZmxhZzsKICAgdWludDhfdCBpMmNfc3Bl
ZWQ7CiAgIHVpbnQ4X3QgcmVzZXJ2ZWRbMl07CiAgIHN0cnVjdCBhdG9tX2kyY19kYXRhX2VudHJ5
IGkyY2RhdGFsdXRbMV07Cn07CgoKZW51bSBhdG9tX2kyY192b2x0YWdlX2NvbnRyb2xfZmxhZwp7
CiAgIFZPTFRBR0VfREFUQV9PTkVfQllURSA9IDAsCiAgIFZPTFRBR0VfREFUQV9UV09fQllURSA9
IDEsCn07CgoKc3RydWN0IGF0b21fdm9sdGFnZV9ncGlvX21hcF9sdXQKewogIHVpbnQzMl90IHZv
bHRhZ2VfZ3Bpb19yZWdfdmFsOwogIHVpbnQxNl90IHZvbHRhZ2VfbGV2ZWxfbXY7Cn07CgpzdHJ1
Y3QgYXRvbV9ncGlvX3ZvbHRhZ2Vfb2JqZWN0X3Y0CnsKICAgc3RydWN0IGF0b21fdm9sdGFnZV9v
YmplY3RfaGVhZGVyX3Y0IGhlYWRlcjsKICAgdWludDhfdCBncGlvX2NvbnRyb2xfaWQ7CiAgIHVp
bnQ4X3QgZ3Bpb19lbnRyeV9udW07CiAgIHVpbnQ4X3QgcGhhc2VfZGVsYXlfdXM7CiAgIHVpbnQ4
X3QgcmVzZXJ2ZWQ7CiAgIHVpbnQzMl90IGdwaW9fbWFza192YWw7CiAgIHN0cnVjdCBhdG9tX3Zv
bHRhZ2VfZ3Bpb19tYXBfbHV0IHZvbHRhZ2VfZ3Bpb19sdXRbMV07Cn07CgpzdHJ1Y3QgYXRvbV9z
dmlkMl92b2x0YWdlX29iamVjdF92NAp7CiAgIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hl
YWRlcl92NCBoZWFkZXI7CiAgIHVpbnQ4X3QgbG9hZGxpbmVfcHNpMTsKICAgdWludDhfdCBwc2kw
X2xfdmlkX3RocmVzZDsKICAgdWludDhfdCBwc2kwX2VuYWJsZTsKICAgdWludDhfdCBtYXh2c3Rl
cDsKICAgdWludDhfdCB0ZWxlbWV0cnlfb2Zmc2V0OwogICB1aW50OF90IHRlbGVtZXRyeV9nYWlu
OwogICB1aW50MTZfdCByZXNlcnZlZDE7Cn07CgpzdHJ1Y3QgYXRvbV9tZXJnZWRfdm9sdGFnZV9v
YmplY3RfdjQKewogIHN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2JqZWN0X2hlYWRlcl92NCBoZWFkZXI7
CiAgdWludDhfdCBtZXJnZWRfcG93ZXJyYWlsX3R5cGU7CiAgdWludDhfdCByZXNlcnZlZFszXTsK
fTsKCnVuaW9uIGF0b21fdm9sdGFnZV9vYmplY3RfdjR7CiAgc3RydWN0IGF0b21fZ3Bpb192b2x0
YWdlX29iamVjdF92NCBncGlvX3ZvbHRhZ2Vfb2JqOwogIHN0cnVjdCBhdG9tX2kyY192b2x0YWdl
X29iamVjdF92NCBpMmNfdm9sdGFnZV9vYmo7CiAgc3RydWN0IGF0b21fc3ZpZDJfdm9sdGFnZV9v
YmplY3RfdjQgc3ZpZDJfdm9sdGFnZV9vYmo7CiAgc3RydWN0IGF0b21fbWVyZ2VkX3ZvbHRhZ2Vf
b2JqZWN0X3Y0IG1lcmdlZF92b2x0YWdlX29iajsKfTsKCnN0cnVjdCBhdG9tX3ZvbHRhZ2Vfb2Jq
ZWN0c19pbmZvX3Y0XzEKewogIHN0cnVjdCBhdG9tX2NvbW1vbl90YWJsZV9oZWFkZXIgdGFibGVf
aGVhZGVyOwogIHVuaW9uIGF0b21fdm9sdGFnZV9vYmplY3RfdjQgdm9sdGFnZV9vYmplY3RbMV07
Cn07CiMgMjMyMyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21m
aXJtd2FyZS5oIgpzdHJ1Y3QgYXNpY19pbml0X2VuZ2luZV9wYXJhbWV0ZXJzCnsKICB1aW50MzJf
dCBzY2xrZnJlcWluMTBraHo6MjQ7CiAgdWludDMyX3QgZW5naW5lZmxhZzo4Owp9OwoKc3RydWN0
IGFzaWNfaW5pdF9tZW1fcGFyYW1ldGVycwp7CiAgdWludDMyX3QgbWNsa2ZyZXFpbjEwa2h6OjI0
OwogIHVpbnQzMl90IG1lbWZsYWc6ODsKfTsKCnN0cnVjdCBhc2ljX2luaXRfcGFyYW1ldGVyc192
Ml8xCnsKICBzdHJ1Y3QgYXNpY19pbml0X2VuZ2luZV9wYXJhbWV0ZXJzIGVuZ2luZXBhcmFtOwog
IHN0cnVjdCBhc2ljX2luaXRfbWVtX3BhcmFtZXRlcnMgbWVtcGFyYW07Cn07CgpzdHJ1Y3QgYXNp
Y19pbml0X3BzX2FsbG9jYXRpb25fdjJfMQp7CiAgc3RydWN0IGFzaWNfaW5pdF9wYXJhbWV0ZXJz
X3YyXzEgcGFyYW07CiAgdWludDMyX3QgcmVzZXJ2ZWRbMTZdOwp9OwoKCmVudW0gYXRvbV9hc2lj
X2luaXRfZW5naW5lX2ZsYWcKewogIGIzTk9STUFMX0VOR0lORV9JTklUID0gMCwKICBiM1NSSU9W
X1NLSVBfQVNJQ19JTklUID0gMHgwMiwKICBiM1NSSU9WX0xPQURfVUNPREUgPSAweDQwLAp9OwoK
ZW51bSBhdG9tX2FzaWNfaW5pdF9tZW1fZmxhZwp7CiAgYjNOT1JNQUxfTUVNX0lOSVQgPSAwLAog
IGIzRFJBTV9TRUxGX1JFRlJFU0hfRVhJVCA9MHgyMCwKfTsKCgoKCgoKCnN0cnVjdCBzZXRfZW5n
aW5lX2Nsb2NrX3BhcmFtZXRlcnNfdjJfMQp7CiAgdWludDMyX3Qgc2Nsa2ZyZXFpbjEwa2h6OjI0
OwogIHVpbnQzMl90IHNjbGtmbGFnOjg7CiAgdWludDMyX3QgcmVzZXJ2ZWRbMTBdOwp9OwoKc3Ry
dWN0IHNldF9lbmdpbmVfY2xvY2tfcHNfYWxsb2NhdGlvbl92Ml8xCnsKICBzdHJ1Y3Qgc2V0X2Vu
Z2luZV9jbG9ja19wYXJhbWV0ZXJzX3YyXzEgY2xvY2tpbmZvOwogIHVpbnQzMl90IHJlc2VydmVk
WzEwXTsKfTsKCgplbnVtIGF0b21fc2V0X2VuZ2luZV9tZW1fY2xvY2tfZmxhZwp7CiAgYjNOT1JN
QUxfQ0hBTkdFX0NMT0NLID0gMCwKICBiM0ZJUlNUX1RJTUVfQ0hBTkdFX0NMT0NLID0gMHgwOCwK
ICBiM1NUT1JFX0RQTV9UUkFJTkdJTkcgPSAweDQwLAp9OwoKCgoKCgpzdHJ1Y3QgZ2V0X2VuZ2lu
ZV9jbG9ja19wYXJhbWV0ZXIKewogIHVpbnQzMl90IHNjbGtfMTBraHo7CiAgdWludDMyX3QgcmVz
ZXJ2ZWQ7Cn07CgoKCgoKCnN0cnVjdCBzZXRfbWVtb3J5X2Nsb2NrX3BhcmFtZXRlcnNfdjJfMQp7
CiAgdWludDMyX3QgbWNsa2ZyZXFpbjEwa2h6OjI0OwogIHVpbnQzMl90IG1jbGtmbGFnOjg7CiAg
dWludDMyX3QgcmVzZXJ2ZWRbMTBdOwp9OwoKc3RydWN0IHNldF9tZW1vcnlfY2xvY2tfcHNfYWxs
b2NhdGlvbl92Ml8xCnsKICBzdHJ1Y3Qgc2V0X21lbW9yeV9jbG9ja19wYXJhbWV0ZXJzX3YyXzEg
Y2xvY2tpbmZvOwogIHVpbnQzMl90IHJlc2VydmVkWzEwXTsKfTsKCgoKCgoKCnN0cnVjdCBnZXRf
bWVtb3J5X2Nsb2NrX3BhcmFtZXRlcgp7CiAgdWludDMyX3QgbWNsa18xMGtoejsKICB1aW50MzJf
dCByZXNlcnZlZDsKfTsKIyAyNDM3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2lu
Y2x1ZGUvYXRvbWZpcm13YXJlLmgiCnN0cnVjdCBzZXRfdm9sdGFnZV9wYXJhbWV0ZXJzX3YxXzQK
ewogIHVpbnQ4X3Qgdm9sdGFnZXR5cGU7CiAgdWludDhfdCBjb21tYW5kOwogIHVpbnQxNl90IHZs
ZXZlbF9tdjsKfTsKCgplbnVtIGF0b21fc2V0X3ZvbHRhZ2VfY29tbWFuZHsKICBBVE9NX1NFVF9W
T0xUQUdFID0gMCwKICBBVE9NX0lOSVRfVk9MVEFHRV9SRUdVTEFUT1IgPSAzLAogIEFUT01fU0VU
X1ZPTFRBR0VfUEhBU0UgPSA0LAogIEFUT01fR0VUX0xFQUtBR0VfSUQgPSA4LAp9OwoKc3RydWN0
IHNldF92b2x0YWdlX3BzX2FsbG9jYXRpb25fdjFfNAp7CiAgc3RydWN0IHNldF92b2x0YWdlX3Bh
cmFtZXRlcnNfdjFfNCBzZXR2b2x0YWdlcGFyYW07CiAgdWludDMyX3QgcmVzZXJ2ZWRbMTBdOwp9
OwojIDI0NjYgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmly
bXdhcmUuaCIKZW51bSBhdG9tX2dwdV9jbG9ja190eXBlCnsKICBDT01QVVRFX0dQVUNMS19JTlBV
VF9GTEFHX0RFRkFVTFRfR1BVQ0xLID0weDAwLAogIENPTVBVVEVfR1BVQ0xLX0lOUFVUX0ZMQUdf
R0ZYQ0xLID0weDAxLAogIENPTVBVVEVfR1BVQ0xLX0lOUFVUX0ZMQUdfVUNMSyA9MHgwMiwKfTsK
CnN0cnVjdCBjb21wdXRlX2dwdV9jbG9ja19pbnB1dF9wYXJhbWV0ZXJfdjFfOAp7CiAgdWludDMy
X3QgZ3B1Y2xvY2tfMTBraHo6MjQ7CiAgdWludDMyX3QgZ3B1X2Nsb2NrX3R5cGU6ODsKICB1aW50
MzJfdCByZXNlcnZlZFs1XTsKfTsKCgpzdHJ1Y3QgY29tcHV0ZV9ncHVfY2xvY2tfb3V0cHV0X3Bh
cmFtZXRlcl92MV84CnsKICB1aW50MzJfdCBncHVjbG9ja18xMGtoejoyNDsKICB1aW50MzJfdCBk
ZnNfZGlkOjg7CiAgdWludDMyX3QgcGxsX2ZiX211bHQ7CiAgdWludDMyX3QgcGxsX3NzX2Zic211
bHQ7CiAgdWludDE2X3QgcGxsX3NzX3NsZXdfZnJhYzsKICB1aW50OF90IHBsbF9zc19lbmFibGU7
CiAgdWludDhfdCByZXNlcnZlZDsKICB1aW50MzJfdCByZXNlcnZlZDFbMl07Cn07CiMgMjUwMSAi
Li9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgpz
dHJ1Y3QgcmVhZF9lZnVzZV9pbnB1dF9wYXJhbWV0ZXJzX3YzXzEKewogIHVpbnQxNl90IGVmdXNl
X3N0YXJ0X2luZGV4OwogIHVpbnQ4X3QgcmVzZXJ2ZWQ7CiAgdWludDhfdCBiaXRzbGVuOwp9OwoK
CnVuaW9uIHJlYWRfZWZ1c2VfdmFsdWVfcGFyYW1ldGVyc192M18xCnsKICBzdHJ1Y3QgcmVhZF9l
ZnVzZV9pbnB1dF9wYXJhbWV0ZXJzX3YzXzEgZWZ1c2VfaW5mbzsKICB1aW50MzJfdCBlZnVzZXZh
bHVlOwp9OwoKCgoKCgoKc3RydWN0IGF0b21fZ2V0X3NtdV9jbG9ja19pbmZvX3BhcmFtZXRlcnNf
djNfMQp7CiAgdWludDhfdCBzeXNwbGxfaWQ7CiAgdWludDhfdCBjbGtfaWQ7CiAgdWludDhfdCBj
b21tYW5kOwogIHVpbnQ4X3QgZGZzZGlkOwp9OwoKZW51bSBhdG9tX2dldF9zbXVfY2xvY2tfaW5m
b19jb21tYW5kCnsKICBHRVRfU01VX0NMT0NLX0lORk9fVjNfMV9HRVRfQ0xPQ0tfRlJFUSA9IDAs
CiAgR0VUX1NNVV9DTE9DS19JTkZPX1YzXzFfR0VUX1BMTFZDT19GUkVRID0gMSwKICBHRVRfU01V
X0NMT0NLX0lORk9fVjNfMV9HRVRfUExMUkVGQ0xLX0ZSRVEgPSAyLAp9OwoKZW51bSBhdG9tX3Nt
dTlfc3lzcGxsMF9jbG9ja19pZAp7CiAgU01VOV9TWVNQTEwwX1NNTkNMS19JRCA9IDAsCiAgU01V
OV9TWVNQTEwwX1NPQ0NMS19JRCA9IDEsCiAgU01VOV9TWVNQTEwwX01QMENMS19JRCA9IDIsCiAg
U01VOV9TWVNQTEwwX01QMUNMS19JRCA9IDMsCiAgU01VOV9TWVNQTEwwX0xDTEtfSUQgPSA0LAog
IFNNVTlfU1lTUExMMF9EQ0xLX0lEID0gNSwKICBTTVU5X1NZU1BMTDBfVkNMS19JRCA9IDYsCiAg
U01VOV9TWVNQTEwwX0VDTEtfSUQgPSA3LAogIFNNVTlfU1lTUExMMF9EQ0VGQ0xLX0lEID0gOCwK
ICBTTVU5X1NZU1BMTDBfRFBSRUZDTEtfSUQgPSAxMCwKICBTTVU5X1NZU1BMTDBfRElTUENMS19J
RCA9IDExLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbF9pZCB7CiAgU01VMTFfU1lTUExMMF9J
RCA9IDAsCiAgU01VMTFfU1lTUExMMV8wX0lEID0gMSwKICBTTVUxMV9TWVNQTEwxXzFfSUQgPSAy
LAogIFNNVTExX1NZU1BMTDFfMl9JRCA9IDMsCiAgU01VMTFfU1lTUExMMl9JRCA9IDQsCiAgU01V
MTFfU1lTUExMM18wX0lEID0gNSwKICBTTVUxMV9TWVNQTEwzXzFfSUQgPSA2LAp9OwoKZW51bSBh
dG9tX3NtdTExX3N5c3BsbDBfY2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDBfRUNMS19JRCA9IDAs
CiAgU01VMTFfU1lTUExMMF9TT0NDTEtfSUQgPSAxLAogIFNNVTExX1NZU1BMTDBfTVAwQ0xLX0lE
ID0gMiwKICBTTVUxMV9TWVNQTEwwX0RDTEtfSUQgPSAzLAogIFNNVTExX1NZU1BMTDBfVkNMS19J
RCA9IDQsCiAgU01VMTFfU1lTUExMMF9EQ0VGQ0xLX0lEID0gNSwKfTsKCmVudW0gYXRvbV9zbXUx
MV9zeXNwbGwxXzBfY2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDFfMF9VQ0xLQV9JRCA9IDAsCn07
CgplbnVtIGF0b21fc211MTFfc3lzcGxsMV8xX2Nsb2NrX2lkIHsKICBTTVUxMV9TWVNQTEwxXzBf
VUNMS0JfSUQgPSAwLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbDFfMl9jbG9ja19pZCB7CiAg
U01VMTFfU1lTUExMMV8wX0ZDTEtfSUQgPSAwLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbDJf
Y2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDJfR0ZYQ0xLX0lEID0gMCwKfTsKCmVudW0gYXRvbV9z
bXUxMV9zeXNwbGwzXzBfY2xvY2tfaWQgewogIFNNVTExX1NZU1BMTDNfMF9XQUZDTEtfSUQgPSAw
LAogIFNNVTExX1NZU1BMTDNfMF9ESVNQQ0xLX0lEID0gMSwKICBTTVUxMV9TWVNQTEwzXzBfRFBS
RUZDTEtfSUQgPSAyLAp9OwoKZW51bSBhdG9tX3NtdTExX3N5c3BsbDNfMV9jbG9ja19pZCB7CiAg
U01VMTFfU1lTUExMM18xX01QMUNMS19JRCA9IDAsCiAgU01VMTFfU1lTUExMM18xX1NNTkNMS19J
RCA9IDEsCiAgU01VMTFfU1lTUExMM18xX0xDTEtfSUQgPSAyLAp9OwoKc3RydWN0IGF0b21fZ2V0
X3NtdV9jbG9ja19pbmZvX291dHB1dF9wYXJhbWV0ZXJzX3YzXzEKewogIHVuaW9uIHsKICAgIHVp
bnQzMl90IHNtdV9jbG9ja19mcmVxX2h6OwogICAgdWludDMyX3Qgc3lzcGxsdmNvZnJlcV8xMGto
ejsKICAgIHVpbnQzMl90IHN5c3NwbGxyZWZjbGtfMTBraHo7CiAgfWF0b21fc211X291dHB1dGNs
a2ZyZXE7Cn07CiMgMjYxNSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRl
L2F0b21maXJtd2FyZS5oIgplbnVtIGF0b21fZHluYW1pY19tZW1vcnlfc2V0dGluZ19jb21tYW5k
CnsKICBDT01QVVRFX01FTU9SWV9QTExfUEFSQU0gPSAxLAogIENPTVBVVEVfRU5HSU5FX1BMTF9Q
QVJBTSA9IDIsCiAgQURKVVNUX01DX1NFVFRJTkdfUEFSQU0gPSAzLAp9OwoKCnN0cnVjdCBkeW5h
bWljX21jbGtfc2V0dGluZ3NfcGFyYW1ldGVyc192Ml8xCnsKICB1aW50MzJfdCBtY2xrXzEwa2h6
OjI0OwogIHVpbnQzMl90IGNvbW1hbmQ6ODsKICB1aW50MzJfdCByZXNlcnZlZDsKfTsKCgpzdHJ1
Y3QgZHluYW1pY19zY2xrX3NldHRpbmdzX3BhcmFtZXRlcnNfdjJfMQp7CiAgdWludDMyX3Qgc2Ns
a18xMGtoejoyNDsKICB1aW50MzJfdCBjb21tYW5kOjg7CiAgdWludDMyX3QgbWNsa18xMGtoejsK
ICB1aW50MzJfdCByZXNlcnZlZDsKfTsKCnVuaW9uIGR5bmFtaWNfbWVtb3J5X3NldHRpbmdzX3Bh
cmFtZXRlcnNfdjJfMQp7CiAgc3RydWN0IGR5bmFtaWNfbWNsa19zZXR0aW5nc19wYXJhbWV0ZXJz
X3YyXzEgbWNsa19zZXR0aW5nOwogIHN0cnVjdCBkeW5hbWljX3NjbGtfc2V0dGluZ3NfcGFyYW1l
dGVyc192Ml8xIHNjbGtfc2V0dGluZzsKfTsKIyAyNjUzICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQv
YW1kZ3B1Ly4uL2luY2x1ZGUvYXRvbWZpcm13YXJlLmgiCmVudW0gYXRvbV91bWM2XzBfdWNvZGVf
ZnVuY3Rpb25fY2FsbF9lbnVtX2lkCnsKICBVTUM2MF9VQ09ERV9GVU5DX0lEX1JFSU5JVCA9IDAs
CiAgVU1DNjBfVUNPREVfRlVOQ19JRF9FTlRFUl9TRUxGUkVGUkVTSCA9IDEsCiAgVU1DNjBfVUNP
REVfRlVOQ19JRF9FWElUX1NFTEZSRUZSRVNIID0gMiwKfTsKCgpzdHJ1Y3QgbWVtb3J5X3RyYWlu
aW5nX3BhcmFtZXRlcnNfdjJfMQp7CiAgdWludDhfdCB1Y29kZV9mdW5jX2lkOwogIHVpbnQ4X3Qg
dWNvZGVfcmVzZXJ2ZWRbM107CiAgdWludDMyX3QgcmVzZXJ2ZWRbNV07Cn07CiMgMjY3NSAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgpzdHJ1
Y3Qgc2V0X3BpeGVsX2Nsb2NrX3BhcmFtZXRlcl92MV83CnsKICAgIHVpbnQzMl90IHBpeGNsa18x
MDBoejsKCiAgICB1aW50OF90IHBsbF9pZDsKICAgIHVpbnQ4X3QgZW5jb2Rlcm9iamlkOwoKICAg
IHVpbnQ4X3QgZW5jb2Rlcl9tb2RlOwogICAgdWludDhfdCBtaXNjaW5mbzsKICAgIHVpbnQ4X3Qg
Y3J0Y19pZDsKICAgIHVpbnQ4X3QgZGVlcF9jb2xvcl9yYXRpbzsKICAgIHVpbnQ4X3QgcmVzZXJ2
ZWQxWzJdOwogICAgdWludDMyX3QgcmVzZXJ2ZWQyOwp9OwoKCmVudW0gYXRvbV9zZXRfcGl4ZWxf
Y2xvY2tfdjFfN19taXNjX2luZm8KewogIFBJWEVMX0NMT0NLX1Y3X01JU0NfRk9SQ0VfUFJPR19Q
UExMID0gMHgwMSwKICBQSVhFTF9DTE9DS19WN19NSVNDX1BST0dfUEhZUExMID0gMHgwMiwKICBQ
SVhFTF9DTE9DS19WN19NSVNDX1lVVjQyMF9NT0RFID0gMHgwNCwKICBQSVhFTF9DTE9DS19WN19N
SVNDX0RWSV9EVUFMTElOS19FTiA9IDB4MDgsCiAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElW
X1NSQyA9IDB4MzAsCiAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElWX1NSQ19YVEFMSU4gPSAw
eDAwLAogIFBJWEVMX0NMT0NLX1Y3X01JU0NfUkVGX0RJVl9TUkNfUENJRSA9IDB4MTAsCiAgUElY
RUxfQ0xPQ0tfVjdfTUlTQ19SRUZfRElWX1NSQ19HRU5MSyA9IDB4MjAsCiAgUElYRUxfQ0xPQ0tf
VjdfTUlTQ19SRUZfRElWX1NSQ19SRUZQQUQgPSAweDMwLAogIFBJWEVMX0NMT0NLX1Y3X01JU0Nf
QVRPTUlDX1VQREFURSA9IDB4NDAsCiAgUElYRUxfQ0xPQ0tfVjdfTUlTQ19GT1JDRV9TU19ESVMg
PSAweDgwLAp9OwoKCmVudW0gYXRvbV9zZXRfcGl4ZWxfY2xvY2tfdjFfN19kZWVwY29sb3JfcmF0
aW8KewogIFBJWEVMX0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJT19ESVMgPSAweDAwLAogIFBJWEVM
X0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJT181XzQgPSAweDAxLAogIFBJWEVMX0NMT0NLX1Y3X0RF
RVBDT0xPUl9SQVRJT18zXzIgPSAweDAyLAogIFBJWEVMX0NMT0NLX1Y3X0RFRVBDT0xPUl9SQVRJ
T18yXzEgPSAweDAzLAp9OwojIDI3MjIgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4v
aW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKc3RydWN0IHNldF9kY2VfY2xvY2tfcGFyYW1ldGVyc192
Ml8xCnsKICB1aW50MzJfdCBkY2VjbGtfMTBraHo7CiAgdWludDhfdCBkY2VjbGt0eXBlOwogIHVp
bnQ4X3QgZGNlY2xrc3JjOwogIHVpbnQ4X3QgZGNlY2xrZmxhZzsKICB1aW50OF90IGNydGNfaWQ7
Cn07CgoKZW51bSBhdG9tX3NldF9kY2VfY2xvY2tfY2xvY2tfdHlwZQp7CiAgRENFX0NMT0NLX1RZ
UEVfRElTUENMSyA9IDAsCiAgRENFX0NMT0NLX1RZUEVfRFBSRUZDTEsgPSAxLAogIERDRV9DTE9D
S19UWVBFX1BJWEVMQ0xLID0gMiwKfTsKCgplbnVtIGF0b21fc2V0X2RjZV9jbG9ja19kcHJlZmNs
a19mbGFnCnsKICBEQ0VfQ0xPQ0tfRkxBR19QTExfUkVGQ0xLX1NSQ19NQVNLID0gMHgwMywKICBE
Q0VfQ0xPQ0tfRkxBR19QTExfUkVGQ0xLX1NSQ19HRU5FUklDQSA9IDB4MDAsCiAgRENFX0NMT0NL
X0ZMQUdfUExMX1JFRkNMS19TUkNfR0VOTEsgPSAweDAxLAogIERDRV9DTE9DS19GTEFHX1BMTF9S
RUZDTEtfU1JDX1BDSUUgPSAweDAyLAogIERDRV9DTE9DS19GTEFHX1BMTF9SRUZDTEtfU1JDX1hU
QUxJTiA9IDB4MDMsCn07CgoKZW51bSBhdG9tX3NldF9kY2VfY2xvY2tfcGl4Y2xrX2ZsYWcKewog
IERDRV9DTE9DS19GTEFHX1BDTEtfREVFUENPTE9SX1JBVElPX01BU0sgPSAweDAzLAogIERDRV9D
TE9DS19GTEFHX1BDTEtfREVFUENPTE9SX1JBVElPX0RJUyA9IDB4MDAsCiAgRENFX0NMT0NLX0ZM
QUdfUENMS19ERUVQQ09MT1JfUkFUSU9fNV80ID0gMHgwMSwKICBEQ0VfQ0xPQ0tfRkxBR19QQ0xL
X0RFRVBDT0xPUl9SQVRJT18zXzIgPSAweDAyLAogIERDRV9DTE9DS19GTEFHX1BDTEtfREVFUENP
TE9SX1JBVElPXzJfMSA9IDB4MDMsCiAgRENFX0NMT0NLX0ZMQUdfUElYQ0xLX1lVVjQyMF9NT0RF
ID0gMHgwNCwKfTsKCnN0cnVjdCBzZXRfZGNlX2Nsb2NrX3BzX2FsbG9jYXRpb25fdjJfMQp7CiAg
c3RydWN0IHNldF9kY2VfY2xvY2tfcGFyYW1ldGVyc192Ml8xIHBhcmFtOwogIHVpbnQzMl90IHVs
UmVzZXJ2ZWRbMl07Cn07CgoKCgoKc3RydWN0IGJsYW5rX2NydGNfcGFyYW1ldGVycwp7CiAgdWlu
dDhfdCBjcnRjX2lkOwogIHVpbnQ4X3QgYmxhbmtpbmc7CiAgdWludDE2X3QgcmVzZXJ2ZWQ7CiAg
dWludDMyX3QgcmVzZXJ2ZWQxOwp9OwoKZW51bSBhdG9tX2JsYW5rX2NydGNfY29tbWFuZAp7CiAg
QVRPTV9CTEFOS0lORyA9IDEsCiAgQVRPTV9CTEFOS0lOR19PRkYgPSAwLAp9OwoKCgoKc3RydWN0
IGVuYWJsZV9jcnRjX3BhcmFtZXRlcnMKewogIHVpbnQ4X3QgY3J0Y19pZDsKICB1aW50OF90IGVu
YWJsZTsKICB1aW50OF90IHBhZGRpbmdbMl07Cn07CgoKCgoKc3RydWN0IGVuYWJsZV9kaXNwX3Bv
d2VyX2dhdGluZ19wYXJhbWV0ZXJzX3YyXzEKewogIHVpbnQ4X3QgZGlzcF9waXBlX2lkOwogIHVp
bnQ4X3QgZW5hYmxlOwogIHVpbnQ4X3QgcGFkZGluZ1syXTsKfTsKCnN0cnVjdCBlbmFibGVfZGlz
cF9wb3dlcl9nYXRpbmdfcHNfYWxsb2NhdGlvbgp7CiAgc3RydWN0IGVuYWJsZV9kaXNwX3Bvd2Vy
X2dhdGluZ19wYXJhbWV0ZXJzX3YyXzEgcGFyYW07CiAgdWludDMyX3QgdWxSZXNlcnZlZFs0XTsK
fTsKCgoKCnN0cnVjdCBzZXRfY3J0Y191c2luZ19kdGRfdGltaW5nX3BhcmFtZXRlcnMKewogIHVp
bnQxNl90IGhfc2l6ZTsKICB1aW50MTZfdCBoX2JsYW5raW5nX3RpbWU7CiAgdWludDE2X3Qgdl9z
aXplOwogIHVpbnQxNl90IHZfYmxhbmtpbmdfdGltZTsKICB1aW50MTZfdCBoX3N5bmNvZmZzZXQ7
CiAgdWludDE2X3QgaF9zeW5jd2lkdGg7CiAgdWludDE2X3Qgdl9zeW5jb2Zmc2V0OwogIHVpbnQx
Nl90IHZfc3luY3dpZHRoOwogIHVpbnQxNl90IG1vZGVtaXNjaW5mbzsKICB1aW50OF90IGhfYm9y
ZGVyOwogIHVpbnQ4X3Qgdl9ib3JkZXI7CiAgdWludDhfdCBjcnRjX2lkOwogIHVpbnQ4X3QgZW5j
b2Rlcl9tb2RlOwogIHVpbnQ4X3QgcGFkZGluZ1syXTsKfTsKCgoKCgpzdHJ1Y3QgcHJvY2Vzc19p
MmNfY2hhbm5lbF90cmFuc2FjdGlvbl9wYXJhbWV0ZXJzCnsKICB1aW50OF90IGkyY3NwZWVkX2to
ejsKICB1bmlvbiB7CiAgICB1aW50OF90IHJlZ2luZGV4OwogICAgdWludDhfdCBzdGF0dXM7CiAg
fSByZWdpbmRfc3RhdHVzOwogIHVpbnQxNl90IGkyY19kYXRhX291dDsKICB1aW50OF90IGZsYWc7
CiAgdWludDhfdCB0cmFuc19ieXRlczsKICB1aW50OF90IHNsYXZlX2FkZHI7CiAgdWludDhfdCBp
MmNfaWQ7Cn07CgoKZW51bSBhdG9tX3Byb2Nlc3NfaTJjX2ZsYWcKewogIEhXX0kyQ19XUklURSA9
IDEsCiAgSFdfSTJDX1JFQUQgPSAwLAogIEkyQ18yQllURV9BRERSID0gMHgwMiwKICBIV19JMkNf
U01CVVNfQllURV9XUiA9IDB4MDQsCn07CgoKZW51bSBhdG9tX3Byb2Nlc3NfaTJjX3N0YXR1cwp7
CiAgSFdfQVNTSVNURURfSTJDX1NUQVRVU19GQUlMVVJFID0yLAogIEhXX0FTU0lTVEVEX0kyQ19T
VEFUVVNfU1VDQ0VTUyA9MSwKfTsKCgoKCgoKc3RydWN0IHByb2Nlc3NfYXV4X2NoYW5uZWxfdHJh
bnNhY3Rpb25fcGFyYW1ldGVyc192MV8yCnsKICB1aW50MTZfdCBhdXhfcmVxdWVzdDsKICB1aW50
MTZfdCBkYXRhb3V0OwogIHVpbnQ4X3QgY2hhbm5lbGlkOwogIHVuaW9uIHsKICAgIHVpbnQ4X3Qg
cmVwbHlfc3RhdHVzOwogICAgdWludDhfdCBhdXhfZGVsYXk7CiAgfSBhdXhfc3RhdHVzX2RlbGF5
OwogIHVpbnQ4X3QgZGF0YW91dF9sZW47CiAgdWludDhfdCBocGRfaWQ7Cn07CgoKCgoKCnN0cnVj
dCBzZWxlY3RfY3J0Y19zb3VyY2VfcGFyYW1ldGVyc192Ml8zCnsKICB1aW50OF90IGNydGNfaWQ7
CiAgdWludDhfdCBlbmNvZGVyX2lkOwogIHVpbnQ4X3QgZW5jb2RlX21vZGU7CiAgdWludDhfdCBk
c3RfYnBjOwp9OwoKCgoKCgoKZW51bSBhdG9tX2RpZ19lbmNvZGVyX2NvbnRyb2xfYWN0aW9uCnsK
ICBBVE9NX0VOQ09ERVJfQ01EX0RJU0FCTEVfRElHID0gMCwKICBBVE9NX0VOQ09ERVJfQ01EX0VO
QUJMRV9ESUcgPSAxLAogIEFUT01fRU5DT0RFUl9DTURfRFBfTElOS19UUkFJTklOR19TVEFSVCA9
IDB4MDgsCiAgQVRPTV9FTkNPREVSX0NNRF9EUF9MSU5LX1RSQUlOSU5HX1BBVFRFUk4xID0gMHgw
OSwKICBBVE9NX0VOQ09ERVJfQ01EX0RQX0xJTktfVFJBSU5JTkdfUEFUVEVSTjIgPSAweDBhLAog
IEFUT01fRU5DT0RFUl9DTURfRFBfTElOS19UUkFJTklOR19QQVRURVJOMyA9IDB4MTMsCiAgQVRP
TV9FTkNPREVSX0NNRF9EUF9MSU5LX1RSQUlOSU5HX0NPTVBMRVRFID0gMHgwYiwKICBBVE9NX0VO
Q09ERVJfQ01EX0RQX1ZJREVPX09GRiA9IDB4MGMsCiAgQVRPTV9FTkNPREVSX0NNRF9EUF9WSURF
T19PTiA9IDB4MGQsCiAgQVRPTV9FTkNPREVSX0NNRF9TRVRVUF9QQU5FTF9NT0RFID0gMHgxMCwK
ICBBVE9NX0VOQ09ERVJfQ01EX0RQX0xJTktfVFJBSU5JTkdfUEFUVEVSTjQgPSAweDE0LAogIEFU
T01fRU5DT0RFUl9DTURfU1RSRUFNX1NFVFVQID0gMHgwRiwKICBBVE9NX0VOQ09ERVJfQ01EX0xJ
TktfU0VUVVAgPSAweDExLAogIEFUT01fRU5DT0RFUl9DTURfRU5DT0RFUl9CTEFOSyA9IDB4MTIs
Cn07CgoKZW51bSBhdG9tX2RpZ19lbmNvZGVyX2NvbnRyb2xfcGFuZWxtb2RlCnsKICBEUF9QQU5F
TF9NT0RFX0RJU0FCTEUgPSAweDAwLAogIERQX1BBTkVMX01PREVfRU5BQkxFX2VEUF9NT0RFID0g
MHgwMSwKICBEUF9QQU5FTF9NT0RFX0VOQUJMRV9MVkxJTktfTU9ERSA9IDB4MTEsCn07CgoKZW51
bSBhdG9tX2RpZ19lbmNvZGVyX2NvbnRyb2xfdjVfZGlnaWQKewogIEFUT01fRU5DT0RFUl9DT05G
SUdfVjVfRElHMF9FTkNPREVSID0gMHgwMCwKICBBVE9NX0VOQ09ERVJfQ09ORklHX1Y1X0RJRzFf
RU5DT0RFUiA9IDB4MDEsCiAgQVRPTV9FTkNPREVSX0NPTkZJR19WNV9ESUcyX0VOQ09ERVIgPSAw
eDAyLAogIEFUT01fRU5DT0RFUl9DT05GSUdfVjVfRElHM19FTkNPREVSID0gMHgwMywKICBBVE9N
X0VOQ09ERVJfQ09ORklHX1Y1X0RJRzRfRU5DT0RFUiA9IDB4MDQsCiAgQVRPTV9FTkNPREVSX0NP
TkZJR19WNV9ESUc1X0VOQ09ERVIgPSAweDA1LAogIEFUT01fRU5DT0RFUl9DT05GSUdfVjVfRElH
Nl9FTkNPREVSID0gMHgwNiwKICBBVE9NX0VOQ09ERVJfQ09ORklHX1Y1X0RJRzdfRU5DT0RFUiA9
IDB4MDcsCn07CgpzdHJ1Y3QgZGlnX2VuY29kZXJfc3RyZWFtX3NldHVwX3BhcmFtZXRlcnNfdjFf
NQp7CiAgdWludDhfdCBkaWdpZDsKICB1aW50OF90IGFjdGlvbjsKICB1aW50OF90IGRpZ21vZGU7
CiAgdWludDhfdCBsYW5lbnVtOwogIHVpbnQzMl90IHBjbGtfMTBraHo7CiAgdWludDhfdCBiaXRw
ZXJjb2xvcjsKICB1aW50OF90IGRwbGlua3JhdGVfMjcwbWh6OwogIHVpbnQ4X3QgcmVzZXJ2ZWRb
Ml07Cn07CgpzdHJ1Y3QgZGlnX2VuY29kZXJfbGlua19zZXR1cF9wYXJhbWV0ZXJzX3YxXzUKewog
IHVpbnQ4X3QgZGlnaWQ7CiAgdWludDhfdCBhY3Rpb247CiAgdWludDhfdCBkaWdtb2RlOwogIHVp
bnQ4X3QgbGFuZW51bTsKICB1aW50OF90IHN5bWNsa18xMGtoejsKICB1aW50OF90IGhwZF9zZWw7
CiAgdWludDhfdCBkaWdmZV9zZWw7CiAgdWludDhfdCByZXNlcnZlZFsyXTsKfTsKCnN0cnVjdCBk
cF9wYW5lbF9tb2RlX3NldF9wYXJhbWV0ZXJzX3YxXzUKewogIHVpbnQ4X3QgZGlnaWQ7CiAgdWlu
dDhfdCBhY3Rpb247CiAgdWludDhfdCBwYW5lbG1vZGU7CiAgdWludDhfdCByZXNlcnZlZDE7CiAg
dWludDMyX3QgcmVzZXJ2ZWQyWzJdOwp9OwoKc3RydWN0IGRpZ19lbmNvZGVyX2dlbmVyaWNfY21k
X3BhcmFtZXRlcnNfdjFfNQp7CiAgdWludDhfdCBkaWdpZDsKICB1aW50OF90IGFjdGlvbjsKICB1
aW50OF90IHJlc2VydmVkMVsyXTsKICB1aW50MzJfdCByZXNlcnZlZDJbMl07Cn07Cgp1bmlvbiBk
aWdfZW5jb2Rlcl9jb250cm9sX3BhcmFtZXRlcnNfdjFfNQp7CiAgc3RydWN0IGRpZ19lbmNvZGVy
X2dlbmVyaWNfY21kX3BhcmFtZXRlcnNfdjFfNSBjbWRfcGFyYW07CiAgc3RydWN0IGRpZ19lbmNv
ZGVyX3N0cmVhbV9zZXR1cF9wYXJhbWV0ZXJzX3YxXzUgc3RyZWFtX3BhcmFtOwogIHN0cnVjdCBk
aWdfZW5jb2Rlcl9saW5rX3NldHVwX3BhcmFtZXRlcnNfdjFfNSBsaW5rX3BhcmFtOwogIHN0cnVj
dCBkcF9wYW5lbF9tb2RlX3NldF9wYXJhbWV0ZXJzX3YxXzUgZHBwYW5lbF9wYXJhbTsKfTsKCgoK
CgoKc3RydWN0IGRpZ190cmFuc21pdHRlcl9jb250cm9sX3BhcmFtZXRlcnNfdjFfNgp7CiAgdWlu
dDhfdCBwaHlpZDsKICB1aW50OF90IGFjdGlvbjsKICB1bmlvbiB7CiAgICB1aW50OF90IGRpZ21v
ZGU7CiAgICB1aW50OF90IGRwbGFuZXNldDsKICB9IG1vZGVfbGFuZXNldDsKICB1aW50OF90IGxh
bmVudW07CiAgdWludDMyX3Qgc3ltY2xrXzEwa2h6OwogIHVpbnQ4X3QgaHBkc2VsOwogIHVpbnQ4
X3QgZGlnZmVfc2VsOwogIHVpbnQ4X3QgY29ubm9ial9pZDsKICB1aW50OF90IHJlc2VydmVkOwog
IHVpbnQzMl90IHJlc2VydmVkMTsKfTsKCnN0cnVjdCBkaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9w
c19hbGxvY2F0aW9uX3YxXzYKewogIHN0cnVjdCBkaWdfdHJhbnNtaXR0ZXJfY29udHJvbF9wYXJh
bWV0ZXJzX3YxXzYgcGFyYW07CiAgdWludDMyX3QgcmVzZXJ2ZWRbNF07Cn07CgoKZW51bSBhdG9t
X2RpZ190cmFuc21pdHRlcl9jb250cm9sX2FjdGlvbgp7CiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJ
T05fRElTQUJMRSA9IDAsCiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fRU5BQkxFID0gMSwKICBB
VE9NX1RSQU5TTUlUVEVSX0FDVElPTl9MQ0RfQkxPRkYgPSAyLAogIEFUT01fVFJBTlNNSVRURVJf
QUNUSU9OX0xDRF9CTE9OID0gMywKICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9CTF9CUklHSFRO
RVNTX0NPTlRST0wgPSA0LAogIEFUT01fVFJBTlNNSVRURVJfQUNUSU9OX0xDRF9TRUxGVEVTVF9T
VEFSVCA9IDUsCiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fTENEX1NFTEZURVNUX1NUT1AgPSA2
LAogIEFUT01fVFJBTlNNSVRURVJfQUNUSU9OX0lOSVQgPSA3LAogIEFUT01fVFJBTlNNSVRURVJf
QUNUSU9OX0RJU0FCTEVfT1VUUFVUID0gOCwKICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9FTkFC
TEVfT1VUUFVUID0gOSwKICBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9TRVRVUCA9IDEwLAogIEFU
T01fVFJBTlNNSVRURVJfQUNUSU9OX1NFVFVQX1ZTRU1QSCA9IDExLAogIEFUT01fVFJBTlNNSVRU
RVJfQUNUSU9OX1BPV0VSX09OID0gMTIsCiAgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fUE9XRVJf
T0ZGID0gMTMsCn07CgoKZW51bSBhdG9tX2RpZ190cmFuc21pdHRlcl9jb250cm9sX2RpZ2ZlX3Nl
bAp7CiAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHQV9TRUwgPSAweDAxLAogIEFUT01fVFJBTk1T
SVRURVJfVjZfX0RJR0JfU0VMID0gMHgwMiwKICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19ESUdDX1NF
TCA9IDB4MDQsCiAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHRF9TRUwgPSAweDA4LAogIEFUT01f
VFJBTk1TSVRURVJfVjZfX0RJR0VfU0VMID0gMHgxMCwKICBBVE9NX1RSQU5NU0lUVEVSX1Y2X19E
SUdGX1NFTCA9IDB4MjAsCiAgQVRPTV9UUkFOTVNJVFRFUl9WNl9fRElHR19TRUwgPSAweDQwLAp9
OwoKCgplbnVtIGF0b21fZGlnX3RyYW5zbWl0dGVyX2NvbnRyb2xfaHBkX3NlbAp7CiAgQVRPTV9U
UkFOU01JVFRFUl9WNl9OT19IUERfU0VMID0gMHgwMCwKICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQ
RDFfU0VMID0gMHgwMSwKICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDJfU0VMID0gMHgwMiwKICBB
VE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDNfU0VMID0gMHgwMywKICBBVE9NX1RSQU5TTUlUVEVSX1Y2
X0hQRDRfU0VMID0gMHgwNCwKICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDVfU0VMID0gMHgwNSwK
ICBBVE9NX1RSQU5TTUlUVEVSX1Y2X0hQRDZfU0VMID0gMHgwNiwKfTsKCgplbnVtIGF0b21fZGln
X3RyYW5zbWl0dGVyX2NvbnRyb2xfZHBsYW5lc2V0CnsKICBEUF9MQU5FX1NFVF9fMERCXzBfNFYg
PSAweDAwLAogIERQX0xBTkVfU0VUX18wREJfMF82ViA9IDB4MDEsCiAgRFBfTEFORV9TRVRfXzBE
Ql8wXzhWID0gMHgwMiwKICBEUF9MQU5FX1NFVF9fMERCXzFfMlYgPSAweDAzLAogIERQX0xBTkVf
U0VUX18zXzVEQl8wXzRWID0gMHgwOCwKICBEUF9MQU5FX1NFVF9fM181REJfMF82ViA9IDB4MDks
CiAgRFBfTEFORV9TRVRfXzNfNURCXzBfOFYgPSAweDBhLAogIERQX0xBTkVfU0VUX182REJfMF80
ViA9IDB4MTAsCiAgRFBfTEFORV9TRVRfXzZEQl8wXzZWID0gMHgxMSwKICBEUF9MQU5FX1NFVF9f
OV81REJfMF80ViA9IDB4MTgsCn07CgoKCgoKCgpzdHJ1Y3QgZXh0ZXJuYWxfZW5jb2Rlcl9jb250
cm9sX3BhcmFtZXRlcnNfdjJfNAp7CiAgdWludDE2X3QgcGl4ZWxjbG9ja18xMGtoejsKICB1aW50
OF90IGNvbmZpZzsKICB1aW50OF90IGFjdGlvbjsKICB1aW50OF90IGVuY29kZXJtb2RlOwogIHVp
bnQ4X3QgbGFuZW51bTsKICB1aW50OF90IGJpdHBlcmNvbG9yOwogIHVpbnQ4X3QgaHBkX2lkOwp9
OwoKCgplbnVtIGV4dGVybmFsX2VuY29kZXJfY29udHJvbF9hY3Rpb25fZGVmCnsKICBFWFRFUk5B
TF9FTkNPREVSX0FDVElPTl9WM19ESVNBQkxFX09VVFBVVCA9IDB4MDAsCiAgRVhURVJOQUxfRU5D
T0RFUl9BQ1RJT05fVjNfRU5BQkxFX09VVFBVVCA9IDB4MDEsCiAgRVhURVJOQUxfRU5DT0RFUl9B
Q1RJT05fVjNfRU5DT0RFUl9JTklUID0gMHgwNywKICBFWFRFUk5BTF9FTkNPREVSX0FDVElPTl9W
M19FTkNPREVSX1NFVFVQID0gMHgwZiwKICBFWFRFUk5BTF9FTkNPREVSX0FDVElPTl9WM19FTkNP
REVSX0JMQU5LSU5HX09GRiA9IDB4MTAsCiAgRVhURVJOQUxfRU5DT0RFUl9BQ1RJT05fVjNfRU5D
T0RFUl9CTEFOS0lORyA9IDB4MTEsCiAgRVhURVJOQUxfRU5DT0RFUl9BQ1RJT05fVjNfREFDTE9B
RF9ERVRFQ1RJT04gPSAweDEyLAogIEVYVEVSTkFMX0VOQ09ERVJfQUNUSU9OX1YzX0REQ19TRVRV
UCA9IDB4MTQsCn07CgoKZW51bSBleHRlcm5hbF9lbmNvZGVyX2NvbnRyb2xfdjJfNF9jb25maWdf
ZGVmCnsKICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFX01BU0sgPSAweDAz
LAogIEVYVEVSTkFMX0VOQ09ERVJfQ09ORklHX1YzX0RQTElOS1JBVEVfMV82MkdIWiA9IDB4MDAs
CiAgRVhURVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRFBMSU5LUkFURV8yXzcwR0haID0gMHgwMSwK
ICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19WM19EUExJTktSQVRFXzVfNDBHSFogPSAweDAyLAog
IEVYVEVSTkFMX0VOQ09ERVJfQ09ORklHX1YzX0RQTElOS1JBVEVfM18yNEdIWiA9IDB4MDMsCiAg
RVhURVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRU5DT0RFUl9TRUxfTUFLUyA9IDB4NzAsCiAgRVhU
RVJOQUxfRU5DT0RFUl9DT05GSUdfVjNfRU5DT0RFUjEgPSAweDAwLAogIEVYVEVSTkFMX0VOQ09E
RVJfQ09ORklHX1YzX0VOQ09ERVIyID0gMHgxMCwKICBFWFRFUk5BTF9FTkNPREVSX0NPTkZJR19W
M19FTkNPREVSMyA9IDB4MjAsCn07CgpzdHJ1Y3QgZXh0ZXJuYWxfZW5jb2Rlcl9jb250cm9sX3Bz
X2FsbG9jYXRpb25fdjJfNAp7CiAgc3RydWN0IGV4dGVybmFsX2VuY29kZXJfY29udHJvbF9wYXJh
bWV0ZXJzX3YyXzQgc0V4dEVuY29kZXI7CiAgdWludDMyX3QgcmVzZXJ2ZWRbMl07Cn07CiMgMzEz
NyAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5o
IgpzdHJ1Y3QgYW1kX2FjcGlfZGVzY3JpcHRpb25faGVhZGVyewogIHVpbnQzMl90IHNpZ25hdHVy
ZTsKICB1aW50MzJfdCB0YWJsZUxlbmd0aDsKICB1aW50OF90IHJldmlzaW9uOwogIHVpbnQ4X3Qg
Y2hlY2tzdW07CiAgdWludDhfdCBvZW1JZFs2XTsKICB1aW50OF90IG9lbVRhYmxlSWRbOF07CiAg
dWludDMyX3Qgb2VtUmV2aXNpb247CiAgdWludDMyX3QgY3JlYXRvcklkOwogIHVpbnQzMl90IGNy
ZWF0b3JSZXZpc2lvbjsKfTsKCnN0cnVjdCB1ZWZpX2FjcGlfdmZjdHsKICBzdHJ1Y3QgYW1kX2Fj
cGlfZGVzY3JpcHRpb25faGVhZGVyIHNoZWFkZXI7CiAgdWludDhfdCB0YWJsZVVVSURbMTZdOwog
IHVpbnQzMl90IHZiaW9zaW1hZ2VvZmZzZXQ7CiAgdWludDMyX3QgbGliMUltYWdlb2Zmc2V0Owog
IHVpbnQzMl90IHJlc2VydmVkWzRdOwp9OwoKc3RydWN0IHZmY3RfaW1hZ2VfaGVhZGVyewogIHVp
bnQzMl90IHBjaWJ1czsKICB1aW50MzJfdCBwY2lkZXZpY2U7CiAgdWludDMyX3QgcGNpZnVuY3Rp
b247CiAgdWludDE2X3QgdmVuZG9yaWQ7CiAgdWludDE2X3QgZGV2aWNlaWQ7CiAgdWludDE2X3Qg
c3N2aWQ7CiAgdWludDE2X3Qgc3NpZDsKICB1aW50MzJfdCByZXZpc2lvbjsKICB1aW50MzJfdCBp
bWFnZWxlbmd0aDsKfTsKCgpzdHJ1Y3QgZ29wX3ZiaW9zX2NvbnRlbnQgewogIHN0cnVjdCB2ZmN0
X2ltYWdlX2hlYWRlciB2Ymlvc2hlYWRlcjsKICB1aW50OF90IHZiaW9zY29udGVudFsxXTsKfTsK
CnN0cnVjdCBnb3BfbGliMV9jb250ZW50IHsKICBzdHJ1Y3QgdmZjdF9pbWFnZV9oZWFkZXIgbGli
MWhlYWRlcjsKICB1aW50OF90IGxpYjFjb250ZW50WzFdOwp9OwojIDMxOTAgIi4vZHJpdmVycy9n
cHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmUuaCIKZW51bSBzY3JhdGNo
X3JlZ2lzdGVyX2RlZnsKICBBVE9NX0RFVklDRV9DT05ORUNUX0lORk9fREVGID0gMCwKICBBVE9N
X0JMX0JSSV9MRVZFTF9JTkZPX0RFRiA9IDIsCiAgQVRPTV9BQ1RJVkVfSU5GT19ERUYgPSAzLAog
IEFUT01fTENEX0lORk9fREVGID0gNCwKICBBVE9NX0RFVklDRV9SRVFfSU5GT19ERUYgPSA1LAog
IEFUT01fQUNDX0NIQU5HRV9JTkZPX0RFRiA9IDYsCiAgQVRPTV9QUkVfT1NfTU9ERV9JTkZPX0RF
RiA9IDcsCiAgQVRPTV9QUkVfT1NfQVNTRVJUSU9OX0RFRiA9IDgsCiAgQVRPTV9JTlRFUk5BTF9U
SU1FUl9JTkZPX0RFRiA9IDEwLAp9OwoKZW51bSBzY3JhdGNoX2RldmljZV9jb25uZWN0X2luZm9f
Yml0X2RlZnsKICBBVE9NX0RJU1BMQVlfTENEMV9DT05ORUNUID0weDAwMDIsCiAgQVRPTV9ESVNQ
TEFZX0RGUDFfQ09OTkVDVCA9MHgwMDA4LAogIEFUT01fRElTUExBWV9ERlAyX0NPTk5FQ1QgPTB4
MDA4MCwKICBBVE9NX0RJU1BMQVlfREZQM19DT05ORUNUID0weDAyMDAsCiAgQVRPTV9ESVNQTEFZ
X0RGUDRfQ09OTkVDVCA9MHgwNDAwLAogIEFUT01fRElTUExBWV9ERlA1X0NPTk5FQ1QgPTB4MDgw
MCwKICBBVE9NX0RJU1BMQVlfREZQNl9DT05ORUNUID0weDAwNDAsCiAgQVRPTV9ESVNQTEFZX0RG
UHhfQ09OTkVDVCA9MHgwZWM4LAogIEFUT01fQ09OTkVDVF9JTkZPX0RFVklDRV9NQVNLID0weDBm
ZmYsCn07CgplbnVtIHNjcmF0Y2hfYmxfYnJpX2xldmVsX2luZm9fYml0X2RlZnsKICBBVE9NX0NV
UlJFTlRfQkxfTEVWRUxfU0hJRlQgPTB4OCwKCiAgQVRPTV9DVVJSRU5UX0JMX0xFVkVMX01BU0sg
PTB4MDAwMGZmMDAsCiAgQVRPTV9ERVZJQ0VfRFBNU19TVEFURSA9MHgwMDAxMDAwMCwKCn07Cgpl
bnVtIHNjcmF0Y2hfYWN0aXZlX2luZm9fYml0c19kZWZ7CiAgQVRPTV9ESVNQTEFZX0xDRDFfQUNU
SVZFID0weDAwMDIsCiAgQVRPTV9ESVNQTEFZX0RGUDFfQUNUSVZFID0weDAwMDgsCiAgQVRPTV9E
SVNQTEFZX0RGUDJfQUNUSVZFID0weDAwODAsCiAgQVRPTV9ESVNQTEFZX0RGUDNfQUNUSVZFID0w
eDAyMDAsCiAgQVRPTV9ESVNQTEFZX0RGUDRfQUNUSVZFID0weDA0MDAsCiAgQVRPTV9ESVNQTEFZ
X0RGUDVfQUNUSVZFID0weDA4MDAsCiAgQVRPTV9ESVNQTEFZX0RGUDZfQUNUSVZFID0weDAwNDAs
CiAgQVRPTV9BQ1RJVkVfSU5GT19ERVZJQ0VfTUFTSyA9MHgwZmZmLAp9OwoKZW51bSBzY3JhdGNo
X2RldmljZV9yZXFfaW5mb19iaXRzX2RlZnsKICBBVE9NX0RJU1BMQVlfTENEMV9SRVEgPTB4MDAw
MiwKICBBVE9NX0RJU1BMQVlfREZQMV9SRVEgPTB4MDAwOCwKICBBVE9NX0RJU1BMQVlfREZQMl9S
RVEgPTB4MDA4MCwKICBBVE9NX0RJU1BMQVlfREZQM19SRVEgPTB4MDIwMCwKICBBVE9NX0RJU1BM
QVlfREZQNF9SRVEgPTB4MDQwMCwKICBBVE9NX0RJU1BMQVlfREZQNV9SRVEgPTB4MDgwMCwKICBB
VE9NX0RJU1BMQVlfREZQNl9SRVEgPTB4MDA0MCwKICBBVE9NX1JFUV9JTkZPX0RFVklDRV9NQVNL
ID0weDBmZmYsCn07CgplbnVtIHNjcmF0Y2hfYWNjX2NoYW5nZV9pbmZvX2JpdHNoaWZ0X2RlZnsK
ICBBVE9NX0FDQ19DSEFOR0VfQUNDX01PREVfU0hJRlQgPTQsCiAgQVRPTV9BQ0NfQ0hBTkdFX0xJ
RF9TVEFUVVNfU0hJRlQgPTYsCn07CgplbnVtIHNjcmF0Y2hfYWNjX2NoYW5nZV9pbmZvX2JpdHNf
ZGVmewogIEFUT01fQUNDX0NIQU5HRV9BQ0NfTU9ERSA9MHgwMDAwMDAxMCwKICBBVE9NX0FDQ19D
SEFOR0VfTElEX1NUQVRVUyA9MHgwMDAwMDA0MCwKfTsKCmVudW0gc2NyYXRjaF9wcmVfb3NfbW9k
ZV9pbmZvX2JpdHNfZGVmewogIEFUT01fUFJFX09TX01PREVfTUFTSyA9MHgwMDAwMDAwMywKICBB
VE9NX1BSRV9PU19NT0RFX1ZHQSA9MHgwMDAwMDAwMCwKICBBVE9NX1BSRV9PU19NT0RFX1ZFU0Eg
PTB4MDAwMDAwMDEsCiAgQVRPTV9QUkVfT1NfTU9ERV9HT1AgPTB4MDAwMDAwMDIsCiAgQVRPTV9Q
UkVfT1NfTU9ERV9QSVhFTF9ERVBUSCA9MHgwMDAwMDAwQywKICBBVE9NX1BSRV9PU19NT0RFX1BJ
WEVMX0ZPUk1BVF9NQVNLPTB4MDAwMDAwRjAsCiAgQVRPTV9QUkVfT1NfTU9ERV84QklUX1BBTF9F
TiA9MHgwMDAwMDEwMCwKICBBVE9NX0FTSUNfSU5JVF9DT01QTEVURSA9MHgwMDAwMDIwMCwKCiAg
QVRPTV9QUkVfT1NfTU9ERV9OVU1CRVJfTUFTSyA9MHhGRkZGMDAwMCwKCn07CiMgMzI3NiAiLi9k
cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2F0b21maXJtd2FyZS5oIgojIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmlybXdhcmVpZC5o
IiAxCiMgMzEgIi4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hdG9tZmly
bXdhcmVpZC5oIgplbnVtIGF0b21fbWFzdGVyX2RhdGFfdGFibGVfaWQKewogICAgVkJJT1NfREFU
QV9UQkxfSURfX1VUSUxJVFlfUElQRUxJTkUsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fTVVMVElN
RURJQV9JTkYsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fRklSTVdBUkVfSU5GLAogICAgVkJJT1Nf
REFUQV9UQkxfSURfX0xDRF9JTkYsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fU01VX0lORiwKICAg
IFZCSU9TX0RBVEFfVEJMX0lEX19WUkFNX1VTQUdFX0JZX0ZJUk1XQVJFLAogICAgVkJJT1NfREFU
QV9UQkxfSURfX0dQSU9fUElOX0xVVCwKICAgIFZCSU9TX0RBVEFfVEJMX0lEX19HRlhfSU5GLAog
ICAgVkJJT1NfREFUQV9UQkxfSURfX1BPV0VSX1BMQVlfSU5GLAogICAgVkJJT1NfREFUQV9UQkxf
SURfX0RJU1BMQVlfT0JKRUNUX0lORiwKICAgIFZCSU9TX0RBVEFfVEJMX0lEX19JTkRJUkVDVF9J
T19BQ0NFU1MsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fVU1DX0lORiwKICAgIFZCSU9TX0RBVEFf
VEJMX0lEX19EQ0VfSU5GLAogICAgVkJJT1NfREFUQV9UQkxfSURfX1ZSQU1fSU5GLAogICAgVkJJ
T1NfREFUQV9UQkxfSURfX0lOVEVHUkFURURfU1lTX0lORiwKICAgIFZCSU9TX0RBVEFfVEJMX0lE
X19BU0lDX1BST0ZJTElOR19JTkYsCiAgICBWQklPU19EQVRBX1RCTF9JRF9fVk9MVEFHRV9PQkpf
SU5GLAoKICAgIFZCSU9TX0RBVEFfVEJMX0lEX19VTkRFRklORUQsCn07CgplbnVtIGF0b21fbWFz
dGVyX2NvbW1hbmRfdGFibGVfaWQKewogICAgVkJJT1NfQ01EX1RCTF9JRF9fQVNJQ19JTklULAog
ICAgVkJJT1NfQ01EX1RCTF9JRF9fRElHWF9FTkNPREVSX0NPTlRST0wsCiAgICBWQklPU19DTURf
VEJMX0lEX19TRVRfRU5HSU5FX0NMT0NLLAogICAgVkJJT1NfQ01EX1RCTF9JRF9fU0VUX01FTU9S
WV9DTE9DSywKICAgIFZCSU9TX0NNRF9UQkxfSURfX1NFVF9QSVhFTF9DTE9DSywKICAgIFZCSU9T
X0NNRF9UQkxfSURfX0VOQUJMRV9ESVNQX1BPV0VSX0dBVElORywKICAgIFZCSU9TX0NNRF9UQkxf
SURfX0JMQU5LX0NSVEMsCiAgICBWQklPU19DTURfVEJMX0lEX19FTkFCTEVfQ1JUQywKICAgIFZC
SU9TX0NNRF9UQkxfSURfX0dFVF9TTVVfQ0xPQ0tfSU5GTywKICAgIFZCSU9TX0NNRF9UQkxfSURf
X1NFTEVDVF9DUlRDX1NPVVJDRSwKICAgIFZCSU9TX0NNRF9UQkxfSURfX1NFVF9EQ0VfQ0xPQ0ss
CiAgICBWQklPU19DTURfVEJMX0lEX19HRVRfTUVNT1JZX0NMT0NLLAogICAgVkJJT1NfQ01EX1RC
TF9JRF9fR0VUX0VOR0lORV9DTE9DSywKICAgIFZCSU9TX0NNRF9UQkxfSURfX1NFVF9DUlRDX1VT
SU5HX0RURF9USU1JTkcsCiAgICBWQklPU19DTURfVEJMX0lEX19FWFRFTkFMX0VOQ09ERVJfQ09O
VFJPTCwKICAgIFZCSU9TX0NNRF9UQkxfSURfX1BST0NFU1NfSTJDX0NIQU5ORUxfVFJBTlNBQ1RJ
T04sCiAgICBWQklPU19DTURfVEJMX0lEX19DT01QVVRFX0dQVV9DTE9DS19QQVJBTSwKICAgIFZC
SU9TX0NNRF9UQkxfSURfX0RZTkFNSUNfTUVNT1JZX1NFVFRJTkdTLAogICAgVkJJT1NfQ01EX1RC
TF9JRF9fTUVNT1JZX1RSQUlOSU5HLAogICAgVkJJT1NfQ01EX1RCTF9JRF9fU0VUX1ZPTFRBR0Us
CiAgICBWQklPU19DTURfVEJMX0lEX19ESUcxX1RSQU5TTUlUVEVSX0NPTlRST0wsCiAgICBWQklP
U19DTURfVEJMX0lEX19QUk9DRVNTX0FVWF9DSEFOTkVMX1RSQU5TQUNUSU9OLAogICAgVkJJT1Nf
Q01EX1RCTF9JRF9fR0VUX1ZPTFRBR0VfSU5GLAoKICAgIFZCSU9TX0NNRF9UQkxfSURfX1VOREVG
SU5FRCwKfTsKIyAzMjc3ICIuL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUv
YXRvbWZpcm13YXJlLmgiIDIKI3ByYWdtYSBwYWNrKCkKIyA0MSAiZHJpdmVycy9ncHUvZHJtL2Ft
ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIgMgojIDEg
Ii4vZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vaW5jbHVkZS9hc2ljX3JlZy9jbGsvY2xr
XzEwXzBfMl9vZmZzZXQuaCIgMQojIDQyICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9k
aXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiAyCiMgMSAiLi9kcml2ZXJzL2dw
dS9kcm0vYW1kL2FtZGdwdS8uLi9pbmNsdWRlL2FzaWNfcmVnL2Nsay9jbGtfMTBfMF8yX3NoX21h
c2suaCIgMQojIDQzICJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2Ns
a19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiAyCiMgMSAiLi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft
ZGdwdS8uLi9pbmNsdWRlL3Jlbm9pcl9pcF9vZmZzZXQuaCIgMQojIDI4ICIuL2RyaXZlcnMvZ3B1
L2RybS9hbWQvYW1kZ3B1Ly4uL2luY2x1ZGUvcmVub2lyX2lwX29mZnNldC5oIgpzdHJ1Y3QgSVBf
QkFTRV9JTlNUQU5DRQp7CiAgICB1bnNpZ25lZCBpbnQgc2VnbWVudFs1XTsKfTsKCnN0cnVjdCBJ
UF9CQVNFCnsKICAgIHN0cnVjdCBJUF9CQVNFX0lOU1RBTkNFIGluc3RhbmNlWzddOwp9OwoKCnN0
YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBBQ1BfQkFTRSA9eyB7IHsgeyAweDAyNDAzODAwLCAw
eDAwNDgwMDAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBBVEhVQl9CQVNFID17IHsgeyB7IDB4
MDAwMDBDMjAsIDB4MDI0MDhDMDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIENMS19CQVNFID17
IHsgeyB7IDB4MDAwMTZDMDAsIDB4MDAwMTZFMDAsIDB4MDAwMTcwMDAsIDB4MDAwMTdFMDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0
IHN0cnVjdCBJUF9CQVNFIERCR1VfSU8wX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDFFMCwgMHgwMjQw
QjQwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9
OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgREZfQkFTRSA9eyB7IHsgeyAweDAwMDA3MDAw
LCAweDAyNDBCODAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBESU9fQkFTRSA9eyB7IHsgeyAw
eDAyNDA0MDAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBETVVfQkFTRSA9eyB7IHsgeyAw
eDAwMDAwMDEyLCAweDAwMDAwMEMwLCAweDAwMDAzNEMwLCAweDAwMDA5MDAwLCAweDAyNDAzQzAw
IH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25z
dCBzdHJ1Y3QgSVBfQkFTRSBEUENTX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBD
MCwgMHgwMDAwMzRDMCwgMHgwMDAwOTAwMCwgMHgwMjQwM0MwMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgRlVT
RV9CQVNFID17IHsgeyB7IDB4MDAwMTc0MDAsIDB4MDI0MDE0MDAsIDAsIDAsIDAgfSB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJ
UF9CQVNFIEdDX0JBU0UgPXsgeyB7IHsgMHgwMDAwMjAwMCwgMHgwMDAwQTAwMCwgMHgwMjQwMkMw
MCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0
aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERBX0JBU0UgPXsgeyB7IHsgMHgwMjQwNDgwMCwgMHgw
MDRDMDAwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0g
fSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSERQX0JBU0UgPXsgeyB7IHsgMHgwMDAw
MEYyMCwgMHgwMjQwQTQwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgSU9IQzBfQkFTRSA9eyB7
IHsgeyAweDAwMDEwMDAwLCAweDAyNDA2MDAwLCAweDA0RUMwMDAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAw
IH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAw
LCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBf
QkFTRSBJU1BfQkFTRSA9eyB7IHsgeyAweDAwMDE4MDAwLCAweDAyNDBCMDAwLCAwLCAwLCAwIH0g
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAw
LCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25zdCBz
dHJ1Y3QgSVBfQkFTRSBMMklNVTBfQkFTRSA9eyB7IHsgeyAweDAwMDA3REMwLCAweDAyNDA3MDAw
LCAweDAwOTAwMDAwLCAweDA0RkMwMDAwLCAweDA1NUMwMDAwIH0gfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0g
fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAw
LCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAw
LCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
eyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBNTUhV
Ql9CQVNFID17IHsgeyB7IDB4MDAwMUEwMDAsIDB4MDI0MDg4MDAsIDAsIDAsIDAgfSB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAs
IDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAs
IDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7
IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJ
UF9CQVNFIE1QMF9CQVNFID17IHsgeyB7IDB4MDAwMTYwMDAsIDB4MDI0M0ZDMDAsIDB4MDBEQzAw
MDAsIDB4MDBFMDAwMDAsIDB4MDBFNDAwMDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIE1QMV9CQVNFID17IHsg
eyB7IDB4MDAwMTYwMDAsIDB4MDI0MDA0MDAsIDB4MDBFODAwMDAsIDB4MDBFQzAwMDAsIDB4MDBG
MDAwMDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGlj
IGNvbnN0IHN0cnVjdCBJUF9CQVNFIE5CSUYwX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAwMCwgMHgw
MDAwMDAxNCwgMHgwMDAwMEQyMCwgMHgwMDAxMDQwMCwgMHgwMjQxQjAwMCB9IH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JB
U0UgRENOX0JBU0UgPXsgeyB7IHsgMHgwMDAwMDAxMiwgMHgwMDAwMDBDMCwgMHgwMDAwMzRDMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0
IElQX0JBU0UgT1NTU1lTX0JBU0UgPXsgeyB7IHsgMHgwMDAwMTBBMCwgMHgwMjQwQTAwMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMg
Y29uc3Qgc3RydWN0IElQX0JBU0UgUENJRTBfQkFTRSA9eyB7IHsgeyAweDAyNDExODAwLCAweDA0
NDQwMDAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9
IH07CnN0YXRpYyBjb25zdCBzdHJ1Y3QgSVBfQkFTRSBTRE1BMF9CQVNFID17IHsgeyB7IDB4MDAw
MDEyNjAsIDB4MDI0MEE4MDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9CQVNFIFNNVUlPX0JBU0UgPXsg
eyB7IHsgMHgwMDAxNjgwMCwgMHgwMDAxNkEwMCwgMHgwMjQwMTAwMCwgMHgwMDQ0MDAwMCwgMCB9
IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwg
MCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwg
MCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qg
c3RydWN0IElQX0JBU0UgVEhNX0JBU0UgPXsgeyB7IHsgMHgwMDAxNjYwMCwgMHgwMjQwMEMwMCwg
MCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0
aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVU1DX0JBU0UgPXsgeyB7IHsgMHgwMDAxNDAwMCwgMHgw
MjQyNTgwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHsgMHgwMDA1NDAwMCwgMHgwMjQyNUMwMCwgMCwgMCwgMCB9IH0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwgMCB9IH0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwgMCwgMCwg
MCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsgMCwgMCwg
MCwgMCwgMCB9IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHsg
MCwgMCwgMCwgMCwgMCB9IH0gfSB9OwpzdGF0aWMgY29uc3Qgc3RydWN0IElQX0JBU0UgVVNCMF9C
QVNFID17IHsgeyB7IDB4MDI0MkE4MDAsIDB4MDVCMDAwMDAsIDAsIDAsIDAgfSB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAsIDAsIDAg
fSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAsIDAsIDAs
IDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB7IDAs
IDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB7IDAsIDAsIDAsIDAsIDAgfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyB7IDAsIDAsIDAsIDAsIDAgfSB9IH0gfTsKc3RhdGljIGNvbnN0IHN0cnVjdCBJUF9C
QVNFIFVWRDBfQkFTRSA9eyB7IHsgeyAweDAwMDA3ODAwLCAweDAwMDA3RTAwLCAweDAyNDAzMDAw
LCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAw
LCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgeyAwLCAwLCAwLCAwLCAwIH0gfSB9IH07CiMgNDQg
ImRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9y
bl9jbGtfbWdyLmMiIDIKIyA1NyAiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxh
eS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIKaW50IHJuX2dldF9hY3RpdmVfZGlzcGxh
eV9jbnRfd2EoCiAgc3RydWN0IGRjICpkYywKICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpCnsK
IGludCBpLCBkaXNwbGF5X2NvdW50OwogYm9vbCB0bWRzX3ByZXNlbnQgPSBmYWxzZTsKCiBkaXNw
bGF5X2NvdW50ID0gMDsKIGZvciAoaSA9IDA7IGkgPCBjb250ZXh0LT5zdHJlYW1fY291bnQ7IGkr
KykgewogIGNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSA9IGNvbnRleHQtPnN0
cmVhbXNbaV07CgogIGlmIChzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9IRE1JX1RZUEVf
QSB8fAogICAgc3RyZWFtLT5zaWduYWwgPT0gU0lHTkFMX1RZUEVfRFZJX1NJTkdMRV9MSU5LIHx8
CiAgICBzdHJlYW0tPnNpZ25hbCA9PSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5LKQogICB0bWRz
X3ByZXNlbnQgPSB0cnVlOwogfQoKIGZvciAoaSA9IDA7IGkgPCBkYy0+bGlua19jb3VudDsgaSsr
KSB7CiAgY29uc3Qgc3RydWN0IGRjX2xpbmsgKmxpbmsgPSBkYy0+bGlua3NbaV07CiMgODQgImRy
aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9j
bGtfbWdyLmMiCiAgaWYgKGxpbmstPmNvbm5lY3Rvcl9zaWduYWwgPT0gU0lHTkFMX1RZUEVfVklS
VFVBTCB8fAogICAgbGluay0+bGlua19lbmMtPmZ1bmNzLT5pc19kaWdfZW5hYmxlZChsaW5rLT5s
aW5rX2VuYykpCiAgIGRpc3BsYXlfY291bnQrKzsKIH0KCgogaWYgKGRpc3BsYXlfY291bnQgPT0g
MCAmJiB0bWRzX3ByZXNlbnQpCiAgZGlzcGxheV9jb3VudCA9IDE7CgogcmV0dXJuIGRpc3BsYXlf
Y291bnQ7Cn0KCnZvaWQgcm5fdXBkYXRlX2Nsb2NrcyhzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9i
YXNlLAogICBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCiAgIGJvb2wgc2FmZV90b19sb3dlcikK
ewogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSAoeyB2b2lkICpfX21wdHIgPSAo
dm9pZCAqKShjbGtfbWdyX2Jhc2UpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29tcGlsZXRpbWVfYXNz
ZXJ0XzEwMCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50ZXIgdHlwZSBtaXNt
YXRjaCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRpbl90eXBlc19jb21w
YXRpYmxlX3AodHlwZW9mKCooY2xrX21ncl9iYXNlKSksIHR5cGVvZigoKHN0cnVjdCBjbGtfbWdy
X2ludGVybmFsICopMCktPmJhc2UpKSAmJiAhX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0
eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2NvbXBpbGV0aW1lX2Fz
c2VydF8xMDAoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKikoX19t
cHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsLCBiYXNlKSkp
OyB9KTsKIHN0cnVjdCBkY19jbG9ja3MgKm5ld19jbG9ja3MgPSAmY29udGV4dC0+YndfY3R4LmJ3
LmRjbi5jbGs7CiBzdHJ1Y3QgZGMgKmRjID0gY2xrX21ncl9iYXNlLT5jdHgtPmRjOwogaW50IGRp
c3BsYXlfY291bnQ7CiBib29sIHVwZGF0ZV9kcHBjbGsgPSBmYWxzZTsKIGJvb2wgdXBkYXRlX2Rp
c3BjbGsgPSBmYWxzZTsKIGJvb2wgZHBwX2Nsb2NrX2xvd2VyZWQgPSBmYWxzZTsKCiBzdHJ1Y3Qg
ZG1jdSAqZG1jdSA9IGNsa19tZ3JfYmFzZS0+Y3R4LT5kYy0+cmVzX3Bvb2wtPmRtY3U7CgogaWYg
KGRjLT53b3JrX2Fyb3VuZHMuc2tpcF9jbG9ja191cGRhdGUpCiAgcmV0dXJuOwoKCgoKCiBpZiAo
c2FmZV90b19sb3dlcikgewoKICBpZiAoY2xrX21ncl9iYXNlLT5jbGtzLnB3cl9zdGF0ZSAhPSBE
Q05fUFdSX1NUQVRFX0xPV19QT1dFUikgewoKICAgZGlzcGxheV9jb3VudCA9IHJuX2dldF9hY3Rp
dmVfZGlzcGxheV9jbnRfd2EoZGMsIGNvbnRleHQpOwoKICAgaWYgKGRpc3BsYXlfY291bnQgPT0g
MCkgewogICAgcm5fdmJpb3Nfc211X3NldF9kY25fbG93X3Bvd2VyX3N0YXRlKGNsa19tZ3IsIERD
Tl9QV1JfU1RBVEVfTE9XX1BPV0VSKTsKCiAgICBjbGtfbWdyX2Jhc2UtPmNsa3MucHdyX3N0YXRl
ID0gRENOX1BXUl9TVEFURV9MT1dfUE9XRVI7CiAgIH0KICB9CiB9IGVsc2UgewoKICBpZiAoY2xr
X21ncl9iYXNlLT5jbGtzLnB3cl9zdGF0ZSAhPSBEQ05fUFdSX1NUQVRFX01JU1NJT05fTU9ERSkg
ewogICBybl92Ymlvc19zbXVfc2V0X2Rjbl9sb3dfcG93ZXJfc3RhdGUoY2xrX21nciwgRENOX1BX
Ul9TVEFURV9NSVNTSU9OX01PREUpOwoKICAgY2xrX21ncl9iYXNlLT5jbGtzLnB3cl9zdGF0ZSA9
IERDTl9QV1JfU1RBVEVfTUlTU0lPTl9NT0RFOwogIH0KIH0KCiBpZiAoc2hvdWxkX3NldF9jbG9j
ayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tzLT5waHljbGtfa2h6LCBjbGtfbWdyX2Jhc2UtPmNs
a3MucGh5Y2xrX2toeikpIHsKICBjbGtfbWdyX2Jhc2UtPmNsa3MucGh5Y2xrX2toeiA9IG5ld19j
bG9ja3MtPnBoeWNsa19raHo7CiAgcm5fdmJpb3Nfc211X3NldF9waHljbGsoY2xrX21nciwgY2xr
X21ncl9iYXNlLT5jbGtzLnBoeWNsa19raHopOwogfQoKIGlmIChzaG91bGRfc2V0X2Nsb2NrKHNh
ZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRjZmNsa19raHosIGNsa19tZ3JfYmFzZS0+Y2xrcy5k
Y2ZjbGtfa2h6KSkgewogIGNsa19tZ3JfYmFzZS0+Y2xrcy5kY2ZjbGtfa2h6ID0gbmV3X2Nsb2Nr
cy0+ZGNmY2xrX2toejsKICBybl92Ymlvc19zbXVfc2V0X2hhcmRfbWluX2RjZmNsayhjbGtfbWdy
LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2toeik7CiB9CgogaWYgKHNob3VsZF9zZXRfY2xv
Y2soc2FmZV90b19sb3dlciwKICAgbmV3X2Nsb2Nrcy0+ZGNmY2xrX2RlZXBfc2xlZXBfa2h6LCBj
bGtfbWdyX2Jhc2UtPmNsa3MuZGNmY2xrX2RlZXBfc2xlZXBfa2h6KSkgewogIGNsa19tZ3JfYmFz
ZS0+Y2xrcy5kY2ZjbGtfZGVlcF9zbGVlcF9raHogPSBuZXdfY2xvY2tzLT5kY2ZjbGtfZGVlcF9z
bGVlcF9raHo7CiAgcm5fdmJpb3Nfc211X3NldF9taW5fZGVlcF9zbGVlcF9kY2ZjbGsoY2xrX21n
ciwgY2xrX21ncl9iYXNlLT5jbGtzLmRjZmNsa19kZWVwX3NsZWVwX2toeik7CiB9CgoKIGlmICgh
KChkYy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQgPT0gRENFX0VOVl9GUEdBX01BWElNVVMpIHx8IChk
Yy0+Y3R4LT5kY2VfZW52aXJvbm1lbnQgPT0gRENFX0VOVl9ESUFHKSkpIHsKICBpZiAobmV3X2Ns
b2Nrcy0+ZHBwY2xrX2toeiA8IDEwMDAwMCkKICAgbmV3X2Nsb2Nrcy0+ZHBwY2xrX2toeiA9IDEw
MDAwMDsKIH0KCiBpZiAoc2hvdWxkX3NldF9jbG9jayhzYWZlX3RvX2xvd2VyLCBuZXdfY2xvY2tz
LT5kcHBjbGtfa2h6LCBjbGtfbWdyLT5iYXNlLmNsa3MuZHBwY2xrX2toeikpIHsKICBpZiAoY2xr
X21nci0+YmFzZS5jbGtzLmRwcGNsa19raHogPiBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6KQogICBk
cHBfY2xvY2tfbG93ZXJlZCA9IHRydWU7CiAgY2xrX21ncl9iYXNlLT5jbGtzLmRwcGNsa19raHog
PSBuZXdfY2xvY2tzLT5kcHBjbGtfa2h6OwogIHVwZGF0ZV9kcHBjbGsgPSB0cnVlOwogfQoKIGlm
IChzaG91bGRfc2V0X2Nsb2NrKHNhZmVfdG9fbG93ZXIsIG5ld19jbG9ja3MtPmRpc3BjbGtfa2h6
LCBjbGtfbWdyX2Jhc2UtPmNsa3MuZGlzcGNsa19raHopKSB7CiAgY2xrX21ncl9iYXNlLT5jbGtz
LmRpc3BjbGtfa2h6ID0gbmV3X2Nsb2Nrcy0+ZGlzcGNsa19raHo7CiAgcm5fdmJpb3Nfc211X3Nl
dF9kaXNwY2xrKGNsa19tZ3IsIGNsa19tZ3JfYmFzZS0+Y2xrcy5kaXNwY2xrX2toeik7CgogIHVw
ZGF0ZV9kaXNwY2xrID0gdHJ1ZTsKIH0KCiBpZiAoZHBwX2Nsb2NrX2xvd2VyZWQpIHsKCiAgZGNu
MjBfdXBkYXRlX2Nsb2Nrc191cGRhdGVfZHBwX2R0byhjbGtfbWdyLCBjb250ZXh0LCBzYWZlX3Rv
X2xvd2VyKTsKICBybl92Ymlvc19zbXVfc2V0X2RwcGNsayhjbGtfbWdyLCBjbGtfbWdyX2Jhc2Ut
PmNsa3MuZHBwY2xrX2toeik7CiB9IGVsc2UgewoKICBpZiAodXBkYXRlX2RwcGNsayB8fCB1cGRh
dGVfZGlzcGNsaykKICAgcm5fdmJpb3Nfc211X3NldF9kcHBjbGsoY2xrX21nciwgY2xrX21ncl9i
YXNlLT5jbGtzLmRwcGNsa19raHopOwoKICBpZiAobmV3X2Nsb2Nrcy0+ZHBwY2xrX2toeiA+PSBk
Yy0+Y3VycmVudF9zdGF0ZS0+YndfY3R4LmJ3LmRjbi5jbGsuZHBwY2xrX2toeikKICAgZGNuMjBf
dXBkYXRlX2Nsb2Nrc191cGRhdGVfZHBwX2R0byhjbGtfbWdyLCBjb250ZXh0LCBzYWZlX3RvX2xv
d2VyKTsKIH0KCiBpZiAodXBkYXRlX2Rpc3BjbGsgJiYKICAgZG1jdSAmJiBkbWN1LT5mdW5jcy0+
aXNfZG1jdV9pbml0aWFsaXplZChkbWN1KSkgewoKICBkbWN1LT5mdW5jcy0+c2V0X3Bzcl93YWl0
X2xvb3AoZG1jdSwKICAgY2xrX21ncl9iYXNlLT5jbGtzLmRpc3BjbGtfa2h6IC8gMTAwMCAvIDcp
OwogfQp9CgoKc3RhdGljIGludCBnZXRfdmNvX2ZyZXF1ZW5jeV9mcm9tX3JlZyhzdHJ1Y3QgY2xr
X21ncl9pbnRlcm5hbCAqY2xrX21ncikKewoKIHN0cnVjdCBmaXhlZDMxXzMyIHBsbF9yZXE7CiB1
bnNpZ25lZCBpbnQgZmJtdWx0X2ZyYWNfdmFsID0gMDsKIHVuc2lnbmVkIGludCBmYm11bHRfaW50
X3ZhbCA9IDA7CgoKCgoKCgogZ2VuZXJpY19yZWdfZ2V0KGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xL
X0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDAwZiksIDB4MTAsIDB4RkZGRjAwMDBM
LCAmZmJtdWx0X2ZyYWNfdmFsKTsKIGdlbmVyaWNfcmVnX2dldChjbGtfbWdyLT5iYXNlLmN0eCwg
KENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbMV0gKyAweDAwMGYpLCAweDAsIDB4MDAwMDAx
RkZMLCAmZmJtdWx0X2ludF92YWwpOwoKIHBsbF9yZXEgPSBkY19maXhwdF9mcm9tX2ludChmYm11
bHRfaW50X3ZhbCk7CgoKCgoKIHBsbF9yZXEudmFsdWUgfD0gZmJtdWx0X2ZyYWNfdmFsIDw8IDE2
OwoKCiBwbGxfcmVxID0gZGNfZml4cHRfbXVsX2ludChwbGxfcmVxLCBjbGtfbWdyLT5kZnNfcmVm
X2ZyZXFfa2h6KTsKCgogcmV0dXJuIGRjX2ZpeHB0X2Zsb29yKHBsbF9yZXEpOwp9CgpzdGF0aWMg
dm9pZCBybl9kdW1wX2Nsa19yZWdpc3RlcnNfaW50ZXJuYWwoc3RydWN0IHJuX2Nsa19pbnRlcm5h
bCAqaW50ZXJuYWwsIHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyX2Jhc2UpCnsKIHN0cnVjdCBjbGtf
bWdyX2ludGVybmFsICpjbGtfbWdyID0gKHsgdm9pZCAqX19tcHRyID0gKHZvaWQgKikoY2xrX21n
cl9iYXNlKTsgZG8geyBleHRlcm4gdm9pZCBfX2NvbXBpbGV0aW1lX2Fzc2VydF8yMjkodm9pZCkg
X19hdHRyaWJ1dGVfXygoX19lcnJvcl9fKCJwb2ludGVyIHR5cGUgbWlzbWF0Y2ggaW4gY29udGFp
bmVyX29mKCkiKSkpOyBpZiAoISghKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVv
ZigqKGNsa19tZ3JfYmFzZSkpLCB0eXBlb2YoKChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKTAp
LT5iYXNlKSkgJiYgIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooY2xrX21n
cl9iYXNlKSksIHR5cGVvZih2b2lkKSkpKSkgX19jb21waWxldGltZV9hc3NlcnRfMjI5KCk7IH0g
d2hpbGUgKDApOyAoKHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICopKF9fbXB0ciAtIF9fYnVpbHRp
bl9vZmZzZXRvZihzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCwgYmFzZSkpKTsgfSk7CgogaW50ZXJu
YWwtPkNMSzFfQ0xLM19DVVJSRU5UX0NOVCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFz
ZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDhkKSwgX19mdW5j
X18pOwogaW50ZXJuYWwtPkNMSzFfQ0xLM19CWVBBU1NfQ05UTCA9IGRtX3JlYWRfcmVnX2Z1bmMo
Y2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgw
MDY3KSwgX19mdW5jX18pOwoKIGludGVybmFsLT5DTEsxX0NMSzNfRFNfQ05UTCA9IGRtX3JlYWRf
cmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50
WzFdICsgMHgwMDYwKSwgX19mdW5jX18pOwogaW50ZXJuYWwtPkNMSzFfQ0xLM19BTExPV19EUyA9
IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0YW5jZVsw
XS5zZWdtZW50WzFdICsgMHgwMDYxKSwgX19mdW5jX18pOwoKIGludGVybmFsLT5DTEsxX0NMSzFf
Q1VSUkVOVF9DTlQgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2UuY3R4LCAoQ0xLX0JB
U0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA4YiksIF9fZnVuY19fKTsKIGludGVybmFs
LT5DTEsxX0NMSzFfQllQQVNTX0NOVEwgPSBkbV9yZWFkX3JlZ19mdW5jKGNsa19tZ3ItPmJhc2Uu
Y3R4LCAoQ0xLX0JBU0UuaW5zdGFuY2VbMF0uc2VnbWVudFsxXSArIDB4MDA1MyksIF9fZnVuY19f
KTsKCiBpbnRlcm5hbC0+Q0xLMV9DTEsyX0NVUlJFTlRfQ05UID0gZG1fcmVhZF9yZWdfZnVuYyhj
bGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21lbnRbMV0gKyAweDAw
OGMpLCBfX2Z1bmNfXyk7CiBpbnRlcm5hbC0+Q0xLMV9DTEsyX0JZUEFTU19DTlRMID0gZG1fcmVh
ZF9yZWdfZnVuYyhjbGtfbWdyLT5iYXNlLmN0eCwgKENMS19CQVNFLmluc3RhbmNlWzBdLnNlZ21l
bnRbMV0gKyAweDAwNWQpLCBfX2Z1bmNfXyk7CgogaW50ZXJuYWwtPkNMSzFfQ0xLMF9DVVJSRU5U
X0NOVCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChDTEtfQkFTRS5pbnN0
YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDhhKSwgX19mdW5jX18pOwogaW50ZXJuYWwtPkNMSzFf
Q0xLMF9CWVBBU1NfQ05UTCA9IGRtX3JlYWRfcmVnX2Z1bmMoY2xrX21nci0+YmFzZS5jdHgsIChD
TEtfQkFTRS5pbnN0YW5jZVswXS5zZWdtZW50WzFdICsgMHgwMDQ5KSwgX19mdW5jX18pOwp9CgoK
c3RhdGljIHZvaWQgcm5fZHVtcF9jbGtfcmVnaXN0ZXJzKHN0cnVjdCBjbGtfc3RhdGVfcmVnaXN0
ZXJzX2FuZF9ieXBhc3MgKnJlZ3NfYW5kX2J5cGFzcywKICBzdHJ1Y3QgY2xrX21nciAqY2xrX21n
cl9iYXNlLCBzdHJ1Y3QgY2xrX2xvZ19pbmZvICpsb2dfaW5mbykKewogc3RydWN0IHJuX2Nsa19p
bnRlcm5hbCBpbnRlcm5hbCA9IHswfTsKIGNoYXIgKmJ5cGFzc19jbGtzWzVdID0geyIweDAgREZT
IiwgIjB4MSBSRUZDTEsiLCAiMHgyIEVSUk9SIiwgIjB4MyA0MDAgRkNIIiwgIjB4NCA2MDAgRkNI
In07CiB1bnNpZ25lZCBpbnQgY2hhcnNfcHJpbnRlZCA9IDA7CiB1bnNpZ25lZCBpbnQgcmVtYWlu
aW5nX2J1ZmZlciA9IGxvZ19pbmZvLT5idWZTaXplOwoKIHJuX2R1bXBfY2xrX3JlZ2lzdGVyc19p
bnRlcm5hbCgmaW50ZXJuYWwsIGNsa19tZ3JfYmFzZSk7CgogcmVnc19hbmRfYnlwYXNzLT5kY2Zj
bGsgPSBpbnRlcm5hbC5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQgLyAxMDsKIHJlZ3NfYW5kX2J5cGFz
cy0+ZGNmX2RlZXBfc2xlZXBfZGl2aWRlciA9IGludGVybmFsLkNMSzFfQ0xLM19EU19DTlRMIC8g
MTA7CiByZWdzX2FuZF9ieXBhc3MtPmRjZl9kZWVwX3NsZWVwX2FsbG93ID0gaW50ZXJuYWwuQ0xL
MV9DTEszX0FMTE9XX0RTOwogcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsayA9IGludGVybmFsLkNM
SzFfQ0xLMl9DVVJSRU5UX0NOVCAvIDEwOwogcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrID0gaW50
ZXJuYWwuQ0xLMV9DTEswX0NVUlJFTlRfQ05UIC8gMTA7CiByZWdzX2FuZF9ieXBhc3MtPmRwcGNs
ayA9IGludGVybmFsLkNMSzFfQ0xLMV9DVVJSRU5UX0NOVCAvIDEwOwoKIHJlZ3NfYW5kX2J5cGFz
cy0+ZHBwY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xLMV9CWVBBU1NfQ05UTCAmIDB4MDAw
NzsKIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcGNsa19ieXBhc3MgPCAwIHx8IHJlZ3NfYW5kX2J5
cGFzcy0+ZHBwY2xrX2J5cGFzcyA+IDQpCiAgcmVnc19hbmRfYnlwYXNzLT5kcHBjbGtfYnlwYXNz
ID0gMDsKIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xL
M19CWVBBU1NfQ05UTCAmIDB4MDAwNzsKIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRjZmNsa19ieXBh
c3MgPCAwIHx8IHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzcyA+IDQpCiAgcmVnc19hbmRf
YnlwYXNzLT5kY2ZjbGtfYnlwYXNzID0gMDsKIHJlZ3NfYW5kX2J5cGFzcy0+ZGlzcGNsa19ieXBh
c3MgPSBpbnRlcm5hbC5DTEsxX0NMSzBfQllQQVNTX0NOVEwgJiAweDAwMDc7CiBpZiAocmVnc19h
bmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA8IDAgfHwgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xr
X2J5cGFzcyA+IDQpCiAgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrX2J5cGFzcyA9IDA7CiByZWdz
X2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA9IGludGVybmFsLkNMSzFfQ0xLMl9CWVBBU1Nf
Q05UTCAmIDB4MDAwNzsKIGlmIChyZWdzX2FuZF9ieXBhc3MtPmRwcmVmY2xrX2J5cGFzcyA8IDAg
fHwgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNsa19ieXBhc3MgPiA0KQogIHJlZ3NfYW5kX2J5cGFz
cy0+ZHByZWZjbGtfYnlwYXNzID0gMDsKCiBpZiAobG9nX2luZm8tPmVuYWJsZWQpIHsKICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJjbGtfdHlwZSxjbGtfdmFsdWUsZGVlcHNsZWVwX2NudGwsZGVlcHNsZWVwX2FsbG93LGJ5
cGFzc1xuIik7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwogICpsb2dfaW5m
by0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+cEJ1ZiAr
PSBjaGFyc19wcmludGVkOwoKICBjaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2lu
Zm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJkY2ZjbGssJWQsJWQsJWQsJXNcbiIsCiAgIHJl
Z3NfYW5kX2J5cGFzcy0+ZGNmY2xrLAogICByZWdzX2FuZF9ieXBhc3MtPmRjZl9kZWVwX3NsZWVw
X2RpdmlkZXIsCiAgIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmX2RlZXBfc2xlZXBfYWxsb3csCiAgIGJ5
cGFzc19jbGtzWyhpbnQpIHJlZ3NfYW5kX2J5cGFzcy0+ZGNmY2xrX2J5cGFzc10pOwogIHJlbWFp
bmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmlu
dGVkICs9IGNoYXJzX3ByaW50ZWQ7CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsK
CiAgY2hhcnNfcHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5p
bmdfYnVmZmVyLCAiZHByZWZjbGssJWQsTi9BLE4vQSwlc1xuIiwKICAgcmVnc19hbmRfYnlwYXNz
LT5kcHJlZmNsaywKICAgYnlwYXNzX2Nsa3NbKGludCkgcmVnc19hbmRfYnlwYXNzLT5kcHJlZmNs
a19ieXBhc3NdKTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19p
bmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVm
ICs9IGNoYXJzX3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2df
aW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgImRpc3BjbGssJWQsTi9BLE4vQSwlc1xuIiwK
ICAgcmVnc19hbmRfYnlwYXNzLT5kaXNwY2xrLAogICBieXBhc3NfY2xrc1soaW50KSByZWdzX2Fu
ZF9ieXBhc3MtPmRpc3BjbGtfYnlwYXNzXSk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19w
cmludGVkOwogICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsK
ICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKCiAgY2hhcnNfcHJpbnRlZCA9IHNu
cHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiU1BMSVRcbiIp
OwogIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNfcHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9j
aGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNf
cHJpbnRlZDsKCgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1
ZiwgcmVtYWluaW5nX2J1ZmZlciwgInJlZ19uYW1lLHZhbHVlLGNsa190eXBlXG4iKTsKICByZW1h
aW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJp
bnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7
CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWlu
aW5nX2J1ZmZlciwgIkNMSzFfQ0xLM19DVVJSRU5UX0NOVCwlZCxkY2ZjbGtcbiIsCiAgICBpbnRl
cm5hbC5DTEsxX0NMSzNfQ1VSUkVOVF9DTlQpOwogIHJlbWFpbmluZ19idWZmZXIgLT0gY2hhcnNf
cHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNoYXJzX3ByaW50ZWQ7
CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKCiAgY2hhcnNfcHJpbnRlZCA9IHNu
cHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVyLCAiQ0xLMV9DTEsz
X0RTX0NOVEwsJWQsZGNmX2RlZXBfc2xlZXBfZGl2aWRlclxuIiwKICAgICBpbnRlcm5hbC5DTEsx
X0NMSzNfRFNfQ05UTCk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwogICps
b2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+
cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKICBjaGFyc19wcmludGVkID0gc25wcmludGZfY291bnQo
bG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NMSzNfQUxMT1dfRFMsJWQs
ZGNmX2RlZXBfc2xlZXBfYWxsb3dcbiIsCiAgICAgaW50ZXJuYWwuQ0xLMV9DTEszX0FMTE9XX0RT
KTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19pbmZvLT5zdW1f
Y2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJz
X3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1
ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMl9DVVJSRU5UX0NOVCwlZCxkcHJlZmNsa1xu
IiwKICAgICBpbnRlcm5hbC5DTEsxX0NMSzJfQ1VSUkVOVF9DTlQpOwogIHJlbWFpbmluZ19idWZm
ZXIgLT0gY2hhcnNfcHJpbnRlZDsKICAqbG9nX2luZm8tPnN1bV9jaGFyc19wcmludGVkICs9IGNo
YXJzX3ByaW50ZWQ7CiAgbG9nX2luZm8tPnBCdWYgKz0gY2hhcnNfcHJpbnRlZDsKCiAgY2hhcnNf
cHJpbnRlZCA9IHNucHJpbnRmX2NvdW50KGxvZ19pbmZvLT5wQnVmLCByZW1haW5pbmdfYnVmZmVy
LCAiQ0xLMV9DTEswX0NVUlJFTlRfQ05ULCVkLGRpc3BjbGtcbiIsCiAgICAgaW50ZXJuYWwuQ0xL
MV9DTEswX0NVUlJFTlRfQ05UKTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7
CiAgKmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19p
bmZvLT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9j
b3VudChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMV9DVVJSRU5U
X0NOVCwlZCxkcHBjbGtcbiIsCiAgICAgaW50ZXJuYWwuQ0xLMV9DTEsxX0NVUlJFTlRfQ05UKTsK
ICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAgKmxvZ19pbmZvLT5zdW1fY2hh
cnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZvLT5wQnVmICs9IGNoYXJzX3By
aW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3VudChsb2dfaW5mby0+cEJ1Ziwg
cmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLM19CWVBBU1NfQ05UTCwlZCxkY2ZjbGtfYnlwYXNz
XG4iLAogICAgIGludGVybmFsLkNMSzFfQ0xLM19CWVBBU1NfQ05UTCk7CiAgcmVtYWluaW5nX2J1
ZmZlciAtPSBjaGFyc19wcmludGVkOwogICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0g
Y2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKICBjaGFy
c19wcmludGVkID0gc25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZm
ZXIsICJDTEsxX0NMSzJfQllQQVNTX0NOVEwsJWQsZHByZWZjbGtfYnlwYXNzXG4iLAogICAgIGlu
dGVybmFsLkNMSzFfQ0xLMl9CWVBBU1NfQ05UTCk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFy
c19wcmludGVkOwogICpsb2dfaW5mby0+c3VtX2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRl
ZDsKICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFyc19wcmludGVkOwoKICBjaGFyc19wcmludGVkID0g
c25wcmludGZfY291bnQobG9nX2luZm8tPnBCdWYsIHJlbWFpbmluZ19idWZmZXIsICJDTEsxX0NM
SzBfQllQQVNTX0NOVEwsJWQsZGlzcGNsa19ieXBhc3NcbiIsCiAgICAgaW50ZXJuYWwuQ0xLMV9D
TEswX0JZUEFTU19DTlRMKTsKICByZW1haW5pbmdfYnVmZmVyIC09IGNoYXJzX3ByaW50ZWQ7CiAg
KmxvZ19pbmZvLT5zdW1fY2hhcnNfcHJpbnRlZCArPSBjaGFyc19wcmludGVkOwogIGxvZ19pbmZv
LT5wQnVmICs9IGNoYXJzX3ByaW50ZWQ7CgogIGNoYXJzX3ByaW50ZWQgPSBzbnByaW50Zl9jb3Vu
dChsb2dfaW5mby0+cEJ1ZiwgcmVtYWluaW5nX2J1ZmZlciwgIkNMSzFfQ0xLMV9CWVBBU1NfQ05U
TCwlZCxkcHBjbGtfYnlwYXNzXG4iLAogICAgIGludGVybmFsLkNMSzFfQ0xLMV9CWVBBU1NfQ05U
TCk7CiAgcmVtYWluaW5nX2J1ZmZlciAtPSBjaGFyc19wcmludGVkOwogICpsb2dfaW5mby0+c3Vt
X2NoYXJzX3ByaW50ZWQgKz0gY2hhcnNfcHJpbnRlZDsKICBsb2dfaW5mby0+cEJ1ZiArPSBjaGFy
c19wcmludGVkOwogfQp9CgoKdm9pZCBybl9nZXRfY2xrX3N0YXRlcyhzdHJ1Y3QgY2xrX21nciAq
Y2xrX21ncl9iYXNlLCBzdHJ1Y3QgY2xrX3N0YXRlcyAqcykKewogc3RydWN0IGNsa19zdGF0ZV9y
ZWdpc3RlcnNfYW5kX2J5cGFzcyBzYiA9IHsgMCB9Owogc3RydWN0IGNsa19sb2dfaW5mbyBsb2df
aW5mbyA9IHsgMCB9OwoKIHJuX2R1bXBfY2xrX3JlZ2lzdGVycygmc2IsIGNsa19tZ3JfYmFzZSwg
JmxvZ19pbmZvKTsKCiBzLT5kcHJlZmNsa19raHogPSBzYi5kcHJlZmNsayAqIDEwMDA7Cn0KCnZv
aWQgcm5fZW5hYmxlX3BtZV93YShzdHJ1Y3QgY2xrX21nciAqY2xrX21ncl9iYXNlKQp7CiBzdHJ1
Y3QgY2xrX21ncl9pbnRlcm5hbCAqY2xrX21nciA9ICh7IHZvaWQgKl9fbXB0ciA9ICh2b2lkICop
KGNsa19tZ3JfYmFzZSk7IGRvIHsgZXh0ZXJuIHZvaWQgX19jb21waWxldGltZV9hc3NlcnRfMzk0
KHZvaWQpIF9fYXR0cmlidXRlX18oKF9fZXJyb3JfXygicG9pbnRlciB0eXBlIG1pc21hdGNoIGlu
IGNvbnRhaW5lcl9vZigpIikpKTsgaWYgKCEoISghX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVf
cCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKCgoc3RydWN0IGNsa19tZ3JfaW50ZXJu
YWwgKikwKS0+YmFzZSkpICYmICFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZigq
KGNsa19tZ3JfYmFzZSkpLCB0eXBlb2Yodm9pZCkpKSkpIF9fY29tcGlsZXRpbWVfYXNzZXJ0XzM5
NCgpOyB9IHdoaWxlICgwKTsgKChzdHJ1Y3QgY2xrX21ncl9pbnRlcm5hbCAqKShfX21wdHIgLSBf
X2J1aWx0aW5fb2Zmc2V0b2Yoc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwsIGJhc2UpKSk7IH0pOwoK
IHJuX3ZiaW9zX3NtdV9lbmFibGVfcG1lX3dhKGNsa19tZ3IpOwp9Cgp2b2lkIHJuX2luaXRfY2xv
Y2tzKHN0cnVjdCBjbGtfbWdyICpjbGtfbWdyKQp7CiBtZW1zZXQoJihjbGtfbWdyLT5jbGtzKSwg
MCwgc2l6ZW9mKHN0cnVjdCBkY19jbG9ja3MpKTsKCiBjbGtfbWdyLT5jbGtzLnBfc3RhdGVfY2hh
bmdlX3N1cHBvcnQgPSB0cnVlOwogY2xrX21nci0+Y2xrcy5wcmV2X3Bfc3RhdGVfY2hhbmdlX3N1
cHBvcnQgPSB0cnVlOwogY2xrX21nci0+Y2xrcy5wd3Jfc3RhdGUgPSBEQ05fUFdSX1NUQVRFX1VO
S05PV047Cn0KCnZvaWQgYnVpbGRfd2F0ZXJtYXJrX3JhbmdlcyhzdHJ1Y3QgY2xrX2J3X3BhcmFt
cyAqYndfcGFyYW1zLCBzdHJ1Y3QgcHBfc211X3dtX3JhbmdlX3NldHMgKnJhbmdlcykKewogaW50
IGksIG51bV92YWxpZF9zZXRzOwoKIG51bV92YWxpZF9zZXRzID0gMDsKCiBmb3IgKGkgPSAwOyBp
IDwgNDsgaSsrKSB7CgogIGlmICghYndfcGFyYW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlk
KQogICBjb250aW51ZTsKCiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10u
d21faW5zdCA9IGJ3X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0OwogIHJhbmdl
cy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLndtX3R5cGUgPSBid19wYXJhbXMtPndt
X3RhYmxlLmVudHJpZXNbaV0ud21fdHlwZTsKCiAgcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1f
dmFsaWRfc2V0c10ubWluX2ZpbGxfY2xrX21oeiA9IDB4MDsKICByYW5nZXMtPnJlYWRlcl93bV9z
ZXRzW251bV92YWxpZF9zZXRzXS5tYXhfZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwoKCiAgaWYgKHJh
bmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLndtX3R5cGUgPT0gV01fVFlQRV9Q
U1RBVEVfQ0hHKSB7CiAgIGlmIChpID09IDApCiAgICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251
bV92YWxpZF9zZXRzXS5taW5fZHJhaW5fY2xrX21oeiA9IDA7CiAgIGVsc2UgewoKICAgIHJhbmdl
cy0+cmVhZGVyX3dtX3NldHNbbnVtX3ZhbGlkX3NldHNdLm1pbl9kcmFpbl9jbGtfbWh6ID0gYndf
cGFyYW1zLT5jbGtfdGFibGUuZW50cmllc1tpIC0gMV0uZGNmY2xrX21oeiArIDE7CiAgIH0KICAg
cmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tudW1fdmFsaWRfc2V0c10ubWF4X2RyYWluX2Nsa19taHog
PSBid19wYXJhbXMtPmNsa190YWJsZS5lbnRyaWVzW2ldLmRjZmNsa19taHo7CgogIH0gZWxzZSB7
CgogICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5taW5fZmlsbF9jbGtf
bWh6ID0gMHgwOwogICByYW5nZXMtPnJlYWRlcl93bV9zZXRzW251bV92YWxpZF9zZXRzXS5tYXhf
ZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwoKCiAgIHJhbmdlcy0+cmVhZGVyX3dtX3NldHNbbnVtX3Zh
bGlkX3NldHMgLSAxXS5tYXhfZmlsbF9jbGtfbWh6ID0gMHhGRkZGOwogIH0KICBudW1fdmFsaWRf
c2V0cysrOwogfQoKICh7IGludCBfX3JldF93YXJuX29uID0gISEoIShudW1fdmFsaWRfc2V0cyAh
PSAwKSk7IGlmIChfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBk
byB7IGFzbSBfX2lubGluZSB2b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIg
Ii5wdXNoc2VjdGlvbiBfX2J1Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIg
IiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAi
IC0gMmIiICJcdCMgYnVnX2VudHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50
cnk6OmxpbmVcbiIgIlx0LndvcmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9y
ZyAyYislYzNcbiIgIi5wb3BzZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9h
bWRncHUvLi4vZGlzcGxheS9kYy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDQ0
NiksICJpIiAoKDEgPDwgMCl8KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19l
bnRyeSkpKTsgfSB3aGlsZSAoMCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNl
Y3Rpb24gLmRpc2NhcmQucmVhY2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3Bz
ZWN0aW9uXG5cdCIgOiA6ICJpIiAoNDgpKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhw
ZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKTsgfSk7CiByYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0
cyA9IG51bV92YWxpZF9zZXRzOwoKCiByYW5nZXMtPnJlYWRlcl93bV9zZXRzWzBdLm1pbl9kcmFp
bl9jbGtfbWh6ID0gMHgwOwogcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1swXS5taW5fZmlsbF9jbGtf
bWh6ID0gMHgwOwogcmFuZ2VzLT5yZWFkZXJfd21fc2V0c1tyYW5nZXMtPm51bV9yZWFkZXJfd21f
c2V0cyAtIDFdLm1heF9kcmFpbl9jbGtfbWh6ID0gMHhGRkZGOwogcmFuZ2VzLT5yZWFkZXJfd21f
c2V0c1tyYW5nZXMtPm51bV9yZWFkZXJfd21fc2V0cyAtIDFdLm1heF9maWxsX2Nsa19taHogPSAw
eEZGRkY7CgoKIHJhbmdlcy0+bnVtX3dyaXRlcl93bV9zZXRzID0gMTsKIHJhbmdlcy0+d3JpdGVy
X3dtX3NldHNbMF0ud21faW5zdCA9IDA7CiByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9m
aWxsX2Nsa19taHogPSAweDA7CiByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1heF9maWxsX2Ns
a19taHogPSAweEZGRkY7CiByYW5nZXMtPndyaXRlcl93bV9zZXRzWzBdLm1pbl9kcmFpbl9jbGtf
bWh6ID0gMHgwOwogcmFuZ2VzLT53cml0ZXJfd21fc2V0c1swXS5tYXhfZHJhaW5fY2xrX21oeiA9
IDB4RkZGRjsKCn0KCnN0YXRpYyB2b2lkIHJuX25vdGlmeV93bV9yYW5nZXMoc3RydWN0IGNsa19t
Z3IgKmNsa19tZ3JfYmFzZSkKewogc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0gJmNs
a19tZ3JfYmFzZS0+Y3R4LT5kYy0+ZGVidWc7CiBzdHJ1Y3QgcHBfc211X3dtX3JhbmdlX3NldHMg
cmFuZ2VzID0gezB9Owogc3RydWN0IGNsa19tZ3JfaW50ZXJuYWwgKmNsa19tZ3IgPSAoeyB2b2lk
ICpfX21wdHIgPSAodm9pZCAqKShjbGtfbWdyX2Jhc2UpOyBkbyB7IGV4dGVybiB2b2lkIF9fY29t
cGlsZXRpbWVfYXNzZXJ0XzQ2OSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18oInBvaW50
ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb250YWluZXJfb2YoKSIpKSk7IGlmICghKCEoIV9fYnVpbHRp
bl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKCooY2xrX21ncl9iYXNlKSksIHR5cGVvZigoKHN0
cnVjdCBjbGtfbWdyX2ludGVybmFsICopMCktPmJhc2UpKSAmJiAhX19idWlsdGluX3R5cGVzX2Nv
bXBhdGlibGVfcCh0eXBlb2YoKihjbGtfbWdyX2Jhc2UpKSwgdHlwZW9mKHZvaWQpKSkpKSBfX2Nv
bXBpbGV0aW1lX2Fzc2VydF80NjkoKTsgfSB3aGlsZSAoMCk7ICgoc3RydWN0IGNsa19tZ3JfaW50
ZXJuYWwgKikoX19tcHRyIC0gX19idWlsdGluX29mZnNldG9mKHN0cnVjdCBjbGtfbWdyX2ludGVy
bmFsLCBiYXNlKSkpOyB9KTsKIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSA9IGNsa19tZ3It
PnBwX3NtdTsKCiBpZiAoIWRlYnVnLT5kaXNhYmxlX3BwbGliX3dtX3JhbmdlKSB7CiAgYnVpbGRf
d2F0ZXJtYXJrX3JhbmdlcyhjbGtfbWdyX2Jhc2UtPmJ3X3BhcmFtcywgJnJhbmdlcyk7CgoKICBp
ZiAocHBfc211ICYmIHBwX3NtdS0+cm5fZnVuY3Muc2V0X3dtX3JhbmdlcykKICAgcHBfc211LT5y
bl9mdW5jcy5zZXRfd21fcmFuZ2VzKCZwcF9zbXUtPnJuX2Z1bmNzLnBwX3NtdSwgJnJhbmdlcyk7
CiB9Cgp9CgpzdGF0aWMgYm9vbCBybl9hcmVfY2xvY2tfc3RhdGVzX2VxdWFsKHN0cnVjdCBkY19j
bG9ja3MgKmEsCiAgc3RydWN0IGRjX2Nsb2NrcyAqYikKewogaWYgKGEtPmRpc3BjbGtfa2h6ICE9
IGItPmRpc3BjbGtfa2h6KQogIHJldHVybiBmYWxzZTsKIGVsc2UgaWYgKGEtPmRwcGNsa19raHog
IT0gYi0+ZHBwY2xrX2toeikKICByZXR1cm4gZmFsc2U7CiBlbHNlIGlmIChhLT5kY2ZjbGtfa2h6
ICE9IGItPmRjZmNsa19raHopCiAgcmV0dXJuIGZhbHNlOwogZWxzZSBpZiAoYS0+ZGNmY2xrX2Rl
ZXBfc2xlZXBfa2h6ICE9IGItPmRjZmNsa19kZWVwX3NsZWVwX2toeikKICByZXR1cm4gZmFsc2U7
CgogcmV0dXJuIHRydWU7Cn0KCgpzdGF0aWMgc3RydWN0IGNsa19tZ3JfZnVuY3MgZGNuMjFfZnVu
Y3MgPSB7CiAuZ2V0X2RwX3JlZl9jbGtfZnJlcXVlbmN5ID0gZGNlMTJfZ2V0X2RwX3JlZl9mcmVx
X2toeiwKIC51cGRhdGVfY2xvY2tzID0gcm5fdXBkYXRlX2Nsb2NrcywKIC5pbml0X2Nsb2NrcyA9
IHJuX2luaXRfY2xvY2tzLAogLmVuYWJsZV9wbWVfd2EgPSBybl9lbmFibGVfcG1lX3dhLAogLmFy
ZV9jbG9ja19zdGF0ZXNfZXF1YWwgPSBybl9hcmVfY2xvY2tfc3RhdGVzX2VxdWFsLAogLm5vdGlm
eV93bV9yYW5nZXMgPSBybl9ub3RpZnlfd21fcmFuZ2VzCn07CgpzdHJ1Y3QgY2xrX2J3X3BhcmFt
cyBybl9id19wYXJhbXMgPSB7CiAudnJhbV90eXBlID0gRGRyNE1lbVR5cGUsCiAubnVtX2NoYW5u
ZWxzID0gMSwKIC5jbGtfdGFibGUgPSB7CiAgLmVudHJpZXMgPSB7CiAgIHsKICAgIC52b2x0YWdl
ID0gMCwKICAgIC5kY2ZjbGtfbWh6ID0gNDAwLAogICAgLmZjbGtfbWh6ID0gNDAwLAogICAgLm1l
bWNsa19taHogPSA4MDAsCiAgICAuc29jY2xrX21oeiA9IDAsCiAgIH0sCiAgIHsKICAgIC52b2x0
YWdlID0gMCwKICAgIC5kY2ZjbGtfbWh6ID0gNDgzLAogICAgLmZjbGtfbWh6ID0gODAwLAogICAg
Lm1lbWNsa19taHogPSAxNjAwLAogICAgLnNvY2Nsa19taHogPSAwLAogICB9LAogICB7CiAgICAu
dm9sdGFnZSA9IDAsCiAgICAuZGNmY2xrX21oeiA9IDYwMiwKICAgIC5mY2xrX21oeiA9IDEwNjcs
CiAgICAubWVtY2xrX21oeiA9IDEwNjcsCiAgICAuc29jY2xrX21oeiA9IDAsCiAgIH0sCiAgIHsK
ICAgIC52b2x0YWdlID0gMCwKICAgIC5kY2ZjbGtfbWh6ID0gNzM4LAogICAgLmZjbGtfbWh6ID0g
MTMzMywKICAgIC5tZW1jbGtfbWh6ID0gMTYwMCwKICAgIC5zb2NjbGtfbWh6ID0gMCwKICAgfSwK
ICB9LAoKICAubnVtX2VudHJpZXMgPSA0LAogfSwKCn07CgpzdHJ1Y3Qgd21fdGFibGUgZGRyNF93
bV90YWJsZSA9IHsKIC5lbnRyaWVzID0gewogIHsKICAgLndtX2luc3QgPSAwLAogICAud21fdHlw
ZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKICAgLnBzdGF0ZV9sYXRlbmN5X3VzID0gMTEuNzIsCiAg
IC5zcl9leGl0X3RpbWVfdXMgPSA2LjA5LAogICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMg
PSA3LjE0LAogICAudmFsaWQgPSB0cnVlLAogIH0sCiAgewogICAud21faW5zdCA9IDEsCiAgIC53
bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHLAogICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS43
MiwKICAgLnNyX2V4aXRfdGltZV91cyA9IDEwLjEyLAogICAuc3JfZW50ZXJfcGx1c19leGl0X3Rp
bWVfdXMgPSAxMS40OCwKICAgLnZhbGlkID0gdHJ1ZSwKICB9LAogIHsKICAgLndtX2luc3QgPSAy
LAogICAud21fdHlwZSA9IFdNX1RZUEVfUFNUQVRFX0NIRywKICAgLnBzdGF0ZV9sYXRlbmN5X3Vz
ID0gMTEuNzIsCiAgIC5zcl9leGl0X3RpbWVfdXMgPSAxMC4xMiwKICAgLnNyX2VudGVyX3BsdXNf
ZXhpdF90aW1lX3VzID0gMTEuNDgsCiAgIC52YWxpZCA9IHRydWUsCiAgfSwKICB7CiAgIC53bV9p
bnN0ID0gMywKICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcsCiAgIC5wc3RhdGVfbGF0
ZW5jeV91cyA9IDExLjcyLAogICAuc3JfZXhpdF90aW1lX3VzID0gMTAuMTIsCiAgIC5zcl9lbnRl
cl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjQ4LAogICAudmFsaWQgPSB0cnVlLAogIH0sCiB9Cn07
CgpzdHJ1Y3Qgd21fdGFibGUgbHBkZHI0X3dtX3RhYmxlID0gewogLmVudHJpZXMgPSB7CiAgewog
ICAud21faW5zdCA9IDAsCiAgIC53bV90eXBlID0gV01fVFlQRV9QU1RBVEVfQ0hHLAogICAucHN0
YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKICAgLnNyX2V4aXRfdGltZV91cyA9IDUuMzIsCiAg
IC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDYuMzgsCiAgIC52YWxpZCA9IHRydWUsCiAg
fSwKICB7CiAgIC53bV9pbnN0ID0gMSwKICAgLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEcs
CiAgIC5wc3RhdGVfbGF0ZW5jeV91cyA9IDExLjY1MzMzLAogICAuc3JfZXhpdF90aW1lX3VzID0g
OS44MiwKICAgLnNyX2VudGVyX3BsdXNfZXhpdF90aW1lX3VzID0gMTEuMTk2LAogICAudmFsaWQg
PSB0cnVlLAogIH0sCiAgewogICAud21faW5zdCA9IDIsCiAgIC53bV90eXBlID0gV01fVFlQRV9Q
U1RBVEVfQ0hHLAogICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKICAgLnNyX2V4aXRf
dGltZV91cyA9IDkuODksCiAgIC5zcl9lbnRlcl9wbHVzX2V4aXRfdGltZV91cyA9IDExLjI0LAog
ICAudmFsaWQgPSB0cnVlLAogIH0sCiAgewogICAud21faW5zdCA9IDMsCiAgIC53bV90eXBlID0g
V01fVFlQRV9QU1RBVEVfQ0hHLAogICAucHN0YXRlX2xhdGVuY3lfdXMgPSAxMS42NTMzMywKICAg
LnNyX2V4aXRfdGltZV91cyA9IDkuNzQ4LAogICAuc3JfZW50ZXJfcGx1c19leGl0X3RpbWVfdXMg
PSAxMS4xMDIsCiAgIC52YWxpZCA9IHRydWUsCiAgfSwKIH0KfTsKCgpzdGF0aWMgdW5zaWduZWQg
aW50IGZpbmRfZGNmY2xrX2Zvcl92b2x0YWdlKHN0cnVjdCBkcG1fY2xvY2tzICpjbG9ja190YWJs
ZSwgdW5zaWduZWQgaW50IHZvbHRhZ2UpCnsKIGludCBpOwoKIGZvciAoaSA9IDA7IGkgPCA4OyBp
KyspIHsKICBpZiAoY2xvY2tfdGFibGUtPkRjZkNsb2Nrc1tpXS5Wb2wgPT0gdm9sdGFnZSkKICAg
cmV0dXJuIGNsb2NrX3RhYmxlLT5EY2ZDbG9ja3NbaV0uRnJlcTsKIH0KCiAoeyBpbnQgX19yZXRf
d2Fybl9vbiA9ICEhKCEoMCkpOyBpZiAoX19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29u
KSwgMCkpIGRvIHsgZG8geyBhc20gX19pbmxpbmUgdm9sYXRpbGUoIjE6XHQiICIuYnl0ZSAweDBm
LCAweDBiIiAiXG4iICIucHVzaHNlY3Rpb24gX19idWdfdGFibGUsXCJhd1wiXG4iICIyOlx0IiAi
LmxvbmcgIiAiMWIiICIgLSAyYiIgIlx0IyBidWdfZW50cnk6OmJ1Z19hZGRyXG4iICJcdCIgIi5s
b25nICIgIiVjMCIgIiAtIDJiIiAiXHQjIGJ1Z19lbnRyeTo6ZmlsZVxuIiAiXHQud29yZCAlYzEi
ICJcdCMgYnVnX2VudHJ5OjpsaW5lXG4iICJcdC53b3JkICVjMiIgIlx0IyBidWdfZW50cnk6OmZs
YWdzXG4iICJcdC5vcmcgMmIrJWMzXG4iICIucG9wc2VjdGlvbiIgOiA6ICJpIiAoImRyaXZlcnMv
Z3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvY2xrX21nci9kY24yMS9ybl9jbGtfbWdy
LmMiKSwgImkiICg2MzEpLCAiaSIgKCgxIDw8IDApfCgoKDkpIDw8IDgpKSksICJpIiAoc2l6ZW9m
KHN0cnVjdCBidWdfZW50cnkpKSk7IH0gd2hpbGUgKDApOyAoeyBhc20gdm9sYXRpbGUoIiVjMDpc
blx0IiAiLnB1c2hzZWN0aW9uIC5kaXNjYXJkLnJlYWNoYWJsZVxuXHQiICIubG9uZyAlYzBiIC0g
LlxuXHQiICIucG9wc2VjdGlvblxuXHQiIDogOiAiaSIgKDQ5KSk7IH0pOyB9IHdoaWxlICgwKTsg
X19idWlsdGluX2V4cGVjdCghIShfX3JldF93YXJuX29uKSwgMCk7IH0pOwogcmV0dXJuIDA7Cn0K
CnN0YXRpYyB2b2lkIHJuX2Nsa19tZ3JfaGVscGVyX3BvcHVsYXRlX2J3X3BhcmFtcyhzdHJ1Y3Qg
Y2xrX2J3X3BhcmFtcyAqYndfcGFyYW1zLCBzdHJ1Y3QgZHBtX2Nsb2NrcyAqY2xvY2tfdGFibGUs
IHN0cnVjdCBpbnRlZ3JhdGVkX2luZm8gKmJpb3NfaW5mbykKewogaW50IGksIGogPSAwOwoKIGog
PSAtMTsKCiAoeyBpbnQgX19yZXRfd2Fybl9vbiA9ICEhKCEoNCA8PSA4KSk7IGlmIChfX2J1aWx0
aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5fb24pLCAwKSkgZG8geyBkbyB7IGFzbSBfX2lubGluZSB2
b2xhdGlsZSgiMTpcdCIgIi5ieXRlIDB4MGYsIDB4MGIiICJcbiIgIi5wdXNoc2VjdGlvbiBfX2J1
Z190YWJsZSxcImF3XCJcbiIgIjI6XHQiICIubG9uZyAiICIxYiIgIiAtIDJiIiAiXHQjIGJ1Z19l
bnRyeTo6YnVnX2FkZHJcbiIgIlx0IiAiLmxvbmcgIiAiJWMwIiAiIC0gMmIiICJcdCMgYnVnX2Vu
dHJ5OjpmaWxlXG4iICJcdC53b3JkICVjMSIgIlx0IyBidWdfZW50cnk6OmxpbmVcbiIgIlx0Lndv
cmQgJWMyIiAiXHQjIGJ1Z19lbnRyeTo6ZmxhZ3NcbiIgIlx0Lm9yZyAyYislYzNcbiIgIi5wb3Bz
ZWN0aW9uIiA6IDogImkiICgiZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9k
Yy9jbGtfbWdyL2RjbjIxL3JuX2Nsa19tZ3IuYyIpLCAiaSIgKDY0MSksICJpIiAoKDEgPDwgMCl8
KCgoOSkgPDwgOCkpKSwgImkiIChzaXplb2Yoc3RydWN0IGJ1Z19lbnRyeSkpKTsgfSB3aGlsZSAo
MCk7ICh7IGFzbSB2b2xhdGlsZSgiJWMwOlxuXHQiICIucHVzaHNlY3Rpb24gLmRpc2NhcmQucmVh
Y2hhYmxlXG5cdCIgIi5sb25nICVjMGIgLSAuXG5cdCIgIi5wb3BzZWN0aW9uXG5cdCIgOiA6ICJp
IiAoNTApKTsgfSk7IH0gd2hpbGUgKDApOyBfX2J1aWx0aW5fZXhwZWN0KCEhKF9fcmV0X3dhcm5f
b24pLCAwKTsgfSk7CgoKCiBmb3IgKGkgPSA0IC0gMTsgaSA+PSAwOyBpLS0pIHsKICBpZiAoY2xv
Y2tfdGFibGUtPkZDbG9ja3NbaV0uRnJlcSAhPSAwKSB7CiAgIGogPSBpOwogICBicmVhazsKICB9
CiB9CgogaWYgKGogPT0gLTEpIHsKCiAgKHsgaW50IF9fcmV0X3dhcm5fb24gPSAhISghKDApKTsg
aWYgKF9fYnVpbHRpbl9leHBlY3QoISEoX19yZXRfd2Fybl9vbiksIDApKSBkbyB7IGRvIHsgYXNt
IF9faW5saW5lIHZvbGF0aWxlKCIxOlx0IiAiLmJ5dGUgMHgwZiwgMHgwYiIgIlxuIiAiLnB1c2hz
ZWN0aW9uIF9fYnVnX3RhYmxlLFwiYXdcIlxuIiAiMjpcdCIgIi5sb25nICIgIjFiIiAiIC0gMmIi
ICJcdCMgYnVnX2VudHJ5OjpidWdfYWRkclxuIiAiXHQiICIubG9uZyAiICIlYzAiICIgLSAyYiIg
Ilx0IyBidWdfZW50cnk6OmZpbGVcbiIgIlx0LndvcmQgJWMxIiAiXHQjIGJ1Z19lbnRyeTo6bGlu
ZVxuIiAiXHQud29yZCAlYzIiICJcdCMgYnVnX2VudHJ5OjpmbGFnc1xuIiAiXHQub3JnIDJiKyVj
M1xuIiAiLnBvcHNlY3Rpb24iIDogOiAiaSIgKCJkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8u
Li9kaXNwbGF5L2RjL2Nsa19tZ3IvZGNuMjEvcm5fY2xrX21nci5jIiksICJpIiAoNjU0KSwgImki
ICgoMSA8PCAwKXwoKCg5KSA8PCA4KSkpLCAiaSIgKHNpemVvZihzdHJ1Y3QgYnVnX2VudHJ5KSkp
OyB9IHdoaWxlICgwKTsgKHsgYXNtIHZvbGF0aWxlKCIlYzA6XG5cdCIgIi5wdXNoc2VjdGlvbiAu
ZGlzY2FyZC5yZWFjaGFibGVcblx0IiAiLmxvbmcgJWMwYiAtIC5cblx0IiAiLnBvcHNlY3Rpb25c
blx0IiA6IDogImkiICg1MSkpOyB9KTsgfSB3aGlsZSAoMCk7IF9fYnVpbHRpbl9leHBlY3QoISEo
X19yZXRfd2Fybl9vbiksIDApOyB9KTsKICByZXR1cm47CiB9CgogYndfcGFyYW1zLT5jbGtfdGFi
bGUubnVtX2VudHJpZXMgPSBqICsgMTsKCiBmb3IgKGkgPSAwOyBpIDwgYndfcGFyYW1zLT5jbGtf
dGFibGUubnVtX2VudHJpZXM7IGkrKywgai0tKSB7CiAgYndfcGFyYW1zLT5jbGtfdGFibGUuZW50
cmllc1tpXS5mY2xrX21oeiA9IGNsb2NrX3RhYmxlLT5GQ2xvY2tzW2pdLkZyZXE7CiAgYndfcGFy
YW1zLT5jbGtfdGFibGUuZW50cmllc1tpXS5tZW1jbGtfbWh6ID0gY2xvY2tfdGFibGUtPk1lbUNs
b2Nrc1tqXS5GcmVxOwogIGJ3X3BhcmFtcy0+Y2xrX3RhYmxlLmVudHJpZXNbaV0udm9sdGFnZSA9
IGNsb2NrX3RhYmxlLT5GQ2xvY2tzW2pdLlZvbDsKICBid19wYXJhbXMtPmNsa190YWJsZS5lbnRy
aWVzW2ldLmRjZmNsa19taHogPSBmaW5kX2RjZmNsa19mb3Jfdm9sdGFnZShjbG9ja190YWJsZSwg
Y2xvY2tfdGFibGUtPkZDbG9ja3Nbal0uVm9sKTsKIH0KCiBid19wYXJhbXMtPnZyYW1fdHlwZSA9
IGJpb3NfaW5mby0+bWVtb3J5X3R5cGU7CiBid19wYXJhbXMtPm51bV9jaGFubmVscyA9IGJpb3Nf
aW5mby0+bWFfY2hhbm5lbF9udW1iZXI7CgogZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewogIGJ3
X3BhcmFtcy0+d21fdGFibGUuZW50cmllc1tpXS53bV9pbnN0ID0gaTsKCiAgaWYgKGkgPj0gYndf
cGFyYW1zLT5jbGtfdGFibGUubnVtX2VudHJpZXMpIHsKICAgYndfcGFyYW1zLT53bV90YWJsZS5l
bnRyaWVzW2ldLnZhbGlkID0gZmFsc2U7CiAgIGNvbnRpbnVlOwogIH0KCiAgYndfcGFyYW1zLT53
bV90YWJsZS5lbnRyaWVzW2ldLndtX3R5cGUgPSBXTV9UWVBFX1BTVEFURV9DSEc7CiAgYndfcGFy
YW1zLT53bV90YWJsZS5lbnRyaWVzW2ldLnZhbGlkID0gdHJ1ZTsKIH0KCiBpZiAoYndfcGFyYW1z
LT52cmFtX3R5cGUgPT0gTHBEZHI0TWVtVHlwZSkgewoKCgogIGJ3X3BhcmFtcy0+d21fdGFibGUu
ZW50cmllc1szXS5wc3RhdGVfbGF0ZW5jeV91cyA9IDQuOTc3OwogIGJ3X3BhcmFtcy0+d21fdGFi
bGUuZW50cmllc1szXS53bV9pbnN0ID0gMzsKICBid19wYXJhbXMtPndtX3RhYmxlLmVudHJpZXNb
M10ud21fdHlwZSA9IFdNX1RZUEVfUkVUUkFJTklORzsKICBid19wYXJhbXMtPndtX3RhYmxlLmVu
dHJpZXNbM10udmFsaWQgPSB0cnVlOwogfQoKfQoKdm9pZCBybl9jbGtfbWdyX2NvbnN0cnVjdCgK
ICBzdHJ1Y3QgZGNfY29udGV4dCAqY3R4LAogIHN0cnVjdCBjbGtfbWdyX2ludGVybmFsICpjbGtf
bWdyLAogIHN0cnVjdCBwcF9zbXVfZnVuY3MgKnBwX3NtdSwKICBzdHJ1Y3QgZGNjZyAqZGNjZykK
ewogc3RydWN0IGRjX2RlYnVnX29wdGlvbnMgKmRlYnVnID0gJmN0eC0+ZGMtPmRlYnVnOwogc3Ry
dWN0IGRwbV9jbG9ja3MgY2xvY2tfdGFibGUgPSB7IDAgfTsKCiBjbGtfbWdyLT5iYXNlLmN0eCA9
IGN0eDsKIGNsa19tZ3ItPmJhc2UuZnVuY3MgPSAmZGNuMjFfZnVuY3M7CgogY2xrX21nci0+cHBf
c211ID0gcHBfc211OwoKIGNsa19tZ3ItPmRjY2cgPSBkY2NnOwogY2xrX21nci0+ZGZzX2J5cGFz
c19kaXNwX2NsayA9IDA7CgogY2xrX21nci0+ZHByZWZjbGtfc3NfcGVyY2VudGFnZSA9IDA7CiBj
bGtfbWdyLT5kcHJlZmNsa19zc19kaXZpZGVyID0gMTAwMDsKIGNsa19tZ3ItPnNzX29uX2RwcmVm
Y2xrID0gZmFsc2U7CiBjbGtfbWdyLT5kZnNfcmVmX2ZyZXFfa2h6ID0gNDgwMDA7CgogY2xrX21n
ci0+c211X3ZlciA9IHJuX3ZiaW9zX3NtdV9nZXRfc211X3ZlcnNpb24oY2xrX21ncik7CgogaWYg
KChjdHgtPmRjZV9lbnZpcm9ubWVudCA9PSBEQ0VfRU5WX0ZQR0FfTUFYSU1VUykpIHsKICBkY24y
MV9mdW5jcy51cGRhdGVfY2xvY2tzID0gZGNuMl91cGRhdGVfY2xvY2tzX2ZwZ2E7CiAgY2xrX21n
ci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9IDM2MDAwMDA7CiB9IGVsc2UgewogIHN0cnVj
dCBjbGtfbG9nX2luZm8gbG9nX2luZm8gPSB7MH07CgoKICBjbGtfbWdyLT5iYXNlLmRlbnRpc3Rf
dmNvX2ZyZXFfa2h6ID0gZ2V0X3Zjb19mcmVxdWVuY3lfZnJvbV9yZWcoY2xrX21ncik7CgoKICBp
ZiAoY2xrX21nci0+YmFzZS5kZW50aXN0X3Zjb19mcmVxX2toeiA9PSAwKQogICBjbGtfbWdyLT5i
YXNlLmRlbnRpc3RfdmNvX2ZyZXFfa2h6ID0gMzYwMDAwMDsKCiAgaWYgKGN0eC0+ZGNfYmlvcy0+
aW50ZWdyYXRlZF9pbmZvLT5tZW1vcnlfdHlwZSA9PSBMcERkcjRNZW1UeXBlKSB7CiAgIHJuX2J3
X3BhcmFtcy53bV90YWJsZSA9IGxwZGRyNF93bV90YWJsZTsKICB9IGVsc2UgewogICBybl9id19w
YXJhbXMud21fdGFibGUgPSBkZHI0X3dtX3RhYmxlOwogIH0KCiAgcm5fZHVtcF9jbGtfcmVnaXN0
ZXJzKCZjbGtfbWdyLT5iYXNlLmJvb3Rfc25hcHNob3QsICZjbGtfbWdyLT5iYXNlLCAmbG9nX2lu
Zm8pOwogfQoKIGNsa19tZ3ItPmJhc2UuZHByZWZjbGtfa2h6ID0gNjAwMDAwOwogZGNlX2Nsb2Nr
X3JlYWRfc3NfaW5mbyhjbGtfbWdyKTsKCgogY2xrX21nci0+YmFzZS5id19wYXJhbXMgPSAmcm5f
YndfcGFyYW1zOwoKIGlmIChwcF9zbXUgJiYgcHBfc211LT5ybl9mdW5jcy5nZXRfZHBtX2Nsb2Nr
X3RhYmxlKSB7CiAgcHBfc211LT5ybl9mdW5jcy5nZXRfZHBtX2Nsb2NrX3RhYmxlKCZwcF9zbXUt
PnJuX2Z1bmNzLnBwX3NtdSwgJmNsb2NrX3RhYmxlKTsKICBpZiAoY3R4LT5kY19iaW9zICYmIGN0
eC0+ZGNfYmlvcy0+aW50ZWdyYXRlZF9pbmZvKSB7CiAgIHJuX2Nsa19tZ3JfaGVscGVyX3BvcHVs
YXRlX2J3X3BhcmFtcyAoY2xrX21nci0+YmFzZS5id19wYXJhbXMsICZjbG9ja190YWJsZSwgY3R4
LT5kY19iaW9zLT5pbnRlZ3JhdGVkX2luZm8pOwogIH0KIH0KCiBpZiAoIShjdHgtPmRjZV9lbnZp
cm9ubWVudCA9PSBEQ0VfRU5WX0ZQR0FfTUFYSU1VUykgJiYgY2xrX21nci0+c211X3ZlciA+PSAw
eDAwMzcxNTAwKSB7CgogIHJuX3ZiaW9zX3NtdV9lbmFibGVfNDhtaHpfdG1kcF9yZWZjbGtfcHdy
ZHduKGNsa19tZ3IsICFkZWJ1Zy0+ZGlzYWJsZV80OG1oel9wd3Jkd24pOwogfQp9Cg==

--===============2530410277144048522==--

Acknowledgement sent to Arthur Marsh <[email protected]>:
New bug report received and forwarded. Copy sent to [email protected]. Full text available.
Report forwarded to [email protected], [email protected]:
bug#417; Package gcc-10. Full text available.

Devuan BTS -- Powered by Debian bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.

Devuan Bugs Owner <[email protected]>.
Last modified: Sat, 18 Jan 2025 04:39:02 UTC