From xen-announce-bounces@lists.xenproject.org Tue Sep 09 12:00:55 2025
Return-path: <xen-announce-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Sep 2025 12:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1116446.1462814 (Exim 4.92)
	(envelope-from <xen-announce-bounces@lists.xenproject.org>)
	id 1uvx1d-0005g4-GZ; Tue, 09 Sep 2025 12:00:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1116446.1462814; Tue, 09 Sep 2025 12:00:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-announce-bounces@lists.xenproject.org>)
	id 1uvx1d-0005f1-Ah; Tue, 09 Sep 2025 12:00:41 +0000
Received: by outflank-mailman (input) for mailman id 1116446;
 Tue, 09 Sep 2025 12:00:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEb6=3U=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1uvx1b-0004Tc-0a
 for xen-announce@lists.xen.org; Tue, 09 Sep 2025 12:00:39 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95a14277-8d74-11f0-9809-7dc792cee155;
 Tue, 09 Sep 2025 14:00:32 +0200 (CEST)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1uvx1O-001exT-1m;
 Tue, 09 Sep 2025 12:00:26 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1uvx1O-001SVn-1d;
 Tue, 09 Sep 2025 12:00:26 +0000
X-BeenThere: xen-announce@lists.xenproject.org
List-Id: "Xen announcements \(low volume\)" <xen-announce.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-announce>, 
 <mailto:xen-announce-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-announce@lists.xenproject.org>
List-Help: <mailto:xen-announce-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-announce>, 
 <mailto:xen-announce-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-announce-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-announce" <xen-announce-bounces@lists.xenproject.org>
X-Inumbo-ID: 95a14277-8d74-11f0-9809-7dc792cee155
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 473 v2 (CVE-2025-58144,CVE-2025-58145) -
 Arm issues with page refcounting
Message-Id: <E1uvx1O-001SVn-1d@xenbits.xenproject.org>
Date: Tue, 09 Sep 2025 12:00:26 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

     Xen Security Advisory CVE-2025-58144,CVE-2025-58145 / XSA-473
                               version 2

                   Arm issues with page refcounting

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

There are two issues related to the mapping of pages belonging to other
domains: For one, an assertion is wrong there, where the case actually
needs handling.  A NULL pointer de-reference could result on a release
build.  This is CVE-2025-58144.

And then the P2M lock isn't held until a page reference was actually
obtained (or the attempt to do so has failed).  Otherwise the page can
not only change type, but even ownership in between, thus allowing
domain boundaries to be violated.  This is CVE-2025-58145.

IMPACT
======

An unprivileged guest can cause a hypervisor crash, causing a Denial of
Service (DoS) of the entire host.  Privilege escalation and information
leaks cannot be ruled out.

VULNERABLE SYSTEMS
==================

Xen versions 4.12 and onwards are vulnerable.  Xen versions 4.11 and
earlier are not vulnerable.

Only Arm systems are affected.  x86 systems are not affected.

MITIGATION
==========

There is no known mitigation.

CREDITS
=======

This issue was discovered by Jan Beulich of SUSE.

RESOLUTION
==========

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa473-?.patch           xen-unstable - Xen 4.19.x
xsa473-4.18-?.patch      Xen 4.18.x - Xen 4.17.x

$ sha256sum xsa473*
e70f71258f1998eddafcdb5f4cb46d98e9dedc529f102b85dfb4e5310faf48eb  xsa473-1.patch
a501bde6ffb7391387cffe74e3eb9bd5c06d70bd7695aa811d42c75d3903fa59  xsa473-2.patch
e8a27f02e57d1a8d956cca9c9ed2db90c328911ff3a9434883baf633a0f3be5c  xsa473-4.18-1.patch
b2f6f4560d6082e0fb040f7352dda8963ab2dce207efce289131c10b69ebf656  xsa473-4.18-2.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmjAFU8MHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZ/k0IAMjOW7n+dt0rgaRfwA7twgv8OLLOkuw/+DcPYuR0
tm43Y/5OtqThqmtVqOYdZNA91EQ2rIdh2hkhrCcLI1wrm6qWHvWw4ZUp5VMLyLka
u616++Uk3vlc3BrfVEVXzWgGOGYW1o7KP5njiTGcEMR/3BYC3bYBbrf7PHoDgSUR
xCmHB/tMCZ/XNkYly1oZntlQTyDjW4lnMJJMTJGXqVOviXmpGs52PRsiClk5kUuB
HU8wPkjpw2VQR43iJQWkLQykHnTGWWW/V271br1cJVDHylKaAxETBDUu44JkXTHx
voqmAG9cwm6K5Rlh6junqnfW6+UOe6Ib+FGmRXcBZ8zRAV4=
=Mloq
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa473-1.patch"
Content-Disposition: attachment; filename="xsa473-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBcm06IGZvcmVpZ24gcGFnZSBoYW5kbGluZyBpbiBwMm1fZ2V0X3BhZ2Vf
ZnJvbV9nZm4oKQoKSSBjYW4ndCBzZWUgd2hhdCB3b3VsZCBtYWtlIHRoZSAx
c3Qgb2YgdGhlIGFzc2VydGlvbnMgc2FmZTogRm9yIGV4YW1wbGUsCnRoZSBQ
Mk0gbG9jayBub3QgYmVpbmcgaGVsZCwgdGhlIGZvcmVpZ24gcGFnZSBtYXkg
ZGlzYXBwZWFyIGJlZm9yZSB3ZQpnZXQgdG8gY2FsbCBwYWdlX2dldF9vd25l
cl9hbmRfcmVmZXJlbmNlKCksIHdoaWNoIGhlbmNlIG1heSByZXR1cm4gTlVM
TC4KCkV2ZW4gdGhlIDJuZCwgd2hpY2ggYXBwZWFycyB0byBiZSBzYWZlIHNh
ZmUsIGlzIGxhY2tpbmcgcHJvcGVyIHJlbGVhc2UKYnVpbGQgZmFsbGJhY2tz
LgoKRHJvcCB0aGUgZm9ybWVyIGluIGZhdm9yIG9mIGFuIGlmKCksIGFuZCBj
b252ZXJ0IHRoZSBsYXR0ZXIgdG8gdGhlCmVxdWl2YWxlbnQgb2Ygd2hhdCB4
ODYgdXNlczogQVNTRVJUX1VOUkVBQ0hBQkxFKCkgcGx1cyBwdXR0aW5nIG9m
IHRoZQpvYnRhaW5lZCBwYWdlLgoKVGhpcyBpcyBDVkUtMjAyNS01ODE0NCAv
IHBhcnQgb2YgWFNBLTQ3My4KCkZpeGVzOiA5NDg2YThkMDdiYTggKCJ4ZW4v
YXJtOiBIYW5kbGUgcmVtb3ZlIGZvcmVpZ24gbWFwcGluZyIpClNpZ25lZC1v
ZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3
ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFtYXpvbi5jb20+CgotLS0g
YS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5j
CkBAIC03NCwxMCArNzQsMTYgQEAgc3RydWN0IHBhZ2VfaW5mbyAqcDJtX2dl
dF9wYWdlX2Zyb21fZ2ZuKAogICAgICAqLwogICAgIGlmICggcDJtX2lzX2Zv
cmVpZ24ocDJtdCkgKQogICAgIHsKLSAgICAgICAgc3RydWN0IGRvbWFpbiAq
ZmRvbSA9IHBhZ2VfZ2V0X293bmVyX2FuZF9yZWZlcmVuY2UocGFnZSk7Ci0g
ICAgICAgIEFTU0VSVChmZG9tICE9IE5VTEwpOwotICAgICAgICBBU1NFUlQo
ZmRvbSAhPSBkKTsKLSAgICAgICAgcmV0dXJuIHBhZ2U7CisgICAgICAgIGNv
bnN0IHN0cnVjdCBkb21haW4gKmZkb20gPSBwYWdlX2dldF9vd25lcl9hbmRf
cmVmZXJlbmNlKHBhZ2UpOworCisgICAgICAgIGlmICggZmRvbSApCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICggZmRvbSAhPSBkICkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcGFnZTsKKyAgICAgICAgICAgIEFTU0VSVF9VTlJF
QUNIQUJMRSgpOworICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCiAgICAgcmV0
dXJuIGdldF9wYWdlKHBhZ2UsIGQpID8gcGFnZSA6IE5VTEw7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa473-2.patch"
Content-Disposition: attachment; filename="xsa473-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBcm06IGFkanVzdCBsb2NraW5nIGluIHAybV9nZXRfcGFnZV9mcm9tX2dm
bigpCgpJbiBvcmRlciB0byBzYWZlbHkgYWNxdWlyZSBhIHJlZmVyZW5jZSBm
b3IgYSBmb3JlaWduIHBhZ2UgbWFwcGluZywgdGhlClAyTSBsb2NrIG5lZWRz
IHRvIGJlIGhlbGQgdW50aWwgd2UgaGF2ZSB0aGUgcmVmZXJlbmNlIGluIGhh
bmQgKG9yCmdldHRpbmcgb25lIGZhaWxlZCkuIE90aGVyd2lzZSB0aGUgcGFn
ZSBjYW4gY2hhbmdlIFAyTSB0eXBlIGFuZApvd25lcnNoaXAgaW4gYmV0d2Vl
bi4KClRoaXMgaXMgQ1ZFLTIwMjUtNTgxNDUgLyBwYXJ0IG9mIFhTQS00NzMu
CgpGaXhlczogOTQ4NmE4ZDA3YmE4ICgieGVuL2FybTogSGFuZGxlIHJlbW92
ZSBmb3JlaWduIG1hcHBpbmciKQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBKdWxpZW4gR3Jh
bGwgPGpncmFsbEBhbWF6b24uY29tPgoKLS0tIGEveGVuL2FyY2gvYXJtL3Ay
bS5jCisrKyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtNTMsMTggKzUzLDIy
IEBAIG1mbl90IHAybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QK
IHN0cnVjdCBwYWdlX2luZm8gKnAybV9nZXRfcGFnZV9mcm9tX2dmbihzdHJ1
Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCAqdCkKIHsKKyAgICBz
dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gcDJtX2dldF9ob3N0cDJtKGQpOwog
ICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgcDJtX3R5cGVfdCBw
Mm10OwotICAgIG1mbl90IG1mbiA9IHAybV9sb29rdXAoZCwgZ2ZuLCAmcDJt
dCk7CisgICAgbWZuX3QgbWZuOworCisgICAgcDJtX3JlYWRfbG9jayhwMm0p
OworICAgIG1mbiA9IHAybV9nZXRfZW50cnkocDJtLCBnZm4sICZwMm10LCBO
VUxMLCBOVUxMLCBOVUxMKTsKIAogICAgIGlmICggdCApCiAgICAgICAgICp0
ID0gcDJtdDsKIAotICAgIGlmICggIXAybV9pc19hbnlfcmFtKHAybXQpICkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAoICFtZm5fdmFsaWQo
bWZuKSApCisgICAgaWYgKCAhcDJtX2lzX2FueV9yYW0ocDJtdCkgfHwgIW1m
bl92YWxpZChtZm4pICkKKyAgICB7CisgICAgICAgIHAybV9yZWFkX3VubG9j
ayhwMm0pOwogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICBw
YWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKIApAQCAtNzYsNiArODAsOCBAQCBz
dHJ1Y3QgcGFnZV9pbmZvICpwMm1fZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAg
ewogICAgICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluICpmZG9tID0gcGFnZV9n
ZXRfb3duZXJfYW5kX3JlZmVyZW5jZShwYWdlKTsKIAorICAgICAgICBwMm1f
cmVhZF91bmxvY2socDJtKTsKKwogICAgICAgICBpZiAoIGZkb20gKQogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAoIGZkb20gIT0gZCApCkBAIC04Niw2
ICs5Miw4IEBAIHN0cnVjdCBwYWdlX2luZm8gKnAybV9nZXRfcGFnZV9mcm9t
X2dmbigKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisgICAgcDJt
X3JlYWRfdW5sb2NrKHAybSk7CisKICAgICByZXR1cm4gZ2V0X3BhZ2UocGFn
ZSwgZCkgPyBwYWdlIDogTlVMTDsKIH0KIAo=

--=separator
Content-Type: application/octet-stream; name="xsa473-4.18-1.patch"
Content-Disposition: attachment; filename="xsa473-4.18-1.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBcm06IGZvcmVpZ24gcGFnZSBoYW5kbGluZyBpbiBwMm1fZ2V0X3BhZ2Vf
ZnJvbV9nZm4oKQoKSSBjYW4ndCBzZWUgd2hhdCB3b3VsZCBtYWtlIHRoZSAx
c3Qgb2YgdGhlIGFzc2VydGlvbnMgc2FmZTogRm9yIGV4YW1wbGUsCnRoZSBQ
Mk0gbG9jayBub3QgYmVpbmcgaGVsZCwgdGhlIGZvcmVpZ24gcGFnZSBtYXkg
ZGlzYXBwZWFyIGJlZm9yZSB3ZQpnZXQgdG8gY2FsbCBwYWdlX2dldF9vd25l
cl9hbmRfcmVmZXJlbmNlKCksIHdoaWNoIGhlbmNlIG1heSByZXR1cm4gTlVM
TC4KCkV2ZW4gdGhlIDJuZCwgd2hpY2ggYXBwZWFycyB0byBiZSBzYWZlIHNh
ZmUsIGlzIGxhY2tpbmcgcHJvcGVyIHJlbGVhc2UKYnVpbGQgZmFsbGJhY2tz
LgoKRHJvcCB0aGUgZm9ybWVyIGluIGZhdm9yIG9mIGFuIGlmKCksIGFuZCBj
b252ZXJ0IHRoZSBsYXR0ZXIgdG8gdGhlCmVxdWl2YWxlbnQgb2Ygd2hhdCB4
ODYgdXNlczogQVNTRVJUX1VOUkVBQ0hBQkxFKCkgcGx1cyBwdXR0aW5nIG9m
IHRoZQpvYnRhaW5lZCBwYWdlLgoKVGhpcyBpcyBDVkUtMjAyNS01ODE0NCAv
IHBhcnQgb2YgWFNBLTQ3My4KCkZpeGVzOiA5NDg2YThkMDdiYTggKCJ4ZW4v
YXJtOiBIYW5kbGUgcmVtb3ZlIGZvcmVpZ24gbWFwcGluZyIpClNpZ25lZC1v
ZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3
ZWQtYnk6IEp1bGllbiBHcmFsbCA8amdyYWxsQGFtYXpvbi5jb20+CgotLS0g
YS94ZW4vYXJjaC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5j
CkBAIC02MTIsMTAgKzYxMiwxNiBAQCBzdHJ1Y3QgcGFnZV9pbmZvICpwMm1f
Z2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgICovCiAgICAgaWYgKCBwMm1faXNf
Zm9yZWlnbihwMm10KSApCiAgICAgewotICAgICAgICBzdHJ1Y3QgZG9tYWlu
ICpmZG9tID0gcGFnZV9nZXRfb3duZXJfYW5kX3JlZmVyZW5jZShwYWdlKTsK
LSAgICAgICAgQVNTRVJUKGZkb20gIT0gTlVMTCk7Ci0gICAgICAgIEFTU0VS
VChmZG9tICE9IGQpOwotICAgICAgICByZXR1cm4gcGFnZTsKKyAgICAgICAg
Y29uc3Qgc3RydWN0IGRvbWFpbiAqZmRvbSA9IHBhZ2VfZ2V0X293bmVyX2Fu
ZF9yZWZlcmVuY2UocGFnZSk7CisKKyAgICAgICAgaWYgKCBmZG9tICkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCBmZG9tICE9IGQgKQorICAgICAg
ICAgICAgICAgIHJldHVybiBwYWdlOworICAgICAgICAgICAgQVNTRVJUX1VO
UkVBQ0hBQkxFKCk7CisgICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKICAgICBy
ZXR1cm4gZ2V0X3BhZ2UocGFnZSwgZCkgPyBwYWdlIDogTlVMTDsK

--=separator
Content-Type: application/octet-stream; name="xsa473-4.18-2.patch"
Content-Disposition: attachment; filename="xsa473-4.18-2.patch"
Content-Transfer-Encoding: base64

RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0
OiBBcm06IGFkanVzdCBsb2NraW5nIGluIHAybV9nZXRfcGFnZV9mcm9tX2dm
bigpCgpJbiBvcmRlciB0byBzYWZlbHkgYWNxdWlyZSBhIHJlZmVyZW5jZSBm
b3IgYSBmb3JlaWduIHBhZ2UgbWFwcGluZywgdGhlClAyTSBsb2NrIG5lZWRz
IHRvIGJlIGhlbGQgdW50aWwgd2UgaGF2ZSB0aGUgcmVmZXJlbmNlIGluIGhh
bmQgKG9yCmdldHRpbmcgb25lIGZhaWxlZCkuIE90aGVyd2lzZSB0aGUgcGFn
ZSBjYW4gY2hhbmdlIFAyTSB0eXBlIGFuZApvd25lcnNoaXAgaW4gYmV0d2Vl
bi4KClRoaXMgaXMgQ1ZFLTIwMjUtNTgxNDUgLyBwYXJ0IG9mIFhTQS00NzMu
CgpGaXhlczogOTQ4NmE4ZDA3YmE4ICgieGVuL2FybTogSGFuZGxlIHJlbW92
ZSBmb3JlaWduIG1hcHBpbmciKQpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBKdWxpZW4gR3Jh
bGwgPGpncmFsbEBhbWF6b24uY29tPgoKLS0tIGEveGVuL2FyY2gvYXJtL3Ay
bS5jCisrKyBiL3hlbi9hcmNoL2FybS9wMm0uYwpAQCAtNTkxLDE4ICs1OTEs
MjIgQEAgbWZuX3QgcDJtX2xvb2t1cChzdHJ1Y3QgZG9tYWluICpkLCBnZm5f
dAogc3RydWN0IHBhZ2VfaW5mbyAqcDJtX2dldF9wYWdlX2Zyb21fZ2ZuKHN0
cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90ICp0KQogeworICAg
IHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0X2hvc3RwMm0oZCk7
CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICBwMm1fdHlwZV90
IHAybXQ7Ci0gICAgbWZuX3QgbWZuID0gcDJtX2xvb2t1cChkLCBnZm4sICZw
Mm10KTsKKyAgICBtZm5fdCBtZm47CisKKyAgICBwMm1fcmVhZF9sb2NrKHAy
bSk7CisgICAgbWZuID0gcDJtX2dldF9lbnRyeShwMm0sIGdmbiwgJnAybXQs
IE5VTEwsIE5VTEwsIE5VTEwpOwogCiAgICAgaWYgKCB0ICkKICAgICAgICAg
KnQgPSBwMm10OwogCi0gICAgaWYgKCAhcDJtX2lzX2FueV9yYW0ocDJtdCkg
KQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmICggIW1mbl92YWxp
ZChtZm4pICkKKyAgICBpZiAoICFwMm1faXNfYW55X3JhbShwMm10KSB8fCAh
bWZuX3ZhbGlkKG1mbikgKQorICAgIHsKKyAgICAgICAgcDJtX3JlYWRfdW5s
b2NrKHAybSk7CiAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAogICAg
IHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwogCkBAIC02MTQsNiArNjE4LDgg
QEAgc3RydWN0IHBhZ2VfaW5mbyAqcDJtX2dldF9wYWdlX2Zyb21fZ2ZuKAog
ICAgIHsKICAgICAgICAgY29uc3Qgc3RydWN0IGRvbWFpbiAqZmRvbSA9IHBh
Z2VfZ2V0X293bmVyX2FuZF9yZWZlcmVuY2UocGFnZSk7CiAKKyAgICAgICAg
cDJtX3JlYWRfdW5sb2NrKHAybSk7CisKICAgICAgICAgaWYgKCBmZG9tICkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBmZG9tICE9IGQgKQpAQCAt
NjI0LDYgKzYzMCw4IEBAIHN0cnVjdCBwYWdlX2luZm8gKnAybV9nZXRfcGFn
ZV9mcm9tX2dmbigKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisg
ICAgcDJtX3JlYWRfdW5sb2NrKHAybSk7CisKICAgICByZXR1cm4gZ2V0X3Bh
Z2UocGFnZSwgZCkgPyBwYWdlIDogTlVMTDsKIH0KIAo=

--=separator--


From xen-announce-bounces@lists.xenproject.org Tue Sep 09 12:00:55 2025
Return-path: <xen-announce-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Sep 2025 12:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1116445.1462806 (Exim 4.92)
	(envelope-from <xen-announce-bounces@lists.xenproject.org>)
	id 1uvx1c-0005T8-OY; Tue, 09 Sep 2025 12:00:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1116445.1462806; Tue, 09 Sep 2025 12:00:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-announce-bounces@lists.xenproject.org>)
	id 1uvx1c-0005SG-FW; Tue, 09 Sep 2025 12:00:40 +0000
Received: by outflank-mailman (input) for mailman id 1116445;
 Tue, 09 Sep 2025 12:00:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEb6=3U=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1uvx1a-0004cM-BJ
 for xen-announce@lists.xen.org; Tue, 09 Sep 2025 12:00:38 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 983f6b74-8d74-11f0-9d13-b5c5bf9af7f9;
 Tue, 09 Sep 2025 14:00:37 +0200 (CEST)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1uvx1S-001exn-29;
 Tue, 09 Sep 2025 12:00:30 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1uvx1S-001SWl-1q;
 Tue, 09 Sep 2025 12:00:30 +0000
X-BeenThere: xen-announce@lists.xenproject.org
List-Id: "Xen announcements \(low volume\)" <xen-announce.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-announce>, 
 <mailto:xen-announce-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-announce@lists.xenproject.org>
List-Help: <mailto:xen-announce-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-announce>, 
 <mailto:xen-announce-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-announce-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-announce" <xen-announce-bounces@lists.xenproject.org>
X-Inumbo-ID: 983f6b74-8d74-11f0-9d13-b5c5bf9af7f9
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 474 v2 (CVE-2025-58146) - XAPI UTF-8 string
 handling
Message-Id: <E1uvx1S-001SWl-1q@xenbits.xenproject.org>
Date: Tue, 09 Sep 2025 12:00:30 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

            Xen Security Advisory CVE-2025-58146 / XSA-474
                               version 2

                      XAPI UTF-8 string handling

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

There are multiple issues.

 1. Updates to the XAPI database sanitise input strings, but try
    generating the notification using the unsanitised input.  This
    causes the database's event thread to terminate and cease further
    processing.

 2. XAPI's UTF-8 encoder implements v3.0 of the Unicode spec, but XAPI
    uses libraries which conform to the stricter v3.1 of the Unicode
    spec.  This causes some strings to be accepted as valid UTF-8 by
    XAPI, but rejected by other libraries in use.  Notably, such strings
    can be entered into the database, after which the database can no
    longer be loaded.

 3. There is no input sanitisation for Map/Set updates on objects in the
    XAPI database.

IMPACT
======

Buggy or malicious inputs to XAPI can cause a Denial of Service.

VULNERABLE SYSTEMS
==================

All versions of XAPI are believed to be vulnerable.

Issues 1 and 2 can be leveraged by guest administrator.

Issue 3 can only be leveraged by an authenticated API user.

MITIGATION
==========

There are no mitigations.

CREDITS
=======

This issue was discovered by Edwin Török from XenServer.

RESOLUTION
==========

An updated XAPI, built with the attached patch, needs to be deployed to
resolve the issue.  If XAPI restarts correctly, no further action is
necessary.

If bad strings have been entered into the database, XAPI will get into a
restart loop, citing:

  [error||0 ||backtrace] Xapi.watchdog failed with exception Xmlm.Error(999:42777, "malformed character stream")

in /var/log/xensource.log roughly every 4 seconds.

To resolve this, the bad characters need stripping manually from the
database.  In dom0, something along the lines of:

  cd /var/xapi
  service xapi stop
  cp state.db state.bak
  iconv -f UTF-8 -t UTF-8//IGNORE < state.db > state.$$
  mv state.$$ state.db
  service xapi start

xsa474.patch           XAPI master

$ sha256sum xsa474*
e3c7ce7522252b25710062f1c761b5f1e319dab2129fc7c1d9fd6440f9331a9f  xsa474.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.


(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmjAFVEMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZCBUIAKiQgLyn/B876QeNwBbHk30wylE9ep1okFBuGhBa
zhpwNJrJeqnzEfw3ma3v+gDiy/qNp6AKhg8U1GGmF9WyJ4I3c3oA/ATfkN5Kms/W
NQnisqExSgo/d8SK0udyk7BCtI0Z+jYxdmnLcPyJgCHOJflZ2CCIpsz6VVvQqq0Y
bSgylgrhhQa8+yQ9xWOQHeEzle89JR4JLTRCUzg4AyTUuxaiHGP8zRj9uwgdwkJZ
nou+4dQxzE3YhzPjz15j+l9JY8zVUsyzMjsXC0W1EnXuzYGJxuiy8oqaMaqlx7+e
hO6fU1iy9ZkIgXPqhAMLlexLkR47Bgw1HLFh4f2XdyqSnBw=
=Zist
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa474.patch"
Content-Disposition: attachment; filename="xsa474.patch"
Content-Transfer-Encoding: base64

RnJvbTogQ2hyaXN0aWFuIExpbmRpZyA8Y2hyaXN0aWFuLmxpbmRpZ0BjbG91
ZC5jb20+ClN1YmplY3Q6IFNpbXBsaWZ5IFVURi04IGRlY29kaW5nCgoqIFVz
ZSB0aGUgZGVjb2RlciBmcm9tIHRoZSBPQ2FtbCBzdGFuZGFyZCBsaWJyYXJ5
IGluc3RlYWQgb2YKICBvdXIgb3duIGltcGxlbWVudGF0aW9uLCB3aGljaCB0
aGlzIHBhdGNoIHJlbW92ZXMuCiogVmFsaWRhdGUgVVRGLTgvWE1MIGNvbmZv
cm1hbmNlIGZvciBtYXBzIGFuZCBzZXRzLCBpbiBhZGRpdGlvbiB0bwogIHN0
cmluZ3MuCgpUaGlzIGlzIFhTQS00NzQgLyBDVkUtMjAyNS01ODE0Ni4KClNp
Z25lZC1vZmYtYnk6IENocmlzdGlhbiBMaW5kaWcgPGNocmlzdGlhbi5saW5k
aWdAY2xvdWQuY29tPgpSZXZpZXdlZC1ieTogRWR3aW4gVMO2csO2ayA8ZWR3
aW4udG9yb2tAY2xvdWQuY29tPgoKZGlmZiAtLWdpdCBhL29jYW1sL2RhdGFi
YXNlL2RiX2NhY2hlX2ltcGwubWwgYi9vY2FtbC9kYXRhYmFzZS9kYl9jYWNo
ZV9pbXBsLm1sCmluZGV4IGU5NzQ1NzQ5YS4uMDUwZDQzZjA1IDEwMDY0NAot
LS0gYS9vY2FtbC9kYXRhYmFzZS9kYl9jYWNoZV9pbXBsLm1sCisrKyBiL29j
YW1sL2RhdGFiYXNlL2RiX2NhY2hlX2ltcGwubWwKQEAgLTY3LDkgKzY3LDcg
QEAgbGV0IHJlYWRfZmllbGQgdCB0YmxuYW1lIGZsZG5hbWUgb2JqcmVmID0K
ICAgICBvY2N1cnMuICopCiBsZXQgZW5zdXJlX3V0ZjhfeG1sIHN0cmluZyA9
CiAgIGxldCBsZW5ndGggPSBTdHJpbmcubGVuZ3RoIHN0cmluZyBpbgotICBs
ZXQgcHJlZml4ID0KLSAgICBYYXBpX3N0ZGV4dF9lbmNvZGluZ3MuRW5jb2Rp
bmdzLlVURjhfWE1MLmxvbmdlc3RfdmFsaWRfcHJlZml4IHN0cmluZwotICBp
bgorICBsZXQgcHJlZml4ID0gWGFwaV9zdGRleHRfZW5jb2RpbmdzLlV0Zjgu
WE1MLmxvbmdlc3RfdmFsaWRfcHJlZml4IHN0cmluZyBpbgogICBpZiBsZW5n
dGggPiBTdHJpbmcubGVuZ3RoIHByZWZpeCB0aGVuCiAgICAgd2FybiAic3Ry
aW5nIHRydW5jYXRlZCB0bzogJyVzJy4iIHByZWZpeCA7CiAgIHByZWZpeApA
QCAtODYsMjAgKzg0LDMyIEBAIGxldCB3cml0ZV9maWVsZF9sb2NrZWQgdCB0
YmxuYW1lIG9ianJlZiBmbGRuYW1lIG5ld3ZhbCA9CiAgICAgICAoZ2V0X2Rh
dGFiYXNlIHQpCiAgICkKIAorKCoqIEVuc3VyZSBhIHZhbHVlIGlzIGNvbmZv
cm1pbmcgdG8gVVRGLTggd2l0aCBYTUwgcmVzdHJpY3Rpb25zICopCitsZXQg
aXNfdmFsaWQgdiA9CisgIGxldCB2YWxpZCA9IFhhcGlfc3RkZXh0X2VuY29k
aW5ncy5VdGY4LlhNTC5pc192YWxpZCBpbgorICBsZXQgdmFsaWRfcGFpciAo
eCwgeSkgPSB2YWxpZCB4ICYmIHZhbGlkIHkgaW4KKyAgbWF0Y2ggdiB3aXRo
CisgIHwgU2NoZW1hLlZhbHVlLlN0cmluZyBzIC0+CisgICAgICB2YWxpZCBz
CisgIHwgU2NoZW1hLlZhbHVlLlNldCBzcyAtPgorICAgICAgTGlzdC5mb3Jf
YWxsIHZhbGlkIHNzCisgIHwgU2NoZW1hLlZhbHVlLlBhaXJzIHBhaXJzIC0+
CisgICAgICBMaXN0LmZvcl9hbGwgdmFsaWRfcGFpciBwYWlycworCitsZXQg
c2hhcmVfc3RyaW5nID0gZnVuY3Rpb24KKyAgfCBTY2hlbWEuVmFsdWUuU3Ry
aW5nIHMgLT4KKyAgICAgIFNjaGVtYS5WYWx1ZS5TdHJpbmcgKFNoYXJlLm1l
cmdlIHMpCisgIHwgdiAtPgorICAgICAgKCogd2UgYXNzdW1lIHN0cmluZ3Mg
aW4gdGhlIHRyZWUgaGF2ZSBiZWVuIHNoYXJlZCBhbHJlYWR5ICopCisgICAg
ICB2CisKIGxldCB3cml0ZV9maWVsZCB0IHRibG5hbWUgb2JqcmVmIGZsZG5h
bWUgbmV3dmFsID0KLSAgbGV0IG5ld3ZhbCA9Ci0gICAgbWF0Y2ggbmV3dmFs
IHdpdGgKLSAgICB8IFNjaGVtYS5WYWx1ZS5TdHJpbmcgcyAtPgotICAgICAg
ICAoKiB0aGUgb3RoZXIgY2FsbGVyIG9mIHdyaXRlX2ZpZWxkX2xvY2tlZCBv
bmx5IHVzZXMgc2V0cyBhbmQgbWFwcywKLSAgICAgICAgICAgc28gd2Ugb25s
eSBuZWVkIHRvIGNoZWNrIGZvciBTdHJpbmcgaGVyZQotICAgICAgICAqKQot
ICAgICAgICBpZiBub3QgKFhhcGlfc3RkZXh0X2VuY29kaW5ncy5FbmNvZGlu
Z3MuVVRGOF9YTUwuaXNfdmFsaWQgcykgdGhlbgotICAgICAgICAgIHJhaXNl
IEludmFsaWRfdmFsdWUgOwotICAgICAgICBTY2hlbWEuVmFsdWUuU3RyaW5n
IChTaGFyZS5tZXJnZSBzKQotICAgIHwgXyAtPgotICAgICAgICBuZXd2YWwK
LSAgaW4KLSAgd2l0aF9sb2NrIChmdW4gKCkgLT4gd3JpdGVfZmllbGRfbG9j
a2VkIHQgdGJsbmFtZSBvYmpyZWYgZmxkbmFtZSBuZXd2YWwpCisgIGlmIG5v
dCBAQCBpc192YWxpZCBuZXd2YWwgdGhlbgorICAgIHJhaXNlIEludmFsaWRf
dmFsdWUKKyAgZWxzZQorICAgIHdpdGhfbG9jayAoZnVuICgpIC0+CisgICAg
ICAgIHdyaXRlX2ZpZWxkX2xvY2tlZCB0IHRibG5hbWUgb2JqcmVmIGZsZG5h
bWUgKHNoYXJlX3N0cmluZyBuZXd2YWwpCisgICAgKQogCiBsZXQgdG91Y2hf
cm93IHQgdGJsbmFtZSBvYmpyZWYgPQogICB1cGRhdGVfZGF0YWJhc2UgdCAo
dG91Y2ggdGJsbmFtZSBvYmpyZWYpIDsKZGlmZiAtLWdpdCBhL29jYW1sL2Rh
dGFiYXNlL3N0cmluZ19tYXJzaGFsbF9oZWxwZXIubWwgYi9vY2FtbC9kYXRh
YmFzZS9zdHJpbmdfbWFyc2hhbGxfaGVscGVyLm1sCmluZGV4IGJhMDAzYmVl
OS4uMWFkZDNhZWY3IDEwMDY0NAotLS0gYS9vY2FtbC9kYXRhYmFzZS9zdHJp
bmdfbWFyc2hhbGxfaGVscGVyLm1sCisrKyBiL29jYW1sL2RhdGFiYXNlL3N0
cmluZ19tYXJzaGFsbF9oZWxwZXIubWwKQEAgLTIyLDkgKzIyLDcgQEAgbW9k
dWxlIEQgPSBEZWJ1Zy5NYWtlIChzdHJ1Y3QgbGV0IG5hbWUgPSBfX01PRFVM
RV9fIGVuZCkKIAogbGV0IGVuc3VyZV91dGY4X3htbCBzdHJpbmcgPQogICBs
ZXQgbGVuZ3RoID0gU3RyaW5nLmxlbmd0aCBzdHJpbmcgaW4KLSAgbGV0IHBy
ZWZpeCA9Ci0gICAgWGFwaV9zdGRleHRfZW5jb2RpbmdzLkVuY29kaW5ncy5V
VEY4X1hNTC5sb25nZXN0X3ZhbGlkX3ByZWZpeCBzdHJpbmcKLSAgaW4KKyAg
bGV0IHByZWZpeCA9IFhhcGlfc3RkZXh0X2VuY29kaW5ncy5VdGY4LlhNTC5s
b25nZXN0X3ZhbGlkX3ByZWZpeCBzdHJpbmcgaW4KICAgaWYgbGVuZ3RoID4g
U3RyaW5nLmxlbmd0aCBwcmVmaXggdGhlbgogICAgIEQud2FybiAiV2hpbHN0
IGRvaW5nICdzZXQnIG9mIHN0cnVjdHVyZWQgZmllbGQsIHN0cmluZyB0cnVu
Y2F0ZWQgdG86ICclcycuIgogICAgICAgcHJlZml4IDsKZGlmZiAtLWdpdCBh
L29jYW1sL2lkbC9vY2FtbF9iYWNrZW5kL2dlbl9zZXJ2ZXIubWwgYi9vY2Ft
bC9pZGwvb2NhbWxfYmFja2VuZC9nZW5fc2VydmVyLm1sCmluZGV4IDE5MTQ1
MDIxMi4uZjk1ZjVmNmQ5IDEwMDY0NAotLS0gYS9vY2FtbC9pZGwvb2NhbWxf
YmFja2VuZC9nZW5fc2VydmVyLm1sCisrKyBiL29jYW1sL2lkbC9vY2FtbF9i
YWNrZW5kL2dlbl9zZXJ2ZXIubWwKQEAgLTQ1Nyw3ICs0NTcsNyBAQCBsZXQg
Z2VuX21vZHVsZSBhcGkgOiBPLk1vZHVsZS50ID0KICAgICAgICAgICAgICAg
IChbCiAgICAgICAgICAgICAgICAgICAibGV0IF9fY2FsbCwgX19wYXJhbXMg
PSBjYWxsLlJwYy5uYW1lLCBjYWxsLlJwYy5wYXJhbXMgaW4iCiAgICAgICAg
ICAgICAgICAgOyAiTGlzdC5pdGVyIChmdW4gcCAtPiBsZXQgcyA9IFJwYy50
b19zdHJpbmcgcCBpbiBpZiBub3QgXAotICAgICAgICAgICAgICAgICAgIChY
YXBpX3N0ZGV4dF9lbmNvZGluZ3MuRW5jb2RpbmdzLlVURjhfWE1MLmlzX3Zh
bGlkIHMpIHRoZW4iCisgICAgICAgICAgICAgICAgICAgKFhhcGlfc3RkZXh0
X2VuY29kaW5ncy5VdGY4LmlzX3ZhbGlkIHMpIHRoZW4iCiAgICAgICAgICAg
ICAgICAgOyAicmFpc2UgKEFwaV9lcnJvcnMuU2VydmVyX2Vycm9yKEFwaV9l
cnJvcnMuaW52YWxpZF92YWx1ZSwgXAogICAgICAgICAgICAgICAgICAgIFtc
IkludmFsaWQgVVRGLTggc3RyaW5nIGluIHBhcmFtZXRlclwiOyBzXSkpKSAg
X19wYXJhbXM7IgogICAgICAgICAgICAgICAgIDsgImxldCBfX2xhYmVsID0g
X19jYWxsIGluIgpkaWZmIC0tZ2l0IGEvb2NhbWwvbGlicy94YXBpLXN0ZGV4
dC9saWIveGFwaS1zdGRleHQtZW5jb2RpbmdzL2JlbmNoL2JlbmNoX2VuY29k
aW5ncy5tbCBiL29jYW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3Rk
ZXh0LWVuY29kaW5ncy9iZW5jaC9iZW5jaF9lbmNvZGluZ3MubWwKaW5kZXgg
NzMwOGM3NTZkLi5iYjIwZWVkNGYgMTAwNjQ0Ci0tLSBhL29jYW1sL2xpYnMv
eGFwaS1zdGRleHQvbGliL3hhcGktc3RkZXh0LWVuY29kaW5ncy9iZW5jaC9i
ZW5jaF9lbmNvZGluZ3MubWwKKysrIGIvb2NhbWwvbGlicy94YXBpLXN0ZGV4
dC9saWIveGFwaS1zdGRleHQtZW5jb2RpbmdzL2JlbmNoL2JlbmNoX2VuY29k
aW5ncy5tbApAQCAtMSw1ICsxLDUgQEAKIG9wZW4gQmVjaGFtZWwKLW9wZW4g
WGFwaV9zdGRleHRfZW5jb2RpbmdzLkVuY29kaW5ncworb3BlbiBYYXBpX3N0
ZGV4dF9lbmNvZGluZ3MKIAogbGV0IHRlc3QgbmFtZSBmID0KICAgVGVzdC5t
YWtlX2luZGV4ZWRfd2l0aF9yZXNvdXJjZSB+bmFtZSB+YXJnczpbMTA7IDEw
MDA7IDEwMDAwXQpAQCAtMTAsNiArMTAsNiBAQCBsZXQgdGVzdCBuYW1lIGYg
PQogCiBsZXQgYmVuY2htYXJrcyA9CiAgIFRlc3QubWFrZV9ncm91cGVkIH5u
YW1lOiJFbmNvZGluZ3MudmFsaWRhdGUiCi0gICAgW3Rlc3QgIlVURjhfWE1M
IiBVVEY4X1hNTC52YWxpZGF0ZV0KKyAgICBbdGVzdCAiVVRGOC5YTUwiIFV0
ZjguWE1MLmlzX3ZhbGlkXQogCiBsZXQgKCkgPSBCZWNoYW1lbF9zaW1wbGVf
Y2xpLmNsaSBiZW5jaG1hcmtzCmRpZmYgLS1naXQgYS9vY2FtbC9saWJzL3hh
cGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3MvZHVuZSBiL29j
YW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3RkZXh0LWVuY29kaW5n
cy9kdW5lCmluZGV4IDc0MmRkMjEyZi4uODM5MzQ2ZTM1IDEwMDY0NAotLS0g
YS9vY2FtbC9saWJzL3hhcGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1lbmNv
ZGluZ3MvZHVuZQorKysgYi9vY2FtbC9saWJzL3hhcGktc3RkZXh0L2xpYi94
YXBpLXN0ZGV4dC1lbmNvZGluZ3MvZHVuZQpAQCAtMSwxMiArMSw2IEBACiAo
bGlicmFyeQogICAobmFtZSB4YXBpX3N0ZGV4dF9lbmNvZGluZ3MpCiAgIChw
dWJsaWNfbmFtZSB4YXBpLXN0ZGV4dC1lbmNvZGluZ3MpCi0gIChtb2R1bGVz
IDpzdGFuZGFyZCBcIHRlc3QpCisgIChtb2R1bGVzIDpzdGFuZGFyZCkKICkK
IAotKHRlc3QKLSAgKG5hbWUgdGVzdCkKLSAgKHBhY2thZ2UgeGFwaS1zdGRl
eHQtZW5jb2RpbmdzKQotICAobW9kdWxlcyB0ZXN0KQotICAobGlicmFyaWVz
IGFsY290ZXN0IHhhcGktc3RkZXh0LWVuY29kaW5ncykKLSkKZGlmZiAtLWdp
dCBhL29jYW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3RkZXh0LWVu
Y29kaW5ncy9lbmNvZGluZ3MubWwgYi9vY2FtbC9saWJzL3hhcGktc3RkZXh0
L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3MvZW5jb2RpbmdzLm1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZGZkNDVhN2QuLjAwMDAwMDAw
MAotLS0gYS9vY2FtbC9saWJzL3hhcGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4
dC1lbmNvZGluZ3MvZW5jb2RpbmdzLm1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTY3ICswLDAgQEAKLSgqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOSBD
aXRyaXggU3lzdGVtcyBJbmMuCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt
b2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAotICogYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyLjEgb25s
eS4gd2l0aCB0aGUgc3BlY2lhbAotICogZXhjZXB0aW9uIG9uIGxpbmtpbmcg
ZGVzY3JpYmVkIGluIGZpbGUgTElDRU5TRS4KLSAqCi0gKiBUaGlzIHByb2dy
YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlCi0gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqKQotZXhjZXB0aW9uIFVDU192YWx1ZV9v
dXRfb2ZfcmFuZ2UKLQotZXhjZXB0aW9uIFVDU192YWx1ZV9wcm9oaWJpdGVk
X2luX1VURjgKLQotZXhjZXB0aW9uIFVDU192YWx1ZV9wcm9oaWJpdGVkX2lu
X1hNTAotCi1leGNlcHRpb24gVVRGOF9jaGFyYWN0ZXJfaW5jb21wbGV0ZQot
Ci1leGNlcHRpb24gVVRGOF9oZWFkZXJfYnl0ZV9pbnZhbGlkCi0KLWV4Y2Vw
dGlvbiBVVEY4X2NvbnRpbnVhdGlvbl9ieXRlX2ludmFsaWQKLQotZXhjZXB0
aW9uIFVURjhfZW5jb2Rpbmdfbm90X2Nhbm9uaWNhbAotCi1leGNlcHRpb24g
U3RyaW5nX2luY29tcGxldGUKLQotKCogPT09IFVuaWNvZGUgRnVuY3Rpb25z
ID09PSAqKQotCi1tb2R1bGUgVUNTID0gc3RydWN0Ci0gIGxldCBpc19ub25f
Y2hhcmFjdGVyIHZhbHVlID0KLSAgICBmYWxzZQotICAgIHx8ICgweGZkZDAg
PD0gdmFsdWUgJiYgdmFsdWUgPD0gMHhmZGVmKSAoKiBjYXNlIDEgKikKLSAg
ICB8fCBJbnQubG9nYW5kIDB4ZmZmZSB2YWx1ZSA9IDB4ZmZmZQotICAoKiBj
YXNlIDIgKikKLSAgW0BAaW5saW5lXQotZW5kCi0KLW1vZHVsZSBYTUwgPSBz
dHJ1Y3QKLSAgbGV0IGlzX2lsbGVnYWxfY29udHJvbF9jaGFyYWN0ZXIgdmFs
dWUgPQotICAgIGxldCB2YWx1ZSA9IFVjaGFyLnRvX2ludCB2YWx1ZSBpbgot
ICAgIHZhbHVlIDwgMHgyMCAmJiB2YWx1ZSA8PiAweDA5ICYmIHZhbHVlIDw+
IDB4MGEgJiYgdmFsdWUgPD4gMHgwZAotICBbQEBpbmxpbmVdCi1lbmQKLQot
KCogPT09IFVDUyBWYWxpZGF0b3JzID09PSAqKQotCi1tb2R1bGUgdHlwZSBV
Q1NfVkFMSURBVE9SID0gc2lnCi0gIHZhbCB2YWxpZGF0ZSA6IFVjaGFyLnQg
LT4gdW5pdAotZW5kCi0KLW1vZHVsZSBVVEY4X1VDU192YWxpZGF0b3IgPSBz
dHJ1Y3QKLSAgbGV0IHZhbGlkYXRlIHZhbHVlID0KLSAgICBpZiAoVUNTLmlz
X25vbl9jaGFyYWN0ZXIgW0BpbmxpbmVkXSkgKFVjaGFyLnRvX2ludCB2YWx1
ZSkgdGhlbgotICAgICAgcmFpc2UgVUNTX3ZhbHVlX3Byb2hpYml0ZWRfaW5f
VVRGOAotICBbQEBpbmxpbmVdCi1lbmQKLQotbW9kdWxlIFhNTF9VVEY4X1VD
U192YWxpZGF0b3IgPSBzdHJ1Y3QKLSAgbGV0IHZhbGlkYXRlIHZhbHVlID0K
LSAgICAoVVRGOF9VQ1NfdmFsaWRhdG9yLnZhbGlkYXRlIFtAaW5saW5lZF0p
IHZhbHVlIDsKLSAgICBpZiAoWE1MLmlzX2lsbGVnYWxfY29udHJvbF9jaGFy
YWN0ZXIgW0BpbmxpbmVkXSkgdmFsdWUgdGhlbgotICAgICAgcmFpc2UgVUNT
X3ZhbHVlX3Byb2hpYml0ZWRfaW5fWE1MCi1lbmQKLQotKCogPT09IFN0cmlu
ZyBWYWxpZGF0b3JzID09PSAqKQotCi1tb2R1bGUgdHlwZSBTVFJJTkdfVkFM
SURBVE9SID0gc2lnCi0gIHZhbCBpc192YWxpZCA6IHN0cmluZyAtPiBib29s
Ci0KLSAgdmFsIHZhbGlkYXRlIDogc3RyaW5nIC0+IHVuaXQKLQotICB2YWwg
bG9uZ2VzdF92YWxpZF9wcmVmaXggOiBzdHJpbmcgLT4gc3RyaW5nCi1lbmQK
LQotZXhjZXB0aW9uIFZhbGlkYXRpb25fZXJyb3Igb2YgaW50ICogZXhuCi0K
LW1vZHVsZSBVVEY4X1hNTCA6IFNUUklOR19WQUxJREFUT1IgPSBzdHJ1Y3QK
LSAgbGV0IGRlY29kZV9jb250aW51YXRpb25fYnl0ZSBieXRlID0KLSAgICBp
ZiBieXRlIGxhbmQgMGIxMTAwMDAwMCA9IDBiMTAwMDAwMDAgdGhlbgotICAg
ICAgYnl0ZSBsYW5kIDBiMDAxMTExMTEKLSAgICBlbHNlCi0gICAgICByYWlz
ZSBVVEY4X2NvbnRpbnVhdGlvbl9ieXRlX2ludmFsaWQKLQotICBsZXQgcmVj
IGRlY29kZV9jb250aW51YXRpb25fYnl0ZXMgc3RyaW5nIGxhc3QgdmFsdWUg
aW5kZXggPQotICAgIGlmIGluZGV4IDw9IGxhc3QgdGhlbgotICAgICAgbGV0
IGNodW5rID0gZGVjb2RlX2NvbnRpbnVhdGlvbl9ieXRlIChDaGFyLmNvZGUg
c3RyaW5nLltpbmRleF0pIGluCi0gICAgICBsZXQgdmFsdWUgPSAodmFsdWUg
bHNsIDYpIGxvciBjaHVuayBpbgotICAgICAgZGVjb2RlX2NvbnRpbnVhdGlv
bl9ieXRlcyBzdHJpbmcgbGFzdCB2YWx1ZSAoaW5kZXggKyAxKQotICAgIGVs
c2UKLSAgICAgIHZhbHVlCi0KLSAgbGV0IHZhbGlkYXRlX2NoYXJhY3Rlcl91
dGY4IHN0cmluZyBieXRlIGluZGV4ID0KLSAgICBsZXQgdmFsdWUsIHdpZHRo
ID0KLSAgICAgIGlmIGJ5dGUgbGFuZCAwYjEwMDAwMDAwID0gMGIwMDAwMDAw
MCB0aGVuCi0gICAgICAgIChieXRlLCAxKQotICAgICAgZWxzZSBpZiBieXRl
IGxhbmQgMGIxMTEwMDAwMCA9IDBiMTEwMDAwMDAgdGhlbgotICAgICAgICAo
Ynl0ZSBsYW5kIDBiMDAxMTExMSwgMikKLSAgICAgIGVsc2UgaWYgYnl0ZSBs
YW5kIDBiMTExMTAwMDAgPSAwYjExMTAwMDAwIHRoZW4KLSAgICAgICAgKGJ5
dGUgbGFuZCAwYjAwMDExMTEsIDMpCi0gICAgICBlbHNlIGlmIGJ5dGUgbGFu
ZCAwYjExMTExMDAwID0gMGIxMTExMDAwMCB0aGVuCi0gICAgICAgIChieXRl
IGxhbmQgMGIwMDAwMTExLCA0KQotICAgICAgZWxzZQotICAgICAgICByYWlz
ZSBVVEY4X2hlYWRlcl9ieXRlX2ludmFsaWQKLSAgICBpbgotICAgIGxldCB2
YWx1ZSA9Ci0gICAgICBpZiB3aWR0aCA9IDEgdGhlbgotICAgICAgICB2YWx1
ZQotICAgICAgZWxzZQotICAgICAgICBkZWNvZGVfY29udGludWF0aW9uX2J5
dGVzIHN0cmluZyAoaW5kZXggKyB3aWR0aCAtIDEpIHZhbHVlIChpbmRleCAr
IDEpCi0gICAgaW4KLSAgICBYTUxfVVRGOF9VQ1NfdmFsaWRhdG9yLnZhbGlk
YXRlIChVY2hhci51bnNhZmVfb2ZfaW50IHZhbHVlKSA7Ci0gICAgd2lkdGgK
LQotICBsZXQgcmVjIHZhbGlkYXRlX2F1eCBzdHJpbmcgbGVuZ3RoIGluZGV4
ID0KLSAgICBpZiBpbmRleCA9IGxlbmd0aCB0aGVuCi0gICAgICAoKQotICAg
IGVsc2UKLSAgICAgIGxldCB3aWR0aCA9Ci0gICAgICAgIHRyeQotICAgICAg
ICAgIGxldCBieXRlID0gc3RyaW5nLltpbmRleF0gfD4gQ2hhci5jb2RlIGlu
Ci0gICAgICAgICAgdmFsaWRhdGVfY2hhcmFjdGVyX3V0Zjggc3RyaW5nIGJ5
dGUgaW5kZXgKLSAgICAgICAgd2l0aAotICAgICAgICB8IEludmFsaWRfYXJn
dW1lbnQgXyAtPgotICAgICAgICAgICAgcmFpc2UgU3RyaW5nX2luY29tcGxl
dGUKLSAgICAgICAgfCBlcnJvciAtPgotICAgICAgICAgICAgcmFpc2UgKFZh
bGlkYXRpb25fZXJyb3IgKGluZGV4LCBlcnJvcikpCi0gICAgICBpbgotICAg
ICAgdmFsaWRhdGVfYXV4IHN0cmluZyBsZW5ndGggKGluZGV4ICsgd2lkdGgp
Ci0KLSAgbGV0IHZhbGlkYXRlIHN0cmluZyA9IHZhbGlkYXRlX2F1eCBzdHJp
bmcgKFN0cmluZy5sZW5ndGggc3RyaW5nKSAwCi0KLSAgbGV0IHJlYyB2YWxp
ZGF0ZV93aXRoX2Zhc3RwYXRoIHN0cmluZyBzdG9wIHBvcyA9Ci0gICAgaWYg
cG9zIDwgc3RvcCB0aGVuCi0gICAgICAoKiB0aGUgY29tcGlsZXIgaXMgc21h
cnQgZW5vdWdoIHRvIG9wdGltaXplIHRoZSAnaW50MzInIGF3YXkgaGVyZSwK
LSAgICAgICAgIGFuZCBub3QgYWxsb2NhdGUgKikKLSAgICAgIGxldCBpMzIg
PSBTdHJpbmcuZ2V0X2ludDMyX25lIHN0cmluZyBwb3MgfD4gSW50MzIudG9f
aW50IGluCi0gICAgICAoKiB0ZXN0IHRoYXQgZm9yIGFsbCBieXRlcyAweDIw
IDw9IGJ5dGUgPCAweDgwLgotICAgICAgICAgSWYgYW55IGlzIDwweDIwIGl0
IHdvdWxkIGNhdXNlIGEgbmVnYXRpdmUgdmFsdWUgdG8gYXBwZWFyIGluIHRo
YXQgYnl0ZSwKLSAgICAgICAgIHdoaWNoIHdlIGNhbiBkZXRlY3QgaWYgd2Ug
dXNlIDB4ODAgYXMgYSBtYXNrLgotICAgICAgICAgQnl0ZSA+PSAweDgwIGNh
biBiZSBzaW1pbGFybHkgZGV0ZWN0ZWQgd2l0aCBhIG1hc2sgb2YgMHg4MCBv
biBlYWNoIGJ5dGUuCi0gICAgICAgICBXZSBkb24ndCB3YW50IHRvIHNlZSBh
IDB4ODAgZnJvbSBlaXRoZXIgb2YgdGhlc2UsIGhlbmNlIHdlIGJpdHdpc2Ug
b3IgdGhlIDIgdmFsdWVzIHRvZ2V0aGVyLgotICAgICAgKikKLSAgICAgIGlm
IGkzMiBsb3IgKGkzMiAtIDB4MjBfMjBfMjBfMjApIGxhbmQgMHg4MF84MF84
MF84MCA9IDAgdGhlbgotICAgICAgICB2YWxpZGF0ZV93aXRoX2Zhc3RwYXRo
IHN0cmluZyBzdG9wIChwb3MgKyA0KQotICAgICAgZWxzZSAoKiB3aGVuIHRo
ZSBjb25kaXRpb24gZG9lc24ndCBob2xkIGZhbGwgYmFjayB0byBmdWxsIFVU
RjggZGVjb2RlciAqKQotICAgICAgICB2YWxpZGF0ZV9hdXggc3RyaW5nIChT
dHJpbmcubGVuZ3RoIHN0cmluZykgcG9zCi0gICAgZWxzZQotICAgICAgdmFs
aWRhdGVfYXV4IHN0cmluZyAoU3RyaW5nLmxlbmd0aCBzdHJpbmcpIHBvcwot
Ci0gIGxldCB2YWxpZGF0ZV93aXRoX2Zhc3RwYXRoIHN0cmluZyA9Ci0gICAg
dmFsaWRhdGVfd2l0aF9mYXN0cGF0aCBzdHJpbmcgKFN0cmluZy5sZW5ndGgg
c3RyaW5nIC0gMykgMAotCi0gIGxldCB2YWxpZGF0ZSA9Ci0gICAgaWYgU3lz
LndvcmRfc2l6ZSA9IDY0IHRoZW4KLSAgICAgIHZhbGlkYXRlX3dpdGhfZmFz
dHBhdGgKLSAgICBlbHNlCi0gICAgICB2YWxpZGF0ZQotCi0gIGxldCBpc192
YWxpZCBzdHJpbmcgPSB0cnkgdmFsaWRhdGUgc3RyaW5nIDsgdHJ1ZSB3aXRo
IF8gLT4gZmFsc2UKLQotICBsZXQgbG9uZ2VzdF92YWxpZF9wcmVmaXggc3Ry
aW5nID0KLSAgICB0cnkgdmFsaWRhdGUgc3RyaW5nIDsgc3RyaW5nCi0gICAg
d2l0aCBWYWxpZGF0aW9uX2Vycm9yIChpbmRleCwgXykgLT4gU3RyaW5nLnN1
YiBzdHJpbmcgMCBpbmRleAotZW5kCmRpZmYgLS1naXQgYS9vY2FtbC9saWJz
L3hhcGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3MvZW5jb2Rp
bmdzLm1saSBiL29jYW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3Rk
ZXh0LWVuY29kaW5ncy9lbmNvZGluZ3MubWxpCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyYTEzOWFlMzcuLjAwMDAwMDAwMAotLS0gYS9vY2Ft
bC9saWJzL3hhcGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3Mv
ZW5jb2RpbmdzLm1saQorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAK
LSgqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOSBDaXRyaXggU3lzdGVt
cyBJbmMuCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAotICogYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyLjEgb25seS4gd2l0aCB0aGUg
c3BlY2lhbAotICogZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGlu
IGZpbGUgTElDRU5TRS4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqKQotCi0oKiogRW5jb2RpbmcgaGVscGVyIG1vZHVsZXMgKikK
LQotKCoqIHsyIEV4Y2VwdGlvbnN9ICopCi0KLWV4Y2VwdGlvbiBVQ1NfdmFs
dWVfb3V0X29mX3JhbmdlCi0KLWV4Y2VwdGlvbiBVQ1NfdmFsdWVfcHJvaGli
aXRlZF9pbl9VVEY4Ci0KLWV4Y2VwdGlvbiBVQ1NfdmFsdWVfcHJvaGliaXRl
ZF9pbl9YTUwKLQotZXhjZXB0aW9uIFVURjhfY2hhcmFjdGVyX2luY29tcGxl
dGUKLQotZXhjZXB0aW9uIFVURjhfaGVhZGVyX2J5dGVfaW52YWxpZAotCi1l
eGNlcHRpb24gVVRGOF9jb250aW51YXRpb25fYnl0ZV9pbnZhbGlkCi0KLWV4
Y2VwdGlvbiBVVEY4X2VuY29kaW5nX25vdF9jYW5vbmljYWwKLQotZXhjZXB0
aW9uIFN0cmluZ19pbmNvbXBsZXRlCi0KLSgqKiB7MiBVQ1MgVmFsaWRhdG9y
c30gKikKLQotKCoqIFZhbGlkYXRlcyBVQ1MgY2hhcmFjdGVyIHZhbHVlcy4g
KikKLW1vZHVsZSB0eXBlIFVDU19WQUxJREFUT1IgPSBzaWcKLSAgdmFsIHZh
bGlkYXRlIDogVWNoYXIudCAtPiB1bml0Ci1lbmQKLQotKCoqIEFjY2VwdHMg
YWxsIHZhbHVlcyB3aXRoaW4gdGhlIFVDUyBjaGFyYWN0ZXIgdmFsdWUgcmFu
Z2UgZXhjZXB0Ci0gKiAgdGhvc2Ugd2hpY2ggYXJlIGludmFsaWQgZm9yIGFs
bCBVVEYtOC1lbmNvZGVkIFhNTCBkb2N1bWVudHMuICopCi1tb2R1bGUgWE1M
X1VURjhfVUNTX3ZhbGlkYXRvciA6IFVDU19WQUxJREFUT1IKLQotbW9kdWxl
IFhNTCA6IHNpZwotICB2YWwgaXNfaWxsZWdhbF9jb250cm9sX2NoYXJhY3Rl
ciA6IFVjaGFyLnQgLT4gYm9vbAotICAoKiogUmV0dXJucyB0cnVlIGlmIGFu
ZCBvbmx5IGlmIHRoZSBnaXZlbiB2YWx1ZSBjb3JyZXNwb25kcyB0bwotICAg
ICAgCSAqICBhIGlsbGVnYWwgY29udHJvbCBjaGFyYWN0ZXIgYXMgZGVmaW5l
ZCBpbiBzZWN0aW9uIDIuMiBvZgotICAgICAgCSAqICB0aGUgWE1MIHNwZWNp
ZmljYXRpb24sIHZlcnNpb24gMS4wLiAqKQotZW5kCi0KLSgqKiB7MiBTdHJp
bmcgVmFsaWRhdG9yc30gKikKLQotKCoqIFByb3ZpZGVzIGZ1bmN0aW9uYWxp
dHkgZm9yIHZhbGlkYXRpbmcgYW5kIHByb2Nlc3NpbmcKLSAqICBzdHJpbmdz
IGFjY29yZGluZyB0byBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIGVuY29kaW5n
LiAqKQotbW9kdWxlIHR5cGUgU1RSSU5HX1ZBTElEQVRPUiA9IHNpZwotICB2
YWwgaXNfdmFsaWQgOiBzdHJpbmcgLT4gYm9vbAotICAoKiogUmV0dXJucyB0
cnVlIGlmIGFuZCBvbmx5IGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgdmFsaWRs
eS1lbmNvZGVkLiAqKQotCi0gIHZhbCB2YWxpZGF0ZSA6IHN0cmluZyAtPiB1
bml0Ci0gICgqKiBSYWlzZXMgYW4gZW5jb2RpbmcgZXJyb3IgaWYgdGhlIGdp
dmVuIHN0cmluZyBpcyBub3QgdmFsaWRseS1lbmNvZGVkLiAqKQotCi0gIHZh
bCBsb25nZXN0X3ZhbGlkX3ByZWZpeCA6IHN0cmluZyAtPiBzdHJpbmcKLSAg
KCoqIFJldHVybnMgdGhlIGxvbmdlc3QgdmFsaWRseS1lbmNvZGVkIHByZWZp
eCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLiAqKQotZW5kCi0KLSgqKiBSZXByZXNl
bnRzIGEgdmFsaWRhdGlvbiBlcnJvciBhcyBhIHR1cGxlIFsoaSxlKV0sIHdo
ZXJlOgotICogICAgW2ldID0gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBub24t
Y29tcGxpYW50IGNoYXJhY3RlcjsKLSAqICAgIFtlXSA9IHRoZSByZWFzb24g
Zm9yIG5vbi1jb21wbGlhbmNlLiAqKQotZXhjZXB0aW9uIFZhbGlkYXRpb25f
ZXJyb3Igb2YgaW50ICogZXhuCi0KLSgqKiBQcm92aWRlcyBmdW5jdGlvbnMg
Zm9yIHZhbGlkYXRpbmcgYW5kIHByb2Nlc3NpbmcKLSAqICBzdHJpbmdzIGFj
Y29yZGluZyB0byB0aGUgVVRGLTggY2hhcmFjdGVyIGVuY29kaW5nLAotICog
IHdpdGggY2VydGFpbiBhZGRpdGlvbmFsIHJlc3RyaWN0aW9ucyBvbiBVQ1Mg
dmFsdWVzCi0gKiAgaW1wb3NlZCBieSB0aGUgWE1MIHNwZWNpZmljYXRpb24u
Ci0gKgotICogIFZhbGlkbHktZW5jb2RlZCBzdHJpbmdzIG11c3Qgc2F0aXNm
eSBib3RoIFJGQyAzNjI5Ci0gKiAgYW5kIHNlY3Rpb24gMi4yIG9mIHRoZSBY
TUwgc3BlY2lmaWNhdGlvbi4KLSAqCi0gKiAgRm9yIGZ1cnRoZXIgaW5mb3Jt
YXRpb24sIHNlZToKLSAqICBodHRwOi8vd3d3LnJmYy5uZXQvcmZjMzYyOS5o
dG1sCi0gKiAgaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXhtbC8jY2hhcnNl
dHMgKikKLW1vZHVsZSBVVEY4X1hNTCA6IFNUUklOR19WQUxJREFUT1IKZGlm
ZiAtLWdpdCBhL29jYW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3Rk
ZXh0LWVuY29kaW5ncy90ZXN0Lm1sIGIvb2NhbWwvbGlicy94YXBpLXN0ZGV4
dC9saWIveGFwaS1zdGRleHQtZW5jb2RpbmdzL3Rlc3QubWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljYzc1YjI5Ny4uMDAwMDAwMDAwCi0t
LSBhL29jYW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3RkZXh0LWVu
Y29kaW5ncy90ZXN0Lm1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMzICswLDAg
QEAKLSgqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOSBDaXRyaXggU3lz
dGVtcyBJbmMuCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAq
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAotICogYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyLjEgb25seS4gd2l0aCB0
aGUgc3BlY2lhbAotICogZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVk
IGluIGZpbGUgTElDRU5TRS4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0g
KiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqKQotbW9kdWxlIEUgPSBYYXBpX3N0ZGV4dF9lbmNvZGlu
Z3MuRW5jb2RpbmdzCi0KLSgqIFB1bGwgaW4gdGhlIGluZml4IG9wZXJhdG9y
cyBmcm9tIEVuY29kaW5ncyB1c2VkIGluIHRoaXMgdGVzdCAqKQotbGV0ICgg
LS0tICksICggKysrICksICggPDw8ICkgPSAoSW50LnN1YiwgSW50LmFkZCwg
SW50LnNoaWZ0X2xlZnQpCi0KLSgqID09PSBNb2NrIGV4Y2VwdGlvbnMgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKLQotKCoqIFNpbXVsYXRlcyBhIGRlY29kaW5nIGVycm9yLiAq
KQotZXhjZXB0aW9uIERlY29kZV9lcnJvcgotCi0oKiA9PT0gTW9jayBVQ1Mg
dmFsaWRhdG9ycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICopCi0KLSgqKiBBIHZhbGlkYXRvciB0aGF0IGFs
d2F5cyBzdWNjZWVkcy4gKikKLW1vZHVsZSBMZW5pZW50X1VDU192YWxpZGF0
b3IgOiBFLlVDU19WQUxJREFUT1IgPSBzdHJ1Y3QKLSAgbGV0IHZhbGlkYXRl
IF8gPSAoKQotZW5kCi0KLSgqID09PSBNb2NrIGNoYXJhY3RlciB2YWxpZGF0
b3JzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQotCi0oKiogQSB2YWxpZGF0b3IgdGhhdCBzdWNjZWVkcyBmb3Ig
YWxsIGNoYXJhY3RlcnMuICopCi1tb2R1bGUgVW5pdmVyc2FsX2NoYXJhY3Rl
cl92YWxpZGF0b3IgPSBzdHJ1Y3QKLSAgbGV0IHZhbGlkYXRlIF8gPSAoKQot
ZW5kCi0KLSgqKiBBIHZhbGlkYXRvciB0aGF0IGZhaWxzIGZvciBhbGwgY2hh
cmFjdGVycy4gKikKLW1vZHVsZSBGYWlsaW5nX2NoYXJhY3Rlcl92YWxpZGF0
b3IgPSBzdHJ1Y3QKLSAgbGV0IHZhbGlkYXRlIF8gPSByYWlzZSBEZWNvZGVf
ZXJyb3IKLWVuZAotCi0oKiogQSB2YWxpZGF0b3IgdGhhdCBzdWNjZWVkcyBm
b3IgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IHRoZSBsZXR0ZXIgJ0YnLiAqKQot
bW9kdWxlIFNlbGVjdGl2ZV9jaGFyYWN0ZXJfdmFsaWRhdG9yID0gc3RydWN0
Ci0gIGxldCB2YWxpZGF0ZSB1Y2hhciA9Ci0gICAgaWYgVWNoYXIuZXF1YWwg
dWNoYXIgKFVjaGFyLm9mX2NoYXIgJ0YnKSB0aGVuIHJhaXNlIERlY29kZV9l
cnJvcgotZW5kCi0KLSgqID09PSBUZXN0IGhlbHBlcnMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKLQotbGV0IGFzc2VydF90cnVlID0gQWxjb3Rlc3QuKGNoZWNrIGJvb2wp
ICJ0cnVlIiB0cnVlCi0KLWxldCBhc3NlcnRfZmFsc2UgPSBBbGNvdGVzdC4o
Y2hlY2sgYm9vbCkgImZhbHNlIiBmYWxzZQotCi1sZXQgYXNzZXJ0X3JhaXNl
c19tYXRjaCBleGNlcHRpb25fbWF0Y2ggZm4gPQotICB0cnkKLSAgICBmbiAo
KSA7Ci0gICAgQWxjb3Rlc3QuZmFpbCAiYXNzZXJ0X3JhaXNlc19tYXRjaDog
ZmFpbHVyZSBleHBlY3RlZCIKLSAgd2l0aCBmYWlsdXJlIC0+Ci0gICAgaWYg
bm90IChleGNlcHRpb25fbWF0Y2ggZmFpbHVyZSkgdGhlbgotICAgICAgcmFp
c2UgZmFpbHVyZQotICAgIGVsc2UKLSAgICAgICgpCi0KLSgqID09PSBNb2Nr
IGNvZGVjcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gKikKLQotbW9kdWxlIFVDUyA9IHN0cnVj
dAotICAoKiA9PT0gVW5pY29kZSBGdW5jdGlvbnMgPT09ICopCi0gIGxldCBt
aW5fdmFsdWUgPSAweDAwMDAwMAotCi0gIGxldCBtYXhfdmFsdWUgPSAweDEw
ZmZmZgotICAoKiB1c2VkIHRvIGJlIDB4MWZmZmZmLCBidXQgdGhpcyBjaGFu
Z2VkIGFuZCBVbmljb2RlIHdvbid0IGFsbG9jYXRlIGxhcmdlciB0aGFuIDB4
MTBmZmZmICopCi0KLSAgbGV0IGlzX25vbl9jaGFyYWN0ZXIgdmFsdWUgPQot
ICAgIGZhbHNlCi0gICAgfHwgKDB4ZmRkMCA8PSB2YWx1ZSAmJiB2YWx1ZSA8
PSAweGZkZWYpICgqIGNhc2UgMSAqKQotICAgIHx8IEludC5sb2dhbmQgMHhm
ZmZlIHZhbHVlID0gMHhmZmZlCi0gICgqIGNhc2UgMiAqKQotCi0gIGxldCBp
c19vdXRfb2ZfcmFuZ2UgdmFsdWUgPSB2YWx1ZSA8IG1pbl92YWx1ZSB8fCB2
YWx1ZSA+IG1heF92YWx1ZQotCi0gIGxldCBpc19zdXJyb2dhdGUgdmFsdWUg
PSAweGQ4MDAgPD0gdmFsdWUgJiYgdmFsdWUgPD0gMHhkZmZmCi0KLSAgKCoq
IEEgbGlzdCBvZiBVQ1Mgbm9uLWNoYXJhY3RlcnMgdmFsdWVzLCBpbmNsdWRp
bmc6Ci0gICAgICBhLiBub24tY2hhcmFjdGVycyB3aXRoaW4gdGhlIGJhc2lj
IG11bHRpbGluZ3VhbCBwbGFuZTsKLSAgICAgIGIuIG5vbi1jaGFyYWN0ZXJz
IGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljIG11bHRpbGluZ3VhbCBwbGFuZTsK
LSAgICAgIGMuIG5vbi1jaGFyYWN0ZXJzIGF0IHRoZSBlbmQgb2YgdGhlIHBy
aXZhdGUgdXNlIGFyZWEuICopCi0gIGxldCBub25fY2hhcmFjdGVycyA9Ci0g
ICAgWwotICAgICAgMHgwMGZkZDAKLSAgICA7IDB4MDBmZGVmCi0gICAgOyAo
KiBjYXNlIGEuICopCi0gICAgICAweDAwZmZmZQotICAgIDsgMHgwMGZmZmYK
LSAgICA7ICgqIGNhc2UgYi4gKikKLSAgICAgIDB4MWZmZmZlCi0gICAgOyAw
eDFmZmZmZiAoKiBjYXNlIGMuICopCi0gICAgXQotCi0gICgqKiBBIGxpc3Qg
b2YgVUNTIGNoYXJhY3RlciB2YWx1ZXMgbG9jYXRlZCBpbW1lZGlhdGVseSBi
ZWZvcmUgb3IKLSAgICAgIGFmdGVyIFVDUyBub24tY2hhcmFjdGVyIHZhbHVl
cywgaW5jbHVkaW5nOgotICAgICAgYS4gbm9uLWNoYXJhY3RlcnMgd2l0aGlu
IHRoZSBiYXNpYyBtdWx0aWxpbmd1YWwgcGxhbmU7Ci0gICAgICBiLiBub24t
Y2hhcmFjdGVycyBhdCB0aGUgZW5kIG9mIHRoZSBiYXNpYyBtdWx0aWxpbmd1
YWwgcGxhbmU7Ci0gICAgICBjLiBub24tY2hhcmFjdGVycyBhdCB0aGUgZW5k
IG9mIHRoZSBwcml2YXRlIHVzZSBhcmVhLiAqKQotICBsZXQgdmFsaWRfY2hh
cmFjdGVyc19uZXh0X3RvX25vbl9jaGFyYWN0ZXJzID0KLSAgICBbCi0gICAg
ICAweDAwZmRjZgotICAgIDsgMHgwMGZkZjAKLSAgICA7ICgqIGNhc2UgYS4g
KikKLSAgICAgIDB4MDBmZmZkCi0gICAgOyAweDAxMDAwMAotICAgIDsgKCog
Y2FzZSBiLiAqKQotICAgICAgMHgxZmZmZmQKLSAgICA7IDB4MjAwMDAwICgq
IGNhc2UgYy4gKikKLSAgICBdCi0KLSAgbGV0IHRlc3RfaXNfbm9uX2NoYXJh
Y3RlciAoKSA9Ci0gICAgTGlzdC5pdGVyIChmdW4gdmFsdWUgLT4gYXNzZXJ0
X3RydWUgKGlzX25vbl9jaGFyYWN0ZXIgdmFsdWUpKSBub25fY2hhcmFjdGVy
cyA7Ci0gICAgTGlzdC5pdGVyCi0gICAgICAoZnVuIHZhbHVlIC0+IGFzc2Vy
dF9mYWxzZSAoaXNfbm9uX2NoYXJhY3RlciB2YWx1ZSkpCi0gICAgICB2YWxp
ZF9jaGFyYWN0ZXJzX25leHRfdG9fbm9uX2NoYXJhY3RlcnMKLQotICBsZXQg
dGVzdF9pc19vdXRfb2ZfcmFuZ2UgKCkgPQotICAgIGFzc2VydF90cnVlIChp
c19vdXRfb2ZfcmFuZ2UgKG1pbl92YWx1ZSAtLS0gMSkpIDsKLSAgICBhc3Nl
cnRfZmFsc2UgKGlzX291dF9vZl9yYW5nZSBtaW5fdmFsdWUpIDsKLSAgICBh
c3NlcnRfZmFsc2UgKGlzX291dF9vZl9yYW5nZSBtYXhfdmFsdWUpIDsKLSAg
ICBhc3NlcnRfdHJ1ZSAoaXNfb3V0X29mX3JhbmdlIChtYXhfdmFsdWUgKysr
IDEpKQotCi0gIGxldCB0ZXN0X2lzX3N1cnJvZ2F0ZSAoKSA9Ci0gICAgYXNz
ZXJ0X2ZhbHNlIChpc19zdXJyb2dhdGUgMHhkN2ZmKSA7Ci0gICAgYXNzZXJ0
X3RydWUgKGlzX3N1cnJvZ2F0ZSAweGQ4MDApIDsKLSAgICBhc3NlcnRfdHJ1
ZSAoaXNfc3Vycm9nYXRlIDB4ZGZmZikgOwotICAgIGFzc2VydF9mYWxzZSAo
aXNfc3Vycm9nYXRlIDB4ZTAwMCkKLQotICBsZXQgdGVzdHMgPQotICAgIFsK
LSAgICAgICgidGVzdF9pc19ub25fY2hhcmFjdGVyIiwgYFF1aWNrLCB0ZXN0
X2lzX25vbl9jaGFyYWN0ZXIpCi0gICAgOyAoInRlc3RfaXNfb3V0X29mX3Jh
bmdlIiwgYFF1aWNrLCB0ZXN0X2lzX291dF9vZl9yYW5nZSkKLSAgICA7ICgi
dGVzdF9pc19zdXJyb2dhdGUiLCBgUXVpY2ssIHRlc3RfaXNfc3Vycm9nYXRl
KQotICAgIF0KLWVuZAotCi1tb2R1bGUgTGVuaWVudF9VVEY4X2NvZGVjID0g
c3RydWN0Ci0gIGxldCBkZWNvZGVfaGVhZGVyX2J5dGUgYnl0ZSA9Ci0gICAg
aWYgYnl0ZSBsYW5kIDBiMTAwMDAwMDAgPSAwYjAwMDAwMDAwIHRoZW4KLSAg
ICAgIChieXRlLCAxKQotICAgIGVsc2UgaWYgYnl0ZSBsYW5kIDBiMTExMDAw
MDAgPSAwYjExMDAwMDAwIHRoZW4KLSAgICAgIChieXRlIGxhbmQgMGIwMDEx
MTExLCAyKQotICAgIGVsc2UgaWYgYnl0ZSBsYW5kIDBiMTExMTAwMDAgPSAw
YjExMTAwMDAwIHRoZW4KLSAgICAgIChieXRlIGxhbmQgMGIwMDAxMTExLCAz
KQotICAgIGVsc2UgaWYgYnl0ZSBsYW5kIDBiMTExMTEwMDAgPSAwYjExMTEw
MDAwIHRoZW4KLSAgICAgIChieXRlIGxhbmQgMGIwMDAwMTExLCA0KQotICAg
IGVsc2UKLSAgICAgIHJhaXNlIEUuVVRGOF9oZWFkZXJfYnl0ZV9pbnZhbGlk
Ci0KLSAgbGV0IGRlY29kZV9jb250aW51YXRpb25fYnl0ZSBieXRlID0KLSAg
ICBpZiBieXRlIGxhbmQgMGIxMTAwMDAwMCA9IDBiMTAwMDAwMDAgdGhlbgot
ICAgICAgYnl0ZSBsYW5kIDBiMDAxMTExMTEKLSAgICBlbHNlCi0gICAgICBy
YWlzZSBFLlVURjhfY29udGludWF0aW9uX2J5dGVfaW52YWxpZAotCi0gIGxl
dCB3aWR0aF9yZXF1aXJlZF9mb3JfdWNzX3ZhbHVlIHZhbHVlID0KLSAgICBp
ZiB2YWx1ZSA8IDB4MDAwMDgwICgqIDEgbHNsICA3ICopIHRoZW4KLSAgICAg
IDEKLSAgICBlbHNlIGlmIHZhbHVlIDwgMHgwMDA4MDAgKCogMSBsc2wgMTEg
KikgdGhlbgotICAgICAgMgotICAgIGVsc2UgaWYgdmFsdWUgPCAweDAxMDAw
MCAoKiAxIGxzbCAxNiAqKSB0aGVuCi0gICAgICAzCi0gICAgZWxzZQotICAg
ICAgNAotCi0gIGxldCBkZWNvZGVfY2hhcmFjdGVyIHN0cmluZyBpbmRleCA9
Ci0gICAgbGV0IHZhbHVlLCB3aWR0aCA9IGRlY29kZV9oZWFkZXJfYnl0ZSAo
Q2hhci5jb2RlIHN0cmluZy5baW5kZXhdKSBpbgotICAgIGxldCB2YWx1ZSA9
Ci0gICAgICBpZiB3aWR0aCA9IDEgdGhlbgotICAgICAgICB2YWx1ZQotICAg
ICAgZWxzZQotICAgICAgICBsZXQgdmFsdWUgPSByZWYgdmFsdWUgaW4KLSAg
ICAgICAgZm9yIGluZGV4ID0gaW5kZXggKyAxIHRvIGluZGV4ICsgd2lkdGgg
LSAxIGRvCi0gICAgICAgICAgbGV0IGNodW5rID0gZGVjb2RlX2NvbnRpbnVh
dGlvbl9ieXRlIChDaGFyLmNvZGUgc3RyaW5nLltpbmRleF0pIGluCi0gICAg
ICAgICAgdmFsdWUgOj0gKCF2YWx1ZSBsc2wgNikgbG9yIGNodW5rCi0gICAg
ICAgIGRvbmUgOwotICAgICAgICBpZiB3aWR0aCA+IHdpZHRoX3JlcXVpcmVk
X2Zvcl91Y3NfdmFsdWUgIXZhbHVlIHRoZW4KLSAgICAgICAgICByYWlzZSBF
LlVURjhfZW5jb2Rpbmdfbm90X2Nhbm9uaWNhbCA7Ci0gICAgICAgICF2YWx1
ZQotICAgIGluCi0gICAgKHZhbHVlLCB3aWR0aCkKLWVuZAotCi0oKiA9PT0g
TW9jayBzdHJpbmcgdmFsaWRhdG9ycyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCi1tb2R1bGUgTW9ja19TdHJp
bmdfdmFsaWRhdG9yIChWYWxpZGF0b3IgOiBFLlVDU19WQUxJREFUT1IpIDoK
LSAgRS5TVFJJTkdfVkFMSURBVE9SID0gc3RydWN0Ci0gICgqIG5vIGxvbmdl
ciBhIGZ1bmN0b3IgaW4gRW5jb2RpbmdzIGZvciBwZXJmb3JtYW5jZSByZWFz
b25zLAotICAgICBzbyBtb2RpZnkgdGhlIG9yaWdpbmFsIHN0cmluZyBwYXNz
ZWQgYXMgYXJndW1lbnQgaW5zdGVhZCByZXBsYWNpbmcKLSAgICAgY2hhcmFj
dGVycyB0aGF0IHdvdWxkIGJlIGludmFsaWQgd2l0aCBhIGtub3duIGludmFs
aWQgWE1MIGNoYXI6IDB4MEIuCi0gICopCi0KLSAgbGV0IHRyYW5zZm9ybSBz
dHIgPQotICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAoU3RyaW5nLmxlbmd0
aCBzdHIpIGluCi0gICAgbGV0IHJlYyBsb29wIHBvcyA9Ci0gICAgICBpZiBw
b3MgPCBTdHJpbmcubGVuZ3RoIHN0ciB0aGVuCi0gICAgICAgIGxldCB2YWx1
ZSwgd2lkdGggPSBMZW5pZW50X1VURjhfY29kZWMuZGVjb2RlX2NoYXJhY3Rl
ciBzdHIgcG9zIGluCi0gICAgICAgIGxldCAoKSA9Ci0gICAgICAgICAgdHJ5
Ci0gICAgICAgICAgICBsZXQgdSA9IFVjaGFyLm9mX2ludCB2YWx1ZSBpbgot
ICAgICAgICAgICAgVmFsaWRhdG9yLnZhbGlkYXRlIHUgOyBCdWZmZXIuYWRk
X3V0Zl84X3VjaGFyIGIgdQotICAgICAgICAgIHdpdGggXyAtPiBCdWZmZXIu
YWRkX2NoYXIgYiAnXHgwQicKLSAgICAgICAgaW4KLSAgICAgICAgbG9vcCAo
cG9zICsgd2lkdGgpCi0gICAgaW4KLSAgICBsb29wIDAgOyBCdWZmZXIuY29u
dGVudHMgYgotCi0gIGxldCBpc192YWxpZCBzdHIgPSBFLlVURjhfWE1MLmlz
X3ZhbGlkICh0cmFuc2Zvcm0gc3RyKQotCi0gIGxldCB2YWxpZGF0ZSBzdHIg
PQotICAgIHRyeSBFLlVURjhfWE1MLnZhbGlkYXRlICh0cmFuc2Zvcm0gc3Ry
KQotICAgIHdpdGggRS5WYWxpZGF0aW9uX2Vycm9yIChwb3MsIF8pIC0+Ci0g
ICAgICByYWlzZSAoRS5WYWxpZGF0aW9uX2Vycm9yIChwb3MsIERlY29kZV9l
cnJvcikpCi0KLSAgbGV0IGxvbmdlc3RfdmFsaWRfcHJlZml4IHN0ciA9IEUu
VVRGOF9YTUwubG9uZ2VzdF92YWxpZF9wcmVmaXggKHRyYW5zZm9ybSBzdHIp
Ci1lbmQKLQotKCoqIEEgdmFsaWRhdG9yIHRoYXQgYWNjZXB0cyBhbGwgc3Ry
aW5ncy4gKikKLW1vZHVsZSBVbml2ZXJzYWxfc3RyaW5nX3ZhbGlkYXRvciA9
Ci0gIE1vY2tfU3RyaW5nX3ZhbGlkYXRvciAoVW5pdmVyc2FsX2NoYXJhY3Rl
cl92YWxpZGF0b3IpCi0KLSgqKiBBIHZhbGlkYXRvciB0aGF0IHJlamVjdHMg
YWxsIHN0cmluZ3MuICopCi1tb2R1bGUgRmFpbGluZ19zdHJpbmdfdmFsaWRh
dG9yID0KLSAgTW9ja19TdHJpbmdfdmFsaWRhdG9yIChGYWlsaW5nX2NoYXJh
Y3Rlcl92YWxpZGF0b3IpCi0KLSgqKiBBIHZhbGlkYXRvciB0aGF0IHJlamVj
dHMgc3RyaW5ncyBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgJ0YnLiAqKQot
bW9kdWxlIFNlbGVjdGl2ZV9zdHJpbmdfdmFsaWRhdG9yID0KLSAgTW9ja19T
dHJpbmdfdmFsaWRhdG9yIChTZWxlY3RpdmVfY2hhcmFjdGVyX3ZhbGlkYXRv
cikKLQotKCogPT09IFRlc3RzID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQotCi1t
b2R1bGUgU3RyaW5nX3ZhbGlkYXRvciA9IHN0cnVjdAotICBsZXQgdGVzdF9p
c192YWxpZCAoKSA9Ci0gICAgYXNzZXJ0X3RydWUgKFVuaXZlcnNhbF9zdHJp
bmdfdmFsaWRhdG9yLmlzX3ZhbGlkICIiKSA7Ci0gICAgYXNzZXJ0X3RydWUg
KFVuaXZlcnNhbF9zdHJpbmdfdmFsaWRhdG9yLmlzX3ZhbGlkICIxMjM0NTY3
ODkiKSA7Ci0gICAgYXNzZXJ0X3RydWUgKFNlbGVjdGl2ZV9zdHJpbmdfdmFs
aWRhdG9yLmlzX3ZhbGlkICIiKSA7Ci0gICAgYXNzZXJ0X3RydWUgKFNlbGVj
dGl2ZV9zdHJpbmdfdmFsaWRhdG9yLmlzX3ZhbGlkICIxMjM0NTY3ODkiKSA7
Ci0gICAgYXNzZXJ0X2ZhbHNlIChTZWxlY3RpdmVfc3RyaW5nX3ZhbGlkYXRv
ci5pc192YWxpZCAiRjIzNDU2Nzg5IikgOwotICAgIGFzc2VydF9mYWxzZSAo
U2VsZWN0aXZlX3N0cmluZ192YWxpZGF0b3IuaXNfdmFsaWQgIjEyMzRGNjc4
OSIpIDsKLSAgICBhc3NlcnRfZmFsc2UgKFNlbGVjdGl2ZV9zdHJpbmdfdmFs
aWRhdG9yLmlzX3ZhbGlkICIxMjM0NTY3OEYiKSA7Ci0gICAgYXNzZXJ0X2Zh
bHNlIChTZWxlY3RpdmVfc3RyaW5nX3ZhbGlkYXRvci5pc192YWxpZCAiRkZG
RkZGRkZGIikKLQotICBsZXQgdGVzdF9sb25nZXN0X3ZhbGlkX3ByZWZpeCAo
KSA9Ci0gICAgQWxjb3Rlc3QuKGNoZWNrIHN0cmluZykKLSAgICAgICJwcmVm
aXgiCi0gICAgICAoVW5pdmVyc2FsX3N0cmluZ192YWxpZGF0b3IubG9uZ2Vz
dF92YWxpZF9wcmVmaXggIiIpCi0gICAgICAiIiA7Ci0gICAgQWxjb3Rlc3Qu
KGNoZWNrIHN0cmluZykKLSAgICAgICJwcmVmaXgiCi0gICAgICAoVW5pdmVy
c2FsX3N0cmluZ192YWxpZGF0b3IubG9uZ2VzdF92YWxpZF9wcmVmaXggIjEy
MzQ1Njc4OSIpCi0gICAgICAiMTIzNDU2Nzg5IiA7Ci0gICAgQWxjb3Rlc3Qu
KGNoZWNrIHN0cmluZykKLSAgICAgICJwcmVmaXgiCi0gICAgICAoU2VsZWN0
aXZlX3N0cmluZ192YWxpZGF0b3IubG9uZ2VzdF92YWxpZF9wcmVmaXggIiIp
Ci0gICAgICAiIiA7Ci0gICAgQWxjb3Rlc3QuKGNoZWNrIHN0cmluZykKLSAg
ICAgICJwcmVmaXgiCi0gICAgICAoU2VsZWN0aXZlX3N0cmluZ192YWxpZGF0
b3IubG9uZ2VzdF92YWxpZF9wcmVmaXggIjEyMzQ1Njc4OSIpCi0gICAgICAi
MTIzNDU2Nzg5IiA7Ci0gICAgQWxjb3Rlc3QuKGNoZWNrIHN0cmluZykKLSAg
ICAgICJwcmVmaXgiCi0gICAgICAoU2VsZWN0aXZlX3N0cmluZ192YWxpZGF0
b3IubG9uZ2VzdF92YWxpZF9wcmVmaXggIkYyMzQ1Njc4OSIpCi0gICAgICAi
IiA7Ci0gICAgQWxjb3Rlc3QuKGNoZWNrIHN0cmluZykKLSAgICAgICJwcmVm
aXgiCi0gICAgICAoU2VsZWN0aXZlX3N0cmluZ192YWxpZGF0b3IubG9uZ2Vz
dF92YWxpZF9wcmVmaXggIjEyMzRGNjc4OSIpCi0gICAgICAiMTIzNCIgOwot
ICAgIEFsY290ZXN0LihjaGVjayBzdHJpbmcpCi0gICAgICAicHJlZml4Igot
ICAgICAgKFNlbGVjdGl2ZV9zdHJpbmdfdmFsaWRhdG9yLmxvbmdlc3RfdmFs
aWRfcHJlZml4ICIxMjM0NTY3OEYiKQotICAgICAgIjEyMzQ1Njc4IiA7Ci0g
ICAgQWxjb3Rlc3QuKGNoZWNrIHN0cmluZykKLSAgICAgICJwcmVmaXgiCi0g
ICAgICAoU2VsZWN0aXZlX3N0cmluZ192YWxpZGF0b3IubG9uZ2VzdF92YWxp
ZF9wcmVmaXggIkZGRkZGRkZGRiIpCi0gICAgICAiIgotCi0gICgqKiBUZXN0
cyB0aGF0IHZhbGlkYXRpb24gZG9lcyBub3QgZmFpbCBmb3IgYW4gZW1wdHkg
c3RyaW5nLiAqKQotICBsZXQgdGVzdF92YWxpZGF0ZV93aXRoX2VtcHR5X3N0
cmluZyAoKSA9IEUuVVRGOF9YTUwudmFsaWRhdGUgIiIKLQotICBsZXQgdGVz
dF92YWxpZGF0ZV93aXRoX2luY29tcGxldGVfc3RyaW5nICgpID0KLSAgICBB
bGNvdGVzdC5jaGVja19yYWlzZXMgIlZhbGlkYXRpb24gZmFpbHMgY29ycmVj
dGx5IGZvciBhbiBpbmNvbXBsZXRlIHN0cmluZyIKLSAgICAgIEUuU3RyaW5n
X2luY29tcGxldGUgKGZ1biAoKSAtPiBFLlVURjhfWE1MLnZhbGlkYXRlICJc
eGMyIgotICAgICkKLQotICBsZXQgdGVzdF92YWxpZGF0ZV93aXRoX2ZhaWxp
bmdfZGVjb2RlcnMgKCkgPQotICAgIEZhaWxpbmdfc3RyaW5nX3ZhbGlkYXRv
ci52YWxpZGF0ZSAiIiA7Ci0gICAgYXNzZXJ0X3JhaXNlc19tYXRjaAotICAg
ICAgKGZ1bmN0aW9uIEUuVmFsaWRhdGlvbl9lcnJvciAoMCwgRGVjb2RlX2Vy
cm9yKSAtPiB0cnVlIHwgXyAtPiBmYWxzZSkKLSAgICAgIChmdW4gKCkgLT4g
U2VsZWN0aXZlX3N0cmluZ192YWxpZGF0b3IudmFsaWRhdGUgIkYiKSA7Ci0g
ICAgYXNzZXJ0X3JhaXNlc19tYXRjaAotICAgICAgKGZ1bmN0aW9uIEUuVmFs
aWRhdGlvbl9lcnJvciAoMCwgRGVjb2RlX2Vycm9yKSAtPiB0cnVlIHwgXyAt
PiBmYWxzZSkKLSAgICAgIChmdW4gKCkgLT4gU2VsZWN0aXZlX3N0cmluZ192
YWxpZGF0b3IudmFsaWRhdGUgIkYxMjM0NTY3OCIpIDsKLSAgICBhc3NlcnRf
cmFpc2VzX21hdGNoCi0gICAgICAoZnVuY3Rpb24gRS5WYWxpZGF0aW9uX2Vy
cm9yICg0LCBEZWNvZGVfZXJyb3IpIC0+IHRydWUgfCBfIC0+IGZhbHNlKQot
ICAgICAgKGZ1biAoKSAtPiBTZWxlY3RpdmVfc3RyaW5nX3ZhbGlkYXRvci52
YWxpZGF0ZSAiMDEyM0Y1Njc4IikgOwotICAgIGFzc2VydF9yYWlzZXNfbWF0
Y2gKLSAgICAgIChmdW5jdGlvbiBFLlZhbGlkYXRpb25fZXJyb3IgKDgsIERl
Y29kZV9lcnJvcikgLT4gdHJ1ZSB8IF8gLT4gZmFsc2UpCi0gICAgICAoZnVu
ICgpIC0+IFNlbGVjdGl2ZV9zdHJpbmdfdmFsaWRhdG9yLnZhbGlkYXRlICIw
MTIzNDU2N0YiKSA7Ci0gICAgYXNzZXJ0X3JhaXNlc19tYXRjaAotICAgICAg
KGZ1bmN0aW9uIEUuVmFsaWRhdGlvbl9lcnJvciAoMCwgRGVjb2RlX2Vycm9y
KSAtPiB0cnVlIHwgXyAtPiBmYWxzZSkKLSAgICAgIChmdW4gKCkgLT4gU2Vs
ZWN0aXZlX3N0cmluZ192YWxpZGF0b3IudmFsaWRhdGUgIkZGRkZGRkZGRiIp
Ci0KLSAgbGV0IHRlc3RzID0KLSAgICBbCi0gICAgICAoInRlc3RfaXNfdmFs
aWQiLCBgUXVpY2ssIHRlc3RfaXNfdmFsaWQpCi0gICAgOyAoInRlc3RfbG9u
Z2VzdF92YWxpZF9wcmVmaXgiLCBgUXVpY2ssIHRlc3RfbG9uZ2VzdF92YWxp
ZF9wcmVmaXgpCi0gICAgOyAoICJ0ZXN0X3ZhbGlkYXRlX3dpdGhfZW1wdHlf
c3RyaW5nIgotICAgICAgLCBgUXVpY2sKLSAgICAgICwgdGVzdF92YWxpZGF0
ZV93aXRoX2VtcHR5X3N0cmluZwotICAgICAgKQotICAgIDsgKCAidGVzdF92
YWxpZGF0ZV93aXRoX2luY29tcGxldGVfc3RyaW5nIgotICAgICAgLCBgUXVp
Y2sKLSAgICAgICwgdGVzdF92YWxpZGF0ZV93aXRoX2luY29tcGxldGVfc3Ry
aW5nCi0gICAgICApCi0gICAgOyAoICJ0ZXN0X3ZhbGlkYXRlX3dpdGhfZmFp
bGluZ19kZWNvZGVycyIKLSAgICAgICwgYFF1aWNrCi0gICAgICAsIHRlc3Rf
dmFsaWRhdGVfd2l0aF9mYWlsaW5nX2RlY29kZXJzCi0gICAgICApCi0gICAg
XQotZW5kCi0KLW1vZHVsZSBYTUwgPSBzdHJ1Y3QKLSAgaW5jbHVkZSBFLlhN
TAotCi0gIGxldCB0ZXN0X2lzX2lsbGVnYWxfY29udHJvbF9jaGFyYWN0ZXIg
KCkgPQotICAgIGFzc2VydF90cnVlIChpc19pbGxlZ2FsX2NvbnRyb2xfY2hh
cmFjdGVyIChVY2hhci5vZl9pbnQgMHgwMCkpIDsKLSAgICBhc3NlcnRfdHJ1
ZSAoaXNfaWxsZWdhbF9jb250cm9sX2NoYXJhY3RlciAoVWNoYXIub2ZfaW50
IDB4MTkpKSA7Ci0gICAgYXNzZXJ0X2ZhbHNlIChpc19pbGxlZ2FsX2NvbnRy
b2xfY2hhcmFjdGVyIChVY2hhci5vZl9pbnQgMHgwOSkpIDsKLSAgICBhc3Nl
cnRfZmFsc2UgKGlzX2lsbGVnYWxfY29udHJvbF9jaGFyYWN0ZXIgKFVjaGFy
Lm9mX2ludCAweDBhKSkgOwotICAgIGFzc2VydF9mYWxzZSAoaXNfaWxsZWdh
bF9jb250cm9sX2NoYXJhY3RlciAoVWNoYXIub2ZfaW50IDB4MGQpKSA7Ci0g
ICAgYXNzZXJ0X2ZhbHNlIChpc19pbGxlZ2FsX2NvbnRyb2xfY2hhcmFjdGVy
IChVY2hhci5vZl9pbnQgMHgyMCkpCi0KLSAgbGV0IHRlc3RzID0KLSAgICBb
Ci0gICAgICAoICJ0ZXN0X2lzX2lsbGVnYWxfY29udHJvbF9jaGFyYWN0ZXIi
Ci0gICAgICAsIGBRdWljawotICAgICAgLCB0ZXN0X2lzX2lsbGVnYWxfY29u
dHJvbF9jaGFyYWN0ZXIKLSAgICAgICkKLSAgICBdCi1lbmQKLQotKCoqIFRl
c3RzIHRoZSBYTUwtc3BlY2lmaWMgVVRGLTggVUNTIHZhbGlkYXRpb24gZnVu
Y3Rpb24uICopCi1tb2R1bGUgWE1MX1VURjhfVUNTX3ZhbGlkYXRvciA9IHN0
cnVjdAotICBpbmNsdWRlIEUuWE1MX1VURjhfVUNTX3ZhbGlkYXRvcgotCi0g
IGxldCB2YWxpZGF0ZSB1Y2hhciA9Ci0gICAgaWYgVWNoYXIuaXNfdmFsaWQg
dWNoYXIgdGhlbgotICAgICAgdmFsaWRhdGUgQEAgVWNoYXIub2ZfaW50IHVj
aGFyCi0gICAgZWxzZSBpZiB1Y2hhciA8IFVjaGFyLnRvX2ludCBVY2hhci5t
aW4gfHwgdWNoYXIgPiBVY2hhci50b19pbnQgVWNoYXIubWF4Ci0gICAgdGhl
bgotICAgICAgcmFpc2UgRS5VQ1NfdmFsdWVfb3V0X29mX3JhbmdlCi0gICAg
ZWxzZQotICAgICAgcmFpc2UgRS5VQ1NfdmFsdWVfcHJvaGliaXRlZF9pbl9V
VEY4Ci0KLSAgbGV0IHRlc3RfdmFsaWRhdGUgKCkgPQotICAgIGxldCB2YWx1
ZSA9IHJlZiAoVUNTLm1pbl92YWx1ZSAtLS0gMSkgaW4KLSAgICB3aGlsZSAh
dmFsdWUgPD0gVUNTLm1heF92YWx1ZSArKysgMSBkbwotICAgICAgaWYgVUNT
LmlzX291dF9vZl9yYW5nZSAhdmFsdWUgdGhlbgotICAgICAgICBBbGNvdGVz
dC5jaGVja19yYWlzZXMgInNob3VsZCBmYWlsIiBFLlVDU192YWx1ZV9vdXRf
b2ZfcmFuZ2UgKGZ1biAoKSAtPgotICAgICAgICAgICAgdmFsaWRhdGUgIXZh
bHVlCi0gICAgICAgICkKLSAgICAgIGVsc2UgaWYgVUNTLmlzX25vbl9jaGFy
YWN0ZXIgIXZhbHVlIHx8IFVDUy5pc19zdXJyb2dhdGUgIXZhbHVlIHRoZW4K
LSAgICAgICAgQWxjb3Rlc3QuY2hlY2tfcmFpc2VzICJzaG91bGQgZmFpbCIg
RS5VQ1NfdmFsdWVfcHJvaGliaXRlZF9pbl9VVEY4Ci0gICAgICAgICAgKGZ1
biAoKSAtPiB2YWxpZGF0ZSAhdmFsdWUKLSAgICAgICAgKQotICAgICAgZWxz
ZSBpZgotICAgICAgICBVY2hhci5pc192YWxpZCAhdmFsdWUKLSAgICAgICAg
JiYgWE1MLmlzX2lsbGVnYWxfY29udHJvbF9jaGFyYWN0ZXIgKFVjaGFyLm9m
X2ludCAhdmFsdWUpCi0gICAgICB0aGVuCi0gICAgICAgIEFsY290ZXN0LmNo
ZWNrX3JhaXNlcyAic2hvdWxkIGZhaWwiIEUuVUNTX3ZhbHVlX3Byb2hpYml0
ZWRfaW5fWE1MCi0gICAgICAgICAgKGZ1biAoKSAtPiB2YWxpZGF0ZSAhdmFs
dWUKLSAgICAgICAgKQotICAgICAgZWxzZQotICAgICAgICB2YWxpZGF0ZSAh
dmFsdWUgOwotICAgICAgdmFsdWUgOj0gIXZhbHVlICsrKyAxCi0gICAgZG9u
ZQotCi0gIGxldCB0ZXN0cyA9IFsoInRlc3RfdmFsaWRhdGUiLCBgUXVpY2ss
IHRlc3RfdmFsaWRhdGUpXQotZW5kCi0KLW1vZHVsZSBVVEY4X2NvZGVjID0g
c3RydWN0Ci0gICgqKiBBIGxpc3Qgb2YgY2Fub25pY2FsIGVuY29kaW5nIHdp
ZHRocyBvZiBVQ1MgdmFsdWVzLAotICAgICAgcmVwcmVzZW50ZWQgYnkgdHVw
bGVzIG9mIHRoZSBmb3JtICh2LCB3KSwgd2hlcmU6Ci0gICAgICB2ID0gdGhl
IFVDUyBjaGFyYWN0ZXIgdmFsdWUgdG8gYmUgZW5jb2RlZDsgYW5kCi0gICAg
ICB3ID0gdGhlIHdpZHRoIG9mIHRoZSBlbmNvZGVkIGNoYXJhY3RlciwgaW4g
Ynl0ZXMuICopCi0gIGxldCB2YWxpZF91Y3NfdmFsdWVfd2lkdGhzID0KLSAg
ICBbCi0gICAgICAoMSwgMSkKLSAgICA7ICgoMSA8PDwgNykgLS0tIDEsIDEp
Ci0gICAgOyAoMSA8PDwgNywgMikKLSAgICA7ICgoMSA8PDwgMTEpIC0tLSAx
LCAyKQotICAgIDsgKDEgPDw8IDExLCAzKQotICAgIDsgKCgxIDw8PCAxNikg
LS0tIDEsIDMpCi0gICAgOyAoMSA8PDwgMTYsIDQpCi0gICAgOyAoKDEgPDw8
IDIxKSAtLS0gMSwgNCkKLSAgICBdCi0KLSAgbGV0IHdpZHRoX3JlcXVpcmVk
X2Zvcl91Y3NfdmFsdWUgdmFsdWUgPQotICAgIGlmIHZhbHVlIDwgMHgwMDAw
ODAgKCogMSBsc2wgIDcgKikgdGhlbgotICAgICAgMQotICAgIGVsc2UgaWYg
dmFsdWUgPCAweDAwMDgwMCAoKiAxIGxzbCAxMSAqKSB0aGVuCi0gICAgICAy
Ci0gICAgZWxzZSBpZiB2YWx1ZSA8IDB4MDEwMDAwICgqIDEgbHNsIDE2ICop
IHRoZW4KLSAgICAgIDMKLSAgICBlbHNlCi0gICAgICA0Ci0KLSAgbGV0IHRl
c3Rfd2lkdGhfcmVxdWlyZWRfZm9yX3Vjc192YWx1ZSAoKSA9Ci0gICAgTGlz
dC5pdGVyCi0gICAgICAoZnVuICh2YWx1ZSwgd2lkdGgpIC0+Ci0gICAgICAg
IEFsY290ZXN0LihjaGVjayBpbnQpCi0gICAgICAgICAgInNhbWUgaW50cyIK
LSAgICAgICAgICAod2lkdGhfcmVxdWlyZWRfZm9yX3Vjc192YWx1ZSB2YWx1
ZSkKLSAgICAgICAgICB3aWR0aAotICAgICAgKQotICAgICAgdmFsaWRfdWNz
X3ZhbHVlX3dpZHRocwotCi0gICgqKiBBIGxpc3Qgb2YgdmFsaWQgY2hhcmFj
dGVyIGRlY29kaW5ncyByZXByZXNlbnRlZCBieQotICAgICAgdHVwbGVzIG9m
IHRoZSBmb3JtIChzLCAodiwgdykpLCB3aGVyZToKLQotICAgICAgcyA9IGEg
dmFsaWRseS1lbmNvZGVkIFVURi04IHN0cmluZzsKLSAgICAgIHYgPSB0aGUg
VUNTIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmc7Ci0gICAgICAg
ICAgKHdoaWNoIG1heSBvciBtYXkgbm90IGJlIHZhbGlkIGluIGl0cyBvd24g
cmlnaHQpCi0gICAgICB3ID0gdGhlIHdpZHRoIG9mIHRoZSBlbmNvZGVkIHN0
cmluZywgaW4gYnl0ZXMuCi0KLSAgICAgIEZvciBlYWNoIGJ5dGUgbGVuZ3Ro
IGIgaW4gWzEuLi40XSwgdGhlIGxpc3QgY29udGFpbnMKLSAgICAgIGRlY29k
aW5ncyBmb3I6Ci0KLSAgICAgIHZfbWluID0gdGhlIHNtYWxsZXN0IFVDUyB2
YWx1ZSBlbmNvZGFibGUgaW4gYiBieXRlcy4KLSAgICAgIHZfbWF4ID0gdGhl
IGdyZWF0ZXN0IFVDUyB2YWx1ZSBlbmNvZGFibGUgaW4gYiBieXRlcy4gKikK
LSAgbGV0IHZhbGlkX2NoYXJhY3Rlcl9kZWNvZGluZ3MgPQotICAgIFsKLSAg
ICAgICgqICAgICAgICAgICAgICAgNzY1NDMyMSAgICopCi0gICAgICAoKiAw
YjB4eHh4eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
Ci0gICAgICAoKiAwMDAwMDAwMDAwMDAwMHh4eHh4eHggICAqKQotICAgICAg
KCAiXHgwMCIgKCogMGIwMDAwMDAwMCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQotICAgICAgLCAoMGIwMDAwMDAwMDAwMDAwMDAwMDAw
MDAsIDEpCi0gICAgICApCi0gICAgOyAoICJceDdmIiAoKiAwYjAxMTExMTEx
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCi0gICAgICAs
ICgwYjAwMDAwMDAwMDAwMDAwMTExMTExMSwgMSkKLSAgICAgICkKLSAgICA7
ICgqICAgICAgICAgICAxMDk4NzY1NDMyMSAgICopCi0gICAgICAoKiAwYjEx
MHh4eHN4IDBiMTB4eHh4eHggICAgICAgICAgICAgICAgICAgICAgICopCi0g
ICAgICAoKiAwMDAwMDAwMDAweHh4c3h4eHh4eHggICAqKQotICAgICAgKCAi
XHhjMlx4ODAiICgqIDBiMTEwMDAwMTAgMGIxMDAwMDAwMCAgICAgICAgICAg
ICAgICAgICAgICAgKikKLSAgICAgICwgKDBiMDAwMDAwMDAwMDAwMDEwMDAw
MDAwLCAyKQotICAgICAgKQotICAgIDsgKCAiXHhkZlx4YmYiICgqIDBiMTEw
MTExMTEgMGIxMDExMTExMSAgICAgICAgICAgICAgICAgICAgICAgKikKLSAg
ICAgICwgKDBiMDAwMDAwMDAwMDExMTExMTExMTExLCAyKQotICAgICAgKQot
ICAgIDsgKCogICAgICA2NTQzMjEwOTg3NjU0MzIxICAgKikKLSAgICAgICgq
IDBiMTExMHh4eHggMGIxMHN4eHh4eCAwYjEweHh4eHh4ICAgICAgICAgICAg
KikKLSAgICAgICgqICAgICAgeHh4eHN4eHh4eHh4eHh4eCAgICopCi0gICAg
ICAoICJceGUwXHhhMFx4ODAiICgqIDBiMTExMDAwMDAgMGIxMDEwMDAwMCAw
YjEwMDAwMDAwICAgICAgICAgICAgKikKLSAgICAgICwgKDBiMDAwMDAwMDAw
MTAwMDAwMDAwMDAwLCAzKQotICAgICAgKQotICAgIDsgKCAiXHhlZlx4YmZc
eGJmIiAoKiAwYjExMTAxMTExIDBiMTAxMTExMTEgMGIxMDExMTExMSAgICAg
ICAgICAgICopCi0gICAgICAsICgwYjAwMDAwMTExMTExMTExMTExMTExMSwg
MykKLSAgICAgICkKLSAgICA7ICgqIDEwOTg3NjU0MzIxMDk4NzY1NDMyMSAg
ICopCi0gICAgICAoKiAwYjExMTEweHh4IDBiMTB4c3h4eHggMGIxMHh4eHh4
eCAwYjEweHh4eHh4ICopCi0gICAgICAoKiB4eHh4c3h4eHh4eHh4eHh4eHh4
eHggICAqKQotICAgICAgKCAiXHhmMFx4OTBceDgwXHg4MCIgKCogMGIxMTEx
MDAwMCAwYjEwMDEwMDAwIDBiMTAwMDAwMDAgMGIxMDAwMDAwMCAqKQotICAg
ICAgLCAoMGIwMDAwMTAwMDAwMDAwMDAwMDAwMDAsIDQpCi0gICAgICApCi0g
ICAgOyAoICJceGY3XHhiZlx4YmZceGJmIiAoKiAwYjExMTEwMTExIDBiMTAx
MTExMTEgMGIxMDExMTExMSAwYjEwMTExMTExICopCi0gICAgICAsICgwYjEx
MTExMTExMTExMTExMTExMTExMSwgNCkKLSAgICAgICkKLSAgICBdCi0KLSAg
bGV0IHVjaGFyID0gQWxjb3Rlc3QuaW50Ci0KLSAgbGV0IHRlc3RfZGVjb2Rl
X2NoYXJhY3Rlcl93aGVuX3ZhbGlkICgpID0KLSAgICBMaXN0Lml0ZXIKLSAg
ICAgIChmdW4gKHN0cmluZywgKHZhbHVlLCB3aWR0aCkpIC0+Ci0gICAgICAg
IEFsY290ZXN0LihjaGVjayAocGFpciB1Y2hhciBpbnQpKQotICAgICAgICAg
ICJzYW1lIHBhaXIiCi0gICAgICAgICAgKExlbmllbnRfVVRGOF9jb2RlYy5k
ZWNvZGVfY2hhcmFjdGVyIHN0cmluZyAwKQotICAgICAgICAgICh2YWx1ZSwg
d2lkdGgpCi0gICAgICApCi0gICAgICB2YWxpZF9jaGFyYWN0ZXJfZGVjb2Rp
bmdzCi0KLSAgKCoqIEEgbGlzdCBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgb3Zl
cmxvbmcgY2hhcmFjdGVyIGVuY29kaW5ncy4KLSAgICAgIEZvciBlYWNoIGJ5
dGUgbGVuZ3RoIGIgaW4gWzIuLi40XSwgdGhpcyBsaXN0IGNvbnRhaW5zIHRo
ZQotICAgICAgb3ZlcmxvbmcgZW5jb2RpbmcgZSAodiksIHdoZXJlIHYgaXMg
dGhlIFVDUyB2YWx1ZSBvbmUgbGVzcwotICAgICAgdGhhbiB0aGUgc21hbGxl
c3QgVUNTIHZhbHVlIHZhbGlkbHktZW5jb2RhYmxlIGluIGIgYnl0ZXMuICop
Ci0gIGxldCBvdmVybG9uZ19jaGFyYWN0ZXJfZW5jb2RpbmdzID0KLSAgICBb
Ci0gICAgICAiXHhjMVx4YmYiICgqIDBiMTEwMDAwMDEgMGIxMDExMTExMSAg
ICAgICAgICAgICAgICAgICAgICAgKikKLSAgICA7ICJceGUwXHg5Zlx4YmYi
ICgqIDBiMTExMDAwMDAgMGIxMDAxMTExMSAwYjEwMTExMTExICAgICAgICAg
ICAgKikKLSAgICA7ICJceGYwXHg4Zlx4YmZceGJmIiAoKiAwYjExMTEwMDAw
IDBiMTAwMDExMTEgMGIxMDExMTExMSAwYjEwMTExMTExICopCi0gICAgXQot
Ci0gIGxldCB0ZXN0X2RlY29kZV9jaGFyYWN0ZXJfd2hlbl9vdmVybG9uZyAo
KSA9Ci0gICAgTGlzdC5pdGVyCi0gICAgICAoZnVuIHN0cmluZyAtPgotICAg
ICAgICBBbGNvdGVzdC5jaGVja19yYWlzZXMgInNob3VsZCBmYWlsIiBFLlVU
RjhfZW5jb2Rpbmdfbm90X2Nhbm9uaWNhbAotICAgICAgICAgIChmdW4gKCkg
LT4gTGVuaWVudF9VVEY4X2NvZGVjLmRlY29kZV9jaGFyYWN0ZXIgc3RyaW5n
IDAgfD4gaWdub3JlCi0gICAgICAgICkKLSAgICAgICkKLSAgICAgIG92ZXJs
b25nX2NoYXJhY3Rlcl9lbmNvZGluZ3MKLQotICBsZXQgdGVzdHMgPQotICAg
IFsKLSAgICAgICggInRlc3Rfd2lkdGhfcmVxdWlyZWRfZm9yX3Vjc192YWx1
ZSIKLSAgICAgICwgYFF1aWNrCi0gICAgICAsIHRlc3Rfd2lkdGhfcmVxdWly
ZWRfZm9yX3Vjc192YWx1ZQotICAgICAgKQotICAgIDsgKCAidGVzdF9kZWNv
ZGVfY2hhcmFjdGVyX3doZW5fdmFsaWQiCi0gICAgICAsIGBRdWljawotICAg
ICAgLCB0ZXN0X2RlY29kZV9jaGFyYWN0ZXJfd2hlbl92YWxpZAotICAgICAg
KQotICAgIDsgKCAidGVzdF9kZWNvZGVfY2hhcmFjdGVyX3doZW5fb3Zlcmxv
bmciCi0gICAgICAsIGBRdWljawotICAgICAgLCB0ZXN0X2RlY29kZV9jaGFy
YWN0ZXJfd2hlbl9vdmVybG9uZwotICAgICAgKQotICAgIF0KLWVuZAotCi1s
ZXQgKCkgPQotICBBbGNvdGVzdC5ydW4gIkVuY29kaW5ncyIKLSAgICBbCi0g
ICAgICAoIlVDUyIsIFVDUy50ZXN0cykKLSAgICA7ICgiWE1MIiwgWE1MLnRl
c3RzKQotICAgIDsgKCJTdHJpbmdfdmFsaWRhdG9yIiwgU3RyaW5nX3ZhbGlk
YXRvci50ZXN0cykKLSAgICA7ICgiWE1MX1VURjhfVUNTX3ZhbGlkYXRvciIs
IFhNTF9VVEY4X1VDU192YWxpZGF0b3IudGVzdHMpCi0gICAgOyAoIlVURjhf
Y29kZWMiLCBVVEY4X2NvZGVjLnRlc3RzKQotICAgIF0KZGlmZiAtLWdpdCBh
L29jYW1sL2xpYnMveGFwaS1zdGRleHQvbGliL3hhcGktc3RkZXh0LWVuY29k
aW5ncy91dGY4Lm1sIGIvb2NhbWwvbGlicy94YXBpLXN0ZGV4dC9saWIveGFw
aS1zdGRleHQtZW5jb2RpbmdzL3V0ZjgubWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwLi5kMTdkODViM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9vY2FtbC9saWJzL3hhcGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1l
bmNvZGluZ3MvdXRmOC5tbApAQCAtMCwwICsxLDc0IEBACisoKgorICogQ29w
eXJpZ2h0IChjKSBDbG91ZCBTb2Z0d2FyZSBHcm91cCwgSW5jLgorICoKKyAq
IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh
cyBwdWJsaXNoZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IHZlcnNpb24gMi4xIG9ubHkuIHdpdGggdGhlIHNwZWNpYWwKKyAqIGV4
Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIExJQ0VOU0Uu
CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKikKKwor
bGV0IGlzX3ZhbGlkID0gU3RyaW5nLmlzX3ZhbGlkX3V0Zl84CisKKygqIGRl
cHJlY2F0ZWQgLSByZWplY3QgaW52YWxpZCBVVEYtOCAqKQorbGV0IGxvbmdl
c3RfdmFsaWRfcHJlZml4IHN0ciA9CisgIGxldCBsZW4gPSBTdHJpbmcubGVu
Z3RoIHN0ciBpbgorICBsZXQgcmVjIGxvb3AgPSBmdW5jdGlvbgorICAgIHwg
aSB3aGVuIGkgPCBsZW4gLT4KKyAgICAgICAgbGV0IGRlYyA9IFN0cmluZy5n
ZXRfdXRmXzhfdWNoYXIgc3RyIGkgaW4KKyAgICAgICAgaWYgVWNoYXIudXRm
X2RlY29kZV9pc192YWxpZCBkZWMgdGhlbgorICAgICAgICAgIGxvb3AgKGkg
KyBVY2hhci51dGZfZGVjb2RlX2xlbmd0aCBkZWMpCisgICAgICAgIGVsc2UK
KyAgICAgICAgICBTdHJpbmcuc3ViIHN0ciAwIGkKKyAgICB8IGkgd2hlbiBp
ID0gbGVuIC0+CisgICAgICAgIHN0cgorICAgIHwgaSAtPgorICAgICAgICBT
dHJpbmcuc3ViIHN0ciAwIGkgKCogbmV2ZXIgcmVhY2hlZCAqKQorICBpbgor
ICBsb29wIDAKKworbW9kdWxlIFhNTCA9IHN0cnVjdAorICAoKiogc29tZSBV
VEYtOCBjaGFyYWN0ZXJzIGFyZSBub3QgbGVnYWwgaW4gWE1MLiBBc3N1bWlu
ZyB1Y2hhciBpcworICAgICAgbGVnYWwgVVRGLTgsIGZ1cnRoZXIgY2hlY2sg
dGhhdCBpdCBpcyBsZWdhbCBpbiBYTUwgKikKKyAgbGV0IGlzX2xlZ2FsIHVj
aGFyID0KKyAgICBsZXQgdWNoYXIgPSBVY2hhci50b19pbnQgdWNoYXIgaW4K
KyAgICB1Y2hhciA+PSAweDIwIHx8IHVjaGFyID0gMHgwOSB8fCB1Y2hhciA9
IDB4MGEgfHwgdWNoYXIgPSAweDBkCisgIFtAQGlubGluZV0KKworICBsZXQg
aXNfdmFsaWQgc3RyID0KKyAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBz
dHIgaW4KKyAgICBsZXQgcmVjIGxvb3AgPSBmdW5jdGlvbgorICAgICAgfCBp
IHdoZW4gaSA8IGxlbiAtPgorICAgICAgICAgIGxldCBkZWMgPSBTdHJpbmcu
Z2V0X3V0Zl84X3VjaGFyIHN0ciBpIGluCisgICAgICAgICAgVWNoYXIudXRm
X2RlY29kZV9pc192YWxpZCBkZWMKKyAgICAgICAgICAmJiBpc19sZWdhbCAo
VWNoYXIudXRmX2RlY29kZV91Y2hhciBkZWMpCisgICAgICAgICAgJiYgbG9v
cCAoaSArIFVjaGFyLnV0Zl9kZWNvZGVfbGVuZ3RoIGRlYykKKyAgICAgIHwg
XyAtPgorICAgICAgICAgIHRydWUKKyAgICBpbgorICAgIGxvb3AgMAorCisg
ICgqIGRlcHJlY2F0ZWQgLSByZWplY3QgaW52YWxpZCBVVEYtOCAqKQorICBs
ZXQgbG9uZ2VzdF92YWxpZF9wcmVmaXggc3RyID0KKyAgICBsZXQgbGVuID0g
U3RyaW5nLmxlbmd0aCBzdHIgaW4KKyAgICBsZXQgcmVjIGxvb3AgPSBmdW5j
dGlvbgorICAgICAgfCBpIHdoZW4gaSA8IGxlbiAtPgorICAgICAgICAgIGxl
dCBkZWMgPSBTdHJpbmcuZ2V0X3V0Zl84X3VjaGFyIHN0ciBpIGluCisgICAg
ICAgICAgaWYKKyAgICAgICAgICAgIFVjaGFyLnV0Zl9kZWNvZGVfaXNfdmFs
aWQgZGVjCisgICAgICAgICAgICAmJiBpc19sZWdhbCAoVWNoYXIudXRmX2Rl
Y29kZV91Y2hhciBkZWMpCisgICAgICAgICAgdGhlbgorICAgICAgICAgICAg
bG9vcCAoaSArIFVjaGFyLnV0Zl9kZWNvZGVfbGVuZ3RoIGRlYykKKyAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICBTdHJpbmcuc3ViIHN0ciAwIGkKKyAg
ICAgIHwgaSB3aGVuIGkgPSBsZW4gLT4KKyAgICAgICAgICBzdHIgKCogYXZv
aWQgY29weSAqKQorICAgICAgfCBpIC0+CisgICAgICAgICAgU3RyaW5nLnN1
YiBzdHIgMCBpICgqIG5ldmVyIHJlYWNoZWQgKikKKyAgICBpbgorICAgIGxv
b3AgMAorZW5kCmRpZmYgLS1naXQgYS9vY2FtbC9saWJzL3hhcGktc3RkZXh0
L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3MvdXRmOC5tbGkgYi9vY2FtbC9s
aWJzL3hhcGktc3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3MvdXRm
OC5tbGkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42
ZDg5NDllMmYKLS0tIC9kZXYvbnVsbAorKysgYi9vY2FtbC9saWJzL3hhcGkt
c3RkZXh0L2xpYi94YXBpLXN0ZGV4dC1lbmNvZGluZ3MvdXRmOC5tbGkKQEAg
LTAsMCArMSwzMSBAQAorKCoKKyAqIENvcHlyaWdodCAoYykgQ2xvdWQgU29m
dHdhcmUgR3JvdXAsIEluYy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v
ZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisgKiBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBvbmx5
LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBleGNlcHRpb24gb24gbGlua2luZyBk
ZXNjcmliZWQgaW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICopCisKK3ZhbCBpc192YWxpZCA6IHN0cmlu
ZyAtPiBib29sCisoKiogdHJ1ZSwgaWYgYSBzdHJpbmcgaXMgYSBwcm9wZXIg
VVRGLTggc3RyaW5nICopCisKK3ZhbCBsb25nZXN0X3ZhbGlkX3ByZWZpeCA6
IHN0cmluZyAtPiBzdHJpbmcKKygqKiBEZXByZWNhdGVkLiBMb25nZXN0IHBy
ZWZpeCBvZiBhIHN0cmluZyB0aGF0IGlzIHByb3BlciBVVEYtOCAqKQorCiso
KiBzdHJpbmdzIGluIFhNTCBhcmUgbW9yZSByZXN0cmljdGVkIHRoYW4gVVRG
LTggaW4gZ2VuZXJhbC4gVGhlIG11c3QgYmUKKyAgIHZhbGlkIFVURi04IGFu
ZCBtdXN0IG5vdCBjb250YWluIGNlcnRhaW4gY2hhcmFjdGVycyAqKQorCitt
b2R1bGUgWE1MIDogc2lnCisgIHZhbCBpc192YWxpZCA6IHN0cmluZyAtPiBi
b29sCisgICgqKiB0cnVlLCBpZiBhIHN0cmluZyBpcyBhIHByb3BlciBVVEYt
OCBzdHJpbmcgaW4gWE1MICopCisKKyAgdmFsIGxvbmdlc3RfdmFsaWRfcHJl
Zml4IDogc3RyaW5nIC0+IHN0cmluZworICAoKiogRGVwcmVjYXRlZC4gbG9u
Z2VzdCBwcmVmaXggb2YgYSBzdHJpbmcgdGhhdCBpcyBwcm9wZXIgVVRGLTgu
CisgICAgICBCZXR0ZXIgcmVqZWN0IGludmFsaWQgVVRGLTguICopCitlbmQK
ZGlmZiAtLWdpdCBhL29jYW1sL3hhcGkveGFwaV9tZXNzYWdlLm1sIGIvb2Nh
bWwveGFwaS94YXBpX21lc3NhZ2UubWwKaW5kZXggNDA4YmE3YWNmLi40YzA4
NjQ4ZGMgMTAwNjQ0Ci0tLSBhL29jYW1sL3hhcGkveGFwaV9tZXNzYWdlLm1s
CisrKyBiL29jYW1sL3hhcGkveGFwaV9tZXNzYWdlLm1sCkBAIC0yOCw3ICsy
OCw3IEBACiAgKikKIAogbW9kdWxlIERhdGUgPSBDbG9jay5EYXRlCi1tb2R1
bGUgRW5jb2RpbmdzID0gWGFwaV9zdGRleHRfZW5jb2RpbmdzLkVuY29kaW5n
cworbW9kdWxlIEVuY29kaW5ncyA9IFhhcGlfc3RkZXh0X2VuY29kaW5ncwog
bW9kdWxlIExpc3RleHQgPSBYYXBpX3N0ZGV4dF9zdGQuTGlzdGV4dAogbW9k
dWxlIFBlcnZhc2l2ZWV4dCA9IFhhcGlfc3RkZXh0X3BlcnZhc2l2ZXMuUGVy
dmFzaXZlZXh0CiBtb2R1bGUgVW5peGV4dCA9IFhhcGlfc3RkZXh0X3VuaXgu
VW5peGV4dApAQCAtNDE0LDcgKzQxNCw3IEBAIGxldCBjcmVhdGUgfl9fY29u
dGV4dCB+bmFtZSB+cHJpb3JpdHkgfmNscyB+b2JqX3V1aWQgfmJvZHkgPQog
ICBkZWJ1ZyAiTWVzc2FnZS5jcmVhdGUgJXMgJUxkICVzICVzIiBuYW1lIHBy
aW9yaXR5CiAgICAgKFJlY29yZF91dGlsLmNsc190b19zdHJpbmcgY2xzKQog
ICAgIG9ial91dWlkIDsKLSAgaWYgbm90IChFbmNvZGluZ3MuVVRGOF9YTUwu
aXNfdmFsaWQgYm9keSkgdGhlbgorICBpZiBub3QgKEVuY29kaW5ncy5VdGY4
LmlzX3ZhbGlkIGJvZHkpIHRoZW4KICAgICByYWlzZSAoQXBpX2Vycm9ycy5T
ZXJ2ZXJfZXJyb3IgKEFwaV9lcnJvcnMuaW52YWxpZF92YWx1ZSwgWyJVVEY4
IGV4cGVjdGVkIl0pKSA7CiAgIGlmIG5vdCAoY2hlY2tfdXVpZCB+X19jb250
ZXh0IH5jbHMgfnV1aWQ6b2JqX3V1aWQpIHRoZW4KICAgICByYWlzZQo=

--=separator--


From xen-announce-bounces@lists.xenproject.org Tue Sep 09 12:00:55 2025
Return-path: <xen-announce-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 09 Sep 2025 12:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1116440.1462768 (Exim 4.92)
	(envelope-from <xen-announce-bounces@lists.xenproject.org>)
	id 1uvx1Z-0004ht-Gw; Tue, 09 Sep 2025 12:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1116440.1462768; Tue, 09 Sep 2025 12:00:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-announce-bounces@lists.xenproject.org>)
	id 1uvx1Z-0004hj-Dd; Tue, 09 Sep 2025 12:00:37 +0000
Received: by outflank-mailman (input) for mailman id 1116440;
 Tue, 09 Sep 2025 12:00:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEb6=3U=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1uvx1Y-0004Tc-0C
 for xen-announce@lists.xen.org; Tue, 09 Sep 2025 12:00:36 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93c5610d-8d74-11f0-9809-7dc792cee155;
 Tue, 09 Sep 2025 14:00:30 +0200 (CEST)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1uvx1K-001exF-14;
 Tue, 09 Sep 2025 12:00:22 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1uvx1K-001SUg-0t;
 Tue, 09 Sep 2025 12:00:22 +0000
X-BeenThere: xen-announce@lists.xenproject.org
List-Id: "Xen announcements \(low volume\)" <xen-announce.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-announce>, 
 <mailto:xen-announce-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-announce@lists.xenproject.org>
List-Help: <mailto:xen-announce-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-announce>, 
 <mailto:xen-announce-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-announce-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-announce" <xen-announce-bounces@lists.xenproject.org>
X-Inumbo-ID: 93c5610d-8d74-11f0-9809-7dc792cee155
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 472 v2 (CVE-2025-27466,CVE-2025-58142,CVE-2025-58143)
 - Mutiple vulnerabilities in the Viridian interface
Message-Id: <E1uvx1K-001SUg-0t@xenbits.xenproject.org>
Date: Tue, 09 Sep 2025 12:00:22 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

 Xen Security Advisory CVE-2025-27466,CVE-2025-58142,CVE-2025-58143 / XSA-472
                                   version 2

           Mutiple vulnerabilities in the Viridian interface

UPDATES IN VERSION 2
====================

Public release.

ISSUE DESCRIPTION
=================

There are multiple issues related to the handling and accessing of guest
memory pages in the viridian code:

 1. A NULL pointer dereference in the updating of the reference TSC area.
    This is CVE-2025-27466.

 2. A NULL pointer dereference by assuming the SIM page is mapped when
    a synthetic timer message has to be delivered.  This is
    CVE-2025-58142.

 3. A race in the mapping of the reference TSC page, where a guest can
    get Xen to free a page while still present in the guest physical to
    machine (p2m) page tables.  This is CVE-2025-58143.

IMPACT
======

Denial of Service (DoS) affecting the entire host, information leaks, or
elevation of privilege.

VULNERABLE SYSTEMS
==================

Xen versions 4.13 and newer are vulnerable.  Xen versions 4.12 and older
are not vulnerable.

Only x86 HVM guests which have the reference_tsc or stimer viridian
extensions enabled are vulnerable.

MITIGATION
==========

Not enabling the reference_tsc and stimer viridian extensions will avoid
the issues.

CREDITS
=======

This issue was discovered by Roger Pau Monné of XenServer.

RESOLUTION
==========

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa472-?.patch         xen-unstable - Xen 4.17.x

$ sha256sum xsa472*
16e14b3cc87800c08d96adc18e66aa4a20a77834af12b9cdd01d739882f07b7d  xsa472-1.patch
4be6a1066fbec367e8c9883240cec2a78671d484928d51ac5fb82e2c539e38ca  xsa472-2.patch
9e1972a2b5a7a817b25cad0fa80c983198bb73a2788a4d0b5cdcaca4518a57cf  xsa472-3.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches (but not mitigations) described above (or others
which are substantially similar) is permitted during the embargo, even on
public-facing systems with untrusted guest users and administrators.

This is because the mitigations are guest visible changes, and hence could
give hints to users about the upcoming vulnerabilities.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmjAFT8MHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZGV8H+QEb73eX4Nf/BSKpeLxzO5vpieWv9vFX83Tq9/LH
KFQKbz4Y13XjtrxEpQhnZCYBEjgByBECrCnngaqjT8P3G17fhiEp2pMgMsU783mz
TPtmdDcC63WGNyqB/7j3jxDLuCscPKKGjS+DHmcIbiV9H820EYQi83mWOGNwXRQP
pYaMz5HSO15YypxKgK4i+piVceTS/fL0dclFU/vY13bq9sCqE/E4XRsClPgk1ryS
LqUBtXbQJfxSK9asMxd0BLozVsWNVgZ6e2XTWpPf/T5EBoOo+qhQ2XaRmGCyVi98
D5t8BJ0HV83Ptik37QlosjsRbtogPXpOiaPsFmB15WFlxk8=
=/zd8
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa472-1.patch"
Content-Disposition: attachment; filename="xsa472-1.patch"
Content-Transfer-Encoding: base64

RnJvbSAyNjIxMTRhNDQwYmY3YzMyZmQ2ZDIxNWUyNDNiM2VhZWJkZDZkN2Nk
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2dlciBQYXUgTW9u
bmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpEYXRlOiBUaHUsIDEwIEp1bCAy
MDI1IDE1OjUxOjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAxLzNdIHg4Ni92
aXJpZGlhbjogYXZvaWQgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluCiB1
cGRhdGVfcmVmZXJlbmNlX3RzYygpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy
YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgZnVuY3Rpb24gaXMgb25seSBj
YWxsZWQgd2hlbiB0aGUgTVNSIGhhcyB0aGUgZW5hYmxlZCBiaXQgc2V0LCBi
dXQgZXZlbgp0aGVuIHRoZSBwYWdlIG1pZ2h0IG5vdCBiZSBtYXBwZWQgYmVj
YXVzZSB0aGUgZ3Vlc3QgcHJvdmlkZWQgZ2ZuIGlzIG5vdApzdWl0YWJsZS4K
ClByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdXBkYXRl
X3JlZmVyZW5jZV90c2MoKSBieSBjaGVja2luZwp3aGV0aGVyIHRoZSBwYWdl
IGlzIG1hcHBlZC4KClRoaXMgaXMgQ1ZFLTIwMjUtMjc0NjYgLyBwYXJ0IG9m
IFhTQS00NzIuCgpGaXhlczogMzg2YjMzNjUyMjFkICgndmlyaWRpYW46IHVz
ZSB2aXJpZGlhbl9tYXAvdW5tYXBfZ3Vlc3RfcGFnZSgpIGZvciByZWZlcmVu
Y2UgdHNjIHBhZ2UnKQpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOp
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVs
aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvaHZt
L3ZpcmlkaWFuL3RpbWUuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQg
aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v
dmlyaWRpYW4vdGltZS5jIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi90
aW1lLmMKaW5kZXggMTM3NTc3Mzg0ZjFlLi5jYTZkNTI2ZjQ2YjcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdGltZS5jCisrKyBi
L3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdGltZS5jCkBAIC0yNiw2ICsy
NiwxMCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcmVmZXJlbmNlX3RzYyhjb25z
dCBzdHJ1Y3QgZG9tYWluICpkLCBib29sIGluaXRpYWxpemUpCiAgICAgSFZf
UkVGRVJFTkNFX1RTQ19QQUdFICpwID0gcnQtPnB0cjsKICAgICB1aW50MzJf
dCBzZXE7CiAKKyAgICAvKiBSZWZlcmVuY2UgVFNDIHBhZ2UgbWlnaHQgbm90
IGJlIG1hcHBlZCBldmVuIGlmIHRoZSBNU1IgaXMgZW5hYmxlZC4gKi8KKyAg
ICBpZiAoICFwICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCBpbml0
aWFsaXplICkKICAgICAgICAgY2xlYXJfcGFnZShwKTsKIAotLSAKMi40OS4w
Cgo=

--=separator
Content-Type: application/octet-stream; name="xsa472-2.patch"
Content-Disposition: attachment; filename="xsa472-2.patch"
Content-Transfer-Encoding: base64

RnJvbSA3MWM5NTY4ZTI5MGI1MWRmZDdhYjA5MWFjOThiMjcyZmQwYWEwYjkw
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2dlciBQYXUgTW9u
bmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpEYXRlOiBUaHUsIDEwIEp1bCAy
MDI1IDE1OjU4OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIHg4Ni92
aXJpZGlhbjogYXZvaWQgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluCiB2
aXJpZGlhbl9zeW5pY19kZWxpdmVyX3RpbWVyX21zZygpCk1JTUUtVmVyc2lv
bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt
OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgZnVuY3Rp
b24gaXMgY2FsbGVkIHVuY29uZGl0aW9uYWxseSwgcmVnYXJkbGVzcyBvZiB3
aGV0aGVyIHRoZSBTSU0gcGFnZQppcyBtYXBwZWQuICBBdm9pZCBhIE5VTEwg
cG9pbnRlciBkZXJlZmVyZW5jZSBpbgp2aXJpZGlhbl9zeW5pY19kZWxpdmVy
X3RpbWVyX21zZygpIGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIFNJTSBwYWdl
IGlzCm1hcHBlZC4KClRoaXMgaXMgQ1ZFLTIwMjUtNTgxNDIgLyBwYXJ0IG9m
IFhTQS00NzIuCgpGaXhlczogMjZmYmEzYzg1NTcxICgndmlyaWRpYW46IGFk
ZCBpbXBsZW1lbnRhdGlvbiBvZiBzeW50aGV0aWMgdGltZXJzJykKU2lnbmVk
LW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5j
b20+Ci0tLQogeGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi9zeW5pYy5jIHwg
NCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZm
IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi9zeW5pYy5jIGIv
eGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi9zeW5pYy5jCmluZGV4IGMzZGM1
NzNiMDAzZC4uZTZjYmE3NTQ4ZjFiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvaHZtL3ZpcmlkaWFuL3N5bmljLmMKKysrIGIveGVuL2FyY2gveDg2L2h2
bS92aXJpZGlhbi9zeW5pYy5jCkBAIC0zMzgsNiArMzM4LDEwIEBAIGJvb2wg
dmlyaWRpYW5fc3luaWNfZGVsaXZlcl90aW1lcl9tc2coc3RydWN0IHZjcHUg
KnYsIHVuc2lnbmVkIGludCBzaW50eCwKICAgICAgICAgLkRlbGl2ZXJ5VGlt
ZSA9IGRlbGl2ZXJ5LAogICAgIH07CiAKKyAgICAvKiBEb24ndCBhc3N1bWUg
U0lNIHBhZ2UgdG8gYmUgbWFwcGVkLiAqLworICAgIGlmICggIW1zZyApCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIC8qCiAgICAgICogVG8gYXZv
aWQgdXNpbmcgYW4gYXRvbWljIHRlc3QtYW5kLXNldCwgYW5kIGJhcnJpZXIg
YmVmb3JlIGNhbGxpbmcKICAgICAgKiB2bGFwaWNfc2V0X2lycSgpLCB0aGlz
IGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGluIGNvbnRleHQgb2YgdGhlCi0t
IAoyLjQ5LjAKCg==

--=separator
Content-Type: application/octet-stream; name="xsa472-3.patch"
Content-Disposition: attachment; filename="xsa472-3.patch"
Content-Transfer-Encoding: base64

RnJvbSBhZWQ0Y2ZkNjRkMTc4YWVlNjc3YTg3OTA0NDBhZGRkYTAzNjc4Y2Q2
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2dlciBQYXUgTW9u
bmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpEYXRlOiBUaHUsIDMgSnVsIDIw
MjUgMTM6MDk6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvM10geDg2L3Zp
cmlkaWFuOiBwcm90ZWN0IGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9uIG9mIHRo
ZQogcmVmZXJlbmNlIFRTQyBwYWdlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy
YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgcmVmZXJlbmNlIFRTQyBwYWdl
IGlzIHNoYXJlZCBiZXR3ZWVuIGFsbCB2Q1BVcywgYW5kIHRoZSBkYXRhIHN0
b3JlZCBpbgp0aGUgZG9tYWluIHN0cnVjdC4gIEhvd2V2ZXIgdGhlIGhhbmRs
ZXJzIHRvIHNldCBhbmQgY2xlYXIgaXQgYXJlIG5vdCBzYWZlCmFnYWluc3Qg
Y29uY3VycmVudCBhY2Nlc3Nlcy4gIEl0J3MgcG9zc2libGUgZm9yIHR3byAo
b3IgbW9yZSkgdkNQVXMgdG8gY2FsbApIVl9YNjRfTVNSX1JFRkVSRU5DRV9U
U0MgYXQgdGhlIHNhbWUgdGltZSBhbmQgY2F1c2UgdGhlIGluLXVzZSByZWZl
cmVuY2UKVFNDIHBhZ2UgdG8gYmUgZnJlZWQsIHdoaWxlIHN0aWxsIGJlaW5n
IG9uIHRoZSBwMm0uICBUaGlzIGNyZWF0ZXMgYW4KaW5mb3JtYXRpb24gbGVh
aywgd2hlcmUgdGhlIHBhZ2UgY2FuIGVuZCB1cCBtYXBwZWQgaW4gYW5vdGhl
ciBkb21haW4gd2hpbGUKc3RpbGwgYmVpbmcgcGFydCBvZiB0aGUgb3JpZ2lu
YWwgZG9tYWluIHAybS4KCkl0J3MgYWxzbyBwb3NzaWJsZSB0byB1bmRlcmZs
b3cgdGhlIHJlZmVyZW5jZSBjb3VudGVyLCBhcyBtdWx0aXBsZQpjb25jdXJy
ZW50IHdyaXRlcyB0byBIVl9YNjRfTVNSX1JFRkVSRU5DRV9UU0MgY2FuIGNy
ZWF0ZSBhbiBpbWJhbGFuY2Ugb24KdGhlIG51bWJlciBvZiBwdXRfcGFnZV9h
bmRfdHlwZSgpIGNhbGxzLgoKSW50cm9kdWNlIGEgbG9jayB0byBwcm90ZWN0
IHRoZSByZWZlcmVuY2UgVFNDIGRvbWFpbiBmaWVsZCwgdGh1cwpzZXJpYWxp
emluZyBjb25jdXJyZW50IHZDUFUgYWNjZXNzZXMuCgpUaGlzIGlzIENWRS0y
MDI1LTU4MTQzIC8gcGFydCBvZiBYU0EtNDcyLgoKRml4ZXM6IDM4NmIzMzY1
MjIxZCAoJ3ZpcmlkaWFuOiB1c2UgdmlyaWRpYW5fbWFwL3VubWFwX2d1ZXN0
X3BhZ2UoKSBmb3IgcmVmZXJlbmNlIHRzYyBwYWdlJykKU2lnbmVkLW9mZi1i
eTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJl
dmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0t
LQogeGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi90aW1lLmMgICAgICAgIHwg
NCArKysrCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3ZpcmlkaWFuLmMg
ICAgfCAyICsrCiB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL3Zpcmlk
aWFuLmggfCAxICsKIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi90aW1l
LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3RpbWUuYwppbmRleCBj
YTZkNTI2ZjQ2YjcuLjkzMTE4NThkNjNjMCAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2h2bS92aXJpZGlhbi90aW1lLmMKKysrIGIveGVuL2FyY2gveDg2
L2h2bS92aXJpZGlhbi90aW1lLmMKQEAgLTEwOCw4ICsxMDgsMTAgQEAgc3Rh
dGljIHZvaWQgdGltZV9yZWZfY291bnRfdGhhdyhjb25zdCBzdHJ1Y3QgZG9t
YWluICpkKQogCiAgICAgdHJjLT5vZmYgPSAoaW50NjRfdCl0cmMtPnZhbCAt
IHRyY192YWwoZCwgMCk7CiAKKyAgICBzcGluX2xvY2soJnZkLT5sb2NrKTsK
ICAgICBpZiAoIHZkLT5yZWZlcmVuY2VfdHNjLm1zci5lbmFibGVkICkKICAg
ICAgICAgdXBkYXRlX3JlZmVyZW5jZV90c2MoZCwgZmFsc2UpOworICAgIHNw
aW5fdW5sb2NrKCZ2ZC0+bG9jayk7CiB9CiAKIHN0YXRpYyB1aW50NjRfdCB0
aW1lX3JlZl9jb3VudChjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQpAQCAtMzMx
LDYgKzMzMyw3IEBAIGludCB2aXJpZGlhbl90aW1lX3dybXNyKHN0cnVjdCB2
Y3B1ICp2LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKICAgICAgICAg
aWYgKCAhKHZpcmlkaWFuX2ZlYXR1cmVfbWFzayhkKSAmIEhWTVBWX3JlZmVy
ZW5jZV90c2MpICkKICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQ
VElPTjsKIAorICAgICAgICBzcGluX2xvY2soJnZkLT5sb2NrKTsKICAgICAg
ICAgdmlyaWRpYW5fdW5tYXBfZ3Vlc3RfcGFnZSgmdmQtPnJlZmVyZW5jZV90
c2MpOwogICAgICAgICB2ZC0+cmVmZXJlbmNlX3RzYy5tc3IucmF3ID0gdmFs
OwogICAgICAgICB2aXJpZGlhbl9kdW1wX2d1ZXN0X3BhZ2UodiwgIlJFRkVS
RU5DRV9UU0MiLCAmdmQtPnJlZmVyZW5jZV90c2MpOwpAQCAtMzM5LDYgKzM0
Miw3IEBAIGludCB2aXJpZGlhbl90aW1lX3dybXNyKHN0cnVjdCB2Y3B1ICp2
LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKICAgICAgICAgICAgIHZp
cmlkaWFuX21hcF9ndWVzdF9wYWdlKGQsICZ2ZC0+cmVmZXJlbmNlX3RzYyk7
CiAgICAgICAgICAgICB1cGRhdGVfcmVmZXJlbmNlX3RzYyhkLCB0cnVlKTsK
ICAgICAgICAgfQorICAgICAgICBzcGluX3VubG9jaygmdmQtPmxvY2spOwog
ICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSFZfWDY0X01TUl9USU1FX1JF
Rl9DT1VOVDoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRp
YW4vdmlyaWRpYW4uYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdmly
aWRpYW4uYwppbmRleCA3ZWE2YzkwMTY4OTQuLmMwYmUyNGJkMjIxMCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi92aXJpZGlhbi5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdmlyaWRpYW4uYwpA
QCAtNDk0LDYgKzQ5NCw4IEBAIGludCB2aXJpZGlhbl9kb21haW5faW5pdChz
dHJ1Y3QgZG9tYWluICpkKQogICAgIGlmICggIWQtPmFyY2guaHZtLnZpcmlk
aWFuICkKICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAKKyAgICBzcGluX2xv
Y2tfaW5pdCgmZC0+YXJjaC5odm0udmlyaWRpYW4tPmxvY2spOworCiAgICAg
cmMgPSB2aXJpZGlhbl9zeW5pY19kb21haW5faW5pdChkKTsKICAgICBpZiAo
IHJjICkKICAgICAgICAgZ290byBmYWlsOwpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2luY2x1ZGUvYXNtL2h2bS92aXJpZGlhbi5oIGIveGVuL2FyY2gv
eDg2L2luY2x1ZGUvYXNtL2h2bS92aXJpZGlhbi5oCmluZGV4IDRjOGZmNmU4
MGI2Zi4uNDdjOWQxMzg0MWFjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv
aW5jbHVkZS9hc20vaHZtL3ZpcmlkaWFuLmgKKysrIGIveGVuL2FyY2gveDg2
L2luY2x1ZGUvYXNtL2h2bS92aXJpZGlhbi5oCkBAIC03MSw2ICs3MSw3IEBA
IHN0cnVjdCB2aXJpZGlhbl9kb21haW4KICAgICBERUNMQVJFX0JJVE1BUCho
eXBlcmNhbGxfZmxhZ3MsIF9IQ0FMTF9ucik7CiAgICAgc3RydWN0IHZpcmlk
aWFuX3RpbWVfcmVmX2NvdW50IHRpbWVfcmVmX2NvdW50OwogICAgIHN0cnVj
dCB2aXJpZGlhbl9wYWdlIHJlZmVyZW5jZV90c2M7CisgICAgc3BpbmxvY2tf
dCBsb2NrOwogfTsKIAogdm9pZCBjcHVpZF92aXJpZGlhbl9sZWF2ZXMoY29u
c3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYsCi0tIAoyLjQ5LjAK
Cg==

--=separator--


