From win-pv-devel-bounces@lists.xenproject.org Mon Oct 02 10:10:42 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 02 Oct 2017 10:10:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dyxgO-0008Qy-NG; Mon, 02 Oct 2017 10:10:40 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4414723a3=Paul.Durrant@citrix.com>)
 id 1dyxgN-0008Qs-AH
 for win-pv-devel@lists.xenproject.org; Mon, 02 Oct 2017 10:10:39 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
 8E/63-02041-E9012D95; Mon, 02 Oct 2017 10:10:38 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDLMWRWlGSWpSXmKPExsXitHRDpO4cgUu
 RBvOvMFr8WZzowOhx+MMVlgDGKNbMvKT8igTWjNk3L7MX9LJWfLw7lbWBcQ5LFyMnh4SAv8Sb
 Yw/YQWw2AR2JqU8vsYLYIgLqEvs+b2UCsZkFtCQaJi4Bs4UFHCVmLH/IDGKzCKhItK3vBavnF
 XCVeDnlL9BMDqCZchLdO91AwkJAJeunzmKDKBGUODnzCQvESAmJgy9eME9g5J6FJDULSWoBI9
 MqRvXi1KKy1CJdU72kosz0jJLcxMwcXUMDY73c1OLixPTUnMSkYr3k/NxNjMAwqGdgYNzBePm
 r0yFGSQ4mJVHeDbyXIoX4kvJTKjMSizPii0pzUosPMcpwcChJ8IoCw0pIsCg1PbUiLTMHGJAw
 aQkOHiURXg5+oDRvcUFibnFmOkTqFKMxx42H1/8wcXTcvPuHSYglLz8vVUqc9wVIqQBIaUZpH
 twgWKRcYpSVEuZlZGBgEOIpSC3KzSxBlX/FKM7BqCTM2wwyhSczrwRu3yugU5iATpnTdQHklJ
 JEhJRUA+POcCYhoZbdklEfhQ++azP0m1wi+7tonbuV3SkvfuvpAnmKkjv1zh2Ua/w+Ib3zY17
 ng0/OP/pWb7UPMus3V93q6pvXs/f1IrGk2eUb/4vtn2H6JybYxS333PEr7KueHPQ3FhNtf2fE
 1yQXeImbS0PWJWzB+7Z28YQJ7X9rnK6Juiz1YbpRqsRSnJFoqMVcVJwIAFLMEeKPAgAA
X-Env-Sender: prvs=4414723a3=Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-31.messagelabs.com!1506939034!61980399!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42335 invoked from network); 2 Oct 2017 10:10:35 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-9.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 2 Oct 2017 10:10:35 -0000
X-IronPort-AV: E=Sophos;i="5.42,468,1500940800"; d="scan'208";a="442126761"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 2 Oct 2017 11:10:27 +0100
Message-ID: <1506939027-313-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Fix BSOD on shutdown due to freeing NULL
	pointer
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VW5mb3J0dW5hdGVseSBFeEZyZWVQb29sV2l0aFRhZygpIGlzIG5vdCBOVUxMLXNhZmUsIGFuZCBC
YXNlNjRGcmVlKCkgaXMKY29kZWQgYXNzdW1pbmcgaXQgaXMuIFRoaXMgcGF0Y2ggYWRkcyBhbiBl
eHRyYSBjaGVjayBmb3IgTlVMTCB0byBmaXggdGhlCnByb2JsZW0uCgpTaWduZWQtb2ZmLWJ5OiBQ
YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYmFz
ZTY0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv
bigtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvYmFzZTY0LmMgYi9zcmMveGVudmJkL2Jhc2U2
NC5jCmluZGV4IDNlNzliOWYuLjBlNjI3ODQgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvYmFzZTY0
LmMKKysrIGIvc3JjL3hlbnZiZC9iYXNlNjQuYwpAQCAtNjAsNyArNjAsOCBAQCBCYXNlNjRGcmVl
KAogICAgIElOICBQVk9JRCAgIEJ1ZmZlcgogICAgICkKIHsKLSAgICBFeEZyZWVQb29sV2l0aFRh
ZyhCdWZmZXIsIEJBU0U2NF9QT09MX1RBRyk7CisgICAgaWYgKEJ1ZmZlcikKKyAgICAgICAgRXhG
cmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBCQVNFNjRfUE9PTF9UQUcpOwogfQogCiBzdGF0aWMgRk9S
Q0VJTkxJTkUgVUNIQVIKLS0gCjIuNS4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 02 10:11:33 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 02 Oct 2017 10:11:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dyxhF-0008UD-QH; Mon, 02 Oct 2017 10:11:33 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4414723a3=Paul.Durrant@citrix.com>)
 id 1dyxhE-0008U5-Iv
 for win-pv-devel@lists.xenproject.org; Mon, 02 Oct 2017 10:11:32 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 AA/01-22376-3D012D95; Mon, 02 Oct 2017 10:11:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQveCwKV
 Ig3MnuS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxtUNN9gKOpUqzlw5ydzAeEGxi5GTQ0LAT2Jq
 5zIWEJtNQEdi6dH5TCC2iMBMRonFM4pAbGYBNYnr+7tYQWxhARuJ1u9PGSFqbCV2bn8OZVtJH
 GhbANbLIqAi8fP/Q7CZvALuEi9734PFhQTKJY49esEMYnMKeEis2bkUrJdRQFbiS+NqZohd4h
 K3nkDcICEgILFkz3lmCFtU4uXjf6wQtoHE1qX7gOZzANVrSqzfpQ/RqigxpfshO8RaQYmTM5+
 wTGAUnoVk6iyEjllIOmYh6VjAyLKKUaM4tagstUjXyFgvqSgzPaMkNzEzR9fQwEwvN7W4ODE9
 NScxqVgvOT93EyMw7BmAYAfjn/mBhxglOZiURHk38F6KFOJLyk+pzEgszogvKs1JLT7EKMPBo
 STBG8MPlBMsSk1PrUjLzAFGIExagoNHSYSXAyTNW1yQmFucmQ6ROsVoyXFs0+U/TBwzbt4Fkk
 +uzfvLJMSSl5+XKiXOmwbSIADSkFGaBzcOliQuMcpKCfMyAh0oxFOQWpSbWYIq/4pRnINRSZj
 XEphyhHgy80rgtr4COogJ6KA5XRdADipJREhJNTC2qZRqHdxQ/36Vk/ycP2XHKgOElcsenSl9
 dcOibdnUJfwZjs+K1iW1XYgo69BK9p4/aemHfxMeSLCbzDC3O2u88C1v/bY2qa5L0jvin6TcO
 cSaWryGoU2nw7phbeXqrya7r0tu/Z7zg/VPzqeX0T/P/fkev1K5zcjLx1Olb45szPOgR6vusc
 1SYinOSDTUYi4qTgQAsU/Lpg0DAAA=
X-Env-Sender: prvs=4414723a3=Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1506939087!77591922!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 37869 invoked from network); 2 Oct 2017 10:11:28 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 2 Oct 2017 10:11:28 -0000
X-IronPort-AV: E=Sophos;i="5.42,468,1500940800"; d="scan'208";a="53858308"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, Owen Smith
 <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 0/5] Ongoing Improvements
Thread-Index: AQHTNs59ckF8/jWncEiW4vYDrTLccKLMGVNwgARGhHA=
Date: Mon, 2 Oct 2017 10:11:27 +0000
Message-ID: <9fd870b7c0c7486dab84c7022c5acc0d@AMSPEX02CL03.citrite.net>
References: <20170926135015.17476-1-owen.smith@citrix.com>
 <bfa092b7cce640c8ae6554d654370c3b@AMSPEX02CL03.citrite.net>
In-Reply-To: <bfa092b7cce640c8ae6554d654370c3b@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 0/5] Ongoing Improvements
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIFBhdWwgRHVycmFudA0KPiBTZW50OiAyOSBTZXB0ZW1iZXIgMjAxNyAxNzo1NQ0KPiBUbzog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPjsgd2luLXB2LQ0KPiBkZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29t
Pg0KPiBTdWJqZWN0OiBSZTogW3dpbi1wdi1kZXZlbF0gW1BBVENIIDAvNV0gT25nb2luZyBJbXBy
b3ZlbWVudHMNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiB3
aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0
Lm9yZ10NCj4gT24NCj4gPiBCZWhhbGYgT2Ygb3dlbi5zbWl0aEBjaXRyaXguY29tDQo+ID4gU2Vu
dDogMjYgU2VwdGVtYmVyIDIwMTcgMTQ6NTANCj4gPiBUbzogd2luLXB2LWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnDQo+ID4gQ2M6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4N
Cj4gPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggMC81XSBPbmdvaW5nIEltcHJvdmVt
ZW50cw0KPiA+DQo+ID4gRnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0K
PiA+DQo+ID4gVGhpcyBzZXJpZXMgY2hhbmdlcyB0aGUgYmVoYXZpb3VyIG9mIFhlblZiZCB0byBp
bXByb3ZlIHRoZQ0KPiA+IG92ZXJhbGwgZGVzaWduIGFuZCBpbXBsZW1lbnRhdGlvbi4NCj4gPiAq
IFVzZSB0aGUgQ0FDSEUgaW50ZXJmYWNlIGZvciBib3VuY2UgYnVmZmVycywgd2hpY2ggcmVtb3Zl
cyBhDQo+ID4gICBsb2cgZW50cnkgd2hpY2ggY2FuIGJlIHRyaWdnZXJlZCBldmVyeSAxIHNlY29u
ZCBpZiB0aGUgdXNlcg0KPiA+ICAgYnVmZmVycyBmb3IgSU8gYXJlIG5vdCBhbGlnbmVkIHRvIHNl
Y3RvciBzaXplcy4NCj4gPiAqIEFkZHMgYSB1c2VmdWwgb3ZlcnJpZGUgb24gbWF4LXJpbmctcGFn
ZS1vcmRlci4gYmxrYmFjayB3aWxsDQo+ID4gICBkZWZpbmUgbWF4LXJpbmctcGFnZS1vcmRlciB0
byB1c2UgMTYgcGFnZXMgZm9yIGEgcmluZywgd2hpY2ggY2FuIGJlDQo+ID4gICBleGNlc3NpdmUg
Zm9yIG1vc3QgdXNlIGNhc2VzLiBUaGUgeGVudmJkIGZyb250ZW5kIHdpbGwgdXNlIHRoZQ0KPiA+
ICAgbWF4aW11bSBudW1iZXIgb2YgcGFnZXMgcG9zc2libGUgZm9yIHRoZSByaW5nLg0KPiA+ICog
VXNlIHRoZSBDQUNIRSBpbnRlcmZhY2UgaW5zdGVhZCBvZiBsb29rYXNpZGUgbGlzdHMgZm9yIHRo
ZQ0KPiA+ICAgUkVRVUVTVCwgU0VHTUVOVCBhbmQgSU5ESVJFQ1Qgc3RydWN0cy4gVGhpcyBhbGxv
d3Mgb25lIHRpbWUNCj4gPiAgIGluaXRpYWxpemF0aW9uL2NsZWFudXAsIHdoaWNoIHdpbGwgcHJl
dmVudCB4ZW52YmQgYWxsb2NhdGluZw0KPiA+ICAgYSBwYWdlIGV2ZXJ5IHRpbWUgaXQgcmV0cmll
dmVzIGEgY2FjaGVkIElORElSRUNULg0KPiA+DQo+ID4gT3dlbiBTbWl0aCAoNSk6DQo+ID4gICBR
dWVyeSBmb3IgQ0FDSEUgaW50ZXJmYWNlDQo+ID4gICBVc2UgQ0FDSEUgaW50ZXJmYWNlIGZvciBi
b3VuY2UgYnVmZmVycw0KPiA+ICAgQWRkIG92ZXJyaWRlIGZvciBNYXhSaW5nUGFnZU9yZGVyDQo+
ID4gICBUaWR5IHVwIHNyYmV4dC5oDQo+ID4gICBVc2UgQ0FDSEUgaW50ZXJmYWNlIGZvciBSRVFV
RVNUcywgU0VHTUVOVHMgYW5kIElORElSRUNUcw0KPiANCj4gSSB3YXMganVzdCBkb2luZyBzYW5p
dHkgdGVzdHMgb2YgdGhlc2UgcHJpb3IgdG8gcHVzaCBhbmQgSSBnb3QgYSBCU09EIG9uDQo+IHNo
dXRkb3duIHdpdGggYW4gUlMyIFZNLiBMb29rZWQgdG8gYmUgdGVhcmluZyBkb3duIHRoZSBncmFu
dCB0YWJsZS4gSG93DQo+IG11Y2ggdGVzdGluZyBoYXMgdGhpcyBjb2RlIGhhZD8gWW91IG5lZWQg
dG8gdmVyaWZ5IHN1c3BlbmQvcmVzdW1lIHRvby4NCj4gDQoNClRoZSBidWcgd2FzIGluIHByZXZp
b3VzbHkgY29tbWl0dGVkIGNvZGUuIEkndmUganVzdCBzZW50IGEgcGF0Y2ggdG8gZml4IHRoaXMu
DQoNCiAgUGF1bA0KDQo+ICAgUGF1bA0KPiANCj4gPg0KPiA+ICBzcmMveGVudmJkL2FkYXB0ZXIu
YyAgICAgICAgIHwgMTc0ICsrKysrKysrLQ0KPiA+ICBzcmMveGVudmJkL2FkYXB0ZXIuaCAgICAg
ICAgIHwgIDEzICsNCj4gPiAgc3JjL3hlbnZiZC9idWZmZXIuYyAgICAgICAgICB8IDQyNiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgc3JjL3hlbnZiZC9idWZmZXIuaCAgICAgICAgICB8ICA4
MCAtLS0tDQo+ID4gIHNyYy94ZW52YmQvZHJpdmVyLmMgICAgICAgICAgfCAgIDkgKy0NCj4gPiAg
c3JjL3hlbnZiZC9kcml2ZXIuaCAgICAgICAgICB8ICAgMSArDQo+ID4gIHNyYy94ZW52YmQvcmlu
Zy5jICAgICAgICAgICAgfCA4ODEgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t
LS0tLQ0KPiAtLQ0KPiA+IC0NCj4gPiAgc3JjL3hlbnZiZC9zcmJleHQuaCAgICAgICAgICB8IDEw
OSArKy0tLS0NCj4gPiAgc3JjL3hlbnZiZC90YXJnZXQuYyAgICAgICAgICB8ICAgNyArLQ0KPiA+
ICB2czIwMTUveGVudmJkL3hlbnZiZC52Y3hwcm9qIHwgICAxIC0NCj4gPiAgMTAgZmlsZXMgY2hh
bmdlZCwgNzMzIGluc2VydGlvbnMoKyksIDk2OCBkZWxldGlvbnMoLSkNCj4gPiAgZGVsZXRlIG1v
ZGUgMTAwNjQ0IHNyYy94ZW52YmQvYnVmZmVyLmMNCj4gPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IHNy
Yy94ZW52YmQvYnVmZmVyLmgNCj4gPg0KPiA+IC0tDQo+ID4gMi44LjMNCj4gPg0KPiA+DQo+ID4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiB3aW4t
cHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVsDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 02 11:03:24 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 02 Oct 2017 11:03:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dyyVP-00045x-Al; Mon, 02 Oct 2017 11:03:23 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dyyVN-00045r-Ij
 for win-pv-devel@lists.xenproject.org; Mon, 02 Oct 2017 11:03:21 +0000
Date: Mon, 2 Oct 2017 11:03:17 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <18361094.7.1506942202815.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_6_29749508.1506942197424"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVBD-master - Build #102 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_6_29749508.1506942197424
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #102.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVBD-master/102/console to view the results.
------=_Part_6_29749508.1506942197424
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_6_29749508.1506942197424--


From win-pv-devel-bounces@lists.xenproject.org Fri Oct 13 15:37:22 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 13 Oct 2017 15:37:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e321Y-00030A-JR; Fri, 13 Oct 2017 15:37:20 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=452b4736a=Paul.Durrant@citrix.com>)
 id 1e321X-000304-I4
 for win-pv-devel@lists.xenproject.org; Fri, 13 Oct 2017 15:37:19 +0000
Received: from [193.109.254.147] by server-4.bemta-6.messagelabs.com id
 A0/B1-31244-EADD0E95; Fri, 13 Oct 2017 15:37:18 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGLMWRWlGSWpSXmKPExsXitHRDpO66uw8
 iDX7+l7P4szjRgdHj8IcrLAGMUayZeUn5FQmsGRv7b7MVnBarmDttIXMD4zLBLkYODgkBf4n2
 jvwuRk4ONgEdialPL7GC2CIC6hL7Pm9lArGZBbQkGiYuAbOFBSwkpl6dwwJiswioSnx5/ocRx
 OYVcJW4de4LE8RIOYnunW4gYSEBFYn1U2exQZQISpyc+YQFYqSExMEXL5gnMHLPQpKahSS1gJ
 FpFaNGcWpRWWqRrqG5XlJRZnpGSW5iZo6uoYGZXm5qcXFiempOYlKxXnJ+7iZGYBgwAMEOxts
 bAw4xSnIwKYnyqkU+iBTiS8pPqcxILM6ILyrNSS0+xCjDwaEkwXv1DlBOsCg1PbUiLTMHGJAw
 aQkOHiUR3k8gad7igsTc4sx0iNQpRl2Ojpt3/zAJseTl56VKifO+BCkSACnKKM2DGwGLjkuMs
 lLCvIxARwnxFKQW5WaWoMq/YhTnYFQShriEJzOvBG7TK6AjmICOeBcBdkRJIkJKqoExdoWipX
 3X2mOdff41LXUGHu912tUPH9iyQrj7qJmpv/Vje6O1x87mXbYy8/jA9IZlx0uHb/VPk3+zFJf
 sfnx3eTTTNDGNqxP+WXGczjykvs5IPFImrftE4xInn4fd0zav7nq0SfJohVnC1d+Wci8EXihJ
 hmvtv1X2/G5g5ksBN1MPh4nRWjFKLMUZiYZazEXFiQDT3MVriQIAAA==
X-Env-Sender: prvs=452b4736a=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1507909036!79751969!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 5481 invoked from network); 13 Oct 2017 15:37:18 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 13 Oct 2017 15:37:18 -0000
X-IronPort-AV: E=Sophos;i="5.43,371,1503360000"; d="scan'208";a="445941059"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 13 Oct 2017 16:37:09 +0100
Message-ID: <1507909029-154-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH] Veto zero length range pop, get and put
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SXQgY2xlYXJseSBtYWtlcyBubyBzZW5zZSB0byBhbGxvY2F0ZSBhIHplcm8gbGVuZ3RoIHJhbmdl
LCBidXQKYm90aCBSYW5nZVNldFBvcCgpIGFuZCBSYW5nZVNldEdldCgpIGN1cnJlbnRseSBhbGxv
dyBpdC4gUmFuZ2VTZXRQdXQoKQphbHNvIGFsbG93cyBzdWNoIGEgcmFuZ2UgdG8gYmUgZnJlZWQg
YnV0IHRyaXBzIG92ZXIgYW4gYXNzZXJ0aW9uIGluCmEgY2hlY2tlZCBidWlsZCBhbmQgd2lsbCBo
b3BlbGVzc2x5IGNvbmZ1c2UgdGhlIGNvZGUgaW4gYSBmcmVlIGJ1aWxkCnByb2JhYmx5IGxlYWRp
bmcgdG8gYSBzdWJzZXF1ZW50IGNyYXNoLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxw
YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuYnVzL3JhbmdlX3NldC5jIHwgNDQg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu
Z2VkLCAzNCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv
eGVuYnVzL3JhbmdlX3NldC5jIGIvc3JjL3hlbmJ1cy9yYW5nZV9zZXQuYwppbmRleCBlYWYzZjEw
Li5mNTJhZjYzIDEwMDY0NAotLS0gYS9zcmMveGVuYnVzL3JhbmdlX3NldC5jCisrKyBiL3NyYy94
ZW5idXMvcmFuZ2Vfc2V0LmMKQEAgLTE5NCwxMiArMTk0LDE3IEBAIFJhbmdlU2V0UG9wKAogCiAg
ICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihJbnRlcmZhY2UpOwogCisgICAgc3RhdHVzID0gU1RB
VFVTX0lOVkFMSURfUEFSQU1FVEVSOworCisgICAgaWYgKENvdW50ID09IDApCisgICAgICAgIGdv
dG8gZmFpbDE7CisKICAgICBLZUFjcXVpcmVTcGluTG9jaygmUmFuZ2VTZXQtPkxvY2ssICZJcnFs
KTsKIAogICAgIHN0YXR1cyA9IFNUQVRVU19JTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTOwogCiAgICAg
aWYgKF9fUmFuZ2VTZXRJc0VtcHR5KFJhbmdlU2V0KSkKLSAgICAgICAgZ290byBmYWlsMTsKKyAg
ICAgICAgZ290byBmYWlsMjsKIAogICAgIEN1cnNvciA9IFJhbmdlU2V0LT5MaXN0LkZsaW5rOwog
CkBAIC0yMTAsNyArMjE1LDcgQEAgUmFuZ2VTZXRQb3AoCiAgICAgICAgICAgICBnb3RvIGZvdW5k
OwogICAgIH0KIAotICAgIGdvdG8gZmFpbDI7CisgICAgZ290byBmYWlsMzsKIAogZm91bmQ6CiAg
ICAgUmFuZ2VTZXQtPkN1cnNvciA9IEN1cnNvcjsKQEAgLTIyOCwxNCArMjMzLDE3IEBAIGZvdW5k
OgogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWlsMzoKKyAgICBFcnJvcigiZmFp
bDNcbiIpOworCiBmYWlsMjoKICAgICBFcnJvcigiZmFpbDJcbiIpOwogCisgICAgS2VSZWxlYXNl
U3BpbkxvY2soJlJhbmdlU2V0LT5Mb2NrLCBJcnFsKTsKKwogZmFpbDE6CiAgICAgRXJyb3IoImZh
aWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIAotICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZSYW5nZVNl
dC0+TG9jaywgSXJxbCk7Ci0KICAgICByZXR1cm4gc3RhdHVzOwogfQogCkBAIC0zMjYsNiArMzM0
LDExIEBAIFJhbmdlU2V0R2V0KAogCiAgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihJbnRlcmZh
Y2UpOwogCisgICAgc3RhdHVzID0gU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSOworCisgICAgaWYg
KENvdW50ID09IDApCisgICAgICAgIGdvdG8gZmFpbDE7CisKICAgICBLZUFjcXVpcmVTcGluTG9j
aygmUmFuZ2VTZXQtPkxvY2ssICZJcnFsKTsKIAogICAgIEN1cnNvciA9IFJhbmdlU2V0LT5DdXJz
b3I7CkBAIC0zODEsNyArMzk0LDcgQEAgUmFuZ2VTZXRHZXQoCiAgICAgLy8gV2UgbmVlZCB0byBz
cGxpdCBhIHJhbmdlCiAgICAgc3RhdHVzID0gUmFuZ2VTZXRBZGQoUmFuZ2VTZXQsIEVuZCArIDEs
IFJhbmdlLT5FbmQsIFRSVUUpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAg
ICBnb3RvIGZhaWwxOworICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgUmFuZ2UtPkVuZCA9IFN0
YXJ0IC0gMTsKIApAQCAtMzkzLDExICs0MDYsMTQgQEAgZG9uZToKIAogICAgIHJldHVybiBTVEFU
VVNfU1VDQ0VTUzsKIAotZmFpbDE6Ci0gICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVz
KTsKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CiAKICAgICBLZVJlbGVhc2VTcGluTG9j
aygmUmFuZ2VTZXQtPkxvY2ssIElycWwpOwogCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUw
OHgpXG4iLCBzdGF0dXMpOworCiAgICAgcmV0dXJuIHN0YXR1czsgICAgCiB9CiAKQEAgLTUwMCw2
ICs1MTYsMTEgQEAgUmFuZ2VTZXRQdXQoCiAKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKElu
dGVyZmFjZSk7CiAKKyAgICBzdGF0dXMgPSBTVEFUVVNfSU5WQUxJRF9QQVJBTUVURVI7CisKKyAg
ICBpZiAoQ291bnQgPT0gMCkKKyAgICAgICAgZ290byBmYWlsMTsKKwogICAgIEFTU0VSVDNTKEVu
ZCwgPj0sIFN0YXJ0KTsKIAogICAgIEtlQWNxdWlyZVNwaW5Mb2NrKCZSYW5nZVNldC0+TG9jaywg
JklycWwpOwpAQCAtNTIyLDcgKzU0Myw3IEBAIFJhbmdlU2V0UHV0KAogICAgIH0KIAogICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWwxOworICAgICAgICBnb3Rv
IGZhaWwyOwogCiAgICAgUmFuZ2VTZXQtPkl0ZW1Db3VudCArPSBDb3VudDsKIApAQCAtNTMwLDEx
ICs1NTEsMTQgQEAgUmFuZ2VTZXRQdXQoCiAKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAK
LWZhaWwxOgotICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CitmYWlsMjoKKyAg
ICBFcnJvcigiZmFpbDJcbiIpOwogCiAgICAgS2VSZWxlYXNlU3BpbkxvY2soJlJhbmdlU2V0LT5M
b2NrLCBJcnFsKTsKIAorZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVz
KTsKKwogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLS0gCjIuNS4zCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Sat Oct 14 01:19:20 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 14 Oct 2017 01:19:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e3B6j-0000T2-I1; Sat, 14 Oct 2017 01:19:17 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <chris@mcclymont.it>) id 1e3B6i-0000Sw-A7
 for win-pv-devel@lists.xenproject.org; Sat, 14 Oct 2017 01:19:16 +0000
Received: from [85.158.139.211] by server-15.bemta-5.messagelabs.com id
 67/1F-23912-31661E95; Sat, 14 Oct 2017 01:19:15 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRWlGSWpSXmKPExsVyMfSqga5Q2sN
 IgxV/TSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxuw//9kKfnFUfF98i7WBcSd7FyMXh5DAbEaJ
 /inzmUAcFoFvLBLn9k8BcyQEfrBINO8/BVTGCeTUSTxomQ9lF0k8/72PGcLOl3j98jyYzSsgK
 HFy5hMWEFtIwEviY8sUqBoliTlXHzCC2GwCWhKL+w8AzeEA2qYqMe9qIERrgMTlH2eYQGxhAS
 uJVadmsoLYIkAl15YfYwOxmQU0JVq3/2afwMg/C8m2WUhSCxiZVjFqFKcWlaUW6Roa6iUVZaZ
 nlOQmZuboGhqY6uWmFhcnpqfmJCYV6yXn525iBIYbAxDsYFzZ7nyIUZKDSUmU11b4YaQQX1J+
 SmVGYnFGfFFpTmrxIUYZDg4lCV7GVKCcYFFqempFWmYOMPBh0hIcPEoivJ+SgdK8xQWJucWZ6
 RCpU4zGHBfuXPrDxHFgz60/TEIsefl5qVLivBdTgEoFQEozSvPgBsEi8hKjrJQwLyPQaUI8Ba
 lFuZklqPKvGMU5GJWEedeATOHJzCuB2/cK6BQmoFPeRTwAOaUkESEl1cC4vF9A1cO7I/1FHIt
 lfkd+9eqiVRXl5wU+BYoGvHvXX11Wt7A9fHX8m6xIgQe7BbWNcp7uvc5+IOvUqhsftrIyK9YX
 7mbmyz7A5cwmEqswK4e17PGB2xOLWa8vcOXybbAsL4/krN366VdgxOrWO8LeeT/Pa608f+rw5
 O3vfrXkBsruLNnM1qfEUpyRaKjFXFScCACYtcCOwwIAAA==
X-Env-Sender: chris@mcclymont.it
X-Msg-Ref: server-2.tower-206.messagelabs.com!1507943953!86309854!1
X-Originating-IP: [209.85.213.48]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25663 invoked from network); 14 Oct 2017 01:19:14 -0000
Received: from mail-vk0-f48.google.com (HELO mail-vk0-f48.google.com)
 (209.85.213.48)
 by server-2.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 14 Oct 2017 01:19:14 -0000
Received: by mail-vk0-f48.google.com with SMTP id c76so5126266vkd.10
 for <win-pv-devel@lists.xenproject.org>; Fri, 13 Oct 2017 18:19:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mcclymont-it.20150623.gappssmtp.com; s=20150623;
 h=mime-version:from:date:message-id:subject:to;
 bh=Eokxf5hoOnjMZK/6sDTYIxBzoZhMwf+rHkT4oOBRMdc=;
 b=MMXrIj5AK2nVGpVDKFqBM5m+QYnq8VCr8/5s1SF+w0rmc8bId+AvB23ltu5ZhkI71Q
 UUxFlqOfmjd53gKtsOBVmkQQHHv9Rk4emiSKoaihLsSwx2ACldAiNdad/ZaKUStdzaoo
 se9UtuHfWapssLkuraG/sF2EHYtweYcwqp3R/SgflH/dE+bLaBnucr8h2RFWyB4LFJc8
 580G8CPhTwhHBStRGX44AJm9CBg0i72gkUTo7d/ibGQlcvYsQTnOdoMPST0HqHPGU5Z9
 Eu80jPHYxZhtzzbTdCRJ1nKmWEFobKU8lyZD0PXrb+VrIOtOYMcEZi/24bpyWz702Aud
 jtkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=Eokxf5hoOnjMZK/6sDTYIxBzoZhMwf+rHkT4oOBRMdc=;
 b=s0IJ1w2wNwtcoF6Xt+YimhpYHXwNcblDtAIE03myiFA18+7+hdbL0PUyP00qvCyKI7
 Cf/g4ePqUmOAOt12sJk0+YrEbEbslEqplNzFnuheETfQGUdAfO14sKzBjErateDpCSyM
 TgHdRyZh07yc5ifBETkQP4m2Nzv44A92LJ/i3UE47prN+Gnf/61XtB7tXcUoaUUKeyzZ
 jlcWtzo5uybJuHXQVpwSJU9ogVNTeUdUQiYl+V4bKL5/05MVw++pdRDHQmuU3pFvGi8u
 Aef4UJBMz9UZC2BTJK0LIQCu3QZbQU3ISW67Q/UhUeqbg5TsCB/I4KRs+NjtVehefAK8
 2g+A==
X-Gm-Message-State: AMCzsaU/N2o8GWzEKLESYpSgj82U1cwBTtKYpk7gBPB3aKbOPE6y6SUh
 ZZJgSF8l4SFDKl8js9zVhvK8fMXNc17gMoHloXJ9qhC1tGg=
X-Google-Smtp-Source: ABhQp+Src5Zm3Oucsaf4Xap0YPe+9x6lIlSAozGaXru6oenJyQ/QpYpdCD4rjkBxdqIzmZ+aR/gmEBSn9oCD6YG12fs=
X-Received: by 10.31.230.5 with SMTP id d5mr1864755vkh.64.1507943953252; Fri,
 13 Oct 2017 18:19:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.68.37 with HTTP; Fri, 13 Oct 2017 18:19:12 -0700 (PDT)
X-Originating-IP: [162.198.228.73]
From: Chris McClymont <chris@mcclymont.it>
Date: Fri, 13 Oct 2017 18:19:12 -0700
Message-ID: <CAHkbytA9nCwdDDgL48Wr-uLg_ngK6UjQ0ODybC1p27eB+qug0w@mail.gmail.com>
To: win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Next signed release - support for readonly disks?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SGkgZXZlcnlvbmUsCgpTdXBwb3J0IGZvciByZWFkb25seSBkaXNrcyB3YXMgZml4ZWQgaW4geGVu
dmJkIGNvbW1pdAozYmI0MWI0OWZmNjY0MzNhYjVlYmI1ZDM2ZDI0OTQ2ZjQwMzkwZDdjLiBXaGVu
IGlzIHRoaXMgbGlrZWx5IHRvIG1ha2UKaXQgaW50byBhIHNpZ25lZCByZWxlYXNlPwoKCkknbSB3
b3JraW5nIG9uIFdpbmRvd3MgdGVtcGxhdGVzIGZvciBYZW4gYW5kIHdvdWxkIGxvdmUgdG8gdXNl
IHRoZQpuZXdlciBYZW4gUHJvamVjdCBkcml2ZXJzIHNpZ25lZCBieSB0aGUgTGludXggRm91bmRh
dGlvbiwgcmF0aGVyIHRoYW4KdGhlIEVKQiBEaWdpdGFsIG9yIG90aGVycyBmbG9hdGluZyBhcm91
bmQuIEJ1dCBJIGhhdmUgYSByZXF1aXJlbWVudCB0bwpzdXBwb3J0IHJlYWRvbmx5IGRpc2tzLCB3
aGljaCBkb24ndCB3b3JrIGluIHRoZSA4LjIuMCByZWxlYXNlLgpSZWFkb25seSBkaXNrcyBhcHBl
YXIgaW4gZGV2aWNlIG1hbmFnZSBvbmx5IHdoZW4gZW11bGF0ZWQsIGFuZApkaXNhcHBlYXIgKGV2
ZW4gd2l0aCBTaG93IEhpZGRlbiBEZXZpY2VzKSBhZnRlciB0aGUgUFYgZHJpdmVycyBhcmUKaW5z
dGFsbGVkLgoKVGhlIGNvbW1pdCBJIG1lbnRpb25lZCBpcyBzb21ld2hlcmUgYmV0d2VlbiA4LjIu
MCBhbmQgbWFzdGVyLgpQcmV2aW91c2x5LCBwZG8uYyB3b3VsZCBzZXQgU2NzaVN0YXR1cyB0byBT
Q1NJX0FCT1JUIGlmCihEaXNrSW5mby0+RGlza0luZm8gJiBWRElTS19SRUFET05MWSkuIE5vdywg
cGRvLmMgaXMgY2FsbGVkIHRhcmdldC5jCmFuZCB0aGUgY29tbWl0IHJlbW92ZXMgdGhlIHJlYWRv
bmx5IGxpbWl0YXRpb24uCgpJJ20gd29uZGVyaW5nIGEgZmV3IHRoaW5nczoKICAxKSBXaGVuIGlz
IHRoaXMgY29tbWl0IGxpa2VseSB0byBtYWtlIGl0IGludG8gYSBzaWduZWQgcmVsZWFzZQogIDIp
IElzIHRoZXJlIGEgcm9hZG1hcD8gSS5lLiBIb3cgaXMgaXQgZGVjaWRlZCB3aGVuIHRvIG1ha2Ug
cmVsZWFzZXMKYW5kIHdoaWNoIGZlYXR1cmVzL2ZpeGVzIHRvIGluY2x1ZGUKICAzKSBIb3cgY2Fu
IEkgc2VhcmNoIHRoaXMgbWFpbGluZyBsaXN0PyBJdCBkb2Vzbid0IHNlZW0gdG8gYmUKaW5jbHVk
ZWQgb24gaHR0cDovL3hlbi5tYXJrbWFpbC5vcmcvc2VhcmNoLwoKVGhhbmtzLApDaHJpcyBNY0Ns
eW1vbnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndp
bi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Sat Oct 14 04:32:07 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sat, 14 Oct 2017 04:32:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e3E7I-00047F-US; Sat, 14 Oct 2017 04:32:04 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1e3E7I-000479-0W
 for win-pv-devel@lists.xenproject.org; Sat, 14 Oct 2017 04:32:04 +0000
Date: Sat, 14 Oct 2017 04:31:37 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <21680879.1.1507955504072.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_16327291.1507955498369"
X-Jenkins-Job: XENBUS-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENBUS-master - Build #149 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_0_16327291.1507955498369
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #149.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENBUS-master/149/console to view the results.
------=_Part_0_16327291.1507955498369
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_0_16327291.1507955498369--


From win-pv-devel-bounces@lists.xenproject.org Tue Oct 17 08:46:49 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 Oct 2017 08:46:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4NWQ-0002Mj-Hp; Tue, 17 Oct 2017 08:46:46 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4567f63fb=Paul.Durrant@citrix.com>)
 id 1e4NWO-0002Md-PF
 for win-pv-devel@lists.xenproject.org; Tue, 17 Oct 2017 08:46:44 +0000
Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id
 8C/E0-25852-373C5E95; Tue, 17 Oct 2017 08:46:43 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrEIsWRWlGSWpSXmKPExsWSzvfng27x4ae
 RBv3PhS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxsILGxgLnshU/GpZytbAuEWmi5GTQ0LAX2Lj
 8ZtsIDabgI7E0qPzmUBsEYESidf/TjCC2MwCahLX93exgtjCAr4Sryc1sEHU+Ek8mNbCCmEbS
 cyc+wIozsHBIqAqce5WPIjJK+AusWZ6LkiFkECAxKWPD9hBbE6BQImvPX0sIDajgKzEl8bVzB
 CbxCVuPYG4QEJAQGLJnvPMELaoxMvH/1ghbAOJrUv3sYCMZxbQlFi/Sx+iVVFiSvdDsPG8AoI
 SJ2c+YZnAKDwLydRZCB2zkHTMQtKxgJFlFaNGcWpRWWqRrqGFXlJRZnpGSW5iZo6uoYGZXm5q
 cXFiempOYlKxXnJ+7iZGYMgzAMEOxpsbAw4xSnIwKYnyOhs+iRTiS8pPqcxILM6ILyrNSS0+x
 CjDwaEkwct76GmkkGBRanpqRVpmDjD6YNISHDxKIrzTDwKleYsLEnOLM9MhUqcYjTmObbr8h4
 njybV5f5mEWPLy81KlxHmDQCYJgJRmlObBDYIlhUuMslLCvIxApwnxFKQW5WaWoMq/YhTnYFQ
 S5pUEmcKTmVcCt+8V0ClMQKesc3oCckpJIkJKqoFxUlp77y+Hxb67Vuw75SmqOmvjJNaub2yW
 LEsWLBRbmcjvECDySYCz1NM+mk2dd4nZ1aQDt0Jmr7kl+zR62fH962vFDC24Hiz2n67Bx3ZIM
 XHWcgUBzpmJH0TKJy+OnV3GZXf1xqWnEs4qV9uuZXoG6yi33xDXPPhLXObUE3u5NxdkN6w863
 9FiaU4I9FQi7moOBEAn85bRgUDAAA=
X-Env-Sender: prvs=4567f63fb=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-21.messagelabs.com!1508230000!70861109!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29975 invoked from network); 17 Oct 2017 08:46:42 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 17 Oct 2017 08:46:42 -0000
X-IronPort-AV: E=Sophos;i="5.43,389,1503360000"; d="scan'208";a="106353027"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Chris McClymont' <chris@mcclymont.it>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Next signed release - support for readonly disks?
Thread-Index: AQHTRIp/Rm5gx1IX6USdqNKOU+vwA6LnvVDg
Date: Tue, 17 Oct 2017 08:46:37 +0000
Message-ID: <fe6df5b29727416881384493ec7fa311@AMSPEX02CL03.citrite.net>
References: <CAHkbytA9nCwdDDgL48Wr-uLg_ngK6UjQ0ODybC1p27eB+qug0w@mail.gmail.com>
In-Reply-To: <CAHkbytA9nCwdDDgL48Wr-uLg_ngK6UjQ0ODybC1p27eB+qug0w@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] Next signed release - support for readonly disks?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIENocmlzIE1jQ2x5bW9udA0KPiBTZW50OiAxNCBPY3RvYmVyIDIwMTcgMDI6MTkNCj4gVG86
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBbd2luLXB2LWRl
dmVsXSBOZXh0IHNpZ25lZCByZWxlYXNlIC0gc3VwcG9ydCBmb3IgcmVhZG9ubHkgZGlza3M/DQo+
IA0KPiBIaSBldmVyeW9uZSwNCj4gDQo+IFN1cHBvcnQgZm9yIHJlYWRvbmx5IGRpc2tzIHdhcyBm
aXhlZCBpbiB4ZW52YmQgY29tbWl0DQo+IDNiYjQxYjQ5ZmY2NjQzM2FiNWViYjVkMzZkMjQ5NDZm
NDAzOTBkN2MuIFdoZW4gaXMgdGhpcyBsaWtlbHkgdG8gbWFrZQ0KPiBpdCBpbnRvIGEgc2lnbmVk
IHJlbGVhc2U/DQo+IA0KPiANCj4gSSdtIHdvcmtpbmcgb24gV2luZG93cyB0ZW1wbGF0ZXMgZm9y
IFhlbiBhbmQgd291bGQgbG92ZSB0byB1c2UgdGhlDQo+IG5ld2VyIFhlbiBQcm9qZWN0IGRyaXZl
cnMgc2lnbmVkIGJ5IHRoZSBMaW51eCBGb3VuZGF0aW9uLCByYXRoZXIgdGhhbg0KPiB0aGUgRUpC
IERpZ2l0YWwgb3Igb3RoZXJzIGZsb2F0aW5nIGFyb3VuZC4gQnV0IEkgaGF2ZSBhIHJlcXVpcmVt
ZW50IHRvDQo+IHN1cHBvcnQgcmVhZG9ubHkgZGlza3MsIHdoaWNoIGRvbid0IHdvcmsgaW4gdGhl
IDguMi4wIHJlbGVhc2UuDQo+IFJlYWRvbmx5IGRpc2tzIGFwcGVhciBpbiBkZXZpY2UgbWFuYWdl
IG9ubHkgd2hlbiBlbXVsYXRlZCwgYW5kDQo+IGRpc2FwcGVhciAoZXZlbiB3aXRoIFNob3cgSGlk
ZGVuIERldmljZXMpIGFmdGVyIHRoZSBQViBkcml2ZXJzIGFyZQ0KPiBpbnN0YWxsZWQuDQo+IA0K
PiBUaGUgY29tbWl0IEkgbWVudGlvbmVkIGlzIHNvbWV3aGVyZSBiZXR3ZWVuIDguMi4wIGFuZCBt
YXN0ZXIuDQo+IFByZXZpb3VzbHksIHBkby5jIHdvdWxkIHNldCBTY3NpU3RhdHVzIHRvIFNDU0lf
QUJPUlQgaWYNCj4gKERpc2tJbmZvLT5EaXNrSW5mbyAmIFZESVNLX1JFQURPTkxZKS4gTm93LCBw
ZG8uYyBpcyBjYWxsZWQgdGFyZ2V0LmMNCj4gYW5kIHRoZSBjb21taXQgcmVtb3ZlcyB0aGUgcmVh
ZG9ubHkgbGltaXRhdGlvbi4NCj4gDQoNCkhpIENocmlzLA0KDQpPd2VuIG1heSBoYXZlIG1vcmUg
dG8gc2F5LCBidXQgSSBhc3N1bWUgdGhpcyB3YXMgYW4gdW5pbnRlbmRlZCBjb25zZXF1ZW5jZSBv
ZiB0aGUgcGF0Y2guDQoNCkluIG15IGV4cGVyaWVuY2UgYW4gTlRGUyBmaWxlc3lzdGVtIHJlcXVp
cmVzIGEgZGlzayB0byBiZSByZWFkL3dyaXRlIG90aGVyd2lzZSBpdCB3aWxsIG5vdCBmdW5jdGlv
bi4uLiBjZXJ0YWlubHkgdGhpcyBpcyB0cnVlIG9mIGEgc3lzdGVtIGRpc2suIEFyZSB5b3UgdXNp
bmcgYSBkaWZmZXJlbnQgZmlsZXN5c3RlbT8gVEJIIEkgdGhpbmsgaXQncyBxdWl0ZSByZWFzb25h
YmxlIGZvciBXaW5kb3dzIHRvIGFzc3VtZSB0aGF0IGEgbm9uLXJlbW92YWJsZSBtZWRpdW0gY2Fs
bGluZyBpdHNlbGYgaXMgYSBkaXNrIGlzIHJlYWQvd3JpdGUuDQoNCj4gSSdtIHdvbmRlcmluZyBh
IGZldyB0aGluZ3M6DQo+ICAgMSkgV2hlbiBpcyB0aGlzIGNvbW1pdCBsaWtlbHkgdG8gbWFrZSBp
dCBpbnRvIGEgc2lnbmVkIHJlbGVhc2UNCg0KSXQncyBub3QgY3VycmVudGx5IGEgYmFjay1wb3J0
IGNhbmRpZGF0ZSBhbmQgdGhlcmUgaXMgbm8gZmlybSB0aW1lbGluZSBmb3IgcmVsZWFzaW5nIDku
MCBkcml2ZXJzLg0KDQo+ICAgMikgSXMgdGhlcmUgYSByb2FkbWFwPyBJLmUuIEhvdyBpcyBpdCBk
ZWNpZGVkIHdoZW4gdG8gbWFrZSByZWxlYXNlcw0KPiBhbmQgd2hpY2ggZmVhdHVyZXMvZml4ZXMg
dG8gaW5jbHVkZQ0KDQpCZWNhdXNlIHRoZSBYZW4gUHJvamVjdCBkb2VzIG5vdCBoYXZlIGRlZGlj
YXRlZCBpbmZyYXN0cnVjdHVyZSBmb3IgdGVzdGluZyB0aGUgUFYgZHJpdmVycywgd2UgZ2VuZXJh
bGx5IHJlbHkgb24gdGhlIHRlc3RpbmcgZG9uZSBieSBDaXRyaXggWGVuU2VydmVyIGFuZCB0aGVy
ZWZvcmUgcmVsZWFzZXMgdGVuZCB0byBiZSBhbGlnbmVkIHdpdGggdXBkYXRlcyBtYWRlIHRvIHRo
ZSBDaXRyaXggYnJhbmRlZCB2YXJpYW50IG9mIHRoZSBkcml2ZXJzLg0KDQo+ICAgMykgSG93IGNh
biBJIHNlYXJjaCB0aGlzIG1haWxpbmcgbGlzdD8gSXQgZG9lc24ndCBzZWVtIHRvIGJlDQo+IGlu
Y2x1ZGVkIG9uIGh0dHA6Ly94ZW4ubWFya21haWwub3JnL3NlYXJjaC8NCj4gDQoNCllvdSBjYW4g
c2VlIHRoZSBtYWlsaW5nIGxpc3QgYXJjaGl2ZXMgYXQgaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9hcmNoaXZlcy9odG1sL3dpbi1wdi1kZXZlbC4gQXMgZm9yIHNlYXJjaGluZyB2aWEgbWFy
a21haWwuLi4gSSBoYXZlIHJlcXVlc3RlZCB0aGF0IHRoZSBsaXN0IGJlIGFkZGVkIGluIHRoZSBw
YXN0LCBidXQgSSdsbCBoYXZlIGFub3RoZXIgZ28uDQoNCkNoZWVycywNCg0KICBQYXVsDQoNCj4g
VGhhbmtzLA0KPiBDaHJpcyBNY0NseW1vbnQNCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Oct 17 12:56:28 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 Oct 2017 12:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4RQ3-0004px-Ds; Tue, 17 Oct 2017 12:56:27 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=456f5e959=owen.smith@citrix.com>)
 id 1e4RQ2-0004pU-3s
 for win-pv-devel@lists.xenproject.org; Tue, 17 Oct 2017 12:56:26 +0000
Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id
 A0/79-01775-9FDF5E95; Tue, 17 Oct 2017 12:56:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBIsWRWlGSWpSXmKPExsWSzvfng+6Pv08
 jDW7+VLD4szjRgdHj8IcrLAGMUayZeUn5FQmsGX9OrmUraFGp+PpqGksD4wnlLkZODgkBf4k3
 54+wgdhsAhoSMzoXs3QxcnGICMxllLj1exELSEJYwFfi9aQGsCIRAT+JB9NaWLsYOYBsK4mmQ
 7wgJouAqsSOC+YgFbwC7hIT/59kBBkjJNDLKDF35iFGkASngIfErfftYGMYBWQlvjSuZgaxmQ
 XEJW49mc8EcY+AxJI955khbFGJl4//sULYBhJbl+5jAdnFLKApsX6XPkSrosSU7ofsEHsFJU7
 OfMIygVFoFpKpsxA6ZiHpmIWkYwEjyypGjeLUorLUIl0jS72kosz0jJLcxMwcXUMDY73c1OLi
 xPTUnMSkYr3k/NxNjMDwrmdgYNzB2LTX7xCjJAeTkiivs+GTSCG+pPyUyozE4oz4otKc1OJDj
 DIcHEoSvD/+PI0UEixKTU+tSMvMAUYaTFqCg0dJhPcSSJq3uCAxtzgzHSJ1itGY49imy3+YOJ
 5cm/eXSYglLz8vVUqclw8Yw0ICIKUZpXlwg2AJ4BKjrJQwLyMDA4MQT0FqUW5mCar8K0ZxDkY
 lYd7ZIAt5MvNK4Pa9AjqFCeiUdU5PQE4pSURISTUwrg/hn39WVcjur6nCtNUMhQf8E59YvmW4
 237x6QPjlqBIJf335l8mcfFXF8YL/Im5yNffkfFNwSV3fW5wpmfZhswtqU67Ft+Ubtja/WTjJ
 YdYAx6ZToe7x3uP/dSLD5D3ELsbLvwvweHVdJu1PwUO95ga/cj6whGiarzsk8tpze+cd+ZLy7
 cqsRRnJBpqMRcVJwIALzjrs/sCAAA=
X-Env-Sender: prvs=456f5e959=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-31.messagelabs.com!1508244981!110652094!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42397 invoked from network); 17 Oct 2017 12:56:23 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-3.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 17 Oct 2017 12:56:23 -0000
X-IronPort-AV: E=Sophos;i="5.43,390,1503360000"; d="scan'208";a="106358363"
From: Owen Smith <owen.smith@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>, 'Chris McClymont'
 <chris@mcclymont.it>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Next signed release - support for readonly disks?
Thread-Index: AQHTRIp/ViM14cv6u0m9IWQLuIMsFaLnnkaAgABmKHA=
Date: Tue, 17 Oct 2017 12:56:17 +0000
Message-ID: <3927ea5fd7524f7399ef36111b27f1b4@AMSPEX02CL02.citrite.net>
References: <CAHkbytA9nCwdDDgL48Wr-uLg_ngK6UjQ0ODybC1p27eB+qug0w@mail.gmail.com>
 <fe6df5b29727416881384493ec7fa311@AMSPEX02CL03.citrite.net>
In-Reply-To: <fe6df5b29727416881384493ec7fa311@AMSPEX02CL03.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] Next signed release - support for readonly disks?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBmaXggd2FzIHVuaW50ZW5kZWQgLSBhbmQgaXQgZG9lcyBzZWVtIHBvc3NpYmxlIHRvIGJv
b3Qgd2l0aCByZWFkLW9ubHkgbm9uLWJvb3QgZGlza3MgYXR0YWNoZWQuIEl0J3Mgbm90IGEgZnVs
bHkgdGVzdGVkIHNldHVwLCBhbmQgdGhlIGZyb250ZW5kIG9mZmVycyBubyBwcm90ZWN0aW9uIGFn
YWluc3Qgd3JpdGVzIHRvIHJlYWQgb25seSBkaXNrcywgc28gdGhlIHJlc3VsdHMgYXJlIHVuZGVm
aW5lZA0KDQpPd2VuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGF1
bCBEdXJyYW50DQo+IFNlbnQ6IDE3IE9jdG9iZXIgMjAxNyAwOTo0Nw0KPiBUbzogJ0NocmlzIE1j
Q2x5bW9udCcgPGNocmlzQG1jY2x5bW9udC5pdD47IHdpbi1wdi0NCj4gZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCj4g
U3ViamVjdDogUkU6IFt3aW4tcHYtZGV2ZWxdIE5leHQgc2lnbmVkIHJlbGVhc2UgLSBzdXBwb3J0
IGZvciByZWFkb25seSBkaXNrcz8NCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
Cj4gPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0
cy54ZW5wcm9qZWN0Lm9yZ10NCj4gPiBPbiBCZWhhbGYgT2YgQ2hyaXMgTWNDbHltb250DQo+ID4g
U2VudDogMTQgT2N0b2JlciAyMDE3IDAyOjE5DQo+ID4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZw0KPiA+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIE5leHQgc2lnbmVkIHJl
bGVhc2UgLSBzdXBwb3J0IGZvciByZWFkb25seSBkaXNrcz8NCj4gPg0KPiA+IEhpIGV2ZXJ5b25l
LA0KPiA+DQo+ID4gU3VwcG9ydCBmb3IgcmVhZG9ubHkgZGlza3Mgd2FzIGZpeGVkIGluIHhlbnZi
ZCBjb21taXQNCj4gPiAzYmI0MWI0OWZmNjY0MzNhYjVlYmI1ZDM2ZDI0OTQ2ZjQwMzkwZDdjLiBX
aGVuIGlzIHRoaXMgbGlrZWx5IHRvIG1ha2UNCj4gPiBpdCBpbnRvIGEgc2lnbmVkIHJlbGVhc2U/
DQo+ID4NCj4gPg0KPiA+IEknbSB3b3JraW5nIG9uIFdpbmRvd3MgdGVtcGxhdGVzIGZvciBYZW4g
YW5kIHdvdWxkIGxvdmUgdG8gdXNlIHRoZQ0KPiA+IG5ld2VyIFhlbiBQcm9qZWN0IGRyaXZlcnMg
c2lnbmVkIGJ5IHRoZSBMaW51eCBGb3VuZGF0aW9uLCByYXRoZXIgdGhhbg0KPiA+IHRoZSBFSkIg
RGlnaXRhbCBvciBvdGhlcnMgZmxvYXRpbmcgYXJvdW5kLiBCdXQgSSBoYXZlIGEgcmVxdWlyZW1l
bnQgdG8NCj4gPiBzdXBwb3J0IHJlYWRvbmx5IGRpc2tzLCB3aGljaCBkb24ndCB3b3JrIGluIHRo
ZSA4LjIuMCByZWxlYXNlLg0KPiA+IFJlYWRvbmx5IGRpc2tzIGFwcGVhciBpbiBkZXZpY2UgbWFu
YWdlIG9ubHkgd2hlbiBlbXVsYXRlZCwgYW5kDQo+ID4gZGlzYXBwZWFyIChldmVuIHdpdGggU2hv
dyBIaWRkZW4gRGV2aWNlcykgYWZ0ZXIgdGhlIFBWIGRyaXZlcnMgYXJlDQo+ID4gaW5zdGFsbGVk
Lg0KPiA+DQo+ID4gVGhlIGNvbW1pdCBJIG1lbnRpb25lZCBpcyBzb21ld2hlcmUgYmV0d2VlbiA4
LjIuMCBhbmQgbWFzdGVyLg0KPiA+IFByZXZpb3VzbHksIHBkby5jIHdvdWxkIHNldCBTY3NpU3Rh
dHVzIHRvIFNDU0lfQUJPUlQgaWYNCj4gPiAoRGlza0luZm8tPkRpc2tJbmZvICYgVkRJU0tfUkVB
RE9OTFkpLiBOb3csIHBkby5jIGlzIGNhbGxlZCB0YXJnZXQuYw0KPiA+IGFuZCB0aGUgY29tbWl0
IHJlbW92ZXMgdGhlIHJlYWRvbmx5IGxpbWl0YXRpb24uDQo+ID4NCj4gDQo+IEhpIENocmlzLA0K
PiANCj4gT3dlbiBtYXkgaGF2ZSBtb3JlIHRvIHNheSwgYnV0IEkgYXNzdW1lIHRoaXMgd2FzIGFu
IHVuaW50ZW5kZWQNCj4gY29uc2VxdWVuY2Ugb2YgdGhlIHBhdGNoLg0KPiANCj4gSW4gbXkgZXhw
ZXJpZW5jZSBhbiBOVEZTIGZpbGVzeXN0ZW0gcmVxdWlyZXMgYSBkaXNrIHRvIGJlIHJlYWQvd3Jp
dGUNCj4gb3RoZXJ3aXNlIGl0IHdpbGwgbm90IGZ1bmN0aW9uLi4uIGNlcnRhaW5seSB0aGlzIGlz
IHRydWUgb2YgYSBzeXN0ZW0gZGlzay4gQXJlIHlvdQ0KPiB1c2luZyBhIGRpZmZlcmVudCBmaWxl
c3lzdGVtPyBUQkggSSB0aGluayBpdCdzIHF1aXRlIHJlYXNvbmFibGUgZm9yIFdpbmRvd3MgdG8N
Cj4gYXNzdW1lIHRoYXQgYSBub24tcmVtb3ZhYmxlIG1lZGl1bSBjYWxsaW5nIGl0c2VsZiBpcyBh
IGRpc2sgaXMgcmVhZC93cml0ZS4NCj4gDQo+ID4gSSdtIHdvbmRlcmluZyBhIGZldyB0aGluZ3M6
DQo+ID4gICAxKSBXaGVuIGlzIHRoaXMgY29tbWl0IGxpa2VseSB0byBtYWtlIGl0IGludG8gYSBz
aWduZWQgcmVsZWFzZQ0KPiANCj4gSXQncyBub3QgY3VycmVudGx5IGEgYmFjay1wb3J0IGNhbmRp
ZGF0ZSBhbmQgdGhlcmUgaXMgbm8gZmlybSB0aW1lbGluZSBmb3INCj4gcmVsZWFzaW5nIDkuMCBk
cml2ZXJzLg0KPiANCj4gPiAgIDIpIElzIHRoZXJlIGEgcm9hZG1hcD8gSS5lLiBIb3cgaXMgaXQg
ZGVjaWRlZCB3aGVuIHRvIG1ha2UgcmVsZWFzZXMNCj4gPiBhbmQgd2hpY2ggZmVhdHVyZXMvZml4
ZXMgdG8gaW5jbHVkZQ0KPiANCj4gQmVjYXVzZSB0aGUgWGVuIFByb2plY3QgZG9lcyBub3QgaGF2
ZSBkZWRpY2F0ZWQgaW5mcmFzdHJ1Y3R1cmUgZm9yIHRlc3RpbmcNCj4gdGhlIFBWIGRyaXZlcnMs
IHdlIGdlbmVyYWxseSByZWx5IG9uIHRoZSB0ZXN0aW5nIGRvbmUgYnkgQ2l0cml4IFhlblNlcnZl
ciBhbmQNCj4gdGhlcmVmb3JlIHJlbGVhc2VzIHRlbmQgdG8gYmUgYWxpZ25lZCB3aXRoIHVwZGF0
ZXMgbWFkZSB0byB0aGUgQ2l0cml4DQo+IGJyYW5kZWQgdmFyaWFudCBvZiB0aGUgZHJpdmVycy4N
Cj4gDQo+ID4gICAzKSBIb3cgY2FuIEkgc2VhcmNoIHRoaXMgbWFpbGluZyBsaXN0PyBJdCBkb2Vz
bid0IHNlZW0gdG8gYmUNCj4gPiBpbmNsdWRlZCBvbiBodHRwOi8veGVuLm1hcmttYWlsLm9yZy9z
ZWFyY2gvDQo+ID4NCj4gDQo+IFlvdSBjYW4gc2VlIHRoZSBtYWlsaW5nIGxpc3QgYXJjaGl2ZXMg
YXQNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3dpbi1wdi1k
ZXZlbC4gQXMgZm9yIHNlYXJjaGluZyB2aWENCj4gbWFya21haWwuLi4gSSBoYXZlIHJlcXVlc3Rl
ZCB0aGF0IHRoZSBsaXN0IGJlIGFkZGVkIGluIHRoZSBwYXN0LCBidXQgSSdsbCBoYXZlDQo+IGFu
b3RoZXIgZ28uDQo+IA0KPiBDaGVlcnMsDQo+IA0KPiAgIFBhdWwNCj4gDQo+ID4gVGhhbmtzLA0K
PiA+IENocmlzIE1jQ2x5bW9udA0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18NCj4gPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4g
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Oct 17 23:39:53 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 17 Oct 2017 23:39:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4bSg-0006iW-9e; Tue, 17 Oct 2017 23:39:50 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <chris@mcclymont.it>) id 1e4bSf-0006iQ-4e
 for win-pv-devel@lists.xenproject.org; Tue, 17 Oct 2017 23:39:49 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 8B/44-02146-4C496E95; Tue, 17 Oct 2017 23:39:48 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRWlGSWpSXmKPExsVyMfSqru7hKc8
 iDRatlbT4szjRgdHj8IcrLAGMUayZeUn5FQmsGf+XXmIv2KtSsWvnZ7YGxrVyXYxcHEICMxkl
 Lh9pYwVxWAQ2skqs/XiYGcSRENjMKvFv908ghwPIqZO436PXxcgJZBZJHFs/DyqcJ/FxlgVIm
 FdAUOLkzCcsILaQgJfEs4YuRohyJYk5Vx+A2ZwCHhK33rezQSzuZZSYO/MQWIJNQEticf8Bdh
 CbRUBV4veHLlaIoQESx+69AhsqLOArcfD3X3aQvSIC3hK3V/CDhJkFNCVat/9mh7C1JZYtfM0
 8gVFoFpKTZiEpm4WkbAEj8ypGjeLUorLUIl1jA72kosz0jJLcxMwcXUMDU73c1OLixPTUnMSk
 Yr3k/NxNjMBgrmdgYNzBOGGV3yFGSQ4mJVFeZ8MnkUJ8SfkplRmJxRnxRaU5qcWHGGU4OJQke
 CdOfhYpJFiUmp5akZaZA4wrmLQEB4+SCK8qSJq3uCAxtzgzHSJ1itGS48KdS3+YOI5tugwkD+
 y59YdJiCUvPy9VSpy3GaRBAKQhozQPbhws9i8xykoJ8zIyMDAI8RSkFuVmlqDKv2IU52BUEua
 tBpnCk5lXArf1FdBBTEAHrXN6AnJQSSJCSqqB0SQmxWBPZNEfv/b1r7sirZYaT9OarrSpdYrr
 ioeGXNdLN3V3+Gz5dfe47d/MpAlTjHuvHqz43lBmNOswW0es31fl14c52MyLZaY1tHX9Mtty8
 /DBL7+8Cn78msDrnBhfs013uxN34T31qiWyZxh9Lx3SYWZ4E/zuj/fNpYo77n0N3aNhX6flpc
 RSnJFoqMVcVJwIAIaRaUH4AgAA
X-Env-Sender: chris@mcclymont.it
X-Msg-Ref: server-13.tower-206.messagelabs.com!1508283586!91926477!1
X-Originating-IP: [209.85.213.45]
X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 62513 invoked from network); 17 Oct 2017 23:39:47 -0000
Received: from mail-vk0-f45.google.com (HELO mail-vk0-f45.google.com)
 (209.85.213.45)
 by server-13.tower-206.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 17 Oct 2017 23:39:47 -0000
Received: by mail-vk0-f45.google.com with SMTP id j2so2220184vki.4
 for <win-pv-devel@lists.xenproject.org>; Tue, 17 Oct 2017 16:39:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mcclymont-it.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :content-transfer-encoding;
 bh=IOpvAy/Q7lT+CyQsJL5TWb0FU+DPIAeX5pf7BfVPz3Y=;
 b=KGU7rEhB7U+xcc5gRjY479qK9mQkacnFJnUDPDb4XtkI8xsmcCfDQVHXJvS9Qio18X
 BU3/uTZvQQbzodcY8/bhhGMaQPyNJBt0sg4o1Q5y946LTPFp0vDvulX9QMc74hQdJK4P
 uHuCSfhdbYLhvWzZdc875AX+7LMOKDejJykedSSx4pRQVN4sRRn0vxEeBHoDpsgGsiS6
 5s/7vCnDr09w2eBG+w8FQ9NbDu+2xv/gvL3JXIrGLSVHd5cZ/cT6+wfwEqrh+xzm/bMT
 5CexFfioTu8liByjzSQ5LtUf9pfz/zdHiQdMOi7KfNruDIiQKdlu+YoR5iipl99O5aOe
 645A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:content-transfer-encoding;
 bh=IOpvAy/Q7lT+CyQsJL5TWb0FU+DPIAeX5pf7BfVPz3Y=;
 b=YHbFAHEY/lZlWwPBukSqzvytM7lcZtm9/TGoI6ObBrlJYCsg1sRjbPXXQ9WlSsxv1e
 LaEi+Kn5wBF4Ua7GIRbbQV3bT6YeCjPmb7s1j5yOUCOoGz9O+kB5zym+okvN9yHm8am6
 feHg538QktIFA7woZuoMjiSwmUUjBUvjcmJRqAw220sgULBS5dWq7176xB3DOfH5q6Jl
 e64AiaDt9SMJVj3YPfEvk4n4oo61voO6x0iMEv8acqv89nxJ3lae1y24Sj72wLY098L6
 vWI45qY/LN72WRGl0oDnGy1BJZcrkDGBOCK61KWQjxN91jKfEcIoT0MfKPcEF6U4K0Jg
 AvkQ==
X-Gm-Message-State: AMCzsaWcSoD2+yOflgroO1p5EjgHgrhHb765c37Zb9f3FBMs12+P1K8U
 oAGjvZme0FoI21BxCQJw9GGbHXTwhz5z++TclThb2gR29rw=
X-Google-Smtp-Source: ABhQp+RlUQ8oAObgNWGASzimCZeX+u4htAFQLBM/OiejRFZkRLdNLzHMcqYgYauGw5ddZ47Dx3idpT2bd8pKSJOgn0A=
X-Received: by 10.31.7.19 with SMTP id 19mr4189972vkh.37.1508283585755; Tue,
 17 Oct 2017 16:39:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.68.37 with HTTP; Tue, 17 Oct 2017 16:39:45 -0700 (PDT)
X-Originating-IP: [162.198.228.73]
In-Reply-To: <fe6df5b29727416881384493ec7fa311@AMSPEX02CL03.citrite.net>
References: <CAHkbytA9nCwdDDgL48Wr-uLg_ngK6UjQ0ODybC1p27eB+qug0w@mail.gmail.com>
 <fe6df5b29727416881384493ec7fa311@AMSPEX02CL03.citrite.net>
From: Chris McClymont <chris@mcclymont.it>
Date: Tue, 17 Oct 2017 16:39:45 -0700
Message-ID: <CAHkbytBsU+pMowUYpjpYLz64e6EcB=hof6kjefFa1eQBuB75XA@mail.gmail.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Subject: Re: [win-pv-devel] Next signed release - support for readonly disks?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiBJbiBteSBleHBlcmllbmNlIGFuIE5URlMgZmlsZXN5c3RlbSByZXF1aXJlcyBhIGRpc2sgdG8g
YmUgcmVhZC93cml0ZSBvdGhlcndpc2UgaXQgd2lsbCBub3QgZnVuY3Rpb24uLi4gY2VydGFpbmx5
IHRoaXMgaXMgdHJ1ZSBvZiBhIHN5c3RlbSBkaXNrLiBBcmUgeW91IHVzaW5nIGEgZGlmZmVyZW50
IGZpbGVzeXN0ZW0/IFRCSCBJIHRoaW5rIGl0J3MgcXVpdGUgcmVhc29uYWJsZSBmb3IgV2luZG93
cyB0byBhc3N1bWUgdGhhdCBhIG5vbi1yZW1vdmFibGUgbWVkaXVtIGNhbGxpbmcgaXRzZWxmIGlz
IGEgZGlzayBpcyByZWFkL3dyaXRlLgoKUmVhZG9ubHkgZGlza3MgYXBwZWFyIHRvIGJlaGF2ZSBh
cyBleHBlY3RlZCBmb3IgbWUgdXNpbmcgV2luZG93cwpTZXJ2ZXIgMjAxMiB3aXRoIHRoZSBHUExQ
ViBkcml2ZXJzIHNpZ25lZCBieSBFSkIgRGlnaXRhbCwgdGVzdGVkIHVzaW5nCmJvdGggVkZBVCBh
bmQgTlRGUy4gSW4gdGhlIERpc2sgTWFuYWdlbWVudCBVSSwgdGhlIGRpc2sgYXBwZWFycyBhcwpS
ZWFkIE9ubHkgd2hlcmUgaXQgbm9ybWFsbHkgc2F5cyBPbmxpbmUuIEZvciBzb21lIHJlYXNvbiwg
dGhlIG9wdGlvbgp0byBhZGQgYSBkcml2ZSBsZXR0ZXIgaXMgbm90IHRoZXJlLCBidXQgSSBjYW4g
bW91bnQgdGhlbSB1c2luZwpkaXNrcGFydC4gRmlsZXMgY2FuIGJlIHJlYWQgYnV0IHRyeWluZyB0
byBwYXN0ZSBhIGZpbGUgaW50byB0aGUKbW91bnRlZCByZWFkb25seSBkaXNrIHJlc3VsdHMgaW4g
YW4gZXJyb3IgZGlhbG9nOgoiVGhlIGRpc2sgaXMgd3JpdGUtcHJvdGVjdGVkLiAuLi4gUmVtb3Zl
IHRoZSB3cml0ZS1wcm90ZWN0aW9uIG9yIHVzZQphbm90aGVyIGRpc2suIiAgVHJ5IEFnYWluIC8g
U2tpcCAvIENhbmNlbAoKSSBiZWxpZXZlIHRoaXMgaXMgYWNoaWV2ZWQgYnkgc2V0dGluZyB0aGUg
V3JpdGUgUHJvdGVjdGVkIGZsYWcgaW4gdGhlClNDU0kgcGFyYW1ldGVycyBpbiByZXNwb25zZSB0
byB0aGUgU2Vuc2UgY29tbWFuZC4KSXQgbG9va3MgbGlrZSBpdCBpcyBzZXQgaGVyZSBpbiB0aGUg
R1BMUFYgY29kZToKaHR0cDovL3hlbmJpdHMueGVuc291cmNlLmNvbS9leHQvd2luLXB2ZHJpdmVy
cy9maWxlLzJkMzkyZWNkZDM2Ni94ZW52YmRfY29tbW9uL2NvbW1vbl9taW5pcG9ydC5oI2w0OTcK
ClRoZXNlIGRpc2tzIGhhdmUgIkVKRUNUU1VQUE9SVEVEIiBhbmQgYWxzbyAiU1VSUFJJU0VSRU1P
VkFMT0siIGFzCmNhcGFiaWxpdGllcyAoSW4gYm90aCBHUExQViBhbmQgdGhpcyBwcm9qZWN0KSBz
byBJIHRoaW5rIHRoZXkgYXJlCmNsYXNzaWZpZWQgYXMgcmVtb3ZhYmxlLgoKPiBUaGlzIGZpeCB3
YXMgdW5pbnRlbmRlZCAtIGFuZCBpdCBkb2VzIHNlZW0gcG9zc2libGUgdG8gYm9vdCB3aXRoIHJl
YWQtb25seSBub24tYm9vdCBkaXNrcyBhdHRhY2hlZC4gSXQncyBub3QgYSBmdWxseSB0ZXN0ZWQg
c2V0dXAsIGFuZCB0aGUgZnJvbnRlbmQgb2ZmZXJzIG5vIHByb3RlY3Rpb24gYWdhaW5zdCB3cml0
ZXMgdG8gcmVhZCBvbmx5IGRpc2tzLCBzbyB0aGUgcmVzdWx0cyBhcmUgdW5kZWZpbmVkClllYWgs
IG15IHRlc3Rpbmcgc2hvd3MgdGhhdCB3cml0ZXMgYXBwZWFyIHRvIHdvcmssIGJ1dCBhZnRlcgpy
ZWZyZXNoaW5nIHRoZSBkaXNrIG9yIGZvbGRlciB0aGUgd3JpdHRlbiBmaWxlcyBkaXNhcHBlYXIu
CgpUaGFua3MgUGF1bCBhbmQgT3dlbiwgSSB3aWxsIGVpdGhlciBrZWVwIHVzaW5nIHRoZSBHUExQ
ViBkcml2ZXJzIG9yCmxvb2sgaW50byBmZWFzaWJpbGl0eSBvZiBwYXRjaGluZyBpbiB0aGUgU0NT
SSBsZXZlbCB3cml0ZSBwcm90ZWN0aW9uLgoKUmVnYXJkcywKQ2hyaXMgTWNDbHltb250CgoKT24g
VHVlLCBPY3QgMTcsIDIwMTcgYXQgMTo0NiBBTSwgUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRA
Y2l0cml4LmNvbT4gd3JvdGU6Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206
IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2pl
Y3Qub3JnXSBPbgo+PiBCZWhhbGYgT2YgQ2hyaXMgTWNDbHltb250Cj4+IFNlbnQ6IDE0IE9jdG9i
ZXIgMjAxNyAwMjoxOQo+PiBUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCj4+
IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIE5leHQgc2lnbmVkIHJlbGVhc2UgLSBzdXBwb3J0IGZv
ciByZWFkb25seSBkaXNrcz8KPj4KPj4gSGkgZXZlcnlvbmUsCj4+Cj4+IFN1cHBvcnQgZm9yIHJl
YWRvbmx5IGRpc2tzIHdhcyBmaXhlZCBpbiB4ZW52YmQgY29tbWl0Cj4+IDNiYjQxYjQ5ZmY2NjQz
M2FiNWViYjVkMzZkMjQ5NDZmNDAzOTBkN2MuIFdoZW4gaXMgdGhpcyBsaWtlbHkgdG8gbWFrZQo+
PiBpdCBpbnRvIGEgc2lnbmVkIHJlbGVhc2U/Cj4+Cj4+Cj4+IEknbSB3b3JraW5nIG9uIFdpbmRv
d3MgdGVtcGxhdGVzIGZvciBYZW4gYW5kIHdvdWxkIGxvdmUgdG8gdXNlIHRoZQo+PiBuZXdlciBY
ZW4gUHJvamVjdCBkcml2ZXJzIHNpZ25lZCBieSB0aGUgTGludXggRm91bmRhdGlvbiwgcmF0aGVy
IHRoYW4KPj4gdGhlIEVKQiBEaWdpdGFsIG9yIG90aGVycyBmbG9hdGluZyBhcm91bmQuIEJ1dCBJ
IGhhdmUgYSByZXF1aXJlbWVudCB0bwo+PiBzdXBwb3J0IHJlYWRvbmx5IGRpc2tzLCB3aGljaCBk
b24ndCB3b3JrIGluIHRoZSA4LjIuMCByZWxlYXNlLgo+PiBSZWFkb25seSBkaXNrcyBhcHBlYXIg
aW4gZGV2aWNlIG1hbmFnZSBvbmx5IHdoZW4gZW11bGF0ZWQsIGFuZAo+PiBkaXNhcHBlYXIgKGV2
ZW4gd2l0aCBTaG93IEhpZGRlbiBEZXZpY2VzKSBhZnRlciB0aGUgUFYgZHJpdmVycyBhcmUKPj4g
aW5zdGFsbGVkLgo+Pgo+PiBUaGUgY29tbWl0IEkgbWVudGlvbmVkIGlzIHNvbWV3aGVyZSBiZXR3
ZWVuIDguMi4wIGFuZCBtYXN0ZXIuCj4+IFByZXZpb3VzbHksIHBkby5jIHdvdWxkIHNldCBTY3Np
U3RhdHVzIHRvIFNDU0lfQUJPUlQgaWYKPj4gKERpc2tJbmZvLT5EaXNrSW5mbyAmIFZESVNLX1JF
QURPTkxZKS4gTm93LCBwZG8uYyBpcyBjYWxsZWQgdGFyZ2V0LmMKPj4gYW5kIHRoZSBjb21taXQg
cmVtb3ZlcyB0aGUgcmVhZG9ubHkgbGltaXRhdGlvbi4KPj4KPgo+IEhpIENocmlzLAo+Cj4gT3dl
biBtYXkgaGF2ZSBtb3JlIHRvIHNheSwgYnV0IEkgYXNzdW1lIHRoaXMgd2FzIGFuIHVuaW50ZW5k
ZWQgY29uc2VxdWVuY2Ugb2YgdGhlIHBhdGNoLgo+Cj4gSW4gbXkgZXhwZXJpZW5jZSBhbiBOVEZT
IGZpbGVzeXN0ZW0gcmVxdWlyZXMgYSBkaXNrIHRvIGJlIHJlYWQvd3JpdGUgb3RoZXJ3aXNlIGl0
IHdpbGwgbm90IGZ1bmN0aW9uLi4uIGNlcnRhaW5seSB0aGlzIGlzIHRydWUgb2YgYSBzeXN0ZW0g
ZGlzay4gQXJlIHlvdSB1c2luZyBhIGRpZmZlcmVudCBmaWxlc3lzdGVtPyBUQkggSSB0aGluayBp
dCdzIHF1aXRlIHJlYXNvbmFibGUgZm9yIFdpbmRvd3MgdG8gYXNzdW1lIHRoYXQgYSBub24tcmVt
b3ZhYmxlIG1lZGl1bSBjYWxsaW5nIGl0c2VsZiBpcyBhIGRpc2sgaXMgcmVhZC93cml0ZS4KPgo+
PiBJJ20gd29uZGVyaW5nIGEgZmV3IHRoaW5nczoKPj4gICAxKSBXaGVuIGlzIHRoaXMgY29tbWl0
IGxpa2VseSB0byBtYWtlIGl0IGludG8gYSBzaWduZWQgcmVsZWFzZQo+Cj4gSXQncyBub3QgY3Vy
cmVudGx5IGEgYmFjay1wb3J0IGNhbmRpZGF0ZSBhbmQgdGhlcmUgaXMgbm8gZmlybSB0aW1lbGlu
ZSBmb3IgcmVsZWFzaW5nIDkuMCBkcml2ZXJzLgo+Cj4+ICAgMikgSXMgdGhlcmUgYSByb2FkbWFw
PyBJLmUuIEhvdyBpcyBpdCBkZWNpZGVkIHdoZW4gdG8gbWFrZSByZWxlYXNlcwo+PiBhbmQgd2hp
Y2ggZmVhdHVyZXMvZml4ZXMgdG8gaW5jbHVkZQo+Cj4gQmVjYXVzZSB0aGUgWGVuIFByb2plY3Qg
ZG9lcyBub3QgaGF2ZSBkZWRpY2F0ZWQgaW5mcmFzdHJ1Y3R1cmUgZm9yIHRlc3RpbmcgdGhlIFBW
IGRyaXZlcnMsIHdlIGdlbmVyYWxseSByZWx5IG9uIHRoZSB0ZXN0aW5nIGRvbmUgYnkgQ2l0cml4
IFhlblNlcnZlciBhbmQgdGhlcmVmb3JlIHJlbGVhc2VzIHRlbmQgdG8gYmUgYWxpZ25lZCB3aXRo
IHVwZGF0ZXMgbWFkZSB0byB0aGUgQ2l0cml4IGJyYW5kZWQgdmFyaWFudCBvZiB0aGUgZHJpdmVy
cy4KPgo+PiAgIDMpIEhvdyBjYW4gSSBzZWFyY2ggdGhpcyBtYWlsaW5nIGxpc3Q/IEl0IGRvZXNu
J3Qgc2VlbSB0byBiZQo+PiBpbmNsdWRlZCBvbiBodHRwOi8veGVuLm1hcmttYWlsLm9yZy9zZWFy
Y2gvCj4+Cj4KPiBZb3UgY2FuIHNlZSB0aGUgbWFpbGluZyBsaXN0IGFyY2hpdmVzIGF0IGh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC93aW4tcHYtZGV2ZWwuIEFzIGZv
ciBzZWFyY2hpbmcgdmlhIG1hcmttYWlsLi4uIEkgaGF2ZSByZXF1ZXN0ZWQgdGhhdCB0aGUgbGlz
dCBiZSBhZGRlZCBpbiB0aGUgcGFzdCwgYnV0IEknbGwgaGF2ZSBhbm90aGVyIGdvLgo+Cj4gQ2hl
ZXJzLAo+Cj4gICBQYXVsCj4KPj4gVGhhbmtzLAo+PiBDaHJpcyBNY0NseW1vbnQKPj4KPj4gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAo+PiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPj4g
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Oct 18 09:39:07 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 Oct 2017 09:39:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4koa-0000es-Cc; Wed, 18 Oct 2017 09:39:04 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=457334e98=Paul.Durrant@citrix.com>)
 id 1e4koZ-0000em-Bh
 for win-pv-devel@lists.xenproject.org; Wed, 18 Oct 2017 09:39:03 +0000
Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id
 87/13-25852-63127E95; Wed, 18 Oct 2017 09:39:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJIsWRWlGSWpSXmKPExsWSzvfng66p4vN
 Ig/uv1Cz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxudle1gKlthVLNr5ja2BcY9tFyMnh4SAv8Tj
 izOZQWw2AR2JpUfnM4HYIgIlEq//nWAEsYUFfCVeT2pgg4j7STyY1sIKYTtJTJ80H8xmEVCV6
 H5/C8zmFXCX+Lp9HlA9F4eQwGVGib+zL4IN4hQIlJh68B5YEaOArMSXxtVgi5kFxCVuPYFYLC
 EgILFkz3lmCFtU4uXjf6wQtoHE1qX7WLoYOYDqNSXW79KHaFWUmNL9kB1ir6DEyZlPWCYwCs1
 CMnUWQscsJB2zkHQsYGRZxahRnFpUllqka2ikl1SUmZ5RkpuYmaNraGCml5taXJyYnpqTmFSs
 l5yfu4kRGOAMQLCD8fLGgEOMkhxMSqK8ugeeRQrxJeWnVGYkFmfEF5XmpBYfYpTh4FCS4BVXe
 B4pJFiUmp5akZaZA4w1mLQEB4+SCK8pSJq3uCAxtzgzHSJ1itGY49imy3+YOJ5cm/eXSYglLz
 8vVUqc96s8UKkASGlGaR7cIFgKuMQoKyXMywh0mhBPQWpRbmYJqvwrRnEORiVhXn2QhTyZeSV
 w+14BncIEdMo6pycgp5QkIqSkGhhnMudNvfh4V+y7ziNrFvQc7Jrd79gqOb/TnGf9jT97Qzy2
 N8yZWfbx9WP1mSnTXv8/tul2zpP2Qu7LxWcL7ipP7OZsYZxY5TPZJPhq3asrkUrmuj/kGE081
 /Ct0LkyU9OpTiZrAYPDp4cPXxvaN82aa7f7Q9Kquy+5Pou/KNH0qd2Q8cwvfsVPJZbijERDLe
 ai4kQAr0TDtvwCAAA=
X-Env-Sender: prvs=457334e98=Paul.Durrant@citrix.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1508319539!112396739!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 58699 invoked from network); 18 Oct 2017 09:39:01 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Oct 2017 09:39:01 -0000
X-IronPort-AV: E=Sophos;i="5.43,395,1503360000"; d="scan'208";a="106374220"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Chris McClymont' <chris@mcclymont.it>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Next signed release - support for readonly disks?
Thread-Index: AQHTRIp/Rm5gx1IX6USdqNKOU+vwA6LnvVDggADagICAAMdUUA==
Date: Wed, 18 Oct 2017 09:38:41 +0000
Message-ID: <25bc0e54bdd242ce9f3879e3f0342355@AMSPEX02CL03.citrite.net>
References: <CAHkbytA9nCwdDDgL48Wr-uLg_ngK6UjQ0ODybC1p27eB+qug0w@mail.gmail.com>
 <fe6df5b29727416881384493ec7fa311@AMSPEX02CL03.citrite.net>
 <CAHkbytBsU+pMowUYpjpYLz64e6EcB=hof6kjefFa1eQBuB75XA@mail.gmail.com>
In-Reply-To: <CAHkbytBsU+pMowUYpjpYLz64e6EcB=hof6kjefFa1eQBuB75XA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] Next signed release - support for readonly disks?
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIENocmlzIE1jQ2x5bW9udA0KPiBTZW50OiAxOCBPY3RvYmVyIDIwMTcgMDA6NDANCj4gVG86
IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW3dpbi1w
di1kZXZlbF0gTmV4dCBzaWduZWQgcmVsZWFzZSAtIHN1cHBvcnQgZm9yIHJlYWRvbmx5IGRpc2tz
Pw0KPiANCj4gPiBJbiBteSBleHBlcmllbmNlIGFuIE5URlMgZmlsZXN5c3RlbSByZXF1aXJlcyBh
IGRpc2sgdG8gYmUgcmVhZC93cml0ZQ0KPiBvdGhlcndpc2UgaXQgd2lsbCBub3QgZnVuY3Rpb24u
Li4gY2VydGFpbmx5IHRoaXMgaXMgdHJ1ZSBvZiBhIHN5c3RlbSBkaXNrLiBBcmUgeW91DQo+IHVz
aW5nIGEgZGlmZmVyZW50IGZpbGVzeXN0ZW0/IFRCSCBJIHRoaW5rIGl0J3MgcXVpdGUgcmVhc29u
YWJsZSBmb3IgV2luZG93cyB0bw0KPiBhc3N1bWUgdGhhdCBhIG5vbi1yZW1vdmFibGUgbWVkaXVt
IGNhbGxpbmcgaXRzZWxmIGlzIGEgZGlzayBpcyByZWFkL3dyaXRlLg0KPiANCj4gUmVhZG9ubHkg
ZGlza3MgYXBwZWFyIHRvIGJlaGF2ZSBhcyBleHBlY3RlZCBmb3IgbWUgdXNpbmcgV2luZG93cw0K
PiBTZXJ2ZXIgMjAxMiB3aXRoIHRoZSBHUExQViBkcml2ZXJzIHNpZ25lZCBieSBFSkIgRGlnaXRh
bCwgdGVzdGVkIHVzaW5nDQo+IGJvdGggVkZBVCBhbmQgTlRGUy4gSW4gdGhlIERpc2sgTWFuYWdl
bWVudCBVSSwgdGhlIGRpc2sgYXBwZWFycyBhcw0KPiBSZWFkIE9ubHkgd2hlcmUgaXQgbm9ybWFs
bHkgc2F5cyBPbmxpbmUuIEZvciBzb21lIHJlYXNvbiwgdGhlIG9wdGlvbg0KPiB0byBhZGQgYSBk
cml2ZSBsZXR0ZXIgaXMgbm90IHRoZXJlLCBidXQgSSBjYW4gbW91bnQgdGhlbSB1c2luZw0KPiBk
aXNrcGFydC4gRmlsZXMgY2FuIGJlIHJlYWQgYnV0IHRyeWluZyB0byBwYXN0ZSBhIGZpbGUgaW50
byB0aGUNCj4gbW91bnRlZCByZWFkb25seSBkaXNrIHJlc3VsdHMgaW4gYW4gZXJyb3IgZGlhbG9n
Og0KPiAiVGhlIGRpc2sgaXMgd3JpdGUtcHJvdGVjdGVkLiAuLi4gUmVtb3ZlIHRoZSB3cml0ZS1w
cm90ZWN0aW9uIG9yIHVzZQ0KPiBhbm90aGVyIGRpc2suIiAgVHJ5IEFnYWluIC8gU2tpcCAvIENh
bmNlbA0KPiANCj4gSSBiZWxpZXZlIHRoaXMgaXMgYWNoaWV2ZWQgYnkgc2V0dGluZyB0aGUgV3Jp
dGUgUHJvdGVjdGVkIGZsYWcgaW4gdGhlDQo+IFNDU0kgcGFyYW1ldGVycyBpbiByZXNwb25zZSB0
byB0aGUgU2Vuc2UgY29tbWFuZC4NCj4gSXQgbG9va3MgbGlrZSBpdCBpcyBzZXQgaGVyZSBpbiB0
aGUgR1BMUFYgY29kZToNCj4gaHR0cDovL3hlbmJpdHMueGVuc291cmNlLmNvbS9leHQvd2luLQ0K
PiBwdmRyaXZlcnMvZmlsZS8yZDM5MmVjZGQzNjYveGVudmJkX2NvbW1vbi9jb21tb25fbWluaXBv
cnQuaCNsNDk3DQoNCkludGVyZXN0aW5nLCB0aGFua3MgZm9yIHRoZSBkZXRhaWwuDQoNCj4gDQo+
IFRoZXNlIGRpc2tzIGhhdmUgIkVKRUNUU1VQUE9SVEVEIiBhbmQgYWxzbyAiU1VSUFJJU0VSRU1P
VkFMT0siIGFzDQo+IGNhcGFiaWxpdGllcyAoSW4gYm90aCBHUExQViBhbmQgdGhpcyBwcm9qZWN0
KSBzbyBJIHRoaW5rIHRoZXkgYXJlDQo+IGNsYXNzaWZpZWQgYXMgcmVtb3ZhYmxlLg0KPiANCg0K
SXQncyBhIGJpdCBvZiBhIHN0cmFuZ2UgZGlzdGluY3Rpb24gYnV0IEkgYmVsaWV2ZSB0aGF0J3Mg
ZGlmZmVyZW50IGZyb20gcmVtb3ZhYmxlIG1lZGlhIGFuZCBJIHdhcyB3b25kZXJpbmcgd2hldGhl
ciBXaW5kb3dzIHdpbGwgY29wZSB3aXRoIG5vbi1yZW1vdmFibGUgbWVkaWEgYmVpbmcgcmVhZC1v
bmx5LiBGcm9tIHdoYXQgeW91IHNheSBhYm92ZSB0aG91Z2gsIGl0IGFwcGVhcnMgaXQgZG9lcy4N
Cg0KPiA+IFRoaXMgZml4IHdhcyB1bmludGVuZGVkIC0gYW5kIGl0IGRvZXMgc2VlbSBwb3NzaWJs
ZSB0byBib290IHdpdGggcmVhZC1vbmx5DQo+IG5vbi1ib290IGRpc2tzIGF0dGFjaGVkLiBJdCdz
IG5vdCBhIGZ1bGx5IHRlc3RlZCBzZXR1cCwgYW5kIHRoZSBmcm9udGVuZCBvZmZlcnMNCj4gbm8g
cHJvdGVjdGlvbiBhZ2FpbnN0IHdyaXRlcyB0byByZWFkIG9ubHkgZGlza3MsIHNvIHRoZSByZXN1
bHRzIGFyZSB1bmRlZmluZWQNCj4gWWVhaCwgbXkgdGVzdGluZyBzaG93cyB0aGF0IHdyaXRlcyBh
cHBlYXIgdG8gd29yaywgYnV0IGFmdGVyDQo+IHJlZnJlc2hpbmcgdGhlIGRpc2sgb3IgZm9sZGVy
IHRoZSB3cml0dGVuIGZpbGVzIGRpc2FwcGVhci4NCj4gDQo+IFRoYW5rcyBQYXVsIGFuZCBPd2Vu
LCBJIHdpbGwgZWl0aGVyIGtlZXAgdXNpbmcgdGhlIEdQTFBWIGRyaXZlcnMgb3INCj4gbG9vayBp
bnRvIGZlYXNpYmlsaXR5IG9mIHBhdGNoaW5nIGluIHRoZSBTQ1NJIGxldmVsIHdyaXRlIHByb3Rl
Y3Rpb24uDQo+IA0KDQpJJ20gc3VyZSBvbmUgb2YgdXMgY2FuIGxvb2sgYXQgcGF0Y2hpbmcgeGVu
dmJkIGFjY29yZGluZ2x5IGJ1dCwgYXMgSSBzYWlkLCBpdCBtYXkgYmUgYSBsaXR0bGUgd2hpbGUg
YmVmb3JlIHdlIGRvIGEgc2lnbmVkIHJlbGVhc2Ugb2YgdGhlIDkuMCBkcml2ZXJzLg0KDQpDaGVl
cnMsDQoNCiAgUGF1bA0KDQo+IFJlZ2FyZHMsDQo+IENocmlzIE1jQ2x5bW9udA0KPiANCj4gDQo+
IE9uIFR1ZSwgT2N0IDE3LCAyMDE3IGF0IDE6NDYgQU0sIFBhdWwgRHVycmFudCA8UGF1bC5EdXJy
YW50QGNpdHJpeC5jb20+DQo+IHdyb3RlOg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQ0KPiA+PiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0Bs
aXN0cy54ZW5wcm9qZWN0Lm9yZ10NCj4gT24NCj4gPj4gQmVoYWxmIE9mIENocmlzIE1jQ2x5bW9u
dA0KPiA+PiBTZW50OiAxNCBPY3RvYmVyIDIwMTcgMDI6MTkNCj4gPj4gVG86IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+PiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBOZXh0
IHNpZ25lZCByZWxlYXNlIC0gc3VwcG9ydCBmb3IgcmVhZG9ubHkgZGlza3M/DQo+ID4+DQo+ID4+
IEhpIGV2ZXJ5b25lLA0KPiA+Pg0KPiA+PiBTdXBwb3J0IGZvciByZWFkb25seSBkaXNrcyB3YXMg
Zml4ZWQgaW4geGVudmJkIGNvbW1pdA0KPiA+PiAzYmI0MWI0OWZmNjY0MzNhYjVlYmI1ZDM2ZDI0
OTQ2ZjQwMzkwZDdjLiBXaGVuIGlzIHRoaXMgbGlrZWx5IHRvIG1ha2UNCj4gPj4gaXQgaW50byBh
IHNpZ25lZCByZWxlYXNlPw0KPiA+Pg0KPiA+Pg0KPiA+PiBJJ20gd29ya2luZyBvbiBXaW5kb3dz
IHRlbXBsYXRlcyBmb3IgWGVuIGFuZCB3b3VsZCBsb3ZlIHRvIHVzZSB0aGUNCj4gPj4gbmV3ZXIg
WGVuIFByb2plY3QgZHJpdmVycyBzaWduZWQgYnkgdGhlIExpbnV4IEZvdW5kYXRpb24sIHJhdGhl
ciB0aGFuDQo+ID4+IHRoZSBFSkIgRGlnaXRhbCBvciBvdGhlcnMgZmxvYXRpbmcgYXJvdW5kLiBC
dXQgSSBoYXZlIGEgcmVxdWlyZW1lbnQgdG8NCj4gPj4gc3VwcG9ydCByZWFkb25seSBkaXNrcywg
d2hpY2ggZG9uJ3Qgd29yayBpbiB0aGUgOC4yLjAgcmVsZWFzZS4NCj4gPj4gUmVhZG9ubHkgZGlz
a3MgYXBwZWFyIGluIGRldmljZSBtYW5hZ2Ugb25seSB3aGVuIGVtdWxhdGVkLCBhbmQNCj4gPj4g
ZGlzYXBwZWFyIChldmVuIHdpdGggU2hvdyBIaWRkZW4gRGV2aWNlcykgYWZ0ZXIgdGhlIFBWIGRy
aXZlcnMgYXJlDQo+ID4+IGluc3RhbGxlZC4NCj4gPj4NCj4gPj4gVGhlIGNvbW1pdCBJIG1lbnRp
b25lZCBpcyBzb21ld2hlcmUgYmV0d2VlbiA4LjIuMCBhbmQgbWFzdGVyLg0KPiA+PiBQcmV2aW91
c2x5LCBwZG8uYyB3b3VsZCBzZXQgU2NzaVN0YXR1cyB0byBTQ1NJX0FCT1JUIGlmDQo+ID4+IChE
aXNrSW5mby0+RGlza0luZm8gJiBWRElTS19SRUFET05MWSkuIE5vdywgcGRvLmMgaXMgY2FsbGVk
IHRhcmdldC5jDQo+ID4+IGFuZCB0aGUgY29tbWl0IHJlbW92ZXMgdGhlIHJlYWRvbmx5IGxpbWl0
YXRpb24uDQo+ID4+DQo+ID4NCj4gPiBIaSBDaHJpcywNCj4gPg0KPiA+IE93ZW4gbWF5IGhhdmUg
bW9yZSB0byBzYXksIGJ1dCBJIGFzc3VtZSB0aGlzIHdhcyBhbiB1bmludGVuZGVkDQo+IGNvbnNl
cXVlbmNlIG9mIHRoZSBwYXRjaC4NCj4gPg0KPiA+IEluIG15IGV4cGVyaWVuY2UgYW4gTlRGUyBm
aWxlc3lzdGVtIHJlcXVpcmVzIGEgZGlzayB0byBiZSByZWFkL3dyaXRlDQo+IG90aGVyd2lzZSBp
dCB3aWxsIG5vdCBmdW5jdGlvbi4uLiBjZXJ0YWlubHkgdGhpcyBpcyB0cnVlIG9mIGEgc3lzdGVt
IGRpc2suIEFyZSB5b3UNCj4gdXNpbmcgYSBkaWZmZXJlbnQgZmlsZXN5c3RlbT8gVEJIIEkgdGhp
bmsgaXQncyBxdWl0ZSByZWFzb25hYmxlIGZvciBXaW5kb3dzIHRvDQo+IGFzc3VtZSB0aGF0IGEg
bm9uLXJlbW92YWJsZSBtZWRpdW0gY2FsbGluZyBpdHNlbGYgaXMgYSBkaXNrIGlzIHJlYWQvd3Jp
dGUuDQo+ID4NCj4gPj4gSSdtIHdvbmRlcmluZyBhIGZldyB0aGluZ3M6DQo+ID4+ICAgMSkgV2hl
biBpcyB0aGlzIGNvbW1pdCBsaWtlbHkgdG8gbWFrZSBpdCBpbnRvIGEgc2lnbmVkIHJlbGVhc2UN
Cj4gPg0KPiA+IEl0J3Mgbm90IGN1cnJlbnRseSBhIGJhY2stcG9ydCBjYW5kaWRhdGUgYW5kIHRo
ZXJlIGlzIG5vIGZpcm0gdGltZWxpbmUgZm9yDQo+IHJlbGVhc2luZyA5LjAgZHJpdmVycy4NCj4g
Pg0KPiA+PiAgIDIpIElzIHRoZXJlIGEgcm9hZG1hcD8gSS5lLiBIb3cgaXMgaXQgZGVjaWRlZCB3
aGVuIHRvIG1ha2UgcmVsZWFzZXMNCj4gPj4gYW5kIHdoaWNoIGZlYXR1cmVzL2ZpeGVzIHRvIGlu
Y2x1ZGUNCj4gPg0KPiA+IEJlY2F1c2UgdGhlIFhlbiBQcm9qZWN0IGRvZXMgbm90IGhhdmUgZGVk
aWNhdGVkIGluZnJhc3RydWN0dXJlIGZvciB0ZXN0aW5nDQo+IHRoZSBQViBkcml2ZXJzLCB3ZSBn
ZW5lcmFsbHkgcmVseSBvbiB0aGUgdGVzdGluZyBkb25lIGJ5IENpdHJpeCBYZW5TZXJ2ZXIgYW5k
DQo+IHRoZXJlZm9yZSByZWxlYXNlcyB0ZW5kIHRvIGJlIGFsaWduZWQgd2l0aCB1cGRhdGVzIG1h
ZGUgdG8gdGhlIENpdHJpeA0KPiBicmFuZGVkIHZhcmlhbnQgb2YgdGhlIGRyaXZlcnMuDQo+ID4N
Cj4gPj4gICAzKSBIb3cgY2FuIEkgc2VhcmNoIHRoaXMgbWFpbGluZyBsaXN0PyBJdCBkb2Vzbid0
IHNlZW0gdG8gYmUNCj4gPj4gaW5jbHVkZWQgb24gaHR0cDovL3hlbi5tYXJrbWFpbC5vcmcvc2Vh
cmNoLw0KPiA+Pg0KPiA+DQo+ID4gWW91IGNhbiBzZWUgdGhlIG1haWxpbmcgbGlzdCBhcmNoaXZl
cyBhdA0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwvd2luLXB2
LWRldmVsLiBBcyBmb3Igc2VhcmNoaW5nIHZpYQ0KPiBtYXJrbWFpbC4uLiBJIGhhdmUgcmVxdWVz
dGVkIHRoYXQgdGhlIGxpc3QgYmUgYWRkZWQgaW4gdGhlIHBhc3QsIGJ1dCBJJ2xsIGhhdmUNCj4g
YW5vdGhlciBnby4NCj4gPg0KPiA+IENoZWVycywNCj4gPg0KPiA+ICAgUGF1bA0KPiA+DQo+ID4+
IFRoYW5rcywNCj4gPj4gQ2hyaXMgTWNDbHltb250DQo+ID4+DQo+ID4+IF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4+IHdpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QNCj4gPj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+IGh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21h
aWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1i
aW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Oct 18 12:43:26 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 Oct 2017 12:43:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4ngz-0007iH-8o; Wed, 18 Oct 2017 12:43:25 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=457f2ad98=owen.smith@citrix.com>)
 id 1e4ngx-0007i9-Ul
 for win-pv-devel@lists.xenproject.org; Wed, 18 Oct 2017 12:43:24 +0000
Received: from [85.158.143.35] by server-8.bemta-6.messagelabs.com id
 1E/B7-13910-B6C47E95; Wed, 18 Oct 2017 12:43:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrohUjfL53m
 kwdUWHYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8fv7R5aC6cIVu47sYWtg/M3XxcjJISHgLzH7
 4Qw2EJtNQFbi48rPzCC2iIC6xL7PW5lAbGYBNYnr+7tYQWxhAROJ5RN+g8VZBFQlJuy9DdbLK
 2ApsXnvQTaImXISkxdfYuxi5ODgFLCS2DAhEiQsBFTyc9MeJghbSeLb4hfMEK2CEidnPmGBWC
 UhcfDFC+YJjLyzkKRmIUktYGRaxahRnFpUllqka2isl1SUmZ5RkpuYmaNraGCml5taXJyYnpq
 TmFSsl5yfu4kRGDgMQLCD8cuygEOMkhxMSqK8ugeeRQrxJeWnVGYkFmfEF5XmpBYfYpTh4FCS
 4L3g/TxSSLAoNT21Ii0zBxjCMGkJDh4lEd5qL6A0b3FBYm5xZjpE6hSjLkfHzbt/mIRY8vLzU
 qXEefNBZgiAFGWU5sGNgMXTJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgnzVoBM4cnMK4Hb9A
 roCCagI9Y5PQE5oiQRISXVwOhUXrzw1nrGlUv1XV7sl35WfrC6tKl5T1nOT6fcHebbEkrXCV9
 /cPZ68fovUy4H8jM+/yTrmZYSdCGxkl1Eo0VOXsO/ukFIooJhS7FLh7zE6xD38Bcv0iLC+f9I
 Ot1dkXPPvrLQ5WNAzcyXugo7dgZlKho8OHvowCrPu3ar3PYrNxanvir2VWIpzkg01GIuKk4EA
 FtqD3yiAgAA
X-Env-Sender: prvs=457f2ad98=owen.smith@citrix.com
X-Msg-Ref: server-4.tower-21.messagelabs.com!1508330600!71293319!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20200 invoked from network); 18 Oct 2017 12:43:22 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Oct 2017 12:43:22 -0000
X-IronPort-AV: E=Sophos;i="5.43,396,1503360000"; d="scan'208";a="446865028"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 18 Oct 2017 13:43:05 +0100
Message-ID: <20171018124305.1440-5-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20171018124305.1440-1-owen.smith@citrix.com>
References: <20171018124305.1440-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 5/5] Report Inquiry 0xB0 BlockLimits
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKUmVwb3J0cyBkaXNjYXJk
LWFsaWdubWVudCBhbmQgZGlzY2FyZC1ncmFudWxhcml0eQoKU2lnbmVkLW9mZi1ieTogT3dlbiBT
bWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvdGFyZ2V0LmMgfCAz
OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2Vk
LCAzNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52
YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jCmluZGV4IDA5NTY2NjIuLmNiOTIwMjYg
MTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMKKysrIGIvc3JjL3hlbnZiZC90YXJnZXQu
YwpAQCAtNjY5LDE1ICs2NjksMTYgQEAgVGFyZ2V0SW5xdWlyeTAwKAogICAgICAgICByZXR1cm47
CiAgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOwogCi0gICAgaWYgKExlbmd0aCA8IDcp
CisgICAgaWYgKExlbmd0aCA8IDgpCiAgICAgICAgIHJldHVybjsKIAotICAgIERhdGEtPlBhZ2VM
ZW5ndGggPSAzOworICAgIERhdGEtPlBhZ2VMZW5ndGggPSA0OwogICAgIERhdGEtPlN1cHBvcnRl
ZFBhZ2VMaXN0WzBdID0gMHgwMDsKICAgICBEYXRhLT5TdXBwb3J0ZWRQYWdlTGlzdFsxXSA9IDB4
ODA7CiAgICAgRGF0YS0+U3VwcG9ydGVkUGFnZUxpc3RbMl0gPSAweDgzOworICAgIERhdGEtPlN1
cHBvcnRlZFBhZ2VMaXN0WzNdID0gMHhCMDsKIAotICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3Ro
ID0gNzsKKyAgICBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9IDg7CiAgICAgU3JiLT5TcmJTdGF0
dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7CiB9CiAKQEAgLTc3Niw2ICs3NzcsMzcgQEAgVGFyZ2V0
SW5xdWlyeTgzKAogICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOwogfQog
CitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorVGFyZ2V0SW5xdWlyeUIwKAorICAgIElOICBQWEVO
VkJEX1RBUkdFVCAgICAgIFRhcmdldCwKKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIK
KyAgICApCit7CisgICAgUFhFTlZCRF9ESVNLSU5GTyAgICAgICAgRGlza0luZm8gPSBGcm9udGVu
ZEdldERpc2tJbmZvKFRhcmdldC0+RnJvbnRlbmQpOworICAgIFBWUERfQkxPQ0tfTElNSVRTX1BB
R0UgIERhdGEgPSBTcmItPkRhdGFCdWZmZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
TGVuZ3RoID0gU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGg7CisKKyAgICBTcmItPlNyYlN0YXR1cyA9
IFNSQl9TVEFUVVNfRVJST1I7CisKKyAgICBpZiAoRGF0YSA9PSBOVUxMKQorICAgICAgICByZXR1
cm47CisgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOworCisgICAgaWYgKExlbmd0aCA8
IHNpemVvZihWUERfQkxPQ0tfTElNSVRTX1BBR0UpKQorICAgICAgICByZXR1cm47CisKKyAgICBE
YXRhLT5QYWdlQ29kZSA9IDB4QjA7CisgICAgRGF0YS0+UGFnZUxlbmd0aFsxXSA9IDB4M0M7IC8v
IGFzIHBlciBzcGVjCisKKyAgICAqKFBVTE9ORylEYXRhLT5PcHRpbWFsVW5tYXBHcmFudWxhcml0
eSA9IF9ieXRlc3dhcF91bG9uZyhEaXNrSW5mby0+RGlzY2FyZEdyYW51bGFyaXR5KTsKKyAgICAq
KFBVTE9ORylEYXRhLT5Vbm1hcEdyYW51bGFyaXR5QWxpZ25tZW50ID0gX2J5dGVzd2FwX3Vsb25n
KERpc2tJbmZvLT5EaXNjYXJkQWxpZ25tZW50KTsKKyAgICAvLyBhbGlnbm1lbnQgaXMgb25seSB2
YWxpZCBpZiBhIGdyYW51bGFyaXR5IGhhcyBiZWVuIHNldAorICAgIERhdGEtPlVHQVZhbGlkID0g
KERpc2tJbmZvLT5EaXNjYXJkR3JhbnVsYXJpdHkgIT0gMCkgPyAxIDogMDsKKworICAgIFNyYi0+
RGF0YVRyYW5zZmVyTGVuZ3RoID0gc2l6ZW9mKFZQRF9CTE9DS19MSU1JVFNfUEFHRSk7CisgICAg
U3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7Cit9CisKIHN0YXRpYyBERUNMU1BF
Q19OT0lOTElORSBWT0lECiBUYXJnZXRJbnF1aXJ5KAogICAgIElOICBQWEVOVkJEX1RBUkdFVCAg
ICAgIFRhcmdldCwKQEAgLTc4Nyw2ICs4MTksNyBAQCBUYXJnZXRJbnF1aXJ5KAogICAgICAgICBj
YXNlIDB4MDA6ICBUYXJnZXRJbnF1aXJ5MDAoVGFyZ2V0LCBTcmIpOyAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSAweDgwOiAgVGFyZ2V0SW5xdWlyeTgwKFRhcmdldCwgU3JiKTsgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgMHg4MzogIFRhcmdldElucXVpcnk4MyhUYXJnZXQsIFNyYik7ICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4QjA6ICBUYXJnZXRJbnF1aXJ5QjAoVGFyZ2V0LCBT
cmIpOyAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDogICAgU3JiLT5TcmJTdGF0dXMgPSBT
UkJfU1RBVFVTX0VSUk9SOyAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotLSAKMi44
LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4t
cHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo
dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4t
cHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Oct 18 12:43:43 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 Oct 2017 12:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4nhH-0007lG-Ab; Wed, 18 Oct 2017 12:43:43 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=457f2ad98=owen.smith@citrix.com>)
 id 1e4nhF-0007ks-SI
 for win-pv-devel@lists.xenproject.org; Wed, 18 Oct 2017 12:43:41 +0000
Received: from [85.158.143.35] by server-9.bemta-6.messagelabs.com id
 27/32-30115-D7C47E95; Wed, 18 Oct 2017 12:43:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXitHSDvW6Nz/N
 Ig4cHDSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqUDZxgLmtgqDk5awtrA+IOli5GTQ0LAX+Lv
 gllsIDabgKzEx5WfmUFsEQF1iX2ftzKB2MwCahLX93exdjFycAgLeEts3G8HEmYRUJXYcHoyO
 4jNK2Ap8fbKHSaIkXISkxdfYgQp5xSwktgwIRIkLARU8nPTHiYIW0ni2+IXzBCtghInZz5hgd
 gkIXHwxQvmCYy8s5CkZiFJLWBkWsWoUZxaVJZapGtooJdUlJmeUZKbmJkD5Jnp5aYWFyemp+Y
 kJhXrJefnbmIEhg0DEOxgPP4+7hCjJAeTkiiv7oFnkUJ8SfkplRmJxRnxRaU5qcWHGGU4OJQk
 eC94P48UEixKTU+tSMvMAQYwTFqCg0dJhLfaCyjNW1yQmFucmQ6ROsVozHHj4fU/TBwdN+/+Y
 RJiycvPS5US580HmSQAUppRmgc3CBZZlxhlpYR5GYFOE+IpSC3KzSxBlX/FKM7BqCTMuw1kCk
 9mXgncvldApzABnbLO6QnIKSWJCCmpBsay/1tqv2+Tq2/3W/J4kejFytLvr4/3PLK1NjDuVtU
 +brnjjEDIwYk81dFWVR+3N4SKsiT71f3+yOaWYMfSNlvzmGiyweQ/ZQmJ7Dd3mcw37FN4p7pL
 /snaKI4ehy+76/QY/RfGcCvPNrtQnTlnwc/stHLfoqdXbW9svHz0+vU+y7pjor6KZ5VYijMSD
 bWYi4oTAatg5fmnAgAA
X-Env-Sender: prvs=457f2ad98=owen.smith@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1508330616!74648225!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21409 invoked from network); 18 Oct 2017 12:43:40 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Oct 2017 12:43:40 -0000
X-IronPort-AV: E=Sophos;i="5.43,396,1503360000"; d="scan'208";a="454781193"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 18 Oct 2017 13:43:03 +0100
Message-ID: <20171018124305.1440-3-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20171018124305.1440-1-owen.smith@citrix.com>
References: <20171018124305.1440-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 3/5] Zero ring stats before ASSERTing ring
	struct is zeroed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvcmluZy5j
IHwgMTAgKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKykKCmRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3JpbmcuYyBiL3NyYy94ZW52YmQvcmluZy5jCmluZGV4IGI1NzJi
MDcuLjBiMGRmNzIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvcmluZy5jCisrKyBiL3NyYy94ZW52
YmQvcmluZy5jCkBAIC0xNzU0LDYgKzE3NTQsMTYgQEAgUmluZ0Rlc3Ryb3koCiAgICAgUnRsWmVy
b01lbW9yeSgmUmluZy0+TG9jaywgc2l6ZW9mKEtTUElOX0xPQ0spKTsKICAgICBSaW5nLT5Gcm9u
dGVuZCA9IE5VTEw7CiAKKyAgICBSaW5nLT5CbGtPcFJlYWQgPSAwOworICAgIFJpbmctPkJsa09w
V3JpdGUgPSAwOworICAgIFJpbmctPkJsa09wSW5kaXJlY3RSZWFkID0gMDsKKyAgICBSaW5nLT5C
bGtPcEluZGlyZWN0V3JpdGUgPSAwOworICAgIFJpbmctPkJsa09wQmFycmllciA9IDA7CisgICAg
UmluZy0+QmxrT3BEaXNjYXJkID0gMDsKKyAgICBSaW5nLT5CbGtPcEZsdXNoID0gMDsKKyAgICBS
aW5nLT5TZWdzR3JhbnRlZCA9IDA7CisgICAgUmluZy0+U2Vnc0JvdW5jZWQgPSAwOworCiAgICAg
QVNTRVJUKElzWmVyb01lbW9yeShSaW5nLCBzaXplb2YoWEVOVkJEX1JJTkcpKSk7CiAgICAgX19S
aW5nRnJlZShSaW5nKTsKIH0KLS0gCjIuOC4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Oct 18 12:43:43 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 Oct 2017 12:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4nhH-0007lW-Bb; Wed, 18 Oct 2017 12:43:43 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=457f2ad98=owen.smith@citrix.com>)
 id 1e4nhG-0007ks-9Y
 for win-pv-devel@lists.xenproject.org; Wed, 18 Oct 2017 12:43:42 +0000
Received: from [85.158.143.35] by server-9.bemta-6.messagelabs.com id
 72/42-30115-E7C47E95; Wed, 18 Oct 2017 12:43:42 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXitHSDvW6tz/N
 IgyML1Cz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxop915kL9jtUbO3/zdbAeE23i5GDQ0LAX+Lx
 Nu8uRk4ONgFZiY8rPzOD2CIC6hL7Pm9lArGZBdQkru/vYgWxhQWsJXbMmAdWwyKgKvHzy1Uwm
 1fAUuLdh9tgtoSAnMTkxZcYQcZzClhJbJgQCRIWAir5uWkPE4StJPFt8QuoVkGJkzOfsECskp
 A4+OIF8wRG3llIUrOQpBYwMq1i1ChOLSpLLdI1NNBLKspMzyjJTczMAfLM9HJTi4sT01NzEpO
 K9ZLzczcxAsOGAQh2MB5/H3eIUZKDSUmUV/fAs0ghvqT8lMqMxOKM+KLSnNTiQ4wyHBxKErwX
 vJ9HCgkWpaanVqRl5gADGCYtwcGjJMJb7QWU5i0uSMwtzkyHSJ1iNOZYdu7SHyaOjpt3/zAJs
 eTl56VKifPmg0wSACnNKM2DGwSLrEuMslLCvIxApwnxFKQW5WaWoMq/YhTnYFQS5t0GMoUnM6
 8Ebt8roFOYgE5Z5/QE5JSSRISUVANj6JWZRbeb04rPXsnMubf2z77KKR+/WQWsmVp1a0sZ/7V
 pXqXK71IuKff+WrrfZVJ3is3S5UxvLtcbcO/+VaB/KeIbq1lMs8+1E7kGN1mi67MPrNuQs6zo
 Tsaf9mWSaSx+HwRSWJ7KZvKu+Z1ysExu8XWJd5GzN/3Qvz6Z+Rf7033vWDW2ix3fr8RSnJFoq
 MVcVJwIAAjp5yanAgAA
X-Env-Sender: prvs=457f2ad98=owen.smith@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1508330616!74648225!2
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 21466 invoked from network); 18 Oct 2017 12:43:41 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Oct 2017 12:43:41 -0000
X-IronPort-AV: E=Sophos;i="5.43,396,1503360000"; d="scan'208";a="454781195"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 18 Oct 2017 13:43:02 +0100
Message-ID: <20171018124305.1440-2-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20171018124305.1440-1-owen.smith@citrix.com>
References: <20171018124305.1440-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 2/5] Remove unused code and general tidy up
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvcmluZy5j
ICAgfCA4MiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogc3JjL3hlbnZiZC90YXJnZXQuYyB8IDE5ICstLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh
bmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj
L3hlbnZiZC9yaW5nLmMgYi9zcmMveGVudmJkL3JpbmcuYwppbmRleCA3MDA4OTM4Li5iNTcyYjA3
IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3JpbmcuYworKysgYi9zcmMveGVudmJkL3JpbmcuYwpA
QCAtMTQwLDE0ICsxNDAsNiBAQCB4ZW5fd21iKCkKICAgICBfV3JpdGVCYXJyaWVyKCk7CiB9CiAK
LXN0YXRpYyBGT1JDRUlOTElORSBQRk5fTlVNQkVSCi1fX1BmbigKLSAgICBfX2luICBQVk9JRCAg
ICAgICAgICAgICAgICAgICBWaXJ0QWRkcgotICAgICkKLXsKLSAgICByZXR1cm4gKFBGTl9OVU1C
RVIpKFVMT05HX1BUUikoTW1HZXRQaHlzaWNhbEFkZHJlc3MoVmlydEFkZHIpLlF1YWRQYXJ0ID4+
IFBBR0VfU0hJRlQpOwotfQotCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAogX19SaW5nSW5zZXJ0
KAogICAgIElOICBQWEVOVkJEX1JJTkcgICAgICAgIFJpbmcsCkBAIC03NjEsMTMgKzc1MywxMiBA
QCBSaW5nVXNlSW5kaXJlY3QoCiAgICAgcmV0dXJuIE1heEluZGlyZWN0U2VnczsKIH0KIAotc3Rh
dGljIEZPUkNFSU5MSU5FIFVMT05HCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAogUmluZ1F1ZXVl
UmVxdWVzdExpc3QoCiAgICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nLAogICAgIElOICBQTElT
VF9FTlRSWSAgICAgTGlzdAogICAgICkKIHsKLSAgICBVTE9ORyAgICAgICAgICAgICAgIENvdW50
ID0gMDsKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0Owog
ICAgICAgICBQTElTVF9FTlRSWSAgICAgTGlzdEVudHJ5OwpAQCAtNzc2LDEyICs3NjcsMTAgQEAg
UmluZ1F1ZXVlUmVxdWVzdExpc3QoCiAgICAgICAgIGlmIChMaXN0RW50cnkgPT0gTGlzdCkKICAg
ICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICsrQ291bnQ7CiAgICAgICAgIFJlcXVlc3QgPSBD
T05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhFTlZCRF9SRVFVRVNULCBMaXN0RW50cnkpOwog
ICAgICAgICBfX1JpbmdJbmNCbGtpZk9wQ291bnQoUmluZywgUmVxdWVzdCk7CiAgICAgICAgIFF1
ZXVlQXBwZW5kKCZSaW5nLT5QcmVwYXJlZFJlcXMsICZSZXF1ZXN0LT5MaXN0RW50cnkpOwogICAg
IH0KLSAgICByZXR1cm4gQ291bnQ7CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECkBAIC04
MTMsNyArODAyLDYgQEAgUmluZ1ByZXBhcmVSZWFkV3JpdGUoCiAgICAgVUxPTkc2NCAgICAgICAg
ICAgICAgICAgU2VjdG9yU3RhcnQgPSBDZGJfTG9naWNhbEJsb2NrKFNyYik7CiAgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgU2VjdG9yc0xlZnQgPSBDZGJfVHJhbnNmZXJCbG9jayhTcmIpOwog
ICAgIExJU1RfRU5UUlkgICAgICAgICAgICAgIExpc3Q7Ci0gICAgVUxPTkcgICAgICAgICAgICAg
ICAgICAgRGVidWdDb3VudDsKIAogICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19QRU5E
SU5HOwogCkBAIC04NTIsMTMgKzg0MCw3IEBAIFJpbmdQcmVwYXJlUmVhZFdyaXRlKAogICAgICAg
ICBTZWN0b3JTdGFydCArPSBTZWN0b3JzRG9uZTsKICAgICB9CiAKLSAgICBEZWJ1Z0NvdW50ID0g
UmluZ1F1ZXVlUmVxdWVzdExpc3QoUmluZywgJkxpc3QpOwotICAgIGlmIChEZWJ1Z0NvdW50ICE9
IChVTE9ORylTcmJFeHQtPlJlcXVlc3RDb3VudCkgewotICAgICAgICBUcmFjZSgiWyV1XSAlZCAh
PSAldVxuIiwKLSAgICAgICAgICAgICAgRnJvbnRlbmRHZXRUYXJnZXRJZChSaW5nLT5Gcm9udGVu
ZCksCi0gICAgICAgICAgICAgIFNyYkV4dC0+UmVxdWVzdENvdW50LAotICAgICAgICAgICAgICBE
ZWJ1Z0NvdW50KTsKLSAgICB9CisgICAgUmluZ1F1ZXVlUmVxdWVzdExpc3QoUmluZywgJkxpc3Qp
OwogICAgIHJldHVybiBUUlVFOwogCiBmYWlsMzoKQEAgLTg4MCw3ICs4NjIsNiBAQCBSaW5nUHJl
cGFyZVN5bmNDYWNoZSgKICAgICBQWEVOVkJEX1JFUVVFU1QgICAgICAgICBSZXF1ZXN0OwogICAg
IExJU1RfRU5UUlkgICAgICAgICAgICAgIExpc3Q7CiAgICAgVUNIQVIgICAgICAgICAgICAgICAg
ICAgT3BlcmF0aW9uOwotICAgIFVMT05HICAgICAgICAgICAgICAgICAgIERlYnVnQ291bnQ7CiAK
ICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfUEVORElORzsKIApAQCAtOTAyLDEzICs4
ODMsNyBAQCBSaW5nUHJlcGFyZVN5bmNDYWNoZSgKICAgICBSZXF1ZXN0LT5PcGVyYXRpb24gID0g
T3BlcmF0aW9uOwogICAgIFJlcXVlc3QtPkZpcnN0U2VjdG9yID0gQ2RiX0xvZ2ljYWxCbG9jayhT
cmIpOwogCi0gICAgRGVidWdDb3VudCA9IFJpbmdRdWV1ZVJlcXVlc3RMaXN0KFJpbmcsICZMaXN0
KTsKLSAgICBpZiAoRGVidWdDb3VudCAhPSAoVUxPTkcpU3JiRXh0LT5SZXF1ZXN0Q291bnQpIHsK
LSAgICAgICAgVHJhY2UoIlsldV0gJWQgIT0gJXVcbiIsCi0gICAgICAgICAgICAgIEZyb250ZW5k
R2V0VGFyZ2V0SWQoUmluZy0+RnJvbnRlbmQpLAotICAgICAgICAgICAgICBTcmJFeHQtPlJlcXVl
c3RDb3VudCwKLSAgICAgICAgICAgICAgRGVidWdDb3VudCk7Ci0gICAgfQorICAgIFJpbmdRdWV1
ZVJlcXVlc3RMaXN0KFJpbmcsICZMaXN0KTsKICAgICByZXR1cm4gVFJVRTsKIAogZmFpbDE6CkBA
IC05MjksNyArOTA0LDYgQEAgUmluZ1ByZXBhcmVVbm1hcCgKIAlVTE9ORyAgICAgICAgICAgICAg
ICAgICBDb3VudCA9IF9ieXRlc3dhcF91c2hvcnQoKihQVVNIT1JUKVVubWFwLT5CbG9ja0Rlc2Ny
RGF0YUxlbmd0aCkgLyBzaXplb2YoVU5NQVBfQkxPQ0tfREVTQ1JJUFRPUik7CiAgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgSW5kZXg7CiAgICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgTGlz
dDsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBEZWJ1Z0NvdW50OwogCiAgICAgU3JiLT5T
cmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BFTkRJTkc7CiAKQEAgLTk1MywxMyArOTI3LDcgQEAgUmlu
Z1ByZXBhcmVVbm1hcCgKICAgICAgICAgUmVxdWVzdC0+RmxhZ3MgICAgICAgICAgPSAwOwogICAg
IH0KIAotICAgIERlYnVnQ291bnQgPSBSaW5nUXVldWVSZXF1ZXN0TGlzdChSaW5nLCAmTGlzdCk7
Ci0gICAgaWYgKERlYnVnQ291bnQgIT0gKFVMT05HKVNyYkV4dC0+UmVxdWVzdENvdW50KSB7Ci0g
ICAgICAgIFRyYWNlKCJbJXVdICVkICE9ICV1XG4iLAotICAgICAgICAgICAgICBGcm9udGVuZEdl
dFRhcmdldElkKFJpbmctPkZyb250ZW5kKSwKLSAgICAgICAgICAgICAgU3JiRXh0LT5SZXF1ZXN0
Q291bnQsCi0gICAgICAgICAgICAgIERlYnVnQ291bnQpOwotICAgIH0KKyAgICBSaW5nUXVldWVS
ZXF1ZXN0TGlzdChSaW5nLCAmTGlzdCk7CiAgICAgcmV0dXJuIFRSVUU7CiAKIGZhaWwxOgpAQCAt
MTExMywyMyArMTA4MSw2IEBAIFJpbmdDb21wbGV0ZVNodXRkb3duKAogICAgIH0KIH0KIAotc3Rh
dGljIEZPUkNFSU5MSU5FIFBDSEFSCi1fX0Jsa2lmT3BlcmF0aW9uTmFtZSgKLSAgICBJTiAgVUNI
QVIgICBPcGVyYXRpb24KLSAgICApCi17Ci0gICAgc3dpdGNoIChPcGVyYXRpb24pIHsKLSAgICBj
YXNlIEJMS0lGX09QX1JFQUQ6ICAgICAgICAgICAgIHJldHVybiAiUkVBRCI7Ci0gICAgY2FzZSBC
TEtJRl9PUF9XUklURTogICAgICAgICAgICByZXR1cm4gIldSSVRFIjsKLSAgICBjYXNlIEJMS0lG
X09QX1dSSVRFX0JBUlJJRVI6ICAgIHJldHVybiAiV1JJVEVfQkFSUklFUiI7Ci0gICAgY2FzZSBC
TEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEU6ICByZXR1cm4gIkZMVVNIX0RJU0tDQUNIRSI7Ci0gICAg
Y2FzZSBCTEtJRl9PUF9SRVNFUlZFRF8xOiAgICAgICByZXR1cm4gIlJFU0VSVkVEXzEiOwotICAg
IGNhc2UgQkxLSUZfT1BfRElTQ0FSRDogICAgICAgICAgcmV0dXJuICJESVNDQVJEIjsKLSAgICBj
YXNlIEJMS0lGX09QX0lORElSRUNUOiAgICAgICAgIHJldHVybiAiSU5ESVJFQ1QiOwotICAgIGRl
ZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI8dW5rbm93bj4iOwotICAgIH0K
LX0KLQogc3RhdGljIEJPT0xFQU4KIFJpbmdTdWJtaXRSZXF1ZXN0cygKICAgICBJTiAgUFhFTlZC
RF9SSU5HICAgIFJpbmcKQEAgLTExNjIsNiArMTExMywyMyBAQCBSaW5nU3VibWl0UmVxdWVzdHMo
CiAgICAgcmV0dXJuIFJldHJ5OwogfQogCitzdGF0aWMgRk9SQ0VJTkxJTkUgUENIQVIKK19fQmxr
aWZPcGVyYXRpb25OYW1lKAorICAgIElOICBVQ0hBUiAgIE9wZXJhdGlvbgorICAgICkKK3sKKyAg
ICBzd2l0Y2ggKE9wZXJhdGlvbikgeworICAgIGNhc2UgQkxLSUZfT1BfUkVBRDogICAgICAgICAg
ICAgcmV0dXJuICJSRUFEIjsKKyAgICBjYXNlIEJMS0lGX09QX1dSSVRFOiAgICAgICAgICAgIHJl
dHVybiAiV1JJVEUiOworICAgIGNhc2UgQkxLSUZfT1BfV1JJVEVfQkFSUklFUjogICAgcmV0dXJu
ICJXUklURV9CQVJSSUVSIjsKKyAgICBjYXNlIEJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRTogIHJl
dHVybiAiRkxVU0hfRElTS0NBQ0hFIjsKKyAgICBjYXNlIEJMS0lGX09QX1JFU0VSVkVEXzE6ICAg
ICAgIHJldHVybiAiUkVTRVJWRURfMSI7CisgICAgY2FzZSBCTEtJRl9PUF9ESVNDQVJEOiAgICAg
ICAgICByZXR1cm4gIkRJU0NBUkQiOworICAgIGNhc2UgQkxLSUZfT1BfSU5ESVJFQ1Q6ICAgICAg
ICAgcmV0dXJuICJJTkRJUkVDVCI7CisgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIjx1bmtub3duPiI7CisgICAgfQorfQorCiBzdGF0aWMgVk9JRAogUmluZ0NvbXBs
ZXRlUmVzcG9uc2UoCiAgICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nLApAQCAtMTQ2MywyMyAr
MTQzMSwyMyBAQCBSaW5nRGVidWdDYWxsYmFjaygKIAogICAgIFhFTkJVU19ERUJVRyhQcmludGYs
CiAgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwKLSAgICAgICAgICAgICAg
ICAgIlRBUkdFVDogQkxLSUZfT1BzOiBSRUFEPSV1IFdSSVRFPSV1XG4iLAorICAgICAgICAgICAg
ICAgICAiQkxLSUZfT1BzOiBSRUFEPSV1IFdSSVRFPSV1XG4iLAogICAgICAgICAgICAgICAgICBS
aW5nLT5CbGtPcFJlYWQsCiAgICAgICAgICAgICAgICAgIFJpbmctPkJsa09wV3JpdGUpOwogICAg
IFhFTkJVU19ERUJVRyhQcmludGYsCiAgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVy
ZmFjZSwKLSAgICAgICAgICAgICAgICAgIlRBUkdFVDogQkxLSUZfT1BzOiBJTkRJUkVDVF9SRUFE
PSV1IElORElSRUNUX1dSSVRFPSV1XG4iLAorICAgICAgICAgICAgICAgICAiQkxLSUZfT1BzOiBJ
TkRJUkVDVF9SRUFEPSV1IElORElSRUNUX1dSSVRFPSV1XG4iLAogICAgICAgICAgICAgICAgICBS
aW5nLT5CbGtPcEluZGlyZWN0UmVhZCwKICAgICAgICAgICAgICAgICAgUmluZy0+QmxrT3BJbmRp
cmVjdFdyaXRlKTsKICAgICBYRU5CVVNfREVCVUcoUHJpbnRmLAogICAgICAgICAgICAgICAgICAm
UmluZy0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICJUQVJHRVQ6IEJMS0lGX09Q
czogQkFSUklFUj0ldSBESVNDQVJEPSV1IEZMVVNIPSV1XG4iLAorICAgICAgICAgICAgICAgICAi
QkxLSUZfT1BzOiBCQVJSSUVSPSV1IERJU0NBUkQ9JXUgRkxVU0g9JXVcbiIsCiAgICAgICAgICAg
ICAgICAgIFJpbmctPkJsa09wQmFycmllciwKICAgICAgICAgICAgICAgICAgUmluZy0+QmxrT3BE
aXNjYXJkLAogICAgICAgICAgICAgICAgICBSaW5nLT5CbGtPcEZsdXNoKTsKICAgICBYRU5CVVNf
REVCVUcoUHJpbnRmLAogICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZhY2UsCi0g
ICAgICAgICAgICAgICAgICJUQVJHRVQ6IFNlZ21lbnRzIEdyYW50ZWQ9JWxsdSBCb3VuY2VkPSVs
bHVcbiIsCisgICAgICAgICAgICAgICAgICJTZWdtZW50cyBHcmFudGVkPSVsbHUgQm91bmNlZD0l
bGx1XG4iLAogICAgICAgICAgICAgICAgICBSaW5nLT5TZWdzR3JhbnRlZCwKICAgICAgICAgICAg
ICAgICAgUmluZy0+U2Vnc0JvdW5jZWQpOwogCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3Rhcmdl
dC5jIGIvc3JjL3hlbnZiZC90YXJnZXQuYwppbmRleCA0NDA3YzcwLi5lNjI0OTc5IDEwMDY0NAot
LS0gYS9zcmMveGVudmJkL3RhcmdldC5jCisrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMKQEAgLTUz
LDExICs1Myw4IEBACiAjaW5jbHVkZSAiYXNzZXJ0LmgiCiAjaW5jbHVkZSAidXRpbC5oIgogCi0j
ZGVmaW5lIFRBUkdFVF9TSUdOQVRVUkUgICAgICAgICAgICdvZHBYJwotCiBzdHJ1Y3QgX1hFTlZC
RF9UQVJHRVQgewotICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBTaWduYXR1cmU7Ci0g
ICAgUFhFTlZCRF9BREFQVEVSICAgICAgICAgICAgICAgICBBZGFwdGVyOworICAgIFBYRU5WQkRf
QURBUFRFUiAgICAgICAgICAgICBBZGFwdGVyOwogICAgIFBERVZJQ0VfT0JKRUNUICAgICAgICAg
ICAgICBEZXZpY2VPYmplY3Q7CiAgICAgREVWSUNFX1BOUF9TVEFURSAgICAgICAgICAgIERldmlj
ZVBucFN0YXRlOwogICAgIERFVklDRV9QTlBfU1RBVEUgICAgICAgICAgICBQcmV2UG5wU3RhdGU7
CkBAIC03Nyw3ICs3NCw2IEBAIHN0cnVjdCBfWEVOVkJEX1RBUkdFVCB7CiAgICAgY29uc3QgQ0hB
UiogICAgICAgICAgICAgICAgIFJlYXNvbjsKIH07CiAKLS8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
ICNkZWZpbmUgVEFSR0VUX1BPT0xfVEFHICAgICAgICAgICAgJ29kUFgnCiAKIF9fY2hlY2tSZXR1
cm4KQEAgLTEwMiw4ICs5OCw2IEBAIF9fVGFyZ2V0RnJlZSgKICAgICAgICAgX19GcmVlUG9vbFdp
dGhUYWcoQnVmZmVyLCBUQVJHRVRfUE9PTF9UQUcpOwogfQogCi0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0vLyBEZWJ1Zwogc3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSCiBfX1BucFN0YXRlTmFtZSgK
ICAgICBfX2luIERFVklDRV9QTlBfU1RBVEUgICAgICAgIFN0YXRlCkBAIC0yMTUsOCArMjA5LDYg
QEAgVGFyZ2V0U2V0RGV2aWNlT2JqZWN0KAogICAgIFRhcmdldC0+RGV2aWNlT2JqZWN0ID0gRGV2
aWNlT2JqZWN0OwogfQogCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBTUkJzCiBfX2NoZWNr
UmV0dXJuCiBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTgogX19WYWxpZGF0ZVNlY3RvcnMoCkBA
IC03NjYsMTQgKzc1OCw2IEBAIF9fVmFsaWRhdGVTcmJGb3JUYXJnZXQoCiB7CiAgICAgY29uc3Qg
VUNIQVIgICAgICAgICAgICAgT3BlcmF0aW9uID0gQ2RiX09wZXJhdGlvbkV4KFNyYik7CiAKLSAg
ICBpZiAoVGFyZ2V0ID09IE5VTEwpIHsKLSAgICAgICAgRXJyb3IoIkludmFsaWQgVGFyZ2V0KE5V
TEwpICglMDJ4OiVzKVxuIiwKLSAgICAgICAgICAgICAgT3BlcmF0aW9uLAotICAgICAgICAgICAg
ICBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKLSAgICAgICAgU3JiLT5TcmJTdGF0dXMg
PSBTUkJfU1RBVFVTX0lOVkFMSURfVEFSR0VUX0lEOwotICAgICAgICByZXR1cm4gRkFMU0U7Ci0g
ICAgfQotCiAgICAgaWYgKFNyYi0+UGF0aElkICE9IDApIHsKICAgICAgICAgRXJyb3IoIlRhcmdl
dFslZF0gOiBJbnZhbGlkIFBhdGhJZCglZCkgKCUwMng6JXMpXG4iLAogICAgICAgICAgICAgICBU
YXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLApAQCAtMTMwMiw3ICsxMjg2LDYgQEAgVGFyZ2V0Q3Jl
YXRlKAogICAgICAgICBnb3RvIGZhaWwxOwogCiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IENy
ZWF0aW5nXG4iLCBUYXJnZXRJZCk7Ci0gICAgVGFyZ2V0LT5TaWduYXR1cmUgICAgICAgPSBUQVJH
RVRfU0lHTkFUVVJFOwogICAgIFRhcmdldC0+QWRhcHRlciAgICAgICAgID0gQWRhcHRlcjsKICAg
ICBUYXJnZXQtPkRldmljZU9iamVjdCAgICA9IE5VTEw7IC8vIGZpbGxlZCBpbiBsYXRlcgogICAg
IFRhcmdldC0+RGV2aWNlUG5wU3RhdGUgID0gUHJlc2VudDsKLS0gCjIuOC4zCgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Oct 18 12:43:43 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 Oct 2017 12:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4nhH-0007lq-Cf; Wed, 18 Oct 2017 12:43:43 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=457f2ad98=owen.smith@citrix.com>)
 id 1e4nhG-0007kt-Bq
 for win-pv-devel@lists.xenproject.org; Wed, 18 Oct 2017 12:43:42 +0000
Received: from [85.158.143.35] by server-10.bemta-6.messagelabs.com id
 BA/62-07499-D7C47E95; Wed, 18 Oct 2017 12:43:41 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpikeJIrShJLcpLzFFi42JxWrrBXrfW53m
 kwc+1ghZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y8dLp4IN5hV3pxxlaWC8odHFyMkhIeAvsWne
 XVYQm01AVuLjys/MILaIgLrEvs9bmUBsZgE1iev7u8BqhAX0JbaseAxkc3CwCKhKnNsaAxLmF
 bCU+DzzJivESDmJyYsvMYLYQgJKEt8Wv2CGqBGUODnzCQvESAmJgy9eME9g5J6FJDULSWoBI9
 MqRo3i1KKy1CJdIwu9pKLM9IyS3MTMHF1DAzO93NTi4sT01JzEpGK95PzcTYzAMGAAgh2M59c
 GHmKU5GBSEuXVPfAsUogvKT+lMiOxOCO+qDQntfgQowwHh5IE7zOv55FCgkWp6akVaZk5wICE
 SUtw8CiJ8FaDpHmLCxJzizPTIVKnGC05jm26/IeJ413TDSDZcfPuHyYhlrz8vFQpcd58b6AGA
 ZCGjNI8uHGwqLnEKCslzMsIdKAQT0FqUW5mCar8K0ZxDkYlYV4rkCk8mXklcFtfAR3EBHTQOq
 cnIAeVJCKkpBoY+znX/rTueXB236bZFhpSfytaXuyIXv2J96GtcK/yphPt+Z8C/MMzBaNqo0o
 0Nyc+npL2dEWpwM7bS/7tja85tDha9dPj6vl/Z7kFzv4y9ahM4pt9XqEbNwTPsf8sfeu+dFi3
 TIKyynP2zUVMPEEREc8NNjyMEmPfeIdXVOAI49qSQ3d3NnySU2Ipzkg01GIuKk4EAD+DSveVA
 gAA
X-Env-Sender: prvs=457f2ad98=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1508330618!65790991!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40030 invoked from network); 18 Oct 2017 12:43:40 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Oct 2017 12:43:40 -0000
X-IronPort-AV: E=Sophos;i="5.43,396,1503360000"; d="scan'208";a="454781194"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 18 Oct 2017 13:43:01 +0100
Message-ID: <20171018124305.1440-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 1/5] Remove RingReQueueRequests
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2luY2UgdGhlIEZyb250
ZW5kIHRyYW5zaXRpb25zIHRoZSByaW5nIHRocm91Z2ggQ2xvc2VkIGFuZCBiYWNrIHRvCkVuYWJs
ZWQgb24gYSByZXN1bWUgZnJvbSBzdXNwZW5kLCB3aGljaCBhYm9ydHMgYWxsIHF1ZXVlZCBhbmQK
cHJlcGFyZWQgcmVxdWVzdHMsIGRlLXF1ZXVlaW5nIGFuZCByZS1xdWV1aW5nIGFsbCByZXF1ZXN0
cyBmcm9tIHRoZQpUYXJnZXQgc3VzcGVuZCBjYWxsYmFjayBpcyB1bm5lY2Nlc3NhcnkuIEFsc28g
cmVtb3ZlcyB0aGUgVGFyZ2V0CnN1c3BlbmQgY2FsbGJhY2sgYW5kIGludGVyZmFjZSB3aGljaCBp
cyBub3cgdW51c2VkLgoKU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRy
aXguY29tPgotLS0KIHNyYy94ZW52YmQvcmluZy5jICAgfCA2OCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3hlbnZiZC9yaW5nLmggICB8
ICA1IC0tLS0KIHNyYy94ZW52YmQvdGFyZ2V0LmMgfCA2NCArKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9u
cygrKSwgMTM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcmluZy5jIGIv
c3JjL3hlbnZiZC9yaW5nLmMKaW5kZXggY2JiNDA4ZC4uNzAwODkzOCAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZiZC9yaW5nLmMKKysrIGIvc3JjL3hlbnZiZC9yaW5nLmMKQEAgLTIyMjAsNzEgKzIyMjAs
MyBAQCBSaW5nUXVldWVTaHV0ZG93bigKICAgICBpZiAoS2VJbnNlcnRRdWV1ZURwYygmUmluZy0+
RHBjLCBOVUxMLCBOVUxMKSkKIAkgICAgKytSaW5nLT5EcGNzOwogfQotCi1WT0lECi1SaW5nUmVR
dWV1ZVJlcXVlc3RzKAotICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZwotICAgICkKLXsKLSAg
ICBMSVNUX0VOVFJZICAgICAgTGlzdDsKLQotICAgIEluaXRpYWxpemVMaXN0SGVhZCgmTGlzdCk7
Ci0KLSAgICAvLyBwb3AgYWxsIHN1Ym1pdHRlZCByZXF1ZXN0cywgY2xlYW51cCBhbmQgYWRkIGFz
c29jaWF0ZWQgU1JCIHRvIGEgbGlzdAotICAgIGZvciAoOzspIHsKLSAgICAgICAgUFhFTlZCRF9T
UkJFWFQgICAgICBTcmJFeHQ7Ci0gICAgICAgIFBYRU5WQkRfUkVRVUVTVCAgICAgUmVxdWVzdDsK
LSAgICAgICAgUExJU1RfRU5UUlkgICAgICAgICBMaXN0RW50cnk7Ci0KLSAgICAgICAgTGlzdEVu
dHJ5ID0gUXVldWVQb3AoJlJpbmctPlN1Ym1pdHRlZFJlcXMpOwotICAgICAgICBpZiAoTGlzdEVu
dHJ5ID09IE5VTEwpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgUmVxdWVzdCA9IENPTlRB
SU5JTkdfUkVDT1JEKExpc3RFbnRyeSwgWEVOVkJEX1JFUVVFU1QsIExpc3RFbnRyeSk7Ci0gICAg
ICAgIFNyYkV4dCA9IFJlcXVlc3QtPlNyYkV4dDsKLQotICAgICAgICBSaW5nUHV0UmVxdWVzdChS
aW5nLCBSZXF1ZXN0KTsKLQotICAgICAgICBpZiAoSW50ZXJsb2NrZWREZWNyZW1lbnQoJlNyYkV4
dC0+UmVxdWVzdENvdW50KSA9PSAwKSB7Ci0gICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmTGlz
dCwgJlNyYkV4dC0+TGlzdEVudHJ5KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIHBvcCBh
bGwgcHJlcGFyZWQgcmVxdWVzdHMsIGNsZWFudXAgYW5kIGFkZCBhc3NvY2lhdGVkIFNSQiB0byBh
IGxpc3QKLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFBYRU5WQkRfU1JCRVhUICAgICAgU3JiRXh0
OwotICAgICAgICBQWEVOVkJEX1JFUVVFU1QgICAgIFJlcXVlc3Q7Ci0gICAgICAgIFBMSVNUX0VO
VFJZICAgICAgICAgTGlzdEVudHJ5OwotCi0gICAgICAgIExpc3RFbnRyeSA9IFF1ZXVlUG9wKCZS
aW5nLT5QcmVwYXJlZFJlcXMpOwotICAgICAgICBpZiAoTGlzdEVudHJ5ID09IE5VTEwpCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdfUkVDT1JEKExpc3RF
bnRyeSwgWEVOVkJEX1JFUVVFU1QsIExpc3RFbnRyeSk7Ci0gICAgICAgIFNyYkV4dCA9IFJlcXVl
c3QtPlNyYkV4dDsKLQotICAgICAgICBSaW5nUHV0UmVxdWVzdChSaW5nLCBSZXF1ZXN0KTsKLQot
ICAgICAgICBpZiAoSW50ZXJsb2NrZWREZWNyZW1lbnQoJlNyYkV4dC0+UmVxdWVzdENvdW50KSA9
PSAwKSB7Ci0gICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmTGlzdCwgJlNyYkV4dC0+TGlzdEVu
dHJ5KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIGZvcmVhY2ggU1JCIGluIGxpc3QsIHB1
dCBvbiBzdGFydCBvZiBGcmVzaFNyYnMKLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFBYRU5WQkRf
U1JCRVhUICAgICAgU3JiRXh0OwotICAgICAgICBQTElTVF9FTlRSWSAgICAgICAgIExpc3RFbnRy
eTsKLQotICAgICAgICBMaXN0RW50cnkgPSBSZW1vdmVUYWlsTGlzdCgmTGlzdCk7Ci0gICAgICAg
IGlmIChMaXN0RW50cnkgPT0gJkxpc3QpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgU3Ji
RXh0ID0gQ09OVEFJTklOR19SRUNPUkQoTGlzdEVudHJ5LCBYRU5WQkRfU1JCRVhULCBMaXN0RW50
cnkpOwotCi0gICAgICAgIFF1ZXVlVW5Qb3AoJlJpbmctPkZyZXNoU3JicywgJlNyYkV4dC0+TGlz
dEVudHJ5KTsKLSAgICB9Ci0KLSAgICAvLyBub3cgdGhlIGZpcnN0IHNldCBvZiByZXF1ZXN0cyBw
b3BwZWQgb2ZmIHN1Ym1pdHRlZCBsaXN0IGlzIHRoZSBuZXh0IFNSQgotICAgIC8vIHRvIGJlIHBv
cHBlZCBvZmYgdGhlIGZyZXNoIGxpc3QKLQotICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiAlZCBG
cmVzaCBTUkJzXG4iLAotICAgICAgICAgICAgRnJvbnRlbmRHZXRUYXJnZXRJZChSaW5nLT5Gcm9u
dGVuZCksCi0gICAgICAgICAgICBRdWV1ZUNvdW50KCZSaW5nLT5GcmVzaFNyYnMpKTsKLX0KZGlm
ZiAtLWdpdCBhL3NyYy94ZW52YmQvcmluZy5oIGIvc3JjL3hlbnZiZC9yaW5nLmgKaW5kZXggMDAz
ZjFlYS4uODFmNGU5OSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC9yaW5nLmgKKysrIGIvc3JjL3hl
bnZiZC9yaW5nLmgKQEAgLTkxLDkgKzkxLDQgQEAgUmluZ1F1ZXVlU2h1dGRvd24oCiAgICAgSU4g
IFBYRU5WQkRfU1JCRVhUICBTcmJFeHQKICAgICApOwogCi1leHRlcm4gVk9JRAotUmluZ1JlUXVl
dWVSZXF1ZXN0cygKLSAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcKLSAgICApOwotCiAjZW5k
aWYgLy8gX1hFTlZCRF9SSU5HX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9z
cmMveGVudmJkL3RhcmdldC5jCmluZGV4IGU0NjQ1OWIuLjQ0MDdjNzAgMTAwNjQ0Ci0tLSBhL3Ny
Yy94ZW52YmQvdGFyZ2V0LmMKKysrIGIvc3JjL3hlbnZiZC90YXJnZXQuYwpAQCAtNjcsOSArNjcs
NyBAQCBzdHJ1Y3QgX1hFTlZCRF9UQVJHRVQgewogICAgIC8vIEZyb250ZW5kIChSaW5nLCBpbmNs
dWRlcyBYZW5CdXMgaW50ZXJmYWNlcykKICAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAg
RnJvbnRlbmQ7CiAgICAgWEVOQlVTX0RFQlVHX0lOVEVSRkFDRSAgICAgIERlYnVnSW50ZXJmYWNl
OwotICAgIFhFTkJVU19TVVNQRU5EX0lOVEVSRkFDRSAgICBTdXNwZW5kSW50ZXJmYWNlOwogICAg
IFBYRU5CVVNfREVCVUdfQ0FMTEJBQ0sgICAgICBEZWJ1Z0NhbGxiYWNrOwotICAgIFBYRU5CVVNf
U1VTUEVORF9DQUxMQkFDSyAgICBTdXNwZW5kQ2FsbGJhY2s7CiAKICAgICAvLyBFamVjdAogICAg
IEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICBXcml0dGVuRWplY3RlZDsKQEAgLTExNTksMjMg
KzExNTcsNiBAQCBUYXJnZXREZWJ1Z0NhbGxiYWNrKAogICAgICAgICAgICAgICAgICBUYXJnZXQt
Pk1pc3NpbmcgPyBUYXJnZXQtPlJlYXNvbiA6ICJOb3QgTWlzc2luZyIpOwogfQogCi1zdGF0aWMg
REVDTFNQRUNfTk9JTkxJTkUgVk9JRAotVGFyZ2V0U3VzcGVuZENhbGxiYWNrKAotICAgIElOICBQ
Vk9JRCAgICAgICBBcmd1bWVudAotICAgICkKLXsKLSAgICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0
ID0gQXJndW1lbnQ7Ci0KLSAgICBSaW5nUmVRdWV1ZVJlcXVlc3RzKEZyb250ZW5kR2V0UmluZyhU
YXJnZXQtPkZyb250ZW5kKSk7Ci0KLSAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogJXMgKCVzKVxu
IiwKLSAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksCi0gICAgICAgICAgICBU
YXJnZXQtPk1pc3NpbmcgPyAiTUlTU0lORyIgOiAiTk9UX01JU1NJTkciLAotICAgICAgICAgICAg
VGFyZ2V0LT5SZWFzb24pOwotICAgIFRhcmdldC0+TWlzc2luZyA9IEZBTFNFOwotICAgIFRhcmdl
dC0+UmVhc29uID0gTlVMTDsKLX0KLQogTlRTVEFUVVMKIFRhcmdldEQzVG9EMCgKICAgICBJTiAg
UFhFTlZCRF9UQVJHRVQgIFRhcmdldApAQCAtMTE5MSw4ICsxMTcyLDYgQEAgVGFyZ2V0RDNUb0Qw
KAogCiAgICAgQWRhcHRlckdldERlYnVnSW50ZXJmYWNlKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2Up
OwotICAgIEFkYXB0ZXJHZXRTdXNwZW5kSW50ZXJmYWNlKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5TdXNwZW5kSW50ZXJm
YWNlKTsKIAogICAgIHN0YXR1cyA9IFhFTkJVU19ERUJVRyhBY3F1aXJlLCAmVGFyZ2V0LT5EZWJ1
Z0ludGVyZmFjZSk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCkBAIC0xMjA3LDQ0ICsx
MTg2LDE5IEBAIFRhcmdldEQzVG9EMCgKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAg
ICAgICAgZ290byBmYWlsMjsKIAotICAgIHN0YXR1cyA9IFhFTkJVU19TVVNQRU5EKEFjcXVpcmUs
ICZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UpOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMp
KQotICAgICAgICBnb3RvIGZhaWwzOwotCi0gICAgc3RhdHVzID0gWEVOQlVTX1NVU1BFTkQoUmVn
aXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVy
ZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVNQRU5EX0NBTExCQUNLX0xBVEUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0U3VzcGVuZENhbGxiYWNrLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmVGFyZ2V0LT5TdXNwZW5kQ2FsbGJhY2spOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0
dXMpKQotICAgICAgICBnb3RvIGZhaWw0OwotCiAgICAgc3RhdHVzID0gRnJvbnRlbmREM1RvRDAo
VGFyZ2V0LT5Gcm9udGVuZCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAg
IGdvdG8gZmFpbDU7CisgICAgICAgIGdvdG8gZmFpbDM7CiAKICAgICBzdGF0dXMgPSBGcm9udGVu
ZFNldFN0YXRlKFRhcmdldC0+RnJvbnRlbmQsIFhFTlZCRF9FTkFCTEVEKTsKICAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNjsKKyAgICAgICAgZ290byBmYWls
NDsKIAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFpbDY6Ci0gICAgRXJyb3IoImZh
aWw2XG4iKTsKLSAgICBGcm9udGVuZEQwVG9EMyhUYXJnZXQtPkZyb250ZW5kKTsKLQotZmFpbDU6
Ci0gICAgRXJyb3IoImZhaWw1XG4iKTsKLSAgICBYRU5CVVNfU1VTUEVORChEZXJlZ2lzdGVyLAot
ICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UsCi0gICAgICAgICAg
ICAgICAgICAgVGFyZ2V0LT5TdXNwZW5kQ2FsbGJhY2spOwotICAgIFRhcmdldC0+U3VzcGVuZENh
bGxiYWNrID0gTlVMTDsKLQogZmFpbDQ6CiAgICAgRXJyb3IoImZhaWw0XG4iKTsKLSAgICBYRU5C
VVNfU1VTUEVORChSZWxlYXNlLAotICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRJ
bnRlcmZhY2UpOworICAgIEZyb250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOwogCiBmYWls
MzoKICAgICBFcnJvcigiZmFpbDNcbiIpOwpAQCAtMTI2MSw4ICsxMjE1LDYgQEAgZmFpbDI6CiBm
YWlsMToKICAgICBFcnJvcigiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOwogCi0gICAgUnRsWmVy
b01lbW9yeSgmVGFyZ2V0LT5TdXNwZW5kSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgc2l6
ZW9mKFhFTkJVU19TVVNQRU5EX0lOVEVSRkFDRSkpOwogICAgIFJ0bFplcm9NZW1vcnkoJlRhcmdl
dC0+RGVidWdJbnRlcmZhY2UsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX0RFQlVH
X0lOVEVSRkFDRSkpOwogICAgIFRhcmdldC0+RGV2aWNlUG93ZXJTdGF0ZSA9IFBvd2VyRGV2aWNl
RDM7CkBAIC0xMjg2LDE0ICsxMjM4LDYgQEAgVGFyZ2V0RDBUb0QzKAogCiAgICAgRnJvbnRlbmRE
MFRvRDMoVGFyZ2V0LT5Gcm9udGVuZCk7CiAKLSAgICBYRU5CVVNfU1VTUEVORChEZXJlZ2lzdGVy
LAotICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UsCi0gICAgICAg
ICAgICAgICAgICAgVGFyZ2V0LT5TdXNwZW5kQ2FsbGJhY2spOwotICAgIFRhcmdldC0+U3VzcGVu
ZENhbGxiYWNrID0gTlVMTDsKLQotICAgIFhFTkJVU19TVVNQRU5EKFJlbGVhc2UsCi0gICAgICAg
ICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSk7Ci0KICAgICBYRU5CVVNfREVC
VUcoRGVyZWdpc3RlciwKICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2Us
CiAgICAgICAgICAgICAgICAgIFRhcmdldC0+RGVidWdDYWxsYmFjayk7CkBAIC0xMzAyLDggKzEy
NDYsNiBAQCBUYXJnZXREMFRvRDMoCiAgICAgWEVOQlVTX0RFQlVHKFJlbGVhc2UsCiAgICAgICAg
ICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlKTsKIAotICAgIFJ0bFplcm9NZW1vcnko
JlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5C
VVNfU1VTUEVORF9JTlRFUkZBQ0UpKTsKICAgICBSdGxaZXJvTWVtb3J5KCZUYXJnZXQtPkRlYnVn
SW50ZXJmYWNlLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhFTkJVU19ERUJVR19JTlRFUkZB
Q0UpKTsKIH0KLS0gCjIuOC4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Oct 18 12:43:46 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 18 Oct 2017 12:43:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e4nhK-0007nG-EW; Wed, 18 Oct 2017 12:43:46 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=457f2ad98=owen.smith@citrix.com>)
 id 1e4nhI-0007mf-ND
 for win-pv-devel@lists.xenproject.org; Wed, 18 Oct 2017 12:43:44 +0000
Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id
 DD/91-25852-08C47E95; Wed, 18 Oct 2017 12:43:44 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprIIsWRWlGSWpSXmKPExsXitHSDvW69z/N
 Ig/65YhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+SerUwFv28xVty7fpGtgXHnPMYuRk4OCQF/
 iaev2phAbDYBWYmPKz8zg9giAuoS+z5vBYszC6hJXN/fxQpiCwsYSdzpusUGYrMIqEosn9kEV
 s8rYCnxYsozVoiZchKTF18Cms/BwSlgJbFhQiRIWAio5OemPUwQtpLEt8UvoFoFJU7OfMICsU
 pC4uCLF8wTGHlnIUnNQpJawMi0ilGjOLWoLLVI18hCL6koMz2jJDcxM0fX0MBMLze1uDgxPTU
 nMalYLzk/dxMjMHgYgGAH4/m1gYcYJTmYlER5dQ88ixTiS8pPqcxILM6ILyrNSS0+xCjDwaEk
 wfvM63mkkGBRanpqRVpmDjCMYdISHDxKIrzVIGne4oLE3OLMdIjUKUZdjo6bd/8wCbHk5eelS
 onz5nsDFQmAFGWU5sGNgMXUJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgnzWoFM4cnMK4Hb9A
 roCCagI9Y5PQE5oiQRISXVwJjueiZ/YWx/9Zsn/3eWOrwtNCizXXEi9fGz2Tw28w+vbHJtt5Z
 Zdvd10R+V2GUf5H8b7pn/duL3jSe/7bMz5j3CzqTxr7dzU7yAj/DGlIONxjc3Oeq1Bm6O4eHk
 Vp6zL7r+SP1cT1uBMu/3hzj8vxaLaIoHhMzpq9hw8HxJorpcR5v3la11S5RYijMSDbWYi4oTA
 UBv6DikAgAA
X-Env-Sender: prvs=457f2ad98=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-21.messagelabs.com!1508330618!65790991!2
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40256 invoked from network); 18 Oct 2017 12:43:42 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 18 Oct 2017 12:43:42 -0000
X-IronPort-AV: E=Sophos;i="5.43,396,1503360000"; d="scan'208";a="454781200"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 18 Oct 2017 13:43:04 +0100
Message-ID: <20171018124305.1440-4-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20171018124305.1440-1-owen.smith@citrix.com>
References: <20171018124305.1440-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 4/5] Rationalize SCSIOP_* handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKKiBVc2Ugc2FtZSBlcnJv
ciBoYW5kbGluZyBmb3IgaW52YWxpZCBidWZmZXJzLCBldGMuCiogQWxsb3cgZm9yIFNDU0lPUF9N
T0RFX1NFTlNFMTAKKiBDb3JyZWN0bHkgcmVwb3J0IFZESVNLX1JFQURPTkxZIGZsYWcKClNpZ25l
ZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVu
dmJkL2Zyb250ZW5kLmMgfCAgNDAgKysrKwogc3JjL3hlbnZiZC9mcm9udGVuZC5oIHwgICA1ICsK
IHNyYy94ZW52YmQvdGFyZ2V0LmMgICB8IDU1NSArKysrKysrKysrKysrKysrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzNDggaW5zZXJ0aW9ucygr
KSwgMjUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBi
L3NyYy94ZW52YmQvZnJvbnRlbmQuYwppbmRleCBkN2ZmZjg5Li5iN2U2MWMyIDEwMDY0NAotLS0g
YS9zcmMveGVudmJkL2Zyb250ZW5kLmMKKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jCkBAIC0x
ODg5LDUgKzE4ODksNDUgQEAgRnJvbnRlbmRHZXREaXNrSW5mbygKIHsKICAgICByZXR1cm4gJkZy
b250ZW5kLT5EaXNrSW5mbzsKIH0KKy8vRlJPTlRFTkRfR0VUX1BST1BFUlRZKENvbm5lY3RlZCwg
Qk9PTEVBTikKK0JPT0xFQU4KK0Zyb250ZW5kR2V0Q29ubmVjdGVkKAorICAgIElOICBQWEVOVkJE
X0ZST05URU5EICAgIEZyb250ZW5kCisgICAgKQoreworICAgIHJldHVybiBGcm9udGVuZC0+Q2Fw
cy5Db25uZWN0ZWQ7Cit9CisvL0ZST05URU5EX0dFVF9QUk9QRVJUWShSZWFkT25seSwgQk9PTEVB
TikKK0JPT0xFQU4KK0Zyb250ZW5kR2V0UmVhZE9ubHkoCisgICAgSU4gIFBYRU5WQkRfRlJPTlRF
TkQgICAgRnJvbnRlbmQKKyAgICApCit7CisgICAgcmV0dXJuICEhKEZyb250ZW5kLT5EaXNrSW5m
by5EaXNrSW5mbyAmIFZESVNLX1JFQURPTkxZKTsKK30KKy8vRlJPTlRFTkRfR0VUX1BST1BFUlRZ
KERpc2NhcmQsIEJPT0xFQU4pCitCT09MRUFOCitGcm9udGVuZEdldERpc2NhcmQoCisgICAgSU4g
IFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQKKyAgICApCit7CisgICAgcmV0dXJuIEZyb250
ZW5kLT5EaXNrSW5mby5EaXNjYXJkOworfQorLy9GUk9OVEVORF9HRVRfUFJPUEVSVFkoRmx1c2hD
YWNoZSwgQk9PTEVBTikKK0JPT0xFQU4KK0Zyb250ZW5kR2V0Rmx1c2hDYWNoZSgKKyAgICBJTiAg
UFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZAorICAgICkKK3sKKyAgICByZXR1cm4gRnJvbnRl
bmQtPkRpc2tJbmZvLkZsdXNoQ2FjaGU7Cit9CisvL0ZST05URU5EX0dFVF9QUk9QRVJUWShCYXJy
aWVyLCBCT09MRUFOKQorQk9PTEVBTgorRnJvbnRlbmRHZXRCYXJyaWVyKAorICAgIElOICBQWEVO
VkJEX0ZST05URU5EICAgIEZyb250ZW5kCisgICAgKQoreworICAgIHJldHVybiBGcm9udGVuZC0+
RGlza0luZm8uQmFycmllcjsKK30KIAogI3VuZGVmIEZST05URU5EX0dFVF9QUk9QRVJUWQpkaWZm
IC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9udGVuZC5oIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5oCmlu
ZGV4IDQ2ZjJlMzkuLjE0ODg0NzYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQuaAor
KysgYi9zcmMveGVudmJkL2Zyb250ZW5kLmgKQEAgLTE2Miw2ICsxNjIsMTEgQEAgRlJPTlRFTkRf
R0VUX1BST1BFUlRZKEZyb250ZW5kUGF0aCwgUENIQVIpCiBGUk9OVEVORF9HRVRfUFJPUEVSVFko
Q2FwcywgUFhFTlZCRF9DQVBTKQogRlJPTlRFTkRfR0VUX1BST1BFUlRZKEZlYXR1cmVzLCBQWEVO
VkJEX0ZFQVRVUkVTKQogRlJPTlRFTkRfR0VUX1BST1BFUlRZKERpc2tJbmZvLCBQWEVOVkJEX0RJ
U0tJTkZPKQorRlJPTlRFTkRfR0VUX1BST1BFUlRZKENvbm5lY3RlZCwgQk9PTEVBTikKK0ZST05U
RU5EX0dFVF9QUk9QRVJUWShSZWFkT25seSwgQk9PTEVBTikKK0ZST05URU5EX0dFVF9QUk9QRVJU
WShEaXNjYXJkLCBCT09MRUFOKQorRlJPTlRFTkRfR0VUX1BST1BFUlRZKEZsdXNoQ2FjaGUsIEJP
T0xFQU4pCitGUk9OVEVORF9HRVRfUFJPUEVSVFkoQmFycmllciwgQk9PTEVBTikKIAogI3VuZGVm
IEZST05URU5EX0dFVF9QUk9QRVJUWQogCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5j
IGIvc3JjL3hlbnZiZC90YXJnZXQuYwppbmRleCBlNjI0OTc5Li4wOTU2NjYyIDEwMDY0NAotLS0g
YS9zcmMveGVudmJkL3RhcmdldC5jCisrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMKQEAgLTIwOSwz
MjMgKzIwOSwzNTQgQEAgVGFyZ2V0U2V0RGV2aWNlT2JqZWN0KAogICAgIFRhcmdldC0+RGV2aWNl
T2JqZWN0ID0gRGV2aWNlT2JqZWN0OwogfQogCi1fX2NoZWNrUmV0dXJuCi1zdGF0aWMgRk9SQ0VJ
TkxJTkUgQk9PTEVBTgotX19WYWxpZGF0ZVNlY3RvcnMoCi0gICAgX19pbiBVTE9ORzY0ICAgICAg
ICAgICAgICAgICBTZWN0b3JDb3VudCwKLSAgICBfX2luIFVMT05HNjQgICAgICAgICAgICAgICAg
IFN0YXJ0LAotICAgIF9faW4gVUxPTkcgICAgICAgICAgICAgICAgICAgTGVuZ3RoCitzdGF0aWMg
REVDTFNQRUNfTk9JTkxJTkUgQk9PTEVBTgorVGFyZ2V0UmVhZFdyaXRlKAorICAgIElOICBQWEVO
VkJEX1RBUkdFVCAgICAgIFRhcmdldCwKKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIK
ICAgICApCiB7Ci0gICAgLy8gRGVhbCB3aXRoIG92ZXJmbG93Ci0gICAgcmV0dXJuIChTdGFydCA8
IFNlY3RvckNvdW50KSAmJiAoKFN0YXJ0ICsgTGVuZ3RoKSA8PSBTZWN0b3JDb3VudCk7Ci19Cisg
ICAgUFhFTlZCRF9TUkJFWFQgICAgICAgICAgU3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNpb247Cisg
ICAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQgPSBUYXJnZXQtPkZyb250ZW5kOwor
ICAgIFBYRU5WQkRfUklORyAgICAgICAgICAgIFJpbmcgPSBGcm9udGVuZEdldFJpbmcoRnJvbnRl
bmQpOworICAgIFVMT05HNjQgICAgICAgICAgICAgICAgIFNlY3RvckNvdW50OworICAgIFVMT05H
NjQgICAgICAgICAgICAgICAgIFNlY3RvclN0YXJ0OworICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgIE51bVNlY3RvcnM7CiAKLV9fY2hlY2tSZXR1cm4KLXN0YXRpYyBGT1JDRUlOTElORSBCT09M
RUFOCi1fX1ZhbGlkYXRlU3JiQnVmZmVyKAotICAgIF9faW4gUENIQVIgICAgICAgICAgICAgICAg
ICBDYWxsZXIsCi0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgIFNyYiwKLSAgICBfX2lu
IFVMT05HICAgICAgICAgICAgICAgICAgTWluTGVuZ3RoCi0gICAgKQotewotICAgIGlmIChTcmIt
PkRhdGFCdWZmZXIgPT0gTlVMTCkgewotICAgICAgICBFcnJvcigiJXM6IFNyYlsweCVwXS5EYXRh
QnVmZmVyID0gTlVMTFxuIiwgQ2FsbGVyLCBTcmIpOwotICAgICAgICByZXR1cm4gRkFMU0U7Ci0g
ICAgfQotICAgIGlmIChNaW5MZW5ndGgpIHsKLSAgICAgICAgaWYgKFNyYi0+RGF0YVRyYW5zZmVy
TGVuZ3RoIDwgTWluTGVuZ3RoKSB7Ci0gICAgICAgICAgICBFcnJvcigiJXM6IFNyYlsweCVwXS5E
YXRhVHJhbnNmZXJMZW5ndGggPCAlZFxuIiwgQ2FsbGVyLCBTcmIsIE1pbkxlbmd0aCk7Ci0gICAg
ICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBp
ZiAoU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPT0gMCkgewotICAgICAgICAgICAgRXJyb3IoIiVz
OiBTcmJbMHglcF0uRGF0YVRyYW5zZmVyTGVuZ3RoID0gMFxuIiwgQ2FsbGVyLCBTcmIpOwotICAg
ICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICB9Ci0gICAgfQorICAgIFNyYi0+U3JiU3Rh
dHVzID0gU1JCX1NUQVRVU19FUlJPUjsKKyAgICBpZiAoIUZyb250ZW5kR2V0Q29ubmVjdGVkKEZy
b250ZW5kKSkKKyAgICAgICAgZ290byBmYWlsMTsKIAotICAgIHJldHVybiBUUlVFOwotfQorICAg
IC8vIGRpc2FsbG93IHdyaXRlcyB0byByZWFkLW9ubHkgZGlza3MKKyAgICBpZiAoRnJvbnRlbmRH
ZXRSZWFkT25seShGcm9udGVuZCkgJiYKKyAgICAgICAgQ2RiX09wZXJhdGlvbkV4KFNyYikgPT0g
U0NTSU9QX1dSSVRFKQorICAgICAgICBnb3RvIGZhaWwyOwogCi1fX2NoZWNrUmV0dXJuCi1zdGF0
aWMgREVDTFNQRUNfTk9JTkxJTkUgQk9PTEVBTgotVGFyZ2V0UmVhZFdyaXRlKAotICAgIF9faW4g
UFhFTlZCRF9UQVJHRVQgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19pbiBQU0NTSV9SRVFVRVNU
X0JMT0NLICAgIFNyYgotICAgICkKLXsKLSAgICBQWEVOVkJEX0RJU0tJTkZPICAgIERpc2tJbmZv
ID0gRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJnZXQtPkZyb250ZW5kKTsKLSAgICBQWEVOVkJEX1NS
QkVYVCAgICAgIFNyYkV4dCA9IFNyYi0+U3JiRXh0ZW5zaW9uOwotICAgIFBYRU5WQkRfUklORyAg
ICAgICAgUmluZyA9IEZyb250ZW5kR2V0UmluZyhUYXJnZXQtPkZyb250ZW5kKTsKLQotICAgIGlm
IChGcm9udGVuZEdldENhcHMoVGFyZ2V0LT5Gcm9udGVuZCktPkNvbm5lY3RlZCA9PSBGQUxTRSkg
ewotICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IE5vdCBSZWFkeSwgZmFpbCBTUkJcbiIsIFRh
cmdldEdldFRhcmdldElkKFRhcmdldCkpOwotICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQw
OyAvLyBTQ1NJX0FCT1JUOwotICAgICAgICByZXR1cm4gVFJVRTsKLSAgICB9CisgICAgLy8gY2hl
Y2sgU2VjdG9ycyByZXF1ZXN0ZWQgaXMgb24gdGhlIGRpc2sKKyAgICBTZWN0b3JDb3VudCA9IEZy
b250ZW5kR2V0RGlza0luZm8oRnJvbnRlbmQpLT5TZWN0b3JDb3VudDsKKyAgICBTZWN0b3JTdGFy
dCA9IENkYl9Mb2dpY2FsQmxvY2soU3JiKTsKKyAgICBOdW1TZWN0b3JzID0gQ2RiX1RyYW5zZmVy
QmxvY2soU3JiKTsKIAotICAgIC8vIGNoZWNrIHZhbGlkIHNlY3RvcnMKLSAgICBpZiAoIV9fVmFs
aWRhdGVTZWN0b3JzKERpc2tJbmZvLT5TZWN0b3JDb3VudCwgQ2RiX0xvZ2ljYWxCbG9jayhTcmIp
LCBDZGJfVHJhbnNmZXJCbG9jayhTcmIpKSkgewotICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6
IEludmFsaWQgU2VjdG9yICglZCBAICVsbGQgPCAlbGxkKVxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQo
VGFyZ2V0KSwgQ2RiX1RyYW5zZmVyQmxvY2soU3JiKSwgQ2RiX0xvZ2ljYWxCbG9jayhTcmIpLCBE
aXNrSW5mby0+U2VjdG9yQ291bnQpOwotICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQwOyAv
LyBTQ1NJX0FCT1JUCi0gICAgICAgIHJldHVybiBUUlVFOyAvLyBDb21wbGV0ZSBub3cKLSAgICB9
CisgICAgaWYgKFNlY3RvclN0YXJ0ID49IFNlY3RvckNvdW50KQorICAgICAgICBnb3RvIGZhaWwz
OworICAgIGlmICgoU2VjdG9yU3RhcnQgKyBOdW1TZWN0b3JzKSA+IFNlY3RvckNvdW50KQorICAg
ICAgICBnb3RvIGZhaWw0OwogCisgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BFTkRJ
Tkc7CiAgICAgUmluZ1F1ZXVlUmVxdWVzdChSaW5nLCBTcmJFeHQpOwogICAgIHJldHVybiBGQUxT
RTsKKworZmFpbDQ6CisgICAgIEVycm9yKCJmYWlsNFxuIik7CitmYWlsMzoKKyAgICBFcnJvcigi
ZmFpbDNcbiIpOworZmFpbDI6CisgICAgRXJyb3IoImZhaWwyXG4iKTsKK2ZhaWwxOgorICAgIEVy
cm9yKCJmYWlsMVxuIik7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKLV9fY2hlY2tSZXR1cm4KIHN0
YXRpYyBERUNMU1BFQ19OT0lOTElORSBCT09MRUFOCiBUYXJnZXRTeW5jQ2FjaGUoCi0gICAgX19p
biBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19pbiBQU0NTSV9SRVFV
RVNUX0JMT0NLICAgICBTcmIKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQsCisg
ICAgSU4gIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiCiAgICAgKQogewotICAgIFBYRU5WQkRfU1JC
RVhUICAgICAgU3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNpb247Ci0gICAgUFhFTlZCRF9SSU5HICAg
ICAgICBSaW5nID0gRnJvbnRlbmRHZXRSaW5nKFRhcmdldC0+RnJvbnRlbmQpOworICAgIFBYRU5W
QkRfU1JCRVhUICAgICAgICAgIFNyYkV4dCA9IFNyYi0+U3JiRXh0ZW5zaW9uOworICAgIFBYRU5W
QkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kID0gVGFyZ2V0LT5Gcm9udGVuZDsKKyAgICBQWEVO
VkJEX1JJTkcgICAgICAgICAgICBSaW5nID0gRnJvbnRlbmRHZXRSaW5nKEZyb250ZW5kKTsKIAot
ICAgIGlmIChGcm9udGVuZEdldENhcHMoVGFyZ2V0LT5Gcm9udGVuZCktPkNvbm5lY3RlZCA9PSBG
QUxTRSkgewotICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IE5vdCBSZWFkeSwgZmFpbCBTUkJc
biIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCkpOwotICAgICAgICBTcmItPlNjc2lTdGF0dXMg
PSAweDQwOyAvLyBTQ1NJX0FCT1JUOwotICAgICAgICByZXR1cm4gVFJVRTsKLSAgICB9CisgICAg
U3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOworICAgIGlmICghRnJvbnRlbmRHZXRD
b25uZWN0ZWQoRnJvbnRlbmQpKQorICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAgaWYgKEZyb250
ZW5kR2V0RGlza0luZm8oVGFyZ2V0LT5Gcm9udGVuZCktPkZsdXNoQ2FjaGUgPT0gRkFMU0UgJiYK
LSAgICAgICAgRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJnZXQtPkZyb250ZW5kKS0+QmFycmllciA9
PSBGQUxTRSkgewotICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IEZMVVNIIGFuZCBCQVJSSUVS
IG5vdCBzdXBwb3J0ZWQsIHN1cHByZXNzaW5nXG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQp
KTsKLSAgICAgICAgU3JiLT5TY3NpU3RhdHVzID0gMHgwMDsgLy8gU0NTSV9HT09ECi0gICAgICAg
IFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOwotICAgICAgICByZXR1cm4gVFJV
RTsKLSAgICB9CisgICAgaWYgKEZyb250ZW5kR2V0UmVhZE9ubHkoRnJvbnRlbmQpKQorICAgICAg
ICBnb3RvIGZhaWwyOworCisgICAgLy8gSWYgbmVpdGhlciBGTFVTSCBvciBCQVJSSUVSIGlzIHN1
cHBvcnRlZCwganVzdCBzdWNjY2VlZCB0aGUgU1JCCisgICAgaWYgKCEoRnJvbnRlbmRHZXRGbHVz
aENhY2hlKEZyb250ZW5kKSB8fAorICAgICAgICAgIEZyb250ZW5kR2V0QmFycmllcihGcm9udGVu
ZCkpKQorICAgICAgICBnb3RvIHN1Y2NlZWQ7CiAKKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9T
VEFUVVNfUEVORElORzsKICAgICBSaW5nUXVldWVSZXF1ZXN0KFJpbmcsIFNyYkV4dCk7CiAgICAg
cmV0dXJuIEZBTFNFOworCitzdWNjZWVkOgorICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRV
U19TVUNDRVNTOworICAgIHJldHVybiBUUlVFOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJc
biIpOworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxXG4iKTsKKyAgICByZXR1cm4gVFJVRTsKIH0K
IAotX19jaGVja1JldHVybgogc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIEJPT0xFQU4KIFRhcmdl
dFVubWFwKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LAotICAg
IF9faW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiCisgICAgSU4gIFBYRU5WQkRfVEFSR0VU
ICAgICAgVGFyZ2V0LAorICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYgogICAgICkKIHsK
LSAgICBQWEVOVkJEX1NSQkVYVCAgICAgIFNyYkV4dCA9IFNyYi0+U3JiRXh0ZW5zaW9uOwotICAg
IFBYRU5WQkRfUklORyAgICAgICAgUmluZyA9IEZyb250ZW5kR2V0UmluZyhUYXJnZXQtPkZyb250
ZW5kKTsKKyAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJFeHQgPSBTcmItPlNyYkV4dGVu
c2lvbjsKKyAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZCA9IFRhcmdldC0+RnJv
bnRlbmQ7CisgICAgUFhFTlZCRF9SSU5HICAgICAgICAgICAgUmluZyA9IEZyb250ZW5kR2V0Umlu
ZyhGcm9udGVuZCk7CiAKLSAgICBpZiAoRnJvbnRlbmRHZXRDYXBzKFRhcmdldC0+RnJvbnRlbmQp
LT5Db25uZWN0ZWQgPT0gRkFMU0UpIHsKLSAgICAgICAgVHJhY2UoIlRhcmdldFslZF0gOiBOb3Qg
UmVhZHksIGZhaWwgU1JCXG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsKLSAgICAgICAg
U3JiLT5TY3NpU3RhdHVzID0gMHg0MDsgLy8gU0NTSV9BQk9SVDsKLSAgICAgICAgcmV0dXJuIFRS
VUU7Ci0gICAgfQorICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsKKyAgICBp
ZiAoIUZyb250ZW5kR2V0Q29ubmVjdGVkKEZyb250ZW5kKSkKKyAgICAgICAgZ290byBmYWlsMTsK
IAotICAgIGlmIChGcm9udGVuZEdldERpc2tJbmZvKFRhcmdldC0+RnJvbnRlbmQpLT5EaXNjYXJk
ID09IEZBTFNFKSB7Ci0gICAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIDogRElTQ0FSRCBub3Qgc3Vw
cG9ydGVkLCBzdXBwcmVzc2luZ1xuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7Ci0gICAg
ICAgIFNyYi0+U2NzaVN0YXR1cyA9IDB4MDA7IC8vIFNDU0lfR09PRAotICAgICAgICBTcmItPlNy
YlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsKLSAgICAgICAgcmV0dXJuIFRSVUU7Ci0gICAg
fQorICAgIGlmIChGcm9udGVuZEdldFJlYWRPbmx5KEZyb250ZW5kKSkKKyAgICAgICAgZ290byBm
YWlsMjsKIAorICAgIGlmICghRnJvbnRlbmRHZXREaXNjYXJkKEZyb250ZW5kKSkKKyAgICAgICAg
Z290byBzdWNjZWVkOworCisgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BFTkRJTkc7
CiAgICAgUmluZ1F1ZXVlUmVxdWVzdChSaW5nLCBTcmJFeHQpOwogICAgIHJldHVybiBGQUxTRTsK
Kworc3VjY2VlZDoKKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsKKyAg
ICByZXR1cm4gVFJVRTsKKworZmFpbDI6CisgICAgRXJyb3IoImZhaWwyXG4iKTsKK2ZhaWwxOgor
ICAgIEVycm9yKCJmYWlsMVxuIik7CisgICAgcmV0dXJuIFRSVUU7CiB9CiAKLSNkZWZpbmUgTU9E
RV9DQUNISU5HX1BBR0VfTEVOR1RIIDIwCi1zdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRAot
VGFyZ2V0TW9kZVNlbnNlKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFy
Z2V0LAotICAgIF9faW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiCitzdGF0aWMgRk9SQ0VJ
TkxJTkUgVk9JRAorX19UYXJnZXRNb2RlU2Vuc2UoCisgICAgSU4gIFBYRU5WQkRfVEFSR0VUICAg
ICAgVGFyZ2V0LAorICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYiwKKyAgICBJTiAgUFZP
SUQgICAgICAgICAgICAgICBEYXRhLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgIExlbmd0
aCwKKyAgICBPVVQgUFVMT05HICAgICAgICAgICAgICBTaXplLAorICAgIE9VVCBQVUxPTkcgICAg
ICAgICAgICAgIE1vZGVEYXRhTGVuZ3RoLAorICAgIE9VVCBQVUxPTkcgICAgICAgICAgICAgIEJs
b2NrRGVzY3JMZW5ndGgKICAgICApCiB7Ci0gICAgUE1PREVfUEFSQU1FVEVSX0hFQURFUiAgSGVh
ZGVyICA9IFNyYi0+RGF0YUJ1ZmZlcjsKLSAgICBjb25zdCBVQ0hBUiBQYWdlQ29kZSAgICAgICAg
ICAgID0gQ2RiX1BhZ2VDb2RlKFNyYik7Ci0gICAgVUxPTkcgTGVuZ3RoTGVmdCAgICAgICAgICAg
ICAgICA9IENkYl9BbGxvY2F0aW9uTGVuZ3RoKFNyYik7Ci0gICAgUFZPSUQgQ3VycmVudFBhZ2Ug
ICAgICAgICAgICAgICA9IFNyYi0+RGF0YUJ1ZmZlcjsKLQotICAgIFVOUkVGRVJFTkNFRF9QQVJB
TUVURVIoVGFyZ2V0KTsKLQotICAgIFJ0bFplcm9NZW1vcnkoU3JiLT5EYXRhQnVmZmVyLCBTcmIt
PkRhdGFUcmFuc2Zlckxlbmd0aCk7Ci0KLSAgICBpZiAoIV9fVmFsaWRhdGVTcmJCdWZmZXIoX19G
VU5DVElPTl9fLCBTcmIsIChVTE9ORylzaXplb2Yoc3RydWN0IF9NT0RFX1NFTlNFKSkpIHsKLSAg
ICAgICAgU3JiLT5TY3NpU3RhdHVzID0gMHg0MDsKLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBT
UkJfU1RBVFVTX0RBVEFfT1ZFUlJVTjsKLSAgICAgICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGgg
PSAwOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gVE9ETyA6IENEUk9NIHJlcXVp
cmVzIG1vcmUgTW9kZVBhZ2UgZW50cmllcwotICAgIC8vIEhlYWRlcgotICAgIEhlYWRlci0+TW9k
ZURhdGFMZW5ndGggID0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0hFQURFUikgLSAxOwotICAgIEhl
YWRlci0+TWVkaXVtVHlwZSAgICAgID0gMDsKLSAgICBIZWFkZXItPkRldmljZVNwZWNpZmljUGFy
YW1ldGVyID0gMDsKLSAgICBIZWFkZXItPkJsb2NrRGVzY3JpcHRvckxlbmd0aCAgID0gMDsKLSAg
ICBMZW5ndGhMZWZ0IC09IHNpemVvZihNT0RFX1BBUkFNRVRFUl9IRUFERVIpOwotICAgIEN1cnJl
bnRQYWdlID0gKChQVUNIQVIpQ3VycmVudFBhZ2UgKyBzaXplb2YoTU9ERV9QQVJBTUVURVJfSEVB
REVSKSk7CisgICAgY29uc3QgVUNIQVIgICAgICAgICAgICAgUGFnZUNvZGUgPSBDZGJfUGFnZUNv
ZGUoU3JiKTsKIAogICAgIC8vIEZpbGwgaW4gQmxvY2sgUGFyYW1ldGVycyAoaWYgU3BlY2lmaWVk
IGFuZCBzcGFjZSkKICAgICAvLyB3aGVuIHRoZSBEQkQgKERpc2FibGUgQmxvY2sgRGVzY3JpcHRv
cikgaXMgc2V0LCBpZ25vcmUgdGhlIGJsb2NrIHBhZ2UKICAgICBpZiAoQ2RiX0RiZChTcmIpID09
IDAgJiYKLSAgICAgICAgTGVuZ3RoTGVmdCA+PSBzaXplb2YoTU9ERV9QQVJBTUVURVJfQkxPQ0sp
KSB7Ci0gICAgICAgIFBNT0RFX1BBUkFNRVRFUl9CTE9DSyBCbG9jayA9IChQTU9ERV9QQVJBTUVU
RVJfQkxPQ0spQ3VycmVudFBhZ2U7Ci0gICAgICAgIC8vIEZpbGwgaW4gQmxvY2tQYXJhbXMKLSAg
ICAgICAgQmxvY2stPkRlbnNpdHlDb2RlICAgICAgICAgICAgICAgICAgPSAgIDA7Ci0gICAgICAg
IEJsb2NrLT5OdW1iZXJPZkJsb2Nrc1swXSAgICAgICAgICAgID0gICAwOwotICAgICAgICBCbG9j
ay0+TnVtYmVyT2ZCbG9ja3NbMV0gICAgICAgICAgICA9ICAgMDsKLSAgICAgICAgQmxvY2stPk51
bWJlck9mQmxvY2tzWzJdICAgICAgICAgICAgPSAgIDA7Ci0gICAgICAgIEJsb2NrLT5CbG9ja0xl
bmd0aFswXSAgICAgICAgICAgICAgID0gICAwOwotICAgICAgICBCbG9jay0+QmxvY2tMZW5ndGhb
MV0gICAgICAgICAgICAgICA9ICAgMDsKLSAgICAgICAgQmxvY2stPkJsb2NrTGVuZ3RoWzJdICAg
ICAgICAgICAgICAgPSAgIDA7Ci0KLSAgICAgICAgSGVhZGVyLT5CbG9ja0Rlc2NyaXB0b3JMZW5n
dGggPSBzaXplb2YoTU9ERV9QQVJBTUVURVJfQkxPQ0spOwotICAgICAgICBIZWFkZXItPk1vZGVE
YXRhTGVuZ3RoICs9IHNpemVvZihNT0RFX1BBUkFNRVRFUl9CTE9DSyk7Ci0gICAgICAgIExlbmd0
aExlZnQgLT0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0JMT0NLKTsKLSAgICAgICAgQ3VycmVudFBh
Z2UgPSAoKFBVQ0hBUilDdXJyZW50UGFnZSArIHNpemVvZihNT0RFX1BBUkFNRVRFUl9CTE9DSykp
OworICAgICAgICBMZW5ndGggLSAqU2l6ZSA+PSBzaXplb2YoTU9ERV9QQVJBTUVURVJfQkxPQ0sp
KSB7CisgICAgICAgIC8vIFBNT0RFX1BBUkFNRVRFUl9CTE9DSyBCbG9jayA9IChQTU9ERV9QQVJB
TUVURVJfQkxPQ0spKChQVUNIQVIpRGF0YSArICpTaXplKTsKKworICAgICAgICAvLyBGaWxsIGlu
IEJsb2NrUGFyYW1zIC0gQWxsIFplcm9lcworCisgICAgICAgICpCbG9ja0Rlc2NyTGVuZ3RoICAg
PSBzaXplb2YoTU9ERV9QQVJBTUVURVJfQkxPQ0spOworICAgICAgICAqTW9kZURhdGFMZW5ndGgg
ICAgICs9IHNpemVvZihNT0RFX1BBUkFNRVRFUl9CTE9DSyk7CisgICAgICAgICpTaXplICAgICAg
ICAgICAgICAgKz0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0JMT0NLKTsKICAgICB9CiAKICAgICAv
LyBGaWxsIGluIENhY2hlIFBhcmFtZXRlcnMgKGlmIFNwZWNpZmllZCBhbmQgc3BhY2UpCiAgICAg
aWYgKChQYWdlQ29kZSA9PSBNT0RFX1BBR0VfQ0FDSElORyB8fCBQYWdlQ29kZSA9PSBNT0RFX1NF
TlNFX1JFVFVSTl9BTEwpICYmCi0gICAgICAgIExlbmd0aExlZnQgPj0gTU9ERV9DQUNISU5HX1BB
R0VfTEVOR1RIKSB7Ci0gICAgICAgIFBNT0RFX0NBQ0hJTkdfUEFHRSBDYWNoaW5nID0gKFBNT0RF
X0NBQ0hJTkdfUEFHRSlDdXJyZW50UGFnZTsKKyAgICAgICAgTGVuZ3RoIC0gKlNpemUgPj0gc2l6
ZW9mKE1PREVfQ0FDSElOR19QQUdFKSkgeworICAgICAgICBQTU9ERV9DQUNISU5HX1BBR0UgQ2Fj
aGluZyA9IChQTU9ERV9DQUNISU5HX1BBR0UpKChQVUNIQVIpRGF0YSArICpTaXplKTsKKwogICAg
ICAgICAvLyBGaWxsIGluIENhY2hpbmdQYXJhbXMKLSAgICAgICAgQ2FjaGluZy0+UGFnZUNvZGUg
ICAgICAgICAgICAgICAgICAgPSBNT0RFX1BBR0VfQ0FDSElORzsKLSAgICAgICAgQ2FjaGluZy0+
UGFnZVNhdmFibGUgICAgICAgICAgICAgICAgPSAwOwotICAgICAgICBDYWNoaW5nLT5QYWdlTGVu
Z3RoICAgICAgICAgICAgICAgICA9IE1PREVfQ0FDSElOR19QQUdFX0xFTkdUSDsKLSAgICAgICAg
Q2FjaGluZy0+UmVhZERpc2FibGVDYWNoZSAgICAgICAgICAgPSAwOwotICAgICAgICBDYWNoaW5n
LT5NdWx0aXBsaWNhdGlvbkZhY3RvciAgICAgICA9IDA7Ci0gICAgICAgIENhY2hpbmctPldyaXRl
Q2FjaGVFbmFibGUgICAgICAgICAgID0gRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJnZXQtPkZyb250
ZW5kKS0+Rmx1c2hDYWNoZSA/IDEgOiAwOwotICAgICAgICBDYWNoaW5nLT5Xcml0ZVJldGVuc2lv
blByaW9yaXR5ICAgICA9IDA7Ci0gICAgICAgIENhY2hpbmctPlJlYWRSZXRlbnNpb25Qcmlvcml0
eSAgICAgID0gMDsKLSAgICAgICAgQ2FjaGluZy0+RGlzYWJsZVByZWZldGNoVHJhbnNmZXJbMF0g
PSAwOwotICAgICAgICBDYWNoaW5nLT5EaXNhYmxlUHJlZmV0Y2hUcmFuc2ZlclsxXSA9IDA7Ci0g
ICAgICAgIENhY2hpbmctPk1pbmltdW1QcmVmZXRjaFswXSAgICAgICAgID0gMDsKLSAgICAgICAg
Q2FjaGluZy0+TWluaW11bVByZWZldGNoWzFdICAgICAgICAgPSAwOwotICAgICAgICBDYWNoaW5n
LT5NYXhpbXVtUHJlZmV0Y2hbMF0gICAgICAgICA9IDA7Ci0gICAgICAgIENhY2hpbmctPk1heGlt
dW1QcmVmZXRjaFsxXSAgICAgICAgID0gMDsKLSAgICAgICAgQ2FjaGluZy0+TWF4aW11bVByZWZl
dGNoQ2VpbGluZ1swXSAgPSAwOwotICAgICAgICBDYWNoaW5nLT5NYXhpbXVtUHJlZmV0Y2hDZWls
aW5nWzFdICA9IDA7Ci0KLSAgICAgICAgSGVhZGVyLT5Nb2RlRGF0YUxlbmd0aCArPSBNT0RFX0NB
Q0hJTkdfUEFHRV9MRU5HVEg7Ci0gICAgICAgIExlbmd0aExlZnQgLT0gTU9ERV9DQUNISU5HX1BB
R0VfTEVOR1RIOwotICAgICAgICBDdXJyZW50UGFnZSA9ICgoUFVDSEFSKUN1cnJlbnRQYWdlICsg
TU9ERV9DQUNISU5HX1BBR0VfTEVOR1RIKTsKKyAgICAgICAgQ2FjaGluZy0+UGFnZUNvZGUgICAg
ICAgICAgID0gTU9ERV9QQUdFX0NBQ0hJTkc7CisgICAgICAgIENhY2hpbmctPlBhZ2VMZW5ndGgg
ICAgICAgICA9IHNpemVvZihNT0RFX0NBQ0hJTkdfUEFHRSk7CisgICAgICAgIENhY2hpbmctPldy
aXRlQ2FjaGVFbmFibGUgICA9IEZyb250ZW5kR2V0Rmx1c2hDYWNoZShUYXJnZXQtPkZyb250ZW5k
KSA/IDEgOiAwOworCisgICAgICAgICpNb2RlRGF0YUxlbmd0aCArPSBzaXplb2YoTU9ERV9DQUNI
SU5HX1BBR0UpOworICAgICAgICAqU2l6ZSAgICAgICAgICAgKz0gc2l6ZW9mKE1PREVfQ0FDSElO
R19QQUdFKTsKICAgICB9CiAKICAgICAvLyBGaWxsIGluIEluZm9ybWF0aW9uYWwgRXhjZXB0aW9u
IFBhcmFtZXRlcnMgKGlmIFNwZWNpZmllZCBhbmQgc3BhY2UpCiAgICAgaWYgKChQYWdlQ29kZSA9
PSBNT0RFX1BBR0VfRkFVTFRfUkVQT1JUSU5HIHx8IFBhZ2VDb2RlID09IE1PREVfU0VOU0VfUkVU
VVJOX0FMTCkgJiYKLSAgICAgICAgTGVuZ3RoTGVmdCA+PSBzaXplb2YoTU9ERV9JTkZPX0VYQ0VQ
VElPTlMpKSB7Ci0gICAgICAgIFBNT0RFX0lORk9fRVhDRVBUSU9OUyBFeGNlcHRpb25zID0gKFBN
T0RFX0lORk9fRVhDRVBUSU9OUylDdXJyZW50UGFnZTsKKyAgICAgICAgTGVuZ3RoIC0gKlNpemUg
Pj0gc2l6ZW9mKE1PREVfSU5GT19FWENFUFRJT05TKSkgeworICAgICAgICBQTU9ERV9JTkZPX0VY
Q0VQVElPTlMgRXhjZXB0aW9ucyA9IChQTU9ERV9JTkZPX0VYQ0VQVElPTlMpKChQVUNIQVIpRGF0
YSArICpTaXplKTsKKwogICAgICAgICAvLyBGaWxsIGluIEV4Y2VwdGlvbnMKLSAgICAgICAgRXhj
ZXB0aW9ucy0+UGFnZUNvZGUgICAgICAgICAgICAgICAgPSBNT0RFX1BBR0VfRkFVTFRfUkVQT1JU
SU5HOwotICAgICAgICBFeGNlcHRpb25zLT5QU0JpdCAgICAgICAgICAgICAgICAgICA9IDA7Ci0g
ICAgICAgIEV4Y2VwdGlvbnMtPlBhZ2VMZW5ndGggICAgICAgICAgICAgID0gc2l6ZW9mKE1PREVf
SU5GT19FWENFUFRJT05TKTsKLSAgICAgICAgRXhjZXB0aW9ucy0+RmxhZ3MgICAgICAgICAgICAg
ICAgICAgPSAwOwotICAgICAgICBFeGNlcHRpb25zLT5EZXhjcHQgICAgICAgICAgICAgICAgICA9
IDE7IC8vIGRpc2FibGVkCi0gICAgICAgIEV4Y2VwdGlvbnMtPlJlcG9ydE1ldGhvZCAgICAgICAg
ICAgID0gMDsKLSAgICAgICAgRXhjZXB0aW9ucy0+SW50ZXJ2YWxUaW1lclswXSAgICAgICAgPSAw
OwotICAgICAgICBFeGNlcHRpb25zLT5JbnRlcnZhbFRpbWVyWzFdICAgICAgICA9IDA7Ci0gICAg
ICAgIEV4Y2VwdGlvbnMtPkludGVydmFsVGltZXJbMl0gICAgICAgID0gMDsKLSAgICAgICAgRXhj
ZXB0aW9ucy0+SW50ZXJ2YWxUaW1lclszXSAgICAgICAgPSAwOwotICAgICAgICBFeGNlcHRpb25z
LT5SZXBvcnRDb3VudFswXSAgICAgICAgICA9IDA7Ci0gICAgICAgIEV4Y2VwdGlvbnMtPlJlcG9y
dENvdW50WzFdICAgICAgICAgID0gMDsKLSAgICAgICAgRXhjZXB0aW9ucy0+UmVwb3J0Q291bnRb
Ml0gICAgICAgICAgPSAwOwotICAgICAgICBFeGNlcHRpb25zLT5SZXBvcnRDb3VudFszXSAgICAg
ICAgICA9IDA7Ci0KLSAgICAgICAgSGVhZGVyLT5Nb2RlRGF0YUxlbmd0aCArPSBzaXplb2YoTU9E
RV9JTkZPX0VYQ0VQVElPTlMpOwotICAgICAgICBMZW5ndGhMZWZ0IC09IHNpemVvZihNT0RFX0lO
Rk9fRVhDRVBUSU9OUyk7Ci0gICAgICAgIEN1cnJlbnRQYWdlID0gKChQVUNIQVIpQ3VycmVudFBh
Z2UgKyBzaXplb2YoTU9ERV9JTkZPX0VYQ0VQVElPTlMpKTsKKyAgICAgICAgRXhjZXB0aW9ucy0+
UGFnZUNvZGUgICAgPSBNT0RFX1BBR0VfRkFVTFRfUkVQT1JUSU5HOworICAgICAgICBFeGNlcHRp
b25zLT5QYWdlTGVuZ3RoICA9IHNpemVvZihNT0RFX0lORk9fRVhDRVBUSU9OUyk7CisgICAgICAg
IEV4Y2VwdGlvbnMtPkRleGNwdCAgICAgID0gMTsgLy8gZGlzYWJsZWQKKworICAgICAgICAqTW9k
ZURhdGFMZW5ndGggKz0gc2l6ZW9mKE1PREVfSU5GT19FWENFUFRJT05TKTsKKyAgICAgICAgKlNp
emUgICAgICAgICAgICs9IHNpemVvZihNT0RFX0lORk9fRVhDRVBUSU9OUyk7CiAgICAgfQorfQor
CitzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRAorVGFyZ2V0TW9kZVNlbnNlKAorICAgIElO
ICBQWEVOVkJEX1RBUkdFVCAgICAgIFRhcmdldCwKKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9D
SyBTcmIKKyAgICApCit7CisgICAgUE1PREVfUEFSQU1FVEVSX0hFQURFUiAgRGF0YSAgPSBTcmIt
PkRhdGFCdWZmZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTGVuZ3RoID0gU3JiLT5E
YXRhVHJhbnNmZXJMZW5ndGg7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgQmxvY2tEZXNj
ckxlbmd0aCA9IDA7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTW9kZURhdGFMZW5ndGgg
PSAwOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgIFNpemU7CisKKyAgICBTcmItPlNyYlN0
YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7CisKKyAgICBpZiAoRGF0YSA9PSBOVUxMKQorICAgICAg
ICByZXR1cm47CisgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOworCisgICAgaWYgKExl
bmd0aCA8IHNpemVvZihNT0RFX1BBUkFNRVRFUl9IRUFERVIpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBIZWFkZXIKKyAgICBEYXRhLT5NZWRpdW1UeXBlICAgICAgICAgICAgICAgID0gMDsK
KyAgICBEYXRhLT5EZXZpY2VTcGVjaWZpY1BhcmFtZXRlciAgID0gRnJvbnRlbmRHZXRSZWFkT25s
eShUYXJnZXQtPkZyb250ZW5kKSA/IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1PREVfRFNQX1dSSVRFX1BST1RFQ1QgOiAwOworICAgIFNpemUg
PSBzaXplb2YoTU9ERV9QQVJBTUVURVJfSEVBREVSKTsKKworICAgIF9fVGFyZ2V0TW9kZVNlbnNl
KFRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBTcmIsCisgICAgICAgICAgICAgICAgICAg
ICAgRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgsCisgICAgICAgICAgICAgICAg
ICAgICAgJlNpemUsCisgICAgICAgICAgICAgICAgICAgICAgJk1vZGVEYXRhTGVuZ3RoLAorICAg
ICAgICAgICAgICAgICAgICAgICZCbG9ja0Rlc2NyTGVuZ3RoKTsKKyAgICBBU1NFUlQzVShNb2Rl
RGF0YUxlbmd0aCwgPD0sIDI1NSAtIChzaXplb2YoTU9ERV9QQVJBTUVURVJfSEVBREVSKSAtIDEp
KTsKKyAgICBBU1NFUlQzVShCbG9ja0Rlc2NyTGVuZ3RoLCA8PSwgMjU1KTsKKworICAgIERhdGEt
Pk1vZGVEYXRhTGVuZ3RoID0gKFVDSEFSKShNb2RlRGF0YUxlbmd0aCArIHNpemVvZihNT0RFX1BB
UkFNRVRFUl9IRUFERVIpIC0gMSk7CisgICAgRGF0YS0+QmxvY2tEZXNjcmlwdG9yTGVuZ3RoID0g
KFVDSEFSKUJsb2NrRGVzY3JMZW5ndGg7CisKKyAgICBBU1NFUlQzVShTaXplLCA8PSwgTGVuZ3Ro
KTsKKyAgICBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9IFNpemU7CisgICAgU3JiLT5TcmJTdGF0
dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7Cit9CisKK3N0YXRpYyBERUNMU1BFQ19OT0lOTElORSBW
T0lECitUYXJnZXRNb2RlU2Vuc2UxMCgKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAg
VGFyZ2V0LAorICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBTcmIKKyAgICApCit7Cisg
ICAgUE1PREVfUEFSQU1FVEVSX0hFQURFUjEwICAgIERhdGEgID0gU3JiLT5EYXRhQnVmZmVyOwor
ICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGggPSBTcmItPkRhdGFUcmFuc2Zl
ckxlbmd0aDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgQmxvY2tEZXNjckxlbmd0
aCA9IDA7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIE1vZGVEYXRhTGVuZ3RoID0g
MDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgU2l6ZTsKKworICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsKKworICAgIGlmIChEYXRhID09IE5VTEwpCisgICAg
ICAgIHJldHVybjsKKyAgICBSdGxaZXJvTWVtb3J5KERhdGEsIExlbmd0aCk7CisKKyAgICBpZiAo
TGVuZ3RoIDwgc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0hFQURFUjEwKSkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgLy8gRmluaXNoIHRoaXMgU1JCCisgICAgLy8gSGVhZGVyCisgICAgRGF0YS0+TWVk
aXVtVHlwZSAgICAgICAgICAgICAgICA9IDA7CisgICAgRGF0YS0+RGV2aWNlU3BlY2lmaWNQYXJh
bWV0ZXIgICA9IEZyb250ZW5kR2V0UmVhZE9ubHkoVGFyZ2V0LT5Gcm9udGVuZCkgPyAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNT0RFX0RTUF9X
UklURV9QUk9URUNUIDogMDsKKyAgICBTaXplID0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0hFQURF
UjEwKTsKKworICAgIF9fVGFyZ2V0TW9kZVNlbnNlKFRhcmdldCwKKyAgICAgICAgICAgICAgICAg
ICAgICBTcmIsCisgICAgICAgICAgICAgICAgICAgICAgRGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICBMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgJlNpemUsCisgICAgICAgICAgICAg
ICAgICAgICAgJk1vZGVEYXRhTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICZCbG9ja0Rl
c2NyTGVuZ3RoKTsKKyAgICBBU1NFUlQzVShNb2RlRGF0YUxlbmd0aCwgPD0sIDY1NTM1IC0gKHNp
emVvZihNT0RFX1BBUkFNRVRFUl9IRUFERVIxMCkgLSAyKSk7CisgICAgQVNTRVJUM1UoQmxvY2tE
ZXNjckxlbmd0aCwgPD0sIDY1NTM1KTsKKworICAgICooUFVTSE9SVClEYXRhLT5Nb2RlRGF0YUxl
bmd0aCA9IF9ieXRlc3dhcF91c2hvcnQoKFVTSE9SVClNb2RlRGF0YUxlbmd0aCArIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1P
REVfUEFSQU1FVEVSX0hFQURFUjEwKSAtIDIpOworICAgICooUFVTSE9SVClEYXRhLT5CbG9ja0Rl
c2NyaXB0b3JMZW5ndGggPSBfYnl0ZXN3YXBfdXNob3J0KChVU0hPUlQpQmxvY2tEZXNjckxlbmd0
aCk7CisKKyAgICBBU1NFUlQzVShTaXplLCA8PSwgTGVuZ3RoKTsKKyAgICBTcmItPkRhdGFUcmFu
c2Zlckxlbmd0aCA9IFNpemU7CiAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NF
U1M7Ci0gICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPSBfX21pbihDZGJfQWxsb2NhdGlvbkxl
bmd0aChTcmIpLCAoVUxPTkcpKEhlYWRlci0+TW9kZURhdGFMZW5ndGggKyAxKSk7CiB9CiAKIHN0
YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lECiBUYXJnZXRSZXF1ZXN0U2Vuc2UoCi0gICAgX19p
biBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19pbiBQU0NTSV9SRVFV
RVNUX0JMT0NLICAgICBTcmIKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQsCisg
ICAgSU4gIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiCiAgICAgKQogewotICAgIFBTRU5TRV9EQVRB
ICAgICAgICAgU2Vuc2UgPSBTcmItPkRhdGFCdWZmZXI7CisgICAgUFNFTlNFX0RBVEEgICAgICAg
ICAgICAgRGF0YSA9IFNyYi0+RGF0YUJ1ZmZlcjsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICBMZW5ndGggPSBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aDsKIAogICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoVGFyZ2V0KTsKIAotICAgIGlmICghX19WYWxpZGF0ZVNyYkJ1ZmZlcihfX0ZVTkNU
SU9OX18sIFNyYiwgKFVMT05HKXNpemVvZihTRU5TRV9EQVRBKSkpIHsKLSAgICAgICAgU3JiLT5T
Y3NpU3RhdHVzID0gMHg0MDsKLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0RB
VEFfT1ZFUlJVTjsKKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7CisKKyAg
ICBpZiAoRGF0YSA9PSBOVUxMKQogICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIFJ0bFplcm9N
ZW1vcnkoRGF0YSwgTGVuZ3RoKTsKIAotICAgIFJ0bFplcm9NZW1vcnkoU2Vuc2UsIHNpemVvZihT
RU5TRV9EQVRBKSk7CisgICAgaWYgKExlbmd0aCA8IHNpemVvZihTRU5TRV9EQVRBKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgRGF0YS0+RXJyb3JDb2RlICAgICAgICAgICAgPSAweDcwOworICAg
IERhdGEtPlZhbGlkICAgICAgICAgICAgICAgID0gMTsKKyAgICBEYXRhLT5BZGRpdGlvbmFsU2Vu
c2VDb2RlUXVhbGlmaWVyID0gMDsKKyAgICBEYXRhLT5TZW5zZUtleSAgICAgICAgICAgICA9IFND
U0lfU0VOU0VfTk9fU0VOU0U7CisgICAgRGF0YS0+QWRkaXRpb25hbFNlbnNlQ29kZSAgPSBTQ1NJ
X0FEU0VOU0VfTk9fU0VOU0U7CiAKLSAgICBTZW5zZS0+RXJyb3JDb2RlICAgICAgICAgICAgPSAw
eDcwOwotICAgIFNlbnNlLT5WYWxpZCAgICAgICAgICAgICAgICA9IDE7Ci0gICAgU2Vuc2UtPkFk
ZGl0aW9uYWxTZW5zZUNvZGVRdWFsaWZpZXIgPSAwOwotICAgIFNlbnNlLT5TZW5zZUtleSAgICAg
ICAgICAgICA9IFNDU0lfU0VOU0VfTk9fU0VOU0U7Ci0gICAgU2Vuc2UtPkFkZGl0aW9uYWxTZW5z
ZUNvZGUgID0gU0NTSV9BRFNFTlNFX05PX1NFTlNFOwogICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVu
Z3RoICAgICA9IHNpemVvZihTRU5TRV9EQVRBKTsKICAgICBTcmItPlNyYlN0YXR1cyAgICAgICAg
ICAgICAgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7CiB9CiAKIHN0YXRpYyBERUNMU1BFQ19OT0lOTElO
RSBWT0lECiBUYXJnZXRSZXBvcnRMdW5zKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAg
ICAgICAgVGFyZ2V0LAotICAgIF9faW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiCisgICAg
SU4gIFBYRU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0LAorICAgIElOICBQU0NTSV9SRVFVRVNUX0JM
T0NLIFNyYgogICAgICkKIHsKLSAgICBVTE9ORyAgICAgICAgICAgTGVuZ3RoOwotICAgIFVMT05H
ICAgICAgICAgICBPZmZzZXQ7Ci0gICAgVUxPTkcgICAgICAgICAgIEFsbG9jTGVuZ3RoID0gQ2Ri
X0FsbG9jYXRpb25MZW5ndGgoU3JiKTsKLSAgICBQVUNIQVIgICAgICAgICAgQnVmZmVyID0gU3Ji
LT5EYXRhQnVmZmVyOworICAgIFBMVU5fTElTVCAgICAgICAgICAgICAgIERhdGEgPSBTcmItPkRh
dGFCdWZmZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTGVuZ3RoID0gU3JiLT5EYXRh
VHJhbnNmZXJMZW5ndGg7CiAKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKFRhcmdldCk7CiAK
LSAgICBpZiAoIV9fVmFsaWRhdGVTcmJCdWZmZXIoX19GVU5DVElPTl9fLCBTcmIsIDgpKSB7Ci0g
ICAgICAgIFNyYi0+U2NzaVN0YXR1cyA9IDB4NDA7Ci0gICAgICAgIFNyYi0+U3JiU3RhdHVzID0g
U1JCX1NUQVRVU19EQVRBX09WRVJSVU47Ci0gICAgICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3Ro
ID0gMDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJ0bFplcm9NZW1vcnkoQnVmZmVy
LCBBbGxvY0xlbmd0aCk7Ci0KLSAgICBMZW5ndGggPSAwOwotICAgIE9mZnNldCA9IDg7CisgICAg
U3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOwogCi0gICAgaWYgKE9mZnNldCArIDgg
PD0gQWxsb2NMZW5ndGgpIHsKLSAgICAgICAgQnVmZmVyW09mZnNldF0gPSAwOwotICAgICAgICBP
ZmZzZXQgKz0gODsKLSAgICAgICAgTGVuZ3RoICs9IDg7Ci0gICAgfQorICAgIGlmIChEYXRhID09
IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBSdGxaZXJvTWVtb3J5KERhdGEsIExlbmd0aCk7
CiAKLSAgICBpZiAoT2Zmc2V0ICsgOCA8PSBBbGxvY0xlbmd0aCkgewotICAgICAgICBCdWZmZXJb
T2Zmc2V0XSA9IFhFTlZCRF9NQVhfVEFSR0VUUzsKLSAgICAgICAgT2Zmc2V0ICs9IDg7Ci0gICAg
ICAgIExlbmd0aCArPSA4OwotICAgIH0KKyAgICBpZiAoTGVuZ3RoIDwgMTYpCisgICAgICAgIHJl
dHVybjsKIAotICAgIFJFVkVSU0VfQllURVMoQnVmZmVyLCAmTGVuZ3RoKTsKKyAgICAvLyBVQ0hB
Uls0XSBAIERhdGEKKyAgICAqKFBVTE9ORylEYXRhLT5MdW5MaXN0TGVuZ3RoID0gX2J5dGVzd2Fw
X3Vsb25nKDgpOworICAgIC8vIFVDSEFSWzhdIEAgRGF0YSArIDgKKyAgICAqKFBVTE9ORzY0KURh
dGEtPkx1blswXSA9IF9ieXRlc3dhcF91aW50NjQoWEVOVkJEX01BWF9UQVJHRVRTKTsKIAotICAg
IFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gX19taW4oTGVuZ3RoLCBBbGxvY0xlbmd0aCk7Cisg
ICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPSAxNjsKICAgICBTcmItPlNyYlN0YXR1cyA9IFNS
Ql9TVEFUVVNfU1VDQ0VTUzsKIH0KIAogc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZPSUQKIFRh
cmdldFJlYWRDYXBhY2l0eSgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRh
cmdldCwKLSAgICBfX2luIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgICAgIFNyYgorICAgIElOICBQWEVO
VkJEX1RBUkdFVCAgICAgIFRhcmdldCwKKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIK
ICAgICApCiB7Ci0gICAgUFJFQURfQ0FQQUNJVFlfREFUQSAgICAgQ2FwYWNpdHkgPSBTcmItPkRh
dGFCdWZmZXI7CisgICAgUFJFQURfQ0FQQUNJVFlfREFUQSAgICAgRGF0YSA9IFNyYi0+RGF0YUJ1
ZmZlcjsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBMZW5ndGggPSBTcmItPkRhdGFUcmFu
c2Zlckxlbmd0aDsKICAgICBQWEVOVkJEX0RJU0tJTkZPICAgICAgICBEaXNrSW5mbyA9IEZyb250
ZW5kR2V0RGlza0luZm8oVGFyZ2V0LT5Gcm9udGVuZCk7CiAgICAgVUxPTkc2NCAgICAgICAgICAg
ICAgICAgU2VjdG9yQ291bnQ7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2VjdG9yU2l6
ZTsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBMYXN0QmxvY2s7CiAKLSAgICBpZiAoQ2Ri
X1BNSShTcmIpID09IDAgJiYgQ2RiX0xvZ2ljYWxCbG9jayhTcmIpICE9IDApIHsKLSAgICAgICAg
U3JiLT5TY3NpU3RhdHVzID0gMHgwMjsgLy8gQ0hFQ0tfQ09ORElUSU9OCisgICAgU3JiLT5TcmJT
dGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOworCisgICAgaWYgKERhdGEgPT0gTlVMTCkKKyAgICAg
ICAgcmV0dXJuOworICAgIFJ0bFplcm9NZW1vcnkoRGF0YSwgTGVuZ3RoKTsKKworICAgIGlmIChM
ZW5ndGggPCBzaXplb2YoUkVBRF9DQVBBQ0lUWV9EQVRBKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKENkYl9QTUkoU3JiKSA9PSAwICYmIENkYl9Mb2dpY2FsQmxvY2soU3JiKSAhPSAwKQog
ICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgU2VjdG9yQ291bnQgPSBEaXNrSW5mby0+U2Vj
dG9yQ291bnQ7CiAgICAgU2VjdG9yU2l6ZSA9IERpc2tJbmZvLT5TZWN0b3JTaXplOwpAQCAtNTM1
LDIxICs1NjYsMjEgQEAgVGFyZ2V0UmVhZENhcGFjaXR5KAogICAgIGVsc2UKICAgICAgICAgTGFz
dEJsb2NrID0gfihVTE9ORykwOwogCi0gICAgaWYgKENhcGFjaXR5KSB7Ci0gICAgICAgIENhcGFj
aXR5LT5Mb2dpY2FsQmxvY2tBZGRyZXNzID0gX2J5dGVzd2FwX3Vsb25nKExhc3RCbG9jayk7Ci0g
ICAgICAgIENhcGFjaXR5LT5CeXRlc1BlckJsb2NrID0gX2J5dGVzd2FwX3Vsb25nKFNlY3RvclNp
emUpOwotICAgIH0KKyAgICBEYXRhLT5Mb2dpY2FsQmxvY2tBZGRyZXNzID0gX2J5dGVzd2FwX3Vs
b25nKExhc3RCbG9jayk7CisgICAgRGF0YS0+Qnl0ZXNQZXJCbG9jayA9IF9ieXRlc3dhcF91bG9u
ZyhTZWN0b3JTaXplKTsKIAorICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gc2l6ZW9mKFJF
QURfQ0FQQUNJVFlfREFUQSk7CiAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NF
U1M7CiB9CiAKIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lECiBUYXJnZXRSZWFkQ2FwYWNp
dHkxNigKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBf
X2luIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgICAgIFNyYgorICAgIElOICBQWEVOVkJEX1RBUkdFVCAg
ICAgIFRhcmdldCwKKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIKICAgICApCiB7Ci0g
ICAgUFJFQURfQ0FQQUNJVFkxNl9EQVRBICAgQ2FwYWNpdHkgPSBTcmItPkRhdGFCdWZmZXI7Cisg
ICAgUFJFQURfQ0FQQUNJVFkxNl9EQVRBICAgRGF0YSA9IFNyYi0+RGF0YUJ1ZmZlcjsKKyAgICBV
TE9ORyAgICAgICAgICAgICAgICAgICBMZW5ndGggPSBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aDsK
ICAgICBQWEVOVkJEX0RJU0tJTkZPICAgICAgICBEaXNrSW5mbyA9IEZyb250ZW5kR2V0RGlza0lu
Zm8oVGFyZ2V0LT5Gcm9udGVuZCk7CiAgICAgVUxPTkc2NCAgICAgICAgICAgICAgICAgU2VjdG9y
Q291bnQ7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2VjdG9yU2l6ZTsKQEAgLTU1Nywx
MCArNTg4LDE3IEBAIFRhcmdldFJlYWRDYXBhY2l0eTE2KAogICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgIExvZ2ljYWxQZXJQaHlzaWNhbDsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBM
b2dpY2FsUGVyUGh5c2ljYWxFeHBvbmVudDsKIAotICAgIGlmIChDZGJfUE1JKFNyYikgPT0gMCAm
JiBDZGJfTG9naWNhbEJsb2NrKFNyYikgIT0gMCkgewotICAgICAgICBTcmItPlNjc2lTdGF0dXMg
PSAweDAyOyAvLyBDSEVDS19DT05ESVRJT04KKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFU
VVNfRVJST1I7CisKKyAgICBpZiAoRGF0YSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAg
UnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOworCisgICAgaWYgKExlbmd0aCA8IHNpemVvZihS
RUFEX0NBUEFDSVRZMTZfREFUQSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChDZGJfUE1J
KFNyYikgPT0gMCAmJiBDZGJfTG9naWNhbEJsb2NrKFNyYikgIT0gMCkKICAgICAgICAgcmV0dXJu
OwotICAgIH0KIAogICAgIFNlY3RvckNvdW50ID0gRGlza0luZm8tPlNlY3RvckNvdW50OwogICAg
IFNlY3RvclNpemUgPSBEaXNrSW5mby0+U2VjdG9yU2l6ZTsKQEAgLTU3MSwxMiArNjA5LDExIEBA
IFRhcmdldFJlYWRDYXBhY2l0eTE2KAogICAgIGlmICghX0JpdFNjYW5SZXZlcnNlKCZMb2dpY2Fs
UGVyUGh5c2ljYWxFeHBvbmVudCwgTG9naWNhbFBlclBoeXNpY2FsKSkKICAgICAgICAgTG9naWNh
bFBlclBoeXNpY2FsRXhwb25lbnQgPSAwOwogCi0gICAgaWYgKENhcGFjaXR5KSB7Ci0gICAgICAg
IENhcGFjaXR5LT5Mb2dpY2FsQmxvY2tBZGRyZXNzLlF1YWRQYXJ0ID0gX2J5dGVzd2FwX3VpbnQ2
NChTZWN0b3JDb3VudCAtIDEpOwotICAgICAgICBDYXBhY2l0eS0+Qnl0ZXNQZXJCbG9jayA9IF9i
eXRlc3dhcF91bG9uZyhTZWN0b3JTaXplKTsKLSAgICAgICAgQ2FwYWNpdHktPkxvZ2ljYWxQZXJQ
aHlzaWNhbEV4cG9uZW50ID0gKFVDSEFSKUxvZ2ljYWxQZXJQaHlzaWNhbEV4cG9uZW50OwotICAg
IH0KKyAgICBEYXRhLT5Mb2dpY2FsQmxvY2tBZGRyZXNzLlF1YWRQYXJ0ID0gX2J5dGVzd2FwX3Vp
bnQ2NChTZWN0b3JDb3VudCAtIDEpOworICAgIERhdGEtPkJ5dGVzUGVyQmxvY2sgPSBfYnl0ZXN3
YXBfdWxvbmcoU2VjdG9yU2l6ZSk7CisgICAgRGF0YS0+TG9naWNhbFBlclBoeXNpY2FsRXhwb25l
bnQgPSAoVUNIQVIpTG9naWNhbFBlclBoeXNpY2FsRXhwb25lbnQ7CiAKKyAgICBTcmItPkRhdGFU
cmFuc2Zlckxlbmd0aCA9IHNpemVvZihSRUFEX0NBUEFDSVRZMTZfREFUQSk7CiAgICAgU3JiLT5T
cmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7CiB9CiAKQEAgLTU5Miw2ICs2MjksMTEgQEAg
VGFyZ2V0SW5xdWlyeVN0ZCgKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKFRhcmdldCk7CiAK
ICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7CisKKyAgICBpZiAoRGF0YSA9
PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgp
OworCiAgICAgaWYgKExlbmd0aCA8IElOUVVJUllEQVRBQlVGRkVSU0laRSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC02MjEsOSArNjYzLDEyIEBAIFRhcmdldElucXVpcnkwMCgKIAogICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoVGFyZ2V0KTsKIAorICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NU
QVRVU19FUlJPUjsKKworICAgIGlmIChEYXRhID09IE5VTEwpCisgICAgICAgIHJldHVybjsKICAg
ICBSdGxaZXJvTWVtb3J5KERhdGEsIExlbmd0aCk7CiAKLSAgICBTcmItPlNyYlN0YXR1cyA9IFNS
Ql9TVEFUVVNfRVJST1I7CiAgICAgaWYgKExlbmd0aCA8IDcpCiAgICAgICAgIHJldHVybjsKIApA
QCAtNjQ3LDE4ICs2OTIsMTggQEAgVGFyZ2V0SW5xdWlyeTgwKAogICAgIFBWT0lEICAgICAgICAg
ICAgICAgICAgIFBhZ2U7CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2l6ZTsKIAotICAg
IFBhZ2UgPSBGcm9udGVuZEdldElucXVpcnlPdmVycmlkZShUYXJnZXQtPkZyb250ZW5kLCAweDgw
LCAmU2l6ZSk7CisgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOwogCisgICAg
aWYgKERhdGEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOwogICAgIFJ0bFplcm9NZW1vcnkoRGF0
YSwgTGVuZ3RoKTsKIAotICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsKKyAg
ICBQYWdlID0gRnJvbnRlbmRHZXRJbnF1aXJ5T3ZlcnJpZGUoVGFyZ2V0LT5Gcm9udGVuZCwgMHg4
MCwgJlNpemUpOwogICAgIGlmIChQYWdlICYmIFNpemUpIHsKICAgICAgICAgaWYgKExlbmd0aCA8
IFNpemUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgUnRsQ29weU1lbW9yeShEYXRh
LCBQYWdlLCBTaXplKTsKLQotICAgICAgICBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9IFNpemU7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgQ0hBUiAgICAgICAgICAgICAgICBTZXJpYWxbNV07CiAK
QEAgLTY3Myw5ICs3MTgsMTAgQEAgVGFyZ2V0SW5xdWlyeTgwKAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCkpOwogICAgICAgICBSdGxD
b3B5TWVtb3J5KERhdGEtPlNlcmlhbE51bWJlciwgU2VyaWFsLCA0KTsKIAotICAgICAgICBTcmIt
PkRhdGFUcmFuc2Zlckxlbmd0aCA9IHNpemVvZihWUERfU0VSSUFMX05VTUJFUl9QQUdFKSArIDQ7
CisgICAgICAgIFNpemUgPSBzaXplb2YoVlBEX1NFUklBTF9OVU1CRVJfUEFHRSkgKyA0OwogICAg
IH0KIAorICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gU2l6ZTsKICAgICBTcmItPlNyYlN0
YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsKIH0KIApAQCAtNjkwLDE4ICs3MzYsMTggQEAgVGFy
Z2V0SW5xdWlyeTgzKAogICAgIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICBQYWdlOwogICAg
IFVMT05HICAgICAgICAgICAgICAgICAgICAgICBTaXplOwogCi0gICAgUGFnZSA9IEZyb250ZW5k
R2V0SW5xdWlyeU92ZXJyaWRlKFRhcmdldC0+RnJvbnRlbmQsIDB4ODMsICZTaXplKTsKKyAgICBT
cmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7CiAKKyAgICBpZiAoRGF0YSA9PSBOVUxM
KQorICAgICAgICByZXR1cm47CiAgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOwogCi0g
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOworICAgIFBhZ2UgPSBGcm9udGVu
ZEdldElucXVpcnlPdmVycmlkZShUYXJnZXQtPkZyb250ZW5kLCAweDgzLCAmU2l6ZSk7CiAgICAg
aWYgKFBhZ2UgJiYgU2l6ZSkgewogICAgICAgICBpZiAoTGVuZ3RoIDwgU2l6ZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBSdGxDb3B5TWVtb3J5KERhdGEsIFBhZ2UsIFNpemUpOwot
Ci0gICAgICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gU2l6ZTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBQVlBEX0lERU5USUZJQ0FUSU9OX0RFU0NSSVBUT1IgIElkID0gKFBWUERfSURFTlRJ
RklDQVRJT05fREVTQ1JJUFRPUikmRGF0YS0+RGVzY3JpcHRvcnNbMF07CiAgICAgICAgIENIQVIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWRlbnRpZmllclsxN107CkBAIC03MjIsMTAgKzc2
OCwxMSBAQCBUYXJnZXRJbnF1aXJ5ODMoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7CiAgICAgICAgIFJ0bENvcHlNZW1vcnkoSWQt
PklkZW50aWZpZXIsIElkZW50aWZpZXIsIDE2KTsKIAotICAgICAgICBTcmItPkRhdGFUcmFuc2Zl
ckxlbmd0aCA9IHNpemVvZihWUERfSURFTlRJRklDQVRJT05fUEFHRSkgKwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihWUERfSURFTlRJRklDQVRJT05fREVTQ1JJUFRP
UikgKyAxNjsKKyAgICAgICAgU2l6ZSA9IHNpemVvZihWUERfSURFTlRJRklDQVRJT05fUEFHRSkg
KworICAgICAgICAgICAgICAgc2l6ZW9mKFZQRF9JREVOVElGSUNBVElPTl9ERVNDUklQVE9SKSAr
IDE2OwogICAgIH0KIAorICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gU2l6ZTsKICAgICBT
cmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsKIH0KIApAQCAtODQ1LDYgKzg5Miwx
MCBAQCBUYXJnZXRTdGFydElvKAogICAgICAgICBUYXJnZXRNb2RlU2Vuc2UoVGFyZ2V0LCBTcmIp
OwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgU0NTSU9QX01PREVfU0VOU0UxMDoKKyAgICAg
ICAgVGFyZ2V0TW9kZVNlbnNlMTAoVGFyZ2V0LCBTcmIpOworICAgICAgICBicmVhazsKKwogICAg
IGNhc2UgU0NTSU9QX1JFUVVFU1RfU0VOU0U6CiAgICAgICAgIFRhcmdldFJlcXVlc3RTZW5zZShU
YXJnZXQsIFNyYik7CiAgICAgICAgIGJyZWFrOwotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl
Y3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:27:47 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:27:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6edk-0005OP-Le; Mon, 23 Oct 2017 15:27:44 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6edj-0005OJ-0C
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:27:43 +0000
Received: from [193.109.254.147] by server-8.bemta-6.messagelabs.com id
 79/1B-13910-E6A0EE95; Mon, 23 Oct 2017 15:27:42 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLLMWRWlGSWpSXmKPExsXitHSDvW4u17t
 Ig80XdSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxonmq+wF17grJr08ytbA+Iyji5GTQ0LAX+L8
 2jvsIDabgI7E1KeXWEFsEQF1iX2ftzKB2MwCWhINE5eA2cICjhJLrneA1bMIqErcvdINZvMKu
 ElserCXuYuRA2imnET3TjeQsJCAisT6qbPYIEoEJU7OfMICMVJC4uCLF8wTGLlnIUnNQpJawM
 i0ilGjOLWoLLVI18hCL6koMz2jJDcxM0fX0MBMLze1uDgxPTUnMalYLzk/dxMjMBAYgGAH4/m
 1gYcYJTmYlER5f+e8jRTiS8pPqcxILM6ILyrNSS0+xCjDwaEkwbuC812kkGBRanpqRVpmDjAk
 YdISHDxKIrycHEBp3uKCxNzizHSI1ClGY46Om3f/MHE8m/m6gVmIJS8/L1VKnLcWZJIASGlGa
 R7cIFisXGKUlRLmZQQ6TYinILUoN7MEVf4VozgHo5Iw7zqQKTyZeSVw+14BncIEdIqs/RuQU0
 oSEVJSDYy8T5YHpfmqaHxJt33TeqDZi+97HANzYqafptKSVZPN673PlG1Jmpynz7/5rrYj/z+
 RfyenZzaEzb31YG5lqeub2PZlevGWxqtEf14M8XU4v/EWW4ZQZKOexuSH/zrXfCjTNrlcoJs0
 Z8XuvY9tuw/O8Be8IVobZyW2qynqZJtX5aOka0L6RUosxRmJhlrMRcWJAKNZSF6QAgAA
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1508772459!89798139!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 48259 invoked from network); 23 Oct 2017 15:27:41 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:27:41 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="455577513"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 23 Oct 2017 16:26:35 +0100
Message-ID: <1508772397-2513-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Fix EvtchnSend functions to match
	prototypes
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIG1ldGhvZCBwcm90b3R5cGVzIGluIHRoZSBYRU5CVVNfRVZUQ0hOIGludGVyZmFjZSB2b2lk
LCBzbyB0aGUKaW1wbGVtZW50YXRpb25zIHNob3VsZCBiZSB2b2lkIGZ1bmN0aW9ucy4KClNpZ25l
ZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogc3Jj
L3hlbmJ1cy9ldnRjaG4uYyB8IDIxICsrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n
ZWQsIDUgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hl
bmJ1cy9ldnRjaG4uYyBiL3NyYy94ZW5idXMvZXZ0Y2huLmMKaW5kZXggZjlmOTVjOS4uYWY5NjM0
MSAxMDA2NDQKLS0tIGEvc3JjL3hlbmJ1cy9ldnRjaG4uYworKysgYi9zcmMveGVuYnVzL2V2dGNo
bi5jCkBAIC03OTIsNDQgKzc5MiwzMyBAQCBFdnRjaG5Vbm1hc2tWZXJzaW9uMSgKICAgICByZXR1
cm4gRkFMU0U7CiB9CiAKLXN0YXRpYyBOVFNUQVRVUworc3RhdGljIFZPSUQKIEV2dGNoblNlbmQo
CiAgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKICAgICBJTiAgUFhF
TkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbAogICAgICkKIHsKLSAgICBOVFNUQVRVUyAgICAg
ICAgICAgICAgICAgICAgc3RhdHVzOwotCiAgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihJbnRl
cmZhY2UpOwogCiAgICAgQVNTRVJUM1UoQ2hhbm5lbC0+TWFnaWMsID09LCBYRU5CVVNfRVZUQ0hO
X0NIQU5ORUxfTUFHSUMpOwogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA+PSwg
RElTUEFUQ0hfTEVWRUwpOwogCi0gICAgc3RhdHVzID0gU1RBVFVTX1VOU1VDQ0VTU0ZVTDsKLSAg
ICBpZiAoIUNoYW5uZWwtPkFjdGl2ZSkKLSAgICAgICAgZ290byBkb25lOwotCi0gICAgc3RhdHVz
ID0gRXZlbnRDaGFubmVsU2VuZChDaGFubmVsLT5Mb2NhbFBvcnQpOwotCi1kb25lOgotICAgIHJl
dHVybiBzdGF0dXM7CisgICAgaWYgKENoYW5uZWwtPkFjdGl2ZSkKKyAgICAgICAgKFZPSUQpIEV2
ZW50Q2hhbm5lbFNlbmQoQ2hhbm5lbC0+TG9jYWxQb3J0KTsKIH0KIAotc3RhdGljIE5UU1RBVFVT
CitzdGF0aWMgVk9JRAogRXZ0Y2huU2VuZFZlcnNpb24xKAogICAgIElOICBQSU5URVJGQUNFICAg
ICAgICAgICAgICBJbnRlcmZhY2UsCiAgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENo
YW5uZWwKICAgICApCiB7CiAgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgICAgIElycWw7Ci0g
ICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgIEtlUmFpc2VJcnFs
KERJU1BBVENIX0xFVkVMLCAmSXJxbCk7Ci0gICAgc3RhdHVzID0gRXZ0Y2huU2VuZChJbnRlcmZh
Y2UsIENoYW5uZWwpOworICAgIEV2dGNoblNlbmQoSW50ZXJmYWNlLCBDaGFubmVsKTsKICAgICBL
ZUxvd2VySXJxbChJcnFsKTsKLQotICAgIHJldHVybiBzdGF0dXM7CiB9CiAKIHN0YXRpYyBWT0lE
Ci0tIAoyLjUuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:27:47 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:27:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6edn-0005Op-Mv; Mon, 23 Oct 2017 15:27:47 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6edm-0005OZ-OW
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:27:46 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 81/03-11148-17A0EE95; Mon, 23 Oct 2017 15:27:45 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXitHRDpG4h17t
 Ig01bZC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxsxpPUwF6zgrGo/eY25gbGTvYuTgkBDwl/jV
 ld3FyMnBJqAjMfXpJVYQW0RAXWLf561MIDazgJZEw8QlYLawgLFE15v7jCA2i4CqxNZ1+5hBb
 F4BN4mHpw+xQoyUk+je6QYS5hRwl+ic1QJWIgRU8ufKTDYIW0Vi/dRZbBCtghInZz5hgVglIX
 HwxQvmCYy8s5CkZiFJLWBkWsWoUZxaVJZapGtorJdUlJmeUZKbmJmja2hgqpebWlycmJ6ak5h
 UrJecn7uJERg2DECwg/HfNs9DjJIcTEqivL9z3kYK8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuBd
 wfkuUkiwKDU9tSItMwcYwDBpCQ4eJRFeTg6gNG9xQWJucWY6ROoUozFHx827f5g4ns183cAsx
 JKXn5cqJc5bCzJJAKQ0ozQPbhAssi4xykoJ8zICnSbEU5BalJtZgir/ilGcg1FJmPcVyBSezL
 wSuH2vgE5hAjpF1v4NyCkliQgpqQbGAoX3M6JP/n7w7Lp1R3RCwpFT2UXZjVmbHXboar5gm9y
 1cRbLSbcpgew83MUXiqbWH7BLM5WdUPLbZpfXNU1x9te37knGLGh1PrvyW+0tlnPu3+tnOxQ4
 pLdk6momh/Ytndt22YVX86hfv1loLc/HpgWrF89s1PZReR3lKK9pfNx2779ijwAlluKMREMt5
 qLiRAAA7SbDpwIAAA==
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1508772463!79823661!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1580 invoked from network); 23 Oct 2017 15:27:45 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:27:45 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="447694806"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 23 Oct 2017 16:26:36 +0100
Message-ID: <1508772397-2513-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
In-Reply-To: <1508772397-2513-1-git-send-email-paul.durrant@citrix.com>
References: <1508772397-2513-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Remove unused static functions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlc2Ugc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIHdoZW4gdGhlIG9sZCB2ZXJzaW9ucyBvZiB0
aGUgWEVOQlVTX0VWVENITgppbnRlcmZhY2Ugd2VyZSByZXRpcmVkLgoKU2lnbmVkLW9mZi1ieTog
UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBzcmMveGVuYnVzL2V2
dGNobi5jIHwgMjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbmJ1cy9ldnRjaG4uYyBiL3NyYy94ZW5i
dXMvZXZ0Y2huLmMKaW5kZXggYWY5NjM0MS4uMmFjMTkyZCAxMDA2NDQKLS0tIGEvc3JjL3hlbmJ1
cy9ldnRjaG4uYworKysgYi9zcmMveGVuYnVzL2V2dGNobi5jCkBAIC03MjcsMTggKzcyNyw2IEBA
IGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLXN0YXRpYyBOVFNUQVRVUwotRXZ0Y2hu
QmluZFZlcnNpb24yKAotICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2Us
Ci0gICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5uZWwsCi0gICAgSU4gIFVMT05H
ICAgICAgICAgICAgICAgICAgIENwdQotICAgICkKLXsKLSAgICBBU1NFUlQzVShDcHUsIDwsIE1B
WElNVU1fUFJPQ0VTU09SUyk7Ci0KLSAgICByZXR1cm4gRXZ0Y2huQmluZChJbnRlcmZhY2UsIENo
YW5uZWwsIDAsIChDSEFSKUNwdSk7Ci19Ci0KIHN0YXRpYyBWT0lECiBFdnRjaG5Vbm1hc2soCiAg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKQEAgLTc4MCwxOCArNzY4
LDYgQEAgZG9uZToKICAgICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJkNoYW5uZWwtPkxvY2ssIEly
cWwpOwogfQogCi1zdGF0aWMgQk9PTEVBTgotRXZ0Y2huVW5tYXNrVmVyc2lvbjEoCi0gICAgSU4g
IFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKLSAgICBJTiAgUFhFTkJVU19FVlRD
SE5fQ0hBTk5FTCAgQ2hhbm5lbCwKLSAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgSW5V
cGNhbGwKLSAgICApCi17Ci0gICAgRXZ0Y2huVW5tYXNrKEludGVyZmFjZSwgQ2hhbm5lbCwgSW5V
cGNhbGwpOwotCi0gICAgcmV0dXJuIEZBTFNFOwotfQotCiBzdGF0aWMgVk9JRAogRXZ0Y2huU2Vu
ZCgKICAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgSW50ZXJmYWNlLAotLSAKMi41LjMK
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYt
ZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYt
ZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:27:48 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:27:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6edo-0005PH-OB; Mon, 23 Oct 2017 15:27:48 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6edn-0005Of-M0
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:27:47 +0000
Received: from [85.158.139.211] by server-3.bemta-5.messagelabs.com id
 6C/25-29298-27A0EE95; Mon, 23 Oct 2017 15:27:46 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRWlGSWpSXmKPExsXitHRDpG4R17t
 Ig8WTRCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxr7fu9kLJidWvOrZztLAuM+1i5GTQ0LAX6Kz
 4TwziM0moCMx9eklVhBbREBdYt/nrUwgNrOAlkTDxCVANgeHsICdxO+POSBhFgFVieZ9P8FKe
 AXcJPafm80OUiIhICfRvdMNJMwp4C7ROasFbLoQUMmfKzPZIGwVifVTZ7FBtApKnJz5hAVik4
 TEwRcvmCcw8s5CkpqFJLWAkWkVo0ZxalFZapGuobFeUlFmekZJbmJmjq6hgalebmpxcWJ6ak5
 iUrFecn7uJkZg2DAAwQ7Gf9s8DzFKcjApifL+znkbKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC
 dwXnu0ghwaLU9NSKtMwcYADDpCU4eJREeDk5gNK8xQWJucWZ6RCpU4zGHB037/5h4ng283UDs
 xBLXn5eqpQ4by3IJAGQ0ozSPLhBsMi6xCgrJczLCHSaEE9BalFuZgmq/CtGcQ5GJWHeVyBTeD
 LzSuD2vQI6hQnoFFn7NyCnlCQipKQaGOeuMZ2lmuM464g0n0DH3+dvAv+X2Vyu5ZF9KbzV799
 Dc5ep3zOV7zzlLBZPnvBqYRJX1LOikNDNrdfqc/51LTpy8+7eD1d/ZcnY7TCYbb3YXov/eZL0
 FY178hsiqzkmOSQXnrCU1/EuOKBm6ce8SfJ64LGTG5TznP+kLHzr/Xj/hSCRPwxc6kosxRmJh
 lrMRcWJABdbvSanAgAA
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-206.messagelabs.com!1508772463!79823661!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 1673 invoked from network); 23 Oct 2017 15:27:45 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:27:45 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="447694807"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 23 Oct 2017 16:26:37 +0100
Message-ID: <1508772397-2513-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
In-Reply-To: <1508772397-2513-1-git-send-email-paul.durrant@citrix.com>
References: <1508772397-2513-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Partially revert "Simplify EVTCHN Unmask"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhpcyBwYXJ0aWFsbHkgcmV2ZXJ0cyBjb21taXQgM2FkMDJjY2M2YzY4LCB3aGljaCByZW1vdmVk
IHRoZSBwb3NzaWJpbGl0eQp0aGF0IHVubWFza2luZyBhbiBldmVudCBjaGFubmVsIGNvdWxkIGZh
aWwuIFRoaXMgc2VtYW50aWMgd2FzIGFjdHVhbGx5CnVzZWZ1bCBpbiBzb21lIGNhc2VzIHRob3Vn
aCwgc3BlY2lmaWNhbGx5IHRvIGF2b2lkIGRyb3BwaW5nIG91dCBvZiBhIERQQwpvbmx5IHRvIGhh
dmUgaXQgaW1tZWRpYXRlbHkgcmUtcXVldWVkLgoKVGhpcyBwYXRjaCwgdGhlcmVmb3JlLCByZS1p
bnN0YXRlcyB0aGUgb2xkZXIgc2VtYW50aWMgYnV0IG1ha2VzIGl0IG9wdGlvbmFsCnNvIHRoYXQg
Y2FsbGVycyB0aGF0IGNhbm5vdCBlYXNpbHkgdG9sZXJhdGUgc3VjaCBhIGZhaWx1cmUgY2FuIGZv
cmNlIHRoZQp1bm1hc2sgdG8gc3VjY2VlZC4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8
cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmgg
fCAgNDIgKysrKysrKysrKysrKysrLS0tCiBpbmNsdWRlL3JldmlzaW9uLmggICAgICAgICB8ICAg
MyArLQogc3JjL3hlbmJ1cy9jb25zb2xlLmMgICAgICAgfCAgIDkgKystLQogc3JjL3hlbmJ1cy9l
dnRjaG4uYyAgICAgICAgfCAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tCiBzcmMveGVuYnVzL2Zkby5jICAgICAgICAgICB8ICAgOSArKy0tCiBzcmMveGVu
YnVzL3N0b3JlLmMgICAgICAgICB8ICAgOSArKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNl
cnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2V2dGNobl9p
bnRlcmZhY2UuaCBiL2luY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oCmluZGV4IDMxMDg1MGIuLjA2
OGE2OTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oCisrKyBiL2luY2x1
ZGUvZXZ0Y2huX2ludGVyZmFjZS5oCkBAIC0xMjgsMTggKzEyOCwyNyBAQCB0eXBlZGVmIE5UU1RB
VFVTCiAgICAgSU4gIFVDSEFSICAgICAgICAgICAgICAgICAgIE51bWJlcgogICAgICk7CiAKK3R5
cGVkZWYgVk9JRAorKCpYRU5CVVNfRVZUQ0hOX1VOTUFTS19WNCkoCisgICAgSU4gIFBJTlRFUkZB
Q0UgICAgICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAgUFhFTkJVU19FVlRDSE5fQ0hBTk5F
TCAgQ2hhbm5lbCwKKyAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgSW5DYWxsYmFjawor
ICAgICk7CisKIC8qISBcdHlwZWRlZiBYRU5CVVNfRVZUQ0hOX1VOTUFTSwogICAgIFxicmllZiBV
bm1hc2sgYW4gZXZlbnQgY2hhbm5lbAogCiAgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJm
YWNlIGhlYWRlcgogICAgIFxwYXJhbSBDaGFubmVsIFRoZSBjaGFubmVsIGhhbmRsZQogICAgIFxw
YXJhbSBJbkNhbGxiYWNrIFNldCB0byBUUlVFIGlmIHRoaXMgbWV0aG9kIGlzIGludm9rZWQgaW4g
Y29udGV4dCBvZiB0aGUgY2hhbm5lbCBjYWxsYmFjaworICAgIFxwYXJhbSBGb3JjZSBTZXQgdG8g
VFJVRSBpZiB0aGUgdW5tYXNrIG11c3Qgc3VjY2VlZCwgb3RoZXJ3aXNlIHNldCB0byBGQUxTRSBh
bmQgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIEZBTFNFIGlmIHRoZSB1bm1hc2sgZGlkIG5vdCBj
b21wbGV0ZS4KICovCi10eXBlZGVmIFZPSUQKK3R5cGVkZWYgQk9PTEVBTgogKCpYRU5CVVNfRVZU
Q0hOX1VOTUFTSykoCiAgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwK
ICAgICBJTiAgUFhFTkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKLSAgICBJTiAgQk9PTEVB
TiAgICAgICAgICAgICAgICAgSW5DYWxsYmFjaworICAgIElOICBCT09MRUFOICAgICAgICAgICAg
ICAgICBJbkNhbGxiYWNrLAorICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBGb3JjZQog
ICAgICk7CiAKIHR5cGVkZWYgVk9JRApAQCAtMjUwLDcgKzI1OSw3IEBAIHN0cnVjdCBfWEVOQlVT
X0VWVENITl9JTlRFUkZBQ0VfVjQgewogICAgIFhFTkJVU19FVlRDSE5fUkVMRUFTRSAgIEV2dGNo
blJlbGVhc2U7CiAgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0Y2huT3BlbjsKICAgICBY
RU5CVVNfRVZUQ0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOwotICAgIFhFTkJVU19FVlRDSE5fVU5N
QVNLICAgIEV2dGNoblVubWFzazsKKyAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTS19WNCBFdnRjaG5V
bm1hc2tWZXJzaW9uNDsKICAgICBYRU5CVVNfRVZUQ0hOX1NFTkRfVjEgICBFdnRjaG5TZW5kVmVy
c2lvbjE7CiAgICAgWEVOQlVTX0VWVENITl9UUklHR0VSICAgRXZ0Y2huVHJpZ2dlcjsKICAgICBY
RU5CVVNfRVZUQ0hOX0dFVF9QT1JUICBFdnRjaG5HZXRQb3J0OwpAQCAtMjY3LDcgKzI3Niw3IEBA
IHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjUgewogICAgIFhFTkJVU19FVlRDSE5f
UkVMRUFTRSAgIEV2dGNoblJlbGVhc2U7CiAgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0
Y2huT3BlbjsKICAgICBYRU5CVVNfRVZUQ0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOwotICAgIFhF
TkJVU19FVlRDSE5fVU5NQVNLICAgIEV2dGNoblVubWFzazsKKyAgICBYRU5CVVNfRVZUQ0hOX1VO
TUFTS19WNCBFdnRjaG5Vbm1hc2tWZXJzaW9uNDsKICAgICBYRU5CVVNfRVZUQ0hOX1NFTkRfVjEg
ICBFdnRjaG5TZW5kVmVyc2lvbjE7CiAgICAgWEVOQlVTX0VWVENITl9UUklHR0VSICAgRXZ0Y2hu
VHJpZ2dlcjsKICAgICBYRU5CVVNfRVZUQ0hOX1dBSVRfVjUgICBFdnRjaG5XYWl0VmVyc2lvbjU7
CkBAIC0yODUsNyArMjk0LDcgQEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNiB7
CiAgICAgWEVOQlVTX0VWVENITl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNf
RVZUQ0hOX09QRU4gICAgICBFdnRjaG5PcGVuOwogICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAg
IEV2dGNobkJpbmQ7Ci0gICAgWEVOQlVTX0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOwor
ICAgIFhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0IEV2dGNoblVubWFza1ZlcnNpb240OwogICAgIFhF
TkJVU19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNlbmQ7CiAgICAgWEVOQlVTX0VWVENITl9UUklH
R0VSICAgRXZ0Y2huVHJpZ2dlcjsKICAgICBYRU5CVVNfRVZUQ0hOX1dBSVRfVjUgICBFdnRjaG5X
YWl0VmVyc2lvbjU7CkBAIC0zMDMsNiArMzEyLDI1IEBAIHN0cnVjdCBfWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0VfVjcgewogICAgIFhFTkJVU19FVlRDSE5fUkVMRUFTRSAgIEV2dGNoblJlbGVhc2U7
CiAgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0Y2huT3BlbjsKICAgICBYRU5CVVNfRVZU
Q0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOworICAgIFhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0IEV2
dGNoblVubWFza1ZlcnNpb240OworICAgIFhFTkJVU19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNl
bmQ7CisgICAgWEVOQlVTX0VWVENITl9UUklHR0VSICAgRXZ0Y2huVHJpZ2dlcjsKKyAgICBYRU5C
VVNfRVZUQ0hOX0dFVF9DT1VOVCBFdnRjaG5HZXRDb3VudDsKKyAgICBYRU5CVVNfRVZUQ0hOX1dB
SVQgICAgICBFdnRjaG5XYWl0OworICAgIFhFTkJVU19FVlRDSE5fR0VUX1BPUlQgIEV2dGNobkdl
dFBvcnQ7CisgICAgWEVOQlVTX0VWVENITl9DTE9TRSAgICAgRXZ0Y2huQ2xvc2U7Cit9OworCisv
KiEgXHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjgKKyAgICBcYnJpZWYgRVZUQ0hO
IGludGVyZmFjZSB2ZXJzaW9uIDgKKyAgICBcaW5ncm91cCBpbnRlcmZhY2VzCisqLworc3RydWN0
IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WOCB7CisgICAgSU5URVJGQUNFICAgICAgICAgICAg
ICAgSW50ZXJmYWNlOworICAgIFhFTkJVU19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7
CisgICAgWEVOQlVTX0VWVENITl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKKyAgICBYRU5CVVNf
RVZUQ0hOX09QRU4gICAgICBFdnRjaG5PcGVuOworICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAg
IEV2dGNobkJpbmQ7CiAgICAgWEVOQlVTX0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOwog
ICAgIFhFTkJVU19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNlbmQ7CiAgICAgWEVOQlVTX0VWVENI
Tl9UUklHR0VSICAgRXZ0Y2huVHJpZ2dlcjsKQEAgLTMxMiw3ICszNDAsNyBAQCBzdHJ1Y3QgX1hF
TkJVU19FVlRDSE5fSU5URVJGQUNFX1Y3IHsKICAgICBYRU5CVVNfRVZUQ0hOX0NMT1NFICAgICBF
dnRjaG5DbG9zZTsKIH07CiAKLXR5cGVkZWYgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFD
RV9WNyBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSwgKlBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRTsK
K3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WOCBYRU5CVVNfRVZUQ0hO
X0lOVEVSRkFDRSwgKlBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRTsKIAogLyohIFxkZWYgWEVOQlVT
X0VWVENITgogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGludm9jYXRpb24K
QEAgLTMyMyw3ICszNTEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0VfVjcgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVAogI2VuZGlmICAvLyBf
V0lORExMCiAKICNkZWZpbmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVkVSU0lPTl9NSU4gNAot
I2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9OX01BWCA3CisjZGVmaW5lIFhF
TkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUFYIDgKIAogI2VuZGlmICAvLyBfWEVOQlVT
X0VWVENITl9JTlRFUkZBQ0VfSAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JldmlzaW9uLmggYi9p
bmNsdWRlL3JldmlzaW9uLmgKaW5kZXggYmM3M2JlMi4uNmFhZjg4OCAxMDA2NDQKLS0tIGEvaW5j
bHVkZS9yZXZpc2lvbi5oCisrKyBiL2luY2x1ZGUvcmV2aXNpb24uaApAQCAtNTIsNiArNTIsNyBA
QAogICAgIERFRklORV9SRVZJU0lPTigweDA4MDAwMDBCLCAgMSwgIDIsICA1LCAgMSwgIDIsICAx
LCAgMSwgIDIsICAxLCAgMCwgIDEpLCBcCiAgICAgREVGSU5FX1JFVklTSU9OKDB4MDkwMDAwMDAs
ICAxLCAgMiwgIDUsICAxLCAgMiwgIDEsICAxLCAgMiwgIDEsICAwLCAgMSksIFwKICAgICBERUZJ
TkVfUkVWSVNJT04oMHgwOTAwMDAwMSwgIDEsICAyLCAgNiwgIDEsICAyLCAgMSwgIDEsICAyLCAg
MSwgIDEsICAxKSwgXAotICAgIERFRklORV9SRVZJU0lPTigweDA5MDAwMDAyLCAgMSwgIDIsICA3
LCAgMSwgIDIsICAxLCAgMSwgIDIsICAxLCAgMSwgIDEpCisgICAgREVGSU5FX1JFVklTSU9OKDB4
MDkwMDAwMDIsICAxLCAgMiwgIDcsICAxLCAgMiwgIDEsICAxLCAgMiwgIDEsICAxLCAgMSksIFwK
KyAgICBERUZJTkVfUkVWSVNJT04oMHgwOTAwMDAwMywgIDEsICAyLCAgOCwgIDEsICAyLCAgMSwg
IDEsICAyLCAgMSwgIDEsICAxKQogCiAjZW5kaWYgIC8vIF9SRVZJU0lPTl9ICmRpZmYgLS1naXQg
YS9zcmMveGVuYnVzL2NvbnNvbGUuYyBiL3NyYy94ZW5idXMvY29uc29sZS5jCmluZGV4IGJlYmM2
ZjMuLjFjYTI1ZjAgMTAwNjQ0Ci0tLSBhL3NyYy94ZW5idXMvY29uc29sZS5jCisrKyBiL3NyYy94
ZW5idXMvY29uc29sZS5jCkBAIC0zNTQsMTAgKzM1NCwxMSBAQCBDb25zb2xlRW5hYmxlKAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKICAgICBBU1NFUlQoQ29u
dGV4dC0+Q2hhbm5lbCAhPSBOVUxMKTsKIAotICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLAotICAg
ICAgICAgICAgICAgICAgJkNvbnRleHQtPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAgICAg
ICAgIENvbnRleHQtPkNoYW5uZWwsCi0gICAgICAgICAgICAgICAgICBGQUxTRSk7CisgICAgKFZP
SUQpIFhFTkJVU19FVlRDSE4oVW5tYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICZDb250
ZXh0LT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGV4dC0+
Q2hhbm5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBUUlVFKTsKIAogICAgIENvbnRleHQtPkVuYWJsZWQgPSBUUlVFOwogCmRpZmYg
LS1naXQgYS9zcmMveGVuYnVzL2V2dGNobi5jIGIvc3JjL3hlbmJ1cy9ldnRjaG4uYwppbmRleCAy
YWMxOTJkLi4wNzQ4ZTUwIDEwMDY0NAotLS0gYS9zcmMveGVuYnVzL2V2dGNobi5jCisrKyBiL3Ny
Yy94ZW5idXMvZXZ0Y2huLmMKQEAgLTcyNywxNiArNzI3LDE5IEBAIGZhaWwxOgogICAgIHJldHVy
biBzdGF0dXM7CiB9CiAKLXN0YXRpYyBWT0lECitzdGF0aWMgQk9PTEVBTgogRXZ0Y2huVW5tYXNr
KAogICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCiAgICAgSU4gIFBY
RU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5uZWwsCi0gICAgSU4gIEJPT0xFQU4gICAgICAgICAg
ICAgICAgIEluVXBjYWxsCisgICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgIEluVXBjYWxs
LAorICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBGb3JjZQogICAgICkKIHsKICAgICBQ
WEVOQlVTX0VWVENITl9DT05URVhUICAgICAgQ29udGV4dCA9IEludGVyZmFjZS0+Q29udGV4dDsK
ICAgICBLSVJRTCAgICAgICAgICAgICAgICAgICAgICAgSXJxbCA9IFBBU1NJVkVfTEVWRUw7Cisg
ICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIFBlbmRpbmc7CiAgICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgICAgIExvY2FsUG9ydDsKKyAgICBQUk9DRVNTT1JfTlVNQkVSICAgICAgICAg
ICAgUHJvY051bWJlcjsKIAogICAgIEFTU0VSVDNVKENoYW5uZWwtPk1hZ2ljLCA9PSwgWEVOQlVT
X0VWVENITl9DSEFOTkVMX01BR0lDKTsKIApAQCAtNzQ1LDI3ICs3NDgsNzYgQEAgRXZ0Y2huVW5t
YXNrKAogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA+PSwgRElTUEFUQ0hfTEVW
RUwpOwogCisgICAgUGVuZGluZyA9IEZBTFNFOworCiAgICAgaWYgKCFDaGFubmVsLT5BY3RpdmUp
CiAgICAgICAgIGdvdG8gZG9uZTsKIAogICAgIExvY2FsUG9ydCA9IENoYW5uZWwtPkxvY2FsUG9y
dDsKIAotICAgIGlmIChYRU5CVVNfRVZUQ0hOX0FCSShQb3J0VW5tYXNrLAorICAgIFBlbmRpbmcg
PSBYRU5CVVNfRVZUQ0hOX0FCSShQb3J0VW5tYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmQ29udGV4dC0+RXZ0Y2huQWJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbFBvcnQpOworCisgICAgaWYgKCFQZW5kaW5nKQorICAgICAgICBnb3RvIGRvbmU7
CisKKyAgICAvLworICAgIC8vIElmIHdlIGFyZSBpbiBjb250ZXh0IG9mIHRoZSB1cGNhbGwsIG9y
IHdlIGNhbm5vdCB0b2xlcmF0ZSBhCisgICAgLy8gZmFpbHVyZSB0byB1bm1hc2ssIHRoZW4gdXNl
IHRoZSBoeXBlcmNhbGwuCisgICAgLy8KKyAgICBpZiAoSW5VcGNhbGwgfHwgRm9yY2UpIHsKKyAg
ICAgICAgWEVOQlVTX0VWVENITl9BQkkoUG9ydE1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZDb250ZXh0LT5FdnRjaG5BYmksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
UG9ydCkpIHsKLSAgICAgICAgLy8KLSAgICAgICAgLy8gVGhlIGV2ZW50IHdhcyBwZW5kaW5nIHNv
IHdlIG11c3QgcmUtbWFzayBhbmQgdXNlCi0gICAgICAgIC8vIGEgaHlwZXJjYWxsIHRvIGRvIHRo
ZSB1bm1hc2sgYW5kIHJhaXNlIHRoZSBldmVudAotICAgICAgICAvLworICAgICAgICAgICAgICAg
ICAgICAgICAgICBMb2NhbFBvcnQpOworICAgICAgICAoVk9JRCkgRXZlbnRDaGFubmVsVW5tYXNr
KExvY2FsUG9ydCk7CisKKyAgICAgICAgUGVuZGluZyA9IEZBTFNFOworICAgICAgICBnb3RvIGRv
bmU7CisgICAgfQorCisgICAgLy8KKyAgICAvLyBJZiB3ZSBhcmUgbm90IHVubWFza2luZyBvbiB0
aGUgc2FtZSBDUFUgdG8gd2hpY2ggdGhlCisgICAgLy8gZXZlbnQgY2hhbm5lbCBpcyBib3VuZCwg
dGhlbiB3ZSBuZWVkIHRvIHVzZSB0aGUgaHlwZXJjYWxsLgorICAgIC8vIHRvIHNjaGVkdWxlIHRo
ZSB1cGNhbGwgb24gdGhlIGNvcnJlY3QgQ1BVLgorICAgIC8vCisgICAgKFZPSUQpIEtlR2V0Q3Vy
cmVudFByb2Nlc3Nvck51bWJlckV4KCZQcm9jTnVtYmVyKTsKKworICAgIGlmIChDaGFubmVsLT5Q
cm9jTnVtYmVyLkdyb3VwICE9IFByb2NOdW1iZXIuR3JvdXAgfHwKKyAgICAgICAgQ2hhbm5lbC0+
UHJvY051bWJlci5OdW1iZXIgIT0gUHJvY051bWJlci5OdW1iZXIpIHsKICAgICAgICAgWEVOQlVT
X0VWVENITl9BQkkoUG9ydE1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0
LT5FdnRjaG5BYmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsUG9ydCk7CiAgICAg
ICAgIChWT0lEKSBFdmVudENoYW5uZWxVbm1hc2soTG9jYWxQb3J0KTsKKworICAgICAgICBQZW5k
aW5nID0gRkFMU0U7CisgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKKyAgICBpZiAoQ2hhbm5l
bC0+TWFzaykKKyAgICAgICAgWEVOQlVTX0VWVENITl9BQkkoUG9ydE1hc2ssCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICZDb250ZXh0LT5FdnRjaG5BYmksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIExvY2FsUG9ydCk7CisKKyAgICBYRU5CVVNfRVZUQ0hOX0FCSShQb3J0QWNrLAorICAg
ICAgICAgICAgICAgICAgICAgICZDb250ZXh0LT5FdnRjaG5BYmksCisgICAgICAgICAgICAgICAg
ICAgICAgTG9jYWxQb3J0KTsKKwogZG9uZToKICAgICBpZiAoIUluVXBjYWxsKQogICAgICAgICBL
ZVJlbGVhc2VTcGluTG9jaygmQ2hhbm5lbC0+TG9jaywgSXJxbCk7CisKKyAgICByZXR1cm4gUGVu
ZGluZzsKK30KKworc3RhdGljIFZPSUQKK0V2dGNoblVubWFza1ZlcnNpb240KAorICAgIElOICBQ
SU5URVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hO
X0NIQU5ORUwgIENoYW5uZWwsCisgICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgIEluVXBj
YWxsCisgICAgKQoreworICAgIEV2dGNoblVubWFzayhJbnRlcmZhY2UsIENoYW5uZWwsIEluVXBj
YWxsLCBUUlVFKTsKIH0KIAogc3RhdGljIFZPSUQKQEAgLTE2MzUsNyArMTY4Nyw3IEBAIHN0YXRp
YyBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y0IEV2dGNobkludGVyZmFjZVZlcnNp
b240ID0gewogICAgIEV2dGNoblJlbGVhc2UsCiAgICAgRXZ0Y2huT3BlbiwKICAgICBFdnRjaG5C
aW5kLAotICAgIEV2dGNoblVubWFzaywKKyAgICBFdnRjaG5Vbm1hc2tWZXJzaW9uNCwKICAgICBF
dnRjaG5TZW5kVmVyc2lvbjEsCiAgICAgRXZ0Y2huVHJpZ2dlciwKICAgICBFdnRjaG5HZXRQb3J0
LApAQCAtMTY0OCw3ICsxNzAwLDcgQEAgc3RhdGljIHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRF
UkZBQ0VfVjUgRXZ0Y2huSW50ZXJmYWNlVmVyc2lvbjUgPSB7CiAgICAgRXZ0Y2huUmVsZWFzZSwK
ICAgICBFdnRjaG5PcGVuLAogICAgIEV2dGNobkJpbmQsCi0gICAgRXZ0Y2huVW5tYXNrLAorICAg
IEV2dGNoblVubWFza1ZlcnNpb240LAogICAgIEV2dGNoblNlbmRWZXJzaW9uMSwKICAgICBFdnRj
aG5UcmlnZ2VyLAogICAgIEV2dGNobldhaXRWZXJzaW9uNSwKQEAgLTE2NjIsNyArMTcxNCw3IEBA
IHN0YXRpYyBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y2IEV2dGNobkludGVyZmFj
ZVZlcnNpb242ID0gewogICAgIEV2dGNoblJlbGVhc2UsCiAgICAgRXZ0Y2huT3BlbiwKICAgICBF
dnRjaG5CaW5kLAotICAgIEV2dGNoblVubWFzaywKKyAgICBFdnRjaG5Vbm1hc2tWZXJzaW9uNCwK
ICAgICBFdnRjaG5TZW5kLAogICAgIEV2dGNoblRyaWdnZXIsCiAgICAgRXZ0Y2huV2FpdFZlcnNp
b241LApAQCAtMTY3Niw2ICsxNzI4LDIxIEBAIHN0YXRpYyBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5f
SU5URVJGQUNFX1Y3IEV2dGNobkludGVyZmFjZVZlcnNpb243ID0gewogICAgIEV2dGNoblJlbGVh
c2UsCiAgICAgRXZ0Y2huT3BlbiwKICAgICBFdnRjaG5CaW5kLAorICAgIEV2dGNoblVubWFza1Zl
cnNpb240LAorICAgIEV2dGNoblNlbmQsCisgICAgRXZ0Y2huVHJpZ2dlciwKKyAgICBFdnRjaG5H
ZXRDb3VudCwKKyAgICBFdnRjaG5XYWl0LAorICAgIEV2dGNobkdldFBvcnQsCisgICAgRXZ0Y2hu
Q2xvc2UsCit9OworCitzdGF0aWMgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WOCBF
dnRjaG5JbnRlcmZhY2VWZXJzaW9uOCA9IHsKKyAgICB7IHNpemVvZiAoc3RydWN0IF9YRU5CVVNf
RVZUQ0hOX0lOVEVSRkFDRV9WOCksIDgsIE5VTEwsIE5VTEwsIE5VTEwgfSwKKyAgICBFdnRjaG5B
Y3F1aXJlLAorICAgIEV2dGNoblJlbGVhc2UsCisgICAgRXZ0Y2huT3BlbiwKKyAgICBFdnRjaG5C
aW5kLAogICAgIEV2dGNoblVubWFzaywKICAgICBFdnRjaG5TZW5kLAogICAgIEV2dGNoblRyaWdn
ZXIsCkBAIC0xODYxLDYgKzE5MjgsMjMgQEAgRXZ0Y2huR2V0SW50ZXJmYWNlKAogICAgICAgICBz
dGF0dXMgPSBTVEFUVVNfU1VDQ0VTUzsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2Ug
ODogeworICAgICAgICBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y4ICAqRXZ0Y2hu
SW50ZXJmYWNlOworCisgICAgICAgIEV2dGNobkludGVyZmFjZSA9IChzdHJ1Y3QgX1hFTkJVU19F
VlRDSE5fSU5URVJGQUNFX1Y4ICopSW50ZXJmYWNlOworCisgICAgICAgIHN0YXR1cyA9IFNUQVRV
U19CVUZGRVJfT1ZFUkZMT1c7CisgICAgICAgIGlmIChTaXplIDwgc2l6ZW9mIChzdHJ1Y3QgX1hF
TkJVU19FVlRDSE5fSU5URVJGQUNFX1Y4KSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
ICpFdnRjaG5JbnRlcmZhY2UgPSBFdnRjaG5JbnRlcmZhY2VWZXJzaW9uODsKKworICAgICAgICBB
U1NFUlQzVShJbnRlcmZhY2UtPlZlcnNpb24sID09LCBWZXJzaW9uKTsKKyAgICAgICAgSW50ZXJm
YWNlLT5Db250ZXh0ID0gQ29udGV4dDsKKworICAgICAgICBzdGF0dXMgPSBTVEFUVVNfU1VDQ0VT
UzsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN0YXR1cyA9
IFNUQVRVU19OT1RfU1VQUE9SVEVEOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyYy94
ZW5idXMvZmRvLmMgYi9zcmMveGVuYnVzL2Zkby5jCmluZGV4IGM1YjVkYTEuLjdiOWRhMTIgMTAw
NjQ0Ci0tLSBhL3NyYy94ZW5idXMvZmRvLmMKKysrIGIvc3JjL3hlbmJ1cy9mZG8uYwpAQCAtMjY3
NSwxMCArMjY3NSwxMSBAQCBfX0Zkb0QzVG9EMCgKICAgICBpZiAoRmRvLT5DaGFubmVsID09IE5V
TEwpCiAgICAgICAgIGdvdG8gZmFpbDE7CiAKLSAgICBYRU5CVVNfRVZUQ0hOKFVubWFzaywKLSAg
ICAgICAgICAgICAgICAgICZGZG8tPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAg
IEZkby0+Q2hhbm5lbCwKLSAgICAgICAgICAgICAgICAgIEZBTFNFKTsKKyAgICAoVk9JRCkgWEVO
QlVTX0VWVENITihVbm1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgJkZkby0+RXZ0Y2hu
SW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgIEZkby0+Q2hhbm5lbCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBUUlVF
KTsKIAogICAgIHN0YXR1cyA9IExvZ0FkZERpc3Bvc2l0aW9uKERyaXZlckdldENvbnNvbGVMb2dM
ZXZlbCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZkb091dHB1dEJ1ZmZlciwK
ZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvc3RvcmUuYyBiL3NyYy94ZW5idXMvc3RvcmUuYwppbmRl
eCAxMDFkYzQwLi4wZGVlMDU0IDEwMDY0NAotLS0gYS9zcmMveGVuYnVzL3N0b3JlLmMKKysrIGIv
c3JjL3hlbmJ1cy9zdG9yZS5jCkBAIC0yMTUyLDEwICsyMTUyLDExIEBAIFN0b3JlRW5hYmxlKAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKICAgICBBU1NFUlQo
Q29udGV4dC0+Q2hhbm5lbCAhPSBOVUxMKTsKIAotICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLAot
ICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAg
ICAgICAgIENvbnRleHQtPkNoYW5uZWwsCi0gICAgICAgICAgICAgICAgICBGQUxTRSk7CisgICAg
KFZPSUQpIFhFTkJVU19FVlRDSE4oVW5tYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICZD
b250ZXh0LT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGV4
dC0+Q2hhbm5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBUUlVFKTsKIAogICAgIENvbnRleHQtPkVuYWJsZWQgPSBUUlVFOwogCi0t
IAoyLjUuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qu
b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:40:21 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:40:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6epw-0006hC-S5; Mon, 23 Oct 2017 15:40:20 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6epv-0006gH-DQ
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:40:19 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
 0F/66-06614-26D0EE95; Mon, 23 Oct 2017 15:40:18 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLLMWRWlGSWpSXmKPExsXitHRDpG4i77t
 Ig6bN1hZ/Fic6MHoc/nCFJYAxijUzLym/IoE14++hr8wFP1sYK068ns/awPgps4uRk0NCwF/i
 6M2nzCA2m4COxNSnl1hBbBEBdYl9n7cygdjMAloSDROXgNnCAi4S/25MZQexWQRUJc5vWAhWz
 yvgJvFr6mrGLkYOoJlyEt073UDCQgIqEuunzmKDKBGUODnzCQvESAmJgy9eME9g5J6FJDULSW
 oBI9MqRvXi1KKy1CJdI72kosz0jJLcxMwcXUMDY73c1OLixPTUnMSkYr3k/NxNjMBAqGdgYNz
 BeKrZ+RCjJAeTkijv75y3kUJ8SfkplRmJxRnxRaU5qcWHGGU4OJQkeFfzvIsUEixKTU+tSMvM
 AYYkTFqCg0dJhHcnSJq3uCAxtzgzHSJ1itGYo+Pm3T9MHM9mvm5gFmLJy89LlRLntQMpFQApz
 SjNgxsEi5VLjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR594BM4cnMK4Hb9wroFCagU2Tt34
 CcUpKIkJJqYGRe9acj/sqSqeYxtxNsEqOq+ms1jbfdmVp9/4/9lKvqfQeSn1enSyV1f5KOUrP
 x2PXEZ0NP1IRJP7JM2iOqxQoPLq7+s3WqVOyBa0fkG9dGR8+yzOx5e3IO74GbjxfPVjzp+Hfi
 v9xzv/nnf1w2m/u9//z3DEXJjkwvuT7MW/tiN8O9A6UKez4osRRnJBpqMRcVJwIALvRhTpACA
 AA=
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1508773216!111630425!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 7938 invoked from network); 23 Oct 2017 15:40:17 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:40:17 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="447698189"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 23 Oct 2017 16:40:05 +0100
Message-ID: <1508773207-3260-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/3] Add the boilerplate for a new Poller
	sub-system
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIGludGVudGlvbiBpcyB0aGF0IHRoZSBzZXBhcmF0ZSBSZWNlaXZlciBhbmQgVHJhbnNtaXR0
ZXIgZXZlbnQgYW5kIERQQwpoYW5kbGluZyBiZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIHN1Yi1z
eXN0ZW0uIFRoaXMgcGF0Y2ggbGF5cyB0aGUgZ3JvdW5kLQp3b3JrIGZvciB0aGF0IHRvIGJlIGRv
bmUuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t
PgotLS0KIHNyYy94ZW52aWYvZnJvbnRlbmQuYyAgICAgICAgfCAgODUgKysrKysrKysrKysrLS0t
LS0KIHNyYy94ZW52aWYvZnJvbnRlbmQuaCAgICAgICAgfCAgIDcgKysKIHNyYy94ZW52aWYvcG9s
bGVyLmMgICAgICAgICAgfCAyMTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogc3JjL3hlbnZpZi9wb2xsZXIuaCAgICAgICAgICB8ICA4MCArKysrKysrKysrKysr
KysrCiB2czIwMTUveGVudmlmL3hlbnZpZi52Y3hwcm9qIHwgICAxICsKIDUgZmlsZXMgY2hhbmdl
ZCwgMzY3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IHNyYy94ZW52aWYvcG9sbGVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMveGVudmlmL3BvbGxl
ci5oCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9mcm9udGVuZC5jIGIvc3JjL3hlbnZpZi9mcm9u
dGVuZC5jCmluZGV4IGEwNGQ4ODYuLmY3MTVjMTkgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvZnJv
bnRlbmQuYworKysgYi9zcmMveGVudmlmL2Zyb250ZW5kLmMKQEAgLTQ3LDYgKzQ3LDcgQEAKICNp
bmNsdWRlICJ0Y3BpcC5oIgogI2luY2x1ZGUgInJlY2VpdmVyLmgiCiAjaW5jbHVkZSAidHJhbnNt
aXR0ZXIuaCIKKyNpbmNsdWRlICJwb2xsZXIuaCIKICNpbmNsdWRlICJsaW5rLmgiCiAjaW5jbHVk
ZSAiZGJnX3ByaW50LmgiCiAjaW5jbHVkZSAiYXNzZXJ0LmgiCkBAIC04Niw2ICs4Nyw3IEBAIHN0
cnVjdCBfWEVOVklGX0ZST05URU5EIHsKICAgICBQWEVOVklGX01BQyAgICAgICAgICAgICAgICAg
TWFjOwogICAgIFBYRU5WSUZfUkVDRUlWRVIgICAgICAgICAgICBSZWNlaXZlcjsKICAgICBQWEVO
VklGX1RSQU5TTUlUVEVSICAgICAgICAgVHJhbnNtaXR0ZXI7CisgICAgUFhFTlZJRl9QT0xMRVIg
ICAgICAgICAgICAgIFBvbGxlcjsKICAgICBQWEVOVklGX0NPTlRST0xMRVIgICAgICAgICAgQ29u
dHJvbGxlcjsKIAogICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgICAgICBEZWJ1Z0ludGVyZmFj
ZTsKQEAgLTMzOCw2ICszNDAsNyBAQCBGcm9udGVuZEdldCAjIyBfRnVuY3Rpb24oICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKIERFRklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oTWFj
LCBQWEVOVklGX01BQykKIERFRklORV9GUk9OVEVORF9HRVRfRlVOQ1RJT04oUmVjZWl2ZXIsIFBY
RU5WSUZfUkVDRUlWRVIpCiBERUZJTkVfRlJPTlRFTkRfR0VUX0ZVTkNUSU9OKFRyYW5zbWl0dGVy
LCBQWEVOVklGX1RSQU5TTUlUVEVSKQorREVGSU5FX0ZST05URU5EX0dFVF9GVU5DVElPTihQb2xs
ZXIsIFBYRU5WSUZfUE9MTEVSKQogREVGSU5FX0ZST05URU5EX0dFVF9GVU5DVElPTihDb250cm9s
bGVyLCBQWEVOVklGX0NPTlRST0xMRVIpCiAKIHN0YXRpYyBCT09MRUFOCkBAIC0yMjA3LDE4ICsy
MjEwLDIyIEBAIEZyb250ZW5kQ29ubmVjdCgKICAgICBGcm9udGVuZFNldE51bVF1ZXVlcyhGcm9u
dGVuZCk7CiAgICAgRnJvbnRlbmRTZXRTcGxpdChGcm9udGVuZCk7CiAKLSAgICBzdGF0dXMgPSBS
ZWNlaXZlckNvbm5lY3QoX19Gcm9udGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSk7CisgICAgc3Rh
dHVzID0gUG9sbGVyQ29ubmVjdChfX0Zyb250ZW5kR2V0UG9sbGVyKEZyb250ZW5kKSk7CiAgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDQ7CiAKLSAgICBzdGF0
dXMgPSBUcmFuc21pdHRlckNvbm5lY3QoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVyKEZyb250ZW5k
KSk7CisgICAgc3RhdHVzID0gUmVjZWl2ZXJDb25uZWN0KF9fRnJvbnRlbmRHZXRSZWNlaXZlcihG
cm9udGVuZCkpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZh
aWw1OwogCi0gICAgc3RhdHVzID0gQ29udHJvbGxlckNvbm5lY3QoX19Gcm9udGVuZEdldENvbnRy
b2xsZXIoRnJvbnRlbmQpKTsKKyAgICBzdGF0dXMgPSBUcmFuc21pdHRlckNvbm5lY3QoX19Gcm9u
dGVuZEdldFRyYW5zbWl0dGVyKEZyb250ZW5kKSk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1
cykpCiAgICAgICAgIGdvdG8gZmFpbDY7CiAKKyAgICBzdGF0dXMgPSBDb250cm9sbGVyQ29ubmVj
dChfX0Zyb250ZW5kR2V0Q29udHJvbGxlcihGcm9udGVuZCkpOworICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw3OworCiAgICAgQXR0ZW1wdCA9IDA7CiAgICAg
ZG8gewogICAgICAgICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rpb247CkBA
IC0yMjI5LDYgKzIyMzYsMTEgQEAgRnJvbnRlbmRDb25uZWN0KAogICAgICAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIHN0YXR1cyA9IFBv
bGxlclN0b3JlV3JpdGUoX19Gcm9udGVuZEdldFBvbGxlcihGcm9udGVuZCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNhY3Rpb24pOworICAgICAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKKyAgICAgICAgICAgIGdvdG8gYWJvcnQ7CisKICAgICAgICAgc3RhdHVz
ID0gUmVjZWl2ZXJTdG9yZVdyaXRlKF9fRnJvbnRlbmRHZXRSZWNlaXZlcihGcm9udGVuZCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbik7CiAgICAgICAg
IGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQpAQCAtMjI3Miw3ICsyMjg0LDcgQEAgYWJvcnQ6CiAg
ICAgfSB3aGlsZSAoc3RhdHVzID09IFNUQVRVU19SRVRSWSk7CiAKICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNzsKKyAgICAgICAgZ290byBmYWlsODsKIAog
ICAgIFN0YXRlID0gWGVuYnVzU3RhdGVVbmtub3duOwogICAgIHdoaWxlIChTdGF0ZSAhPSBYZW5i
dXNTdGF0ZUNvbm5lY3RlZCkgewpAQCAtMjMxMSw3ICsyMzIzLDcgQEAgYWJvcnQ6CiAKICAgICBz
dGF0dXMgPSBTVEFUVVNfVU5TVUNDRVNTRlVMOwogICAgIGlmIChTdGF0ZSAhPSBYZW5idXNTdGF0
ZUNvbm5lY3RlZCkKLSAgICAgICAgZ290byBmYWlsODsKKyAgICAgICAgZ290byBmYWlsOTsKIAog
ICAgIENvbnRyb2xsZXJFbmFibGUoX19Gcm9udGVuZEdldENvbnRyb2xsZXIoRnJvbnRlbmQpKTsK
IApAQCAtMjMyMCwyMyArMjMzMiwyOCBAQCBhYm9ydDoKICAgICBUcmFjZSgiPD09PT1cbiIpOwog
ICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAorZmFpbDk6CisgICAgRXJyb3IoImZhaWw5XG4i
KTsKKwogZmFpbDg6CiAgICAgRXJyb3IoImZhaWw4XG4iKTsKIAorICAgIENvbnRyb2xsZXJEaXNj
b25uZWN0KF9fRnJvbnRlbmRHZXRDb250cm9sbGVyKEZyb250ZW5kKSk7CisKIGZhaWw3OgogICAg
IEVycm9yKCJmYWlsN1xuIik7CiAKLSAgICBDb250cm9sbGVyRGlzY29ubmVjdChfX0Zyb250ZW5k
R2V0Q29udHJvbGxlcihGcm9udGVuZCkpOworICAgIFRyYW5zbWl0dGVyRGlzY29ubmVjdChfX0Zy
b250ZW5kR2V0VHJhbnNtaXR0ZXIoRnJvbnRlbmQpKTsKIAogZmFpbDY6CiAgICAgRXJyb3IoImZh
aWw2XG4iKTsKIAotICAgIFRyYW5zbWl0dGVyRGlzY29ubmVjdChfX0Zyb250ZW5kR2V0VHJhbnNt
aXR0ZXIoRnJvbnRlbmQpKTsKKyAgICBSZWNlaXZlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldFJl
Y2VpdmVyKEZyb250ZW5kKSk7CiAKIGZhaWw1OgogICAgIEVycm9yKCJmYWlsNVxuIik7CiAKLSAg
ICBSZWNlaXZlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSk7Cisg
ICAgUG9sbGVyRGlzY29ubmVjdChfX0Zyb250ZW5kR2V0UG9sbGVyKEZyb250ZW5kKSk7CiAKIGZh
aWw0OgogICAgIEVycm9yKCJmYWlsNFxuIik7CkBAIC0yMzc4LDYgKzIzOTUsNyBAQCBGcm9udGVu
ZERpc2Nvbm5lY3QoCiAgICAgQ29udHJvbGxlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdldENvbnRy
b2xsZXIoRnJvbnRlbmQpKTsKICAgICBUcmFuc21pdHRlckRpc2Nvbm5lY3QoX19Gcm9udGVuZEdl
dFRyYW5zbWl0dGVyKEZyb250ZW5kKSk7CiAgICAgUmVjZWl2ZXJEaXNjb25uZWN0KF9fRnJvbnRl
bmRHZXRSZWNlaXZlcihGcm9udGVuZCkpOworICAgIFBvbGxlckRpc2Nvbm5lY3QoX19Gcm9udGVu
ZEdldFBvbGxlcihGcm9udGVuZCkpOwogICAgIE1hY0Rpc2Nvbm5lY3QoX19Gcm9udGVuZEdldE1h
YyhGcm9udGVuZCkpOwogCiAgICAgRnJvbnRlbmQtPlNwbGl0ID0gRkFMU0U7CkBAIC0yNDA2LDMy
ICsyNDI0LDQxIEBAIEZyb250ZW5kRW5hYmxlKAogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMp
KQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAgc3RhdHVzID0gUmVjZWl2ZXJFbmFibGUoX19G
cm9udGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSk7CisgICAgc3RhdHVzID0gUG9sbGVyRW5hYmxl
KF9fRnJvbnRlbmRHZXRQb2xsZXIoRnJvbnRlbmQpKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkKICAgICAgICAgZ290byBmYWlsMjsKIAotICAgIHN0YXR1cyA9IFRyYW5zbWl0dGVyRW5h
YmxlKF9fRnJvbnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCkpOworICAgIHN0YXR1cyA9IFJl
Y2VpdmVyRW5hYmxlKF9fRnJvbnRlbmRHZXRSZWNlaXZlcihGcm9udGVuZCkpOwogICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwzOwogCi0gICAgc3RhdHVzID0g
X19Gcm9udGVuZFVwZGF0ZUhhc2goRnJvbnRlbmQsICZGcm9udGVuZC0+SGFzaCk7CisgICAgc3Rh
dHVzID0gVHJhbnNtaXR0ZXJFbmFibGUoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVyKEZyb250ZW5k
KSk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDQ7CiAK
KyAgICBzdGF0dXMgPSBfX0Zyb250ZW5kVXBkYXRlSGFzaChGcm9udGVuZCwgJkZyb250ZW5kLT5I
YXNoKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsNTsK
KwogICAgIChWT0lEKSBGcm9udGVuZE5vdGlmeU11bHRpY2FzdEFkZHJlc3NlcyhGcm9udGVuZCwg
VFJVRSk7CiAKICAgICBUcmFjZSgiPD09PT1cbiIpOwogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VT
UzsKIAorZmFpbDU6CisgICAgRXJyb3IoImZhaWw1XG4iKTsKKworICAgIFRyYW5zbWl0dGVyRGlz
YWJsZShfX0Zyb250ZW5kR2V0VHJhbnNtaXR0ZXIoRnJvbnRlbmQpKTsKKwogZmFpbDQ6CiAgICAg
RXJyb3IoImZhaWw0XG4iKTsKIAotICAgIFRyYW5zbWl0dGVyRGlzYWJsZShfX0Zyb250ZW5kR2V0
VHJhbnNtaXR0ZXIoRnJvbnRlbmQpKTsKKyAgICBSZWNlaXZlckRpc2FibGUoX19Gcm9udGVuZEdl
dFJlY2VpdmVyKEZyb250ZW5kKSk7CiAKIGZhaWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAK
LSAgICBSZWNlaXZlckRpc2FibGUoX19Gcm9udGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSk7Cisg
ICAgUG9sbGVyRGlzYWJsZShfX0Zyb250ZW5kR2V0UG9sbGVyKEZyb250ZW5kKSk7CiAKIGZhaWwy
OgogICAgIEVycm9yKCJmYWlsMlxuIik7CkBAIC0yNDU1LDYgKzI0ODIsNyBAQCBGcm9udGVuZERp
c2FibGUoCiAKICAgICBUcmFuc21pdHRlckRpc2FibGUoX19Gcm9udGVuZEdldFRyYW5zbWl0dGVy
KEZyb250ZW5kKSk7CiAgICAgUmVjZWl2ZXJEaXNhYmxlKF9fRnJvbnRlbmRHZXRSZWNlaXZlcihG
cm9udGVuZCkpOworICAgIFBvbGxlckRpc2FibGUoX19Gcm9udGVuZEdldFBvbGxlcihGcm9udGVu
ZCkpOwogICAgIE1hY0Rpc2FibGUoX19Gcm9udGVuZEdldE1hYyhGcm9udGVuZCkpOwogCiAgICAg
VHJhY2UoIjw9PT09XG4iKTsKQEAgLTI4NjYsMTkgKzI4OTQsMjMgQEAgRnJvbnRlbmRJbml0aWFs
aXplKAogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWw4Owog
Ci0gICAgc3RhdHVzID0gQ29udHJvbGxlckluaXRpYWxpemUoKkZyb250ZW5kLCAmKCpGcm9udGVu
ZCktPkNvbnRyb2xsZXIpOworICAgIHN0YXR1cyA9IFBvbGxlckluaXRpYWxpemUoKkZyb250ZW5k
LCAmKCpGcm9udGVuZCktPlBvbGxlcik7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAg
ICAgICAgIGdvdG8gZmFpbDk7CiAKKyAgICBzdGF0dXMgPSBDb250cm9sbGVySW5pdGlhbGl6ZSgq
RnJvbnRlbmQsICYoKkZyb250ZW5kKS0+Q29udHJvbGxlcik7CisgICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDEwOworCiAgICAgS2VJbml0aWFsaXplRXZlbnQo
JigqRnJvbnRlbmQpLT5FamVjdEV2ZW50LCBOb3RpZmljYXRpb25FdmVudCwgRkFMU0UpOwogCiAg
ICAgc3RhdHVzID0gVGhyZWFkQ3JlYXRlKEZyb250ZW5kRWplY3QsICpGcm9udGVuZCwgJigqRnJv
bnRlbmQpLT5FamVjdFRocmVhZCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAg
ICAgIGdvdG8gZmFpbDEwOworICAgICAgICBnb3RvIGZhaWwxMTsKIAogICAgIHN0YXR1cyA9IFRo
cmVhZENyZWF0ZShGcm9udGVuZE1pYiwgKkZyb250ZW5kLCAmKCpGcm9udGVuZCktPk1pYlRocmVh
ZCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDExOwor
ICAgICAgICBnb3RvIGZhaWwxMjsKIAogICAgICgqRnJvbnRlbmQpLT5TdGF0aXN0aWNzQ291bnQg
PSBLZVF1ZXJ5TWF4aW11bVByb2Nlc3NvckNvdW50RXgoQUxMX1BST0NFU1NPUl9HUk9VUFMpOwog
ICAgICgqRnJvbnRlbmQpLT5TdGF0aXN0aWNzID0gX19Gcm9udGVuZEFsbG9jYXRlKHNpemVvZiAo
WEVOVklGX0ZST05URU5EX1NUQVRJU1RJQ1MpICoKQEAgLTI4ODYsMzQgKzI5MTgsMzggQEAgRnJv
bnRlbmRJbml0aWFsaXplKAogCiAgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsKICAgICBp
ZiAoKCpGcm9udGVuZCktPlN0YXRpc3RpY3MgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsMTI7
CisgICAgICAgIGdvdG8gZmFpbDEzOwogCiAgICAgVHJhY2UoIjw9PT09XG4iKTsKIAogICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsKIAotZmFpbDEyOgotICAgIEVycm9yKCJmYWlsMTJcbiIpOwor
ZmFpbDEzOgorICAgIEVycm9yKCJmYWlsMTNcbiIpOwogCiAgICAgVGhyZWFkQWxlcnQoKCpGcm9u
dGVuZCktPk1pYlRocmVhZCk7CiAgICAgVGhyZWFkSm9pbigoKkZyb250ZW5kKS0+TWliVGhyZWFk
KTsKICAgICAoKkZyb250ZW5kKS0+TWliVGhyZWFkID0gTlVMTDsKIAotZmFpbDExOgotICAgIEVy
cm9yKCJmYWlsMTFcbiIpOworZmFpbDEyOgorICAgIEVycm9yKCJmYWlsMTJcbiIpOwogCiAgICAg
VGhyZWFkQWxlcnQoKCpGcm9udGVuZCktPkVqZWN0VGhyZWFkKTsKICAgICBUaHJlYWRKb2luKCgq
RnJvbnRlbmQpLT5FamVjdFRocmVhZCk7CiAgICAgKCpGcm9udGVuZCktPkVqZWN0VGhyZWFkID0g
TlVMTDsKIAotZmFpbDEwOgotICAgIEVycm9yKCJmYWlsMTBcbiIpOworZmFpbDExOgorICAgIEVy
cm9yKCJmYWlsMTFcbiIpOwogCiAgICAgUnRsWmVyb01lbW9yeSgmKCpGcm9udGVuZCktPkVqZWN0
RXZlbnQsIHNpemVvZiAoS0VWRU5UKSk7CiAKICAgICBDb250cm9sbGVyVGVhcmRvd24oX19Gcm9u
dGVuZEdldENvbnRyb2xsZXIoKkZyb250ZW5kKSk7CiAgICAgKCpGcm9udGVuZCktPkNvbnRyb2xs
ZXIgPSBOVUxMOwogCitmYWlsMTA6CisgICAgUG9sbGVyVGVhcmRvd24oX19Gcm9udGVuZEdldFBv
bGxlcigqRnJvbnRlbmQpKTsKKyAgICAoKkZyb250ZW5kKS0+UG9sbGVyID0gTlVMTDsKKwogZmFp
bDk6CiAgICAgVHJhbnNtaXR0ZXJUZWFyZG93bihfX0Zyb250ZW5kR2V0VHJhbnNtaXR0ZXIoKkZy
b250ZW5kKSk7CiAgICAgKCpGcm9udGVuZCktPlRyYW5zbWl0dGVyID0gTlVMTDsKQEAgLTMwMjEs
NiArMzA1Nyw5IEBAIEZyb250ZW5kVGVhcmRvd24oCiAgICAgQ29udHJvbGxlclRlYXJkb3duKF9f
RnJvbnRlbmRHZXRDb250cm9sbGVyKEZyb250ZW5kKSk7CiAgICAgRnJvbnRlbmQtPkNvbnRyb2xs
ZXIgPSBOVUxMOwogCisgICAgUG9sbGVyVGVhcmRvd24oX19Gcm9udGVuZEdldFBvbGxlcihGcm9u
dGVuZCkpOworICAgIEZyb250ZW5kLT5Qb2xsZXIgPSBOVUxMOworCiAgICAgVHJhbnNtaXR0ZXJU
ZWFyZG93bihfX0Zyb250ZW5kR2V0VHJhbnNtaXR0ZXIoRnJvbnRlbmQpKTsKICAgICBGcm9udGVu
ZC0+VHJhbnNtaXR0ZXIgPSBOVUxMOwogCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5k
LmggYi9zcmMveGVudmlmL2Zyb250ZW5kLmgKaW5kZXggOGU1NTUyZS4uOTIwMDhkMCAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi9mcm9udGVuZC5oCisrKyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuaApA
QCAtMTY2LDYgKzE2NiwxMyBAQCBGcm9udGVuZEdldFRyYW5zbWl0dGVyKAogICAgIElOICBQWEVO
VklGX0ZST05URU5EICAgIEZyb250ZW5kCiAgICAgKTsKIAorI2luY2x1ZGUgInBvbGxlci5oIgor
CitleHRlcm4gUFhFTlZJRl9QT0xMRVIKK0Zyb250ZW5kR2V0UG9sbGVyKAorICAgIElOICBQWEVO
VklGX0ZST05URU5EICAgIEZyb250ZW5kCisgICAgKTsKKwogI2luY2x1ZGUgImNvbnRyb2xsZXIu
aCIKIAogZXh0ZXJuIFBYRU5WSUZfQ09OVFJPTExFUgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9w
b2xsZXIuYyBiL3NyYy94ZW52aWYvcG9sbGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNGFjMzU4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy94ZW52aWYvcG9sbGVyLmMK
QEAgLTAsMCArMSwyMTcgQEAKKy8qIENvcHlyaWdodCAoYykgQ2l0cml4IFN5c3RlbXMgSW5jLgor
ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLAorICogd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZAorICogdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKKyAqCisgKiAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUKKyAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICog
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWV0YXRpb24gYW5kL29y
IG90aGVyCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8bnRkZGsuaD4KKyNpbmNsdWRlIDxw
cm9jZ3JwLmg+CisjaW5jbHVkZSA8bnRzdHJzYWZlLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+Cisj
aW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8eGVuLmg+CisKKyNpbmNsdWRlIDxkZWJ1Z19p
bnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxzdG9yZV9pbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxldnRj
aG5faW50ZXJmYWNlLmg+CisKKyNpbmNsdWRlICJwZG8uaCIKKyNpbmNsdWRlICJmcm9udGVuZC5o
IgorI2luY2x1ZGUgInBvbGxlci5oIgorI2luY2x1ZGUgInZpZi5oIgorI2luY2x1ZGUgInRocmVh
ZC5oIgorI2luY2x1ZGUgInJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiZGJnX3ByaW50LmgiCisjaW5j
bHVkZSAiYXNzZXJ0LmgiCisjaW5jbHVkZSAidXRpbC5oIgorCisjZGVmaW5lIE1BWE5BTUVMRU4g
IDEyOAorCitzdHJ1Y3QgX1hFTlZJRl9QT0xMRVIgeworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAg
ICAgIEZyb250ZW5kOworICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgIERlYnVnSW50ZXJmYWNl
OworICAgIFBYRU5CVVNfREVCVUdfQ0FMTEJBQ0sgIERlYnVnQ2FsbGJhY2s7Cit9OworCisjZGVm
aW5lIFhFTlZJRl9QT0xMRVJfVEFHICAnTExPUCcKKworc3RhdGljIEZPUkNFSU5MSU5FIFBWT0lE
CitfX1BvbGxlckFsbG9jYXRlKAorICAgIElOICBVTE9ORyAgIExlbmd0aAorICAgICkKK3sKKyAg
ICByZXR1cm4gX19BbGxvY2F0ZVBvb2xXaXRoVGFnKE5vblBhZ2VkUG9vbCwgTGVuZ3RoLCBYRU5W
SUZfUE9MTEVSX1RBRyk7Cit9CisKK3N0YXRpYyBGT1JDRUlOTElORSBWT0lECitfX1BvbGxlckZy
ZWUoCisgICAgSU4gIFBWT0lEICAgQnVmZmVyCisgICAgKQoreworICAgIF9fRnJlZVBvb2xXaXRo
VGFnKEJ1ZmZlciwgWEVOVklGX1BPTExFUl9UQUcpOworfQorCitzdGF0aWMgVk9JRAorUG9sbGVy
RGVidWdDYWxsYmFjaygKKyAgICBJTiAgUFZPSUQgICBBcmd1bWVudCwKKyAgICBJTiAgQk9PTEVB
TiBDcmFzaGluZworICAgICkKK3sKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKEFyZ3VtZW50
KTsKKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENyYXNoaW5nKTsKK30KKworTlRTVEFUVVMK
K1BvbGxlckluaXRpYWxpemUoCisgICAgSU4gIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQs
CisgICAgT1VUIFBYRU5WSUZfUE9MTEVSICAgICAgKlBvbGxlcgorICAgICkKK3sKKyAgICBOVFNU
QVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICAqUG9sbGVyID0gX19Qb2xsZXJBbGxv
Y2F0ZShzaXplb2YgKFhFTlZJRl9QT0xMRVIpKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19OT19N
RU1PUlk7CisgICAgaWYgKCpQb2xsZXIgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKwor
ICAgIEZkb0dldERlYnVnSW50ZXJmYWNlKFBkb0dldEZkbyhGcm9udGVuZEdldFBkbyhGcm9udGVu
ZCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICYoKlBvbGxlciktPkRlYnVnSW50ZXJmYWNl
KTsKKworICAgICgqUG9sbGVyKS0+RnJvbnRlbmQgPSBGcm9udGVuZDsKKworICAgIHJldHVybiBT
VEFUVVNfU1VDQ0VTUzsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3Rh
dHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitQb2xsZXJDb25uZWN0
KAorICAgIElOICBQWEVOVklGX1BPTExFUiAgUG9sbGVyCisgICAgKQoreworICAgIE5UU1RBVFVT
ICAgICAgICAgICAgc3RhdHVzOworCisgICAgVHJhY2UoIj09PT0+XG4iKTsKKworICAgIHN0YXR1
cyA9IFhFTkJVU19ERUJVRyhBY3F1aXJlLCAmUG9sbGVyLT5EZWJ1Z0ludGVyZmFjZSk7CisgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICBzdGF0
dXMgPSBYRU5CVVNfREVCVUcoUmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZQ
b2xsZXItPkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBfX01PRFVM
RV9fICJ8UE9MTEVSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUG9sbGVyRGVidWdDYWxs
YmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUG9sbGVyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAmUG9sbGVyLT5EZWJ1Z0NhbGxiYWNrKTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMjsKKworICAgIFRyYWNlKCI8PT09PVxuIik7Cisg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIp
OworCisgICAgWEVOQlVTX0RFQlVHKFJlbGVhc2UsICZQb2xsZXItPkRlYnVnSW50ZXJmYWNlKTsK
KworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJl
dHVybiBzdGF0dXM7Cit9CisKK05UU1RBVFVTCitQb2xsZXJTdG9yZVdyaXRlKAorICAgIElOICBQ
WEVOVklGX1BPTExFUiAgICAgICAgICAgICAgUG9sbGVyLAorICAgIElOICBQWEVOQlVTX1NUT1JF
X1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rpb24KKyAgICApCit7CisgICAgVU5SRUZFUkVOQ0VEX1BB
UkFNRVRFUihQb2xsZXIpOworICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoVHJhbnNhY3Rpb24p
OworCisgICAgVHJhY2UoIjw9PT0+XG4iKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsK
K30KKworTlRTVEFUVVMKK1BvbGxlckVuYWJsZSgKKyAgICBJTiAgUFhFTlZJRl9QT0xMRVIgICAg
ICBQb2xsZXIKKyAgICApCit7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihQb2xsZXIpOwor
CisgICAgVHJhY2UoIjw9PT0+XG4iKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKK30K
KworVk9JRAorUG9sbGVyRGlzYWJsZSgKKyAgICBJTiAgUFhFTlZJRl9QT0xMRVIgICAgICBQb2xs
ZXIKKyAgICApCit7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihQb2xsZXIpOworCisgICAg
VHJhY2UoIjw9PT0+XG4iKTsKK30KKworVk9JRAorUG9sbGVyRGlzY29ubmVjdCgKKyAgICBJTiAg
UFhFTlZJRl9QT0xMRVIgIFBvbGxlcgorICAgICkKK3sKKyAgICBUcmFjZSgiPT09PT5cbiIpOwor
CisgICAgWEVOQlVTX0RFQlVHKERlcmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgICZQb2xsZXIt
PkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICBQb2xsZXItPkRlYnVnQ2FsbGJhY2sp
OworICAgIFBvbGxlci0+RGVidWdDYWxsYmFjayA9IE5VTEw7CisKKyAgICBYRU5CVVNfREVCVUco
UmVsZWFzZSwgJlBvbGxlci0+RGVidWdJbnRlcmZhY2UpOworCisgICAgVHJhY2UoIjw9PT09XG4i
KTsKK30KKworVk9JRAorUG9sbGVyVGVhcmRvd24oCisgICAgSU4gIFBYRU5WSUZfUE9MTEVSICBQ
b2xsZXIKKyAgICApCit7CisgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgUEFT
U0lWRV9MRVZFTCk7CisKKyAgICBSdGxaZXJvTWVtb3J5KCZQb2xsZXItPkRlYnVnSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7CisK
KyAgICBBU1NFUlQoSXNaZXJvTWVtb3J5KFBvbGxlciwgc2l6ZW9mIChYRU5WSUZfUE9MTEVSKSkp
OworICAgIF9fUG9sbGVyRnJlZShQb2xsZXIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9w
b2xsZXIuaCBiL3NyYy94ZW52aWYvcG9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNWJhMGVhYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy94ZW52aWYvcG9sbGVyLmgK
QEAgLTAsMCArMSw4MCBAQAorLyogQ29weXJpZ2h0IChjKSBDaXRyaXggU3lzdGVtcyBJbmMuCisg
KiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsCisgKiB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkCisgKiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0OgorICoKKyAqICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZQorICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogKiAg
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
CisgKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyCisgKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQKKyAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCisgKiBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIF9YRU5WSUZfUE9MTEVSX0gKKyNkZWZp
bmUgX1hFTlZJRl9QT0xMRVJfSAorCisjaW5jbHVkZSA8bnRkZGsuaD4KKworI2luY2x1ZGUgPHZp
Zl9pbnRlcmZhY2UuaD4KKworI2luY2x1ZGUgImZyb250ZW5kLmgiCisKK3R5cGVkZWYgc3RydWN0
IF9YRU5WSUZfUE9MTEVSIFhFTlZJRl9QT0xMRVIsICpQWEVOVklGX1BPTExFUjsKKworZXh0ZXJu
IE5UU1RBVFVTCitQb2xsZXJJbml0aWFsaXplKAorICAgIElOICBQWEVOVklGX0ZST05URU5EICAg
IEZyb250ZW5kLAorICAgIE9VVCBQWEVOVklGX1BPTExFUiAgKlBvbGxlcgorICAgICk7CisKK2V4
dGVybiBOVFNUQVRVUworUG9sbGVyQ29ubmVjdCgKKyAgICBJTiAgUFhFTlZJRl9QT0xMRVIgIFBv
bGxlcgorICAgICk7CisKK2V4dGVybiBOVFNUQVRVUworUG9sbGVyU3RvcmVXcml0ZSgKKyAgICBJ
TiAgUFhFTlZJRl9QT0xMRVIgICAgICAgICAgUG9sbGVyLAorICAgIElOICBQWEVOQlVTX1NUT1JF
X1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rpb24KKyAgICApOworCitleHRlcm4gTlRTVEFUVVMKK1Bv
bGxlckVuYWJsZSgKKyAgICBJTiAgUFhFTlZJRl9QT0xMRVIgIFBvbGxlcgorICAgICk7CisKK2V4
dGVybiBWT0lECitQb2xsZXJEaXNhYmxlKAorICAgIElOICBQWEVOVklGX1BPTExFUiAgUG9sbGVy
CisgICAgKTsKKworZXh0ZXJuIFZPSUQKK1BvbGxlckRpc2Nvbm5lY3QoCisgICAgSU4gIFBYRU5W
SUZfUE9MTEVSICBQb2xsZXIKKyAgICApOworCitleHRlcm4gVk9JRAorUG9sbGVyVGVhcmRvd24o
CisgICAgSU4gIFBYRU5WSUZfUE9MTEVSICBQb2xsZXIKKyAgICApOworCisjZW5kaWYgIC8vIF9Y
RU5WSUZfUE9MTEVSX0gKZGlmZiAtLWdpdCBhL3ZzMjAxNS94ZW52aWYveGVudmlmLnZjeHByb2og
Yi92czIwMTUveGVudmlmL3hlbnZpZi52Y3hwcm9qCmluZGV4IDA3NmQ4NzMuLmNjMzlmOGQgMTAw
NjQ0Ci0tLSBhL3ZzMjAxNS94ZW52aWYveGVudmlmLnZjeHByb2oKKysrIGIvdnMyMDE1L3hlbnZp
Zi94ZW52aWYudmN4cHJvagpAQCAtNzMsNiArNzMsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi4vLi4vc3JjL3hlbnZpZi9tYWMuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
Ly4uL3NyYy94ZW52aWYvcGFyc2UuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uLy4u
L3NyYy94ZW52aWYvcGRvLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMv
eGVudmlmL3BvbGxlci5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hl
bnZpZi9yZWNlaXZlci5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hl
bnZpZi9yZWdpc3RyeS5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hl
bnZpZi9zZXR0aW5ncy5jIiAvPgotLSAKMi41LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:40:21 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:40:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6epx-0006hb-U1; Mon, 23 Oct 2017 15:40:21 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6epw-0006gN-7k
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:40:20 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
 D4/17-10698-36D0EE95; Mon, 23 Oct 2017 15:40:19 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFIsWRWlGSWpSXmKPExsXitHRDpG4S77t
 Ig90PrCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxoSHW9gLflhXnN7fy9LAOEW3i5GTQ0LAX6Ll
 0Bw2EJtNQEdi6tNLrCC2iIC6xL7PW5lAbGYBLYmGiUvAbGEBN4lXb7oYQWwWAVWJZatOgNXzA
 sVP3jnO0sXIATRTTqJ7pxtImFPAXeL97D6wViGgki8n5zFC2CoS66fOYoNoFZQ4OfMJC8QqCY
 mDL14wT2DknYUkNQtJagEj0ypG9eLUorLUIl0jvaSizPSMktzEzBxdQwNjvdzU4uLE9NScxKR
 iveT83E2MwLCpZ2Bg3MF4qtn5EKMkB5OSKO/vnLeRQnxJ+SmVGYnFGfFFpTmpxYcYZTg4lCR4
 V/O8ixQSLEpNT61Iy8wBBjBMWoKDR0mEdydImre4IDG3ODMdInWK0ZLj2KbLf5g4Om7eBZLPZ
 r5uYBZiycvPS5US57UDaRAAacgozYMbB4uyS4yyUsK8jAwMDEI8BalFuZklqPKvGMU5GJWEef
 eATOHJzCuB2/oK6CAmoINk7d+AHFSSiJCSamBcvDuZcd6ZnyWLHsz1WBded0uKwdJ+7/nMzV1
 Gl/6xde+8aP97sV6aBsPcgyeFZPT8xG5z7NIRmlV7rPlgrp50ieHf6jnViXu79ga8+dz3efa+
 vfvSt67JmRtwaOqxrrvfz4nnfvbcoHphq8Slq4/P2xRvnrLnfsfLr7KiFgy/W292zmXbzPXCT
 omlOCPRUIu5qDgRAMVe6FGtAgAA
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-31.messagelabs.com!1508773216!111630425!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8099 invoked from network); 23 Oct 2017 15:40:18 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-8.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:40:18 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="447698187"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 23 Oct 2017 16:40:07 +0100
Message-ID: <1508773207-3260-3-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
In-Reply-To: <1508773207-3260-1-git-send-email-paul.durrant@citrix.com>
References: <1508773207-3260-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 3/3] Make use of possible XENBUS_EVTCHN
	Unmask failure
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QnVtcCB1cCB0byB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgWEVOQlVTX0VWVENITiBhbmQgc3BlY2lm
eSB0aGUgb3B0aW9uCnRvIFVubWFzayB0aGF0IGFsbG93cyBpdCB0byBmYWlsLiBJbiB0aGlzIGNp
cmN1bXN0YW5jZSBpdCBpcyBwb3NzaWJsZSB0bwphdm9pZCBkcm9wcGluZyBvdXQgb2YgdGhlIERQ
QyBhbmQgdGh1cyBhdm9pZCBhIGNvbnRleHQgc3dpdGNoIGFuZCByZS1xdWV1ZS4KClNpZ25lZC1v
ZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQogaW5jbHVk
ZS9ldnRjaG5faW50ZXJmYWNlLmggfCA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0KIHNyYy94ZW52aWYuaW5mICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBzcmMv
eGVudmlmL2NvbnRyb2xsZXIuYyAgICB8ICA5ICsrKysrLS0tLQogc3JjL3hlbnZpZi9wb2xsZXIu
YyAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQs
IDU5IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv
ZXZ0Y2huX2ludGVyZmFjZS5oIGIvaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmgKaW5kZXggMzEw
ODUwYi4uMDY4YTY5NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmgKKysr
IGIvaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmgKQEAgLTEyOCwxOCArMTI4LDI3IEBAIHR5cGVk
ZWYgTlRTVEFUVVMKICAgICBJTiAgVUNIQVIgICAgICAgICAgICAgICAgICAgTnVtYmVyCiAgICAg
KTsKIAordHlwZWRlZiBWT0lECisoKlhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0KSgKKyAgICBJTiAg
UElOVEVSRkFDRSAgICAgICAgICAgICAgSW50ZXJmYWNlLAorICAgIElOICBQWEVOQlVTX0VWVENI
Tl9DSEFOTkVMICBDaGFubmVsLAorICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBJbkNh
bGxiYWNrCisgICAgKTsKKwogLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fVU5NQVNLCiAgICAg
XGJyaWVmIFVubWFzayBhbiBldmVudCBjaGFubmVsCiAKICAgICBccGFyYW0gSW50ZXJmYWNlIFRo
ZSBpbnRlcmZhY2UgaGVhZGVyCiAgICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxl
CiAgICAgXHBhcmFtIEluQ2FsbGJhY2sgU2V0IHRvIFRSVUUgaWYgdGhpcyBtZXRob2QgaXMgaW52
b2tlZCBpbiBjb250ZXh0IG9mIHRoZSBjaGFubmVsIGNhbGxiYWNrCisgICAgXHBhcmFtIEZvcmNl
IFNldCB0byBUUlVFIGlmIHRoZSB1bm1hc2sgbXVzdCBzdWNjZWVkLCBvdGhlcndpc2Ugc2V0IHRv
IEZBTFNFIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gRkFMU0UgaWYgdGhlIHVubWFzayBk
aWQgbm90IGNvbXBsZXRlLgogKi8KLXR5cGVkZWYgVk9JRAordHlwZWRlZiBCT09MRUFOCiAoKlhF
TkJVU19FVlRDSE5fVU5NQVNLKSgKICAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgSW50
ZXJmYWNlLAogICAgIElOICBQWEVOQlVTX0VWVENITl9DSEFOTkVMICBDaGFubmVsLAotICAgIElO
ICBCT09MRUFOICAgICAgICAgICAgICAgICBJbkNhbGxiYWNrCisgICAgSU4gIEJPT0xFQU4gICAg
ICAgICAgICAgICAgIEluQ2FsbGJhY2ssCisgICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAg
IEZvcmNlCiAgICAgKTsKIAogdHlwZWRlZiBWT0lECkBAIC0yNTAsNyArMjU5LDcgQEAgc3RydWN0
IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNCB7CiAgICAgWEVOQlVTX0VWVENITl9SRUxFQVNF
ICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hOX09QRU4gICAgICBFdnRjaG5PcGVu
OwogICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7Ci0gICAgWEVOQlVTX0VW
VENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOworICAgIFhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0
IEV2dGNoblVubWFza1ZlcnNpb240OwogICAgIFhFTkJVU19FVlRDSE5fU0VORF9WMSAgIEV2dGNo
blNlbmRWZXJzaW9uMTsKICAgICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRjaG5UcmlnZ2Vy
OwogICAgIFhFTkJVU19FVlRDSE5fR0VUX1BPUlQgIEV2dGNobkdldFBvcnQ7CkBAIC0yNjcsNyAr
Mjc2LDcgQEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNSB7CiAgICAgWEVOQlVT
X0VWVENITl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hOX09QRU4g
ICAgICBFdnRjaG5PcGVuOwogICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7
Ci0gICAgWEVOQlVTX0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOworICAgIFhFTkJVU19F
VlRDSE5fVU5NQVNLX1Y0IEV2dGNoblVubWFza1ZlcnNpb240OwogICAgIFhFTkJVU19FVlRDSE5f
U0VORF9WMSAgIEV2dGNoblNlbmRWZXJzaW9uMTsKICAgICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIg
ICBFdnRjaG5UcmlnZ2VyOwogICAgIFhFTkJVU19FVlRDSE5fV0FJVF9WNSAgIEV2dGNobldhaXRW
ZXJzaW9uNTsKQEAgLTI4NSw3ICsyOTQsNyBAQCBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJG
QUNFX1Y2IHsKICAgICBYRU5CVVNfRVZUQ0hOX1JFTEVBU0UgICBFdnRjaG5SZWxlYXNlOwogICAg
IFhFTkJVU19FVlRDSE5fT1BFTiAgICAgIEV2dGNobk9wZW47CiAgICAgWEVOQlVTX0VWVENITl9C
SU5EICAgICAgRXZ0Y2huQmluZDsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTSyAgICBFdnRjaG5V
bm1hc2s7CisgICAgWEVOQlVTX0VWVENITl9VTk1BU0tfVjQgRXZ0Y2huVW5tYXNrVmVyc2lvbjQ7
CiAgICAgWEVOQlVTX0VWVENITl9TRU5EICAgICAgRXZ0Y2huU2VuZDsKICAgICBYRU5CVVNfRVZU
Q0hOX1RSSUdHRVIgICBFdnRjaG5UcmlnZ2VyOwogICAgIFhFTkJVU19FVlRDSE5fV0FJVF9WNSAg
IEV2dGNobldhaXRWZXJzaW9uNTsKQEAgLTMwMyw2ICszMTIsMjUgQEAgc3RydWN0IF9YRU5CVVNf
RVZUQ0hOX0lOVEVSRkFDRV9WNyB7CiAgICAgWEVOQlVTX0VWVENITl9SRUxFQVNFICAgRXZ0Y2hu
UmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hOX09QRU4gICAgICBFdnRjaG5PcGVuOwogICAgIFhF
TkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7CisgICAgWEVOQlVTX0VWVENITl9VTk1B
U0tfVjQgRXZ0Y2huVW5tYXNrVmVyc2lvbjQ7CisgICAgWEVOQlVTX0VWVENITl9TRU5EICAgICAg
RXZ0Y2huU2VuZDsKKyAgICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRjaG5UcmlnZ2VyOwor
ICAgIFhFTkJVU19FVlRDSE5fR0VUX0NPVU5UIEV2dGNobkdldENvdW50OworICAgIFhFTkJVU19F
VlRDSE5fV0FJVCAgICAgIEV2dGNobldhaXQ7CisgICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAg
RXZ0Y2huR2V0UG9ydDsKKyAgICBYRU5CVVNfRVZUQ0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsK
K307CisKKy8qISBcc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WOAorICAgIFxicmll
ZiBFVlRDSE4gaW50ZXJmYWNlIHZlcnNpb24gOAorICAgIFxpbmdyb3VwIGludGVyZmFjZXMKKyov
CitzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y4IHsKKyAgICBJTlRFUkZBQ0UgICAg
ICAgICAgICAgICBJbnRlcmZhY2U7CisgICAgWEVOQlVTX0VWVENITl9BQ1FVSVJFICAgRXZ0Y2hu
QWNxdWlyZTsKKyAgICBYRU5CVVNfRVZUQ0hOX1JFTEVBU0UgICBFdnRjaG5SZWxlYXNlOworICAg
IFhFTkJVU19FVlRDSE5fT1BFTiAgICAgIEV2dGNobk9wZW47CisgICAgWEVOQlVTX0VWVENITl9C
SU5EICAgICAgRXZ0Y2huQmluZDsKICAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTSyAgICBFdnRjaG5V
bm1hc2s7CiAgICAgWEVOQlVTX0VWVENITl9TRU5EICAgICAgRXZ0Y2huU2VuZDsKICAgICBYRU5C
VVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRjaG5UcmlnZ2VyOwpAQCAtMzEyLDcgKzM0MCw3IEBAIHN0
cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjcgewogICAgIFhFTkJVU19FVlRDSE5fQ0xP
U0UgICAgIEV2dGNobkNsb3NlOwogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5f
SU5URVJGQUNFX1Y3IFhFTkJVU19FVlRDSE5fSU5URVJGQUNFLCAqUFhFTkJVU19FVlRDSE5fSU5U
RVJGQUNFOwordHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y4IFhFTkJV
U19FVlRDSE5fSU5URVJGQUNFLCAqUFhFTkJVU19FVlRDSE5fSU5URVJGQUNFOwogCiAvKiEgXGRl
ZiBYRU5CVVNfRVZUQ0hOCiAgICAgXGJyaWVmIE1hY3JvIGF0IGFzc2lzdCBpbiBtZXRob2QgaW52
b2NhdGlvbgpAQCAtMzIzLDcgKzM1MSw3IEBAIHR5cGVkZWYgc3RydWN0IF9YRU5CVVNfRVZUQ0hO
X0lOVEVSRkFDRV9WNyBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSwgKlBYRU5CVVNfRVZUCiAjZW5k
aWYgIC8vIF9XSU5ETEwKIAogI2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9O
X01JTiA0Ci0jZGVmaW5lIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUFYIDcKKyNk
ZWZpbmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggOAogCiAjZW5kaWYgIC8v
IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9ICiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYuaW5m
IGIvc3JjL3hlbnZpZi5pbmYKaW5kZXggYmM0ZTU1NS4uZWY0ZTliYyAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZpZi5pbmYKKysrIGIvc3JjL3hlbnZpZi5pbmYKQEAgLTU5LDkgKzU5LDkgQEAgeGVudmlm
X2NvaW5zdF9ATUFKT1JfVkVSU0lPTkBfQE1JTk9SX1ZFUlNJT05AX0BNSUNST19WRVJTSU9OQF9A
QlVJTERfTlVNQkVSQC5kbGwKIDsgRGlzcGxheU5hbWUJCVNlY3Rpb24JCURldmljZUlECiA7IC0t
LS0tLS0tLS0tCQktLS0tLS0tCQktLS0tLS0tLQogCi0lWGVuVmlmTmFtZSUJCT1YZW5WaWZfSW5z
dCwJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEBAVkVORE9SX0RFVklDRV9JREAmREVWX1ZJRiZS
RVZfMDkwMDAwMDIKLSVYZW5WaWZOYW1lJQkJPVhlblZpZl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5E
T1JfUFJFRklYQDAwMDEmREVWX1ZJRiZSRVZfMDkwMDAwMDIKLSVYZW5WaWZOYW1lJQkJPVhlblZp
Zl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQDAwMDImREVWX1ZJRiZSRVZfMDkwMDAw
MDIKKyVYZW5WaWZOYW1lJQkJPVhlblZpZl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklY
QEBWRU5ET1JfREVWSUNFX0lEQCZERVZfVklGJlJFVl8wOTAwMDAwMworJVhlblZpZk5hbWUlCQk9
WGVuVmlmX0luc3QsCVhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMSZERVZfVklGJlJFVl8w
OTAwMDAwMworJVhlblZpZk5hbWUlCQk9WGVuVmlmX0luc3QsCVhFTkJVU1xWRU5fQFZFTkRPUl9Q
UkVGSVhAMDAwMiZERVZfVklGJlJFVl8wOTAwMDAwMwogCiBbWGVuVmlmX0luc3RdIAogQ29weUZp
bGVzPVhlblZpZl9Db3B5ZmlsZXMKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvY29udHJvbGxlci5j
IGIvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKaW5kZXggNjI5YjZiNy4uMDA0YmNjYiAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKKysrIGIvc3JjL3hlbnZpZi9jb250cm9sbGVy
LmMKQEAgLTUwMiwxMCArNTAyLDExIEBAIENvbnRyb2xsZXJDb25uZWN0KAogICAgIGlmIChDb250
cm9sbGVyLT5DaGFubmVsID09IE5VTEwpCiAgICAgICAgIGdvdG8gZmFpbDk7CiAKLSAgICBYRU5C
VVNfRVZUQ0hOKFVubWFzaywKLSAgICAgICAgICAgICAgICAgICZDb250cm9sbGVyLT5FdnRjaG5J
bnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICBDb250cm9sbGVyLT5DaGFubmVsLAotICAgICAg
ICAgICAgICAgICAgRkFMU0UpOworICAgIChWT0lEKSBYRU5CVVNfRVZUQ0hOKFVubWFzaywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAmQ29udHJvbGxlci0+RXZ0Y2huSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXItPkNoYW5uZWwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7CiAKICAg
ICBzdGF0dXMgPSBYRU5CVVNfREVCVUcoUmVnaXN0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZDb250cm9sbGVyLT5EZWJ1Z0ludGVyZmFjZSwKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYv
cG9sbGVyLmMgYi9zcmMveGVudmlmL3BvbGxlci5jCmluZGV4IDdiNjAwMjIuLjM3MDZjYWIgMTAw
NjQ0Ci0tLSBhL3NyYy94ZW52aWYvcG9sbGVyLmMKKysrIGIvc3JjL3hlbnZpZi9wb2xsZXIuYwpA
QCAtMzMwLDEwICszMzAsMTEgQEAgUG9sbGVyQ2hhbm5lbENvbm5lY3QoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgUHJvY051bWJlci5Hcm91cCwKICAgICAgICAgICAgICAgICAgICAgICAgICBQ
cm9jTnVtYmVyLk51bWJlcik7CiAKLSAgICBYRU5CVVNfRVZUQ0hOKFVubWFzaywKLSAgICAgICAg
ICAgICAgICAgICZQb2xsZXItPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgIENo
YW5uZWwtPkNoYW5uZWwsCi0gICAgICAgICAgICAgICAgICBGQUxTRSk7CisgICAgKFZPSUQpIFhF
TkJVU19FVlRDSE4oVW5tYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICZQb2xsZXItPkV2
dGNobkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBDaGFubmVsLT5DaGFubmVs
LAorICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIFRSVUUpOwogCiBkb25lOgogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKQEAgLTM5MSw2
ICszOTIsNyBAQCBQb2xsZXJDaGFubmVsVW5tYXNrKAogewogICAgIFBYRU5WSUZfUE9MTEVSX0lO
U1RBTkNFICAgICBJbnN0YW5jZTsKICAgICBQWEVOVklGX1BPTExFUiAgICAgICAgICAgICAgUG9s
bGVyOworICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICBQZW5kaW5nOwogCiAgICAgSW5z
dGFuY2UgPSBDaGFubmVsLT5JbnN0YW5jZTsKICAgICBQb2xsZXIgPSBJbnN0YW5jZS0+UG9sbGVy
OwpAQCAtMzk4LDExICs0MDAsMTYgQEAgUG9sbGVyQ2hhbm5lbFVubWFzaygKICAgICBpZiAoQ2hh
bm5lbC0+Q2hhbm5lbCA9PSBOVUxMKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIVBvbGxl
ckNoYW5uZWxUZXN0UGVuZGluZyhDaGFubmVsKSkKLSAgICAgICAgWEVOQlVTX0VWVENITihVbm1h
c2ssCi0gICAgICAgICAgICAgICAgICAgICAgJlBvbGxlci0+RXZ0Y2huSW50ZXJmYWNlLAotICAg
ICAgICAgICAgICAgICAgICAgIENoYW5uZWwtPkNoYW5uZWwsCi0gICAgICAgICAgICAgICAgICAg
ICAgRkFMU0UpOworICAgIGlmIChQb2xsZXJDaGFubmVsVGVzdFBlbmRpbmcoQ2hhbm5lbCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFBlbmRpbmcgPSBYRU5CVVNfRVZUQ0hOKFVubWFzaywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmUG9sbGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbm5lbC0+Q2hhbm5lbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSk7
CisgICAgaWYgKFBlbmRpbmcpCisgICAgICAgIFBvbGxlckNoYW5uZWxTZXRQZW5kaW5nKENoYW5u
ZWwpOwogfQogCiBzdGF0aWMgVk9JRAotLSAKMi41LjMKCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:42:06 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:42:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6ere-0006lU-46; Mon, 23 Oct 2017 15:42:06 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6erb-0006lO-UV
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:42:04 +0000
Received: from [85.158.139.211] by server-4.bemta-5.messagelabs.com id
 2C/40-31302-BCD0EE95; Mon, 23 Oct 2017 15:42:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKIsWRWlGSWpSXmKPExsXitHSDve4p3ne
 RBlezLf4sTnRg9Dj84QpLAGMUa2ZeUn5FAmvGjBULmQt+PmGpONAg0MB4bTVzFyMnh4SAv8TE
 3a/ZQGw2AR2JqU8vsYLYIgLqEvs+b2UCsZkFtCQaJi4Bs4UFgiTWHdoGVsMioCpx/PECRhCbV
 8BNYuneFUA1HEAz5SS6d7qBhDkF3CXez+4DaxUCKvlych4jhK0isX7qLDaIVkGJkzOfsECskp
 A4+OIF8wRG3llIUrOQpBYwMq1i1ChOLSpLLdI1MtRLKspMzyjJTczM0TU0MNXLTS0uTkxPzUl
 MKtZLzs/dxAgMnHoGBsYdjHcn+x1ilORgUhLl/Z3zNlKILyk/pTIjsTgjvqg0J7X4EKMMB4eS
 BO9qnneRQoJFqempFWmZOcAQhklLcPAoifDuBEnzFhck5hZnpkOkTjEac3TcvPuHiePZzNcNz
 EIsefl5qVLivHYgpQIgpRmleXCDYLF1iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw7x6QKT
 yZeSVw+14BncIEdIqs/RuQU0oSEVJSDYx7KyV2vv+yyIn3lGXxp4UnZM0ry2qP37ry4IdGxXp
 mtazJq1OT//0qjrn3aaGeEV8Dp3TVbM8/Sv0r3r1fNX9FolTsDJVLARHPSmd2iu9ZwmXGaRj6
 0373xBYNpRl7jzlZBOpXGbIzNkUesmfcb/vupaDcwn0Lv/xIcnZr8XI/tOW+8aUfOpxKLMUZi
 YZazEXFiQBeHa3qqAIAAA==
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-206.messagelabs.com!1508773319!108369629!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 30317 invoked from network); 23 Oct 2017 15:42:01 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:42:01 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="455581429"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 23 Oct 2017 16:40:06 +0100
Message-ID: <1508773207-3260-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
In-Reply-To: <1508773207-3260-1-git-send-email-paul.durrant@citrix.com>
References: <1508773207-3260-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/3] Move the Receiver and Transmitter event
	and DPC processing...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

Li4uaW50byB0aGUgbmV3IFBvbGxlciBzdWItc3lzdGVtLgoKRm9yIGVmZmljaWVuY3kgaXQgaXMg
ZGVzaXJhYmxlIHRvIGhhdmUgYSBzaW5nbGUgRFBDIGhhbmRsZSBib3RoIFJlY2VpdmVyCmFuZCBU
cmFuc21pdHRlciBwb2xsaW5nLCBldmVuIGlmIHRoZXJlIGFyZSBzZXBhcmF0ZSBldmVudCBjaGFu
bmVscyBmb3IKdGhlIHNoYXJlZCByaW5ncy4KClRoaXMgcGF0Y2ggbW92ZXMgYWxsIHRoZSBiYXNp
YyBldmVudCBhbmQgRFBDIGNvZGUgaW50byB0aGUgUG9sbGVyCnN1YnN5c3RlbSwgd2hpY2ggY2Fs
bHMgYmFjayBpbnRvIHRoZSBUcmFuc21pdHRlciBhbmQgUmVjZWl2ZXIgc3ViLXN5c3RlbXMKKHRv
IHBvbGwgdGhlIHNoYXJlZCByaW5ncykgZnJvbSBpdHMgc2luZ2xlIHBlci1DUFUgRFBDLgoKU2ln
bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCiBz
cmMveGVudmlmL2Zyb250ZW5kLmMgICAgfCAgIDQ4IC0tCiBzcmMveGVudmlmL2Zyb250ZW5kLmgg
ICAgfCAgIDEwIC0KIHNyYy94ZW52aWYvcG9sbGVyLmMgICAgICB8IDEzMjIgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL3hlbnZpZi9wb2xsZXIuaCAg
ICAgIHwgICAyNCArLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgIHwgIDM5MyArKystLS0tLS0t
LS0tLQogc3JjL3hlbnZpZi9yZWNlaXZlci5oICAgIHwgICAgNiArCiBzcmMveGVudmlmL3RyYW5z
bWl0dGVyLmMgfCAgMzgxICsrLS0tLS0tLS0tLS0KIHNyYy94ZW52aWYvdHJhbnNtaXR0ZXIuaCB8
ICAgIDYgKwogOCBmaWxlcyBjaGFuZ2VkLCAxNDQ5IGluc2VydGlvbnMoKyksIDc0MSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL2Zyb250ZW5kLmMgYi9zcmMveGVudmlmL2Zy
b250ZW5kLmMKaW5kZXggZjcxNWMxOS4uOTk0OTM1NyAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5jCisrKyBiL3NyYy94ZW52aWYvZnJvbnRlbmQuYwpAQCAtODEsNyArODEsNiBAQCBz
dHJ1Y3QgX1hFTlZJRl9GUk9OVEVORCB7CiAgICAgVVNIT1JUICAgICAgICAgICAgICAgICAgICAg
IEJhY2tlbmREb21haW47CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIE1heFF1ZXVl
czsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgTnVtUXVldWVzOwotICAgIEJPT0xF
QU4gICAgICAgICAgICAgICAgICAgICBTcGxpdDsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICAgICAgRGlzYWJsZVRvZXBsaXR6OwogCiAgICAgUFhFTlZJRl9NQUMgICAgICAgICAgICAgICAg
IE1hYzsKQEAgLTE4MDAsNTAgKzE3OTksNiBAQCBGcm9udGVuZEdldE51bVF1ZXVlcygKICAgICBy
ZXR1cm4gX19Gcm9udGVuZEdldE51bVF1ZXVlcyhGcm9udGVuZCk7CiB9CiAKLXN0YXRpYyBWT0lE
Ci1Gcm9udGVuZFNldFNwbGl0KAotICAgIElOICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5k
Ci0gICAgKQotewotICAgIFBDSEFSICAgICAgICAgICAgICAgICAgIEJ1ZmZlcjsKLSAgICBOVFNU
QVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7Ci0KLSAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUo
UmVhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFj
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgX19Gcm9udGVuZEdldEJhY2tlbmRQYXRoKEZyb250ZW5kKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgImZlYXR1cmUtc3BsaXQtZXZlbnQtY2hhbm5lbHMiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAmQnVmZmVyKTsKLSAgICBpZiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSB7Ci0g
ICAgICAgIEZyb250ZW5kLT5TcGxpdCA9IChCT09MRUFOKXN0cnRvbChCdWZmZXIsIE5VTEwsIDIp
OwotCi0gICAgICAgIFhFTkJVU19TVE9SRShGcmVlLAotICAgICAgICAgICAgICAgICAgICAgJkZy
b250ZW5kLT5TdG9yZUludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcik7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgRnJvbnRlbmQtPlNwbGl0ID0gRkFMU0U7Ci0gICAgfQotCi0g
ICAgSW5mbygiJXM6ICVzXG4iLCBfX0Zyb250ZW5kR2V0UGF0aChGcm9udGVuZCksCi0gICAgICAg
ICAoRnJvbnRlbmQtPlNwbGl0KSA/ICJUUlVFIiA6ICJGQUxTRSIpOwotfQotCi1zdGF0aWMgRk9S
Q0VJTkxJTkUgQk9PTEVBTgotX19Gcm9udGVuZElzU3BsaXQoCi0gICAgSU4gIFBYRU5WSUZfRlJP
TlRFTkQgICAgRnJvbnRlbmQKLSAgICApCi17Ci0gICAgcmV0dXJuIEZyb250ZW5kLT5TcGxpdDsK
LX0KLQotQk9PTEVBTgotRnJvbnRlbmRJc1NwbGl0KAotICAgIElOICBQWEVOVklGX0ZST05URU5E
ICAgIEZyb250ZW5kCi0gICAgKQotewotICAgIHJldHVybiBfX0Zyb250ZW5kSXNTcGxpdChGcm9u
dGVuZCk7Ci19Ci0KIHN0YXRpYyBGT1JDRUlOTElORSBOVFNUQVRVUwogX19Gcm9udGVuZFVwZGF0
ZUhhc2goCiAgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQsCkBAIC0yMjA4LDcg
KzIxNjMsNiBAQCBGcm9udGVuZENvbm5lY3QoCiAgICAgICAgIGdvdG8gZmFpbDM7CiAKICAgICBG
cm9udGVuZFNldE51bVF1ZXVlcyhGcm9udGVuZCk7Ci0gICAgRnJvbnRlbmRTZXRTcGxpdChGcm9u
dGVuZCk7CiAKICAgICBzdGF0dXMgPSBQb2xsZXJDb25uZWN0KF9fRnJvbnRlbmRHZXRQb2xsZXIo
RnJvbnRlbmQpKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKQEAgLTIzNjAsNyArMjMx
NCw2IEBAIGZhaWw0OgogCiAgICAgTWFjRGlzY29ubmVjdChfX0Zyb250ZW5kR2V0TWFjKEZyb250
ZW5kKSk7CiAKLSAgICBGcm9udGVuZC0+U3BsaXQgPSBGQUxTRTsKICAgICBGcm9udGVuZC0+TnVt
UXVldWVzID0gMDsKIAogZmFpbDM6CkBAIC0yMzk4LDcgKzIzNTEsNiBAQCBGcm9udGVuZERpc2Nv
bm5lY3QoCiAgICAgUG9sbGVyRGlzY29ubmVjdChfX0Zyb250ZW5kR2V0UG9sbGVyKEZyb250ZW5k
KSk7CiAgICAgTWFjRGlzY29ubmVjdChfX0Zyb250ZW5kR2V0TWFjKEZyb250ZW5kKSk7CiAKLSAg
ICBGcm9udGVuZC0+U3BsaXQgPSBGQUxTRTsKICAgICBGcm9udGVuZC0+TnVtUXVldWVzID0gMDsK
IAogICAgIFhFTkJVU19ERUJVRyhEZXJlZ2lzdGVyLApkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9m
cm9udGVuZC5oIGIvc3JjL3hlbnZpZi9mcm9udGVuZC5oCmluZGV4IDkyMDA4ZDAuLjdmM2I3YzUg
MTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvZnJvbnRlbmQuaAorKysgYi9zcmMveGVudmlmL2Zyb250
ZW5kLmgKQEAgLTEyMywxNiArMTIzLDYgQEAgRnJvbnRlbmRHZXROdW1RdWV1ZXMoCiAgICAgSU4g
IFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQKICAgICApOwogCi1leHRlcm4gQk9PTEVBTgot
RnJvbnRlbmRJc1NwbGl0KAotICAgIElOICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kCi0g
ICAgKTsKLQotZXh0ZXJuIEJPT0xFQU4KLUZyb250ZW5kSXNTcGxpdCgKLSAgICBJTiAgUFhFTlZJ
Rl9GUk9OVEVORCAgICBGcm9udGVuZAotICAgICk7Ci0KIGV4dGVybiBQQ0hBUgogRnJvbnRlbmRG
b3JtYXRQYXRoKAogICAgIElOICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kLApkaWZmIC0t
Z2l0IGEvc3JjL3hlbnZpZi9wb2xsZXIuYyBiL3NyYy94ZW52aWYvcG9sbGVyLmMKaW5kZXggNGFj
MzU4ZS4uN2I2MDAyMiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9wb2xsZXIuYworKysgYi9zcmMv
eGVudmlmL3BvbGxlci5jCkBAIC00Miw2ICs0Miw4IEBACiAKICNpbmNsdWRlICJwZG8uaCIKICNp
bmNsdWRlICJmcm9udGVuZC5oIgorI2luY2x1ZGUgInRyYW5zbWl0dGVyLmgiCisjaW5jbHVkZSAi
cmVjZWl2ZXIuaCIKICNpbmNsdWRlICJwb2xsZXIuaCIKICNpbmNsdWRlICJ2aWYuaCIKICNpbmNs
dWRlICJ0aHJlYWQuaCIKQEAgLTUyLDM4ICs1NCwxMDEzIEBACiAKICNkZWZpbmUgTUFYTkFNRUxF
TiAgMTI4CiAKK3R5cGVkZWYgc3RydWN0IF9YRU5WSUZfUE9MTEVSX0lOU1RBTkNFIFhFTlZJRl9Q
T0xMRVJfSU5TVEFOQ0UsICpQWEVOVklGX1BPTExFUl9JTlNUQU5DRTsKKwordHlwZWRlZiBlbnVt
IF9YRU5WSUZfUE9MTEVSX0NIQU5ORUxfVFlQRSB7CisgICAgWEVOVklGX1BPTExFUl9DSEFOTkVM
X1JFQ0VJVkVSLAorICAgIFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9UUkFOU01JVFRFUiwKKyAgICBY
RU5WSUZfUE9MTEVSX0NIQU5ORUxfQ09NQklORUQsCisgICAgWEVOVklGX1BPTExFUl9DSEFOTkVM
X1RZUEVfQ09VTlQKK30gWEVOVklGX1BPTExFUl9DSEFOTkVMX1RZUEUsICpQWEVOVklGX1BPTExF
Ul9DSEFOTkVMX1RZUEU7CisKKyNkZWZpbmUgWEVOVklGX1BPTExFUl9DSEFOTkVMX0lOVkFMSUQg
WEVOVklGX1BPTExFUl9DSEFOTkVMX1RZUEVfQ09VTlQKKwordHlwZWRlZiBzdHJ1Y3QgX1hFTlZJ
Rl9QT0xMRVJfQ0hBTk5FTCB7CisgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgICAgIEluc3Rh
bmNlOworICAgIFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9UWVBFICBUeXBlOworICAgIGNvbnN0IENI
QVIgICAgICAgICAgICAgICAgICAqTm9kZTsKKyAgICBQWEVOQlVTX0VWVENITl9DSEFOTkVMICAg
ICAgQ2hhbm5lbDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRzOworfSBY
RU5WSUZfUE9MTEVSX0NIQU5ORUwsICpQWEVOVklGX1BPTExFUl9DSEFOTkVMOworCitzdHJ1Y3Qg
X1hFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgeworICAgIFBYRU5WSUZfUE9MTEVSICAgICAgICAgIFBv
bGxlcjsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBJbmRleDsKKyAgICBQQ0hBUiAgICAg
ICAgICAgICAgICAgICBQYXRoOworICAgIEtTUElOX0xPQ0sgICAgICAgICAgICAgIExvY2s7Cisg
ICAgS0RQQyAgICAgICAgICAgICAgICAgICAgRHBjOworICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgIERwY3M7CisgICAgS1RJTUVSICAgICAgICAgICAgICAgICAgVGltZXI7CisgICAgS0RQQyAg
ICAgICAgICAgICAgICAgICAgVGltZXJEcGM7CisgICAgUFhFTlZJRl9QT0xMRVJfQ0hBTk5FTCAg
Q2hhbm5lbFtYRU5WSUZfUE9MTEVSX0NIQU5ORUxfVFlQRV9DT1VOVF07CisgICAgQk9PTEVBTiAg
ICAgICAgICAgICAgICAgRW5hYmxlZDsKKyAgICBMT05HICAgICAgICAgICAgICAgICAgICBQZW5k
aW5nOworfTsKKwogc3RydWN0IF9YRU5WSUZfUE9MTEVSIHsKICAgICBQWEVOVklGX0ZST05URU5E
ICAgICAgICBGcm9udGVuZDsKKyAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSAqSW5zdGFuY2U7
CisgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgU3BsaXQ7CisgICAgWEVOQlVTX1NUT1JFX0lO
VEVSRkFDRSAgU3RvcmVJbnRlcmZhY2U7CisgICAgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UgRXZ0
Y2huSW50ZXJmYWNlOwogICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgIERlYnVnSW50ZXJmYWNl
OwogICAgIFBYRU5CVVNfREVCVUdfQ0FMTEJBQ0sgIERlYnVnQ2FsbGJhY2s7CiB9OwogCi0jZGVm
aW5lIFhFTlZJRl9QT0xMRVJfVEFHICAnTExPUCcKKyNkZWZpbmUgWEVOVklGX1BPTExFUl9UQUcg
ICdMTE9QJworCitzdGF0aWMgRk9SQ0VJTkxJTkUgUFZPSUQKK19fUG9sbGVyQWxsb2NhdGUoCisg
ICAgSU4gIFVMT05HICAgTGVuZ3RoCisgICAgKQoreworICAgIHJldHVybiBfX0FsbG9jYXRlUG9v
bFdpdGhUYWcoTm9uUGFnZWRQb29sLCBMZW5ndGgsIFhFTlZJRl9QT0xMRVJfVEFHKTsKK30KKwor
c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKK19fUG9sbGVyRnJlZSgKKyAgICBJTiAgUFZPSUQgICBC
dWZmZXIKKyAgICApCit7CisgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WSUZfUE9M
TEVSX1RBRyk7Cit9CisKK3N0YXRpYyBOVFNUQVRVUworUG9sbGVyQ2hhbm5lbEluaXRpYWxpemUo
CisgICAgSU4gIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFIEluc3RhbmNlLAorICAgIElOICBVTE9O
RyAgICAgICAgICAgICAgICAgICBUeXBlLAorICAgIE9VVCBQWEVOVklGX1BPTExFUl9DSEFOTkVM
ICAqQ2hhbm5lbAorICAgICkKK3sKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3Rh
dHVzOworCisgICAgKkNoYW5uZWwgPSBfX1BvbGxlckFsbG9jYXRlKHNpemVvZiAoWEVOVklGX1BP
TExFUl9DSEFOTkVMKSk7CisKKyAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOworICAgIGlm
ICgqQ2hhbm5lbCA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgKCpDaGFubmVs
KS0+SW5zdGFuY2UgPSBJbnN0YW5jZTsKKyAgICAoKkNoYW5uZWwpLT5UeXBlID0gVHlwZTsKKwor
ICAgIHN3aXRjaCAoVHlwZSkgeworICAgIGNhc2UgWEVOVklGX1BPTExFUl9DSEFOTkVMX1JFQ0VJ
VkVSOgorICAgICAgICAoKkNoYW5uZWwpLT5Ob2RlID0gImV2ZW50LWNoYW5uZWwtcngiOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgWEVOVklGX1BPTExFUl9DSEFOTkVMX1RSQU5TTUlUVEVS
OgorICAgICAgICAoKkNoYW5uZWwpLT5Ob2RlID0gImV2ZW50LWNoYW5uZWwtdHgiOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgWEVOVklGX1BPTExFUl9DSEFOTkVMX0NPTUJJTkVEOgorICAg
ICAgICAoKkNoYW5uZWwpLT5Ob2RlID0gImV2ZW50LWNoYW5uZWwiOworICAgICAgICBicmVhazsK
KworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVChGQUxTRSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDE6CisgICAgRXJyb3Io
ImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3N0
YXRpYyBWT0lECitQb2xsZXJDaGFubmVsU2V0UGVuZGluZygKKyAgICBJTiAgUFhFTlZJRl9QT0xM
RVJfQ0hBTk5FTCAgQ2hhbm5lbAorICAgICkKK3sKKyAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5D
RSAgICAgSW5zdGFuY2U7CisKKyAgICBJbnN0YW5jZSA9IENoYW5uZWwtPkluc3RhbmNlOworCisg
ICAgc3dpdGNoIChDaGFubmVsLT5UeXBlKQorICAgIHsKKyAgICBjYXNlIFhFTlZJRl9QT0xMRVJf
Q0hBTk5FTF9SRUNFSVZFUjoKKyAgICAgICAgKFZPSUQpIEludGVybG9ja2VkQml0VGVzdEFuZFNl
dCgmSW5zdGFuY2UtPlBlbmRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWEVOVklGX1BPTExFUl9FVkVOVF9SRUNFSVZFKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9UUkFOU01JVFRFUjoKKyAgICAgICAgKFZPSUQp
IEludGVybG9ja2VkQml0VGVzdEFuZFNldCgmSW5zdGFuY2UtPlBlbmRpbmcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOVklGX1BPTExFUl9FVkVOVF9UUkFOU01J
VCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5WSUZfUE9MTEVSX0NIQU5ORUxfQ09N
QklORUQ6CisgICAgICAgIChWT0lEKSBJbnRlcmxvY2tlZEJpdFRlc3RBbmRTZXQoJkluc3RhbmNl
LT5QZW5kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZJ
Rl9QT0xMRVJfRVZFTlRfUkVDRUlWRSk7CisgICAgICAgIChWT0lEKSBJbnRlcmxvY2tlZEJpdFRl
c3RBbmRTZXQoJkluc3RhbmNlLT5QZW5kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFJBTlNNSVQpOworICAgICAgICBicmVh
azsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVChGQUxTRSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KK30KKworc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KK19fQml0VGVzdCgKKyAg
ICBJTiAgUExPTkcgICBNYXNrLAorICAgIElOICBMT05HICAgIEJpdAorICAgICkKK3sKKyAgICBy
ZXR1cm4gKCpNYXNrICYgKDFMIDw8IEJpdCkpID8gVFJVRSA6IEZBTFNFOworfQorCitzdGF0aWMg
Qk9PTEVBTgorUG9sbGVyQ2hhbm5lbFRlc3RQZW5kaW5nKAorICAgIElOICBQWEVOVklGX1BPTExF
Ul9DSEFOTkVMICBDaGFubmVsCisgICAgKQoreworICAgIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNF
ICAgICBJbnN0YW5jZTsKKworICAgIEluc3RhbmNlID0gQ2hhbm5lbC0+SW5zdGFuY2U7CisKKyAg
ICBzd2l0Y2ggKENoYW5uZWwtPlR5cGUpCisgICAgeworICAgIGNhc2UgWEVOVklGX1BPTExFUl9D
SEFOTkVMX1JFQ0VJVkVSOgorICAgICAgICBpZiAoX19CaXRUZXN0KCZJbnN0YW5jZS0+UGVuZGlu
ZywgWEVOVklGX1BPTExFUl9FVkVOVF9SRUNFSVZFKSkKKyAgICAgICAgICAgIHJldHVybiBUUlVF
OworCisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5WSUZfUE9MTEVSX0NIQU5ORUxfVFJB
TlNNSVRURVI6CisgICAgICAgIGlmIChfX0JpdFRlc3QoJkluc3RhbmNlLT5QZW5kaW5nLCBYRU5W
SUZfUE9MTEVSX0VWRU5UX1RSQU5TTUlUKSkKKyAgICAgICAgICAgIHJldHVybiBUUlVFOworCisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5WSUZfUE9MTEVSX0NIQU5ORUxfQ09NQklORUQ6
CisgICAgICAgIGlmIChfX0JpdFRlc3QoJkluc3RhbmNlLT5QZW5kaW5nLCBYRU5WSUZfUE9MTEVS
X0VWRU5UX1JFQ0VJVkUpIHx8CisgICAgICAgICAgICBfX0JpdFRlc3QoJkluc3RhbmNlLT5QZW5k
aW5nLCBYRU5WSUZfUE9MTEVSX0VWRU5UX1RSQU5TTUlUKSkKKyAgICAgICAgICAgIHJldHVybiBU
UlVFOworCisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUKEZB
TFNFKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIEZBTFNFOworfQorCitL
U0VSVklDRV9ST1VUSU5FICAgIFBvbGxlckNoYW5uZWxFdnRjaG5DYWxsYmFjazsKKworQk9PTEVB
TgorUG9sbGVyQ2hhbm5lbEV2dGNobkNhbGxiYWNrKAorICAgIElOICBQS0lOVEVSUlVQVCAgICAg
ICAgIEludGVycnVwdE9iamVjdCwKKyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICBBcmd1bWVu
dAorICAgICkKK3sKKyAgICBQWEVOVklGX1BPTExFUl9DSEFOTkVMICBDaGFubmVsID0gQXJndW1l
bnQ7CisgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgSW5zdGFuY2U7CisKKyAgICBVTlJFRkVS
RU5DRURfUEFSQU1FVEVSKEludGVycnVwdE9iamVjdCk7CisKKyAgICBBU1NFUlQoQ2hhbm5lbCAh
PSBOVUxMKTsKKyAgICBJbnN0YW5jZSA9IENoYW5uZWwtPkluc3RhbmNlOworCisgICAgQ2hhbm5l
bC0+RXZlbnRzKys7CisKKyAgICBQb2xsZXJDaGFubmVsU2V0UGVuZGluZyhDaGFubmVsKTsKKwor
ICAgIGlmIChLZUluc2VydFF1ZXVlRHBjKCZJbnN0YW5jZS0+RHBjLCBOVUxMLCBOVUxMKSkKKyAg
ICAgICAgSW5zdGFuY2UtPkRwY3MrKzsKKworICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMg
Rk9SQ0VJTkxJTkUgQk9PTEVBTgorX19Qb2xsZXJJc1NwbGl0KAorICAgIElOICBQWEVOVklGX1BP
TExFUiAgUG9sbGVyCisgICAgKQoreworICAgIHJldHVybiBQb2xsZXItPlNwbGl0OworfQorCitz
dGF0aWMgTlRTVEFUVVMKK1BvbGxlckNoYW5uZWxDb25uZWN0KAorICAgIElOICBQWEVOVklGX1BP
TExFUl9DSEFOTkVMICBDaGFubmVsCisgICAgKQoreworICAgIFBYRU5WSUZfUE9MTEVSX0lOU1RB
TkNFICAgICBJbnN0YW5jZTsKKyAgICBQWEVOVklGX1BPTExFUiAgICAgICAgICAgICAgUG9sbGVy
OworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsKKyAgICBQUk9DRVNT
T1JfTlVNQkVSICAgICAgICAgICAgUHJvY051bWJlcjsKKyAgICBOVFNUQVRVUyAgICAgICAgICAg
ICAgICAgICAgc3RhdHVzOworCisgICAgSW5zdGFuY2UgPSBDaGFubmVsLT5JbnN0YW5jZTsKKyAg
ICBQb2xsZXIgPSBJbnN0YW5jZS0+UG9sbGVyOworICAgIEZyb250ZW5kID0gUG9sbGVyLT5Gcm9u
dGVuZDsKKworICAgIHN3aXRjaCAoQ2hhbm5lbC0+VHlwZSkKKyAgICB7CisgICAgY2FzZSBYRU5W
SUZfUE9MTEVSX0NIQU5ORUxfUkVDRUlWRVI6CisgICAgY2FzZSBYRU5WSUZfUE9MTEVSX0NIQU5O
RUxfVFJBTlNNSVRURVI6CisgICAgICAgIGlmICghX19Qb2xsZXJJc1NwbGl0KFBvbGxlcikpCisg
ICAgICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTlZJ
Rl9QT0xMRVJfQ0hBTk5FTF9DT01CSU5FRDoKKyAgICAgICAgaWYgKF9fUG9sbGVySXNTcGxpdChQ
b2xsZXIpKQorICAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgIGJyZWFrOworCisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUKEZBTFNFKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgQ2hhbm5lbC0+Q2hhbm5lbCA9IFhFTkJVU19FVlRDSE4oT3BlbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmUG9sbGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0VWVENITl9UWVBFX1VOQk9V
TkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9sbGVyQ2hhbm5lbEV2
dGNobkNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5u
ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRHZXRCYWNr
ZW5kRG9tYWluKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUUlVFKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CisgICAgaWYgKENo
YW5uZWwtPkNoYW5uZWwgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKworICAgIHN0YXR1
cyA9IEtlR2V0UHJvY2Vzc29yTnVtYmVyRnJvbUluZGV4KEluc3RhbmNlLT5JbmRleCwgJlByb2NO
dW1iZXIpOworICAgIEFTU0VSVChOVF9TVUNDRVNTKHN0YXR1cykpOworCisgICAgKFZPSUQpIFhF
TkJVU19FVlRDSE4oQmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmUG9sbGVyLT5FdnRj
aG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbm5lbC0+Q2hhbm5lbCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBQcm9jTnVtYmVyLkdyb3VwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIFByb2NOdW1iZXIuTnVtYmVyKTsKKworICAgIFhFTkJVU19FVlRDSE4oVW5t
YXNrLAorICAgICAgICAgICAgICAgICAgJlBvbGxlci0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAg
ICAgICAgICAgICAgQ2hhbm5lbC0+Q2hhbm5lbCwKKyAgICAgICAgICAgICAgICAgIEZBTFNFKTsK
KworZG9uZToKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9y
KCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitz
dGF0aWMgTlRTVEFUVVMKK1BvbGxlckNoYW5uZWxTdG9yZVdyaXRlKAorICAgIElOICBQWEVOVklG
X1BPTExFUl9DSEFOTkVMICAgICAgQ2hhbm5lbCwKKyAgICBJTiAgUFhFTkJVU19TVE9SRV9UUkFO
U0FDVElPTiAgIFRyYW5zYWN0aW9uCisgICAgKQoreworICAgIFBYRU5WSUZfUE9MTEVSX0lOU1RB
TkNFICAgICAgICAgSW5zdGFuY2U7CisgICAgUFhFTlZJRl9QT0xMRVIgICAgICAgICAgICAgICAg
ICBQb2xsZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0OworICAg
IE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOworCisgICAgSW5zdGFuY2Ug
PSBDaGFubmVsLT5JbnN0YW5jZTsKKyAgICBQb2xsZXIgPSBJbnN0YW5jZS0+UG9sbGVyOworCisg
ICAgaWYgKENoYW5uZWwtPkNoYW5uZWwgPT0gTlVMTCkKKyAgICAgICAgZ290byBkb25lOworCisg
ICAgUG9ydCA9IFhFTkJVU19FVlRDSE4oR2V0UG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAmUG9sbGVyLT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgQ2hh
bm5lbC0+Q2hhbm5lbCk7CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAmUG9sbGVyLT5TdG9yZUludGVyZmFjZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgVHJhbnNhY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
IEluc3RhbmNlLT5QYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoUENIQVIpQ2hhbm5l
bC0+Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiV1IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgUG9ydCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAg
IGdvdG8gZmFpbDE7CisKK2RvbmU6CisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWls
MToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0
YXR1czsKK30KKworc3RhdGljIFZPSUQKK1BvbGxlckNoYW5uZWxVbm1hc2soCisgICAgSU4gIFBY
RU5WSUZfUE9MTEVSX0NIQU5ORUwgIENoYW5uZWwKKyAgICApCit7CisgICAgUFhFTlZJRl9QT0xM
RVJfSU5TVEFOQ0UgICAgIEluc3RhbmNlOworICAgIFBYRU5WSUZfUE9MTEVSICAgICAgICAgICAg
ICBQb2xsZXI7CisKKyAgICBJbnN0YW5jZSA9IENoYW5uZWwtPkluc3RhbmNlOworICAgIFBvbGxl
ciA9IEluc3RhbmNlLT5Qb2xsZXI7CisKKyAgICBpZiAoQ2hhbm5lbC0+Q2hhbm5lbCA9PSBOVUxM
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVBvbGxlckNoYW5uZWxUZXN0UGVuZGluZyhD
aGFubmVsKSkKKyAgICAgICAgWEVOQlVTX0VWVENITihVbm1hc2ssCisgICAgICAgICAgICAgICAg
ICAgICAgJlBvbGxlci0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgIENo
YW5uZWwtPkNoYW5uZWwsCisgICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOworfQorCitzdGF0
aWMgVk9JRAorUG9sbGVyQ2hhbm5lbFNlbmQoCisgICAgSU4gIFBYRU5WSUZfUE9MTEVSX0NIQU5O
RUwgIENoYW5uZWwKKyAgICApCit7CisgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgICAgIElu
c3RhbmNlOworICAgIFBYRU5WSUZfUE9MTEVSICAgICAgICAgICAgICBQb2xsZXI7CisKKyAgICBJ
bnN0YW5jZSA9IENoYW5uZWwtPkluc3RhbmNlOworICAgIFBvbGxlciA9IEluc3RhbmNlLT5Qb2xs
ZXI7CisKKyAgICBYRU5CVVNfRVZUQ0hOKFNlbmQsCisgICAgICAgICAgICAgICAgICAmUG9sbGVy
LT5FdnRjaG5JbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBDaGFubmVsLT5DaGFubmVsKTsK
K30KKworc3RhdGljIFZPSUQKK1BvbGxlckNoYW5uZWxEZWJ1Z0NhbGxiYWNrKAorICAgIElOICBQ
WEVOVklGX1BPTExFUl9DSEFOTkVMICBDaGFubmVsCisgICAgKQoreworICAgIFBYRU5WSUZfUE9M
TEVSX0lOU1RBTkNFICAgICBJbnN0YW5jZTsKKyAgICBQWEVOVklGX1BPTExFUiAgICAgICAgICAg
ICAgUG9sbGVyOworCisgICAgSW5zdGFuY2UgPSBDaGFubmVsLT5JbnN0YW5jZTsKKyAgICBQb2xs
ZXIgPSBJbnN0YW5jZS0+UG9sbGVyOworCisgICAgaWYgKENoYW5uZWwtPkNoYW5uZWwgPT0gTlVM
TCkKKyAgICAgICAgcmV0dXJuOworCisgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwKKyAgICAgICAg
ICAgICAgICAgJlBvbGxlci0+RGVidWdJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICJbJXNd
OiBFdmVudHMgPSAlbHVcbiIsCisgICAgICAgICAgICAgICAgIENoYW5uZWwtPk5vZGUsCisgICAg
ICAgICAgICAgICAgIENoYW5uZWwtPkV2ZW50cyk7Cit9CisKK3N0YXRpYyBWT0lECitQb2xsZXJD
aGFubmVsRGlzY29ubmVjdCgKKyAgICBJTiAgUFhFTlZJRl9QT0xMRVJfQ0hBTk5FTCAgQ2hhbm5l
bAorICAgICkKK3sKKyAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSAgICAgSW5zdGFuY2U7Cisg
ICAgUFhFTlZJRl9QT0xMRVIgICAgICAgICAgICAgIFBvbGxlcjsKKworICAgIEluc3RhbmNlID0g
Q2hhbm5lbC0+SW5zdGFuY2U7CisgICAgUG9sbGVyID0gSW5zdGFuY2UtPlBvbGxlcjsKKworICAg
IGlmIChDaGFubmVsLT5DaGFubmVsID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKworICAgIENo
YW5uZWwtPkV2ZW50cyA9IDA7CisKKyAgICBYRU5CVVNfRVZUQ0hOKENsb3NlLAorICAgICAgICAg
ICAgICAgICAgJlBvbGxlci0+RXZ0Y2huSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgQ2hh
bm5lbC0+Q2hhbm5lbCk7CisgICAgQ2hhbm5lbC0+Q2hhbm5lbCA9IE5VTEw7Cit9CisKK3N0YXRp
YyBWT0lECitQb2xsZXJDaGFubmVsVGVhcmRvd24oCisgICAgSU4gIFBYRU5WSUZfUE9MTEVSX0NI
QU5ORUwgIENoYW5uZWwKKyAgICApCit7CisgICAgQ2hhbm5lbC0+Tm9kZSA9IE5VTEw7CisKKyAg
ICBDaGFubmVsLT5UeXBlID0gMDsKKyAgICBDaGFubmVsLT5JbnN0YW5jZSA9IE5VTEw7CisKKyAg
ICBBU1NFUlQoSXNaZXJvTWVtb3J5KENoYW5uZWwsIHNpemVvZiAoWEVOVklGX1BPTExFUl9DSEFO
TkVMKSkpOworICAgIF9fUG9sbGVyRnJlZShDaGFubmVsKTsKK30KKworX19kcnZfcmVxdWlyZXNJ
UlFMKERJU1BBVENIX0xFVkVMKQorc3RhdGljIFZPSUQKK1BvbGxlckluc3RhbmNlVW5tYXNrKAor
ICAgIElOICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSAgICAgSW5zdGFuY2UsCisgICAgSU4gIFhF
TlZJRl9QT0xMRVJfRVZFTlRfVFlQRSAgICBFdmVudAorICAgICkKK3sKKyAgICBQWEVOVklGX1BP
TExFUiAgICAgICAgICAgICAgICAgIFBvbGxlcjsKKyAgICBYRU5WSUZfUE9MTEVSX0NIQU5ORUxf
VFlQRSAgICAgIFR5cGU7CisgICAgUFhFTlZJRl9QT0xMRVJfQ0hBTk5FTCAgICAgICAgICBDaGFu
bmVsOworCisgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgRElTUEFUQ0hfTEVW
RUwpOworCisgICAgUG9sbGVyID0gSW5zdGFuY2UtPlBvbGxlcjsKKworICAgIEtlQWNxdWlyZVNw
aW5Mb2NrQXREcGNMZXZlbCgmSW5zdGFuY2UtPkxvY2spOworCisgICAgaWYgKCFJbnN0YW5jZS0+
RW5hYmxlZCkKKyAgICAgICAgZ290byBkb25lOworCisgICAgaWYgKCFfX1BvbGxlcklzU3BsaXQo
UG9sbGVyKSkgeworICAgICAgICBUeXBlID0gWEVOVklGX1BPTExFUl9DSEFOTkVMX0NPTUJJTkVE
OworICAgIH0gZWxzZSB7CisgICAgICAgIHN3aXRjaCAoRXZlbnQpIHsKKyAgICAgICAgY2FzZSBY
RU5WSUZfUE9MTEVSX0VWRU5UX1JFQ0VJVkU6CisgICAgICAgICAgICBUeXBlID0gWEVOVklGX1BP
TExFUl9DSEFOTkVMX1JFQ0VJVkVSOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBYRU5WSUZfUE9MTEVSX0VWRU5UX1RSQU5TTUlUOgorICAgICAgICAgICAgVHlwZSA9IFhFTlZJ
Rl9QT0xMRVJfQ0hBTk5FTF9UUkFOU01JVFRFUjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBUeXBlID0gWEVOVklGX1BPTExFUl9DSEFOTkVMX0lO
VkFMSUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VS
VChUeXBlICE9IFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9JTlZBTElEKTsKKworICAgIENoYW5uZWwg
PSBJbnN0YW5jZS0+Q2hhbm5lbFtUeXBlXTsKKworICAgIFBvbGxlckNoYW5uZWxVbm1hc2soQ2hh
bm5lbCk7CisKK2RvbmU6CisgICAgS2VSZWxlYXNlU3BpbkxvY2tGcm9tRHBjTGV2ZWwoJkluc3Rh
bmNlLT5Mb2NrKTsKK30KKworI2RlZmluZSBUSU1FX1VTKF91cykgICAgICAgICgoX3VzKSAqIDEw
KQorI2RlZmluZSBUSU1FX01TKF9tcykgICAgICAgIChUSU1FX1VTKChfbXMpICogMTAwMCkpCisj
ZGVmaW5lIFRJTUVfUyhfcykgICAgICAgICAgKFRJTUVfTVMoKF9zKSAqIDEwMDApKQorI2RlZmlu
ZSBUSU1FX1JFTEFUSVZFKF90KSAgICgtKF90KSkKKworX19kcnZfcmVxdWlyZXNJUlFMKERJU1BB
VENIX0xFVkVMKQorc3RhdGljIFZPSUQKK1BvbGxlckluc3RhbmNlRGVmZXIoCisgICAgSU4gIFBY
RU5WSUZfUE9MTEVSX0lOU1RBTkNFIEluc3RhbmNlCisgICAgKQoreworICAgIExBUkdFX0lOVEVH
RVIgICAgICAgICAgICAgICBEZWxheTsKKworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwo
KSwgPT0sIERJU1BBVENIX0xFVkVMKTsKKworICAgIEtlQWNxdWlyZVNwaW5Mb2NrQXREcGNMZXZl
bCgmSW5zdGFuY2UtPkxvY2spOworCisgICAgaWYgKCFJbnN0YW5jZS0+RW5hYmxlZCkKKyAgICAg
ICAgZ290byBkb25lOworCisgICAgRGVsYXkuUXVhZFBhcnQgPSBUSU1FX1JFTEFUSVZFKFRJTUVf
VVMoMTAwKSk7CisgICAgS2VTZXRUaW1lcigmSW5zdGFuY2UtPlRpbWVyLCBEZWxheSwgJkluc3Rh
bmNlLT5UaW1lckRwYyk7CisKK2RvbmU6CisgICAgS2VSZWxlYXNlU3BpbkxvY2tGcm9tRHBjTGV2
ZWwoJkluc3RhbmNlLT5Mb2NrKTsKK30KKworc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KK1Bv
bGxlckluc3RhbmNlRHBjVGltZW91dCgKKyAgICBJTiAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0Ug
SW5zdGFuY2UKKyAgICApCit7CisgICAgS0RQQ19XQVRDSERPR19JTkZPUk1BVElPTiAgIFdhdGNo
ZG9nOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBVTlJF
RkVSRU5DRURfUEFSQU1FVEVSKEluc3RhbmNlKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJldhdGNo
ZG9nLCBzaXplb2YgKFdhdGNoZG9nKSk7CisKKyAgICBzdGF0dXMgPSBLZVF1ZXJ5RHBjV2F0Y2hk
b2dJbmZvcm1hdGlvbigmV2F0Y2hkb2cpOworICAgIEFTU0VSVChOVF9TVUNDRVNTKHN0YXR1cykp
OworCisgICAgaWYgKFdhdGNoZG9nLkRwY1RpbWVMaW1pdCA9PSAwIHx8CisgICAgICAgIFdhdGNo
ZG9nLkRwY1dhdGNoZG9nTGltaXQgPT0gMCkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAg
aWYgKFdhdGNoZG9nLkRwY1RpbWVDb3VudCA+IChXYXRjaGRvZy5EcGNUaW1lTGltaXQgLyAyKSAm
JgorICAgICAgICBXYXRjaGRvZy5EcGNXYXRjaGRvZ0NvdW50ID4gKFdhdGNoZG9nLkRwY1dhdGNo
ZG9nTGltaXQgLyAyKSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgcmV0dXJuIFRSVUU7
Cit9CisKK19fZHJ2X2Z1bmN0aW9uQ2xhc3MoS0RFRkVSUkVEX1JPVVRJTkUpCitfX2Rydl9tYXhJ
UlFMKERJU1BBVENIX0xFVkVMKQorX19kcnZfbWluSVJRTChESVNQQVRDSF9MRVZFTCkKK19fZHJ2
X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkKK19fZHJ2X3NhbWVJUlFMCitzdGF0aWMgVk9J
RAorUG9sbGVySW5zdGFuY2VEcGMoCisgICAgSU4gIFBLRFBDICAgICAgICAgICAgICAgRHBjLAor
ICAgIElOICBQVk9JRCAgICAgICAgICAgICAgIENvbnRleHQsCisgICAgSU4gIFBWT0lEICAgICAg
ICAgICAgICAgQXJndW1lbnQxLAorICAgIElOICBQVk9JRCAgICAgICAgICAgICAgIEFyZ3VtZW50
MgorICAgICkKK3sKKyAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSBJbnN0YW5jZSA9IENvbnRl
eHQ7CisgICAgUFhFTlZJRl9QT0xMRVIgICAgICAgICAgUG9sbGVyOworICAgIFBYRU5WSUZfRlJP
TlRFTkQgICAgICAgIEZyb250ZW5kOworICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIE5lZWRS
ZWNlaXZlclBvbGw7CisgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgTmVlZFRyYW5zbWl0dGVy
UG9sbDsKKworICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRHBjKTsKKyAgICBVTlJFRkVSRU5D
RURfUEFSQU1FVEVSKEFyZ3VtZW50MSk7CisgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1
bWVudDIpOworCisgICAgQVNTRVJUKEluc3RhbmNlICE9IE5VTEwpOworCisgICAgUG9sbGVyID0g
SW5zdGFuY2UtPlBvbGxlcjsKKyAgICBGcm9udGVuZCA9IFBvbGxlci0+RnJvbnRlbmQ7CisKKyAg
ICBOZWVkUmVjZWl2ZXJQb2xsID0gRkFMU0U7CisgICAgTmVlZFRyYW5zbWl0dGVyUG9sbCA9IEZB
TFNFOworCisgICAgZm9yICg7OykgeworICAgICAgICBOZWVkUmVjZWl2ZXJQb2xsIHw9CisgICAg
ICAgICAgICAoSW50ZXJsb2NrZWRCaXRUZXN0QW5kUmVzZXQoJkluc3RhbmNlLT5QZW5kaW5nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9QT0xMRVJfRVZF
TlRfUkVDRUlWRSkgIT0gMCkgPworICAgICAgICAgICAgVFJVRSA6CisgICAgICAgICAgICBGQUxT
RTsKKworICAgICAgICBOZWVkVHJhbnNtaXR0ZXJQb2xsIHw9CisgICAgICAgICAgICAoSW50ZXJs
b2NrZWRCaXRUZXN0QW5kUmVzZXQoJkluc3RhbmNlLT5QZW5kaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFJBTlNNSVQpICE9
IDApID8KKyAgICAgICAgICAgIFRSVUUgOgorICAgICAgICAgICAgRkFMU0U7CisKKyAgICAgICAg
aWYgKCFOZWVkUmVjZWl2ZXJQb2xsICYmICFOZWVkVHJhbnNtaXR0ZXJQb2xsKQorICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgaWYgKE5lZWRSZWNlaXZlclBvbGwpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEJPT0xFQU4gUmV0cnkgPSBSZWNlaXZlclBvbGwoRnJvbnRlbmRHZXRSZWNlaXZl
cihGcm9udGVuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu
c3RhbmNlLT5JbmRleCk7CisKKyAgICAgICAgICAgIGlmICghUmV0cnkpIHsKKyAgICAgICAgICAg
ICAgICBOZWVkUmVjZWl2ZXJQb2xsID0gRkFMU0U7CisgICAgICAgICAgICAgICAgUG9sbGVySW5z
dGFuY2VVbm1hc2soSW5zdGFuY2UsIFhFTlZJRl9QT0xMRVJfRVZFTlRfUkVDRUlWRSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKE5lZWRUcmFuc21pdHRlclBvbGwpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIEJPT0xFQU4gUmV0cnkgPSBUcmFuc21pdHRlclBvbGwoRnJv
bnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3RhbmNlLT5JbmRleCk7CisKKyAgICAgICAgICAgIGlmICgh
UmV0cnkpIHsKKyAgICAgICAgICAgICAgICBOZWVkVHJhbnNtaXR0ZXJQb2xsID0gRkFMU0U7Cisg
ICAgICAgICAgICAgICAgUG9sbGVySW5zdGFuY2VVbm1hc2soSW5zdGFuY2UsIFhFTlZJRl9QT0xM
RVJfRVZFTlRfVFJBTlNNSVQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
aWYgKFBvbGxlckluc3RhbmNlRHBjVGltZW91dChJbnN0YW5jZSkpIHsKKyAgICAgICAgICAgIFBv
bGxlckluc3RhbmNlRGVmZXIoSW5zdGFuY2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK3N0YXRpYyBOVFNUQVRVUworUG9sbGVySW5zdGFuY2VJbml0aWFsaXpl
KAorICAgIElOICBQWEVOVklGX1BPTExFUiAgICAgICAgICBQb2xsZXIsCisgICAgSU4gIExPTkcg
ICAgICAgICAgICAgICAgICAgIEluZGV4LAorICAgIE9VVCBQWEVOVklGX1BPTExFUl9JTlNUQU5D
RSAqSW5zdGFuY2UKKyAgICApCit7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgIEZy
b250ZW5kOworICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAgICBUeXBlOworICAgIE5UU1RB
VFVTICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IFBvbGxlci0+
RnJvbnRlbmQ7CisKKyAgICAqSW5zdGFuY2UgPSBfX1BvbGxlckFsbG9jYXRlKHNpemVvZiAoWEVO
VklGX1BPTExFUl9JTlNUQU5DRSkpOworCisgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsK
KyAgICBpZiAoKkluc3RhbmNlID09IE5VTEwpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAgICAo
Kkluc3RhbmNlKS0+UG9sbGVyID0gUG9sbGVyOworICAgICgqSW5zdGFuY2UpLT5JbmRleCA9IElu
ZGV4OworCisgICAgZm9yIChUeXBlID0gMDsgVHlwZSA8IFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9U
WVBFX0NPVU5UOyBUeXBlKyspCisgICAgeworICAgICAgICBQWEVOVklGX1BPTExFUl9DSEFOTkVM
IENoYW5uZWw7CisKKyAgICAgICAgc3RhdHVzID0gUG9sbGVyQ2hhbm5lbEluaXRpYWxpemUoKklu
c3RhbmNlLCBUeXBlLCAmQ2hhbm5lbCk7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMp
KQorICAgICAgICAgICAgZ290byBmYWlsMjsKKworICAgICAgICAoKkluc3RhbmNlKS0+Q2hhbm5l
bFtUeXBlXSA9IENoYW5uZWw7CisgICAgfQorCisgICAgKCpJbnN0YW5jZSktPlBhdGggPSBGcm9u
dGVuZEZvcm1hdFBhdGgoRnJvbnRlbmQsIEluZGV4KTsKKyAgICBpZiAoKCpJbnN0YW5jZSktPlBh
dGggPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIEtlSW5pdGlhbGl6ZVNwaW5M
b2NrKCYoKkluc3RhbmNlKS0+TG9jayk7CisKKyAgICBLZUluaXRpYWxpemVEcGMoJigqSW5zdGFu
Y2UpLT5EcGMsIFBvbGxlckluc3RhbmNlRHBjLCAqSW5zdGFuY2UpOworICAgIEtlSW5pdGlhbGl6
ZVRpbWVyKCYoKkluc3RhbmNlKS0+VGltZXIpOworICAgIEtlSW5pdGlhbGl6ZURwYygmKCpJbnN0
YW5jZSktPlRpbWVyRHBjLCBQb2xsZXJJbnN0YW5jZURwYywgKkluc3RhbmNlKTsKKworICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDM6CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKwor
ICAgIFR5cGUgPSBYRU5WSUZfUE9MTEVSX0NIQU5ORUxfVFlQRV9DT1VOVDsKKworZmFpbDI6Cisg
ICAgRXJyb3IoImZhaWwyXG4iKTsKKworICAgIHdoaWxlICgtLVR5cGUgPj0gMCkKKyAgICB7Cisg
ICAgICAgIFBYRU5WSUZfUE9MTEVSX0NIQU5ORUwgQ2hhbm5lbCA9ICgqSW5zdGFuY2UpLT5DaGFu
bmVsW1R5cGVdOworCisgICAgICAgICgqSW5zdGFuY2UpLT5DaGFubmVsW1R5cGVdID0gTlVMTDsK
KyAgICAgICAgUG9sbGVyQ2hhbm5lbFRlYXJkb3duKENoYW5uZWwpOworICAgIH0KKworICAgICgq
SW5zdGFuY2UpLT5JbmRleCA9IDA7CisgICAgKCpJbnN0YW5jZSktPlBvbGxlciA9IE5VTEw7CisK
KyAgICBBU1NFUlQoSXNaZXJvTWVtb3J5KCpJbnN0YW5jZSwgc2l6ZW9mIChYRU5WSUZfUE9MTEVS
X0lOU1RBTkNFKSkpOworICAgIF9fUG9sbGVyRnJlZSgqSW5zdGFuY2UpOworCitmYWlsMToKKyAg
ICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsK
K30KKworX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorc3RhdGljIE5UU1RBVFVT
CitQb2xsZXJJbnN0YW5jZUNvbm5lY3QoCisgICAgSU4gIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNF
IEluc3RhbmNlCisgICAgKQoreworICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICBQcm9j
TnVtYmVyOworICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAgICBUeXBlOworICAgIE5UU1RB
VFVTICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBBU1NFUlQzVShLZUdldEN1cnJl
bnRJcnFsKCksID09LCBESVNQQVRDSF9MRVZFTCk7CisKKyAgICBzdGF0dXMgPSBLZUdldFByb2Nl
c3Nvck51bWJlckZyb21JbmRleChJbnN0YW5jZS0+SW5kZXgsICZQcm9jTnVtYmVyKTsKKyAgICBB
U1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKKworICAgIEtlU2V0VGFyZ2V0UHJvY2Vzc29yRHBj
RXgoJkluc3RhbmNlLT5EcGMsICZQcm9jTnVtYmVyKTsKKyAgICBLZVNldFRhcmdldFByb2Nlc3Nv
ckRwY0V4KCZJbnN0YW5jZS0+VGltZXJEcGMsICZQcm9jTnVtYmVyKTsKKworICAgIGZvciAoVHlw
ZSA9IDA7IFR5cGUgPCBYRU5WSUZfUE9MTEVSX0NIQU5ORUxfVFlQRV9DT1VOVDsgVHlwZSsrKQor
ICAgIHsKKyAgICAgICAgUFhFTlZJRl9QT0xMRVJfQ0hBTk5FTCBDaGFubmVsID0gSW5zdGFuY2Ut
PkNoYW5uZWxbVHlwZV07CisKKyAgICAgICAgc3RhdHVzID0gUG9sbGVyQ2hhbm5lbENvbm5lY3Qo
Q2hhbm5lbCk7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICAgICAg
Z290byBmYWlsMTsKKyAgICB9CisKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwx
OgorICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CisKKyAgICB3aGlsZSAoLS1U
eXBlID49IDApCisgICAgeworICAgICAgICBQWEVOVklGX1BPTExFUl9DSEFOTkVMIENoYW5uZWwg
PSBJbnN0YW5jZS0+Q2hhbm5lbFtUeXBlXTsKKworICAgICAgICBQb2xsZXJDaGFubmVsRGlzY29u
bmVjdChDaGFubmVsKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMg
TlRTVEFUVVMKK1BvbGxlckluc3RhbmNlU3RvcmVXcml0ZSgKKyAgICBJTiAgUFhFTlZJRl9QT0xM
RVJfSU5TVEFOQ0UgICAgIEluc3RhbmNlLAorICAgIElOICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNU
SU9OICAgVHJhbnNhY3Rpb24KKyAgICApCit7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUeXBlOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
OworCisgICAgZm9yIChUeXBlID0gMDsgVHlwZSA8IFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9UWVBF
X0NPVU5UOyBUeXBlKyspCisgICAgeworICAgICAgICBQWEVOVklGX1BPTExFUl9DSEFOTkVMIENo
YW5uZWwgPSBJbnN0YW5jZS0+Q2hhbm5lbFtUeXBlXTsKKworICAgICAgICBzdGF0dXMgPSBQb2xs
ZXJDaGFubmVsU3RvcmVXcml0ZShDaGFubmVsLCBUcmFuc2FjdGlvbik7CisgICAgICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICAgICAgZ290byBmYWlsMTsKKyAgICB9CisKKyAg
ICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisKK2ZhaWwxOgorICAgIEVycm9yKCJmYWlsMSAoJTA4
eClcbiIsIHN0YXR1cyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQogCi1zdGF0aWMgRk9SQ0VJ
TkxJTkUgUFZPSUQKLV9fUG9sbGVyQWxsb2NhdGUoCi0gICAgSU4gIFVMT05HICAgTGVuZ3RoCitf
X2Rydl9yZXF1aXJlc0lSUUwoRElTUEFUQ0hfTEVWRUwpCitzdGF0aWMgTlRTVEFUVVMKK1BvbGxl
ckluc3RhbmNlRW5hYmxlKAorICAgIElOICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSBJbnN0YW5j
ZQogICAgICkKIHsKLSAgICByZXR1cm4gX19BbGxvY2F0ZVBvb2xXaXRoVGFnKE5vblBhZ2VkUG9v
bCwgTGVuZ3RoLCBYRU5WSUZfUE9MTEVSX1RBRyk7CisgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50
SXJxbCgpLCA9PSwgRElTUEFUQ0hfTEVWRUwpOworCisgICAgKFZPSUQpIEludGVybG9ja2VkQml0
VGVzdEFuZFNldCgmSW5zdGFuY2UtPlBlbmRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBYRU5WSUZfUE9MTEVSX0VWRU5UX1JFQ0VJVkUpOworICAgIChWT0lEKSBJbnRl
cmxvY2tlZEJpdFRlc3RBbmRTZXQoJkluc3RhbmNlLT5QZW5kaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWEVOVklGX1BPTExFUl9FVkVOVF9UUkFOU01JVCk7CisKKyAg
ICBLZUFjcXVpcmVTcGluTG9ja0F0RHBjTGV2ZWwoJkluc3RhbmNlLT5Mb2NrKTsKKyAgICBJbnN0
YW5jZS0+RW5hYmxlZCA9IFRSVUU7CisgICAgS2VSZWxlYXNlU3BpbkxvY2tGcm9tRHBjTGV2ZWwo
Jkluc3RhbmNlLT5Mb2NrKTsKKworICAgIChWT0lEKSBLZUluc2VydFF1ZXVlRHBjKCZJbnN0YW5j
ZS0+RHBjLCBOVUxMLCBOVUxMKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIH0KIAot
c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKLV9fUG9sbGVyRnJlZSgKLSAgICBJTiAgUFZPSUQgICBC
dWZmZXIKK19fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkKK3N0YXRpYyBOVFNUQVRV
UworUG9sbGVySW5zdGFuY2VTZW5kKAorICAgIElOICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSAg
ICAgSW5zdGFuY2UsCisgICAgSU4gIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFlQRSAgICBFdmVudAog
ICAgICkKIHsKLSAgICBfX0ZyZWVQb29sV2l0aFRhZyhCdWZmZXIsIFhFTlZJRl9QT0xMRVJfVEFH
KTsKKyAgICBQWEVOVklGX1BPTExFUiAgICAgICAgICAgICAgICAgIFBvbGxlcjsKKyAgICBYRU5W
SUZfUE9MTEVSX0NIQU5ORUxfVFlQRSAgICAgIFR5cGU7CisgICAgUFhFTlZJRl9QT0xMRVJfQ0hB
Tk5FTCAgICAgICAgICBDaGFubmVsOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzOworCisgICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSwgRElTUEFU
Q0hfTEVWRUwpOworCisgICAgUG9sbGVyID0gSW5zdGFuY2UtPlBvbGxlcjsKKworICAgIEtlQWNx
dWlyZVNwaW5Mb2NrQXREcGNMZXZlbCgmSW5zdGFuY2UtPkxvY2spOworCisgICAgVHlwZSA9IFhF
TlZJRl9QT0xMRVJfQ0hBTk5FTF9JTlZBTElEOworCisgICAgaWYgKEluc3RhbmNlLT5FbmFibGVk
KSB7CisgICAgICAgIGlmICghX19Qb2xsZXJJc1NwbGl0KFBvbGxlcikpIHsKKyAgICAgICAgICAg
IFR5cGUgPSBYRU5WSUZfUE9MTEVSX0NIQU5ORUxfQ09NQklORUQ7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBzd2l0Y2ggKEV2ZW50KSB7CisgICAgICAgICAgICBjYXNlIFhFTlZJRl9Q
T0xMRVJfRVZFTlRfUkVDRUlWRToKKyAgICAgICAgICAgICAgICBUeXBlID0gWEVOVklGX1BPTExF
Ul9DSEFOTkVMX1JFQ0VJVkVSOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICBjYXNlIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFJBTlNNSVQ6CisgICAgICAgICAgICAgICAgVHlw
ZSA9IFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9UUkFOU01JVFRFUjsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBU1NFUlQoRkFM
U0UpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgS2VSZWxlYXNlU3BpbkxvY2tGcm9tRHBjTGV2ZWwoJkluc3RhbmNlLT5Mb2Nr
KTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CisgICAgaWYgKFR5cGUgPT0g
WEVOVklGX1BPTExFUl9DSEFOTkVMX0lOVkFMSUQpCisgICAgICAgIGdvdG8gZmFpbDE7CisKKyAg
ICBDaGFubmVsID0gSW5zdGFuY2UtPkNoYW5uZWxbVHlwZV07CisKKyAgICBQb2xsZXJDaGFubmVs
U2VuZChDaGFubmVsKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKKworZmFpbDE6Cisg
ICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKKworICAgIHJldHVybiBzdGF0dXM7
Cit9CisKK19fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkKK3N0YXRpYyBOVFNUQVRV
UworUG9sbGVySW5zdGFuY2VUcmlnZ2VyKAorICAgIElOICBQWEVOVklGX1BPTExFUl9JTlNUQU5D
RSAgICAgSW5zdGFuY2UsCisgICAgSU4gIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFlQRSAgICBFdmVu
dAorICAgICkKK3sKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsK
KworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAgICBpZiAoRXZlbnQg
Pj0gWEVOVklGX1BPTExFUl9FVkVOVF9UWVBFX0NPVU5UKQorICAgICAgICBnb3RvIGZhaWwxOwor
CisgICAgKFZPSUQpIEludGVybG9ja2VkQml0VGVzdEFuZFNldCgmSW5zdGFuY2UtPlBlbmRpbmcs
IEV2ZW50KTsKKworICAgIGlmIChLZUluc2VydFF1ZXVlRHBjKCZJbnN0YW5jZS0+RHBjLCBOVUxM
LCBOVUxMKSkKKyAgICAgICAgSW5zdGFuY2UtPkRwY3MrKzsKKworICAgIHJldHVybiBTVEFUVVNf
U1VDQ0VTUzsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsK
KworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBWT0lECitQb2xsZXJJbnN0YW5jZURl
YnVnQ2FsbGJhY2soCisgICAgSU4gIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFIEluc3RhbmNlCisg
ICAgKQoreworICAgIFBYRU5WSUZfUE9MTEVSICAgICAgICAgICAgICBQb2xsZXI7CisgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgIFR5cGU7CisKKyAgICBQb2xsZXIgPSBJbnN0YW5jZS0+
UG9sbGVyOworCisgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwKKyAgICAgICAgICAgICAgICAgJlBv
bGxlci0+RGVidWdJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICJbJWRdOiBEcGNzID0gJWx1
XG4iLAorICAgICAgICAgICAgICAgICBJbnN0YW5jZS0+SW5kZXgsCisgICAgICAgICAgICAgICAg
IEluc3RhbmNlLT5EcGNzKTsKKworICAgIGZvciAoVHlwZSA9IDA7IFR5cGUgPCBYRU5WSUZfUE9M
TEVSX0NIQU5ORUxfVFlQRV9DT1VOVDsgVHlwZSsrKQorICAgIHsKKyAgICAgICAgUFhFTlZJRl9Q
T0xMRVJfQ0hBTk5FTCBDaGFubmVsID0gSW5zdGFuY2UtPkNoYW5uZWxbVHlwZV07CisKKyAgICAg
ICAgUG9sbGVyQ2hhbm5lbERlYnVnQ2FsbGJhY2soQ2hhbm5lbCk7CisgICAgfQorfQorCitfX2Ry
dl9yZXF1aXJlc0lSUUwoRElTUEFUQ0hfTEVWRUwpCitzdGF0aWMgVk9JRAorUG9sbGVySW5zdGFu
Y2VEaXNhYmxlKAorICAgIElOICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSBJbnN0YW5jZQorICAg
ICkKK3sKKyAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBESVNQQVRDSF9MRVZF
TCk7CisKKyAgICBLZUFjcXVpcmVTcGluTG9ja0F0RHBjTGV2ZWwoJkluc3RhbmNlLT5Mb2NrKTsK
KyAgICBJbnN0YW5jZS0+RW5hYmxlZCA9IEZBTFNFOworICAgIEtlUmVsZWFzZVNwaW5Mb2NrRnJv
bURwY0xldmVsKCZJbnN0YW5jZS0+TG9jayk7CisKKyAgICAvLworICAgIC8vIE5vIG5ldyB0aW1l
cnMgY2FuIGJlIHNjaGVkdWxlZCBvbmNlIEVuYWJsZWQgZ29lcyB0byBGQUxTRS4KKyAgICAvLyBD
YW5jZWwgYW55IGV4aXN0aW5nIG9uZXMuCisgICAgLy8KKyAgICAoVk9JRCkgS2VDYW5jZWxUaW1l
cigmSW5zdGFuY2UtPlRpbWVyKTsKK30KKworX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xF
VkVMKQorc3RhdGljIFZPSUQKK1BvbGxlckluc3RhbmNlRGlzY29ubmVjdCgKKyAgICBJTiAgUFhF
TlZJRl9QT0xMRVJfSU5TVEFOQ0UgSW5zdGFuY2UKKyAgICApCit7CisgICAgTE9ORyAgICAgICAg
ICAgICAgICAgICAgICAgIFR5cGU7CisKKyAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCks
ID09LCBESVNQQVRDSF9MRVZFTCk7CisKKyAgICBJbnN0YW5jZS0+RHBjcyA9IDA7CisgICAgSW5z
dGFuY2UtPlBlbmRpbmcgPSAwOworCisgICAgVHlwZSA9IFhFTlZJRl9QT0xMRVJfQ0hBTk5FTF9U
WVBFX0NPVU5UOworCisgICAgd2hpbGUgKC0tVHlwZSA+PSAwKQorICAgIHsKKyAgICAgICAgUFhF
TlZJRl9QT0xMRVJfQ0hBTk5FTCBDaGFubmVsID0gSW5zdGFuY2UtPkNoYW5uZWxbVHlwZV07CisK
KyAgICAgICAgUG9sbGVyQ2hhbm5lbERpc2Nvbm5lY3QoQ2hhbm5lbCk7CisgICAgfQorfQorCitz
dGF0aWMgVk9JRAorUG9sbGVySW5zdGFuY2VUZWFyZG93bigKKyAgICBJTiAgUFhFTlZJRl9QT0xM
RVJfSU5TVEFOQ0UgSW5zdGFuY2UKKyAgICApCit7CisgICAgUFhFTlZJRl9QT0xMRVIgICAgICAg
ICAgICAgIFBvbGxlcjsKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAgICAgRnJvbnRlbmQ7
CisgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgIFR5cGU7CisKKyAgICBBU1NFUlQzVShL
ZUdldEN1cnJlbnRJcnFsKCksID09LCBQQVNTSVZFX0xFVkVMKTsKKyAgICBLZUZsdXNoUXVldWVk
RHBjcygpOworCisgICAgUG9sbGVyID0gSW5zdGFuY2UtPlBvbGxlcjsKKyAgICBGcm9udGVuZCA9
IFBvbGxlci0+RnJvbnRlbmQ7CisKKyAgICBSdGxaZXJvTWVtb3J5KCZJbnN0YW5jZS0+VGltZXJE
cGMsIHNpemVvZiAoS0RQQykpOworICAgIFJ0bFplcm9NZW1vcnkoJkluc3RhbmNlLT5UaW1lciwg
c2l6ZW9mIChLVElNRVIpKTsKKyAgICBSdGxaZXJvTWVtb3J5KCZJbnN0YW5jZS0+RHBjLCBzaXpl
b2YgKEtEUEMpKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJkluc3RhbmNlLT5Mb2NrLCBzaXplb2Yg
KEtTUElOX0xPQ0spKTsKKworICAgIEZyb250ZW5kRnJlZVBhdGgoRnJvbnRlbmQsIEluc3RhbmNl
LT5QYXRoKTsKKyAgICBJbnN0YW5jZS0+UGF0aCA9IE5VTEw7CisKKyAgICBUeXBlID0gWEVOVklG
X1BPTExFUl9DSEFOTkVMX1RZUEVfQ09VTlQ7CisKKyAgICB3aGlsZSAoLS1UeXBlID49IDApCisg
ICAgeworICAgICAgICBQWEVOVklGX1BPTExFUl9DSEFOTkVMIENoYW5uZWwgPSBJbnN0YW5jZS0+
Q2hhbm5lbFtUeXBlXTsKKworICAgICAgICBJbnN0YW5jZS0+Q2hhbm5lbFtUeXBlXSA9IE5VTEw7
CisgICAgICAgIFBvbGxlckNoYW5uZWxUZWFyZG93bihDaGFubmVsKTsKKyAgICB9CisKKyAgICBJ
bnN0YW5jZS0+SW5kZXggPSAwOworICAgIEluc3RhbmNlLT5Qb2xsZXIgPSBOVUxMOworCisgICAg
QVNTRVJUKElzWmVyb01lbW9yeShJbnN0YW5jZSwgc2l6ZW9mIChYRU5WSUZfUE9MTEVSX0lOU1RB
TkNFKSkpOworICAgIF9fUG9sbGVyRnJlZShJbnN0YW5jZSk7CiB9CiAKIHN0YXRpYyBWT0lECiBQ
b2xsZXJEZWJ1Z0NhbGxiYWNrKAotICAgIElOICBQVk9JRCAgIEFyZ3VtZW50LAotICAgIElOICBC
T09MRUFOIENyYXNoaW5nCisgICAgSU4gIFBWT0lEICAgICAgICAgICBBcmd1bWVudCwKKyAgICBJ
TiAgQk9PTEVBTiAgICAgICAgIENyYXNoaW5nCiAgICAgKQogewotICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoQXJndW1lbnQpOworICAgIFBYRU5WSUZfUE9MTEVSICAgICAgUG9sbGVyID0gQXJn
dW1lbnQ7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9udGVuZDsKKyAgICBVTE9ORyAgICAg
ICAgICAgICAgIE51bVF1ZXVlczsKKyAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4OworCiAg
ICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDcmFzaGluZyk7CisKKyAgICBGcm9udGVuZCA9IFBv
bGxlci0+RnJvbnRlbmQ7CisKKyAgICBOdW1RdWV1ZXMgPSBGcm9udGVuZEdldE51bVF1ZXVlcyhG
cm9udGVuZCk7CisKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1RdWV1ZXM7IEluZGV4
KyspIHsKKyAgICAgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgSW5zdGFuY2UgPSBQb2xsZXIt
Pkluc3RhbmNlW0luZGV4XTsKKworICAgICAgICBQb2xsZXJJbnN0YW5jZURlYnVnQ2FsbGJhY2so
SW5zdGFuY2UpOworICAgIH0KK30KKworc3RhdGljIFZPSUQKK1BvbGxlclNldFNwbGl0KAorICAg
IElOICBQWEVOVklGX1BPTExFUiAgUG9sbGVyCisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRF
TkQgICAgRnJvbnRlbmQ7CisgICAgUENIQVIgICAgICAgICAgICAgICBCdWZmZXI7CisgICAgTlRT
VEFUVVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBGcm9udGVuZCA9IFBvbGxlci0+RnJvbnRl
bmQ7CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJlBvbGxlci0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0QmFja2VuZFBh
dGgoRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1zcGxpdC1l
dmVudC1jaGFubmVscyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZCdWZmZXIpOworICAg
IGlmIChOVF9TVUNDRVNTKHN0YXR1cykpIHsKKyAgICAgICAgUG9sbGVyLT5TcGxpdCA9IChCT09M
RUFOKXN0cnRvbChCdWZmZXIsIE5VTEwsIDIpOworCisgICAgICAgIFhFTkJVU19TVE9SRShGcmVl
LAorICAgICAgICAgICAgICAgICAgICAgJlBvbGxlci0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAg
ICAgICAgICAgICAgICBCdWZmZXIpOworICAgIH0gZWxzZSB7CisgICAgICAgIFBvbGxlci0+U3Bs
aXQgPSBGQUxTRTsKKyAgICB9CisKKyAgICBJbmZvKCIlczogJXNcbiIsIEZyb250ZW5kR2V0UGF0
aChGcm9udGVuZCksCisgICAgICAgICAoUG9sbGVyLT5TcGxpdCkgPyAiVFJVRSIgOiAiRkFMU0Ui
KTsKIH0KIAogTlRTVEFUVVMKQEAgLTkyLDYgKzEwNjksOCBAQCBQb2xsZXJJbml0aWFsaXplKAog
ICAgIE9VVCBQWEVOVklGX1BPTExFUiAgICAgICpQb2xsZXIKICAgICApCiB7CisgICAgTE9ORyAg
ICAgICAgICAgICAgICAgICAgTWF4UXVldWVzOworICAgIExPTkcgICAgICAgICAgICAgICAgICAg
IEluZGV4OwogICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKIAogICAgICpQb2xs
ZXIgPSBfX1BvbGxlckFsbG9jYXRlKHNpemVvZiAoWEVOVklGX1BPTExFUikpOwpAQCAtMTAwLDEz
ICsxMDc5LDY3IEBAIFBvbGxlckluaXRpYWxpemUoCiAgICAgaWYgKCpQb2xsZXIgPT0gTlVMTCkK
ICAgICAgICAgZ290byBmYWlsMTsKIAorICAgIEZkb0dldEV2dGNobkludGVyZmFjZShQZG9HZXRG
ZG8oRnJvbnRlbmRHZXRQZG8oRnJvbnRlbmQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
JigqUG9sbGVyKS0+RXZ0Y2huSW50ZXJmYWNlKTsKKworICAgIEZkb0dldFN0b3JlSW50ZXJmYWNl
KFBkb0dldEZkbyhGcm9udGVuZEdldFBkbyhGcm9udGVuZCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICYoKlBvbGxlciktPlN0b3JlSW50ZXJmYWNlKTsKKwogICAgIEZkb0dldERlYnVnSW50
ZXJmYWNlKFBkb0dldEZkbyhGcm9udGVuZEdldFBkbyhGcm9udGVuZCkpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICYoKlBvbGxlciktPkRlYnVnSW50ZXJmYWNlKTsKIAogICAgICgqUG9sbGVy
KS0+RnJvbnRlbmQgPSBGcm9udGVuZDsKIAorICAgIE1heFF1ZXVlcyA9IEZyb250ZW5kR2V0TWF4
UXVldWVzKEZyb250ZW5kKTsKKyAgICAoKlBvbGxlciktPkluc3RhbmNlID0gX19Qb2xsZXJBbGxv
Y2F0ZShzaXplb2YgKFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFKSAqCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4UXVldWVzKTsKKworICAgIHN0YXR1cyA9IFNU
QVRVU19OT19NRU1PUlk7CisgICAgaWYgKCgqUG9sbGVyKS0+SW5zdGFuY2UgPT0gTlVMTCkKKyAg
ICAgICAgZ290byBmYWlsMjsKKworICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE1heFF1ZXVl
czsgSW5kZXgrKykgeworICAgICAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSBJbnN0YW5jZTsK
KworICAgICAgICBzdGF0dXMgPSBQb2xsZXJJbnN0YW5jZUluaXRpYWxpemUoKlBvbGxlciwgSW5k
ZXgsICZJbnN0YW5jZSk7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAg
ICAgICAgZ290byBmYWlsMzsKKworICAgICAgICAoKlBvbGxlciktPkluc3RhbmNlW0luZGV4XSA9
IEluc3RhbmNlOworICAgIH0KKwogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAorZmFpbDM6
CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKworICAgIHdoaWxlICgtLUluZGV4ID49IDApCisgICAg
eworICAgICAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5DRSBJbnN0YW5jZSA9ICgqUG9sbGVyKS0+
SW5zdGFuY2VbSW5kZXhdOworCisgICAgICAgICgqUG9sbGVyKS0+SW5zdGFuY2VbSW5kZXhdID0g
TlVMTDsKKyAgICAgICAgUG9sbGVySW5zdGFuY2VUZWFyZG93bihJbnN0YW5jZSk7CisgICAgfQor
CisgICAgQVNTRVJUKElzWmVyb01lbW9yeSgoKlBvbGxlciktPkluc3RhbmNlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mIChQWEVOVklGX1BPTExFUl9JTlNUQU5DRSkgKiBNYXhRdWV1
ZXMpKTsKKyAgICBfX1BvbGxlckZyZWUoKCpQb2xsZXIpLT5JbnN0YW5jZSk7CisgICAgKCpQb2xs
ZXIpLT5JbnN0YW5jZSA9IE5VTEw7CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisK
KyAgICAoKlBvbGxlciktPkZyb250ZW5kID0gTlVMTDsKKworICAgIFJ0bFplcm9NZW1vcnkoJigq
UG9sbGVyKS0+RGVidWdJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJV
U19ERUJVR19JTlRFUkZBQ0UpKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJigqUG9sbGVyKS0+U3Rv
cmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJVU19TVE9SRV9JTlRF
UkZBQ0UpKTsKKworICAgIFJ0bFplcm9NZW1vcnkoJigqUG9sbGVyKS0+RXZ0Y2huSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSkpOwor
CiBmYWlsMToKICAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOwogCkBAIC0xMTgs
MTQgKzExNTEsMzkgQEAgUG9sbGVyQ29ubmVjdCgKICAgICBJTiAgUFhFTlZJRl9QT0xMRVIgIFBv
bGxlcgogICAgICkKIHsKKyAgICBQWEVOVklGX0ZST05URU5EICAgIEZyb250ZW5kOworICAgIExP
TkcgICAgICAgICAgICAgICAgTnVtUXVldWVzOworICAgIExPTkcgICAgICAgICAgICAgICAgSW5k
ZXg7CiAgICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CiAKICAgICBUcmFjZSgiPT09PT5c
biIpOwogCi0gICAgc3RhdHVzID0gWEVOQlVTX0RFQlVHKEFjcXVpcmUsICZQb2xsZXItPkRlYnVn
SW50ZXJmYWNlKTsKKyAgICBGcm9udGVuZCA9IFBvbGxlci0+RnJvbnRlbmQ7CisKKyAgICBzdGF0
dXMgPSBYRU5CVVNfRVZUQ0hOKEFjcXVpcmUsICZQb2xsZXItPkV2dGNobkludGVyZmFjZSk7CiAg
ICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDE7CiAKKyAgICBz
dGF0dXMgPSBYRU5CVVNfU1RPUkUoQWNxdWlyZSwgJlBvbGxlci0+U3RvcmVJbnRlcmZhY2UpOwor
ICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAg
c3RhdHVzID0gWEVOQlVTX0RFQlVHKEFjcXVpcmUsICZQb2xsZXItPkRlYnVnSW50ZXJmYWNlKTsK
KyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAg
IFBvbGxlclNldFNwbGl0KFBvbGxlcik7CisKKyAgICBOdW1RdWV1ZXMgPSBGcm9udGVuZEdldE51
bVF1ZXVlcyhGcm9udGVuZCk7CisKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1RdWV1
ZXM7IEluZGV4KyspIHsKKyAgICAgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgSW5zdGFuY2Ug
PSBQb2xsZXItPkluc3RhbmNlW0luZGV4XTsKKworICAgICAgICBzdGF0dXMgPSBQb2xsZXJJbnN0
YW5jZUNvbm5lY3QoSW5zdGFuY2UpOworICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
KyAgICAgICAgICAgIGdvdG8gZmFpbDQ7CisgICAgfQorCiAgICAgc3RhdHVzID0gWEVOQlVTX0RF
QlVHKFJlZ2lzdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmUG9sbGVyLT5EZWJ1Z0lu
dGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19NT0RVTEVfXyAifFBPTExFUiIs
CkBAIC0xMzMsMTUgKzExOTEsMzkgQEAgUG9sbGVyQ29ubmVjdCgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUG9sbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmUG9sbGVyLT5EZWJ1
Z0NhbGxiYWNrKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBm
YWlsMjsKKyAgICAgICAgZ290byBmYWlsNTsKIAogICAgIFRyYWNlKCI8PT09PVxuIik7CiAgICAg
cmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWlsNToKKyAgICBFcnJvcigiZmFpbDVcbiIpOwor
CisgICAgSW5kZXggPSBOdW1RdWV1ZXM7CisKK2ZhaWw0OgorICAgIEVycm9yKCJmYWlsNFxuIik7
CisKKyAgICB3aGlsZSAoLS1JbmRleCA+PSAwKQorICAgIHsKKyAgICAgICAgUFhFTlZJRl9QT0xM
RVJfSU5TVEFOQ0UgSW5zdGFuY2UgPSBQb2xsZXItPkluc3RhbmNlW0luZGV4XTsKKworICAgICAg
ICBQb2xsZXJJbnN0YW5jZURpc2Nvbm5lY3QoSW5zdGFuY2UpOworICAgIH0KKworICAgIFBvbGxl
ci0+U3BsaXQgPSBGQUxTRTsKKworICAgIFhFTkJVU19ERUJVRyhSZWxlYXNlLCAmUG9sbGVyLT5E
ZWJ1Z0ludGVyZmFjZSk7CisKK2ZhaWwzOgorICAgIEVycm9yKCJmYWlsM1xuIik7CisKKyAgICBY
RU5CVVNfU1RPUkUoUmVsZWFzZSwgJlBvbGxlci0+U3RvcmVJbnRlcmZhY2UpOworCiBmYWlsMjoK
ICAgICBFcnJvcigiZmFpbDJcbiIpOwogCi0gICAgWEVOQlVTX0RFQlVHKFJlbGVhc2UsICZQb2xs
ZXItPkRlYnVnSW50ZXJmYWNlKTsKKyAgICBYRU5CVVNfRVZUQ0hOKFJlbGVhc2UsICZQb2xsZXIt
PkV2dGNobkludGVyZmFjZSk7CiAKIGZhaWwxOgogICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIs
IHN0YXR1cyk7CkBAIC0xNTUsMzQgKzEyMzcsMTc0IEBAIFBvbGxlclN0b3JlV3JpdGUoCiAgICAg
SU4gIFBYRU5CVVNfU1RPUkVfVFJBTlNBQ1RJT04gICBUcmFuc2FjdGlvbgogICAgICkKIHsKLSAg
ICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKFBvbGxlcik7Ci0gICAgVU5SRUZFUkVOQ0VEX1BBUkFN
RVRFUihUcmFuc2FjdGlvbik7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgICAgICBG
cm9udGVuZDsKKyAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bVF1ZXVlczsK
KyAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4OworICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOworCisgICAgVHJhY2UoIj09PT0+XG4iKTsK
KworICAgIEZyb250ZW5kID0gUG9sbGVyLT5Gcm9udGVuZDsKKworICAgIE51bVF1ZXVlcyA9IEZy
b250ZW5kR2V0TnVtUXVldWVzKEZyb250ZW5kKTsKKworICAgIGZvciAoSW5kZXggPSAwOyBJbmRl
eCA8IE51bVF1ZXVlczsgSW5kZXgrKykgeworICAgICAgICBQWEVOVklGX1BPTExFUl9JTlNUQU5D
RSBJbnN0YW5jZSA9IFBvbGxlci0+SW5zdGFuY2VbSW5kZXhdOwogCi0gICAgVHJhY2UoIjw9PT0+
XG4iKTsKKyAgICAgICAgc3RhdHVzID0gUG9sbGVySW5zdGFuY2VTdG9yZVdyaXRlKEluc3RhbmNl
LCBUcmFuc2FjdGlvbik7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAg
ICAgICAgZ290byBmYWlsMTsKKyAgICB9CisKKyAgICBUcmFjZSgiPD09PT1cbiIpOwogCiAgICAg
cmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgp
XG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsKIH0KIAogTlRTVEFUVVMKIFBvbGxl
ckVuYWJsZSgKLSAgICBJTiAgUFhFTlZJRl9QT0xMRVIgICAgICBQb2xsZXIKKyAgICBJTiAgUFhF
TlZJRl9QT0xMRVIgIFBvbGxlcgorICAgICkKK3sKKyAgICBQWEVOVklGX0ZST05URU5EICAgIEZy
b250ZW5kOworICAgIExPTkcgICAgICAgICAgICAgICAgTnVtUXVldWVzOworICAgIExPTkcgICAg
ICAgICAgICAgICAgSW5kZXg7CisgICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CisKKyAg
ICBUcmFjZSgiPT09PT5cbiIpOworCisgICAgRnJvbnRlbmQgPSBQb2xsZXItPkZyb250ZW5kOwor
CisgICAgTnVtUXVldWVzID0gRnJvbnRlbmRHZXROdW1RdWV1ZXMoRnJvbnRlbmQpOworCisgICAg
Zm9yIChJbmRleCA9IDA7IEluZGV4IDwgTnVtUXVldWVzOyBJbmRleCsrKSB7CisgICAgICAgIFBY
RU5WSUZfUE9MTEVSX0lOU1RBTkNFIEluc3RhbmNlID0gUG9sbGVyLT5JbnN0YW5jZVtJbmRleF07
CisKKyAgICAgICAgc3RhdHVzID0gUG9sbGVySW5zdGFuY2VFbmFibGUoSW5zdGFuY2UpOworICAg
ICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgICAgIGdvdG8gZmFpbDE7Cisg
ICAgfQorCisgICAgVHJhY2UoIjw9PT09XG4iKTsKKworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VT
UzsKKworZmFpbDE6CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKKworICAg
IHdoaWxlICgtLUluZGV4ID49IDApCisgICAgeworICAgICAgICBQWEVOVklGX1BPTExFUl9JTlNU
QU5DRSBJbnN0YW5jZSA9IFBvbGxlci0+SW5zdGFuY2VbSW5kZXhdOworCisgICAgICAgIFBvbGxl
ckluc3RhbmNlRGlzYWJsZShJbnN0YW5jZSk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXR1czsK
K30KKworTlRTVEFUVVMKK1BvbGxlclNlbmQoCisgICAgSU4gIFBYRU5WSUZfUE9MTEVSICAgICAg
ICAgICAgICBQb2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBJbmRl
eCwKKyAgICBJTiAgWEVOVklGX1BPTExFUl9FVkVOVF9UWVBFICAgIEV2ZW50CiAgICAgKQogewot
ICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoUG9sbGVyKTsKKyAgICBQWEVOVklGX0ZST05URU5E
ICAgICAgICAgICAgICAgIEZyb250ZW5kOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTnVtUXVldWVzOworICAgIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFICAgICAgICAgSW5z
dGFuY2U7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CiAKLSAg
ICBUcmFjZSgiPD09PT5cbiIpOworICAgIEZyb250ZW5kID0gUG9sbGVyLT5Gcm9udGVuZDsKKwor
ICAgIE51bVF1ZXVlcyA9IEZyb250ZW5kR2V0TnVtUXVldWVzKEZyb250ZW5kKTsKKworICAgIHN0
YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAgICBpZiAoSW5kZXggPj0gTnVtUXVl
dWVzKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgSW5zdGFuY2UgPSBQb2xsZXItPkluc3Rh
bmNlW0luZGV4XTsKKworICAgIHN0YXR1cyA9IFBvbGxlckluc3RhbmNlU2VuZChJbnN0YW5jZSwg
RXZlbnQpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWwy
OworCisgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFp
bDJcbiIpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOwor
CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworTlRTVEFUVVMKK1BvbGxlclRyaWdnZXIoCisgICAg
SU4gIFBYRU5WSUZfUE9MTEVSICAgICAgICAgICAgICBQb2xsZXIsCisgICAgSU4gIFVMT05HICAg
ICAgICAgICAgICAgICAgICAgICBJbmRleCwKKyAgICBJTiAgWEVOVklGX1BPTExFUl9FVkVOVF9U
WVBFICAgIEV2ZW50CisgICAgKQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICAg
ICAgRnJvbnRlbmQ7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1RdWV1
ZXM7CisgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgICAgICAgICBJbnN0YW5jZTsKKyAgICBO
VFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKKworICAgIEZyb250ZW5kID0g
UG9sbGVyLT5Gcm9udGVuZDsKKworICAgIE51bVF1ZXVlcyA9IEZyb250ZW5kR2V0TnVtUXVldWVz
KEZyb250ZW5kKTsKKworICAgIHN0YXR1cyA9IFNUQVRVU19JTlZBTElEX1BBUkFNRVRFUjsKKyAg
ICBpZiAoSW5kZXggPj0gTnVtUXVldWVzKQorICAgICAgICBnb3RvIGZhaWwxOworCisgICAgSW5z
dGFuY2UgPSBQb2xsZXItPkluc3RhbmNlW0luZGV4XTsKKworICAgIHN0YXR1cyA9IFBvbGxlcklu
c3RhbmNlVHJpZ2dlcihJbnN0YW5jZSwgRXZlbnQpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0
dXMpKQorICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwor
CitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCitmYWlsMToKKyAgICBFcnJvcigiZmFp
bDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIHN0YXR1czsKIH0KIAogVk9JRAog
UG9sbGVyRGlzYWJsZSgKLSAgICBJTiAgUFhFTlZJRl9QT0xMRVIgICAgICBQb2xsZXIKKyAgICBJ
TiAgUFhFTlZJRl9QT0xMRVIgIFBvbGxlcgogICAgICkKIHsKLSAgICBVTlJFRkVSRU5DRURfUEFS
QU1FVEVSKFBvbGxlcik7CisgICAgUFhFTlZJRl9GUk9OVEVORCAgICBGcm9udGVuZDsKKyAgICBM
T05HICAgICAgICAgICAgICAgIE51bVF1ZXVlczsKKyAgICBMT05HICAgICAgICAgICAgICAgIElu
ZGV4OwogCi0gICAgVHJhY2UoIjw9PT0+XG4iKTsKKyAgICBUcmFjZSgiPT09PT5cbiIpOworCisg
ICAgRnJvbnRlbmQgPSBQb2xsZXItPkZyb250ZW5kOworCisgICAgTnVtUXVldWVzID0gRnJvbnRl
bmRHZXROdW1RdWV1ZXMoRnJvbnRlbmQpOworICAgIEluZGV4ID0gTnVtUXVldWVzOworCisgICAg
d2hpbGUgKC0tSW5kZXggPj0gMCkKKyAgICB7CisgICAgICAgIFBYRU5WSUZfUE9MTEVSX0lOU1RB
TkNFIEluc3RhbmNlID0gUG9sbGVyLT5JbnN0YW5jZVtJbmRleF07CisKKyAgICAgICAgUG9sbGVy
SW5zdGFuY2VEaXNhYmxlKEluc3RhbmNlKTsKKyAgICB9CisKKyAgICBUcmFjZSgiPD09PT1cbiIp
OwogfQogCiBWT0lECkBAIC0xOTAsMTUgKzE0MTIsMzcgQEAgUG9sbGVyRGlzY29ubmVjdCgKICAg
ICBJTiAgUFhFTlZJRl9QT0xMRVIgIFBvbGxlcgogICAgICkKIHsKKyAgICBQWEVOVklGX0ZST05U
RU5EICAgIEZyb250ZW5kOworICAgIExPTkcgICAgICAgICAgICAgICAgTnVtUXVldWVzOworICAg
IExPTkcgICAgICAgICAgICAgICAgSW5kZXg7CisKICAgICBUcmFjZSgiPT09PT5cbiIpOwogCisg
ICAgRnJvbnRlbmQgPSBQb2xsZXItPkZyb250ZW5kOworCiAgICAgWEVOQlVTX0RFQlVHKERlcmVn
aXN0ZXIsCiAgICAgICAgICAgICAgICAgICZQb2xsZXItPkRlYnVnSW50ZXJmYWNlLAogICAgICAg
ICAgICAgICAgICBQb2xsZXItPkRlYnVnQ2FsbGJhY2spOwogICAgIFBvbGxlci0+RGVidWdDYWxs
YmFjayA9IE5VTEw7CiAKKyAgICBOdW1RdWV1ZXMgPSBGcm9udGVuZEdldE51bVF1ZXVlcyhGcm9u
dGVuZCk7CisgICAgSW5kZXggPSBOdW1RdWV1ZXM7CisKKyAgICB3aGlsZSAoLS1JbmRleCA+PSAw
KQorICAgIHsKKyAgICAgICAgUFhFTlZJRl9QT0xMRVJfSU5TVEFOQ0UgSW5zdGFuY2UgPSBQb2xs
ZXItPkluc3RhbmNlW0luZGV4XTsKKworICAgICAgICBQb2xsZXJJbnN0YW5jZURpc2Nvbm5lY3Qo
SW5zdGFuY2UpOworICAgIH0KKworICAgIFBvbGxlci0+U3BsaXQgPSBGQUxTRTsKKwogICAgIFhF
TkJVU19ERUJVRyhSZWxlYXNlLCAmUG9sbGVyLT5EZWJ1Z0ludGVyZmFjZSk7CiAKKyAgICBYRU5C
VVNfU1RPUkUoUmVsZWFzZSwgJlBvbGxlci0+U3RvcmVJbnRlcmZhY2UpOworCisgICAgWEVOQlVT
X0VWVENITihSZWxlYXNlLCAmUG9sbGVyLT5FdnRjaG5JbnRlcmZhY2UpOworCiAgICAgVHJhY2Uo
Ijw9PT09XG4iKTsKIH0KIApAQCAtMjA3LDExICsxNDUxLDQxIEBAIFBvbGxlclRlYXJkb3duKAog
ICAgIElOICBQWEVOVklGX1BPTExFUiAgUG9sbGVyCiAgICAgKQogeworICAgIFBYRU5WSUZfRlJP
TlRFTkQgICAgRnJvbnRlbmQ7CisgICAgTE9ORyAgICAgICAgICAgICAgICBNYXhRdWV1ZXM7Cisg
ICAgTE9ORyAgICAgICAgICAgICAgICBJbmRleDsKKwogICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVu
dElycWwoKSwgPT0sIFBBU1NJVkVfTEVWRUwpOwogCisgICAgRnJvbnRlbmQgPSBQb2xsZXItPkZy
b250ZW5kOworCisgICAgTWF4UXVldWVzID0gRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRlbmQp
OworICAgIEluZGV4ID0gTWF4UXVldWVzOworCisgICAgd2hpbGUgKC0tSW5kZXggPj0gMCkKKyAg
ICB7CisgICAgICAgIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFIEluc3RhbmNlID0gUG9sbGVyLT5J
bnN0YW5jZVtJbmRleF07CisKKyAgICAgICAgUG9sbGVyLT5JbnN0YW5jZVtJbmRleF0gPSBOVUxM
OworICAgICAgICBQb2xsZXJJbnN0YW5jZVRlYXJkb3duKEluc3RhbmNlKTsKKyAgICB9CisKKyAg
ICBBU1NFUlQoSXNaZXJvTWVtb3J5KFBvbGxlci0+SW5zdGFuY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2YgKFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFKSAqIE1heFF1ZXVlcykpOwor
ICAgIF9fUG9sbGVyRnJlZShQb2xsZXItPkluc3RhbmNlKTsKKyAgICBQb2xsZXItPkluc3RhbmNl
ID0gTlVMTDsKKworICAgIFBvbGxlci0+RnJvbnRlbmQgPSBOVUxMOworCiAgICAgUnRsWmVyb01l
bW9yeSgmUG9sbGVyLT5EZWJ1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgIHNpemVvZiAo
WEVOQlVTX0RFQlVHX0lOVEVSRkFDRSkpOwogCisgICAgUnRsWmVyb01lbW9yeSgmUG9sbGVyLT5T
dG9yZUludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIHNpemVvZiAoWEVOQlVTX1NUT1JFX0lO
VEVSRkFDRSkpOworCisgICAgUnRsWmVyb01lbW9yeSgmUG9sbGVyLT5FdnRjaG5JbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJVU19FVlRDSE5fSU5URVJGQUNFKSk7CisK
ICAgICBBU1NFUlQoSXNaZXJvTWVtb3J5KFBvbGxlciwgc2l6ZW9mIChYRU5WSUZfUE9MTEVSKSkp
OwogICAgIF9fUG9sbGVyRnJlZShQb2xsZXIpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi9w
b2xsZXIuaCBiL3NyYy94ZW52aWYvcG9sbGVyLmgKaW5kZXggNWJhMGVhYS4uYTJiMzJhMSAxMDA2
NDQKLS0tIGEvc3JjL3hlbnZpZi9wb2xsZXIuaAorKysgYi9zcmMveGVudmlmL3BvbGxlci5oCkBA
IC00MCwxMCArNDAsMTYgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9QT0xMRVIgWEVOVklG
X1BPTExFUiwgKlBYRU5WSUZfUE9MTEVSOwogCit0eXBlZGVmIGVudW0gX1hFTlZJRl9QT0xMRVJf
RVZFTlRfVFlQRSB7CisgICAgWEVOVklGX1BPTExFUl9FVkVOVF9SRUNFSVZFLAorICAgIFhFTlZJ
Rl9QT0xMRVJfRVZFTlRfVFJBTlNNSVQsCisgICAgWEVOVklGX1BPTExFUl9FVkVOVF9UWVBFX0NP
VU5UCit9IFhFTlZJRl9QT0xMRVJfRVZFTlRfVFlQRSwgKlBYRU5WSUZfUE9MTEVSX0VWRU5UX1RZ
UEU7CisKIGV4dGVybiBOVFNUQVRVUwogUG9sbGVySW5pdGlhbGl6ZSgKICAgICBJTiAgUFhFTlZJ
Rl9GUk9OVEVORCAgICBGcm9udGVuZCwKLSAgICBPVVQgUFhFTlZJRl9QT0xMRVIgICpQb2xsZXIK
KyAgICBPVVQgUFhFTlZJRl9QT0xMRVIgICAgICAqUG9sbGVyCiAgICAgKTsKIAogZXh0ZXJuIE5U
U1RBVFVTCkBAIC01Myw3ICs1OSw3IEBAIFBvbGxlckNvbm5lY3QoCiAKIGV4dGVybiBOVFNUQVRV
UwogUG9sbGVyU3RvcmVXcml0ZSgKLSAgICBJTiAgUFhFTlZJRl9QT0xMRVIgICAgICAgICAgUG9s
bGVyLAorICAgIElOICBQWEVOVklGX1BPTExFUiAgICAgICAgICAgICAgUG9sbGVyLAogICAgIElO
ICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJhbnNhY3Rpb24KICAgICApOwogCkBAIC02
Miw2ICs2OCwyMCBAQCBQb2xsZXJFbmFibGUoCiAgICAgSU4gIFBYRU5WSUZfUE9MTEVSICBQb2xs
ZXIKICAgICApOwogCitleHRlcm4gTlRTVEFUVVMKK1BvbGxlclNlbmQoCisgICAgSU4gIFBYRU5W
SUZfUE9MTEVSICAgICAgICAgICAgICBQb2xsZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleCwKKyAgICBJTiAgWEVOVklGX1BPTExFUl9FVkVOVF9UWVBFICAgIEV2
ZW50CisgICAgKTsKKworZXh0ZXJuIE5UU1RBVFVTCitQb2xsZXJUcmlnZ2VyKAorICAgIElOICBQ
WEVOVklGX1BPTExFUiAgICAgICAgICAgICAgUG9sbGVyLAorICAgIElOICBVTE9ORyAgICAgICAg
ICAgICAgICAgICAgICAgSW5kZXgsCisgICAgSU4gIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFlQRSAg
ICBFdmVudAorICAgICk7CisKIGV4dGVybiBWT0lECiBQb2xsZXJEaXNhYmxlKAogICAgIElOICBQ
WEVOVklGX1BPTExFUiAgUG9sbGVyCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3JlY2VpdmVyLmMg
Yi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggZDdmMzg3MC4uZTQ4YjY3OCAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52aWYvcmVjZWl2ZXIuYwpAQCAt
NDEsNyArNDEsNiBAQAogI2luY2x1ZGUgPHN0b3JlX2ludGVyZmFjZS5oPgogI2luY2x1ZGUgPGNh
Y2hlX2ludGVyZmFjZS5oPgogI2luY2x1ZGUgPGdudHRhYl9pbnRlcmZhY2UuaD4KLSNpbmNsdWRl
IDxldnRjaG5faW50ZXJmYWNlLmg+CiAKICNpbmNsdWRlICJwZG8uaCIKICNpbmNsdWRlICJyZWdp
c3RyeS5oIgpAQCAtODgsMTIgKzg3LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZJRl9SRUNFSVZF
Ul9SSU5HIHsKICAgICBuZXRpZl9yeF9mcm9udF9yaW5nX3QgICAgICAgRnJvbnQ7CiAgICAgbmV0
aWZfcnhfc3JpbmdfdCAgICAgICAgICAgICpTaGFyZWQ7CiAgICAgUFhFTkJVU19HTlRUQUJfRU5U
UlkgICAgICAgIEVudHJ5OwotICAgIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgICAgICBDaGFubmVs
OwotICAgIEtEUEMgICAgICAgICAgICAgICAgICAgICAgICBEcGM7Ci0gICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgICAgIERwY3M7Ci0gICAgS1RJTUVSICAgICAgICAgICAgICAgICAgICAgIFRp
bWVyOwotICAgIEtEUEMgICAgICAgICAgICAgICAgICAgICAgICBUaW1lckRwYzsKLSAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRzOwogICAgIFBYRU5WSUZfUkVDRUlWRVJfRlJB
R01FTlQgICBQZW5kaW5nW1hFTlZJRl9SRUNFSVZFUl9NQVhJTVVNX0ZSQUdNRU5UX0lEICsgMV07
CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3RzUG9zdGVkOwogICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0c1B1c2hlZDsKQEAgLTEyOCw3ICsxMjEs
NiBAQCBzdHJ1Y3QgX1hFTlZJRl9SRUNFSVZFUiB7CiAgICAgUFhFTlZJRl9GUk9OVEVORCAgICAg
ICAgICAgICAgICBGcm9udGVuZDsKICAgICBYRU5CVVNfQ0FDSEVfSU5URVJGQUNFICAgICAgICAg
IENhY2hlSW50ZXJmYWNlOwogICAgIFhFTkJVU19HTlRUQUJfSU5URVJGQUNFICAgICAgICAgR250
dGFiSW50ZXJmYWNlOwotICAgIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFICAgICAgICAgRXZ0Y2hu
SW50ZXJmYWNlOwogICAgIFBYRU5WSUZfUkVDRUlWRVJfUklORyAgICAgICAgICAgKlJpbmc7CiAg
ICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2FuZWQ7CiAgICAgTE9ORyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5lZDsKQEAgLTE2MTUsNTggKzE2MDcsMTkgQEAg
X19SZWNlaXZlclJpbmdJc1N0b3BwZWQoCiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECi1f
X1JlY2VpdmVyUmluZ1RyaWdnZXIoCi0gICAgSU4gIFBYRU5WSUZfUkVDRUlWRVJfUklORyAgIFJp
bmcsCi0gICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgIExvY2tlZAotICAgICkKLXsKLSAg
ICBQWEVOVklGX1JFQ0VJVkVSICAgICAgICAgICAgUmVjZWl2ZXI7Ci0KLSAgICBSZWNlaXZlciA9
IFJpbmctPlJlY2VpdmVyOwotCi0gICAgaWYgKCFMb2NrZWQpCi0gICAgICAgIF9fUmVjZWl2ZXJS
aW5nQWNxdWlyZUxvY2soUmluZyk7Ci0KLSAgICBpZiAoUmluZy0+Q29ubmVjdGVkKQotICAgICAg
ICAoVk9JRCkgWEVOQlVTX0VWVENITihUcmlnZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmUmVjZWl2ZXItPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmluZy0+Q2hhbm5lbCk7Ci0KLSAgICBpZiAoIUxvY2tlZCkKLSAgICAgICAgX19SZWNl
aXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKLX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQK
LV9fUmVjZWl2ZXJSaW5nU2VuZCgKLSAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmlu
ZywKLSAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgTG9ja2VkCi0gICAgKQotewotICAg
IFBYRU5WSUZfUkVDRUlWRVIgICAgICAgICAgICBSZWNlaXZlcjsKLQotICAgIFJlY2VpdmVyID0g
UmluZy0+UmVjZWl2ZXI7Ci0KLSAgICBpZiAoIUxvY2tlZCkKLSAgICAgICAgX19SZWNlaXZlclJp
bmdBY3F1aXJlTG9jayhSaW5nKTsKLQotICAgIGlmIChSaW5nLT5Db25uZWN0ZWQpCi0gICAgICAg
IChWT0lEKSBYRU5CVVNfRVZUQ0hOKFNlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZSZWNlaXZlci0+RXZ0Y2huSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSaW5nLT5DaGFubmVsKTsKLQotICAgIGlmICghTG9ja2VkKQotICAgICAgICBfX1JlY2VpdmVy
UmluZ1JlbGVhc2VMb2NrKFJpbmcpOwotfQotCi1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAogX19S
ZWNlaXZlclJpbmdSZXR1cm5QYWNrZXQoCiAgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVJfUklORyAg
IFJpbmcsCiAgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVJfUEFDS0VUIFBhY2tldCwKICAgICBJTiAg
Qk9PTEVBTiAgICAgICAgICAgICAgICAgTG9ja2VkCiAgICAgKQogeworICAgIFBYRU5WSUZfUkVD
RUlWRVIgICAgICAgICAgICBSZWNlaXZlcjsKKyAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAg
ICAgRnJvbnRlbmQ7CiAgICAgUE1ETCAgICAgICAgICAgICAgICAgICAgICAgIE1kbDsKIAorICAg
IFJlY2VpdmVyID0gUmluZy0+UmVjZWl2ZXI7CisgICAgRnJvbnRlbmQgPSBSZWNlaXZlci0+RnJv
bnRlbmQ7CisKICAgICBNZGwgPSAmUGFja2V0LT5NZGw7CiAKICAgICB3aGlsZSAoTWRsICE9IE5V
TEwpIHsKQEAgLTE2OTAsNyArMTY0Myw5IEBAIF9fUmVjZWl2ZXJSaW5nUmV0dXJuUGFja2V0KAog
CiAgICAgICAgIGlmIChfX1JlY2VpdmVyUmluZ0lzU3RvcHBlZChSaW5nKSkgewogICAgICAgICAg
ICAgX19SZWNlaXZlclJpbmdTdGFydChSaW5nKTsKLSAgICAgICAgICAgIF9fUmVjZWl2ZXJSaW5n
VHJpZ2dlcihSaW5nLCBUUlVFKTsKKyAgICAgICAgICAgIFBvbGxlclRyaWdnZXIoRnJvbnRlbmRH
ZXRQb2xsZXIoRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5JbmRl
eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOVklGX1BPTExFUl9FVkVOVF9SRUNFSVZF
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghTG9ja2VkKQpAQCAtMTc3MCw4ICsxNzI1LDE3
IEBAIF9fUmVjZWl2ZXJSaW5nUHVzaFJlcXVlc3RzKAogCiAjcHJhZ21hIHdhcm5pbmcgKHBvcCkK
IAotICAgIGlmIChOb3RpZnkpCi0gICAgICAgIF9fUmVjZWl2ZXJSaW5nU2VuZChSaW5nLCBUUlVF
KTsKKyAgICBpZiAoTm90aWZ5KSB7CisgICAgICAgIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2
ZXI7CisgICAgICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgRnJvbnRlbmQ7CisKKyAgICAgICAgUmVj
ZWl2ZXIgPSBSaW5nLT5SZWNlaXZlcjsKKyAgICAgICAgRnJvbnRlbmQgPSBSZWNlaXZlci0+RnJv
bnRlbmQ7CisKKyAgICAgICAgUG9sbGVyU2VuZChGcm9udGVuZEdldFBvbGxlcihGcm9udGVuZCks
CisgICAgICAgICAgICAgICAgICAgUmluZy0+SW5kZXgsCisgICAgICAgICAgICAgICAgICAgWEVO
VklGX1BPTExFUl9FVkVOVF9SRUNFSVZFKTsKKyAgICB9CiAKICAgICBSaW5nLT5SZXF1ZXN0c1B1
c2hlZCA9IFJpbmctPlJlcXVlc3RzUG9zdGVkOwogfQpAQCAtMTkyNywxNCArMTg5MSw2IEBAIFJl
Y2VpdmVyUmluZ0RlYnVnQ2FsbGJhY2soCiAgICAgICAgICAgICAgICAgIFJpbmctPlJlcXVlc3Rz
UG9zdGVkLAogICAgICAgICAgICAgICAgICBSaW5nLT5SZXF1ZXN0c1B1c2hlZCwKICAgICAgICAg
ICAgICAgICAgUmluZy0+UmVzcG9uc2VzUHJvY2Vzc2VkKTsKLQotICAgIC8vIER1bXAgZXZlbnQg
Y2hhbm5lbAotICAgIFhFTkJVU19ERUJVRyhQcmludGYsCi0gICAgICAgICAgICAgICAgICZSZWNl
aXZlci0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICJbJXNdOiBFdmVudHMgPSAl
bHUgRHBjcyA9ICVsdVxuIiwKLSAgICAgICAgICAgICAgICAgRnJvbnRlbmRJc1NwbGl0KEZyb250
ZW5kKSA/ICJSWCIgOiAiQ09NQklORUQiLAotICAgICAgICAgICAgICAgICBSaW5nLT5FdmVudHMs
Ci0gICAgICAgICAgICAgICAgIFJpbmctPkRwY3MpOwogfQogCiBzdGF0aWMgREVDTFNQRUNfTk9J
TkxJTkUgQk9PTEVBTgpAQCAtMjE4MiwxMzAgKzIxMzgsMTEgQEAgZG9uZToKICN1bmRlZiAgWEVO
VklGX1JFQ0VJVkVSX0JBVENICiB9CiAKLXN0YXRpYyBGT1JDRUlOTElORSBWT0lECi1fX1JlY2Vp
dmVyUmluZ1VubWFzaygKLSAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZwotICAg
ICkKLXsKLSAgICBQWEVOVklGX1JFQ0VJVkVSICAgICAgICAgICAgUmVjZWl2ZXI7Ci0KLSAgICBp
ZiAoIVJpbmctPkNvbm5lY3RlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVjZWl2ZXIgPSBS
aW5nLT5SZWNlaXZlcjsKLQotICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLAotICAgICAgICAgICAg
ICAgICAgJlJlY2VpdmVyLT5FdnRjaG5JbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICBSaW5n
LT5DaGFubmVsLAotICAgICAgICAgICAgICAgICAgRkFMU0UpOwotfQotCi1zdGF0aWMgRk9SQ0VJ
TkxJTkUgQk9PTEVBTgotX19SZWNlaXZlclJpbmdEcGNUaW1lb3V0KAotICAgIElOICBQWEVOVklG
X1JFQ0VJVkVSX1JJTkcgICBSaW5nCi0gICAgKQotewotICAgIEtEUENfV0FUQ0hET0dfSU5GT1JN
QVRJT04gICBXYXRjaGRvZzsKLSAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgc3RhdHVz
OwotCi0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihSaW5nKTsKLQotICAgIFJ0bFplcm9NZW1v
cnkoJldhdGNoZG9nLCBzaXplb2YgKFdhdGNoZG9nKSk7Ci0KLSAgICBzdGF0dXMgPSBLZVF1ZXJ5
RHBjV2F0Y2hkb2dJbmZvcm1hdGlvbigmV2F0Y2hkb2cpOwotICAgIEFTU0VSVChOVF9TVUNDRVNT
KHN0YXR1cykpOwotCi0gICAgaWYgKFdhdGNoZG9nLkRwY1RpbWVMaW1pdCA9PSAwIHx8Ci0gICAg
ICAgIFdhdGNoZG9nLkRwY1dhdGNoZG9nTGltaXQgPT0gMCkKLSAgICAgICAgcmV0dXJuIEZBTFNF
OwotCi0gICAgaWYgKFdhdGNoZG9nLkRwY1RpbWVDb3VudCA+IChXYXRjaGRvZy5EcGNUaW1lTGlt
aXQgLyAyKSAmJgotICAgICAgICBXYXRjaGRvZy5EcGNXYXRjaGRvZ0NvdW50ID4gKFdhdGNoZG9n
LkRwY1dhdGNoZG9nTGltaXQgLyAyKSkKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgcmV0
dXJuIFRSVUU7Ci19Ci0KICNkZWZpbmUgVElNRV9VUyhfdXMpICAgICAgICAoKF91cykgKiAxMCkK
ICNkZWZpbmUgVElNRV9NUyhfbXMpICAgICAgICAoVElNRV9VUygoX21zKSAqIDEwMDApKQogI2Rl
ZmluZSBUSU1FX1MoX3MpICAgICAgICAgIChUSU1FX01TKChfcykgKiAxMDAwKSkKICNkZWZpbmUg
VElNRV9SRUxBVElWRShfdCkgICAoLShfdCkpCiAKLV9fZHJ2X2Z1bmN0aW9uQ2xhc3MoS0RFRkVS
UkVEX1JPVVRJTkUpCi1fX2Rydl9tYXhJUlFMKERJU1BBVENIX0xFVkVMKQotX19kcnZfbWluSVJR
TChESVNQQVRDSF9MRVZFTCkKLV9fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkKLV9f
ZHJ2X3NhbWVJUlFMCi1zdGF0aWMgVk9JRAotUmVjZWl2ZXJSaW5nRHBjKAotICAgIElOICBQS0RQ
QyAgICAgICAgICAgICAgIERwYywKLSAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICBDb250ZXh0
LAotICAgIElOICBQVk9JRCAgICAgICAgICAgICAgIEFyZ3VtZW50MSwKLSAgICBJTiAgUFZPSUQg
ICAgICAgICAgICAgICBBcmd1bWVudDIKLSAgICApCi17Ci0gICAgUFhFTlZJRl9SRUNFSVZFUl9S
SU5HICAgUmluZyA9IENvbnRleHQ7Ci0KLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERwYyk7
Ci0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudDEpOwotICAgIFVOUkVGRVJFTkNF
RF9QQVJBTUVURVIoQXJndW1lbnQyKTsKLQotICAgIEFTU0VSVChSaW5nICE9IE5VTEwpOwotCi0g
ICAgZm9yICg7OykgewotICAgICAgICBCT09MRUFOIFJldHJ5OwotCi0gICAgICAgIF9fUmVjZWl2
ZXJSaW5nQWNxdWlyZUxvY2soUmluZyk7Ci0gICAgICAgIFJldHJ5ID0gUmVjZWl2ZXJSaW5nUG9s
bChSaW5nKTsKLSAgICAgICAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKLQotICAg
ICAgICBpZiAoIVJldHJ5KSB7Ci0gICAgICAgICAgICBfX1JlY2VpdmVyUmluZ1VubWFzayhSaW5n
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKF9fUmVjZWl2
ZXJSaW5nRHBjVGltZW91dChSaW5nKSkgewotICAgICAgICAgICAgTEFSR0VfSU5URUdFUiAgIERl
bGF5OwotCi0gICAgICAgICAgICBEZWxheS5RdWFkUGFydCA9IFRJTUVfUkVMQVRJVkUoVElNRV9V
UygxMDApKTsKLQotICAgICAgICAgICAgS2VTZXRUaW1lcigmUmluZy0+VGltZXIsIERlbGF5LCAm
UmluZy0+VGltZXJEcGMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0KLUtTRVJWSUNFX1JPVVRJTkUgICAgUmVjZWl2ZXJSaW5nRXZ0Y2huQ2FsbGJhY2s7Ci0KLUJP
T0xFQU4KLVJlY2VpdmVyUmluZ0V2dGNobkNhbGxiYWNrKAotICAgIElOICBQS0lOVEVSUlVQVCAg
ICAgICAgICAgICBJbnRlcnJ1cHRPYmplY3QsCi0gICAgSU4gIFBWT0lEICAgICAgICAgICAgICAg
ICAgIEFyZ3VtZW50Ci0gICAgKQotewotICAgIFBYRU5WSUZfUkVDRUlWRVJfUklORyAgICAgICBS
aW5nID0gQXJndW1lbnQ7Ci0gICAgUFhFTlZJRl9SRUNFSVZFUiAgICAgICAgICAgIFJlY2VpdmVy
OwotICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsKLQotICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoSW50ZXJydXB0T2JqZWN0KTsKLQotICAgIEFTU0VSVChSaW5nICE9
IE5VTEwpOwotCi0gICAgUmluZy0+RXZlbnRzKys7Ci0KLSAgICBpZiAoS2VJbnNlcnRRdWV1ZURw
YygmUmluZy0+RHBjLCBOVUxMLCBOVUxMKSkKLSAgICAgICAgUmluZy0+RHBjcysrOwotCi0gICAg
UmVjZWl2ZXIgPSBSaW5nLT5SZWNlaXZlcjsKLSAgICBGcm9udGVuZCA9IFJlY2VpdmVyLT5Gcm9u
dGVuZDsKLQotICAgIGlmICghRnJvbnRlbmRJc1NwbGl0KEZyb250ZW5kKSkKLSAgICAgICAgVHJh
bnNtaXR0ZXJOb3RpZnkoRnJvbnRlbmRHZXRUcmFuc21pdHRlcihGcm9udGVuZCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIFJpbmctPkluZGV4KTsKLQotICAgIHJldHVybiBUUlVFOwotfQot
CiAjZGVmaW5lIFhFTlZJRl9SRUNFSVZFUl9XQVRDSERPR19QRVJJT0QgMzAKIAogc3RhdGljIE5U
U1RBVFVTCkBAIC0yMzY5LDE2ICsyMjA2LDIyIEBAIFJlY2VpdmVyUmluZ1dhdGNoZG9nKAogICAg
ICAgICAgICAgaWYgKFJpbmctPlNoYXJlZC0+cnNwX3Byb2QgIT0gcnNwX3Byb2QgJiYKICAgICAg
ICAgICAgICAgICBSaW5nLT5Gcm9udC5yc3BfY29ucyA9PSByc3BfY29ucykgewogICAgICAgICAg
ICAgICAgIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2ZXI7CisgICAgICAgICAgICAgICAgUFhF
TlZJRl9GUk9OVEVORCAgICBGcm9udGVuZDsKIAogICAgICAgICAgICAgICAgIFJlY2VpdmVyID0g
UmluZy0+UmVjZWl2ZXI7CisgICAgICAgICAgICAgICAgRnJvbnRlbmQgPSBSZWNlaXZlci0+RnJv
bnRlbmQ7CiAKICAgICAgICAgICAgICAgICBYRU5CVVNfREVCVUcoVHJpZ2dlciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJlJlY2VpdmVyLT5EZWJ1Z0ludGVyZmFjZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmluZy0+RGVidWdDYWxsYmFjayk7CiAKICAgICAgICAgICAg
ICAgICAvLyBUcnkgdG8gbW92ZSB0aGluZ3MgYWxvbmcKLSAgICAgICAgICAgICAgICBfX1JlY2Vp
dmVyUmluZ1RyaWdnZXIoUmluZywgVFJVRSk7Ci0gICAgICAgICAgICAgICAgX19SZWNlaXZlclJp
bmdTZW5kKFJpbmcsIFRSVUUpOworICAgICAgICAgICAgICAgIFBvbGxlclRyaWdnZXIoRnJvbnRl
bmRHZXRQb2xsZXIoRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmlu
Zy0+SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5WSUZfUE9MTEVSX0VW
RU5UX1JFQ0VJVkUpOworICAgICAgICAgICAgICAgIFBvbGxlclNlbmQoRnJvbnRlbmRHZXRQb2xs
ZXIoRnJvbnRlbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+SW5kZXgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5WSUZfUE9MTEVSX0VWRU5UX1JFQ0VJVkUpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsKQEAgLTI0MjYs
MTAgKzIyNjksNiBAQCBfX1JlY2VpdmVyUmluZ0luaXRpYWxpemUoCiAKICAgICBJbml0aWFsaXpl
TGlzdEhlYWQoJigqUmluZyktPlBhY2tldExpc3QpOwogCi0gICAgS2VJbml0aWFsaXplRHBjKCYo
KlJpbmcpLT5EcGMsIFJlY2VpdmVyUmluZ0RwYywgKlJpbmcpOwotICAgIEtlSW5pdGlhbGl6ZVRp
bWVyKCYoKlJpbmcpLT5UaW1lcik7Ci0gICAgS2VJbml0aWFsaXplRHBjKCYoKlJpbmcpLT5UaW1l
ckRwYywgUmVjZWl2ZXJSaW5nRHBjLCAqUmluZyk7Ci0KICAgICBzdGF0dXMgPSBSdGxTdHJpbmdD
YlByaW50ZkEoTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChO
YW1lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzX3JlY2VpdmVyX3BhY2tl
dCIsCkBAIC0yNTEzLDEwICsyMzUyLDYgQEAgZmFpbDQ6CiBmYWlsMzoKICAgICBFcnJvcigiZmFp
bDNcbiIpOwogCi0gICAgUnRsWmVyb01lbW9yeSgmKCpSaW5nKS0+VGltZXJEcGMsIHNpemVvZiAo
S0RQQykpOwotICAgIFJ0bFplcm9NZW1vcnkoJigqUmluZyktPlRpbWVyLCBzaXplb2YgKEtUSU1F
UikpOwotICAgIFJ0bFplcm9NZW1vcnkoJigqUmluZyktPkRwYywgc2l6ZW9mIChLRFBDKSk7Ci0K
ICAgICBSdGxaZXJvTWVtb3J5KCYoKlJpbmcpLT5QYWNrZXRMaXN0LCBzaXplb2YgKExJU1RfRU5U
UlkpKTsKIAogICAgIEZyb250ZW5kRnJlZVBhdGgoRnJvbnRlbmQsICgqUmluZyktPlBhdGgpOwpA
QCAtMjU1MCw3ICsyMzg1LDYgQEAgX19SZWNlaXZlclJpbmdDb25uZWN0KAogICAgIFBGTl9OVU1C
RVIgICAgICAgICAgICAgICAgICBQZm47CiAgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWVbTUFYTkFNRUxFTl07CiAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEluZGV4
OwotICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICBQcm9jTnVtYmVyOwogICAgIE5UU1RB
VFVTICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CiAKICAgICBSZWNlaXZlciA9IFJpbmctPlJl
Y2VpdmVyOwpAQCAtMjYxNCwzNSArMjQ0OCw2IEBAIF9fUmVjZWl2ZXJSaW5nQ29ubmVjdCgKIAog
ICAgIEFTU0VSVCghUmluZy0+Q29ubmVjdGVkKTsKIAotICAgIFJpbmctPkNoYW5uZWwgPSBYRU5C
VVNfRVZUQ0hOKE9wZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJlY2Vp
dmVyLT5FdnRjaG5JbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOQlVTX0VWVENITl9UWVBFX1VOQk9VTkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVjZWl2ZXJSaW5nRXZ0Y2huQ2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9u
dGVuZEdldEJhY2tlbmREb21haW4oRnJvbnRlbmQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRSVUUpOwotCi0gICAgc3RhdHVzID0gU1RBVFVTX1VOU1VDQ0VTU0ZVTDsKLSAg
ICBpZiAoUmluZy0+Q2hhbm5lbCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWw2OwotCi0gICAg
c3RhdHVzID0gS2VHZXRQcm9jZXNzb3JOdW1iZXJGcm9tSW5kZXgoUmluZy0+SW5kZXgsICZQcm9j
TnVtYmVyKTsKLSAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKLQotICAgIEtlU2V0VGFy
Z2V0UHJvY2Vzc29yRHBjRXgoJlJpbmctPkRwYywgJlByb2NOdW1iZXIpOwotICAgIEtlU2V0VGFy
Z2V0UHJvY2Vzc29yRHBjRXgoJlJpbmctPlRpbWVyRHBjLCAmUHJvY051bWJlcik7Ci0KLSAgICAo
Vk9JRCkgWEVOQlVTX0VWVENITihCaW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICZSZWNl
aXZlci0+RXZ0Y2huSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmctPkNo
YW5uZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUHJvY051bWJlci5Hcm91cCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBQcm9jTnVtYmVyLk51bWJlcik7Ci0KLSAgICBYRU5CVVNfRVZU
Q0hOKFVubWFzaywKLSAgICAgICAgICAgICAgICAgICZSZWNlaXZlci0+RXZ0Y2huSW50ZXJmYWNl
LAotICAgICAgICAgICAgICAgICAgUmluZy0+Q2hhbm5lbCwKLSAgICAgICAgICAgICAgICAgIEZB
TFNFKTsKLQogICAgIFJpbmctPkNvbm5lY3RlZCA9IFRSVUU7CiAKICAgICBzdGF0dXMgPSBYRU5C
VVNfREVCVUcoUmVnaXN0ZXIsCkBAIC0yNjUyLDI1ICsyNDU3LDE1IEBAIF9fUmVjZWl2ZXJSaW5n
Q29ubmVjdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJlJpbmctPkRlYnVnQ2FsbGJhY2spOwogICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQotICAgICAgICBnb3RvIGZhaWw3OworICAgICAgICBnb3RvIGZhaWw2OwogCiAgICAg
cmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsNzoKLSAgICBFcnJvcigiZmFpbDdcbiIpOwot
Ci0gICAgUmluZy0+Q29ubmVjdGVkID0gRkFMU0U7Ci0KLSAgICBYRU5CVVNfRVZUQ0hOKENsb3Nl
LAotICAgICAgICAgICAgICAgICAgJlJlY2VpdmVyLT5FdnRjaG5JbnRlcmZhY2UsCi0gICAgICAg
ICAgICAgICAgICBSaW5nLT5DaGFubmVsKTsKLSAgICBSaW5nLT5DaGFubmVsID0gTlVMTDsKLQot
ICAgIFJpbmctPkV2ZW50cyA9IDA7Ci0KIGZhaWw2OgogICAgIEVycm9yKCJmYWlsNlxuIik7CiAK
KyAgICBSaW5nLT5Db25uZWN0ZWQgPSBGQUxTRTsKKwogZmFpbDU6CiAgICAgRXJyb3IoImZhaWw1
XG4iKTsKIApAQCAtMjcxNiw3ICsyNTExLDYgQEAgX19SZWNlaXZlclJpbmdTdG9yZVdyaXRlKAog
ewogICAgIFBYRU5WSUZfUkVDRUlWRVIgICAgICAgICAgICAgICAgUmVjZWl2ZXI7CiAgICAgUFhF
TlZJRl9GUk9OVEVORCAgICAgICAgICAgICAgICBGcm9udGVuZDsKLSAgICBVTE9ORyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBvcnQ7CiAgICAgUENIQVIgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQYXRoOwogICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOwog
CkBAIC0yNzM5LDI1ICsyNTMzLDggQEAgX19SZWNlaXZlclJpbmdTdG9yZVdyaXRlKAogICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAgUG9ydCA9
IFhFTkJVU19FVlRDSE4oR2V0UG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAmUmVjZWl2
ZXItPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5DaGFu
bmVsKTsKLQotICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShQcmludGYsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICZSZWNlaXZlci0+U3RvcmVJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIFRyYW5zYWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQYXRoLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZElzU3BsaXQoRnJvbnRlbmQpID8gImV2
ZW50LWNoYW5uZWwtcngiIDogImV2ZW50LWNoYW5uZWwiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAiJXUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0KTsKLSAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsKLQogICAgIHJldHVybiBTVEFU
VVNfU1VDQ0VTUzsKIAotZmFpbDI6Ci0gICAgRXJyb3IoImZhaWwyXG4iKTsKLQogZmFpbDE6CiAg
ICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIApAQCAtMjc5Miw4ICsyNTY5LDYg
QEAgX19SZWNlaXZlclJpbmdFbmFibGUoCiAKICAgICBSaW5nLT5FbmFibGVkID0gVFJVRTsKIAot
ICAgIChWT0lEKSBLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwpOwotCiAg
ICAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKIAogICAgIEluZm8oIiVzWyV1XTog
PD09PT1cbiIsCkBAIC0yODM0LDEyICsyNjA5LDYgQEAgX19SZWNlaXZlclJpbmdEaXNhYmxlKAog
CiAgICAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKIAotICAgIC8vCi0gICAgLy8g
Tm8gbmV3IHRpbWVycyBjYW4gYmUgc2NoZWR1bGVkIG9uY2UgRW5hYmxlZCBnb2VzIHRvIEZBTFNF
LgotICAgIC8vIENhbmNlbCBhbnkgZXhpc3Rpbmcgb25lcy4KLSAgICAvLwotICAgIChWT0lEKSBL
ZUNhbmNlbFRpbWVyKCZSaW5nLT5UaW1lcik7Ci0KICAgICBJbmZvKCIlc1sldV06IDw9PT09XG4i
LAogICAgICAgICAgRnJvbnRlbmRHZXRQYXRoKEZyb250ZW5kKSwKICAgICAgICAgIFJpbmctPklu
ZGV4KTsKQEAgLTI4NjEsMTQgKzI2MzAsNiBAQCBfX1JlY2VpdmVyUmluZ0Rpc2Nvbm5lY3QoCiAg
ICAgQVNTRVJUKFJpbmctPkNvbm5lY3RlZCk7CiAgICAgUmluZy0+Q29ubmVjdGVkID0gRkFMU0U7
CiAKLSAgICBYRU5CVVNfRVZUQ0hOKENsb3NlLAotICAgICAgICAgICAgICAgICAgJlJlY2VpdmVy
LT5FdnRjaG5JbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICBSaW5nLT5DaGFubmVsKTsKLSAg
ICBSaW5nLT5DaGFubmVsID0gTlVMTDsKLQotICAgIFJpbmctPkV2ZW50cyA9IDA7Ci0gICAgUmlu
Zy0+RHBjcyA9IDA7Ci0KICAgICBBU1NFUlQzVShSaW5nLT5SZXNwb25zZXNQcm9jZXNzZWQsID09
LCBSaW5nLT5SZXF1ZXN0c1B1c2hlZCk7CiAgICAgQVNTRVJUM1UoUmluZy0+UmVxdWVzdHNQdXNo
ZWQsID09LCBSaW5nLT5SZXF1ZXN0c1Bvc3RlZCk7CiAKQEAgLTI5MTMsOSArMjY3NCw2IEBAIF9f
UmVjZWl2ZXJSaW5nVGVhcmRvd24oCiAgICAgRnJvbnRlbmQgPSBSZWNlaXZlci0+RnJvbnRlbmQ7
CiAKICAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5IYXNoLCBzaXplb2YgKFhFTlZJRl9SRUNFSVZF
Ul9IQVNIKSk7Ci0gICAgUnRsWmVyb01lbW9yeSgmUmluZy0+VGltZXJEcGMsIHNpemVvZiAoS0RQ
QykpOwotICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPlRpbWVyLCBzaXplb2YgKEtUSU1FUikpOwot
ICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPkRwYywgc2l6ZW9mIChLRFBDKSk7CiAKICAgICBSaW5n
LT5CYWNrZmlsbFNpemUgPSAwOwogICAgIFJpbmctPk9mZmxvYWRPcHRpb25zLlZhbHVlID0gMDsK
QEAgLTMwODUsOSArMjg0Myw2IEBAIFJlY2VpdmVySW5pdGlhbGl6ZSgKICAgICBGZG9HZXRHbnR0
YWJJbnRlcmZhY2UoUGRvR2V0RmRvKEZyb250ZW5kR2V0UGRvKEZyb250ZW5kKSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICYoKlJlY2VpdmVyKS0+R250dGFiSW50ZXJmYWNlKTsKIAotICAg
IEZkb0dldEV2dGNobkludGVyZmFjZShQZG9HZXRGZG8oRnJvbnRlbmRHZXRQZG8oRnJvbnRlbmQp
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmVjZWl2ZXIpLT5FdnRjaG5JbnRlcmZh
Y2UpOwotCiAgICAgKCpSZWNlaXZlciktPkZyb250ZW5kID0gRnJvbnRlbmQ7CiAKICAgICBzdGF0
dXMgPSBYRU5CVVNfQ0FDSEUoQWNxdWlyZSwgJigqUmVjZWl2ZXIpLT5DYWNoZUludGVyZmFjZSk7
CkBAIC0zMTQwLDkgKzI4OTUsNiBAQCBmYWlsMjoKIAogICAgICgqUmVjZWl2ZXIpLT5Gcm9udGVu
ZCA9IE5VTEw7CiAKLSAgICBSdGxaZXJvTWVtb3J5KCYoKlJlY2VpdmVyKS0+RXZ0Y2huSW50ZXJm
YWNlLAotICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSkp
OwotCiAgICAgUnRsWmVyb01lbW9yeSgmKCpSZWNlaXZlciktPkdudHRhYkludGVyZmFjZSwKICAg
ICAgICAgICAgICAgICAgIHNpemVvZiAoWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UpKTsKIApAQCAt
MzE5NCwxMyArMjk0Niw5IEBAIFJlY2VpdmVyQ29ubmVjdCgKICAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKICAgICAgICAgZ290byBmYWlsMjsKIAotICAgIHN0YXR1cyA9IFhFTkJVU19FVlRD
SE4oQWNxdWlyZSwgJlJlY2VpdmVyLT5FdnRjaG5JbnRlcmZhY2UpOwotICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWwzOwotCiAgICAgc3RhdHVzID0gWEVOQlVT
X0dOVFRBQihBY3F1aXJlLCAmUmVjZWl2ZXItPkdudHRhYkludGVyZmFjZSk7CiAgICAgaWYgKCFO
VF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDQ7CisgICAgICAgIGdvdG8gZmFp
bDM7CiAKICAgICBJbmRleCA9IDA7CiAgICAgd2hpbGUgKEluZGV4IDwgKExPTkcpRnJvbnRlbmRH
ZXROdW1RdWV1ZXMoRnJvbnRlbmQpKSB7CkBAIC0zMjA4LDcgKzI5NTYsNyBAQCBSZWNlaXZlckNv
bm5lY3QoCiAKICAgICAgICAgc3RhdHVzID0gX19SZWNlaXZlclJpbmdDb25uZWN0KFJpbmcpOwog
ICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgICAgIGdvdG8gZmFpbDU7
CisgICAgICAgICAgICBnb3RvIGZhaWw0OwogCiAgICAgICAgIEluZGV4Kys7CiAgICAgfSAgICAK
QEAgLTMyMjAsMTggKzI5NjgsMTggQEAgUmVjZWl2ZXJDb25uZWN0KAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZWNlaXZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJlY2VpdmVy
LT5EZWJ1Z0NhbGxiYWNrKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAg
Z290byBmYWlsNjsKKyAgICAgICAgZ290byBmYWlsNTsKIAogICAgIFRyYWNlKCI8PT09PVxuIik7
CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsNjoKLSAgICBFcnJvcigiZmFpbDZc
biIpOworZmFpbDU6CisgICAgRXJyb3IoImZhaWw1XG4iKTsKIAogICAgIEluZGV4ID0gRnJvbnRl
bmRHZXROdW1RdWV1ZXMoRnJvbnRlbmQpOwogCi1mYWlsNToKLSAgICBFcnJvcigiZmFpbDVcbiIp
OworZmFpbDQ6CisgICAgRXJyb3IoImZhaWw0XG4iKTsKIAogICAgIHdoaWxlICgtLUluZGV4ID49
IDApIHsKICAgICAgICAgUFhFTlZJRl9SRUNFSVZFUl9SSU5HICAgUmluZyA9IFJlY2VpdmVyLT5S
aW5nW0luZGV4XTsKQEAgLTMyNDEsMTEgKzI5ODksNiBAQCBmYWlsNToKIAogICAgIFhFTkJVU19H
TlRUQUIoUmVsZWFzZSwgJlJlY2VpdmVyLT5HbnR0YWJJbnRlcmZhY2UpOwogCi1mYWlsNDoKLSAg
ICBFcnJvcigiZmFpbDRcbiIpOwotCi0gICAgWEVOQlVTX0VWVENITihSZWxlYXNlLCAmUmVjZWl2
ZXItPkV2dGNobkludGVyZmFjZSk7Ci0KIGZhaWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAK
QEAgLTM0ODUsNiArMzIyOCwzNCBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitC
T09MRUFOCitSZWNlaXZlclBvbGwoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlWRVIgICAgUmVjZWl2
ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgSW5kZXgKKyAgICApCit7CisgICAgUFhF
TlZJRl9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQ7CisgICAgVUxPTkcgICAgICAgICAgICAgICAg
ICAgTnVtUXVldWVzOworICAgIFBYRU5WSUZfUkVDRUlWRVJfUklORyAgIFJpbmc7CisgICAgQk9P
TEVBTiAgICAgICAgICAgICAgICAgUmV0cnk7CisKKyAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJ
cnFsKCksID09LCBESVNQQVRDSF9MRVZFTCk7CisKKyAgICBGcm9udGVuZCA9IFJlY2VpdmVyLT5G
cm9udGVuZDsKKworICAgIE51bVF1ZXVlcyA9IEZyb250ZW5kR2V0TnVtUXVldWVzKEZyb250ZW5k
KTsKKyAgICBpZiAoSW5kZXggPj0gTnVtUXVldWVzKQorICAgICAgICByZXR1cm4gRkFMU0U7CisK
KyAgICBSaW5nID0gUmVjZWl2ZXItPlJpbmdbSW5kZXhdOworCisgICAgX19SZWNlaXZlclJpbmdB
Y3F1aXJlTG9jayhSaW5nKTsKKyAgICBSZXRyeSA9IFJlY2VpdmVyUmluZ1BvbGwoUmluZyk7Cisg
ICAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jayhSaW5nKTsKKworICAgIHJldHVybiBSZXRyeTsK
K30KKwogVk9JRAogUmVjZWl2ZXJEaXNhYmxlKAogICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAg
IFJlY2VpdmVyCkBAIC0zNTMzLDggKzMzMDQsNiBAQCBSZWNlaXZlckRpc2Nvbm5lY3QoCiAKICAg
ICBYRU5CVVNfR05UVEFCKFJlbGVhc2UsICZSZWNlaXZlci0+R250dGFiSW50ZXJmYWNlKTsKIAot
ICAgIFhFTkJVU19FVlRDSE4oUmVsZWFzZSwgJlJlY2VpdmVyLT5FdnRjaG5JbnRlcmZhY2UpOwot
CiAgICAgWEVOQlVTX1NUT1JFKFJlbGVhc2UsICZSZWNlaXZlci0+U3RvcmVJbnRlcmZhY2UpOwog
CiAgICAgWEVOQlVTX0RFQlVHKFJlbGVhc2UsICZSZWNlaXZlci0+RGVidWdJbnRlcmZhY2UpOwpA
QCAtMzU1Miw5ICszMzIxLDYgQEAgUmVjZWl2ZXJUZWFyZG93bigKIAogICAgIEZyb250ZW5kID0g
UmVjZWl2ZXItPkZyb250ZW5kOwogCi0gICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9
PSwgUEFTU0lWRV9MRVZFTCk7Ci0gICAgS2VGbHVzaFF1ZXVlZERwY3MoKTsKLQogICAgIEFTU0VS
VDNVKFJlY2VpdmVyLT5SZXR1cm5lZCwgPT0sIFJlY2VpdmVyLT5Mb2FuZWQpOwogICAgIFJlY2Vp
dmVyLT5Mb2FuZWQgPSAwOwogICAgIFJlY2VpdmVyLT5SZXR1cm5lZCA9IDA7CkBAIC0zNTc0LDkg
KzMzNDAsNiBAQCBSZWNlaXZlclRlYXJkb3duKAogCiAgICAgUmVjZWl2ZXItPkZyb250ZW5kID0g
TlVMTDsKIAotICAgIFJ0bFplcm9NZW1vcnkoJlJlY2VpdmVyLT5FdnRjaG5JbnRlcmZhY2UsCi0g
ICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJVU19FVlRDSE5fSU5URVJGQUNFKSk7Ci0KICAg
ICBSdGxaZXJvTWVtb3J5KCZSZWNlaXZlci0+R250dGFiSW50ZXJmYWNlLAogICAgICAgICAgICAg
ICAgICAgc2l6ZW9mIChYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSkpOwogCkBAIC0zNzUzLDMyICsz
NTE2LDYgQEAgUmVjZWl2ZXJXYWl0Rm9yUGFja2V0cygKICAgICBUcmFjZSgiJXM6IDw9PT09XG4i
LCBGcm9udGVuZEdldFBhdGgoRnJvbnRlbmQpKTsKIH0KIAotVk9JRAotUmVjZWl2ZXJUcmlnZ2Vy
KAotICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAgIFJlY2VpdmVyLAotICAgIElOICBVTE9ORyAg
ICAgICAgICAgICAgIEluZGV4Ci0gICAgKQotewotICAgIFBYRU5WSUZfUkVDRUlWRVJfUklORyAg
IFJpbmc7Ci0KLSAgICBSaW5nID0gUmVjZWl2ZXItPlJpbmdbSW5kZXhdOwotCi0gICAgX19SZWNl
aXZlclJpbmdUcmlnZ2VyKFJpbmcsIEZBTFNFKTsKLX0KLQotVk9JRAotUmVjZWl2ZXJTZW5kKAot
ICAgIElOICBQWEVOVklGX1JFQ0VJVkVSICAgIFJlY2VpdmVyLAotICAgIElOICBVTE9ORyAgICAg
ICAgICAgICAgIEluZGV4Ci0gICAgKQotewotICAgIFBYRU5WSUZfUkVDRUlWRVJfUklORyAgIFJp
bmc7Ci0KLSAgICBSaW5nID0gUmVjZWl2ZXItPlJpbmdbSW5kZXhdOwotCi0gICAgX19SZWNlaXZl
clJpbmdTZW5kKFJpbmcsIEZBTFNFKTsKLX0KLQogTlRTVEFUVVMKIFJlY2VpdmVyU2V0SGFzaEFs
Z29yaXRobSgKICAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUiAgICAgICAgICAgICAgICBSZWNlaXZl
ciwKZGlmZiAtLWdpdCBhL3NyYy94ZW52aWYvcmVjZWl2ZXIuaCBiL3NyYy94ZW52aWYvcmVjZWl2
ZXIuaAppbmRleCA3ODQ2ZjBiLi5lMWI3YTg4IDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3JlY2Vp
dmVyLmgKKysrIGIvc3JjL3hlbnZpZi9yZWNlaXZlci5oCkBAIC02Miw2ICs2MiwxMiBAQCBSZWNl
aXZlckVuYWJsZSgKICAgICBJTiAgUFhFTlZJRl9SRUNFSVZFUiAgICBSZWNlaXZlcgogICAgICk7
CiAKK2V4dGVybiBCT09MRUFOCitSZWNlaXZlclBvbGwoCisgICAgSU4gIFBYRU5WSUZfUkVDRUlW
RVIgICAgUmVjZWl2ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgSW5kZXgKKyAgICAp
OworCiBleHRlcm4gVk9JRAogUmVjZWl2ZXJEaXNhYmxlKAogICAgIElOICBQWEVOVklGX1JFQ0VJ
VkVSICAgIFJlY2VpdmVyCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMgYi9z
cmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggM2FiM2NiZC4uZWVkMGEwZiAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBiL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIu
YwpAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgPGNhY2hlX2ludGVyZmFjZS5oPgogI2luY2x1
ZGUgPGdudHRhYl9pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxyYW5nZV9zZXRfaW50ZXJmYWNlLmg+
Ci0jaW5jbHVkZSA8ZXZ0Y2huX2ludGVyZmFjZS5oPgogCiAjaW5jbHVkZSAicGRvLmgiCiAjaW5j
bHVkZSAiZnJvbnRlbmQuaCIKQEAgLTE3OSwxMiArMTc4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hF
TlZJRl9UUkFOU01JVFRFUl9SSU5HIHsKICAgICBuZXRpZl90eF9mcm9udF9yaW5nX3QgICAgICAg
ICAgIEZyb250OwogICAgIG5ldGlmX3R4X3NyaW5nX3QgICAgICAgICAgICAgICAgKlNoYXJlZDsK
ICAgICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAgICAgICAgICAgIEVudHJ5OwotICAgIFBYRU5CVVNf
RVZUQ0hOX0NIQU5ORUwgICAgICAgICAgQ2hhbm5lbDsKLSAgICBLRFBDICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIERwYzsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIERw
Y3M7Ci0gICAgS1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lcjsKLSAgICBLRFBD
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVyRHBjOwotICAgIFVMT05HICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRXZlbnRzOwogICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg
ICAgICAgQ29ubmVjdGVkOwogICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgRW5h
YmxlZDsKICAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3BwZWQ7CkBAIC0y
MTUsNyArMjA4LDYgQEAgc3RydWN0IF9YRU5WSUZfVFJBTlNNSVRURVIgewogICAgIFhFTkJVU19D
QUNIRV9JTlRFUkZBQ0UgICAgICBDYWNoZUludGVyZmFjZTsKICAgICBYRU5CVVNfR05UVEFCX0lO
VEVSRkFDRSAgICAgR250dGFiSW50ZXJmYWNlOwogICAgIFhFTkJVU19SQU5HRV9TRVRfSU5URVJG
QUNFICBSYW5nZVNldEludGVyZmFjZTsKLSAgICBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSAgICAg
RXZ0Y2huSW50ZXJmYWNlOwogICAgIFBYRU5WSUZfVFJBTlNNSVRURVJfUklORyAgICAqUmluZzsK
ICAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgTXVsdGljYXN0Q29udHJvbDsKICAgICBV
TE9ORyAgICAgICAgICAgICAgICAgICAgICAgRGlzYWJsZUlwVmVyc2lvbjRHc287CkBAIC03NzAs
MTUgKzc2Miw2IEBAIFRyYW5zbWl0dGVyUmluZ0RlYnVnQ2FsbGJhY2soCiAgICAgICAgICAgICAg
ICAgIFJpbmctPlBhY2tldHNVbnByZXBhcmVkLAogICAgICAgICAgICAgICAgICBSaW5nLT5QYWNr
ZXRzU2VudCwKICAgICAgICAgICAgICAgICAgUmluZy0+UGFja2V0c0NvbXBsZXRlZCk7Ci0KLSAg
ICBpZiAoRnJvbnRlbmRJc1NwbGl0KEZyb250ZW5kKSkgewotICAgICAgICAvLyBEdW1wIGV2ZW50
IGNoYW5uZWwKLSAgICAgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwKLSAgICAgICAgICAgICAgICAg
ICAgICZUcmFuc21pdHRlci0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICAgICAi
RXZlbnRzID0gJWx1IERwY3MgPSAlbHVcbiIsCi0gICAgICAgICAgICAgICAgICAgICBSaW5nLT5F
dmVudHMsCi0gICAgICAgICAgICAgICAgICAgICBSaW5nLT5EcGNzKTsKLSAgICB9CiB9CiAKIHN0
YXRpYyBCT09MRUFOCkBAIC0yNzk2LDY0ICsyNzc5LDE3IEBAIGRvbmU6CiB9CiAKIHN0YXRpYyBG
T1JDRUlOTElORSBWT0lECi1fX1RyYW5zbWl0dGVyUmluZ1RyaWdnZXIoCi0gICAgSU4gIFBYRU5W
SUZfVFJBTlNNSVRURVJfUklORyAgICBSaW5nCi0gICAgKQotewotICAgIFBYRU5WSUZfVFJBTlNN
SVRURVIgICAgICAgICAgICAgVHJhbnNtaXR0ZXI7Ci0gICAgUFhFTlZJRl9GUk9OVEVORCAgICAg
ICAgICAgICAgICBGcm9udGVuZDsKLQotICAgIFRyYW5zbWl0dGVyID0gUmluZy0+VHJhbnNtaXR0
ZXI7Ci0gICAgRnJvbnRlbmQgPSBUcmFuc21pdHRlci0+RnJvbnRlbmQ7Ci0KLSAgICBpZiAoIVJp
bmctPkNvbm5lY3RlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKEZyb250ZW5kSXNTcGxp
dChGcm9udGVuZCkpIHsKLSAgICAgICAgQVNTRVJUKFJpbmctPkNoYW5uZWwgIT0gTlVMTCk7Ci0K
LSAgICAgICAgKFZPSUQpIFhFTkJVU19FVlRDSE4oVHJpZ2dlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJlRyYW5zbWl0dGVyLT5FdnRjaG5JbnRlcmZhY2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJpbmctPkNoYW5uZWwpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFJl
Y2VpdmVyVHJpZ2dlcihGcm9udGVuZEdldFJlY2VpdmVyKEZyb250ZW5kKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFJpbmctPkluZGV4KTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBGT1JDRUlOTElO
RSBWT0lECi1fX1RyYW5zbWl0dGVyUmluZ1NlbmQoCitfX1RyYW5zbWl0dGVyUmluZ1B1c2hSZXF1
ZXN0cygKICAgICBJTiAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcKICAgICApCiB7
CiAgICAgUFhFTlZJRl9UUkFOU01JVFRFUiAgICAgICAgICAgICBUcmFuc21pdHRlcjsKICAgICBQ
WEVOVklGX0ZST05URU5EICAgICAgICAgICAgICAgIEZyb250ZW5kOworICAgIEJPT0xFQU4gICAg
ICAgICAgICAgICAgICAgICAgICAgTm90aWZ5OwogCiAgICAgVHJhbnNtaXR0ZXIgPSBSaW5nLT5U
cmFuc21pdHRlcjsKICAgICBGcm9udGVuZCA9IFRyYW5zbWl0dGVyLT5Gcm9udGVuZDsKIAotICAg
IGlmICghUmluZy0+Q29ubmVjdGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoRnJvbnRl
bmRJc1NwbGl0KEZyb250ZW5kKSkgewotICAgICAgICBBU1NFUlQoUmluZy0+Q2hhbm5lbCAhPSBO
VUxMKTsKLQotICAgICAgICAoVk9JRCkgWEVOQlVTX0VWVENITihTZW5kLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmluZy0+Q2hhbm5lbCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgUmVjZWl2ZXJTZW5kKEZyb250ZW5kR2V0UmVjZWl2ZXIoRnJvbnRlbmQpLAotICAgICAgICAg
ICAgICAgICAgICAgUmluZy0+SW5kZXgpOwotICAgIH0KLX0KLQotc3RhdGljIEZPUkNFSU5MSU5F
IFZPSUQKLV9fVHJhbnNtaXR0ZXJSaW5nUHVzaFJlcXVlc3RzKAotICAgIElOICBQWEVOVklGX1RS
QU5TTUlUVEVSX1JJTkcgICAgUmluZwotICAgICkKLXsKLSAgICBCT09MRUFOICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vdGlmeTsKLQogICAgIGlmIChSaW5nLT5SZXF1ZXN0c1Bvc3RlZCA9PSBS
aW5nLT5SZXF1ZXN0c1B1c2hlZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yODY2LDcgKzI4MDIs
OSBAQCBfX1RyYW5zbWl0dGVyUmluZ1B1c2hSZXF1ZXN0cygKICNwcmFnbWEgd2FybmluZyAocG9w
KQogCiAgICAgaWYgKE5vdGlmeSkKLSAgICAgICAgX19UcmFuc21pdHRlclJpbmdTZW5kKFJpbmcp
OworICAgICAgICBQb2xsZXJTZW5kKEZyb250ZW5kR2V0UG9sbGVyKEZyb250ZW5kKSwKKyAgICAg
ICAgICAgICAgICAgICBSaW5nLT5JbmRleCwKKyAgICAgICAgICAgICAgICAgICBYRU5WSUZfUE9M
TEVSX0VWRU5UX1RSQU5TTUlUKTsKIAogICAgIFJpbmctPlJlcXVlc3RzUHVzaGVkID0gUmluZy0+
UmVxdWVzdHNQb3N0ZWQ7CiB9CkBAIC0zMjIwLDEzMCArMzE1OCwxMSBAQCBUcmFuc21pdHRlclJp
bmdSZWxlYXNlTG9jaygKICAgICBfX1RyYW5zbWl0dGVyUmluZ1JlbGVhc2VMb2NrKFJpbmcpOwog
fQogCi1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAotX19UcmFuc21pdHRlclJpbmdVbm1hc2soCi0g
ICAgSU4gIFBYRU5WSUZfVFJBTlNNSVRURVJfUklORyAgICBSaW5nCi0gICAgKQotewotICAgIFBY
RU5WSUZfVFJBTlNNSVRURVIgICAgICAgICAgICAgVHJhbnNtaXR0ZXI7Ci0gICAgUFhFTlZJRl9G
Uk9OVEVORCAgICAgICAgICAgICAgICBGcm9udGVuZDsKLQotICAgIFRyYW5zbWl0dGVyID0gUmlu
Zy0+VHJhbnNtaXR0ZXI7Ci0gICAgRnJvbnRlbmQgPSBUcmFuc21pdHRlci0+RnJvbnRlbmQ7Ci0K
LSAgICBpZiAoIVJpbmctPkNvbm5lY3RlZCB8fCAhRnJvbnRlbmRJc1NwbGl0KEZyb250ZW5kKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgWEVOQlVTX0VWVENITihVbm1hc2ssCi0gICAgICAgICAg
ICAgICAgICAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAg
IFJpbmctPkNoYW5uZWwsCi0gICAgICAgICAgICAgICAgICBGQUxTRSk7Ci19Ci0KLXN0YXRpYyBG
T1JDRUlOTElORSBCT09MRUFOCi1fX1RyYW5zbWl0dGVyUmluZ0RwY1RpbWVvdXQoCi0gICAgSU4g
IFBYRU5WSUZfVFJBTlNNSVRURVJfUklORyAgICBSaW5nCi0gICAgKQotewotICAgIEtEUENfV0FU
Q0hET0dfSU5GT1JNQVRJT04gICAgICAgV2F0Y2hkb2c7Ci0gICAgTlRTVEFUVVMgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0dXM7Ci0KLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKFJpbmcp
OwotCi0gICAgUnRsWmVyb01lbW9yeSgmV2F0Y2hkb2csIHNpemVvZiAoV2F0Y2hkb2cpKTsKLQot
ICAgIHN0YXR1cyA9IEtlUXVlcnlEcGNXYXRjaGRvZ0luZm9ybWF0aW9uKCZXYXRjaGRvZyk7Ci0g
ICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3RhdHVzKSk7Ci0KLSAgICBpZiAoV2F0Y2hkb2cuRHBjVGlt
ZUxpbWl0ID09IDAgfHwKLSAgICAgICAgV2F0Y2hkb2cuRHBjV2F0Y2hkb2dMaW1pdCA9PSAwKQot
ICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAgICBpZiAoV2F0Y2hkb2cuRHBjVGltZUNvdW50ID4g
KFdhdGNoZG9nLkRwY1RpbWVMaW1pdCAvIDIpICYmCi0gICAgICAgIFdhdGNoZG9nLkRwY1dhdGNo
ZG9nQ291bnQgPiAoV2F0Y2hkb2cuRHBjV2F0Y2hkb2dMaW1pdCAvIDIpKQotICAgICAgICByZXR1
cm4gRkFMU0U7Ci0KLSAgICByZXR1cm4gVFJVRTsKLX0KLQogI2RlZmluZSBUSU1FX1VTKF91cykg
ICAgICAgICgoX3VzKSAqIDEwKQogI2RlZmluZSBUSU1FX01TKF9tcykgICAgICAgIChUSU1FX1VT
KChfbXMpICogMTAwMCkpCiAjZGVmaW5lIFRJTUVfUyhfcykgICAgICAgICAgKFRJTUVfTVMoKF9z
KSAqIDEwMDApKQogI2RlZmluZSBUSU1FX1JFTEFUSVZFKF90KSAgICgtKF90KSkKIAotX19kcnZf
ZnVuY3Rpb25DbGFzcyhLREVGRVJSRURfUk9VVElORSkKLV9fZHJ2X21heElSUUwoRElTUEFUQ0hf
TEVWRUwpCi1fX2Rydl9taW5JUlFMKERJU1BBVENIX0xFVkVMKQotX19kcnZfcmVxdWlyZXNJUlFM
KERJU1BBVENIX0xFVkVMKQotX19kcnZfc2FtZUlSUUwKLXN0YXRpYyBWT0lECi1UcmFuc21pdHRl
clJpbmdEcGMoCi0gICAgSU4gIFBLRFBDICAgICAgICAgICAgICAgICAgIERwYywKLSAgICBJTiAg
UFZPSUQgICAgICAgICAgICAgICAgICAgQ29udGV4dCwKLSAgICBJTiAgUFZPSUQgICAgICAgICAg
ICAgICAgICAgQXJndW1lbnQxLAotICAgIElOICBQVk9JRCAgICAgICAgICAgICAgICAgICBBcmd1
bWVudDIKLSAgICApCi17Ci0gICAgUFhFTlZJRl9UUkFOU01JVFRFUl9SSU5HICAgIFJpbmcgPSBD
b250ZXh0OwotCi0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihEcGMpOwotICAgIFVOUkVGRVJF
TkNFRF9QQVJBTUVURVIoQXJndW1lbnQxKTsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKEFy
Z3VtZW50Mik7Ci0KLSAgICBBU1NFUlQoUmluZyAhPSBOVUxMKTsKLQotICAgIGZvciAoOzspIHsK
LSAgICAgICAgQk9PTEVBTiBSZXRyeTsKLQotICAgICAgICBfX1RyYW5zbWl0dGVyUmluZ0FjcXVp
cmVMb2NrKFJpbmcpOwotICAgICAgICBSZXRyeSA9IFRyYW5zbWl0dGVyUmluZ1BvbGwoUmluZyk7
Ci0gICAgICAgIF9fVHJhbnNtaXR0ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7Ci0KLSAgICAgICAg
aWYgKCFSZXRyeSkgewotICAgICAgICAgICAgX19UcmFuc21pdHRlclJpbmdVbm1hc2soUmluZyk7
Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKF9fVHJhbnNtaXR0
ZXJSaW5nRHBjVGltZW91dChSaW5nKSkgewotICAgICAgICAgICAgTEFSR0VfSU5URUdFUiAgIERl
bGF5OwotCi0gICAgICAgICAgICBEZWxheS5RdWFkUGFydCA9IFRJTUVfUkVMQVRJVkUoVElNRV9V
UygxMDApKTsKLQotICAgICAgICAgICAgS2VTZXRUaW1lcigmUmluZy0+VGltZXIsIERlbGF5LCAm
UmluZy0+VGltZXJEcGMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci19
Ci0KLUtTRVJWSUNFX1JPVVRJTkUgICAgVHJhbnNtaXR0ZXJSaW5nRXZ0Y2huQ2FsbGJhY2s7Ci0K
LUJPT0xFQU4KLVRyYW5zbWl0dGVyUmluZ0V2dGNobkNhbGxiYWNrKAotICAgIElOICBQS0lOVEVS
UlVQVCAgICAgICAgICAgICBJbnRlcnJ1cHRPYmplY3QsCi0gICAgSU4gIFBWT0lEICAgICAgICAg
ICAgICAgICAgIEFyZ3VtZW50Ci0gICAgKQotewotICAgIFBYRU5WSUZfVFJBTlNNSVRURVJfUklO
RyAgICBSaW5nID0gQXJndW1lbnQ7Ci0gICAgUFhFTlZJRl9UUkFOU01JVFRFUiAgICAgICAgIFRy
YW5zbWl0dGVyOwotICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsKLQot
ICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoSW50ZXJydXB0T2JqZWN0KTsKLQotICAgIEFTU0VS
VChSaW5nICE9IE5VTEwpOwotCi0gICAgVHJhbnNtaXR0ZXIgPSBSaW5nLT5UcmFuc21pdHRlcjsK
LSAgICBGcm9udGVuZCA9IFRyYW5zbWl0dGVyLT5Gcm9udGVuZDsKLQotICAgIEFTU0VSVChGcm9u
dGVuZElzU3BsaXQoRnJvbnRlbmQpKTsKLQotICAgIFJpbmctPkV2ZW50cysrOwotCi0gICAgaWYg
KEtlSW5zZXJ0UXVldWVEcGMoJlJpbmctPkRwYywgTlVMTCwgTlVMTCkpCi0gICAgICAgIFJpbmct
PkRwY3MrKzsKLQotICAgIHJldHVybiBUUlVFOwotfQotCiAjZGVmaW5lIFhFTlZJRl9UUkFOU01J
VFRFUl9XQVRDSERPR19QRVJJT0QgIDMwCiAKIHN0YXRpYyBOVFNUQVRVUwpAQCAtMzQwMiwxNiAr
MzIyMSwyMiBAQCBUcmFuc21pdHRlclJpbmdXYXRjaGRvZygKICAgICAgICAgICAgIGlmIChSaW5n
LT5QYWNrZXRzUXVldWVkID09IFBhY2tldHNRdWV1ZWQgJiYKICAgICAgICAgICAgICAgICBSaW5n
LT5QYWNrZXRzQ29tcGxldGVkICE9IFBhY2tldHNRdWV1ZWQpIHsKICAgICAgICAgICAgICAgICBQ
WEVOVklGX1RSQU5TTUlUVEVSIFRyYW5zbWl0dGVyOworICAgICAgICAgICAgICAgIFBYRU5WSUZf
RlJPTlRFTkQgICAgRnJvbnRlbmQ7CiAKICAgICAgICAgICAgICAgICBUcmFuc21pdHRlciA9IFJp
bmctPlRyYW5zbWl0dGVyOworICAgICAgICAgICAgICAgIEZyb250ZW5kID0gVHJhbnNtaXR0ZXIt
PkZyb250ZW5kOwogCiAgICAgICAgICAgICAgICAgWEVOQlVTX0RFQlVHKFRyaWdnZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZUcmFuc21pdHRlci0+RGVidWdJbnRlcmZhY2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmctPkRlYnVnQ2FsbGJhY2spOwogCiAgICAg
ICAgICAgICAgICAgLy8gVHJ5IHRvIG1vdmUgdGhpbmdzIGFsb25nCi0gICAgICAgICAgICAgICAg
X19UcmFuc21pdHRlclJpbmdUcmlnZ2VyKFJpbmcpOwotICAgICAgICAgICAgICAgIF9fVHJhbnNt
aXR0ZXJSaW5nU2VuZChSaW5nKTsKKyAgICAgICAgICAgICAgICBQb2xsZXJUcmlnZ2VyKEZyb250
ZW5kR2V0UG9sbGVyKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJp
bmctPkluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOVklGX1BPTExFUl9F
VkVOVF9UUkFOU01JVCk7CisgICAgICAgICAgICAgICAgUG9sbGVyU2VuZChGcm9udGVuZEdldFBv
bGxlcihGcm9udGVuZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5JbmRleCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZJRl9QT0xMRVJfRVZFTlRfVFJBTlNNSVQp
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBQYWNrZXRzUXVldWVkID0gUmluZy0+UGFj
a2V0c1F1ZXVlZDsKQEAgLTM0NTYsMTAgKzMyODEsNiBAQCBfX1RyYW5zbWl0dGVyUmluZ0luaXRp
YWxpemUoCiAgICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCYoKlJpbmcpLT5SZXF1ZXN0UXVldWUpOwog
ICAgIEluaXRpYWxpemVMaXN0SGVhZCgmKCpSaW5nKS0+UGFja2V0Q29tcGxldGUpOwogCi0gICAg
S2VJbml0aWFsaXplRHBjKCYoKlJpbmcpLT5EcGMsIFRyYW5zbWl0dGVyUmluZ0RwYywgKlJpbmcp
OwotICAgIEtlSW5pdGlhbGl6ZVRpbWVyKCYoKlJpbmcpLT5UaW1lcik7Ci0gICAgS2VJbml0aWFs
aXplRHBjKCYoKlJpbmcpLT5UaW1lckRwYywgVHJhbnNtaXR0ZXJSaW5nRHBjLCAqUmluZyk7Ci0K
ICAgICBzdGF0dXMgPSBSdGxTdHJpbmdDYlByaW50ZkEoTmFtZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mIChOYW1lKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiVzX3RyYW5zbWl0dGVyX2J1ZmZlciIsCkBAIC0zNjYxLDggKzM0ODIsNiBAQCBmYWls
NDoKIGZhaWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAKLSAgICBSdGxaZXJvTWVtb3J5KCYo
KlJpbmcpLT5EcGMsIHNpemVvZiAoS0RQQykpOwotCiAgICAgUnRsWmVyb01lbW9yeSgmKCpSaW5n
KS0+UGFja2V0Q29tcGxldGUsIHNpemVvZiAoTElTVF9FTlRSWSkpOwogICAgIFJ0bFplcm9NZW1v
cnkoJigqUmluZyktPlJlcXVlc3RRdWV1ZSwgc2l6ZW9mIChMSVNUX0VOVFJZKSk7CiAgICAgUnRs
WmVyb01lbW9yeSgmKCpSaW5nKS0+UGFja2V0UXVldWUsIHNpemVvZiAoTElTVF9FTlRSWSkpOwpA
QCAtMzY5Niw3ICszNTE1LDYgQEAgX19UcmFuc21pdHRlclJpbmdDb25uZWN0KAogICAgIFBGTl9O
VU1CRVIgICAgICAgICAgICAgICAgICAgICAgUGZuOwogICAgIENIQVIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTmFtZVtNQVhOQU1FTEVOXTsKICAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEluZGV4OwotICAgIFBST0NFU1NPUl9OVU1CRVIgICAgICAgICAgICAgICAgUHJv
Y051bWJlcjsKICAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czsKIAog
ICAgIEFTU0VSVCghUmluZy0+Q29ubmVjdGVkKTsKQEAgLTM3NjIsMzcgKzM1ODAsNiBAQCBfX1Ry
YW5zbWl0dGVyUmluZ0Nvbm5lY3QoCiAKICAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCks
ID09LCBESVNQQVRDSF9MRVZFTCk7CiAKLSAgICBpZiAoRnJvbnRlbmRJc1NwbGl0KEZyb250ZW5k
KSkgewotICAgICAgICBSaW5nLT5DaGFubmVsID0gWEVOQlVTX0VWVENITihPcGVuLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVy
ZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0VWVENI
Tl9UWVBFX1VOQk9VTkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRy
YW5zbWl0dGVyUmluZ0V2dGNobkNhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
cm9udGVuZEdldEJhY2tlbmREb21haW4oRnJvbnRlbmQpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUUlVFKTsKLQotICAgICAgICBzdGF0dXMgPSBTVEFUVVNfVU5TVUND
RVNTRlVMOwotICAgICAgICBpZiAoUmluZy0+Q2hhbm5lbCA9PSBOVUxMKQotICAgICAgICAgICAg
Z290byBmYWlsNjsKLQotICAgICAgICBzdGF0dXMgPSBLZUdldFByb2Nlc3Nvck51bWJlckZyb21J
bmRleChSaW5nLT5JbmRleCwgJlByb2NOdW1iZXIpOwotICAgICAgICBBU1NFUlQoTlRfU1VDQ0VT
UyhzdGF0dXMpKTsKLQotICAgICAgICBLZVNldFRhcmdldFByb2Nlc3NvckRwY0V4KCZSaW5nLT5E
cGMsICZQcm9jTnVtYmVyKTsKLSAgICAgICAgS2VTZXRUYXJnZXRQcm9jZXNzb3JEcGNFeCgmUmlu
Zy0+VGltZXJEcGMsICZQcm9jTnVtYmVyKTsKLQotICAgICAgICAoVk9JRCkgWEVOQlVTX0VWVENI
TihCaW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVHJhbnNtaXR0ZXItPkV2dGNo
bkludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+Q2hhbm5lbCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvY051bWJlci5Hcm91cCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUHJvY051bWJlci5OdW1iZXIpOwotCi0gICAgICAgIFhFTkJV
U19FVlRDSE4oVW5tYXNrLAotICAgICAgICAgICAgICAgICAgICAgICZUcmFuc21pdHRlci0+RXZ0
Y2huSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgIFJpbmctPkNoYW5uZWwsCi0gICAg
ICAgICAgICAgICAgICAgICAgRkFMU0UpOwotICAgIH0KLQogICAgIHN0YXR1cyA9IFhFTkJVU19E
RUJVRyhSZWdpc3RlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRyYW5zbWl0dGVyLT5E
ZWJ1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwKQEAgLTM4MDAs
MjIgKzM1ODcsMTIgQEAgX19UcmFuc21pdHRlclJpbmdDb25uZWN0KAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBSaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdD
YWxsYmFjayk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFp
bDc7CisgICAgICAgIGdvdG8gZmFpbDY7CiAKICAgICBSaW5nLT5Db25uZWN0ZWQgPSBUUlVFOwog
CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCi1mYWlsNzoKLSAgICBFcnJvcigiZmFpbDdc
biIpOwotCi0gICAgWEVOQlVTX0VWVENITihDbG9zZSwKLSAgICAgICAgICAgICAgICAgICZUcmFu
c21pdHRlci0+RXZ0Y2huSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgUmluZy0+Q2hhbm5l
bCk7Ci0gICAgUmluZy0+Q2hhbm5lbCA9IE5VTEw7Ci0KLSAgICBSaW5nLT5FdmVudHMgPSAwOwot
CiBmYWlsNjoKICAgICBFcnJvcigiZmFpbDZcbiIpOwogCkBAIC0zODY0LDcgKzM2NDEsNiBAQCBf
X1RyYW5zbWl0dGVyUmluZ1N0b3JlV3JpdGUoCiB7CiAgICAgUFhFTlZJRl9UUkFOU01JVFRFUiAg
ICAgICAgICAgICBUcmFuc21pdHRlcjsKICAgICBQWEVOVklGX0ZST05URU5EICAgICAgICAgICAg
ICAgIEZyb250ZW5kOwotICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydDsK
ICAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhdGg7CiAgICAgTlRTVEFUVVMg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CiAKQEAgLTM4ODcsMjkgKzM2NjMsOCBAQCBf
X1RyYW5zbWl0dGVyUmluZ1N0b3JlV3JpdGUoCiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
CiAgICAgICAgIGdvdG8gZmFpbDE7CiAKLSAgICBpZiAoIUZyb250ZW5kSXNTcGxpdChGcm9udGVu
ZCkpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIFBvcnQgPSBYRU5CVVNfRVZUQ0hOKEdldFBv
cnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJlRyYW5zbWl0dGVyLT5FdnRjaG5JbnRlcmZh
Y2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+Q2hhbm5lbCk7Ci0KLSAgICBzdGF0
dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmVHJh
bnNtaXR0ZXItPlN0b3JlSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFu
c2FjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV2ZW50LWNoYW5uZWwtdHgiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAiJXUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0KTsKLSAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsKLQotZG9uZToKICAgICByZXR1cm4g
U1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWwyOgotICAgIEVycm9yKCJmYWlsMlxuIik7Ci0KIGZhaWwx
OgogICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKQEAgLTM5MzYsOCArMzY5
MSw2IEBAIF9fVHJhbnNtaXR0ZXJSaW5nRW5hYmxlKAogICAgIEFTU0VSVCghUmluZy0+RW5hYmxl
ZCk7CiAgICAgUmluZy0+RW5hYmxlZCA9IFRSVUU7CiAKLSAgICBLZUluc2VydFF1ZXVlRHBjKCZS
aW5nLT5EcGMsIE5VTEwsIE5VTEwpOwotCiAgICAgX19UcmFuc21pdHRlclJpbmdSZWxlYXNlTG9j
ayhSaW5nKTsKIAogICAgIEluZm8oIiVzWyV1XTogPD09PT1cbiIsCkBAIC00MDE3LDcgKzM3NzAs
OSBAQCBfX1RyYW5zbWl0dGVyUmluZ0Rpc2FibGUoCiAgICAgICAgIEFTU0VSVChBdHRlbXB0IDwg
MTAwKTsKIAogICAgICAgICAvLyBUcnkgdG8gbW92ZSB0aGluZ3MgYWxvbmcKLSAgICAgICAgX19U
cmFuc21pdHRlclJpbmdTZW5kKFJpbmcpOworICAgICAgICBQb2xsZXJTZW5kKEZyb250ZW5kR2V0
UG9sbGVyKEZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAgICBSaW5nLT5JbmRleCwKKyAgICAg
ICAgICAgICAgICAgICBYRU5WSUZfUE9MTEVSX0VWRU5UX1RSQU5TTUlUKTsKICAgICAgICAgKFZP
SUQpIFRyYW5zbWl0dGVyUmluZ1BvbGwoUmluZyk7CiAKICAgICAgICAgaWYgKFN0YXRlICE9IFhl
bmJ1c1N0YXRlQ29ubmVjdGVkKQpAQCAtNDAzNSwxMiArMzc5MCw2IEBAIF9fVHJhbnNtaXR0ZXJS
aW5nRGlzYWJsZSgKIAogICAgIF9fVHJhbnNtaXR0ZXJSaW5nUmVsZWFzZUxvY2soUmluZyk7CiAK
LSAgICAvLwotICAgIC8vIE5vIG5ldyB0aW1lcnMgY2FuIGJlIHNjaGVkdWxlZCBvbmNlIEVuYWJs
ZWQgZ29lcyB0byBGQUxTRS4KLSAgICAvLyBDYW5jZWwgYW55IGV4aXN0aW5nIG9uZXMuCi0gICAg
Ly8KLSAgICAoVk9JRCkgS2VDYW5jZWxUaW1lcigmUmluZy0+VGltZXIpOwotCiAgICAgSW5mbygi
JXNbJXVdOiA8PT09PVxuIiwKICAgICAgICAgIEZyb250ZW5kR2V0UGF0aChGcm9udGVuZCksCiAg
ICAgICAgICBSaW5nLT5JbmRleCk7CkBAIC00MDYwLDE3ICszODA5LDYgQEAgX19UcmFuc21pdHRl
clJpbmdEaXNjb25uZWN0KAogICAgIFRyYW5zbWl0dGVyID0gUmluZy0+VHJhbnNtaXR0ZXI7CiAg
ICAgRnJvbnRlbmQgPSBUcmFuc21pdHRlci0+RnJvbnRlbmQ7CiAKLSAgICBpZiAoUmluZy0+Q2hh
bm5lbCAhPSBOVUxMKSB7Ci0gICAgICAgIFhFTkJVU19FVlRDSE4oQ2xvc2UsCi0gICAgICAgICAg
ICAgICAgICAgICAgJlRyYW5zbWl0dGVyLT5FdnRjaG5JbnRlcmZhY2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgUmluZy0+Q2hhbm5lbCk7Ci0gICAgICAgIFJpbmctPkNoYW5uZWwgPSBOVUxMOwot
Ci0gICAgICAgIFJpbmctPkV2ZW50cyA9IDA7Ci0gICAgfQotCi0gICAgUmluZy0+RHBjcyA9IDA7
Ci0KICAgICBBU1NFUlQzVShSaW5nLT5SZXNwb25zZXNQcm9jZXNzZWQsID09LCBSaW5nLT5SZXF1
ZXN0c1B1c2hlZCk7CiAgICAgQVNTRVJUM1UoUmluZy0+UmVxdWVzdHNQdXNoZWQsID09LCBSaW5n
LT5SZXF1ZXN0c1Bvc3RlZCk7CiAKQEAgLTQxMTQsMTIgKzM4NTIsNiBAQCBfX1RyYW5zbWl0dGVy
UmluZ1RlYXJkb3duKAogICAgIFRyYW5zbWl0dGVyID0gUmluZy0+VHJhbnNtaXR0ZXI7CiAgICAg
RnJvbnRlbmQgPSBUcmFuc21pdHRlci0+RnJvbnRlbmQ7CiAKLSAgICBSaW5nLT5EcGNzID0gMDsK
LQotICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPlRpbWVyRHBjLCBzaXplb2YgKEtEUEMpKTsKLSAg
ICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5UaW1lciwgc2l6ZW9mIChLVElNRVIpKTsKLSAgICBSdGxa
ZXJvTWVtb3J5KCZSaW5nLT5EcGMsIHNpemVvZiAoS0RQQykpOwotCiAgICAgQVNTRVJUM1UoUmlu
Zy0+UGFja2V0c0NvbXBsZXRlZCwgPT0sIFJpbmctPlBhY2tldHNTZW50KTsKICAgICBBU1NFUlQz
VShSaW5nLT5QYWNrZXRzU2VudCwgPT0sIFJpbmctPlBhY2tldHNQcmVwYXJlZCAtIFJpbmctPlBh
Y2tldHNVbnByZXBhcmVkKTsKICAgICBBU1NFUlQzVShSaW5nLT5QYWNrZXRzUHJlcGFyZWQsID09
LCBSaW5nLT5QYWNrZXRzQ29waWVkICsgUmluZy0+UGFja2V0c0dyYW50ZWQgKyBSaW5nLT5QYWNr
ZXRzRmFrZWQpOwpAQCAtNDU0NSw5ICs0Mjc3LDYgQEAgVHJhbnNtaXR0ZXJJbml0aWFsaXplKAog
ICAgIEZkb0dldEdudHRhYkludGVyZmFjZShQZG9HZXRGZG8oRnJvbnRlbmRHZXRQZG8oRnJvbnRl
bmQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJigqVHJhbnNtaXR0ZXIpLT5HbnR0YWJJ
bnRlcmZhY2UpOwogCi0gICAgRmRvR2V0RXZ0Y2huSW50ZXJmYWNlKFBkb0dldEZkbyhGcm9udGVu
ZEdldFBkbyhGcm9udGVuZCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmKCpUcmFuc21p
dHRlciktPkV2dGNobkludGVyZmFjZSk7Ci0KICAgICAoKlRyYW5zbWl0dGVyKS0+RnJvbnRlbmQg
PSBGcm9udGVuZDsKICAgICBLZUluaXRpYWxpemVTcGluTG9jaygmKCpUcmFuc21pdHRlciktPkxv
Y2spOwogCkBAIC00NzAwLDEzICs0NDI5LDkgQEAgVHJhbnNtaXR0ZXJDb25uZWN0KAogICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwyOwogCi0gICAgc3RhdHVz
ID0gWEVOQlVTX0VWVENITihBY3F1aXJlLCAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSk7
Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDM7Ci0KICAg
ICBzdGF0dXMgPSBYRU5CVVNfR05UVEFCKEFjcXVpcmUsICZUcmFuc21pdHRlci0+R250dGFiSW50
ZXJmYWNlKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWls
NDsKKyAgICAgICAgZ290byBmYWlsMzsKIAogICAgIGlmIChUcmFuc21pdHRlci0+RGlzYWJsZU11
bHRpY2FzdENvbnRyb2wgPT0gMCkgewogICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVh
ZCwKQEAgLTQ3MzAsNyArNDQ1NSw3IEBAIFRyYW5zbWl0dGVyQ29ubmVjdCgKIAogICAgICAgICBz
dGF0dXMgPSBfX1RyYW5zbWl0dGVyUmluZ0Nvbm5lY3QoUmluZyk7CiAgICAgICAgIGlmICghTlRf
U1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICAgICAgZ290byBmYWlsNTsKKyAgICAgICAgICAgIGdv
dG8gZmFpbDQ7CiAKICAgICAgICAgSW5kZXgrKzsKICAgICB9ICAgIApAQCAtNDc0MiwxOCArNDQ2
NywxOCBAQCBUcmFuc21pdHRlckNvbm5lY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRy
YW5zbWl0dGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmVHJhbnNtaXR0ZXItPkRlYnVn
Q2FsbGJhY2spOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZh
aWw2OworICAgICAgICBnb3RvIGZhaWw1OwogCiAgICAgVHJhY2UoIjw9PT09XG4iKTsKICAgICBy
ZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw2OgotICAgIEVycm9yKCJmYWlsNlxuIik7Citm
YWlsNToKKyAgICBFcnJvcigiZmFpbDVcbiIpOwogCiAgICAgSW5kZXggPSBGcm9udGVuZEdldE51
bVF1ZXVlcyhGcm9udGVuZCk7CiAKLWZhaWw1OgotICAgIEVycm9yKCJmYWlsNVxuIik7CitmYWls
NDoKKyAgICBFcnJvcigiZmFpbDRcbiIpOwogCiAgICAgd2hpbGUgKC0tSW5kZXggPj0gMCkgewog
ICAgICAgICBQWEVOVklGX1RSQU5TTUlUVEVSX1JJTkcgICAgUmluZzsKQEAgLTQ3NjcsMTEgKzQ0
OTIsNiBAQCBmYWlsNToKIAogICAgIFhFTkJVU19HTlRUQUIoUmVsZWFzZSwgJlRyYW5zbWl0dGVy
LT5HbnR0YWJJbnRlcmZhY2UpOwogCi1mYWlsNDoKLSAgICBFcnJvcigiZmFpbDRcbiIpOwotCi0g
ICAgWEVOQlVTX0VWVENITihSZWxlYXNlLCAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSk7
Ci0KIGZhaWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CiAKQEAgLTQ5MDgsNiArNDYyOCwzNCBA
QCBUcmFuc21pdHRlckVuYWJsZSgKICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiB9CiAKK0JP
T0xFQU4KK1RyYW5zbWl0dGVyUG9sbCgKKyAgICBJTiAgUFhFTlZJRl9UUkFOU01JVFRFUiAgICAg
VHJhbnNtaXR0ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4CisgICAg
KQoreworICAgIFBYRU5WSUZfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsKKyAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICAgICAgTnVtUXVldWVzOworICAgIFBYRU5WSUZfVFJBTlNNSVRU
RVJfUklORyAgICBSaW5nOworICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICBSZXRyeTsK
KworICAgIEFTU0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0sIERJU1BBVENIX0xFVkVMKTsK
KworICAgIEZyb250ZW5kID0gVHJhbnNtaXR0ZXItPkZyb250ZW5kOworCisgICAgTnVtUXVldWVz
ID0gRnJvbnRlbmRHZXROdW1RdWV1ZXMoRnJvbnRlbmQpOworICAgIGlmIChJbmRleCA+PSBOdW1R
dWV1ZXMpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIFJpbmcgPSBUcmFuc21pdHRlci0+
UmluZ1tJbmRleF07CisKKyAgICBfX1RyYW5zbWl0dGVyUmluZ0FjcXVpcmVMb2NrKFJpbmcpOwor
ICAgIFJldHJ5ID0gVHJhbnNtaXR0ZXJSaW5nUG9sbChSaW5nKTsKKyAgICBfX1RyYW5zbWl0dGVy
UmluZ1JlbGVhc2VMb2NrKFJpbmcpOworCisgICAgcmV0dXJuIFJldHJ5OworfQorCiBWT0lECiBU
cmFuc21pdHRlckRpc2FibGUoCiAgICAgSU4gIFBYRU5WSUZfVFJBTlNNSVRURVIgVHJhbnNtaXR0
ZXIKQEAgLTQ5NTgsOCArNDcwNiw2IEBAIFRyYW5zbWl0dGVyRGlzY29ubmVjdCgKIAogICAgIFhF
TkJVU19HTlRUQUIoUmVsZWFzZSwgJlRyYW5zbWl0dGVyLT5HbnR0YWJJbnRlcmZhY2UpOwogCi0g
ICAgWEVOQlVTX0VWVENITihSZWxlYXNlLCAmVHJhbnNtaXR0ZXItPkV2dGNobkludGVyZmFjZSk7
Ci0KICAgICBYRU5CVVNfU1RPUkUoUmVsZWFzZSwgJlRyYW5zbWl0dGVyLT5TdG9yZUludGVyZmFj
ZSk7CiAKICAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwgJlRyYW5zbWl0dGVyLT5EZWJ1Z0ludGVy
ZmFjZSk7CkBAIC00OTc4LDcgKzQ3MjQsNiBAQCBUcmFuc21pdHRlclRlYXJkb3duKAogICAgIEZy
b250ZW5kID0gVHJhbnNtaXR0ZXItPkZyb250ZW5kOwogCiAgICAgQVNTRVJUM1UoS2VHZXRDdXJy
ZW50SXJxbCgpLCA9PSwgUEFTU0lWRV9MRVZFTCk7Ci0gICAgS2VGbHVzaFF1ZXVlZERwY3MoKTsK
IAogICAgIEluZGV4ID0gRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRlbmQpOwogICAgIHdoaWxl
ICgtLUluZGV4ID49IDApIHsKQEAgLTUwMjAsOSArNDc2NSw2IEBAIFRyYW5zbWl0dGVyVGVhcmRv
d24oCiAgICAgUnRsWmVyb01lbW9yeSgmVHJhbnNtaXR0ZXItPkRlYnVnSW50ZXJmYWNlLAogICAg
ICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7CiAKLSAgICBS
dGxaZXJvTWVtb3J5KCZUcmFuc21pdHRlci0+RXZ0Y2huSW50ZXJmYWNlLAotICAgICAgICAgICAg
ICAgICAgc2l6ZW9mIChYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSkpOwotCiAgICAgVHJhbnNtaXR0
ZXItPkRpc2FibGVJcFZlcnNpb240R3NvID0gMDsKICAgICBUcmFuc21pdHRlci0+RGlzYWJsZUlw
VmVyc2lvbjZHc28gPSAwOwogICAgIFRyYW5zbWl0dGVyLT5BbHdheXNDb3B5ID0gMDsKQEAgLTUy
OTksMjUgKzUwNDEsNiBAQCBUcmFuc21pdHRlclF1ZXJ5UmluZ1NpemUoCiB9CiAKIFZPSUQKLVRy
YW5zbWl0dGVyTm90aWZ5KAotICAgIElOICBQWEVOVklGX1RSQU5TTUlUVEVSICAgICBUcmFuc21p
dHRlciwKLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgSW5kZXgKLSAgICApCi17Ci0g
ICAgUFhFTlZJRl9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kOwotICAgIFBYRU5WSUZfVFJB
TlNNSVRURVJfUklORyAgICBSaW5nOwotCi0gICAgRnJvbnRlbmQgPSBUcmFuc21pdHRlci0+RnJv
bnRlbmQ7Ci0KLSAgICBBU1NFUlQoIUZyb250ZW5kSXNTcGxpdChGcm9udGVuZCkpOwotCi0gICAg
UmluZyA9IFRyYW5zbWl0dGVyLT5SaW5nW0luZGV4XTsKLQotICAgIGlmIChLZUluc2VydFF1ZXVl
RHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwpKQotICAgICAgICBSaW5nLT5EcGNzKys7Ci19Ci0K
LVZPSUQKIFRyYW5zbWl0dGVyUXVlcnlPZmZsb2FkT3B0aW9ucygKICAgICBJTiAgUFhFTlZJRl9U
UkFOU01JVFRFUiAgICAgICAgIFRyYW5zbWl0dGVyLAogICAgIE9VVCBQWEVOVklGX1ZJRl9PRkZM
T0FEX09QVElPTlMgT3B0aW9ucwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5o
IGIvc3JjL3hlbnZpZi90cmFuc21pdHRlci5oCmluZGV4IGQ0NGY3N2UuLjI0NDYyMjAgMTAwNjQ0
Ci0tLSBhL3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuaAorKysgYi9zcmMveGVudmlmL3RyYW5zbWl0
dGVyLmgKQEAgLTY0LDYgKzY0LDEyIEBAIFRyYW5zbWl0dGVyRW5hYmxlKAogICAgIElOICBQWEVO
VklGX1RSQU5TTUlUVEVSIFRyYW5zbWl0dGVyCiAgICAgKTsKIAorZXh0ZXJuIEJPT0xFQU4KK1Ry
YW5zbWl0dGVyUG9sbCgKKyAgICBJTiAgUFhFTlZJRl9UUkFOU01JVFRFUiAgICAgVHJhbnNtaXR0
ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4CisgICAgKTsKKwogZXh0
ZXJuIFZPSUQKIFRyYW5zbWl0dGVyRGlzYWJsZSgKICAgICBJTiAgUFhFTlZJRl9UUkFOU01JVFRF
UiBUcmFuc21pdHRlcgotLSAKMi41LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:52:57 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:52:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6f29-0007Sn-1z; Mon, 23 Oct 2017 15:52:57 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6f28-0007Sh-5c
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:52:56 +0000
Received: from [193.109.254.147] by server-3.bemta-6.messagelabs.com id
 39/8D-14867-7501EE95; Mon, 23 Oct 2017 15:52:55 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrHIsWRWlGSWpSXmKPExsWSzvfng26YwLt
 Ig/N/tCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxqWnU5kKZkdU7Pv3mKWBsSO8i5GTQ0LAX+L5
 qUNMIDabgI7E0qPzwWwRgQKJ7+/nMYPYzAJqEtf3d7GC2MICThJPdnSzQ9Q4S7yZu4oVwjaSW
 HH1DlicRUBVYtqyFjCbV8BdYvbOjWA1QgKWEj837QGaz8HBKWAlsWFCJEiYUUBW4kvjaqhV4h
 K3nkCcICEgILFkz3lmCFtU4uXjf6wQtoHE1qX7WEDGMAtoSqzfpQ/Rqigxpfsh1FZBiZMzn7B
 MYBSehWTqLISOWUg6ZiHpWMDIsopRvTi1qCy1SNdQL6koMz2jJDcxM0fX0MBMLze1uDgxPTUn
 MalYLzk/dxMjMOQZgGAH487nTocYJTmYlER5f+e8jRTiS8pPqcxILM6ILyrNSS0+xCjDwaEkw
 cvE/y5SSLAoNT21Ii0zBxh9MGkJDh4lEd6dPEBp3uKCxNzizHSI1ClGe45jmy7/YeJ413QDSD
 65Nu8vE8ezma8bmIVY8vLzUqXEeZ1ApgqAtGWU5sENhSWLS4yyUsK8jEBnCvEUpBblZpagyr9
 iFOdgVBLmvcUHNIUnM68EbvcroLOYgM6StX8DclZJIkJKqoEx9mIyX/YcQ556469rG8z91i6Y
 +dx8/bItneLbF01nTfU+nhv5qHrh/Xcn3uo8PztD9MhNFj7HtVlazKfskh5sSSprqjS5p9R+l
 n2rhHlA/vyz/ZdtwmrPntxXKGPz8/daDg92bXfTetbvli+tnQRDvlZPlXFLLmIpfD/Pu7PXUJ
 xVzPSX514lluKMREMt5qLiRADUJZIdEQMAAA==
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1508773972!89802570!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8519 invoked from network); 23 Oct 2017 15:52:54 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:52:54 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="106452235"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/5] Remove RingReQueueRequests
Thread-Index: AQHTSA7CpJ509+3kzE61qvFe1vbGpKLxnbpQ
Date: Mon, 23 Oct 2017 15:52:48 +0000
Message-ID: <502df0105db24ef480c65139f67ce612@AMSPEX02CL03.citrite.net>
References: <20171018124305.1440-1-owen.smith@citrix.com>
In-Reply-To: <20171018124305.1440-1-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/5] Remove RingReQueueRequests
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAxOCBPY3RvYmVyIDIwMTcgMTM6NDMN
Cj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFU
Q0ggMS81XSBSZW1vdmUgUmluZ1JlUXVldWVSZXF1ZXN0cw0KPiANCj4gRnJvbTogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiANCj4gU2luY2UgdGhlIEZyb250ZW5kIHRyYW5z
aXRpb25zIHRoZSByaW5nIHRocm91Z2ggQ2xvc2VkIGFuZCBiYWNrIHRvDQo+IEVuYWJsZWQgb24g
YSByZXN1bWUgZnJvbSBzdXNwZW5kLCB3aGljaCBhYm9ydHMgYWxsIHF1ZXVlZCBhbmQNCj4gcHJl
cGFyZWQgcmVxdWVzdHMsIGRlLXF1ZXVlaW5nIGFuZCByZS1xdWV1aW5nIGFsbCByZXF1ZXN0cyBm
cm9tIHRoZQ0KPiBUYXJnZXQgc3VzcGVuZCBjYWxsYmFjayBpcyB1bm5lY2Nlc3NhcnkuIEFsc28g
cmVtb3ZlcyB0aGUgVGFyZ2V0DQo+IHN1c3BlbmQgY2FsbGJhY2sgYW5kIGludGVyZmFjZSB3aGlj
aCBpcyBub3cgdW51c2VkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5z
bWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvcmluZy5jICAgfCA2OCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgc3JjL3hl
bnZiZC9yaW5nLmggICB8ICA1IC0tLS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgfCA2NCArKyst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAzIGZpbGVz
IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTM0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvcmluZy5jIGIvc3JjL3hlbnZiZC9yaW5nLmMNCj4gaW5kZXggY2Ji
NDA4ZC4uNzAwODkzOCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9yaW5nLmMNCj4gKysrIGIv
c3JjL3hlbnZiZC9yaW5nLmMNCj4gQEAgLTIyMjAsNzEgKzIyMjAsMyBAQCBSaW5nUXVldWVTaHV0
ZG93bigNCj4gICAgICBpZiAoS2VJbnNlcnRRdWV1ZURwYygmUmluZy0+RHBjLCBOVUxMLCBOVUxM
KSkNCj4gIAkgICAgKytSaW5nLT5EcGNzOw0KPiAgfQ0KPiAtDQo+IC1WT0lEDQo+IC1SaW5nUmVR
dWV1ZVJlcXVlc3RzKA0KPiAtICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZw0KPiAtICAgICkN
Cj4gLXsNCj4gLSAgICBMSVNUX0VOVFJZICAgICAgTGlzdDsNCj4gLQ0KPiAtICAgIEluaXRpYWxp
emVMaXN0SGVhZCgmTGlzdCk7DQo+IC0NCj4gLSAgICAvLyBwb3AgYWxsIHN1Ym1pdHRlZCByZXF1
ZXN0cywgY2xlYW51cCBhbmQgYWRkIGFzc29jaWF0ZWQgU1JCIHRvIGEgbGlzdA0KPiAtICAgIGZv
ciAoOzspIHsNCj4gLSAgICAgICAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJFeHQ7DQo+IC0gICAg
ICAgIFBYRU5WQkRfUkVRVUVTVCAgICAgUmVxdWVzdDsNCj4gLSAgICAgICAgUExJU1RfRU5UUlkg
ICAgICAgICBMaXN0RW50cnk7DQo+IC0NCj4gLSAgICAgICAgTGlzdEVudHJ5ID0gUXVldWVQb3Ao
JlJpbmctPlN1Ym1pdHRlZFJlcXMpOw0KPiAtICAgICAgICBpZiAoTGlzdEVudHJ5ID09IE5VTEwp
DQo+IC0gICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdf
UkVDT1JEKExpc3RFbnRyeSwgWEVOVkJEX1JFUVVFU1QsDQo+IExpc3RFbnRyeSk7DQo+IC0gICAg
ICAgIFNyYkV4dCA9IFJlcXVlc3QtPlNyYkV4dDsNCj4gLQ0KPiAtICAgICAgICBSaW5nUHV0UmVx
dWVzdChSaW5nLCBSZXF1ZXN0KTsNCj4gLQ0KPiAtICAgICAgICBpZiAoSW50ZXJsb2NrZWREZWNy
ZW1lbnQoJlNyYkV4dC0+UmVxdWVzdENvdW50KSA9PSAwKSB7DQo+IC0gICAgICAgICAgICBJbnNl
cnRUYWlsTGlzdCgmTGlzdCwgJlNyYkV4dC0+TGlzdEVudHJ5KTsNCj4gLSAgICAgICAgfQ0KPiAt
ICAgIH0NCj4gLQ0KPiAtICAgIC8vIHBvcCBhbGwgcHJlcGFyZWQgcmVxdWVzdHMsIGNsZWFudXAg
YW5kIGFkZCBhc3NvY2lhdGVkIFNSQiB0byBhIGxpc3QNCj4gLSAgICBmb3IgKDs7KSB7DQo+IC0g
ICAgICAgIFBYRU5WQkRfU1JCRVhUICAgICAgU3JiRXh0Ow0KPiAtICAgICAgICBQWEVOVkJEX1JF
UVVFU1QgICAgIFJlcXVlc3Q7DQo+IC0gICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAgTGlzdEVu
dHJ5Ow0KPiAtDQo+IC0gICAgICAgIExpc3RFbnRyeSA9IFF1ZXVlUG9wKCZSaW5nLT5QcmVwYXJl
ZFJlcXMpOw0KPiAtICAgICAgICBpZiAoTGlzdEVudHJ5ID09IE5VTEwpDQo+IC0gICAgICAgICAg
ICBicmVhazsNCj4gLSAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdfUkVDT1JEKExpc3RFbnRy
eSwgWEVOVkJEX1JFUVVFU1QsDQo+IExpc3RFbnRyeSk7DQo+IC0gICAgICAgIFNyYkV4dCA9IFJl
cXVlc3QtPlNyYkV4dDsNCj4gLQ0KPiAtICAgICAgICBSaW5nUHV0UmVxdWVzdChSaW5nLCBSZXF1
ZXN0KTsNCj4gLQ0KPiAtICAgICAgICBpZiAoSW50ZXJsb2NrZWREZWNyZW1lbnQoJlNyYkV4dC0+
UmVxdWVzdENvdW50KSA9PSAwKSB7DQo+IC0gICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmTGlz
dCwgJlNyYkV4dC0+TGlzdEVudHJ5KTsNCj4gLSAgICAgICAgfQ0KPiAtICAgIH0NCj4gLQ0KPiAt
ICAgIC8vIGZvcmVhY2ggU1JCIGluIGxpc3QsIHB1dCBvbiBzdGFydCBvZiBGcmVzaFNyYnMNCj4g
LSAgICBmb3IgKDs7KSB7DQo+IC0gICAgICAgIFBYRU5WQkRfU1JCRVhUICAgICAgU3JiRXh0Ow0K
PiAtICAgICAgICBQTElTVF9FTlRSWSAgICAgICAgIExpc3RFbnRyeTsNCj4gLQ0KPiAtICAgICAg
ICBMaXN0RW50cnkgPSBSZW1vdmVUYWlsTGlzdCgmTGlzdCk7DQo+IC0gICAgICAgIGlmIChMaXN0
RW50cnkgPT0gJkxpc3QpDQo+IC0gICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgU3JiRXh0
ID0gQ09OVEFJTklOR19SRUNPUkQoTGlzdEVudHJ5LCBYRU5WQkRfU1JCRVhULCBMaXN0RW50cnkp
Ow0KPiAtDQo+IC0gICAgICAgIFF1ZXVlVW5Qb3AoJlJpbmctPkZyZXNoU3JicywgJlNyYkV4dC0+
TGlzdEVudHJ5KTsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICAvLyBub3cgdGhlIGZpcnN0IHNldCBv
ZiByZXF1ZXN0cyBwb3BwZWQgb2ZmIHN1Ym1pdHRlZCBsaXN0IGlzIHRoZSBuZXh0IFNSQg0KPiAt
ICAgIC8vIHRvIGJlIHBvcHBlZCBvZmYgdGhlIGZyZXNoIGxpc3QNCj4gLQ0KPiAtICAgIFZlcmJv
c2UoIlRhcmdldFslZF0gOiAlZCBGcmVzaCBTUkJzXG4iLA0KPiAtICAgICAgICAgICAgRnJvbnRl
bmRHZXRUYXJnZXRJZChSaW5nLT5Gcm9udGVuZCksDQo+IC0gICAgICAgICAgICBRdWV1ZUNvdW50
KCZSaW5nLT5GcmVzaFNyYnMpKTsNCj4gLX0NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcmlu
Zy5oIGIvc3JjL3hlbnZiZC9yaW5nLmgNCj4gaW5kZXggMDAzZjFlYS4uODFmNGU5OSAxMDA2NDQN
Cj4gLS0tIGEvc3JjL3hlbnZiZC9yaW5nLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9yaW5nLmgNCj4g
QEAgLTkxLDkgKzkxLDQgQEAgUmluZ1F1ZXVlU2h1dGRvd24oDQo+ICAgICAgSU4gIFBYRU5WQkRf
U1JCRVhUICBTcmJFeHQNCj4gICAgICApOw0KPiANCj4gLWV4dGVybiBWT0lEDQo+IC1SaW5nUmVR
dWV1ZVJlcXVlc3RzKA0KPiAtICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZw0KPiAtICAgICk7
DQo+IC0NCj4gICNlbmRpZiAvLyBfWEVOVkJEX1JJTkdfSA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hl
bnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gaW5kZXggZTQ2NDU5Yi4uNDQw
N2M3MCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiArKysgYi9zcmMveGVu
dmJkL3RhcmdldC5jDQo+IEBAIC02Nyw5ICs2Nyw3IEBAIHN0cnVjdCBfWEVOVkJEX1RBUkdFVCB7
DQo+ICAgICAgLy8gRnJvbnRlbmQgKFJpbmcsIGluY2x1ZGVzIFhlbkJ1cyBpbnRlcmZhY2VzKQ0K
PiAgICAgIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZDsNCj4gICAgICBYRU5C
VVNfREVCVUdfSU5URVJGQUNFICAgICAgRGVidWdJbnRlcmZhY2U7DQo+IC0gICAgWEVOQlVTX1NV
U1BFTkRfSU5URVJGQUNFICAgIFN1c3BlbmRJbnRlcmZhY2U7DQo+ICAgICAgUFhFTkJVU19ERUJV
R19DQUxMQkFDSyAgICAgIERlYnVnQ2FsbGJhY2s7DQo+IC0gICAgUFhFTkJVU19TVVNQRU5EX0NB
TExCQUNLICAgIFN1c3BlbmRDYWxsYmFjazsNCj4gDQo+ICAgICAgLy8gRWplY3QNCj4gICAgICBC
T09MRUFOICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbkVqZWN0ZWQ7DQo+IEBAIC0xMTU5LDIz
ICsxMTU3LDYgQEAgVGFyZ2V0RGVidWdDYWxsYmFjaygNCj4gICAgICAgICAgICAgICAgICAgVGFy
Z2V0LT5NaXNzaW5nID8gVGFyZ2V0LT5SZWFzb24gOiAiTm90IE1pc3NpbmciKTsNCj4gIH0NCj4g
DQo+IC1zdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAtVGFyZ2V0U3VzcGVuZENhbGxi
YWNrKA0KPiAtICAgIElOICBQVk9JRCAgICAgICBBcmd1bWVudA0KPiAtICAgICkNCj4gLXsNCj4g
LSAgICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0ID0gQXJndW1lbnQ7DQo+IC0NCj4gLSAgICBSaW5n
UmVRdWV1ZVJlcXVlc3RzKEZyb250ZW5kR2V0UmluZyhUYXJnZXQtPkZyb250ZW5kKSk7DQo+IC0N
Cj4gLSAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogJXMgKCVzKVxuIiwNCj4gLSAgICAgICAgICAg
IFRhcmdldEdldFRhcmdldElkKFRhcmdldCksDQo+IC0gICAgICAgICAgICBUYXJnZXQtPk1pc3Np
bmcgPyAiTUlTU0lORyIgOiAiTk9UX01JU1NJTkciLA0KPiAtICAgICAgICAgICAgVGFyZ2V0LT5S
ZWFzb24pOw0KPiAtICAgIFRhcmdldC0+TWlzc2luZyA9IEZBTFNFOw0KPiAtICAgIFRhcmdldC0+
UmVhc29uID0gTlVMTDsNCj4gLX0NCj4gLQ0KPiAgTlRTVEFUVVMNCj4gIFRhcmdldEQzVG9EMCgN
Cj4gICAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldA0KPiBAQCAtMTE5MSw4ICsxMTcyLDYg
QEAgVGFyZ2V0RDNUb0QwKA0KPiANCj4gICAgICBBZGFwdGVyR2V0RGVidWdJbnRlcmZhY2UoVGFy
Z2V0R2V0QWRhcHRlcihUYXJnZXQpLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
VGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSk7DQo+IC0gICAgQWRhcHRlckdldFN1c3BlbmRJbnRlcmZh
Y2UoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UpOw0KPiANCj4gICAgICBzdGF0dXMgPSBY
RU5CVVNfREVCVUcoQWNxdWlyZSwgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UpOw0KPiAgICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiBAQCAtMTIwNyw0NCArMTE4NiwxOSBAQCBUYXJnZXRE
M1RvRDAoDQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8g
ZmFpbDI7DQo+IA0KPiAtICAgIHN0YXR1cyA9IFhFTkJVU19TVVNQRU5EKEFjcXVpcmUsICZUYXJn
ZXQtPlN1c3BlbmRJbnRlcmZhY2UpOw0KPiAtICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0K
PiAtICAgICAgICBnb3RvIGZhaWwzOw0KPiAtDQo+IC0gICAgc3RhdHVzID0gWEVOQlVTX1NVU1BF
TkQoUmVnaXN0ZXIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+U3Vz
cGVuZEludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVNQRU5EX0NB
TExCQUNLX0xBVEUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0U3VzcGVu
ZENhbGxiYWNrLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5TdXNwZW5kQ2FsbGJhY2spOw0KPiAt
ICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWw0Ow0KPiAt
DQo+ICAgICAgc3RhdHVzID0gRnJvbnRlbmREM1RvRDAoVGFyZ2V0LT5Gcm9udGVuZCk7DQo+ICAg
ICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAgIGdvdG8gZmFpbDU7DQo+ICsg
ICAgICAgIGdvdG8gZmFpbDM7DQo+IA0KPiAgICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0U3RhdGUo
VGFyZ2V0LT5Gcm9udGVuZCwgWEVOVkJEX0VOQUJMRUQpOw0KPiAgICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWw2Ow0KPiArICAgICAgICBnb3RvIGZhaWw0
Ow0KPiANCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAtZmFpbDY6DQo+IC0g
ICAgRXJyb3IoImZhaWw2XG4iKTsNCj4gLSAgICBGcm9udGVuZEQwVG9EMyhUYXJnZXQtPkZyb250
ZW5kKTsNCj4gLQ0KPiAtZmFpbDU6DQo+IC0gICAgRXJyb3IoImZhaWw1XG4iKTsNCj4gLSAgICBY
RU5CVVNfU1VTUEVORChEZXJlZ2lzdGVyLA0KPiAtICAgICAgICAgICAgICAgICAgICZUYXJnZXQt
PlN1c3BlbmRJbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICAgVGFyZ2V0LT5TdXNwZW5k
Q2FsbGJhY2spOw0KPiAtICAgIFRhcmdldC0+U3VzcGVuZENhbGxiYWNrID0gTlVMTDsNCj4gLQ0K
PiAgZmFpbDQ6DQo+ICAgICAgRXJyb3IoImZhaWw0XG4iKTsNCj4gLSAgICBYRU5CVVNfU1VTUEVO
RChSZWxlYXNlLA0KPiAtICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRJbnRlcmZh
Y2UpOw0KPiArICAgIEZyb250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOw0KPiANCj4gIGZh
aWwzOg0KPiAgICAgIEVycm9yKCJmYWlsM1xuIik7DQo+IEBAIC0xMjYxLDggKzEyMTUsNiBAQCBm
YWlsMjoNCj4gIGZhaWwxOg0KPiAgICAgIEVycm9yKCJGYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7
DQo+IA0KPiAtICAgIFJ0bFplcm9NZW1vcnkoJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwNCj4g
LSAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfU1VTUEVORF9JTlRFUkZBQ0UpKTsNCj4g
ICAgICBSdGxaZXJvTWVtb3J5KCZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLA0KPiAgICAgICAgICAg
ICAgICAgICAgc2l6ZW9mKFhFTkJVU19ERUJVR19JTlRFUkZBQ0UpKTsNCj4gICAgICBUYXJnZXQt
PkRldmljZVBvd2VyU3RhdGUgPSBQb3dlckRldmljZUQzOw0KPiBAQCAtMTI4NiwxNCArMTIzOCw2
IEBAIFRhcmdldEQwVG9EMygNCj4gDQo+ICAgICAgRnJvbnRlbmREMFRvRDMoVGFyZ2V0LT5Gcm9u
dGVuZCk7DQo+IA0KPiAtICAgIFhFTkJVU19TVVNQRU5EKERlcmVnaXN0ZXIsDQo+IC0gICAgICAg
ICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAg
ICAgICBUYXJnZXQtPlN1c3BlbmRDYWxsYmFjayk7DQo+IC0gICAgVGFyZ2V0LT5TdXNwZW5kQ2Fs
bGJhY2sgPSBOVUxMOw0KPiAtDQo+IC0gICAgWEVOQlVTX1NVU1BFTkQoUmVsZWFzZSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5TdXNwZW5kSW50ZXJmYWNlKTsNCj4gLQ0KPiAgICAg
IFhFTkJVU19ERUJVRyhEZXJlZ2lzdGVyLA0KPiAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5E
ZWJ1Z0ludGVyZmFjZSwNCj4gICAgICAgICAgICAgICAgICAgVGFyZ2V0LT5EZWJ1Z0NhbGxiYWNr
KTsNCj4gQEAgLTEzMDIsOCArMTI0Niw2IEBAIFRhcmdldEQwVG9EMygNCj4gICAgICBYRU5CVVNf
REVCVUcoUmVsZWFzZSwNCj4gICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZh
Y2UpOw0KPiANCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2Us
DQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFKSk7
DQo+ICAgICAgUnRsWmVyb01lbW9yeSgmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwNCj4gICAgICAg
ICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7DQo+ICB9DQo+IC0t
DQo+IDIuOC4zDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 15:55:03 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 15:55:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6f4B-0007VP-87; Mon, 23 Oct 2017 15:55:03 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6f4A-0007VJ-F6
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 15:55:02 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 C3/FC-05363-5D01EE95; Mon, 23 Oct 2017 15:55:01 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPIsWRWlGSWpSXmKPExsWSzvfng+4VgXe
 RBl8mWVj8WZzowOhx+MMVlgDGKNbMvKT8igTWjJbFa9kKfqVWvOv6zt7AeCGli5GTQ0LAX2LZ
 pg+MIDabgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93exgtjCAn4S3w7dYYSoCZB4ffYGO4RtJ
 PF72wU2EJtFQFWifzFEL6+Au8Tp90/BeoUEMiSuHz8KVsMpYCWxeN9tsBpGAVmJL42roXaJS9
 x6AnGDhICAxJI955khbFGJl4//sULYBhJbl+5j6WLkAKrXlFi/Sx+iVVFiSvdDdoi1ghInZz5
 hmcAoPAvJ1FkIHbOQdMxC0rGAkWUVo3pxalFZapGuqV5SUWZ6RkluYmaOrqGBsV5uanFxYnpq
 TmJSsV5yfu4mRmDQ1zMwMO5gvPzV6RCjJAeTkijv75y3kUJ8SfkplRmJxRnxRaU5qcWHGGU4O
 JQkeCv530UKCRalpqdWpGXmAOMPJi3BwaMkwruTByjNW1yQmFucmQ6ROsVoz7Hs3KU/TBzHNl
 0Gkk+uzfvLxPFs5usGZiGWvPy8VClx3ikgUwVA2jJK8+CGwtLFJUZZKWFeRgYGBiGegtSi3Mw
 SVPlXjOIcjErCEFN4MvNK4Ha/AjqLCegsWfs3IGeVJCKkpBoYO1gZRX3PBbF01RQXb9224ahM
 0A7l+zdPN2fsir38d/aeRXFTXl2eVSXxanImp4oG782QR/vEPpoeM3N8sftPR29tW9DztKinL
 GkLf009eNPTK3Z58rSzf86zH/dsLDnuts6i86VulHDnYZOCyC8W1XMPh+3T36/3Y+eEDUEtgV
 fNrGPmpjUaKLEUZyQaajEXFScCADgE108SAwAA
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-2.tower-31.messagelabs.com!1508774097!99885613!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 22150 invoked from network); 23 Oct 2017 15:55:00 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-2.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 15:55:00 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="106452255"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/5] Remove unused code and general tidy up
Thread-Index: AQHTSA7MJoBERFHscEuG0rsvDaIpsKLxnk+w
Date: Mon, 23 Oct 2017 15:54:54 +0000
Message-ID: <6ff295cf60b54ec19f6353cae9b5074c@AMSPEX02CL03.citrite.net>
References: <20171018124305.1440-1-owen.smith@citrix.com>
 <20171018124305.1440-2-owen.smith@citrix.com>
In-Reply-To: <20171018124305.1440-2-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/5] Remove unused code and general tidy
	up
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAxOCBPY3RvYmVyIDIwMTcgMTM6NDMN
Cj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFU
Q0ggMi81XSBSZW1vdmUgdW51c2VkIGNvZGUgYW5kIGdlbmVyYWwgdGlkeQ0KPiB1cA0KPiANCj4g
RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiANCj4gU2lnbmVkLW9m
Zi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1
bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52
YmQvcmluZy5jICAgfCA4MiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC90YXJnZXQuYyB8IDE5ICstLS0tLS0tLS0tLS0N
Cj4gIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pDQo+
IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9yaW5nLmMgYi9zcmMveGVudmJkL3JpbmcuYw0K
PiBpbmRleCA3MDA4OTM4Li5iNTcyYjA3IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3Jpbmcu
Yw0KPiArKysgYi9zcmMveGVudmJkL3JpbmcuYw0KPiBAQCAtMTQwLDE0ICsxNDAsNiBAQCB4ZW5f
d21iKCkNCj4gICAgICBfV3JpdGVCYXJyaWVyKCk7DQo+ICB9DQo+IA0KPiAtc3RhdGljIEZPUkNF
SU5MSU5FIFBGTl9OVU1CRVINCj4gLV9fUGZuKA0KPiAtICAgIF9faW4gIFBWT0lEICAgICAgICAg
ICAgICAgICAgIFZpcnRBZGRyDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIHJldHVybg0KPiAoUEZO
X05VTUJFUikoVUxPTkdfUFRSKShNbUdldFBoeXNpY2FsQWRkcmVzcyhWaXJ0QWRkcikuUXVhZFBh
cnQNCj4gPj4gUEFHRV9TSElGVCk7DQo+IC19DQo+IC0NCj4gIHN0YXRpYyBGT1JDRUlOTElORSBW
T0lEDQo+ICBfX1JpbmdJbnNlcnQoDQo+ICAgICAgSU4gIFBYRU5WQkRfUklORyAgICAgICAgUmlu
ZywNCj4gQEAgLTc2MSwxMyArNzUzLDEyIEBAIFJpbmdVc2VJbmRpcmVjdCgNCj4gICAgICByZXR1
cm4gTWF4SW5kaXJlY3RTZWdzOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBGT1JDRUlOTElORSBVTE9O
Rw0KPiArc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gIFJpbmdRdWV1ZVJlcXVlc3RMaXN0KA0K
PiAgICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZywNCj4gICAgICBJTiAgUExJU1RfRU5UUlkg
ICAgIExpc3QNCj4gICAgICApDQo+ICB7DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICBDb3Vu
dCA9IDA7DQo+ICAgICAgZm9yICg7Oykgew0KPiAgICAgICAgICBQWEVOVkJEX1JFUVVFU1QgUmVx
dWVzdDsNCj4gICAgICAgICAgUExJU1RfRU5UUlkgICAgIExpc3RFbnRyeTsNCj4gQEAgLTc3Niwx
MiArNzY3LDEwIEBAIFJpbmdRdWV1ZVJlcXVlc3RMaXN0KA0KPiAgICAgICAgICBpZiAoTGlzdEVu
dHJ5ID09IExpc3QpDQo+ICAgICAgICAgICAgICBicmVhazsNCj4gDQo+IC0gICAgICAgICsrQ291
bnQ7DQo+ICAgICAgICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhF
TlZCRF9SRVFVRVNULA0KPiBMaXN0RW50cnkpOw0KPiAgICAgICAgICBfX1JpbmdJbmNCbGtpZk9w
Q291bnQoUmluZywgUmVxdWVzdCk7DQo+ICAgICAgICAgIFF1ZXVlQXBwZW5kKCZSaW5nLT5QcmVw
YXJlZFJlcXMsICZSZXF1ZXN0LT5MaXN0RW50cnkpOw0KPiAgICAgIH0NCj4gLSAgICByZXR1cm4g
Q291bnQ7DQo+ICB9DQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gQEAgLTgxMyw3
ICs4MDIsNiBAQCBSaW5nUHJlcGFyZVJlYWRXcml0ZSgNCj4gICAgICBVTE9ORzY0ICAgICAgICAg
ICAgICAgICBTZWN0b3JTdGFydCA9IENkYl9Mb2dpY2FsQmxvY2soU3JiKTsNCj4gICAgICBVTE9O
RyAgICAgICAgICAgICAgICAgICBTZWN0b3JzTGVmdCA9IENkYl9UcmFuc2ZlckJsb2NrKFNyYik7
DQo+ICAgICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgTGlzdDsNCj4gLSAgICBVTE9ORyAgICAg
ICAgICAgICAgICAgICBEZWJ1Z0NvdW50Ow0KPiANCj4gICAgICBTcmItPlNyYlN0YXR1cyA9IFNS
Ql9TVEFUVVNfUEVORElORzsNCj4gDQo+IEBAIC04NTIsMTMgKzg0MCw3IEBAIFJpbmdQcmVwYXJl
UmVhZFdyaXRlKA0KPiAgICAgICAgICBTZWN0b3JTdGFydCArPSBTZWN0b3JzRG9uZTsNCj4gICAg
ICB9DQo+IA0KPiAtICAgIERlYnVnQ291bnQgPSBSaW5nUXVldWVSZXF1ZXN0TGlzdChSaW5nLCAm
TGlzdCk7DQo+IC0gICAgaWYgKERlYnVnQ291bnQgIT0gKFVMT05HKVNyYkV4dC0+UmVxdWVzdENv
dW50KSB7DQo+IC0gICAgICAgIFRyYWNlKCJbJXVdICVkICE9ICV1XG4iLA0KPiAtICAgICAgICAg
ICAgICBGcm9udGVuZEdldFRhcmdldElkKFJpbmctPkZyb250ZW5kKSwNCj4gLSAgICAgICAgICAg
ICAgU3JiRXh0LT5SZXF1ZXN0Q291bnQsDQo+IC0gICAgICAgICAgICAgIERlYnVnQ291bnQpOw0K
PiAtICAgIH0NCj4gKyAgICBSaW5nUXVldWVSZXF1ZXN0TGlzdChSaW5nLCAmTGlzdCk7DQo+ICAg
ICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAgZmFpbDM6DQo+IEBAIC04ODAsNyArODYyLDYgQEAgUmlu
Z1ByZXBhcmVTeW5jQ2FjaGUoDQo+ICAgICAgUFhFTlZCRF9SRVFVRVNUICAgICAgICAgUmVxdWVz
dDsNCj4gICAgICBMSVNUX0VOVFJZICAgICAgICAgICAgICBMaXN0Ow0KPiAgICAgIFVDSEFSICAg
ICAgICAgICAgICAgICAgIE9wZXJhdGlvbjsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICBEZWJ1Z0NvdW50Ow0KPiANCj4gICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfUEVO
RElORzsNCj4gDQo+IEBAIC05MDIsMTMgKzg4Myw3IEBAIFJpbmdQcmVwYXJlU3luY0NhY2hlKA0K
PiAgICAgIFJlcXVlc3QtPk9wZXJhdGlvbiAgPSBPcGVyYXRpb247DQo+ICAgICAgUmVxdWVzdC0+
Rmlyc3RTZWN0b3IgPSBDZGJfTG9naWNhbEJsb2NrKFNyYik7DQo+IA0KPiAtICAgIERlYnVnQ291
bnQgPSBSaW5nUXVldWVSZXF1ZXN0TGlzdChSaW5nLCAmTGlzdCk7DQo+IC0gICAgaWYgKERlYnVn
Q291bnQgIT0gKFVMT05HKVNyYkV4dC0+UmVxdWVzdENvdW50KSB7DQo+IC0gICAgICAgIFRyYWNl
KCJbJXVdICVkICE9ICV1XG4iLA0KPiAtICAgICAgICAgICAgICBGcm9udGVuZEdldFRhcmdldElk
KFJpbmctPkZyb250ZW5kKSwNCj4gLSAgICAgICAgICAgICAgU3JiRXh0LT5SZXF1ZXN0Q291bnQs
DQo+IC0gICAgICAgICAgICAgIERlYnVnQ291bnQpOw0KPiAtICAgIH0NCj4gKyAgICBSaW5nUXVl
dWVSZXF1ZXN0TGlzdChSaW5nLCAmTGlzdCk7DQo+ICAgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAg
ZmFpbDE6DQo+IEBAIC05MjksNyArOTA0LDYgQEAgUmluZ1ByZXBhcmVVbm1hcCgNCj4gIAlVTE9O
RyAgICAgICAgICAgICAgICAgICBDb3VudCA9IF9ieXRlc3dhcF91c2hvcnQoKihQVVNIT1JUKVVu
bWFwLQ0KPiA+QmxvY2tEZXNjckRhdGFMZW5ndGgpIC8gc2l6ZW9mKFVOTUFQX0JMT0NLX0RFU0NS
SVBUT1IpOw0KPiAgICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiAgICAgIExJ
U1RfRU5UUlkgICAgICAgICAgICAgIExpc3Q7DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICAg
ICAgRGVidWdDb3VudDsNCj4gDQo+ICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BF
TkRJTkc7DQo+IA0KPiBAQCAtOTUzLDEzICs5MjcsNyBAQCBSaW5nUHJlcGFyZVVubWFwKA0KPiAg
ICAgICAgICBSZXF1ZXN0LT5GbGFncyAgICAgICAgICA9IDA7DQo+ICAgICAgfQ0KPiANCj4gLSAg
ICBEZWJ1Z0NvdW50ID0gUmluZ1F1ZXVlUmVxdWVzdExpc3QoUmluZywgJkxpc3QpOw0KPiAtICAg
IGlmIChEZWJ1Z0NvdW50ICE9IChVTE9ORylTcmJFeHQtPlJlcXVlc3RDb3VudCkgew0KPiAtICAg
ICAgICBUcmFjZSgiWyV1XSAlZCAhPSAldVxuIiwNCj4gLSAgICAgICAgICAgICAgRnJvbnRlbmRH
ZXRUYXJnZXRJZChSaW5nLT5Gcm9udGVuZCksDQo+IC0gICAgICAgICAgICAgIFNyYkV4dC0+UmVx
dWVzdENvdW50LA0KPiAtICAgICAgICAgICAgICBEZWJ1Z0NvdW50KTsNCj4gLSAgICB9DQo+ICsg
ICAgUmluZ1F1ZXVlUmVxdWVzdExpc3QoUmluZywgJkxpc3QpOw0KPiAgICAgIHJldHVybiBUUlVF
Ow0KPiANCj4gIGZhaWwxOg0KPiBAQCAtMTExMywyMyArMTA4MSw2IEBAIFJpbmdDb21wbGV0ZVNo
dXRkb3duKA0KPiAgICAgIH0NCj4gIH0NCj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgUENIQVIN
Cj4gLV9fQmxraWZPcGVyYXRpb25OYW1lKA0KPiAtICAgIElOICBVQ0hBUiAgIE9wZXJhdGlvbg0K
PiAtICAgICkNCj4gLXsNCj4gLSAgICBzd2l0Y2ggKE9wZXJhdGlvbikgew0KPiAtICAgIGNhc2Ug
QkxLSUZfT1BfUkVBRDogICAgICAgICAgICAgcmV0dXJuICJSRUFEIjsNCj4gLSAgICBjYXNlIEJM
S0lGX09QX1dSSVRFOiAgICAgICAgICAgIHJldHVybiAiV1JJVEUiOw0KPiAtICAgIGNhc2UgQkxL
SUZfT1BfV1JJVEVfQkFSUklFUjogICAgcmV0dXJuICJXUklURV9CQVJSSUVSIjsNCj4gLSAgICBj
YXNlIEJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRTogIHJldHVybiAiRkxVU0hfRElTS0NBQ0hFIjsN
Cj4gLSAgICBjYXNlIEJMS0lGX09QX1JFU0VSVkVEXzE6ICAgICAgIHJldHVybiAiUkVTRVJWRURf
MSI7DQo+IC0gICAgY2FzZSBCTEtJRl9PUF9ESVNDQVJEOiAgICAgICAgICByZXR1cm4gIkRJU0NB
UkQiOw0KPiAtICAgIGNhc2UgQkxLSUZfT1BfSU5ESVJFQ1Q6ICAgICAgICAgcmV0dXJuICJJTkRJ
UkVDVCI7DQo+IC0gICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIjx1
bmtub3duPiI7DQo+IC0gICAgfQ0KPiAtfQ0KPiAtDQo+ICBzdGF0aWMgQk9PTEVBTg0KPiAgUmlu
Z1N1Ym1pdFJlcXVlc3RzKA0KPiAgICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZw0KPiBAQCAt
MTE2Miw2ICsxMTEzLDIzIEBAIFJpbmdTdWJtaXRSZXF1ZXN0cygNCj4gICAgICByZXR1cm4gUmV0
cnk7DQo+ICB9DQo+IA0KPiArc3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSDQo+ICtfX0Jsa2lmT3Bl
cmF0aW9uTmFtZSgNCj4gKyAgICBJTiAgVUNIQVIgICBPcGVyYXRpb24NCj4gKyAgICApDQo+ICt7
DQo+ICsgICAgc3dpdGNoIChPcGVyYXRpb24pIHsNCj4gKyAgICBjYXNlIEJMS0lGX09QX1JFQUQ6
ICAgICAgICAgICAgIHJldHVybiAiUkVBRCI7DQo+ICsgICAgY2FzZSBCTEtJRl9PUF9XUklURTog
ICAgICAgICAgICByZXR1cm4gIldSSVRFIjsNCj4gKyAgICBjYXNlIEJMS0lGX09QX1dSSVRFX0JB
UlJJRVI6ICAgIHJldHVybiAiV1JJVEVfQkFSUklFUiI7DQo+ICsgICAgY2FzZSBCTEtJRl9PUF9G
TFVTSF9ESVNLQ0FDSEU6ICByZXR1cm4gIkZMVVNIX0RJU0tDQUNIRSI7DQo+ICsgICAgY2FzZSBC
TEtJRl9PUF9SRVNFUlZFRF8xOiAgICAgICByZXR1cm4gIlJFU0VSVkVEXzEiOw0KPiArICAgIGNh
c2UgQkxLSUZfT1BfRElTQ0FSRDogICAgICAgICAgcmV0dXJuICJESVNDQVJEIjsNCj4gKyAgICBj
YXNlIEJMS0lGX09QX0lORElSRUNUOiAgICAgICAgIHJldHVybiAiSU5ESVJFQ1QiOw0KPiArICAg
IGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI8dW5rbm93bj4iOw0KPiAr
ICAgIH0NCj4gK30NCj4gKw0KPiAgc3RhdGljIFZPSUQNCj4gIFJpbmdDb21wbGV0ZVJlc3BvbnNl
KA0KPiAgICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZywNCj4gQEAgLTE0NjMsMjMgKzE0MzEs
MjMgQEAgUmluZ0RlYnVnQ2FsbGJhY2soDQo+IA0KPiAgICAgIFhFTkJVU19ERUJVRyhQcmludGYs
DQo+ICAgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAg
ICAgICAgICAgIlRBUkdFVDogQkxLSUZfT1BzOiBSRUFEPSV1IFdSSVRFPSV1XG4iLA0KPiArICAg
ICAgICAgICAgICAgICAiQkxLSUZfT1BzOiBSRUFEPSV1IFdSSVRFPSV1XG4iLA0KPiAgICAgICAg
ICAgICAgICAgICBSaW5nLT5CbGtPcFJlYWQsDQo+ICAgICAgICAgICAgICAgICAgIFJpbmctPkJs
a09wV3JpdGUpOw0KPiAgICAgIFhFTkJVU19ERUJVRyhQcmludGYsDQo+ICAgICAgICAgICAgICAg
ICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIlRBUkdFVDog
QkxLSUZfT1BzOiBJTkRJUkVDVF9SRUFEPSV1DQo+IElORElSRUNUX1dSSVRFPSV1XG4iLA0KPiAr
ICAgICAgICAgICAgICAgICAiQkxLSUZfT1BzOiBJTkRJUkVDVF9SRUFEPSV1IElORElSRUNUX1dS
SVRFPSV1XG4iLA0KPiAgICAgICAgICAgICAgICAgICBSaW5nLT5CbGtPcEluZGlyZWN0UmVhZCwN
Cj4gICAgICAgICAgICAgICAgICAgUmluZy0+QmxrT3BJbmRpcmVjdFdyaXRlKTsNCj4gICAgICBY
RU5CVVNfREVCVUcoUHJpbnRmLA0KPiAgICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRl
cmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICJUQVJHRVQ6IEJMS0lGX09QczogQkFSUklFUj0l
dSBESVNDQVJEPSV1IEZMVVNIPSV1XG4iLA0KPiArICAgICAgICAgICAgICAgICAiQkxLSUZfT1Bz
OiBCQVJSSUVSPSV1IERJU0NBUkQ9JXUgRkxVU0g9JXVcbiIsDQo+ICAgICAgICAgICAgICAgICAg
IFJpbmctPkJsa09wQmFycmllciwNCj4gICAgICAgICAgICAgICAgICAgUmluZy0+QmxrT3BEaXNj
YXJkLA0KPiAgICAgICAgICAgICAgICAgICBSaW5nLT5CbGtPcEZsdXNoKTsNCj4gICAgICBYRU5C
VVNfREVCVUcoUHJpbnRmLA0KPiAgICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZh
Y2UsDQo+IC0gICAgICAgICAgICAgICAgICJUQVJHRVQ6IFNlZ21lbnRzIEdyYW50ZWQ9JWxsdSBC
b3VuY2VkPSVsbHVcbiIsDQo+ICsgICAgICAgICAgICAgICAgICJTZWdtZW50cyBHcmFudGVkPSVs
bHUgQm91bmNlZD0lbGx1XG4iLA0KPiAgICAgICAgICAgICAgICAgICBSaW5nLT5TZWdzR3JhbnRl
ZCwNCj4gICAgICAgICAgICAgICAgICAgUmluZy0+U2Vnc0JvdW5jZWQpOw0KPiANCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IGluZGV4
IDQ0MDdjNzAuLmU2MjQ5NzkgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4g
KysrIGIvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiBAQCAtNTMsMTEgKzUzLDggQEANCj4gICNpbmNs
dWRlICJhc3NlcnQuaCINCj4gICNpbmNsdWRlICJ1dGlsLmgiDQo+IA0KPiAtI2RlZmluZSBUQVJH
RVRfU0lHTkFUVVJFICAgICAgICAgICAnb2RwWCcNCj4gLQ0KPiAgc3RydWN0IF9YRU5WQkRfVEFS
R0VUIHsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgU2lnbmF0dXJlOw0KPiAt
ICAgIFBYRU5WQkRfQURBUFRFUiAgICAgICAgICAgICAgICAgQWRhcHRlcjsNCj4gKyAgICBQWEVO
VkJEX0FEQVBURVIgICAgICAgICAgICAgQWRhcHRlcjsNCj4gICAgICBQREVWSUNFX09CSkVDVCAg
ICAgICAgICAgICAgRGV2aWNlT2JqZWN0Ow0KPiAgICAgIERFVklDRV9QTlBfU1RBVEUgICAgICAg
ICAgICBEZXZpY2VQbnBTdGF0ZTsNCj4gICAgICBERVZJQ0VfUE5QX1NUQVRFICAgICAgICAgICAg
UHJldlBucFN0YXRlOw0KPiBAQCAtNzcsNyArNzQsNiBAQCBzdHJ1Y3QgX1hFTlZCRF9UQVJHRVQg
ew0KPiAgICAgIGNvbnN0IENIQVIqICAgICAgICAgICAgICAgICBSZWFzb247DQo+ICB9Ow0KPiAN
Cj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAgI2RlZmluZSBUQVJHRVRfUE9P
TF9UQUcgICAgICAgICAgICAnb2RQWCcNCj4gDQo+ICBfX2NoZWNrUmV0dXJuDQo+IEBAIC0xMDIs
OCArOTgsNiBAQCBfX1RhcmdldEZyZWUoDQo+ICAgICAgICAgIF9fRnJlZVBvb2xXaXRoVGFnKEJ1
ZmZlciwgVEFSR0VUX1BPT0xfVEFHKTsNCj4gIH0NCj4gDQo+IC0NCj4gLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPT09PT09PT09
PT09PT09PT09PT0NCj4gLS8vIERlYnVnDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgUENIQVINCj4g
IF9fUG5wU3RhdGVOYW1lKA0KPiAgICAgIF9faW4gREVWSUNFX1BOUF9TVEFURSAgICAgICAgU3Rh
dGUNCj4gQEAgLTIxNSw4ICsyMDksNiBAQCBUYXJnZXRTZXREZXZpY2VPYmplY3QoDQo+ICAgICAg
VGFyZ2V0LT5EZXZpY2VPYmplY3QgPSBEZXZpY2VPYmplY3Q7DQo+ICB9DQo+IA0KPiAtDQo+IC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQo+ID09PT09PT09PT09PT09PT09PT09DQo+IC0vLyBTUkJzDQo+ICBfX2NoZWNrUmV0dXJuDQo+
ICBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAgX19WYWxpZGF0ZVNlY3RvcnMoDQo+IEBA
IC03NjYsMTQgKzc1OCw2IEBAIF9fVmFsaWRhdGVTcmJGb3JUYXJnZXQoDQo+ICB7DQo+ICAgICAg
Y29uc3QgVUNIQVIgICAgICAgICAgICAgT3BlcmF0aW9uID0gQ2RiX09wZXJhdGlvbkV4KFNyYik7
DQo+IA0KPiAtICAgIGlmIChUYXJnZXQgPT0gTlVMTCkgew0KPiAtICAgICAgICBFcnJvcigiSW52
YWxpZCBUYXJnZXQoTlVMTCkgKCUwMng6JXMpXG4iLA0KPiAtICAgICAgICAgICAgICBPcGVyYXRp
b24sDQo+IC0gICAgICAgICAgICAgIENkYl9PcGVyYXRpb25OYW1lKE9wZXJhdGlvbikpOw0KPiAt
ICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfSU5WQUxJRF9UQVJHRVRfSUQ7DQo+
IC0gICAgICAgIHJldHVybiBGQUxTRTsNCj4gLSAgICB9DQo+IC0NCj4gICAgICBpZiAoU3JiLT5Q
YXRoSWQgIT0gMCkgew0KPiAgICAgICAgICBFcnJvcigiVGFyZ2V0WyVkXSA6IEludmFsaWQgUGF0
aElkKCVkKSAoJTAyeDolcylcbiIsDQo+ICAgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElk
KFRhcmdldCksDQo+IEBAIC0xMzAyLDcgKzEyODYsNiBAQCBUYXJnZXRDcmVhdGUoDQo+ICAgICAg
ICAgIGdvdG8gZmFpbDE7DQo+IA0KPiAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBDcmVhdGlu
Z1xuIiwgVGFyZ2V0SWQpOw0KPiAtICAgIFRhcmdldC0+U2lnbmF0dXJlICAgICAgID0gVEFSR0VU
X1NJR05BVFVSRTsNCj4gICAgICBUYXJnZXQtPkFkYXB0ZXIgICAgICAgICA9IEFkYXB0ZXI7DQo+
ICAgICAgVGFyZ2V0LT5EZXZpY2VPYmplY3QgICAgPSBOVUxMOyAvLyBmaWxsZWQgaW4gbGF0ZXIN
Cj4gICAgICBUYXJnZXQtPkRldmljZVBucFN0YXRlICA9IFByZXNlbnQ7DQo+IC0tDQo+IDIuOC4z
DQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 16:05:55 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 16:05:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6fEg-0000Wg-OQ; Mon, 23 Oct 2017 16:05:54 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6fEe-0000Wa-Sc
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 16:05:52 +0000
Received: from [85.158.143.35] by server-8.bemta-6.messagelabs.com id
 22/DE-13910-0631EE95; Mon, 23 Oct 2017 16:05:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRWlGSWpSXmKPExsWSzvfng2688Lt
 Ig49zlC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxpKrH1kKdvFXLN3WwtjAuIC/i5GTQ0LAX+LQ
 /2OsIDabgI7E0qPzmUBsEYECie/v5zGD2MwCahLX93eB1QgLxEu0zZ3ACFGTIHH823ZmCNtI4
 uWODjYQm0VAVeLJhEawGl4Bd4k/F98A1XBwCAlkSMxvFAEJcwpYSfxtXcECYjMKyEp8aVwNtU
 pc4tYTiBMkBAQkluw5zwxhi0q8fPyPFcI2kNi6dB8LyEhmAU2J9bv0IVoVJaZ0P2SH2CoocXL
 mE5YJjMKzkEydhdAxC0nHLCQdCxhZVjGqF6cWlaUW6ZrrJRVlpmeU5CZm5ugaGpjp5aYWFyem
 p+YkJhXrJefnbmIEhjwDEOxgnHnZ/xCjJAeTkijv75y3kUJ8SfkplRmJxRnxRaU5qcWHGGU4O
 JQkeG8KvosUEixKTU+tSMvMAUYfTFqCg0dJhDcLJM1bXJCYW5yZDpE6xWjJcWzT5T9MHE+uzf
 vLxPFs5usGZiGWvPy8VClx3nAhoAYBkIaM0jy4cbAEcYlRVkqYlxHoQCGegtSi3MwSVPlXjOI
 cjErCvHNBpvBk5pXAbX0FdBAT0EGy9m9ADipJREhJNTDyBKoE3zGaLl4peUe8JO97iNl2sf1P
 Vzw42LvEenai75mDUwoz+i/V/fn2c3u051yPJcHH1rGlrH6vtOFA4Z5UnuV3syNE2dTqes8sF
 pmmWrC95MHieysdg3ca6+hdmnR+/Vlnea0pvDr+Yh52gUzrz71e/3yW0oPeJcLuhbY/pSbG3I
 xRFnikxFKckWioxVxUnAgA8eMs1QsDAAA=
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1508774749!78368855!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 46082 invoked from network); 23 Oct 2017 16:05:51 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 16:05:51 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="106452403"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 3/5] Zero ring stats before ASSERTing ring
 struct is zeroed
Thread-Index: AQHTSA7Es4O+fmUa4kG5OV7nYKy1LaLxoVrw
Date: Mon, 23 Oct 2017 16:05:46 +0000
Message-ID: <7e15cb06694f4cc2832ed1596fad4342@AMSPEX02CL03.citrite.net>
References: <20171018124305.1440-1-owen.smith@citrix.com>
 <20171018124305.1440-3-owen.smith@citrix.com>
In-Reply-To: <20171018124305.1440-3-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 3/5] Zero ring stats before ASSERTing
	ring	struct is zeroed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAxOCBPY3RvYmVyIDIwMTcgMTM6NDMN
Cj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFU
Q0ggMy81XSBaZXJvIHJpbmcgc3RhdHMgYmVmb3JlIEFTU0VSVGluZyByaW5nDQo+IHN0cnVjdCBp
cyB6ZXJvZWQNCj4gDQo+IEZyb206IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4N
Cj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4N
Cg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4g
LS0tDQo+ICBzcmMveGVudmJkL3JpbmcuYyB8IDEwICsrKysrKysrKysNCj4gIDEgZmlsZSBjaGFu
Z2VkLCAxMCBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9yaW5n
LmMgYi9zcmMveGVudmJkL3JpbmcuYw0KPiBpbmRleCBiNTcyYjA3Li4wYjBkZjcyIDEwMDY0NA0K
PiAtLS0gYS9zcmMveGVudmJkL3JpbmcuYw0KPiArKysgYi9zcmMveGVudmJkL3JpbmcuYw0KPiBA
QCAtMTc1NCw2ICsxNzU0LDE2IEBAIFJpbmdEZXN0cm95KA0KPiAgICAgIFJ0bFplcm9NZW1vcnko
JlJpbmctPkxvY2ssIHNpemVvZihLU1BJTl9MT0NLKSk7DQo+ICAgICAgUmluZy0+RnJvbnRlbmQg
PSBOVUxMOw0KPiANCj4gKyAgICBSaW5nLT5CbGtPcFJlYWQgPSAwOw0KPiArICAgIFJpbmctPkJs
a09wV3JpdGUgPSAwOw0KPiArICAgIFJpbmctPkJsa09wSW5kaXJlY3RSZWFkID0gMDsNCj4gKyAg
ICBSaW5nLT5CbGtPcEluZGlyZWN0V3JpdGUgPSAwOw0KPiArICAgIFJpbmctPkJsa09wQmFycmll
ciA9IDA7DQo+ICsgICAgUmluZy0+QmxrT3BEaXNjYXJkID0gMDsNCj4gKyAgICBSaW5nLT5CbGtP
cEZsdXNoID0gMDsNCj4gKyAgICBSaW5nLT5TZWdzR3JhbnRlZCA9IDA7DQo+ICsgICAgUmluZy0+
U2Vnc0JvdW5jZWQgPSAwOw0KPiArDQo+ICAgICAgQVNTRVJUKElzWmVyb01lbW9yeShSaW5nLCBz
aXplb2YoWEVOVkJEX1JJTkcpKSk7DQo+ICAgICAgX19SaW5nRnJlZShSaW5nKTsNCj4gIH0NCj4g
LS0NCj4gMi44LjMNCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Oct 23 16:08:06 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 23 Oct 2017 16:08:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e6fGn-0000bb-Vm; Mon, 23 Oct 2017 16:08:05 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=4622d1db0=Paul.Durrant@citrix.com>)
 id 1e6fGm-0000bV-Ox
 for win-pv-devel@lists.xenproject.org; Mon, 23 Oct 2017 16:08:05 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
 2E/C8-08856-3E31EE95; Mon, 23 Oct 2017 16:08:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJIsWRWlGSWpSXmKPExsWSzvfng+4j4Xe
 RBot3Wln8WZzowOhx+MMVlgDGKNbMvKT8igTWjAs3trIX9Jxkqvh18DxLA+OLI0xdjJwcEgL+
 Eo2XvzCD2GwCOhJLj84Hi4sIFEh8fz8PLM4soCZxfX8XK4gtLOAqMaP/GmMXIwdQjZvE7znRE
 OVGEk+mbgIrZxFQlbjb/hSshFfAXeLqZAOQsJBAhsSRd1fApnAKWEl0zLrECGIzCshKfGlcDb
 VJXOLWk/lQlwlILNlznhnCFpV4+fgfK4RtILF16T4WkPHMApoS63fpQ7QqSkzpfsgOYvMKCEq
 cnPmEZQKj8CwkU2chdMxC0jELSccCRpZVjOrFqUVlqUW6FnpJRZnpGSW5iZk5uoYGxnq5qcXF
 iempOYlJxXrJ+bmbGIFBzwAEOxgvtDsfYpTkYFIS5f2d8zZSiC8pP6UyI7E4I76oNCe1+BCjD
 AeHkgQvIzCKhASLUtNTK9Iyc4DxB5OW4OBREuHNEgRK8xYXJOYWZ6ZDpE4xWnIc23T5DxPHk2
 vz/jJxPJv5uoFZiCUvPy9VSpz3sRBQgwBIQ0ZpHtw4WIq4xCgrJczLCHSgEE9BalFuZgmq/Ct
 GcQ5GJWHeuSBTeDLzSuC2vgI6iAnoIFn7NyAHlSQipKQaGD3ypPtkPL/u/zvtms1F7sbbNzdP
 W9El+alqdvN1w90qfH9S2XZn5/xcwLvRo3ZvKefZfsfqoGQ2jg09f9aeWfQkR/Jp2PPEeXFaB
 fN6P7zzunBMk8+8KE0x82Ydh2NfcPjquRrNi0NOsiiqPZ+xybPY9UX0y/JC8RnKhck+DzZqM3
 wSN47YqsRSnJFoqMVcVJwIAEaqTpwMAwAA
X-Env-Sender: prvs=4622d1db0=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1508774879!104021222!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 8522 invoked from network); 23 Oct 2017 16:08:01 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Oct 2017 16:08:01 -0000
X-IronPort-AV: E=Sophos;i="5.43,423,1503360000"; d="scan'208";a="106452422"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 4/5] Rationalize SCSIOP_* handlers
Thread-Index: AQHTSA7Rd08Fr9IsZEy9VPtsz8uWK6LxofIQ
Date: Mon, 23 Oct 2017 16:07:55 +0000
Message-ID: <ecf53b7edb764a20a587d0d5d08f864b@AMSPEX02CL03.citrite.net>
References: <20171018124305.1440-1-owen.smith@citrix.com>
 <20171018124305.1440-4-owen.smith@citrix.com>
In-Reply-To: <20171018124305.1440-4-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 4/5] Rationalize SCSIOP_* handlers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAxOCBPY3RvYmVyIDIwMTcgMTM6NDMN
Cj4gVG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0
aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFU
Q0ggNC81XSBSYXRpb25hbGl6ZSBTQ1NJT1BfKiBoYW5kbGVycw0KPiANCj4gRnJvbTogT3dlbiBT
bWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiANCj4gKiBVc2Ugc2FtZSBlcnJvciBoYW5k
bGluZyBmb3IgaW52YWxpZCBidWZmZXJzLCBldGMuDQo+ICogQWxsb3cgZm9yIFNDU0lPUF9NT0RF
X1NFTlNFMTANCj4gKiBDb3JyZWN0bHkgcmVwb3J0IFZESVNLX1JFQURPTkxZIGZsYWcNCj4gDQo+
IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNr
ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+
ICBzcmMveGVudmJkL2Zyb250ZW5kLmMgfCAgNDAgKysrKw0KPiAgc3JjL3hlbnZiZC9mcm9udGVu
ZC5oIHwgICA1ICsNCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgICB8IDU1NSArKysrKysrKysrKysr
KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0NCj4gIDMgZmlsZXMgY2hh
bmdlZCwgMzQ4IGluc2VydGlvbnMoKyksIDI1MiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL2Zyb250ZW5kLmMgYi9zcmMveGVudmJkL2Zyb250ZW5kLmMNCj4gaW5k
ZXggZDdmZmY4OS4uYjdlNjFjMiAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9mcm9udGVuZC5j
DQo+ICsrKyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiBAQCAtMTg4OSw1ICsxODg5LDQ1IEBA
IEZyb250ZW5kR2V0RGlza0luZm8oDQo+ICB7DQo+ICAgICAgcmV0dXJuICZGcm9udGVuZC0+RGlz
a0luZm87DQo+ICB9DQo+ICsvL0ZST05URU5EX0dFVF9QUk9QRVJUWShDb25uZWN0ZWQsIEJPT0xF
QU4pDQo+ICtCT09MRUFODQo+ICtGcm9udGVuZEdldENvbm5lY3RlZCgNCj4gKyAgICBJTiAgUFhF
TlZCRF9GUk9OVEVORCAgICBGcm9udGVuZA0KPiArICAgICkNCj4gK3sNCj4gKyAgICByZXR1cm4g
RnJvbnRlbmQtPkNhcHMuQ29ubmVjdGVkOw0KPiArfQ0KPiArLy9GUk9OVEVORF9HRVRfUFJPUEVS
VFkoUmVhZE9ubHksIEJPT0xFQU4pDQo+ICtCT09MRUFODQo+ICtGcm9udGVuZEdldFJlYWRPbmx5
KA0KPiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+ICsgICAgKQ0KPiAr
ew0KPiArICAgIHJldHVybiAhIShGcm9udGVuZC0+RGlza0luZm8uRGlza0luZm8gJiBWRElTS19S
RUFET05MWSk7DQo+ICt9DQo+ICsvL0ZST05URU5EX0dFVF9QUk9QRVJUWShEaXNjYXJkLCBCT09M
RUFOKQ0KPiArQk9PTEVBTg0KPiArRnJvbnRlbmRHZXREaXNjYXJkKA0KPiArICAgIElOICBQWEVO
VkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+ICsgICAgKQ0KPiArew0KPiArICAgIHJldHVybiBG
cm9udGVuZC0+RGlza0luZm8uRGlzY2FyZDsNCj4gK30NCj4gKy8vRlJPTlRFTkRfR0VUX1BST1BF
UlRZKEZsdXNoQ2FjaGUsIEJPT0xFQU4pDQo+ICtCT09MRUFODQo+ICtGcm9udGVuZEdldEZsdXNo
Q2FjaGUoDQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQNCj4gKyAgICAp
DQo+ICt7DQo+ICsgICAgcmV0dXJuIEZyb250ZW5kLT5EaXNrSW5mby5GbHVzaENhY2hlOw0KPiAr
fQ0KPiArLy9GUk9OVEVORF9HRVRfUFJPUEVSVFkoQmFycmllciwgQk9PTEVBTikNCj4gK0JPT0xF
QU4NCj4gK0Zyb250ZW5kR2V0QmFycmllcigNCj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAg
ICBGcm9udGVuZA0KPiArICAgICkNCj4gK3sNCj4gKyAgICByZXR1cm4gRnJvbnRlbmQtPkRpc2tJ
bmZvLkJhcnJpZXI7DQo+ICt9DQo+IA0KPiAgI3VuZGVmIEZST05URU5EX0dFVF9QUk9QRVJUWQ0K
PiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9udGVuZC5oIGIvc3JjL3hlbnZiZC9mcm9udGVu
ZC5oDQo+IGluZGV4IDQ2ZjJlMzkuLjE0ODg0NzYgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQv
ZnJvbnRlbmQuaA0KPiArKysgYi9zcmMveGVudmJkL2Zyb250ZW5kLmgNCj4gQEAgLTE2Miw2ICsx
NjIsMTEgQEAgRlJPTlRFTkRfR0VUX1BST1BFUlRZKEZyb250ZW5kUGF0aCwgUENIQVIpDQo+ICBG
Uk9OVEVORF9HRVRfUFJPUEVSVFkoQ2FwcywgUFhFTlZCRF9DQVBTKQ0KPiAgRlJPTlRFTkRfR0VU
X1BST1BFUlRZKEZlYXR1cmVzLCBQWEVOVkJEX0ZFQVRVUkVTKQ0KPiAgRlJPTlRFTkRfR0VUX1BS
T1BFUlRZKERpc2tJbmZvLCBQWEVOVkJEX0RJU0tJTkZPKQ0KPiArRlJPTlRFTkRfR0VUX1BST1BF
UlRZKENvbm5lY3RlZCwgQk9PTEVBTikNCj4gK0ZST05URU5EX0dFVF9QUk9QRVJUWShSZWFkT25s
eSwgQk9PTEVBTikNCj4gK0ZST05URU5EX0dFVF9QUk9QRVJUWShEaXNjYXJkLCBCT09MRUFOKQ0K
PiArRlJPTlRFTkRfR0VUX1BST1BFUlRZKEZsdXNoQ2FjaGUsIEJPT0xFQU4pDQo+ICtGUk9OVEVO
RF9HRVRfUFJPUEVSVFkoQmFycmllciwgQk9PTEVBTikNCj4gDQo+ICAjdW5kZWYgRlJPTlRFTkRf
R0VUX1BST1BFUlRZDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuYyBiL3Ny
Yy94ZW52YmQvdGFyZ2V0LmMNCj4gaW5kZXggZTYyNDk3OS4uMDk1NjY2MiAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiArKysgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IEBA
IC0yMDksMzIzICsyMDksMzU0IEBAIFRhcmdldFNldERldmljZU9iamVjdCgNCj4gICAgICBUYXJn
ZXQtPkRldmljZU9iamVjdCA9IERldmljZU9iamVjdDsNCj4gIH0NCj4gDQo+IC1fX2NoZWNrUmV0
dXJuDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAtX19WYWxpZGF0ZVNlY3RvcnMo
DQo+IC0gICAgX19pbiBVTE9ORzY0ICAgICAgICAgICAgICAgICBTZWN0b3JDb3VudCwNCj4gLSAg
ICBfX2luIFVMT05HNjQgICAgICAgICAgICAgICAgIFN0YXJ0LA0KPiAtICAgIF9faW4gVUxPTkcg
ICAgICAgICAgICAgICAgICAgTGVuZ3RoDQo+ICtzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgQk9P
TEVBTg0KPiArVGFyZ2V0UmVhZFdyaXRlKA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgICAg
IFRhcmdldCwNCj4gKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmINCj4gICAgICApDQo+
ICB7DQo+IC0gICAgLy8gRGVhbCB3aXRoIG92ZXJmbG93DQo+IC0gICAgcmV0dXJuIChTdGFydCA8
IFNlY3RvckNvdW50KSAmJiAoKFN0YXJ0ICsgTGVuZ3RoKSA8PSBTZWN0b3JDb3VudCk7DQo+IC19
DQo+ICsgICAgUFhFTlZCRF9TUkJFWFQgICAgICAgICAgU3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNp
b247DQo+ICsgICAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQgPSBUYXJnZXQtPkZy
b250ZW5kOw0KPiArICAgIFBYRU5WQkRfUklORyAgICAgICAgICAgIFJpbmcgPSBGcm9udGVuZEdl
dFJpbmcoRnJvbnRlbmQpOw0KPiArICAgIFVMT05HNjQgICAgICAgICAgICAgICAgIFNlY3RvckNv
dW50Ow0KPiArICAgIFVMT05HNjQgICAgICAgICAgICAgICAgIFNlY3RvclN0YXJ0Ow0KPiArICAg
IFVMT05HICAgICAgICAgICAgICAgICAgIE51bVNlY3RvcnM7DQo+IA0KPiAtX19jaGVja1JldHVy
bg0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gLV9fVmFsaWRhdGVTcmJCdWZmZXIo
DQo+IC0gICAgX19pbiBQQ0hBUiAgICAgICAgICAgICAgICAgIENhbGxlciwNCj4gLSAgICBfX2lu
IFBTQ1NJX1JFUVVFU1RfQkxPQ0sgICAgU3JiLA0KPiAtICAgIF9faW4gVUxPTkcgICAgICAgICAg
ICAgICAgICBNaW5MZW5ndGgNCj4gLSAgICApDQo+IC17DQo+IC0gICAgaWYgKFNyYi0+RGF0YUJ1
ZmZlciA9PSBOVUxMKSB7DQo+IC0gICAgICAgIEVycm9yKCIlczogU3JiWzB4JXBdLkRhdGFCdWZm
ZXIgPSBOVUxMXG4iLCBDYWxsZXIsIFNyYik7DQo+IC0gICAgICAgIHJldHVybiBGQUxTRTsNCj4g
LSAgICB9DQo+IC0gICAgaWYgKE1pbkxlbmd0aCkgew0KPiAtICAgICAgICBpZiAoU3JiLT5EYXRh
VHJhbnNmZXJMZW5ndGggPCBNaW5MZW5ndGgpIHsNCj4gLSAgICAgICAgICAgIEVycm9yKCIlczog
U3JiWzB4JXBdLkRhdGFUcmFuc2Zlckxlbmd0aCA8ICVkXG4iLCBDYWxsZXIsIFNyYiwNCj4gTWlu
TGVuZ3RoKTsNCj4gLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsNCj4gLSAgICAgICAgfQ0KPiAt
ICAgIH0gZWxzZSB7DQo+IC0gICAgICAgIGlmIChTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9PSAw
KSB7DQo+IC0gICAgICAgICAgICBFcnJvcigiJXM6IFNyYlsweCVwXS5EYXRhVHJhbnNmZXJMZW5n
dGggPSAwXG4iLCBDYWxsZXIsIFNyYik7DQo+IC0gICAgICAgICAgICByZXR1cm4gRkFMU0U7DQo+
IC0gICAgICAgIH0NCj4gLSAgICB9DQo+ICsgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVT
X0VSUk9SOw0KPiArICAgIGlmICghRnJvbnRlbmRHZXRDb25uZWN0ZWQoRnJvbnRlbmQpKQ0KPiAr
ICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gLSAgICByZXR1cm4gVFJVRTsNCj4gLX0NCj4gKyAg
ICAvLyBkaXNhbGxvdyB3cml0ZXMgdG8gcmVhZC1vbmx5IGRpc2tzDQo+ICsgICAgaWYgKEZyb250
ZW5kR2V0UmVhZE9ubHkoRnJvbnRlbmQpICYmDQo+ICsgICAgICAgIENkYl9PcGVyYXRpb25FeChT
cmIpID09IFNDU0lPUF9XUklURSkNCj4gKyAgICAgICAgZ290byBmYWlsMjsNCj4gDQo+IC1fX2No
ZWNrUmV0dXJuDQo+IC1zdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgQk9PTEVBTg0KPiAtVGFyZ2V0
UmVhZFdyaXRlKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICBUYXJnZXQs
DQo+IC0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgIFNyYg0KPiAtICAgICkNCj4gLXsN
Cj4gLSAgICBQWEVOVkJEX0RJU0tJTkZPICAgIERpc2tJbmZvID0gRnJvbnRlbmRHZXREaXNrSW5m
byhUYXJnZXQtDQo+ID5Gcm9udGVuZCk7DQo+IC0gICAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJF
eHQgPSBTcmItPlNyYkV4dGVuc2lvbjsNCj4gLSAgICBQWEVOVkJEX1JJTkcgICAgICAgIFJpbmcg
PSBGcm9udGVuZEdldFJpbmcoVGFyZ2V0LT5Gcm9udGVuZCk7DQo+IC0NCj4gLSAgICBpZiAoRnJv
bnRlbmRHZXRDYXBzKFRhcmdldC0+RnJvbnRlbmQpLT5Db25uZWN0ZWQgPT0gRkFMU0UpIHsNCj4g
LSAgICAgICAgVHJhY2UoIlRhcmdldFslZF0gOiBOb3QgUmVhZHksIGZhaWwgU1JCXG4iLCBUYXJn
ZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gLSAgICAgICAgU3JiLT5TY3NpU3RhdHVzID0gMHg0
MDsgLy8gU0NTSV9BQk9SVDsNCj4gLSAgICAgICAgcmV0dXJuIFRSVUU7DQo+IC0gICAgfQ0KPiAr
ICAgIC8vIGNoZWNrIFNlY3RvcnMgcmVxdWVzdGVkIGlzIG9uIHRoZSBkaXNrDQo+ICsgICAgU2Vj
dG9yQ291bnQgPSBGcm9udGVuZEdldERpc2tJbmZvKEZyb250ZW5kKS0+U2VjdG9yQ291bnQ7DQo+
ICsgICAgU2VjdG9yU3RhcnQgPSBDZGJfTG9naWNhbEJsb2NrKFNyYik7DQo+ICsgICAgTnVtU2Vj
dG9ycyA9IENkYl9UcmFuc2ZlckJsb2NrKFNyYik7DQo+IA0KPiAtICAgIC8vIGNoZWNrIHZhbGlk
IHNlY3RvcnMNCj4gLSAgICBpZiAoIV9fVmFsaWRhdGVTZWN0b3JzKERpc2tJbmZvLT5TZWN0b3JD
b3VudCwgQ2RiX0xvZ2ljYWxCbG9jayhTcmIpLA0KPiBDZGJfVHJhbnNmZXJCbG9jayhTcmIpKSkg
ew0KPiAtICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IEludmFsaWQgU2VjdG9yICglZCBAICVs
bGQgPCAlbGxkKVxuIiwNCj4gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwgQ2RiX1RyYW5zZmVy
QmxvY2soU3JiKSwgQ2RiX0xvZ2ljYWxCbG9jayhTcmIpLA0KPiBEaXNrSW5mby0+U2VjdG9yQ291
bnQpOw0KPiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQwOyAvLyBTQ1NJX0FCT1JUDQo+
IC0gICAgICAgIHJldHVybiBUUlVFOyAvLyBDb21wbGV0ZSBub3cNCj4gLSAgICB9DQo+ICsgICAg
aWYgKFNlY3RvclN0YXJ0ID49IFNlY3RvckNvdW50KQ0KPiArICAgICAgICBnb3RvIGZhaWwzOw0K
PiArICAgIGlmICgoU2VjdG9yU3RhcnQgKyBOdW1TZWN0b3JzKSA+IFNlY3RvckNvdW50KQ0KPiAr
ICAgICAgICBnb3RvIGZhaWw0Ow0KPiANCj4gKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFU
VVNfUEVORElORzsNCj4gICAgICBSaW5nUXVldWVSZXF1ZXN0KFJpbmcsIFNyYkV4dCk7DQo+ICAg
ICAgcmV0dXJuIEZBTFNFOw0KPiArDQo+ICtmYWlsNDoNCj4gKyAgICAgRXJyb3IoImZhaWw0XG4i
KTsNCj4gK2ZhaWwzOg0KPiArICAgIEVycm9yKCJmYWlsM1xuIik7DQo+ICtmYWlsMjoNCj4gKyAg
ICBFcnJvcigiZmFpbDJcbiIpOw0KPiArZmFpbDE6DQo+ICsgICAgRXJyb3IoImZhaWwxXG4iKTsN
Cj4gKyAgICByZXR1cm4gVFJVRTsNCj4gIH0NCj4gDQo+IC1fX2NoZWNrUmV0dXJuDQo+ICBzdGF0
aWMgREVDTFNQRUNfTk9JTkxJTkUgQk9PTEVBTg0KPiAgVGFyZ2V0U3luY0NhY2hlKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gUFND
U0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAg
VGFyZ2V0LA0KPiArICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYg0KPiAgICAgICkNCj4g
IHsNCj4gLSAgICBQWEVOVkJEX1NSQkVYVCAgICAgIFNyYkV4dCA9IFNyYi0+U3JiRXh0ZW5zaW9u
Ow0KPiAtICAgIFBYRU5WQkRfUklORyAgICAgICAgUmluZyA9IEZyb250ZW5kR2V0UmluZyhUYXJn
ZXQtPkZyb250ZW5kKTsNCj4gKyAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJFeHQgPSBT
cmItPlNyYkV4dGVuc2lvbjsNCj4gKyAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVu
ZCA9IFRhcmdldC0+RnJvbnRlbmQ7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAgICAgICAgICAgUmlu
ZyA9IEZyb250ZW5kR2V0UmluZyhGcm9udGVuZCk7DQo+IA0KPiAtICAgIGlmIChGcm9udGVuZEdl
dENhcHMoVGFyZ2V0LT5Gcm9udGVuZCktPkNvbm5lY3RlZCA9PSBGQUxTRSkgew0KPiAtICAgICAg
ICBUcmFjZSgiVGFyZ2V0WyVkXSA6IE5vdCBSZWFkeSwgZmFpbCBTUkJcbiIsIFRhcmdldEdldFRh
cmdldElkKFRhcmdldCkpOw0KPiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQwOyAvLyBT
Q1NJX0FCT1JUOw0KPiAtICAgICAgICByZXR1cm4gVFJVRTsNCj4gLSAgICB9DQo+ICsgICAgU3Ji
LT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOw0KPiArICAgIGlmICghRnJvbnRlbmRHZXRD
b25uZWN0ZWQoRnJvbnRlbmQpKQ0KPiArICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gLSAgICBp
ZiAoRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJnZXQtPkZyb250ZW5kKS0+Rmx1c2hDYWNoZSA9PSBG
QUxTRSAmJg0KPiAtICAgICAgICBGcm9udGVuZEdldERpc2tJbmZvKFRhcmdldC0+RnJvbnRlbmQp
LT5CYXJyaWVyID09IEZBTFNFKSB7DQo+IC0gICAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIDogRkxV
U0ggYW5kIEJBUlJJRVIgbm90IHN1cHBvcnRlZCwgc3VwcHJlc3NpbmdcbiIsDQo+IFRhcmdldEdl
dFRhcmdldElkKFRhcmdldCkpOw0KPiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDAwOyAv
LyBTQ1NJX0dPT0QNCj4gLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NF
U1M7DQo+IC0gICAgICAgIHJldHVybiBUUlVFOw0KPiAtICAgIH0NCj4gKyAgICBpZiAoRnJvbnRl
bmRHZXRSZWFkT25seShGcm9udGVuZCkpDQo+ICsgICAgICAgIGdvdG8gZmFpbDI7DQo+ICsNCj4g
KyAgICAvLyBJZiBuZWl0aGVyIEZMVVNIIG9yIEJBUlJJRVIgaXMgc3VwcG9ydGVkLCBqdXN0IHN1
Y2NjZWVkIHRoZSBTUkINCj4gKyAgICBpZiAoIShGcm9udGVuZEdldEZsdXNoQ2FjaGUoRnJvbnRl
bmQpIHx8DQo+ICsgICAgICAgICAgRnJvbnRlbmRHZXRCYXJyaWVyKEZyb250ZW5kKSkpDQo+ICsg
ICAgICAgIGdvdG8gc3VjY2VlZDsNCj4gDQo+ICsgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RB
VFVTX1BFTkRJTkc7DQo+ICAgICAgUmluZ1F1ZXVlUmVxdWVzdChSaW5nLCBTcmJFeHQpOw0KPiAg
ICAgIHJldHVybiBGQUxTRTsNCj4gKw0KPiArc3VjY2VlZDoNCj4gKyAgICBTcmItPlNyYlN0YXR1
cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsNCj4gKyAgICByZXR1cm4gVFJVRTsNCj4gKw0KPiArZmFp
bDI6DQo+ICsgICAgRXJyb3IoImZhaWwyXG4iKTsNCj4gK2ZhaWwxOg0KPiArICAgIEVycm9yKCJm
YWlsMVxuIik7DQo+ICsgICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiAtX19jaGVja1JldHVy
bg0KPiAgc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIEJPT0xFQU4NCj4gIFRhcmdldFVubWFwKA0K
PiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9f
aW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VU
ICAgICAgVGFyZ2V0LA0KPiArICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYg0KPiAgICAg
ICkNCj4gIHsNCj4gLSAgICBQWEVOVkJEX1NSQkVYVCAgICAgIFNyYkV4dCA9IFNyYi0+U3JiRXh0
ZW5zaW9uOw0KPiAtICAgIFBYRU5WQkRfUklORyAgICAgICAgUmluZyA9IEZyb250ZW5kR2V0Umlu
ZyhUYXJnZXQtPkZyb250ZW5kKTsNCj4gKyAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJF
eHQgPSBTcmItPlNyYkV4dGVuc2lvbjsNCj4gKyAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICBG
cm9udGVuZCA9IFRhcmdldC0+RnJvbnRlbmQ7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAgICAgICAg
ICAgUmluZyA9IEZyb250ZW5kR2V0UmluZyhGcm9udGVuZCk7DQo+IA0KPiAtICAgIGlmIChGcm9u
dGVuZEdldENhcHMoVGFyZ2V0LT5Gcm9udGVuZCktPkNvbm5lY3RlZCA9PSBGQUxTRSkgew0KPiAt
ICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IE5vdCBSZWFkeSwgZmFpbCBTUkJcbiIsIFRhcmdl
dEdldFRhcmdldElkKFRhcmdldCkpOw0KPiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQw
OyAvLyBTQ1NJX0FCT1JUOw0KPiAtICAgICAgICByZXR1cm4gVFJVRTsNCj4gLSAgICB9DQo+ICsg
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOw0KPiArICAgIGlmICghRnJvbnRl
bmRHZXRDb25uZWN0ZWQoRnJvbnRlbmQpKQ0KPiArICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4g
LSAgICBpZiAoRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJnZXQtPkZyb250ZW5kKS0+RGlzY2FyZCA9
PSBGQUxTRSkgew0KPiAtICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IERJU0NBUkQgbm90IHN1
cHBvcnRlZCwgc3VwcHJlc3NpbmdcbiIsDQo+IFRhcmdldEdldFRhcmdldElkKFRhcmdldCkpOw0K
PiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDAwOyAvLyBTQ1NJX0dPT0QNCj4gLSAgICAg
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+IC0gICAgICAgIHJldHVy
biBUUlVFOw0KPiAtICAgIH0NCj4gKyAgICBpZiAoRnJvbnRlbmRHZXRSZWFkT25seShGcm9udGVu
ZCkpDQo+ICsgICAgICAgIGdvdG8gZmFpbDI7DQo+IA0KPiArICAgIGlmICghRnJvbnRlbmRHZXRE
aXNjYXJkKEZyb250ZW5kKSkNCj4gKyAgICAgICAgZ290byBzdWNjZWVkOw0KPiArDQo+ICsgICAg
U3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BFTkRJTkc7DQo+ICAgICAgUmluZ1F1ZXVlUmVx
dWVzdChSaW5nLCBTcmJFeHQpOw0KPiAgICAgIHJldHVybiBGQUxTRTsNCj4gKw0KPiArc3VjY2Vl
ZDoNCj4gKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsNCj4gKyAgICBy
ZXR1cm4gVFJVRTsNCj4gKw0KPiArZmFpbDI6DQo+ICsgICAgRXJyb3IoImZhaWwyXG4iKTsNCj4g
K2ZhaWwxOg0KPiArICAgIEVycm9yKCJmYWlsMVxuIik7DQo+ICsgICAgcmV0dXJuIFRSVUU7DQo+
ICB9DQo+IA0KPiAtI2RlZmluZSBNT0RFX0NBQ0hJTkdfUEFHRV9MRU5HVEggMjANCj4gLXN0YXRp
YyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+IC1UYXJnZXRNb2RlU2Vuc2UoDQo+IC0gICAgX19p
biBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+IC0gICAgX19pbiBQU0NTSV9S
RVFVRVNUX0JMT0NLICAgICBTcmINCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX1Rh
cmdldE1vZGVTZW5zZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQsDQo+
ICsgICAgSU4gIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiLA0KPiArICAgIElOICBQVk9JRCAgICAg
ICAgICAgICAgIERhdGEsDQo+ICsgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgTGVuZ3RoLA0K
PiArICAgIE9VVCBQVUxPTkcgICAgICAgICAgICAgIFNpemUsDQo+ICsgICAgT1VUIFBVTE9ORyAg
ICAgICAgICAgICAgTW9kZURhdGFMZW5ndGgsDQo+ICsgICAgT1VUIFBVTE9ORyAgICAgICAgICAg
ICAgQmxvY2tEZXNjckxlbmd0aA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBQTU9ERV9QQVJBTUVU
RVJfSEVBREVSICBIZWFkZXIgID0gU3JiLT5EYXRhQnVmZmVyOw0KPiAtICAgIGNvbnN0IFVDSEFS
IFBhZ2VDb2RlICAgICAgICAgICAgPSBDZGJfUGFnZUNvZGUoU3JiKTsNCj4gLSAgICBVTE9ORyBM
ZW5ndGhMZWZ0ICAgICAgICAgICAgICAgID0gQ2RiX0FsbG9jYXRpb25MZW5ndGgoU3JiKTsNCj4g
LSAgICBQVk9JRCBDdXJyZW50UGFnZSAgICAgICAgICAgICAgID0gU3JiLT5EYXRhQnVmZmVyOw0K
PiAtDQo+IC0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihUYXJnZXQpOw0KPiAtDQo+IC0gICAg
UnRsWmVyb01lbW9yeShTcmItPkRhdGFCdWZmZXIsIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoKTsN
Cj4gLQ0KPiAtICAgIGlmICghX19WYWxpZGF0ZVNyYkJ1ZmZlcihfX0ZVTkNUSU9OX18sIFNyYiwg
KFVMT05HKXNpemVvZihzdHJ1Y3QNCj4gX01PREVfU0VOU0UpKSkgew0KPiAtICAgICAgICBTcmIt
PlNjc2lTdGF0dXMgPSAweDQwOw0KPiAtICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFU
VVNfREFUQV9PVkVSUlVOOw0KPiAtICAgICAgICBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9IDA7
DQo+IC0gICAgICAgIHJldHVybjsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICAvLyBUT0RPIDogQ0RS
T00gcmVxdWlyZXMgbW9yZSBNb2RlUGFnZSBlbnRyaWVzDQo+IC0gICAgLy8gSGVhZGVyDQo+IC0g
ICAgSGVhZGVyLT5Nb2RlRGF0YUxlbmd0aCAgPSBzaXplb2YoTU9ERV9QQVJBTUVURVJfSEVBREVS
KSAtIDE7DQo+IC0gICAgSGVhZGVyLT5NZWRpdW1UeXBlICAgICAgPSAwOw0KPiAtICAgIEhlYWRl
ci0+RGV2aWNlU3BlY2lmaWNQYXJhbWV0ZXIgPSAwOw0KPiAtICAgIEhlYWRlci0+QmxvY2tEZXNj
cmlwdG9yTGVuZ3RoICAgPSAwOw0KPiAtICAgIExlbmd0aExlZnQgLT0gc2l6ZW9mKE1PREVfUEFS
QU1FVEVSX0hFQURFUik7DQo+IC0gICAgQ3VycmVudFBhZ2UgPSAoKFBVQ0hBUilDdXJyZW50UGFn
ZSArDQo+IHNpemVvZihNT0RFX1BBUkFNRVRFUl9IRUFERVIpKTsNCj4gKyAgICBjb25zdCBVQ0hB
UiAgICAgICAgICAgICBQYWdlQ29kZSA9IENkYl9QYWdlQ29kZShTcmIpOw0KPiANCj4gICAgICAv
LyBGaWxsIGluIEJsb2NrIFBhcmFtZXRlcnMgKGlmIFNwZWNpZmllZCBhbmQgc3BhY2UpDQo+ICAg
ICAgLy8gd2hlbiB0aGUgREJEIChEaXNhYmxlIEJsb2NrIERlc2NyaXB0b3IpIGlzIHNldCwgaWdu
b3JlIHRoZSBibG9jayBwYWdlDQo+ICAgICAgaWYgKENkYl9EYmQoU3JiKSA9PSAwICYmDQo+IC0g
ICAgICAgIExlbmd0aExlZnQgPj0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0JMT0NLKSkgew0KPiAt
ICAgICAgICBQTU9ERV9QQVJBTUVURVJfQkxPQ0sgQmxvY2sgPQ0KPiAoUE1PREVfUEFSQU1FVEVS
X0JMT0NLKUN1cnJlbnRQYWdlOw0KPiAtICAgICAgICAvLyBGaWxsIGluIEJsb2NrUGFyYW1zDQo+
IC0gICAgICAgIEJsb2NrLT5EZW5zaXR5Q29kZSAgICAgICAgICAgICAgICAgID0gICAwOw0KPiAt
ICAgICAgICBCbG9jay0+TnVtYmVyT2ZCbG9ja3NbMF0gICAgICAgICAgICA9ICAgMDsNCj4gLSAg
ICAgICAgQmxvY2stPk51bWJlck9mQmxvY2tzWzFdICAgICAgICAgICAgPSAgIDA7DQo+IC0gICAg
ICAgIEJsb2NrLT5OdW1iZXJPZkJsb2Nrc1syXSAgICAgICAgICAgID0gICAwOw0KPiAtICAgICAg
ICBCbG9jay0+QmxvY2tMZW5ndGhbMF0gICAgICAgICAgICAgICA9ICAgMDsNCj4gLSAgICAgICAg
QmxvY2stPkJsb2NrTGVuZ3RoWzFdICAgICAgICAgICAgICAgPSAgIDA7DQo+IC0gICAgICAgIEJs
b2NrLT5CbG9ja0xlbmd0aFsyXSAgICAgICAgICAgICAgID0gICAwOw0KPiAtDQo+IC0gICAgICAg
IEhlYWRlci0+QmxvY2tEZXNjcmlwdG9yTGVuZ3RoID0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0JM
T0NLKTsNCj4gLSAgICAgICAgSGVhZGVyLT5Nb2RlRGF0YUxlbmd0aCArPSBzaXplb2YoTU9ERV9Q
QVJBTUVURVJfQkxPQ0spOw0KPiAtICAgICAgICBMZW5ndGhMZWZ0IC09IHNpemVvZihNT0RFX1BB
UkFNRVRFUl9CTE9DSyk7DQo+IC0gICAgICAgIEN1cnJlbnRQYWdlID0gKChQVUNIQVIpQ3VycmVu
dFBhZ2UgKw0KPiBzaXplb2YoTU9ERV9QQVJBTUVURVJfQkxPQ0spKTsNCj4gKyAgICAgICAgTGVu
Z3RoIC0gKlNpemUgPj0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0JMT0NLKSkgew0KPiArICAgICAg
ICAvLyBQTU9ERV9QQVJBTUVURVJfQkxPQ0sgQmxvY2sgPQ0KPiAoUE1PREVfUEFSQU1FVEVSX0JM
T0NLKSgoUFVDSEFSKURhdGEgKyAqU2l6ZSk7DQo+ICsNCj4gKyAgICAgICAgLy8gRmlsbCBpbiBC
bG9ja1BhcmFtcyAtIEFsbCBaZXJvZXMNCj4gKw0KPiArICAgICAgICAqQmxvY2tEZXNjckxlbmd0
aCAgID0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0JMT0NLKTsNCj4gKyAgICAgICAgKk1vZGVEYXRh
TGVuZ3RoICAgICArPSBzaXplb2YoTU9ERV9QQVJBTUVURVJfQkxPQ0spOw0KPiArICAgICAgICAq
U2l6ZSAgICAgICAgICAgICAgICs9IHNpemVvZihNT0RFX1BBUkFNRVRFUl9CTE9DSyk7DQo+ICAg
ICAgfQ0KPiANCj4gICAgICAvLyBGaWxsIGluIENhY2hlIFBhcmFtZXRlcnMgKGlmIFNwZWNpZmll
ZCBhbmQgc3BhY2UpDQo+ICAgICAgaWYgKChQYWdlQ29kZSA9PSBNT0RFX1BBR0VfQ0FDSElORyB8
fCBQYWdlQ29kZSA9PQ0KPiBNT0RFX1NFTlNFX1JFVFVSTl9BTEwpICYmDQo+IC0gICAgICAgIExl
bmd0aExlZnQgPj0gTU9ERV9DQUNISU5HX1BBR0VfTEVOR1RIKSB7DQo+IC0gICAgICAgIFBNT0RF
X0NBQ0hJTkdfUEFHRSBDYWNoaW5nID0NCj4gKFBNT0RFX0NBQ0hJTkdfUEFHRSlDdXJyZW50UGFn
ZTsNCj4gKyAgICAgICAgTGVuZ3RoIC0gKlNpemUgPj0gc2l6ZW9mKE1PREVfQ0FDSElOR19QQUdF
KSkgew0KPiArICAgICAgICBQTU9ERV9DQUNISU5HX1BBR0UgQ2FjaGluZyA9DQo+IChQTU9ERV9D
QUNISU5HX1BBR0UpKChQVUNIQVIpRGF0YSArICpTaXplKTsNCj4gKw0KPiAgICAgICAgICAvLyBG
aWxsIGluIENhY2hpbmdQYXJhbXMNCj4gLSAgICAgICAgQ2FjaGluZy0+UGFnZUNvZGUgICAgICAg
ICAgICAgICAgICAgPSBNT0RFX1BBR0VfQ0FDSElORzsNCj4gLSAgICAgICAgQ2FjaGluZy0+UGFn
ZVNhdmFibGUgICAgICAgICAgICAgICAgPSAwOw0KPiAtICAgICAgICBDYWNoaW5nLT5QYWdlTGVu
Z3RoICAgICAgICAgICAgICAgICA9IE1PREVfQ0FDSElOR19QQUdFX0xFTkdUSDsNCj4gLSAgICAg
ICAgQ2FjaGluZy0+UmVhZERpc2FibGVDYWNoZSAgICAgICAgICAgPSAwOw0KPiAtICAgICAgICBD
YWNoaW5nLT5NdWx0aXBsaWNhdGlvbkZhY3RvciAgICAgICA9IDA7DQo+IC0gICAgICAgIENhY2hp
bmctPldyaXRlQ2FjaGVFbmFibGUgICAgICAgICAgID0gRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJn
ZXQtDQo+ID5Gcm9udGVuZCktPkZsdXNoQ2FjaGUgPyAxIDogMDsNCj4gLSAgICAgICAgQ2FjaGlu
Zy0+V3JpdGVSZXRlbnNpb25Qcmlvcml0eSAgICAgPSAwOw0KPiAtICAgICAgICBDYWNoaW5nLT5S
ZWFkUmV0ZW5zaW9uUHJpb3JpdHkgICAgICA9IDA7DQo+IC0gICAgICAgIENhY2hpbmctPkRpc2Fi
bGVQcmVmZXRjaFRyYW5zZmVyWzBdID0gMDsNCj4gLSAgICAgICAgQ2FjaGluZy0+RGlzYWJsZVBy
ZWZldGNoVHJhbnNmZXJbMV0gPSAwOw0KPiAtICAgICAgICBDYWNoaW5nLT5NaW5pbXVtUHJlZmV0
Y2hbMF0gICAgICAgICA9IDA7DQo+IC0gICAgICAgIENhY2hpbmctPk1pbmltdW1QcmVmZXRjaFsx
XSAgICAgICAgID0gMDsNCj4gLSAgICAgICAgQ2FjaGluZy0+TWF4aW11bVByZWZldGNoWzBdICAg
ICAgICAgPSAwOw0KPiAtICAgICAgICBDYWNoaW5nLT5NYXhpbXVtUHJlZmV0Y2hbMV0gICAgICAg
ICA9IDA7DQo+IC0gICAgICAgIENhY2hpbmctPk1heGltdW1QcmVmZXRjaENlaWxpbmdbMF0gID0g
MDsNCj4gLSAgICAgICAgQ2FjaGluZy0+TWF4aW11bVByZWZldGNoQ2VpbGluZ1sxXSAgPSAwOw0K
PiAtDQo+IC0gICAgICAgIEhlYWRlci0+TW9kZURhdGFMZW5ndGggKz0gTU9ERV9DQUNISU5HX1BB
R0VfTEVOR1RIOw0KPiAtICAgICAgICBMZW5ndGhMZWZ0IC09IE1PREVfQ0FDSElOR19QQUdFX0xF
TkdUSDsNCj4gLSAgICAgICAgQ3VycmVudFBhZ2UgPSAoKFBVQ0hBUilDdXJyZW50UGFnZSArDQo+
IE1PREVfQ0FDSElOR19QQUdFX0xFTkdUSCk7DQo+ICsgICAgICAgIENhY2hpbmctPlBhZ2VDb2Rl
ICAgICAgICAgICA9IE1PREVfUEFHRV9DQUNISU5HOw0KPiArICAgICAgICBDYWNoaW5nLT5QYWdl
TGVuZ3RoICAgICAgICAgPSBzaXplb2YoTU9ERV9DQUNISU5HX1BBR0UpOw0KPiArICAgICAgICBD
YWNoaW5nLT5Xcml0ZUNhY2hlRW5hYmxlICAgPSBGcm9udGVuZEdldEZsdXNoQ2FjaGUoVGFyZ2V0
LQ0KPiA+RnJvbnRlbmQpID8gMSA6IDA7DQo+ICsNCj4gKyAgICAgICAgKk1vZGVEYXRhTGVuZ3Ro
ICs9IHNpemVvZihNT0RFX0NBQ0hJTkdfUEFHRSk7DQo+ICsgICAgICAgICpTaXplICAgICAgICAg
ICArPSBzaXplb2YoTU9ERV9DQUNISU5HX1BBR0UpOw0KPiAgICAgIH0NCj4gDQo+ICAgICAgLy8g
RmlsbCBpbiBJbmZvcm1hdGlvbmFsIEV4Y2VwdGlvbiBQYXJhbWV0ZXJzIChpZiBTcGVjaWZpZWQg
YW5kIHNwYWNlKQ0KPiAgICAgIGlmICgoUGFnZUNvZGUgPT0gTU9ERV9QQUdFX0ZBVUxUX1JFUE9S
VElORyB8fCBQYWdlQ29kZSA9PQ0KPiBNT0RFX1NFTlNFX1JFVFVSTl9BTEwpICYmDQo+IC0gICAg
ICAgIExlbmd0aExlZnQgPj0gc2l6ZW9mKE1PREVfSU5GT19FWENFUFRJT05TKSkgew0KPiAtICAg
ICAgICBQTU9ERV9JTkZPX0VYQ0VQVElPTlMgRXhjZXB0aW9ucyA9DQo+IChQTU9ERV9JTkZPX0VY
Q0VQVElPTlMpQ3VycmVudFBhZ2U7DQo+ICsgICAgICAgIExlbmd0aCAtICpTaXplID49IHNpemVv
ZihNT0RFX0lORk9fRVhDRVBUSU9OUykpIHsNCj4gKyAgICAgICAgUE1PREVfSU5GT19FWENFUFRJ
T05TIEV4Y2VwdGlvbnMgPQ0KPiAoUE1PREVfSU5GT19FWENFUFRJT05TKSgoUFVDSEFSKURhdGEg
KyAqU2l6ZSk7DQo+ICsNCj4gICAgICAgICAgLy8gRmlsbCBpbiBFeGNlcHRpb25zDQo+IC0gICAg
ICAgIEV4Y2VwdGlvbnMtPlBhZ2VDb2RlICAgICAgICAgICAgICAgID0gTU9ERV9QQUdFX0ZBVUxU
X1JFUE9SVElORzsNCj4gLSAgICAgICAgRXhjZXB0aW9ucy0+UFNCaXQgICAgICAgICAgICAgICAg
ICAgPSAwOw0KPiAtICAgICAgICBFeGNlcHRpb25zLT5QYWdlTGVuZ3RoICAgICAgICAgICAgICA9
IHNpemVvZihNT0RFX0lORk9fRVhDRVBUSU9OUyk7DQo+IC0gICAgICAgIEV4Y2VwdGlvbnMtPkZs
YWdzICAgICAgICAgICAgICAgICAgID0gMDsNCj4gLSAgICAgICAgRXhjZXB0aW9ucy0+RGV4Y3B0
ICAgICAgICAgICAgICAgICAgPSAxOyAvLyBkaXNhYmxlZA0KPiAtICAgICAgICBFeGNlcHRpb25z
LT5SZXBvcnRNZXRob2QgICAgICAgICAgICA9IDA7DQo+IC0gICAgICAgIEV4Y2VwdGlvbnMtPklu
dGVydmFsVGltZXJbMF0gICAgICAgID0gMDsNCj4gLSAgICAgICAgRXhjZXB0aW9ucy0+SW50ZXJ2
YWxUaW1lclsxXSAgICAgICAgPSAwOw0KPiAtICAgICAgICBFeGNlcHRpb25zLT5JbnRlcnZhbFRp
bWVyWzJdICAgICAgICA9IDA7DQo+IC0gICAgICAgIEV4Y2VwdGlvbnMtPkludGVydmFsVGltZXJb
M10gICAgICAgID0gMDsNCj4gLSAgICAgICAgRXhjZXB0aW9ucy0+UmVwb3J0Q291bnRbMF0gICAg
ICAgICAgPSAwOw0KPiAtICAgICAgICBFeGNlcHRpb25zLT5SZXBvcnRDb3VudFsxXSAgICAgICAg
ICA9IDA7DQo+IC0gICAgICAgIEV4Y2VwdGlvbnMtPlJlcG9ydENvdW50WzJdICAgICAgICAgID0g
MDsNCj4gLSAgICAgICAgRXhjZXB0aW9ucy0+UmVwb3J0Q291bnRbM10gICAgICAgICAgPSAwOw0K
PiAtDQo+IC0gICAgICAgIEhlYWRlci0+TW9kZURhdGFMZW5ndGggKz0gc2l6ZW9mKE1PREVfSU5G
T19FWENFUFRJT05TKTsNCj4gLSAgICAgICAgTGVuZ3RoTGVmdCAtPSBzaXplb2YoTU9ERV9JTkZP
X0VYQ0VQVElPTlMpOw0KPiAtICAgICAgICBDdXJyZW50UGFnZSA9ICgoUFVDSEFSKUN1cnJlbnRQ
YWdlICsNCj4gc2l6ZW9mKE1PREVfSU5GT19FWENFUFRJT05TKSk7DQo+ICsgICAgICAgIEV4Y2Vw
dGlvbnMtPlBhZ2VDb2RlICAgID0gTU9ERV9QQUdFX0ZBVUxUX1JFUE9SVElORzsNCj4gKyAgICAg
ICAgRXhjZXB0aW9ucy0+UGFnZUxlbmd0aCAgPSBzaXplb2YoTU9ERV9JTkZPX0VYQ0VQVElPTlMp
Ow0KPiArICAgICAgICBFeGNlcHRpb25zLT5EZXhjcHQgICAgICA9IDE7IC8vIGRpc2FibGVkDQo+
ICsNCj4gKyAgICAgICAgKk1vZGVEYXRhTGVuZ3RoICs9IHNpemVvZihNT0RFX0lORk9fRVhDRVBU
SU9OUyk7DQo+ICsgICAgICAgICpTaXplICAgICAgICAgICArPSBzaXplb2YoTU9ERV9JTkZPX0VY
Q0VQVElPTlMpOw0KPiAgICAgIH0NCj4gK30NCj4gKw0KPiArc3RhdGljIERFQ0xTUEVDX05PSU5M
SU5FIFZPSUQNCj4gK1RhcmdldE1vZGVTZW5zZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQg
ICAgICBUYXJnZXQsDQo+ICsgICAgSU4gIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICsgICAg
KQ0KPiArew0KPiArICAgIFBNT0RFX1BBUkFNRVRFUl9IRUFERVIgIERhdGEgID0gU3JiLT5EYXRh
QnVmZmVyOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIExlbmd0aCA9IFNyYi0+RGF0
YVRyYW5zZmVyTGVuZ3RoOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEJsb2NrRGVz
Y3JMZW5ndGggPSAwOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIE1vZGVEYXRhTGVu
Z3RoID0gMDsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBTaXplOw0KPiArDQo+ICsg
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOw0KPiArDQo+ICsgICAgaWYgKERh
dGEgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiArICAgIFJ0bFplcm9NZW1vcnkoRGF0
YSwgTGVuZ3RoKTsNCj4gKw0KPiArICAgIGlmIChMZW5ndGggPCBzaXplb2YoTU9ERV9QQVJBTUVU
RVJfSEVBREVSKSkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgLy8gSGVhZGVyDQo+
ICsgICAgRGF0YS0+TWVkaXVtVHlwZSAgICAgICAgICAgICAgICA9IDA7DQo+ICsgICAgRGF0YS0+
RGV2aWNlU3BlY2lmaWNQYXJhbWV0ZXIgICA9IEZyb250ZW5kR2V0UmVhZE9ubHkoVGFyZ2V0LQ0K
PiA+RnJvbnRlbmQpID8NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNT0RFX0RTUF9XUklURV9QUk9URUNUIDogMDsNCj4gKyAgICBTaXplID0g
c2l6ZW9mKE1PREVfUEFSQU1FVEVSX0hFQURFUik7DQo+ICsNCj4gKyAgICBfX1RhcmdldE1vZGVT
ZW5zZShUYXJnZXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgU3JiLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgIERhdGEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICZTaXplLA0KPiArICAgICAgICAgICAgICAgICAgICAgICZN
b2RlRGF0YUxlbmd0aCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAmQmxvY2tEZXNjckxlbmd0
aCk7DQo+ICsgICAgQVNTRVJUM1UoTW9kZURhdGFMZW5ndGgsIDw9LCAyNTUgLQ0KPiAoc2l6ZW9m
KE1PREVfUEFSQU1FVEVSX0hFQURFUikgLSAxKSk7DQo+ICsgICAgQVNTRVJUM1UoQmxvY2tEZXNj
ckxlbmd0aCwgPD0sIDI1NSk7DQo+ICsNCj4gKyAgICBEYXRhLT5Nb2RlRGF0YUxlbmd0aCA9IChV
Q0hBUikoTW9kZURhdGFMZW5ndGggKw0KPiBzaXplb2YoTU9ERV9QQVJBTUVURVJfSEVBREVSKSAt
IDEpOw0KPiArICAgIERhdGEtPkJsb2NrRGVzY3JpcHRvckxlbmd0aCA9IChVQ0hBUilCbG9ja0Rl
c2NyTGVuZ3RoOw0KPiArDQo+ICsgICAgQVNTRVJUM1UoU2l6ZSwgPD0sIExlbmd0aCk7DQo+ICsg
ICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPSBTaXplOw0KPiArICAgIFNyYi0+U3JiU3RhdHVz
ID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgREVDTFNQRUNfTk9J
TkxJTkUgVk9JRA0KPiArVGFyZ2V0TW9kZVNlbnNlMTAoDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFS
R0VUICAgICAgICAgIFRhcmdldCwNCj4gKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAg
U3JiDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBNT0RFX1BBUkFNRVRFUl9IRUFERVIxMCAgICBE
YXRhICA9IFNyYi0+RGF0YUJ1ZmZlcjsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAg
ICAgTGVuZ3RoID0gU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGg7DQo+ICsgICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgICAgIEJsb2NrRGVzY3JMZW5ndGggPSAwOw0KPiArICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgICAgICBNb2RlRGF0YUxlbmd0aCA9IDA7DQo+ICsgICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgICAgIFNpemU7DQo+ICsNCj4gKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9T
VEFUVVNfRVJST1I7DQo+ICsNCj4gKyAgICBpZiAoRGF0YSA9PSBOVUxMKQ0KPiArICAgICAgICBy
ZXR1cm47DQo+ICsgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOw0KPiArDQo+ICsgICAg
aWYgKExlbmd0aCA8IHNpemVvZihNT0RFX1BBUkFNRVRFUl9IRUFERVIxMCkpDQo+ICsgICAgICAg
IHJldHVybjsNCj4gDQo+IC0gICAgLy8gRmluaXNoIHRoaXMgU1JCDQo+ICsgICAgLy8gSGVhZGVy
DQo+ICsgICAgRGF0YS0+TWVkaXVtVHlwZSAgICAgICAgICAgICAgICA9IDA7DQo+ICsgICAgRGF0
YS0+RGV2aWNlU3BlY2lmaWNQYXJhbWV0ZXIgICA9IEZyb250ZW5kR2V0UmVhZE9ubHkoVGFyZ2V0
LQ0KPiA+RnJvbnRlbmQpID8NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBNT0RFX0RTUF9XUklURV9QUk9URUNUIDogMDsNCj4gKyAgICBTaXpl
ID0gc2l6ZW9mKE1PREVfUEFSQU1FVEVSX0hFQURFUjEwKTsNCj4gKw0KPiArICAgIF9fVGFyZ2V0
TW9kZVNlbnNlKFRhcmdldCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICBTcmIsDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgRGF0YSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgJlNpemUsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgJk1vZGVEYXRhTGVuZ3RoLA0KPiArICAgICAgICAgICAgICAgICAgICAgICZCbG9ja0Rlc2Ny
TGVuZ3RoKTsNCj4gKyAgICBBU1NFUlQzVShNb2RlRGF0YUxlbmd0aCwgPD0sIDY1NTM1IC0NCj4g
KHNpemVvZihNT0RFX1BBUkFNRVRFUl9IRUFERVIxMCkgLSAyKSk7DQo+ICsgICAgQVNTRVJUM1Uo
QmxvY2tEZXNjckxlbmd0aCwgPD0sIDY1NTM1KTsNCj4gKw0KPiArICAgICooUFVTSE9SVClEYXRh
LT5Nb2RlRGF0YUxlbmd0aCA9DQo+IF9ieXRlc3dhcF91c2hvcnQoKFVTSE9SVClNb2RlRGF0YUxl
bmd0aCArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2YoTU9ERV9QQVJBTUVURVJfSEVBREVSMTApIC0gMik7DQo+ICsgICAgKihQ
VVNIT1JUKURhdGEtPkJsb2NrRGVzY3JpcHRvckxlbmd0aCA9DQo+IF9ieXRlc3dhcF91c2hvcnQo
KFVTSE9SVClCbG9ja0Rlc2NyTGVuZ3RoKTsNCj4gKw0KPiArICAgIEFTU0VSVDNVKFNpemUsIDw9
LCBMZW5ndGgpOw0KPiArICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gU2l6ZTsNCj4gICAg
ICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsNCj4gLSAgICBTcmItPkRhdGFU
cmFuc2Zlckxlbmd0aCA9IF9fbWluKENkYl9BbGxvY2F0aW9uTGVuZ3RoKFNyYiksDQo+IChVTE9O
RykoSGVhZGVyLT5Nb2RlRGF0YUxlbmd0aCArIDEpKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgREVD
TFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAgVGFyZ2V0UmVxdWVzdFNlbnNlKA0KPiAtICAgIF9faW4g
UFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gUFNDU0lfUkVR
VUVTVF9CTE9DSyAgICAgU3JiDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0
LA0KPiArICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYg0KPiAgICAgICkNCj4gIHsNCj4g
LSAgICBQU0VOU0VfREFUQSAgICAgICAgIFNlbnNlID0gU3JiLT5EYXRhQnVmZmVyOw0KPiArICAg
IFBTRU5TRV9EQVRBICAgICAgICAgICAgIERhdGEgPSBTcmItPkRhdGFCdWZmZXI7DQo+ICsgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgTGVuZ3RoID0gU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGg7
DQo+IA0KPiAgICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoVGFyZ2V0KTsNCj4gDQo+IC0gICAg
aWYgKCFfX1ZhbGlkYXRlU3JiQnVmZmVyKF9fRlVOQ1RJT05fXywgU3JiLA0KPiAoVUxPTkcpc2l6
ZW9mKFNFTlNFX0RBVEEpKSkgew0KPiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQwOw0K
PiAtICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfREFUQV9PVkVSUlVOOw0KPiAr
ICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsNCj4gKw0KPiArICAgIGlmIChE
YXRhID09IE5VTEwpDQo+ICAgICAgICAgIHJldHVybjsNCj4gLSAgICB9DQo+ICsgICAgUnRsWmVy
b01lbW9yeShEYXRhLCBMZW5ndGgpOw0KPiANCj4gLSAgICBSdGxaZXJvTWVtb3J5KFNlbnNlLCBz
aXplb2YoU0VOU0VfREFUQSkpOw0KPiArICAgIGlmIChMZW5ndGggPCBzaXplb2YoU0VOU0VfREFU
QSkpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIERhdGEtPkVycm9yQ29kZSAgICAg
ICAgICAgID0gMHg3MDsNCj4gKyAgICBEYXRhLT5WYWxpZCAgICAgICAgICAgICAgICA9IDE7DQo+
ICsgICAgRGF0YS0+QWRkaXRpb25hbFNlbnNlQ29kZVF1YWxpZmllciA9IDA7DQo+ICsgICAgRGF0
YS0+U2Vuc2VLZXkgICAgICAgICAgICAgPSBTQ1NJX1NFTlNFX05PX1NFTlNFOw0KPiArICAgIERh
dGEtPkFkZGl0aW9uYWxTZW5zZUNvZGUgID0gU0NTSV9BRFNFTlNFX05PX1NFTlNFOw0KPiANCj4g
LSAgICBTZW5zZS0+RXJyb3JDb2RlICAgICAgICAgICAgPSAweDcwOw0KPiAtICAgIFNlbnNlLT5W
YWxpZCAgICAgICAgICAgICAgICA9IDE7DQo+IC0gICAgU2Vuc2UtPkFkZGl0aW9uYWxTZW5zZUNv
ZGVRdWFsaWZpZXIgPSAwOw0KPiAtICAgIFNlbnNlLT5TZW5zZUtleSAgICAgICAgICAgICA9IFND
U0lfU0VOU0VfTk9fU0VOU0U7DQo+IC0gICAgU2Vuc2UtPkFkZGl0aW9uYWxTZW5zZUNvZGUgID0g
U0NTSV9BRFNFTlNFX05PX1NFTlNFOw0KPiAgICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoICAg
ICA9IHNpemVvZihTRU5TRV9EQVRBKTsNCj4gICAgICBTcmItPlNyYlN0YXR1cyAgICAgICAgICAg
ICAgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICB9DQo+IA0KPiAgc3RhdGljIERFQ0xTUEVDX05P
SU5MSU5FIFZPSUQNCj4gIFRhcmdldFJlcG9ydEx1bnMoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RB
UkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+IC0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NL
ICAgICBTcmINCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQsDQo+ICsgICAg
SU4gIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFVMT05H
ICAgICAgICAgICBMZW5ndGg7DQo+IC0gICAgVUxPTkcgICAgICAgICAgIE9mZnNldDsNCj4gLSAg
ICBVTE9ORyAgICAgICAgICAgQWxsb2NMZW5ndGggPSBDZGJfQWxsb2NhdGlvbkxlbmd0aChTcmIp
Ow0KPiAtICAgIFBVQ0hBUiAgICAgICAgICBCdWZmZXIgPSBTcmItPkRhdGFCdWZmZXI7DQo+ICsg
ICAgUExVTl9MSVNUICAgICAgICAgICAgICAgRGF0YSA9IFNyYi0+RGF0YUJ1ZmZlcjsNCj4gKyAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICBMZW5ndGggPSBTcmItPkRhdGFUcmFuc2Zlckxlbmd0
aDsNCj4gDQo+ICAgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihUYXJnZXQpOw0KPiANCj4gLSAg
ICBpZiAoIV9fVmFsaWRhdGVTcmJCdWZmZXIoX19GVU5DVElPTl9fLCBTcmIsIDgpKSB7DQo+IC0g
ICAgICAgIFNyYi0+U2NzaVN0YXR1cyA9IDB4NDA7DQo+IC0gICAgICAgIFNyYi0+U3JiU3RhdHVz
ID0gU1JCX1NUQVRVU19EQVRBX09WRVJSVU47DQo+IC0gICAgICAgIFNyYi0+RGF0YVRyYW5zZmVy
TGVuZ3RoID0gMDsNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIFJ0
bFplcm9NZW1vcnkoQnVmZmVyLCBBbGxvY0xlbmd0aCk7DQo+IC0NCj4gLSAgICBMZW5ndGggPSAw
Ow0KPiAtICAgIE9mZnNldCA9IDg7DQo+ICsgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVT
X0VSUk9SOw0KPiANCj4gLSAgICBpZiAoT2Zmc2V0ICsgOCA8PSBBbGxvY0xlbmd0aCkgew0KPiAt
ICAgICAgICBCdWZmZXJbT2Zmc2V0XSA9IDA7DQo+IC0gICAgICAgIE9mZnNldCArPSA4Ow0KPiAt
ICAgICAgICBMZW5ndGggKz0gODsNCj4gLSAgICB9DQo+ICsgICAgaWYgKERhdGEgPT0gTlVMTCkN
Cj4gKyAgICAgICAgcmV0dXJuOw0KPiArICAgIFJ0bFplcm9NZW1vcnkoRGF0YSwgTGVuZ3RoKTsN
Cj4gDQo+IC0gICAgaWYgKE9mZnNldCArIDggPD0gQWxsb2NMZW5ndGgpIHsNCj4gLSAgICAgICAg
QnVmZmVyW09mZnNldF0gPSBYRU5WQkRfTUFYX1RBUkdFVFM7DQo+IC0gICAgICAgIE9mZnNldCAr
PSA4Ow0KPiAtICAgICAgICBMZW5ndGggKz0gODsNCj4gLSAgICB9DQo+ICsgICAgaWYgKExlbmd0
aCA8IDE2KQ0KPiArICAgICAgICByZXR1cm47DQo+IA0KPiAtICAgIFJFVkVSU0VfQllURVMoQnVm
ZmVyLCAmTGVuZ3RoKTsNCj4gKyAgICAvLyBVQ0hBUls0XSBAIERhdGENCj4gKyAgICAqKFBVTE9O
RylEYXRhLT5MdW5MaXN0TGVuZ3RoID0gX2J5dGVzd2FwX3Vsb25nKDgpOw0KPiArICAgIC8vIFVD
SEFSWzhdIEAgRGF0YSArIDgNCj4gKyAgICAqKFBVTE9ORzY0KURhdGEtPkx1blswXSA9DQo+IF9i
eXRlc3dhcF91aW50NjQoWEVOVkJEX01BWF9UQVJHRVRTKTsNCj4gDQo+IC0gICAgU3JiLT5EYXRh
VHJhbnNmZXJMZW5ndGggPSBfX21pbihMZW5ndGgsIEFsbG9jTGVuZ3RoKTsNCj4gKyAgICBTcmIt
PkRhdGFUcmFuc2Zlckxlbmd0aCA9IDE2Ow0KPiAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NU
QVRVU19TVUNDRVNTOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lE
DQo+ICBUYXJnZXRSZWFkQ2FwYWNpdHkoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAg
ICAgICAgICBUYXJnZXQsDQo+IC0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBTcmIN
Cj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQsDQo+ICsgICAgSU4gIFBTQ1NJ
X1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFBSRUFEX0NBUEFDSVRZ
X0RBVEEgICAgIENhcGFjaXR5ID0gU3JiLT5EYXRhQnVmZmVyOw0KPiArICAgIFBSRUFEX0NBUEFD
SVRZX0RBVEEgICAgIERhdGEgPSBTcmItPkRhdGFCdWZmZXI7DQo+ICsgICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgTGVuZ3RoID0gU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGg7DQo+ICAgICAgUFhF
TlZCRF9ESVNLSU5GTyAgICAgICAgRGlza0luZm8gPSBGcm9udGVuZEdldERpc2tJbmZvKFRhcmdl
dC0NCj4gPkZyb250ZW5kKTsNCj4gICAgICBVTE9ORzY0ICAgICAgICAgICAgICAgICBTZWN0b3JD
b3VudDsNCj4gICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBTZWN0b3JTaXplOw0KPiAgICAg
IFVMT05HICAgICAgICAgICAgICAgICAgIExhc3RCbG9jazsNCj4gDQo+IC0gICAgaWYgKENkYl9Q
TUkoU3JiKSA9PSAwICYmIENkYl9Mb2dpY2FsQmxvY2soU3JiKSAhPSAwKSB7DQo+IC0gICAgICAg
IFNyYi0+U2NzaVN0YXR1cyA9IDB4MDI7IC8vIENIRUNLX0NPTkRJVElPTg0KPiArICAgIFNyYi0+
U3JiU3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsNCj4gKw0KPiArICAgIGlmIChEYXRhID09IE5V
TEwpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKyAgICBSdGxaZXJvTWVtb3J5KERhdGEsIExlbmd0
aCk7DQo+ICsNCj4gKyAgICBpZiAoTGVuZ3RoIDwgc2l6ZW9mKFJFQURfQ0FQQUNJVFlfREFUQSkp
DQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIGlmIChDZGJfUE1JKFNyYikgPT0gMCAm
JiBDZGJfTG9naWNhbEJsb2NrKFNyYikgIT0gMCkNCj4gICAgICAgICAgcmV0dXJuOw0KPiAtICAg
IH0NCj4gDQo+ICAgICAgU2VjdG9yQ291bnQgPSBEaXNrSW5mby0+U2VjdG9yQ291bnQ7DQo+ICAg
ICAgU2VjdG9yU2l6ZSA9IERpc2tJbmZvLT5TZWN0b3JTaXplOw0KPiBAQCAtNTM1LDIxICs1NjYs
MjEgQEAgVGFyZ2V0UmVhZENhcGFjaXR5KA0KPiAgICAgIGVsc2UNCj4gICAgICAgICAgTGFzdEJs
b2NrID0gfihVTE9ORykwOw0KPiANCj4gLSAgICBpZiAoQ2FwYWNpdHkpIHsNCj4gLSAgICAgICAg
Q2FwYWNpdHktPkxvZ2ljYWxCbG9ja0FkZHJlc3MgPSBfYnl0ZXN3YXBfdWxvbmcoTGFzdEJsb2Nr
KTsNCj4gLSAgICAgICAgQ2FwYWNpdHktPkJ5dGVzUGVyQmxvY2sgPSBfYnl0ZXN3YXBfdWxvbmco
U2VjdG9yU2l6ZSk7DQo+IC0gICAgfQ0KPiArICAgIERhdGEtPkxvZ2ljYWxCbG9ja0FkZHJlc3Mg
PSBfYnl0ZXN3YXBfdWxvbmcoTGFzdEJsb2NrKTsNCj4gKyAgICBEYXRhLT5CeXRlc1BlckJsb2Nr
ID0gX2J5dGVzd2FwX3Vsb25nKFNlY3RvclNpemUpOw0KPiANCj4gKyAgICBTcmItPkRhdGFUcmFu
c2Zlckxlbmd0aCA9IHNpemVvZihSRUFEX0NBUEFDSVRZX0RBVEEpOw0KPiAgICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBERUNMU1BF
Q19OT0lOTElORSBWT0lEDQo+ICBUYXJnZXRSZWFkQ2FwYWNpdHkxNigNCj4gLSAgICBfX2luIFBY
RU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwNCj4gLSAgICBfX2luIFBTQ1NJX1JFUVVF
U1RfQkxPQ0sgICAgIFNyYg0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgICAgIFRhcmdldCwN
Cj4gKyAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmINCj4gICAgICApDQo+ICB7DQo+IC0g
ICAgUFJFQURfQ0FQQUNJVFkxNl9EQVRBICAgQ2FwYWNpdHkgPSBTcmItPkRhdGFCdWZmZXI7DQo+
ICsgICAgUFJFQURfQ0FQQUNJVFkxNl9EQVRBICAgRGF0YSA9IFNyYi0+RGF0YUJ1ZmZlcjsNCj4g
KyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBMZW5ndGggPSBTcmItPkRhdGFUcmFuc2Zlckxl
bmd0aDsNCj4gICAgICBQWEVOVkJEX0RJU0tJTkZPICAgICAgICBEaXNrSW5mbyA9IEZyb250ZW5k
R2V0RGlza0luZm8oVGFyZ2V0LQ0KPiA+RnJvbnRlbmQpOw0KPiAgICAgIFVMT05HNjQgICAgICAg
ICAgICAgICAgIFNlY3RvckNvdW50Ow0KPiAgICAgIFVMT05HICAgICAgICAgICAgICAgICAgIFNl
Y3RvclNpemU7DQo+IEBAIC01NTcsMTAgKzU4OCwxNyBAQCBUYXJnZXRSZWFkQ2FwYWNpdHkxNigN
Cj4gICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBMb2dpY2FsUGVyUGh5c2ljYWw7DQo+ICAg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTG9naWNhbFBlclBoeXNpY2FsRXhwb25lbnQ7DQo+
IA0KPiAtICAgIGlmIChDZGJfUE1JKFNyYikgPT0gMCAmJiBDZGJfTG9naWNhbEJsb2NrKFNyYikg
IT0gMCkgew0KPiAtICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDAyOyAvLyBDSEVDS19DT05E
SVRJT04NCj4gKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7DQo+ICsNCj4g
KyAgICBpZiAoRGF0YSA9PSBOVUxMKQ0KPiArICAgICAgICByZXR1cm47DQo+ICsgICAgUnRsWmVy
b01lbW9yeShEYXRhLCBMZW5ndGgpOw0KPiArDQo+ICsgICAgaWYgKExlbmd0aCA8IHNpemVvZihS
RUFEX0NBUEFDSVRZMTZfREFUQSkpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIGlm
IChDZGJfUE1JKFNyYikgPT0gMCAmJiBDZGJfTG9naWNhbEJsb2NrKFNyYikgIT0gMCkNCj4gICAg
ICAgICAgcmV0dXJuOw0KPiAtICAgIH0NCj4gDQo+ICAgICAgU2VjdG9yQ291bnQgPSBEaXNrSW5m
by0+U2VjdG9yQ291bnQ7DQo+ICAgICAgU2VjdG9yU2l6ZSA9IERpc2tJbmZvLT5TZWN0b3JTaXpl
Ow0KPiBAQCAtNTcxLDEyICs2MDksMTEgQEAgVGFyZ2V0UmVhZENhcGFjaXR5MTYoDQo+ICAgICAg
aWYgKCFfQml0U2NhblJldmVyc2UoJkxvZ2ljYWxQZXJQaHlzaWNhbEV4cG9uZW50LCBMb2dpY2Fs
UGVyUGh5c2ljYWwpKQ0KPiAgICAgICAgICBMb2dpY2FsUGVyUGh5c2ljYWxFeHBvbmVudCA9IDA7
DQo+IA0KPiAtICAgIGlmIChDYXBhY2l0eSkgew0KPiAtICAgICAgICBDYXBhY2l0eS0+TG9naWNh
bEJsb2NrQWRkcmVzcy5RdWFkUGFydCA9DQo+IF9ieXRlc3dhcF91aW50NjQoU2VjdG9yQ291bnQg
LSAxKTsNCj4gLSAgICAgICAgQ2FwYWNpdHktPkJ5dGVzUGVyQmxvY2sgPSBfYnl0ZXN3YXBfdWxv
bmcoU2VjdG9yU2l6ZSk7DQo+IC0gICAgICAgIENhcGFjaXR5LT5Mb2dpY2FsUGVyUGh5c2ljYWxF
eHBvbmVudCA9DQo+IChVQ0hBUilMb2dpY2FsUGVyUGh5c2ljYWxFeHBvbmVudDsNCj4gLSAgICB9
DQo+ICsgICAgRGF0YS0+TG9naWNhbEJsb2NrQWRkcmVzcy5RdWFkUGFydCA9IF9ieXRlc3dhcF91
aW50NjQoU2VjdG9yQ291bnQgLQ0KPiAxKTsNCj4gKyAgICBEYXRhLT5CeXRlc1BlckJsb2NrID0g
X2J5dGVzd2FwX3Vsb25nKFNlY3RvclNpemUpOw0KPiArICAgIERhdGEtPkxvZ2ljYWxQZXJQaHlz
aWNhbEV4cG9uZW50ID0gKFVDSEFSKUxvZ2ljYWxQZXJQaHlzaWNhbEV4cG9uZW50Ow0KPiANCj4g
KyAgICBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9IHNpemVvZihSRUFEX0NBUEFDSVRZMTZfREFU
QSk7DQo+ICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICB9DQo+
IA0KPiBAQCAtNTkyLDYgKzYyOSwxMSBAQCBUYXJnZXRJbnF1aXJ5U3RkKA0KPiAgICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoVGFyZ2V0KTsNCj4gDQo+ICAgICAgU3JiLT5TcmJTdGF0dXMgPSBT
UkJfU1RBVFVTX0VSUk9SOw0KPiArDQo+ICsgICAgaWYgKERhdGEgPT0gTlVMTCkNCj4gKyAgICAg
ICAgcmV0dXJuOw0KPiArICAgIFJ0bFplcm9NZW1vcnkoRGF0YSwgTGVuZ3RoKTsNCj4gKw0KPiAg
ICAgIGlmIChMZW5ndGggPCBJTlFVSVJZREFUQUJVRkZFUlNJWkUpDQo+ICAgICAgICAgIHJldHVy
bjsNCj4gDQo+IEBAIC02MjEsOSArNjYzLDEyIEBAIFRhcmdldElucXVpcnkwMCgNCj4gDQo+ICAg
ICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihUYXJnZXQpOw0KPiANCj4gKyAgICBTcmItPlNyYlN0
YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7DQo+ICsNCj4gKyAgICBpZiAoRGF0YSA9PSBOVUxMKQ0K
PiArICAgICAgICByZXR1cm47DQo+ICAgICAgUnRsWmVyb01lbW9yeShEYXRhLCBMZW5ndGgpOw0K
PiANCj4gLSAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7DQo+ICAgICAgaWYg
KExlbmd0aCA8IDcpDQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+IEBAIC02NDcsMTggKzY5Miwx
OCBAQCBUYXJnZXRJbnF1aXJ5ODAoDQo+ICAgICAgUFZPSUQgICAgICAgICAgICAgICAgICAgUGFn
ZTsNCj4gICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBTaXplOw0KPiANCj4gLSAgICBQYWdl
ID0gRnJvbnRlbmRHZXRJbnF1aXJ5T3ZlcnJpZGUoVGFyZ2V0LT5Gcm9udGVuZCwgMHg4MCwgJlNp
emUpOw0KPiArICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsNCj4gDQo+ICsg
ICAgaWYgKERhdGEgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiAgICAgIFJ0bFplcm9N
ZW1vcnkoRGF0YSwgTGVuZ3RoKTsNCj4gDQo+IC0gICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RB
VFVTX0VSUk9SOw0KPiArICAgIFBhZ2UgPSBGcm9udGVuZEdldElucXVpcnlPdmVycmlkZShUYXJn
ZXQtPkZyb250ZW5kLCAweDgwLCAmU2l6ZSk7DQo+ICAgICAgaWYgKFBhZ2UgJiYgU2l6ZSkgew0K
PiAgICAgICAgICBpZiAoTGVuZ3RoIDwgU2l6ZSkNCj4gICAgICAgICAgICAgIHJldHVybjsNCj4g
DQo+ICAgICAgICAgIFJ0bENvcHlNZW1vcnkoRGF0YSwgUGFnZSwgU2l6ZSk7DQo+IC0NCj4gLSAg
ICAgICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPSBTaXplOw0KPiAgICAgIH0gZWxzZSB7DQo+
ICAgICAgICAgIENIQVIgICAgICAgICAgICAgICAgU2VyaWFsWzVdOw0KPiANCj4gQEAgLTY3Myw5
ICs3MTgsMTAgQEAgVGFyZ2V0SW5xdWlyeTgwKA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCkpOw0KPiAgICAgICAgICBSdGxDb3B5
TWVtb3J5KERhdGEtPlNlcmlhbE51bWJlciwgU2VyaWFsLCA0KTsNCj4gDQo+IC0gICAgICAgIFNy
Yi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gc2l6ZW9mKFZQRF9TRVJJQUxfTlVNQkVSX1BBR0UpICsg
NDsNCj4gKyAgICAgICAgU2l6ZSA9IHNpemVvZihWUERfU0VSSUFMX05VTUJFUl9QQUdFKSArIDQ7
DQo+ICAgICAgfQ0KPiANCj4gKyAgICBTcmItPkRhdGFUcmFuc2Zlckxlbmd0aCA9IFNpemU7DQo+
ICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICB9DQo+IA0KPiBA
QCAtNjkwLDE4ICs3MzYsMTggQEAgVGFyZ2V0SW5xdWlyeTgzKA0KPiAgICAgIFBWT0lEICAgICAg
ICAgICAgICAgICAgICAgICBQYWdlOw0KPiAgICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAg
ICBTaXplOw0KPiANCj4gLSAgICBQYWdlID0gRnJvbnRlbmRHZXRJbnF1aXJ5T3ZlcnJpZGUoVGFy
Z2V0LT5Gcm9udGVuZCwgMHg4MywgJlNpemUpOw0KPiArICAgIFNyYi0+U3JiU3RhdHVzID0gU1JC
X1NUQVRVU19FUlJPUjsNCj4gDQo+ICsgICAgaWYgKERhdGEgPT0gTlVMTCkNCj4gKyAgICAgICAg
cmV0dXJuOw0KPiAgICAgIFJ0bFplcm9NZW1vcnkoRGF0YSwgTGVuZ3RoKTsNCj4gDQo+IC0gICAg
U3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0VSUk9SOw0KPiArICAgIFBhZ2UgPSBGcm9udGVu
ZEdldElucXVpcnlPdmVycmlkZShUYXJnZXQtPkZyb250ZW5kLCAweDgzLCAmU2l6ZSk7DQo+ICAg
ICAgaWYgKFBhZ2UgJiYgU2l6ZSkgew0KPiAgICAgICAgICBpZiAoTGVuZ3RoIDwgU2l6ZSkNCj4g
ICAgICAgICAgICAgIHJldHVybjsNCj4gDQo+ICAgICAgICAgIFJ0bENvcHlNZW1vcnkoRGF0YSwg
UGFnZSwgU2l6ZSk7DQo+IC0NCj4gLSAgICAgICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPSBT
aXplOw0KPiAgICAgIH0gZWxzZSB7DQo+ICAgICAgICAgIFBWUERfSURFTlRJRklDQVRJT05fREVT
Q1JJUFRPUiAgSWQgPQ0KPiAoUFZQRF9JREVOVElGSUNBVElPTl9ERVNDUklQVE9SKSZEYXRhLT5E
ZXNjcmlwdG9yc1swXTsNCj4gICAgICAgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJZGVudGlmaWVyWzE3XTsNCj4gQEAgLTcyMiwxMCArNzY4LDExIEBAIFRhcmdldElucXVpcnk4
MygNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJ
ZChUYXJnZXQpKTsNCj4gICAgICAgICAgUnRsQ29weU1lbW9yeShJZC0+SWRlbnRpZmllciwgSWRl
bnRpZmllciwgMTYpOw0KPiANCj4gLSAgICAgICAgU3JiLT5EYXRhVHJhbnNmZXJMZW5ndGggPSBz
aXplb2YoVlBEX0lERU5USUZJQ0FUSU9OX1BBR0UpICsNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YoVlBEX0lERU5USUZJQ0FUSU9OX0RFU0NSSVBUT1IpICsgMTY7
DQo+ICsgICAgICAgIFNpemUgPSBzaXplb2YoVlBEX0lERU5USUZJQ0FUSU9OX1BBR0UpICsNCj4g
KyAgICAgICAgICAgICAgIHNpemVvZihWUERfSURFTlRJRklDQVRJT05fREVTQ1JJUFRPUikgKyAx
NjsNCj4gICAgICB9DQo+IA0KPiArICAgIFNyYi0+RGF0YVRyYW5zZmVyTGVuZ3RoID0gU2l6ZTsN
Cj4gICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsNCj4gIH0NCj4gDQo+
IEBAIC04NDUsNiArODkyLDEwIEBAIFRhcmdldFN0YXJ0SW8oDQo+ICAgICAgICAgIFRhcmdldE1v
ZGVTZW5zZShUYXJnZXQsIFNyYik7DQo+ICAgICAgICAgIGJyZWFrOw0KPiANCj4gKyAgICBjYXNl
IFNDU0lPUF9NT0RFX1NFTlNFMTA6DQo+ICsgICAgICAgIFRhcmdldE1vZGVTZW5zZTEwKFRhcmdl
dCwgU3JiKTsNCj4gKyAgICAgICAgYnJlYWs7DQo+ICsNCj4gICAgICBjYXNlIFNDU0lPUF9SRVFV
RVNUX1NFTlNFOg0KPiAgICAgICAgICBUYXJnZXRSZXF1ZXN0U2Vuc2UoVGFyZ2V0LCBTcmIpOw0K
PiAgICAgICAgICBicmVhazsNCj4gLS0NCj4gMi44LjMNCj4gDQo+IA0KPiBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwN
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1k
ZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Sun Oct 29 00:52:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Sun, 29 Oct 2017 00:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e8bpj-0006Xu-C2; Sun, 29 Oct 2017 00:52:11 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <mule@inso.org>) id 1e8bpi-0006Xl-0t
 for win-pv-devel@lists.xenproject.org; Sun, 29 Oct 2017 00:52:10 +0000
Received: from [85.158.143.35] by server-5.bemta-6.messagelabs.com id
 C3/8F-29911-93625F95; Sun, 29 Oct 2017 00:52:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCIsWRWlGSWpSXmKPExsVyMXThVl0Lta+
 RBveaxCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxuRpvYwFB4Qqtp/rYW9gXMXfxcjFISQwm1Gi
 cfEWFhCHReATi8TcPQ/YQBwJgR8sEv8evGfuYuQEcqokTnRtZoSwiySOzb7ECmEXSqydNxcsz
 isgKHFy5hMWEFtIwEtiUesysDibgJLE0d0QNouAqkRTxxJ2iPoAickTP4DZwgL6EjMvTQarER
 FwlVh6q5EJxGYW8JE4cvIb+wRGvllIVsxCkoKwNSVat/+GsjUkFtzZxwhha0ssW/iaeQEj6yp
 G9eLUorLUIl1TvaSizPSMktzEzBxdQwMzvdzU4uLE9NScxKRiveT83E2MwPBkAIIdjNMv+x9i
 lORgUhLl3Xf+U6QQX1J+SmVGYnFGfFFpTmrxIUYZDg4lCd45Kl8jhQSLUtNTK9Iyc4CRApOW4
 OBREuGNUwVK8xYXJOYWZ6ZDpE4x2nNcuHPpDxPHgT23gOS+m3eB5LOZrxuYhVjy8vNSpcR5n4
 BMFQBpyyjNgxsKi+xLjLJSwryMQGcK8RSkFuVmlqDKv2IU52BUEub9AjKFJzOvBG73K6CzmID
 O0pD8AnJWSSJCSqqBMWnjTb6g+rOvb/bs39CuPsFc/v++9y9v8JR9vn2nW6Fqw9zNHc7351hW
 9Vdcv//y1gQ9D6aXrN96vlW3vvhyMe1TX92bKS6J8TMvHd7GvSjGpOWPLzf3ldOzfvraPIphO
 c8jNC//jWPtRhae6++/7WnSYfz2tnfqjyeXjfhmBGmySP/dfuvCrBolluKMREMt5qLiRAATBN
 sZ5wIAAA==
X-Env-Sender: mule@inso.org
X-Msg-Ref: server-5.tower-21.messagelabs.com!1509238327!69122372!1
X-Originating-IP: [209.85.161.181]
X-SpamReason: No, hits=1.5 required=7.0 tests=HTML_00_10,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 49439 invoked from network); 29 Oct 2017 00:52:08 -0000
Received: from mail-yw0-f181.google.com (HELO mail-yw0-f181.google.com)
 (209.85.161.181)
 by server-5.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 29 Oct 2017 00:52:08 -0000
Received: by mail-yw0-f181.google.com with SMTP id y75so8716295ywg.0
 for <win-pv-devel@lists.xenproject.org>; Sat, 28 Oct 2017 17:52:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=inso-org.20150623.gappssmtp.com; s=20150623;
 h=mime-version:from:date:message-id:subject:to;
 bh=7A/bPj0ggX8slNO6wnrWZVasJvDMzR9jlxnh+agp0E8=;
 b=gP533fRUZRnNQqOU8LxDjGCr/g1k5pcq19fxuD1BIYcSifGcI/po17/L8WoV8nfPbY
 fwdZbuuThFVHBqKDslUBgTRIhLwtQ6xc3GhFyKIwWPhM4Ssma8kk1g9O8JQ/cfabTDar
 eRwBAQqHazmuwyCJrwyKnDZ4e/BSNZWe/aLK3l3Z53i+knkLvUQLdPgOiW2cWH8Ji4m0
 4ktUnsfnd0r0VHRVhNVNLYb1DsltkeLHXap/43HI2L62hqENI459/FFcehGQ1JnWFHku
 2Mz3e0xoKukPOlhwACQBQbD5n3AChmVtmYgJ8IXL06eDpBwRE8Bdsjn8Yd2rAS35l3d0
 Uq8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=7A/bPj0ggX8slNO6wnrWZVasJvDMzR9jlxnh+agp0E8=;
 b=M4YlIVupwOP99i0KCSmR+Ljqi5NlDV4qvg5E8tVCdf6tjOIBdEowVFj8yP/I3piSFr
 HzjgZvZL85bxg2JACy+tsA7NXGv0zBqiJfRqjDdKaxqZtTq0VOdOcgh+fHt3TlOO32lz
 ZGKJGZbXZxtlzvS6qW30Nk0R9HmF/XGn9U3Dj0nL78U65b/rpEky02rpVRg0cvoxG8Xv
 /ZQrqIYhJ/o27H0tkijkHLdwA3tI8rC/09B8Tzw+woWVgUAslq7NfPJrnEFv1tIDWxB8
 dPE0M49YCbllmmfhsZpyUcfD+9BOJgt/aigKMDvrKrmqo6GLP/haHUSdU6pI63m/7QMM
 JFQA==
X-Gm-Message-State: AMCzsaVixfi0jpOUXI9rIWd4f66q5eixPNyWZ14AVAc2d/OeLU2jNpCp
 ynpiazPme3QN87O4y1EgBcQsMCwWxG+YAuAH3Zqy5Q==
X-Google-Smtp-Source: ABhQp+QnpPvlIbK1EldKLj8lS0Zr2LUKhVV8DfoZWq1CSEKtZqZag4gTBB1ogX5R/d+83A6P2WpYbtxHeWGmyNngj/4=
X-Received: by 10.129.232.9 with SMTP id a9mr3232289ywm.461.1509238327201;
 Sat, 28 Oct 2017 17:52:07 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.208.71 with HTTP; Sat, 28 Oct 2017 17:52:06 -0700 (PDT)
From: Mike Reardon <mule@inso.org>
Date: Sat, 28 Oct 2017 18:52:06 -0600
Message-ID: <CAHt_QQ=3nwLDL+3aExcAv2KqtF9VLLGAETzfHnb7Aya6enXJ1g@mail.gmail.com>
To: xen-users@lists.xenproject.org, win-pv-devel@lists.xenproject.org
Subject: [win-pv-devel] Windows PV drivers with 4K sector size
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============8516132587347833384=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============8516132587347833384==
Content-Type: multipart/alternative; boundary="089e082229745fe731055ca4eeaa"

--089e082229745fe731055ca4eeaa
Content-Type: text/plain; charset="UTF-8"

Hello all,

I added some new 4Kn drives to one of my servers but seem to be having some
trouble getting a Windows VM to work with the drives.  Originally I had
just assigned a new logical volume to the existing guest, but Windows
reported the disk as being 8x larger than it was, and any attempts to
partition it would just throw back IO errors.  Hoping it was just some
limitation of seabios, I created a new VM using ovmf and the disk detected
fine and the install went without issue.  When I then attempted to install
the PV drivers however, the system would no longer boot, and would throw
back Inaccessible Boot Device errors, so I'm guessing my problem in the
original guest was the drivers rather than that bios.

So I guess what I'm getting it as I'm trying to find out if there is a way
to make 4K sector size work for Windows guests using PV drivers.  I'd hate
to have the run the server without using the PV drivers for obvious
performance issues.

Thanks for any insight anyone may have.

--089e082229745fe731055ca4eeaa
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div>Hello all,<br><br></div>I added some new 4K=
n drives to one of my servers but seem to be having some trouble getting a =
Windows VM to work with the drives.=C2=A0 Originally I had just assigned a =
new logical volume to the existing guest, but Windows reported the disk as =
being 8x larger than it was, and any attempts to partition it would just th=
row back IO errors.=C2=A0 Hoping it was just some limitation of seabios, I =
created a new VM using ovmf and the disk detected fine and the install went=
 without issue.=C2=A0 When I then attempted to install the PV drivers howev=
er, the system would no longer boot, and would throw back Inaccessible Boot=
 Device errors, so I&#39;m guessing my problem in the original guest was th=
e drivers rather than that bios.<br><br></div>So I guess what I&#39;m getti=
ng it as I&#39;m trying to find out if there is a way to make 4K sector siz=
e work for Windows guests using PV drivers.=C2=A0 I&#39;d hate to have the =
run the server without using the PV drivers for obvious performance issues.=
<br><br></div>Thanks for any insight anyone may have.<br></div>

--089e082229745fe731055ca4eeaa--


--===============8516132587347833384==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============8516132587347833384==--


From win-pv-devel-bounces@lists.xenproject.org Mon Oct 30 10:47:36 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 30 Oct 2017 10:47:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e97bR-0007Cb-LG; Mon, 30 Oct 2017 10:47:33 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=469f563c5=Paul.Durrant@citrix.com>)
 id 1e97bP-0007CN-Oq; Mon, 30 Oct 2017 10:47:32 +0000
Received: from [193.109.254.147] by server-10.bemta-6.messagelabs.com id
 B3/D6-07499-24307F95; Mon, 30 Oct 2017 10:47:30 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrAKsWRWlGSWpSXmKPExsWSzvfng64T8/d
 Igwe/mSz+LE60eLfvL7MDk8fhD1dYAhijWDPzkvIrElgzTvT3MhW032CuWHL0O1sD48uLzF2M
 nBwSAsESl+YvYwSx2QR0JJYenc/UxcjFISKwgVHi08YzYAlhASeJo3sOMYHYIgLOEv97P7N0M
 XIA2UYSH5s1QcIsAqoSC0/uYQexeQXcJf627QMrFxIIkFi45wwriM0pECix7eVnsL2MArISXx
 pXg9nMAuISt57MZ4K4R0BiyZ7zULeJSrx8/I8VwjaQ2Lp0HwtEfa7Emyu/WSB2CUqcnPmEZQK
 j4Cwko2YhKZuFpGwW0NXMApoS63fpQ5QoSkzpfsgOYWtItM6Zy44svoCRfRWjRnFqUVlqka6R
 qV5SUWZ6RkluYmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRmB8MADBDsZVCwIPMUpyMCmJ8nI1f
 IsU4kvKT6nMSCzOiC8qzUktPsQow8GhJMHrw/Q9UkiwKDU9tSItMwcYqTBpCQ4eJRHeKpA0b3
 FBYm5xZjpE6hSjN8exTZf/MHFMu3kXSG4Ak/vA5JNr8/4ycTyb+bqBWYglLz8vVUqcVwtkhAD
 IiIzSPLgFsIRziVFWSpiXEehkIZ6C1KLczBJU+VeM4hyMSsK8bxmBpvBk5pXA3fEK6EQmoBM1
 JL+AnFiSiJCSamBsnKvp1GlspxDPO0dkap5We7DMnD05hes+PSs2vvxRdf30GXm+HwWC1id4/
 uximCW82TPx9AMR9qOPC59IGhwRSV6TF7gh3fugIE+xWb5uRdxi3Vw9lj3xSwNmVnss2xAiPO
 H4y365pSW3VY7oPN32ueCh4WL34zbfD198rV9m+G8+S2JsiIkSS3FGoqEWc1FxIgACYBZbMwM
 AAA==
X-Env-Sender: prvs=469f563c5=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-27.messagelabs.com!1509360446!112577354!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 59235 invoked from network); 30 Oct 2017 10:47:28 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 30 Oct 2017 10:47:28 -0000
X-IronPort-AV: E=Sophos;i="5.44,319,1505779200"; 
 d="scan'208,217";a="106554035"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Mike Reardon' <mule@inso.org>, "xen-users@lists.xenproject.org"
 <xen-users@lists.xenproject.org>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows PV drivers with 4K sector size
Thread-Index: AQHTUFAy2xW90z5BkEaWJ+25/sVjB6L8Nxow
Date: Mon, 30 Oct 2017 10:47:21 +0000
Message-ID: <9d059193e82c435fba585ff22fac16bf@AMSPEX02CL03.citrite.net>
References: <CAHt_QQ=3nwLDL+3aExcAv2KqtF9VLLGAETzfHnb7Aya6enXJ1g@mail.gmail.com>
In-Reply-To: <CAHt_QQ=3nwLDL+3aExcAv2KqtF9VLLGAETzfHnb7Aya6enXJ1g@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] Windows PV drivers with 4K sector size
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2125491712019314131=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2125491712019314131==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_9d059193e82c435fba585ff22fac16bfAMSPEX02CL03citritenet_"

--_000_9d059193e82c435fba585ff22fac16bfAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGksDQoNCiAgV2hhdCBiYWNrZW5kIGFyZSB5b3UgdXNpbmc/IEJsa2JhY2sgb3IgUUVNVSBxZGlz
az8gSSBiZWxpZXZlIGJsa2JhY2sgbWF5IGhhdmUgZXJyb3JzIGluIHNvbWUgb2YgaXRzIGNhbGN1
bGF0ZWQgc2l6ZXMgaWYgeW91IHVzZSBhIGJsb2NrIHNpemUgb3RoZXIgdGhhbiA1MTIgYnl0ZXMu
IEluIHRoZSBXaW5kb3dzIFBWIGZyb250ZW5kIHRoZSBkcml2ZXIgZ2V0cyBib3RoIHRoZSBzZWN0
b3Igc2l6ZSBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzIGZyb20geGVuc3RvcmUsIHNvIGlmIHRo
ZSBiYWNrZW5kIHJlcG9ydHMgdGhlbSBjb3JyZWN0bHkgdGhlbiB5b3UgKnNob3VsZCogc2VlIGEg
ZGlzayBvZiB0aGUgY29ycmVjdCBzaXplIGluIHRoZSBmcm9udGVuZC4gQ291bGQgeW91IGNoZWNr
IHdoYXQgdmFsdWVzIGFyZSBiZWluZyBzZXQgaW4geGVuc3RvcmU/DQoNCiAgQ2hlZXJzLA0KDQog
ICAgUGF1bA0KDQpGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNl
c0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmIE9mIE1pa2UgUmVhcmRvbg0KU2VudDog
MjkgT2N0b2JlciAyMDE3IDAxOjUyDQpUbzogeGVuLXVzZXJzQGxpc3RzLnhlbnByb2plY3Qub3Jn
OyB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNClN1YmplY3Q6IFt3aW4tcHYtZGV2
ZWxdIFdpbmRvd3MgUFYgZHJpdmVycyB3aXRoIDRLIHNlY3RvciBzaXplDQoNCkhlbGxvIGFsbCwN
CkkgYWRkZWQgc29tZSBuZXcgNEtuIGRyaXZlcyB0byBvbmUgb2YgbXkgc2VydmVycyBidXQgc2Vl
bSB0byBiZSBoYXZpbmcgc29tZSB0cm91YmxlIGdldHRpbmcgYSBXaW5kb3dzIFZNIHRvIHdvcmsg
d2l0aCB0aGUgZHJpdmVzLiAgT3JpZ2luYWxseSBJIGhhZCBqdXN0IGFzc2lnbmVkIGEgbmV3IGxv
Z2ljYWwgdm9sdW1lIHRvIHRoZSBleGlzdGluZyBndWVzdCwgYnV0IFdpbmRvd3MgcmVwb3J0ZWQg
dGhlIGRpc2sgYXMgYmVpbmcgOHggbGFyZ2VyIHRoYW4gaXQgd2FzLCBhbmQgYW55IGF0dGVtcHRz
IHRvIHBhcnRpdGlvbiBpdCB3b3VsZCBqdXN0IHRocm93IGJhY2sgSU8gZXJyb3JzLiAgSG9waW5n
IGl0IHdhcyBqdXN0IHNvbWUgbGltaXRhdGlvbiBvZiBzZWFiaW9zLCBJIGNyZWF0ZWQgYSBuZXcg
Vk0gdXNpbmcgb3ZtZiBhbmQgdGhlIGRpc2sgZGV0ZWN0ZWQgZmluZSBhbmQgdGhlIGluc3RhbGwg
d2VudCB3aXRob3V0IGlzc3VlLiAgV2hlbiBJIHRoZW4gYXR0ZW1wdGVkIHRvIGluc3RhbGwgdGhl
IFBWIGRyaXZlcnMgaG93ZXZlciwgdGhlIHN5c3RlbSB3b3VsZCBubyBsb25nZXIgYm9vdCwgYW5k
IHdvdWxkIHRocm93IGJhY2sgSW5hY2Nlc3NpYmxlIEJvb3QgRGV2aWNlIGVycm9ycywgc28gSSdt
IGd1ZXNzaW5nIG15IHByb2JsZW0gaW4gdGhlIG9yaWdpbmFsIGd1ZXN0IHdhcyB0aGUgZHJpdmVy
cyByYXRoZXIgdGhhbiB0aGF0IGJpb3MuDQpTbyBJIGd1ZXNzIHdoYXQgSSdtIGdldHRpbmcgaXQg
YXMgSSdtIHRyeWluZyB0byBmaW5kIG91dCBpZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIDRLIHNl
Y3RvciBzaXplIHdvcmsgZm9yIFdpbmRvd3MgZ3Vlc3RzIHVzaW5nIFBWIGRyaXZlcnMuICBJJ2Qg
aGF0ZSB0byBoYXZlIHRoZSBydW4gdGhlIHNlcnZlciB3aXRob3V0IHVzaW5nIHRoZSBQViBkcml2
ZXJzIGZvciBvYnZpb3VzIHBlcmZvcm1hbmNlIGlzc3Vlcy4NClRoYW5rcyBmb3IgYW55IGluc2ln
aHQgYW55b25lIG1heSBoYXZlLg0K

--_000_9d059193e82c435fba585ff22fac16bfAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE1Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE1Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDM1MTZDLjc2M0JCQTYwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgRGVmU2VtaUhpZGRlbj0iZmFsc2UiIERlZlFGb3JtYXQ9ImZhbHNl
IiBEZWZQcmlvcml0eT0iOTkiIExhdGVudFN0eWxlQ291bnQ9IjM3MSI+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjAiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5vcm1h
bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0
PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFG
b3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2Vk
PSJ0cnVlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhp
ZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA2Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDciLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcg
OCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVh
ZGluZyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImluZGV4IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iaW5kZXggMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCAzIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9
InRydWUiIE5hbWU9ImluZGV4IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBT
ZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdo
ZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImluZGV4
IDciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggOCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJpbmRleCA5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idG9jIDEiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0b2MgMiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9InRvYyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0idG9jIDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iMzkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0b2Mg
NSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9InRvYyA2Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idG9jIDciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2Vk
PSJ0cnVlIiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSIzOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9
InRvYyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik5vcm1hbCBJbmRlbnQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0i
dHJ1ZSIgTmFtZT0iZm9vdG5vdGUgdGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJhbm5vdGF0
aW9uIHRleHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0
cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaGVhZGVyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9ImZvb3RlciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCBoZWFkaW5nIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM1IiBTZW1pSGlkZGVuPSJ0
cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iY2FwdGlvbiIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0YWJsZSBvZiBmaWd1cmVzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9ImVudmVsb3BlIGFkZHJlc3MiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iZW52ZWxvcGUg
cmV0dXJuIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImZvb3Rub3RlIHJlZmVyZW5jZSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJhbm5vdGF0aW9uIHJlZmVyZW5jZSIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJsaW5lIG51bWJlciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlI
aWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJwYWdlIG51bWJlciIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdo
ZW5Vc2VkPSJ0cnVlIiBOYW1lPSJlbmRub3RlIHJlZmVyZW5jZSIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJlbmRub3RlIHRleHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idGFibGUgb2YgYXV0aG9y
aXRpZXMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVl
IiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0ibWFjcm8iLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0idG9hIGhlYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJMaXN0IEJ1bGxldCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IE51bWJl
ciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
TGlzdCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJMaXN0IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBCdWxsZXQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJMaXN0IEJ1bGxldCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxp
c3QgQnVsbGV0IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBCdWxsZXQgNSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJMaXN0IE51bWJlciAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxp
c3QgTnVtYmVyIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBOdW1iZXIgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJMaXN0IE51bWJlciA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjEwIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUaXRsZSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJDbG9zaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlNpZ25hdHVy
ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iRGVmYXVsdCBQYXJhZ3JhcGgg
Rm9udCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iQm9keSBUZXh0IEluZGVudCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IENvbnRp
bnVlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgQ29udGludWUgMiIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJMaXN0IENvbnRpbnVlIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBD
b250aW51ZSA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgQ29udGludWUgNSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJNZXNzYWdlIEhlYWRlciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIxMSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGl0bGUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iU2FsdXRhdGlvbiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJE
YXRlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJvZHkgVGV4dCBGaXJzdCBJbmRlbnQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVu
VXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBUZXh0IEZpcnN0IEluZGVudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRy
dWUiIE5hbWU9Ik5vdGUgSGVhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQg
MiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQgMyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJCb2R5IFRleHQgSW5kZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBUZXh0
IEluZGVudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJsb2NrIFRleHQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0i
dHJ1ZSIgTmFtZT0iSHlwZXJsaW5rIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkZvbGxvd2VkSHlw
ZXJsaW5rIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIyIiBR
Rm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iMjAiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVz
ZWQ9InRydWUiIE5hbWU9IkRvY3VtZW50IE1hcCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJQbGFp
biBUZXh0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkUtbWFpbCBTaWduYXR1cmUiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iSFRNTCBUb3Agb2YgRm9ybSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJI
VE1MIEJvdHRvbSBvZiBGb3JtIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik5vcm1hbCAoV2ViKSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJIVE1MIEFjcm9ueW0iLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iSFRNTCBBZGRyZXNzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkhUTUwgQ2l0ZSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJIVE1MIENvZGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iSFRNTCBE
ZWZpbml0aW9uIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkhUTUwgS2V5Ym9hcmQiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iSFRNTCBQcmVmb3JtYXR0ZWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
SFRNTCBTYW1wbGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iSFRNTCBUeXBld3JpdGVyIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9IkhUTUwgVmFyaWFibGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
Tm9ybWFsIFRhYmxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRl
bj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImFubm90YXRpb24gc3ViamVjdCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJObyBMaXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik91
dGxpbmUgTGlzdCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRl
bj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik91dGxpbmUgTGlzdCAyIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9Ik91dGxpbmUgTGlzdCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9
IlRhYmxlIFNpbXBsZSAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFNpbXBsZSAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFNpbXBsZSAzIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5h
bWU9IlRhYmxlIENsYXNzaWMgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNl
bWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBDbGFzc2lj
IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ2xhc3NpYyAzIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRy
dWUiIE5hbWU9IlRhYmxlIENsYXNzaWMgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBD
b2xvcmZ1bCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENvbG9yZnVsIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVu
VXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29sb3JmdWwgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJUYWJsZSBDb2x1bW5zIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29sdW1ucyAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENvbHVtbnMgMyIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVl
IiBOYW1lPSJUYWJsZSBDb2x1bW5zIDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29s
dW1ucyA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdyaWQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJUYWJsZSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgR3Jp
ZCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdyaWQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVl
IiBOYW1lPSJUYWJsZSBHcmlkIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBT
ZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgR3JpZCA2
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdyaWQgNyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJUYWJsZSBHcmlkIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgTGlzdCAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJUYWJsZSBMaXN0IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgTGlzdCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJU
YWJsZSBMaXN0IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgTGlzdCA3Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVz
ZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJs
ZSAzRCBlZmZlY3RzIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgM0QgZWZmZWN0cyAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIDNEIGVmZmVjdHMgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJUYWJsZSBDb250ZW1wb3JhcnkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFi
bGUgRWxlZ2FudCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBQcm9mZXNzaW9uYWwiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgU3VidGxlIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iVGFibGUgU3VidGxlIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgV2ViIDEiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgV2ViIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
VGFibGUgV2ViIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQmFsbG9vbiBUZXh0Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJUYWJsZSBHcmlk
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFRoZW1lIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgTmFtZT0iUGxhY2Vob2xkZXIgVGV4dCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBRRm9ybWF0PSJ0
cnVlIiBOYW1lPSJObyBTcGFjaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYwIiBOYW1lPSJMaWdodCBTaGFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBOYW1lPSJMaWdodCBHcmlkIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBOYW1lPSJNZWRpdW0g
U2hhZGluZyAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0
IiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjY1IiBOYW1lPSJNZWRpdW0gTGlzdCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJNZWRpdW0gTGlzdCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3Jp
ZCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBOYW1l
PSJNZWRpdW0gR3JpZCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY5IiBOYW1lPSJNZWRpdW0gR3JpZCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmciLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIE5hbWU9IkNvbG9yZnVs
IExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5h
bWU9IkNvbG9yZnVsIEdyaWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjAiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIg
QWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUi
IE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBOYW1lPSJSZXZpc2lvbiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNCIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iTGlz
dCBQYXJhZ3JhcGgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MjkiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlF1b3RlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjMwIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFF1b3Rl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFj
Y2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBO
YW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRp
bmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NzIiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDEiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIE5hbWU9IkxpZ2h0
IFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDIiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIE5hbWU9Ik1lZGl1
bSBTaGFkaW5nIDEgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIE5hbWU9Ik1lZGl1bSBMaXN0IDEg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYi
IE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNjciIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIE5hbWU9Ik1lZGl1bSBH
cmlkIDIgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjkiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2Nl
bnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgTmFt
ZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2MSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgTmFtZT0iTGlnaHQgR3JpZCBBY2Nl
bnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgTmFt
ZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2NCIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgTmFtZT0iTWVkaXVt
IExpc3QgMSBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NiIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgTmFtZT0i
TWVkaXVtIEdyaWQgMiBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgTmFtZT0iRGFyayBMaXN0IEFjY2Vu
dCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBOYW1l
PSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcyIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAzIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBOYW1lPSJDb2xvcmZ1bCBH
cmlkIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYwIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2Vu
dCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBOYW1l
PSJNZWRpdW0gTGlzdCAxIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3JpZCAx
IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4
IiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExp
c3QgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDQi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5hbWU9IkNv
bG9yZnVsIEdyaWQgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjAiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9
IkxpZ2h0IEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjMiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDUiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5n
IDIgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjUiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIE5hbWU9
IkRhcmsgTGlzdCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgTmFtZT0iQ29sb3JmdWwgTGlzdCBB
Y2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIg
TmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MCIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgTmFtZT0iTGlnaHQgTGlz
dCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
MiIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MyIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgTmFtZT0iTWVkaXVt
IFNoYWRpbmcgMiBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2NSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2Nl
bnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgTmFt
ZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2OCIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgTmFtZT0iTWVkaXVtIEdyaWQg
MyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MCIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcxIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA2Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBOYW1lPSJDb2xvcmZ1
bCBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjczIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjE5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUg
RW1waGFzaXMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjEi
IFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgRW1waGFzaXMiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzEiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1YnRs
ZSBSZWZlcmVuY2UiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MzIiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMzIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJC
b29rIFRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM3
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQmlibGlvZ3Jh
cGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
VE9DIEhlYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NDEiIE5hbWU9IlBsYWluIFRhYmxlIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNDIiIE5hbWU9IlBsYWluIFRhYmxlIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDMiIE5hbWU9IlBsYWluIFRhYmxlIDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDQiIE5hbWU9IlBsYWluIFRhYmxl
IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDUiIE5hbWU9
IlBsYWluIFRhYmxlIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNDAiIE5hbWU9IkdyaWQgVGFibGUgTGlnaHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJH
cmlkIFRhYmxlIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NDkiIE5hbWU9IkdyaWQgVGFibGUgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1IERhcmsiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1
bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0i
R3JpZCBUYWJsZSA3IENvbG9yZnVsIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFibGUg
MiBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0
OCIgTmFtZT0iR3JpZCBUYWJsZSAzIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQgQWNjZW50IDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFi
bGUgNSBEYXJrIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9IkdyaWQgVGFibGUg
NyBDb2xvcmZ1bCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI0NiIgTmFtZT0iR3JpZCBUYWJsZSAxIExpZ2h0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJHcmlkIFRhYmxlIDIg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgi
IE5hbWU9IkdyaWQgVGFibGUgMyBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFtZT0iR3JpZCBUYWJsZSA0IEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJHcmlkIFRhYmxl
IDUgRGFyayBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI1MSIgTmFtZT0iR3JpZCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJHcmlkIFRhYmxlIDcg
Q29sb3JmdWwgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAyIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBO
YW1lPSJHcmlkIFRhYmxlIDMgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNDkiIE5hbWU9IkdyaWQgVGFibGUgNCBBY2NlbnQgMyIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1
IERhcmsgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNTEiIE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iR3JpZCBUYWJsZSA3IENv
bG9yZnVsIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFibGUgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFt
ZT0iR3JpZCBUYWJsZSAzIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQgQWNjZW50IDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFibGUgNSBE
YXJrIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9IkdyaWQgVGFibGUgNyBDb2xv
cmZ1bCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI0NiIgTmFtZT0iR3JpZCBUYWJsZSAxIExpZ2h0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJHcmlkIFRhYmxlIDIgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9
IkdyaWQgVGFibGUgMyBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI0OSIgTmFtZT0iR3JpZCBUYWJsZSA0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJHcmlkIFRhYmxlIDUgRGFy
ayBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1
MSIgTmFtZT0iR3JpZCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJHcmlkIFRhYmxlIDcgQ29sb3Jm
dWwgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAyIEFjY2VudCA2
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJH
cmlkIFRhYmxlIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNDkiIE5hbWU9IkdyaWQgVGFibGUgNCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1IERhcmsg
QWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEi
IE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iR3JpZCBUYWJsZSA3IENvbG9yZnVs
IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2
IiBOYW1lPSJMaXN0IFRhYmxlIDEgTGlnaHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJMaXN0IFRhYmxl
IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9
Ikxpc3QgVGFibGUgNSBEYXJrIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRhYmxlIDYgQ29sb3JmdWwiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1
bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NiIgTmFtZT0i
TGlzdCBUYWJsZSAxIExpZ2h0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUg
MyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0
OSIgTmFtZT0iTGlzdCBUYWJsZSA0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJMaXN0IFRhYmxlIDUgRGFyayBBY2NlbnQgMSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MSIgTmFtZT0iTGlz
dCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29sb3JmdWwgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9Ikxp
c3QgVGFibGUgMSBMaWdodCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iTGlzdCBUYWJsZSAyIEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJMaXN0IFRhYmxlIDMg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDki
IE5hbWU9Ikxpc3QgVGFibGUgNCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iTGlzdCBUYWJsZSA1IERhcmsgQWNjZW50IDIiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9Ikxpc3Qg
VGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iTGlzdCBUYWJsZSA3IENvbG9yZnVsIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1lPSJMaXN0
IFRhYmxlIDEgTGlnaHQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBO
YW1lPSJMaXN0IFRhYmxlIDQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9Ikxpc3QgVGFibGUgNSBEYXJrIEFjY2VudCAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRh
YmxlIDYgQ29sb3JmdWwgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1bCBBY2NlbnQgMyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NiIgTmFtZT0iTGlzdCBU
YWJsZSAxIExpZ2h0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUgMyBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFt
ZT0iTGlzdCBUYWJsZSA0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJMaXN0IFRhYmxlIDUgRGFyayBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MSIgTmFtZT0iTGlzdCBUYWJs
ZSA2IENvbG9yZnVsIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29sb3JmdWwgQWNjZW50IDQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9Ikxpc3QgVGFi
bGUgMSBMaWdodCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI0NyIgTmFtZT0iTGlzdCBUYWJsZSAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJMaXN0IFRhYmxlIDMgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDkiIE5hbWU9
Ikxpc3QgVGFibGUgNCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI1MCIgTmFtZT0iTGlzdCBUYWJsZSA1IERhcmsgQWNjZW50IDUiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9Ikxpc3QgVGFibGUg
NiBDb2xvcmZ1bCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI1MiIgTmFtZT0iTGlzdCBUYWJsZSA3IENvbG9yZnVsIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1lPSJMaXN0IFRhYmxl
IDEgTGlnaHQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIEFjY2VudCA2
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJM
aXN0IFRhYmxlIDQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNTAiIE5hbWU9Ikxpc3QgVGFibGUgNSBEYXJrIEFjY2VudCA2Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRhYmxlIDYg
Q29sb3JmdWwgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1bCBBY2NlbnQgNiIvPg0KPC93Okxh
dGVudFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmlu
aXRpb25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBh
bm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDoxOw0KCW1zby1n
ZW5lcmljLWZvbnQtZmFtaWx5OnJvbWFuOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1z
by1mb250LXNpZ25hdHVyZTowIDAgMCAwIDAgMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5
OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtY2hh
cnNldDowOw0KCW1zby1nZW5lcmljLWZvbnQtZmFtaWx5OnN3aXNzOw0KCW1zby1mb250LXBpdGNo
OnZhcmlhYmxlOw0KCW1zby1mb250LXNpZ25hdHVyZTotNTM2ODU5OTA1IC0xMDczNzMyNDg1IDkg
MCA1MTEgMDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05v
cm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1zdHlsZS1x
Zm9ybWF0OnllczsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2lu
LWJvdHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNp
emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmOw0KCW1zby1m
YXJlYXN0LWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0K
CXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
IzA1NjNDMTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCXRleHQtdW5kZXJsaW5lOnNp
bmdsZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxl
LW5vc2hvdzp5ZXM7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJ
dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0LXVuZGVybGluZTpzaW5nbGU7fQ0KcC5t
c29ub3JtYWwwLCBsaS5tc29ub3JtYWwwLCBkaXYubXNvbm9ybWFsMA0KCXttc28tc3R5bGUtbmFt
ZTptc29ub3JtYWw7DQoJbXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0K
CW1hcmdpbi1sZWZ0OjBjbTsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1z
aXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjsNCgltc28t
ZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1z
dHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1z
dHlsZS11bmhpZGU6bm87DQoJbXNvLWFuc2ktZm9udC1zaXplOjExLjBwdDsNCgltc28tYmlkaS1m
b250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCW1z
by1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OkNh
bGlicmk7DQoJbXNvLWhhbnNpLWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJbXNvLWJpZGktZm9udC1m
YW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLlNwZWxsRQ0K
CXttc28tc3R5bGUtbmFtZToiIjsNCgltc28tc3BsLWU6eWVzO30NCi5Nc29DaHBEZWZhdWx0DQoJ
e21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCW1zby1kZWZhdWx0LXByb3BzOnllczsNCglm
b250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6
Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9t
YW4iOw0KCW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0K
CXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIu
MHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsNCgltc28tZm9vdGVyLW1hcmdpbjozNi4w
cHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3Jk
U2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gMTBdPjxzdHlsZT4vKiBTdHls
ZSBEZWZpbml0aW9ucyAqLw0KdGFibGUuTXNvTm9ybWFsVGFibGUNCgl7bXNvLXN0eWxlLW5hbWU6
IlRhYmxlIE5vcm1hbCI7DQoJbXNvLXRzdHlsZS1yb3diYW5kLXNpemU6MDsNCgltc28tdHN0eWxl
LWNvbGJhbmQtc2l6ZTowOw0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlv
cml0eTo5OTsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1zby1wYWRkaW5nLWFsdDowY20gNS40
cHQgMGNtIDUuNHB0Ow0KCW1zby1wYXJhLW1hcmdpbjowY207DQoJbXNvLXBhcmEtbWFyZ2luLWJv
dHRvbTouMDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6
MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCW1zby1hc2NpaS1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1z
by1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOw0KCW1zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTO30NCjwvc3R5bGU+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+
DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+
PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4
dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxh
eW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLUdCIiBsaW5r
PSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiIgc3R5bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0K
PGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkhpLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3
ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1iaWRpLWZvbnQtZmFtaWx5OiZx
dW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmki
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t
YW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4g
c3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPldoYXQgYmFja2VuZCBhcmUg
eW91IHVzaW5nPyA8c3BhbiBjbGFzcz0iU3BlbGxFIj5CbGtiYWNrPC9zcGFuPiBvciBRRU1VIDxz
cGFuIGNsYXNzPSJTcGVsbEUiPg0KcWRpc2s8L3NwYW4+PyBJIGJlbGlldmUgPHNwYW4gY2xhc3M9
IlNwZWxsRSI+YmxrYmFjazwvc3Bhbj4gbWF5IGhhdmUgZXJyb3JzIGluIHNvbWUgb2YgaXRzIGNh
bGN1bGF0ZWQgc2l6ZXMgaWYgeW91IHVzZSBhIGJsb2NrIHNpemUgb3RoZXIgdGhhbiA1MTIgYnl0
ZXMuIEluIHRoZSBXaW5kb3dzIFBWIGZyb250ZW5kIHRoZSBkcml2ZXIgZ2V0cyBib3RoIHRoZSBz
ZWN0b3Igc2l6ZSBhbmQgdGhlIG51bWJlciBvZiBzZWN0b3JzIGZyb20NCjxzcGFuIGNsYXNzPSJT
cGVsbEUiPnhlbnN0b3JlPC9zcGFuPiwgc28gaWYgdGhlIGJhY2tlbmQgcmVwb3J0cyB0aGVtIGNv
cnJlY3RseSB0aGVuIHlvdSAqPGI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPnNob3Vs
ZDwvc3Bhbj48L2I+KiBzZWUgYSBkaXNrIG9mIHRoZSBjb3JyZWN0IHNpemUgaW4gdGhlIGZyb250
ZW5kLiBDb3VsZCB5b3UgY2hlY2sgd2hhdCB2YWx1ZXMgYXJlIGJlaW5nIHNldCBpbg0KPHNwYW4g
Y2xhc3M9IlNwZWxsRSI+eGVuc3RvcmU8L3NwYW4+PzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90
O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4m
cXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5
bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9zcGFuPkNoZWVycyw8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29s
b3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tYmlkaS1mb250
LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGlt
ZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4t
VVMiPjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwv
c3Bhbj5QYXVsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVm
dDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxk
aXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRk
aW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxmb250IHNp
emU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxh
bmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJvbGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PGZv
bnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtt
c28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFu
c2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1kZXZlbC1i
b3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSA8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6
Ym9sZCI+T24gQmVoYWxmIE9mDQo8L3NwYW4+PC9iPk1pa2UgUmVhcmRvbjxicj4NCjxiPjxzcGFu
IHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TZW50Ojwvc3Bhbj48L2I+IDI5IE9jdG9iZXIgMjAx
NyAwMTo1Mjxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+
PC9iPiB4ZW4tdXNlcnNAbGlzdHMueGVucHJvamVjdC5vcmc7IHdpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJq
ZWN0Ojwvc3Bhbj48L2I+IFt3aW4tcHYtZGV2ZWxdIFdpbmRvd3MgUFYgZHJpdmVycyB3aXRoIDRL
IHNlY3RvciBzaXplPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9t
YW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0i
VGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGVsbG8gYWxs
LDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGlt
ZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SSBhZGRlZCBzb21l
IG5ldyA0S24gZHJpdmVzIHRvIG9uZSBvZiBteSBzZXJ2ZXJzIGJ1dCBzZWVtIHRvIGJlIGhhdmlu
ZyBzb21lIHRyb3VibGUgZ2V0dGluZyBhIFdpbmRvd3MgVk0gdG8gd29yayB3aXRoIHRoZSBkcml2
ZXMuJm5ic3A7IE9yaWdpbmFsbHkNCiBJIGhhZCBqdXN0IGFzc2lnbmVkIGEgbmV3IGxvZ2ljYWwg
dm9sdW1lIHRvIHRoZSBleGlzdGluZyBndWVzdCwgYnV0IFdpbmRvd3MgcmVwb3J0ZWQgdGhlIGRp
c2sgYXMgYmVpbmcgOHggbGFyZ2VyIHRoYW4gaXQgd2FzLCBhbmQgYW55IGF0dGVtcHRzIHRvIHBh
cnRpdGlvbiBpdCB3b3VsZCBqdXN0IHRocm93IGJhY2sgSU8gZXJyb3JzLiZuYnNwOyBIb3Bpbmcg
aXQgd2FzIGp1c3Qgc29tZSBsaW1pdGF0aW9uIG9mIHNlYWJpb3MsIEkgY3JlYXRlZCBhIG5ldw0K
IFZNIHVzaW5nIG92bWYgYW5kIHRoZSBkaXNrIGRldGVjdGVkIGZpbmUgYW5kIHRoZSBpbnN0YWxs
IHdlbnQgd2l0aG91dCBpc3N1ZS4mbmJzcDsgV2hlbiBJIHRoZW4gYXR0ZW1wdGVkIHRvIGluc3Rh
bGwgdGhlIFBWIGRyaXZlcnMgaG93ZXZlciwgdGhlIHN5c3RlbSB3b3VsZCBubyBsb25nZXIgYm9v
dCwgYW5kIHdvdWxkIHRocm93IGJhY2sgSW5hY2Nlc3NpYmxlIEJvb3QgRGV2aWNlIGVycm9ycywg
c28gSSdtIGd1ZXNzaW5nIG15IHByb2JsZW0gaW4gdGhlDQogb3JpZ2luYWwgZ3Vlc3Qgd2FzIHRo
ZSBkcml2ZXJzIHJhdGhlciB0aGFuIHRoYXQgYmlvcy48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTox
Mi4wcHQiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPlNvIEkgZ3Vlc3Mgd2hhdCBJJ20gZ2V0dGluZyBpdCBhcyBJJ20g
dHJ5aW5nIHRvIGZpbmQgb3V0IGlmIHRoZXJlIGlzIGEgd2F5IHRvIG1ha2UgNEsgc2VjdG9yIHNp
emUgd29yayBmb3IgV2luZG93cyBndWVzdHMgdXNpbmcgUFYgZHJpdmVycy4mbmJzcDsNCiBJJ2Qg
aGF0ZSB0byBoYXZlIHRoZSBydW4gdGhlIHNlcnZlciB3aXRob3V0IHVzaW5nIHRoZSBQViBkcml2
ZXJzIGZvciBvYnZpb3VzIHBlcmZvcm1hbmNlIGlzc3Vlcy48bzpwPjwvbzpwPjwvc3Bhbj48L2Zv
bnQ+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5UaGFua3Mg
Zm9yIGFueSBpbnNpZ2h0IGFueW9uZSBtYXkgaGF2ZS48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_9d059193e82c435fba585ff22fac16bfAMSPEX02CL03citritenet_--


--===============2125491712019314131==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============2125491712019314131==--


From win-pv-devel-bounces@lists.xenproject.org Mon Oct 30 17:23:38 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 30 Oct 2017 17:23:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e9Dmh-0004qB-3z; Mon, 30 Oct 2017 17:23:35 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <mule@inso.org>) id 1e9Dmf-0004pt-Ei
 for win-pv-devel@lists.xenproject.org; Mon, 30 Oct 2017 17:23:33 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 96/86-14867-41067F95; Mon, 30 Oct 2017 17:23:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplleJIrShJLcpLzFFi42K5GLpwg65wwvd
 Ig1frJC3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxp2G64wFXQUVp44vZ25gvJbUxcjJISQwj1Hi
 2mvfLkYuDhaBaawSGzsnMYIkJATmsEocXC8AYVdJ/HiwiQXCLpJ43L8PqqZYYvHfB2BxXgFBi
 ZMzn7BADPWSuDd3F1gNp4CHxNxtC1lBFggJ9DJKXF96jhkkwSagJHF09zKwIhYBVYm+/VeZIA
 YFSKx9f4odxBYWcJK4d/w5G4gtIqAlMWHLViaQQcwCExglZu+5ywqSYBbwkWi8388+gVFwFpJ
 DZiFJQdiaEq3bf0PZGhIL7uxjhLC1JZYtfM28gJF1FaNGcWpRWWqRrpGlXlJRZnpGSW5iZo6u
 oYGZXm5qcXFiempOYlKxXnJ+7iZGYKAzAMEOxgOLAg8xSnIwKYny7nT8HinEl5SfUpmRWJwRX
 1Sak1p8iFGGg0NJgvdTHFBOsCg1PbUiLTMHGHMwaQkOHiURXv94oDRvcUFibnFmOkTqFKM3x4
 U7l/4wcRzbdBlIHthzC0huuHkXSO4Dk89mvm5gFmLJy89LlRLnrQMZIQAyIqM0D24BLHVcYpS
 VEuZlBDpZiKcgtSg3swRV/hWjOAejkjCvJcgUnsy8Erg7XgGdyAR0oobkF5ATSxIRUlINjLI3
 k54WHVvwq//kndYMDlVVnTyDCUlXpnYaJ224O2en2kRH6YPiLgH7bWZMYO3tmxG49ZTsxBMLZ
 eO7tj5tEXWqn7PsusprgdQ1pwr+1iYvnMyczdj927+r/49LdofX8fsH/bfZ2ulfa77aPzHm5K
 vdiiU/W89+LS0ttLy378vjxZ3N3y3EVyqxFGckGmoxFxUnAgD4Nu1/GAMAAA==
X-Env-Sender: mule@inso.org
X-Msg-Ref: server-4.tower-21.messagelabs.com!1509384210!73143365!1
X-Originating-IP: [209.85.161.176]
X-SpamReason: No, hits=0.4 required=7.0 tests=HTML_50_60,HTML_MESSAGE,
 RCVD_BY_IP
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 45613 invoked from network); 30 Oct 2017 17:23:31 -0000
Received: from mail-yw0-f176.google.com (HELO mail-yw0-f176.google.com)
 (209.85.161.176)
 by server-4.tower-21.messagelabs.com with AES128-GCM-SHA256 encrypted SMTP;
 30 Oct 2017 17:23:31 -0000
Received: by mail-yw0-f176.google.com with SMTP id q126so12236396ywq.10
 for <win-pv-devel@lists.xenproject.org>; Mon, 30 Oct 2017 10:23:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=inso-org.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=/nmSOGqTpEV5QFU8iLkp7TrfGLGzKM+MsA6lfXvkMwQ=;
 b=ub34Sct4loQ0LMH3wG6Dw+p6zNgEhTruLDE00G1b0ByO0n5IWxBXIUZxvFCWHbjmON
 B1zV/b9VH3jlZc7nUmCPQ/S1cQREvDh8+roy1nkgA9N/AojgzAYrNM9LBRyoxHzNapO/
 wuQFyDwQkdFtxCsGLQBEcYYSTZjt7VXXrGbMEdIX7NmHNTKKDIZOSdgmZ1r9RdDtXKd3
 s5MdmrgF1SUPMDuYUnw8amCzRQ/uyW+XcTrWI5FTDqx9xDQV8kUe3iQ3KxplIlGC7Tsp
 asbFLjVGFhO4McXl60NBsspyYbXTk3ts2hAdOL4XrAqHFY5LyrHTssolJt22DF4N3IW/
 ZNVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=/nmSOGqTpEV5QFU8iLkp7TrfGLGzKM+MsA6lfXvkMwQ=;
 b=mgE+hpmOi0uW0X6klsbziuVI0eicERbawY4jeQnH2xYuJ8uohfC8T5/aqSNKN1t4Et
 mas8ueH2RHCtyffKdrmEQBpKheGnUs8MCtFIIgPpwfSOo/Yfy0U7qht3pE3z0qFW26qr
 kziskPz6ZA0b+ZhYE8aE+FrdDe2Qt/1bL+H8m7v4298tIyEu21uR1zgbCtNfqtAjlXew
 vj6BULMG11lrTD7z4vyIfsPWN9jd/jGoKvEIwIoxBRkbg2HzVbHzmG8FgYI4Ixqf0iXf
 llc1Fh2T1tR/C01JZJn5x7TcDQ+1+4q5nUWnifGlV3BIHa34Ec8xs+4ZrBzRLweeaNgJ
 i5Og==
X-Gm-Message-State: AMCzsaUqZe/jhHY3HtyOPwnytSxU1RiWU458LSt7WUpoUN7X5Ghs4LNK
 a4l6yghgRJd2fOlH8VebrWu1NFEKIJj30Cg7Fz6OFA==
X-Google-Smtp-Source: ABhQp+Sy+SHahq1uVrSyS2aKpC02pMSE11Jan3TtF6+nZGJby6QqpcSXKeEU8AqvQ1PjkznyhIcPihPdcN70tqtkiTY=
X-Received: by 10.37.173.157 with SMTP id z29mr6489328ybi.215.1509384210131;
 Mon, 30 Oct 2017 10:23:30 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.13.208.71 with HTTP; Mon, 30 Oct 2017 10:23:29 -0700 (PDT)
In-Reply-To: <9d059193e82c435fba585ff22fac16bf@AMSPEX02CL03.citrite.net>
References: <CAHt_QQ=3nwLDL+3aExcAv2KqtF9VLLGAETzfHnb7Aya6enXJ1g@mail.gmail.com>
 <9d059193e82c435fba585ff22fac16bf@AMSPEX02CL03.citrite.net>
From: Mike Reardon <mule@inso.org>
Date: Mon, 30 Oct 2017 11:23:29 -0600
Message-ID: <CAHt_QQkbRUKaxBKAkhFH0+ePdHs7cPh19S9nOCFmakEJFZ0u6g@mail.gmail.com>
To: Paul Durrant <Paul.Durrant@citrix.com>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows PV drivers with 4K sector size
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============7919851402714525328=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============7919851402714525328==
Content-Type: multipart/alternative; boundary="f403045db85eacbff9055cc6e535"

--f403045db85eacbff9055cc6e535
Content-Type: text/plain; charset="UTF-8"

Hi Paul,

I suspect its probably blkback.. I haven't passed anything on to the guest
to specify so it would be whichever the default is (the disk line from the
config reads as 'phy:/dev/tv_storage/main-storage,xvda,w'.)

I think I've come across the problem though in looking at the values from
xenstore, though I'm not sure as to why this is happening.  Here is the
section from xenstore-ls for the relevant LV:

      51712 = ""
       frontend = "/local/domain/39/device/vbd/51712"
       params = "/dev/tv_storage/main-storage"
       script = "/etc/xen/scripts/block"
       frontend-id = "39"
       online = "1"
       removable = "0"
       bootable = "1"
       state = "2"
       dev = "xvda"
       type = "phy"
       mode = "w"
       device-type = "disk"
       discard-enable = "1"
       feature-max-indirect-segments = "256"
       multi-queue-max-queues = "12"
       max-ring-page-order = "4"
       physical-device = "fe:0"
       physical-device-path = "/dev/dm-0"
       hotplug-status = "connected"
       feature-flush-cache = "1"
       feature-discard = "0"
       feature-barrier = "1"
       feature-persistent = "1"
       sectors = "34359738368"
       info = "0"
       sector-size = "4096"
       physical-sector-size = "4096"

The number of sectors seemed a bit high so I checked it against fdisk:
Disk /dev/tv_storage/main-storage: 16 TiB, 17592186044416 bytes, 4294967296
sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device                        Boot Start        End    Sectors Size Id Type
/dev/tv_storage/main-storage1          1 4294967295 4294967295  16T ee GPT

So it looks like Xen is getting the sector size correct and its actually
the number of sectors reported from xenstore that is 8x higher than it
should be.

Mike


On Mon, Oct 30, 2017 at 4:47 AM, Paul Durrant <Paul.Durrant@citrix.com>
wrote:

> Hi,
>
>
>
>   What backend are you using? Blkback or QEMU qdisk? I believe blkback
> may have errors in some of its calculated sizes if you use a block size
> other than 512 bytes. In the Windows PV frontend the driver gets both the
> sector size and the number of sectors from xenstore, so if the backend
> reports them correctly then you **should** see a disk of the correct size
> in the frontend. Could you check what values are being set in xenstore?
>
>
>
>   Cheers,
>
>
>
>     Paul
>
>
>
> *From:* win-pv-devel [mailto:win-pv-devel-bounces@lists.xenproject.org] *On
> Behalf Of *Mike Reardon
> *Sent:* 29 October 2017 01:52
> *To:* xen-users@lists.xenproject.org; win-pv-devel@lists.xenproject.org
> *Subject:* [win-pv-devel] Windows PV drivers with 4K sector size
>
>
>
> Hello all,
>
> I added some new 4Kn drives to one of my servers but seem to be having
> some trouble getting a Windows VM to work with the drives.  Originally I
> had just assigned a new logical volume to the existing guest, but Windows
> reported the disk as being 8x larger than it was, and any attempts to
> partition it would just throw back IO errors.  Hoping it was just some
> limitation of seabios, I created a new VM using ovmf and the disk detected
> fine and the install went without issue.  When I then attempted to install
> the PV drivers however, the system would no longer boot, and would throw
> back Inaccessible Boot Device errors, so I'm guessing my problem in the
> original guest was the drivers rather than that bios.
>
> So I guess what I'm getting it as I'm trying to find out if there is a way
> to make 4K sector size work for Windows guests using PV drivers.  I'd hate
> to have the run the server without using the PV drivers for obvious
> performance issues.
>
> Thanks for any insight anyone may have.
>

--f403045db85eacbff9055cc6e535
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div><div><div>Hi Paul,<br><br></div>I suspect i=
ts probably blkback.. I haven&#39;t passed anything on to the guest to spec=
ify so it would be whichever the default is (the disk line from the config =
reads as &#39;phy:/dev/tv_storage/main-storage,xvda,w&#39;.)<br><br></div>I=
 think I&#39;ve come across the problem though in looking at the values fro=
m xenstore, though I&#39;m not sure as to why this is happening.=C2=A0 Here=
 is the section from xenstore-ls for the relevant LV:<br><br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 51712 =3D &quot;&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 frontend =3D &quot;/local/domain/39/device/vbd/51712&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 params =3D &quot;/dev/tv_storage/main-storag=
e&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 script =3D &quot;/etc/xen/s=
cripts/block&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 frontend-id =3D =
&quot;39&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 online =3D &quot;1&q=
uot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 removable =3D &quot;0&quot;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bootable =3D &quot;1&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 state =3D &quot;2&quot;<br>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 dev =3D &quot;xvda&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 type =3D &quot;phy&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 mode =3D &quot;w&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 device-t=
ype =3D &quot;disk&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 discard-en=
able =3D &quot;1&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 feature-max-=
indirect-segments =3D &quot;256&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 multi-queue-max-queues =3D &quot;12&quot;<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 max-ring-page-order =3D &quot;4&quot;<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 physical-device =3D &quot;fe:0&quot;<br>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 physical-device-path =3D &quot;/dev/dm-0&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 hotplug-status =3D &quot;connected&quot;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 feature-flush-cache =3D &quot;1&quot;<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 feature-discard =3D &quot;0&quot;<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 feature-barrier =3D &quot;1&quot;<br=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 feature-persistent =3D &quot;1&quot;<=
br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sectors =3D &quot;34359738368&quot;=
<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 info =3D &quot;0&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sector-size =3D &quot;4096&quot;<br>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 physical-sector-size =3D &quot;4096&quot;<br=
><br></div>The number of sectors seemed a bit high so I checked it against =
fdisk:<br><div style=3D"margin-left:40px">Disk /dev/tv_storage/main-storage=
: 16 TiB, 17592186044416 bytes, 4294967296 sectors<br>Units: sectors of 1 *=
 4096 =3D 4096 bytes<br>Sector size (logical/physical): 4096 bytes / 4096 b=
ytes<br>I/O size (minimum/optimal): 4096 bytes / 4096 bytes<br>Disklabel ty=
pe: dos<br>Disk identifier: 0x00000000<br><br>Device=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Boot Start=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 End=C2=A0=C2=A0=C2=A0 Sectors Size Id Type<br>/dev/tv=
_storage/main-storage1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 1 4294967295 4294967295=C2=A0 16T ee GPT<br></div><br></div>So it looks=
 like Xen is getting the sector size correct and its actually the number of=
 sectors reported from xenstore that is 8x higher than it should be.<br><br=
></div>Mike<br><div><div><div><br><div><div><div><div class=3D"gmail_extra"=
><br><div class=3D"gmail_quote">On Mon, Oct 30, 2017 at 4:47 AM, Paul Durra=
nt <span dir=3D"ltr">&lt;<a href=3D"mailto:Paul.Durrant@citrix.com" target=
=3D"_blank">Paul.Durrant@citrix.com</a>&gt;</span> wrote:<br><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">







<div lang=3D"EN-GB">
<div class=3D"gmail-m_-8226716255387454753m_7163812319209443410WordSection1=
">
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)">Hi,<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><span>=C2=A0
</span>What backend are you using? <span class=3D"gmail-m_-8226716255387454=
753m_7163812319209443410SpellE">Blkback</span> or QEMU <span class=3D"gmail=
-m_-8226716255387454753m_7163812319209443410SpellE">
qdisk</span>? I believe <span class=3D"gmail-m_-8226716255387454753m_716381=
2319209443410SpellE">blkback</span> may have errors in some of its calculat=
ed sizes if you use a block size other than 512 bytes. In the Windows PV fr=
ontend the driver gets both the sector size and the number of sectors from
<span class=3D"gmail-m_-8226716255387454753m_7163812319209443410SpellE">xen=
store</span>, so if the backend reports them correctly then you *<b><span s=
tyle=3D"font-weight:bold">should</span></b>* see a disk of the correct size=
 in the frontend. Could you check what values are being set in
<span class=3D"gmail-m_-8226716255387454753m_7163812319209443410SpellE">xen=
store</span>?<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><span>=C2=A0
</span>Cheers,<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><span>=C2=A0=C2=A0=C2=A0
</span>Paul<u></u><u></u></span></font></p>
<p class=3D"MsoNormal"><font size=3D"2" face=3D"Calibri" color=3D"#1f497d">=
<span style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></font></p>
<div style=3D"border-width:medium medium medium 1.5pt;border-style:none non=
e none solid;border-color:currentcolor currentcolor currentcolor blue;paddi=
ng:0cm 0cm 0cm 4pt">
<div>
<div style=3D"border-width:1pt medium medium;border-style:solid none none;b=
order-color:rgb(225,225,225) currentcolor currentcolor;padding:3pt 0cm 0cm"=
>
<p class=3D"MsoNormal"><b><font size=3D"2" face=3D"Calibri"><span style=3D"=
font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif;font-weight:bold"=
 lang=3D"EN-US">From:</span></font></b><font size=3D"2" face=3D"Calibri"><s=
pan style=3D"font-size:11pt;font-family:&quot;Calibri&quot;,sans-serif" lan=
g=3D"EN-US">
 win-pv-devel [mailto:<a href=3D"mailto:win-pv-devel-bounces@lists.xenproje=
ct.org" target=3D"_blank">win-pv-devel-bounces@l<wbr>ists.xenproject.org</a=
>] <b><span style=3D"font-weight:bold">On Behalf Of
</span></b>Mike Reardon<br>
<b><span style=3D"font-weight:bold">Sent:</span></b> 29 October 2017 01:52<=
br>
<b><span style=3D"font-weight:bold">To:</span></b> <a href=3D"mailto:xen-us=
ers@lists.xenproject.org" target=3D"_blank">xen-users@lists.xenproject.org<=
/a><wbr>; <a href=3D"mailto:win-pv-devel@lists.xenproject.org" target=3D"_b=
lank">win-pv-devel@lists.xenproject.<wbr>org</a><br>
<b><span style=3D"font-weight:bold">Subject:</span></b> [win-pv-devel] Wind=
ows PV drivers with 4K sector size<u></u><u></u></span></font></p>
</div>
</div><div><div class=3D"gmail-m_-8226716255387454753h5">
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12pt"><u></u>=C2=A0<u></u></span></font></p>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12pt">Hello all,<u></u><u></u=
></span></font></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12pt">I added some new 4Kn dr=
ives to one of my servers but seem to be having some trouble getting a Wind=
ows VM to work with the drives.=C2=A0 Originally
 I had just assigned a new logical volume to the existing guest, but Window=
s reported the disk as being 8x larger than it was, and any attempts to par=
tition it would just throw back IO errors.=C2=A0 Hoping it was just some li=
mitation of seabios, I created a new
 VM using ovmf and the disk detected fine and the install went without issu=
e.=C2=A0 When I then attempted to install the PV drivers however, the syste=
m would no longer boot, and would throw back Inaccessible Boot Device error=
s, so I&#39;m guessing my problem in the
 original guest was the drivers rather than that bios.<u></u><u></u></span>=
</font></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt"><font size=3D"3" face=
=3D"Times New Roman"><span style=3D"font-size:12pt">So I guess what I&#39;m=
 getting it as I&#39;m trying to find out if there is a way to make 4K sect=
or size work for Windows guests using PV drivers.=C2=A0
 I&#39;d hate to have the run the server without using the PV drivers for o=
bvious performance issues.<u></u><u></u></span></font></p>
</div>
<p class=3D"MsoNormal"><font size=3D"3" face=3D"Times New Roman"><span styl=
e=3D"font-size:12pt">Thanks for any insight anyone may have.<u></u><u></u><=
/span></font></p>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div></div></div></div></div></div></div></div>

--f403045db85eacbff9055cc6e535--


--===============7919851402714525328==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============7919851402714525328==--


From win-pv-devel-bounces@lists.xenproject.org Mon Oct 30 18:00:07 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 30 Oct 2017 18:00:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1e9EM0-00012d-P5; Mon, 30 Oct 2017 18:00:04 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=469f563c5=Paul.Durrant@citrix.com>)
 id 1e9ELz-0000rn-7r; Mon, 30 Oct 2017 18:00:03 +0000
Received: from [85.158.143.35] by server-3.bemta-6.messagelabs.com id
 28/83-14867-2A867F95; Mon, 30 Oct 2017 18:00:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBKsWRWlGSWpSXmKPExsWSzvfng+6CjO+
 RBh9va1r8WZxo8W7fX2YHJo/DH66wBDBGsWbmJeVXJLBmzHy9iLng91OWiutH77M2MH68y9LF
 yMkhIRAssX/XXkYQm01AR2Lp0flMILaIgJLEwucLmLsYuTiYBfoZJY5O3gmWEBZwkji65xBUk
 bPE/97PLBC2k8TZw1uZQWwWAVWJ9tkbwWp4Bdwlvr68ATZISOAyo8TFlgawBk6BQImudRPBbE
 YBWYkvjavBmpkFxCVuPYG4QkJAQGLJnvPMELaoxMvH/1ghbAOJrUv3sUDU50pc65zHDLFMUOL
 kzCcsExiFZiEZNQtJ2SwkZbMYOYDimhLrd+lDlChKTOl+yA5ha0i0zpnLjiy+gJF9FaNGcWpR
 WWqRrqG5XlJRZnpGSW5iZo6uoYGZXm5qcXFiempOYlKxXnJ+7iZGYOwwAMEOxtsbAw4xSnIwK
 Yny7nT8HinEl5SfUpmRWJwRX1Sak1p8iFGGg0NJgnduOlBOsCg1PbUiLTMHGMUwaQkOHiURXg
 +QNG9xQWJucWY6ROoUoyvHsU2X/zBxbLh5F0juA5NPrs37y8TxbObrBmYhlrz8vFQpcd5/IM0
 CIM0ZpXlwo2EJ6BKjrJQwLyPQsUI8BalFuZklqPKvGMU5GJWEeV+BTOHJzCuBu+AV0HFMQMdp
 SH4BOa4kESEl1cDoK/IhgdF3Cpticc5v3vufZqTa683x9PS/+4eL1YRv3fa7a7TaXkatcw5k+
 nrhxWQz2drXrBudsi35jQ5ueMtlf+ru77TDza35c96J8kx5OHd63NYLlRM3i7Utv37XfKfdM+
 ZJ2h9vOn8tZ1LZq6b798u3OVxvbKIfxX9wLJ38fNtxRa/YmkZOJZbijERDLeai4kQAZMHhEjs
 DAAA=
X-Env-Sender: prvs=469f563c5=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1509386396!79469675!1
X-Originating-IP: [103.14.252.240]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.45; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 53012 invoked from network); 30 Oct 2017 17:59:59 -0000
Received: from smtp.citrix.com.au (HELO SMTP.CITRIX.COM.AU) (103.14.252.240)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 30 Oct 2017 17:59:59 -0000
X-IronPort-AV: E=Sophos;i="5.44,320,1505779200"; 
 d="scan'208,217";a="106561227"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Mike Reardon' <mule@inso.org>
Thread-Topic: [win-pv-devel] Windows PV drivers with 4K sector size
Thread-Index: AQHTUFAy2xW90z5BkEaWJ+25/sVjB6L8NxowgABfHICAABhy8A==
Date: Mon, 30 Oct 2017 17:59:51 +0000
Message-ID: <80329c44b7e4458f84f90dd6bf76771a@AMSPEX02CL03.citrite.net>
References: <CAHt_QQ=3nwLDL+3aExcAv2KqtF9VLLGAETzfHnb7Aya6enXJ1g@mail.gmail.com>
 <9d059193e82c435fba585ff22fac16bf@AMSPEX02CL03.citrite.net>
 <CAHt_QQkbRUKaxBKAkhFH0+ePdHs7cPh19S9nOCFmakEJFZ0u6g@mail.gmail.com>
In-Reply-To: <CAHt_QQkbRUKaxBKAkhFH0+ePdHs7cPh19S9nOCFmakEJFZ0u6g@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "xen-users@lists.xenproject.org" <xen-users@lists.xenproject.org>
Subject: Re: [win-pv-devel] Windows PV drivers with 4K sector size
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0327018013155109698=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============0327018013155109698==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_80329c44b7e4458f84f90dd6bf76771aAMSPEX02CL03citritenet_"

--_000_80329c44b7e4458f84f90dd6bf76771aAMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

TWlrZSwNCg0KICBZZXMsIGJsa2JhY2sgaXMgZGVmaW5pdGVseSBtaXNsZWFkaW5nIHRoZSBmcm9u
dGVuZC4gRnJvbSBteSByZWFkaW5nIG9mIHRoZSBibGtiYWNrIGNvZGUgdGhvdWdoLCBpdCBhcHBl
YXJzIHRvIGJlIHVzaW5nIHRoZSBnZXRfY2FwYWNpdHkoKSBpbmxpbmUgdG8gZ2V0IHRoZSBudW1i
ZXIgb2Ygc2VjdG9ycyBmcm9tIHRoZSBkaXNrIHNvIEkgc3VzcGVjdCBpdOKAmXMgYWN0dWFsbHkg
Z2V0dGluZyB0aGUgbnVtYmVyIG9mIGxvZ2ljYWwgc2VjdG9ycyBidXQgdGhlbiBzZXR0aW5nIHRo
YXQgaW4geGVuc3RvcmUgYWxvbmcgd2l0aCB0aGUgYWN0dWFsIHBoeXNpY2FsIHNlY3RvciBzaXpl
LCB3aGljaCBpdCBnZXRzIHN0cmFpZ2h0IGZyb20gdGhlIGJsb2NrIGRldmljZS4gVW5mb3J0dW5h
dGVseSBJIHRoaW5rIHRoaXMgaXMgYSBsb25nLXN0YW5kaW5nIGJ1ZywgYnV0IGl04oCZcyB3b3J0
aCByZXBvcnRpbmcgdG8gdGhlIG1haW50YWluZXJzLg0KDQogIENoZWVycywNCg0KICAgIFBhdWwN
Cg0KRnJvbTogTWlrZSBSZWFyZG9uIFttYWlsdG86bXVsZUBpbnNvLm9yZ10NClNlbnQ6IDMwIE9j
dG9iZXIgMjAxNyAxNzoyMw0KVG86IFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5j
b20+DQpDYzogeGVuLXVzZXJzQGxpc3RzLnhlbnByb2plY3Qub3JnOyB3aW4tcHYtZGV2ZWxAbGlz
dHMueGVucHJvamVjdC5vcmcNClN1YmplY3Q6IFJlOiBbd2luLXB2LWRldmVsXSBXaW5kb3dzIFBW
IGRyaXZlcnMgd2l0aCA0SyBzZWN0b3Igc2l6ZQ0KDQpIaSBQYXVsLA0KSSBzdXNwZWN0IGl0cyBw
cm9iYWJseSBibGtiYWNrLi4gSSBoYXZlbid0IHBhc3NlZCBhbnl0aGluZyBvbiB0byB0aGUgZ3Vl
c3QgdG8gc3BlY2lmeSBzbyBpdCB3b3VsZCBiZSB3aGljaGV2ZXIgdGhlIGRlZmF1bHQgaXMgKHRo
ZSBkaXNrIGxpbmUgZnJvbSB0aGUgY29uZmlnIHJlYWRzIGFzICdwaHk6L2Rldi90dl9zdG9yYWdl
L21haW4tc3RvcmFnZSx4dmRhLHcnLikNCkkgdGhpbmsgSSd2ZSBjb21lIGFjcm9zcyB0aGUgcHJv
YmxlbSB0aG91Z2ggaW4gbG9va2luZyBhdCB0aGUgdmFsdWVzIGZyb20geGVuc3RvcmUsIHRob3Vn
aCBJJ20gbm90IHN1cmUgYXMgdG8gd2h5IHRoaXMgaXMgaGFwcGVuaW5nLiAgSGVyZSBpcyB0aGUg
c2VjdGlvbiBmcm9tIHhlbnN0b3JlLWxzIGZvciB0aGUgcmVsZXZhbnQgTFY6DQoNCiAgICAgIDUx
NzEyID0gIiINCiAgICAgICBmcm9udGVuZCA9ICIvbG9jYWwvZG9tYWluLzM5L2RldmljZS92YmQv
NTE3MTIiDQogICAgICAgcGFyYW1zID0gIi9kZXYvdHZfc3RvcmFnZS9tYWluLXN0b3JhZ2UiDQog
ICAgICAgc2NyaXB0ID0gIi9ldGMveGVuL3NjcmlwdHMvYmxvY2siDQogICAgICAgZnJvbnRlbmQt
aWQgPSAiMzkiDQogICAgICAgb25saW5lID0gIjEiDQogICAgICAgcmVtb3ZhYmxlID0gIjAiDQog
ICAgICAgYm9vdGFibGUgPSAiMSINCiAgICAgICBzdGF0ZSA9ICIyIg0KICAgICAgIGRldiA9ICJ4
dmRhIg0KICAgICAgIHR5cGUgPSAicGh5Ig0KICAgICAgIG1vZGUgPSAidyINCiAgICAgICBkZXZp
Y2UtdHlwZSA9ICJkaXNrIg0KICAgICAgIGRpc2NhcmQtZW5hYmxlID0gIjEiDQogICAgICAgZmVh
dHVyZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMgPSAiMjU2Ig0KICAgICAgIG11bHRpLXF1ZXVlLW1h
eC1xdWV1ZXMgPSAiMTIiDQogICAgICAgbWF4LXJpbmctcGFnZS1vcmRlciA9ICI0Ig0KICAgICAg
IHBoeXNpY2FsLWRldmljZSA9ICJmZTowIg0KICAgICAgIHBoeXNpY2FsLWRldmljZS1wYXRoID0g
Ii9kZXYvZG0tMCINCiAgICAgICBob3RwbHVnLXN0YXR1cyA9ICJjb25uZWN0ZWQiDQogICAgICAg
ZmVhdHVyZS1mbHVzaC1jYWNoZSA9ICIxIg0KICAgICAgIGZlYXR1cmUtZGlzY2FyZCA9ICIwIg0K
ICAgICAgIGZlYXR1cmUtYmFycmllciA9ICIxIg0KICAgICAgIGZlYXR1cmUtcGVyc2lzdGVudCA9
ICIxIg0KICAgICAgIHNlY3RvcnMgPSAiMzQzNTk3MzgzNjgiDQogICAgICAgaW5mbyA9ICIwIg0K
ICAgICAgIHNlY3Rvci1zaXplID0gIjQwOTYiDQogICAgICAgcGh5c2ljYWwtc2VjdG9yLXNpemUg
PSAiNDA5NiINClRoZSBudW1iZXIgb2Ygc2VjdG9ycyBzZWVtZWQgYSBiaXQgaGlnaCBzbyBJIGNo
ZWNrZWQgaXQgYWdhaW5zdCBmZGlzazoNCkRpc2sgL2Rldi90dl9zdG9yYWdlL21haW4tc3RvcmFn
ZTogMTYgVGlCLCAxNzU5MjE4NjA0NDQxNiBieXRlcywgNDI5NDk2NzI5NiBzZWN0b3JzDQpVbml0
czogc2VjdG9ycyBvZiAxICogNDA5NiA9IDQwOTYgYnl0ZXMNClNlY3RvciBzaXplIChsb2dpY2Fs
L3BoeXNpY2FsKTogNDA5NiBieXRlcyAvIDQwOTYgYnl0ZXMNCkkvTyBzaXplIChtaW5pbXVtL29w
dGltYWwpOiA0MDk2IGJ5dGVzIC8gNDA5NiBieXRlcw0KRGlza2xhYmVsIHR5cGU6IGRvcw0KRGlz
ayBpZGVudGlmaWVyOiAweDAwMDAwMDAwDQoNCkRldmljZSAgICAgICAgICAgICAgICAgICAgICAg
IEJvb3QgU3RhcnQgICAgICAgIEVuZCAgICBTZWN0b3JzIFNpemUgSWQgVHlwZQ0KL2Rldi90dl9z
dG9yYWdlL21haW4tc3RvcmFnZTEgICAgICAgICAgMSA0Mjk0OTY3Mjk1IDQyOTQ5NjcyOTUgIDE2
VCBlZSBHUFQNCg0KU28gaXQgbG9va3MgbGlrZSBYZW4gaXMgZ2V0dGluZyB0aGUgc2VjdG9yIHNp
emUgY29ycmVjdCBhbmQgaXRzIGFjdHVhbGx5IHRoZSBudW1iZXIgb2Ygc2VjdG9ycyByZXBvcnRl
ZCBmcm9tIHhlbnN0b3JlIHRoYXQgaXMgOHggaGlnaGVyIHRoYW4gaXQgc2hvdWxkIGJlLg0KTWlr
ZQ0KDQoNCk9uIE1vbiwgT2N0IDMwLCAyMDE3IGF0IDQ6NDcgQU0sIFBhdWwgRHVycmFudCA8UGF1
bC5EdXJyYW50QGNpdHJpeC5jb208bWFpbHRvOlBhdWwuRHVycmFudEBjaXRyaXguY29tPj4gd3Jv
dGU6DQpIaSwNCg0KICBXaGF0IGJhY2tlbmQgYXJlIHlvdSB1c2luZz8gQmxrYmFjayBvciBRRU1V
IHFkaXNrPyBJIGJlbGlldmUgYmxrYmFjayBtYXkgaGF2ZSBlcnJvcnMgaW4gc29tZSBvZiBpdHMg
Y2FsY3VsYXRlZCBzaXplcyBpZiB5b3UgdXNlIGEgYmxvY2sgc2l6ZSBvdGhlciB0aGFuIDUxMiBi
eXRlcy4gSW4gdGhlIFdpbmRvd3MgUFYgZnJvbnRlbmQgdGhlIGRyaXZlciBnZXRzIGJvdGggdGhl
IHNlY3RvciBzaXplIGFuZCB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgZnJvbSB4ZW5zdG9yZSwgc28g
aWYgdGhlIGJhY2tlbmQgcmVwb3J0cyB0aGVtIGNvcnJlY3RseSB0aGVuIHlvdSAqc2hvdWxkKiBz
ZWUgYSBkaXNrIG9mIHRoZSBjb3JyZWN0IHNpemUgaW4gdGhlIGZyb250ZW5kLiBDb3VsZCB5b3Ug
Y2hlY2sgd2hhdCB2YWx1ZXMgYXJlIGJlaW5nIHNldCBpbiB4ZW5zdG9yZT8NCg0KICBDaGVlcnMs
DQoNCiAgICBQYXVsDQoNCkZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1kZXZlbC1i
b3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0Bs
aXN0cy54ZW5wcm9qZWN0Lm9yZz5dIE9uIEJlaGFsZiBPZiBNaWtlIFJlYXJkb24NClNlbnQ6IDI5
IE9jdG9iZXIgMjAxNyAwMTo1Mg0KVG86IHhlbi11c2Vyc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZzxt
YWlsdG86eGVuLXVzZXJzQGxpc3RzLnhlbnByb2plY3Qub3JnPjsgd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnPG1haWx0bzp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+
DQpTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBXaW5kb3dzIFBWIGRyaXZlcnMgd2l0aCA0SyBzZWN0
b3Igc2l6ZQ0KDQpIZWxsbyBhbGwsDQpJIGFkZGVkIHNvbWUgbmV3IDRLbiBkcml2ZXMgdG8gb25l
IG9mIG15IHNlcnZlcnMgYnV0IHNlZW0gdG8gYmUgaGF2aW5nIHNvbWUgdHJvdWJsZSBnZXR0aW5n
IGEgV2luZG93cyBWTSB0byB3b3JrIHdpdGggdGhlIGRyaXZlcy4gIE9yaWdpbmFsbHkgSSBoYWQg
anVzdCBhc3NpZ25lZCBhIG5ldyBsb2dpY2FsIHZvbHVtZSB0byB0aGUgZXhpc3RpbmcgZ3Vlc3Qs
IGJ1dCBXaW5kb3dzIHJlcG9ydGVkIHRoZSBkaXNrIGFzIGJlaW5nIDh4IGxhcmdlciB0aGFuIGl0
IHdhcywgYW5kIGFueSBhdHRlbXB0cyB0byBwYXJ0aXRpb24gaXQgd291bGQganVzdCB0aHJvdyBi
YWNrIElPIGVycm9ycy4gIEhvcGluZyBpdCB3YXMganVzdCBzb21lIGxpbWl0YXRpb24gb2Ygc2Vh
YmlvcywgSSBjcmVhdGVkIGEgbmV3IFZNIHVzaW5nIG92bWYgYW5kIHRoZSBkaXNrIGRldGVjdGVk
IGZpbmUgYW5kIHRoZSBpbnN0YWxsIHdlbnQgd2l0aG91dCBpc3N1ZS4gIFdoZW4gSSB0aGVuIGF0
dGVtcHRlZCB0byBpbnN0YWxsIHRoZSBQViBkcml2ZXJzIGhvd2V2ZXIsIHRoZSBzeXN0ZW0gd291
bGQgbm8gbG9uZ2VyIGJvb3QsIGFuZCB3b3VsZCB0aHJvdyBiYWNrIEluYWNjZXNzaWJsZSBCb290
IERldmljZSBlcnJvcnMsIHNvIEknbSBndWVzc2luZyBteSBwcm9ibGVtIGluIHRoZSBvcmlnaW5h
bCBndWVzdCB3YXMgdGhlIGRyaXZlcnMgcmF0aGVyIHRoYW4gdGhhdCBiaW9zLg0KU28gSSBndWVz
cyB3aGF0IEknbSBnZXR0aW5nIGl0IGFzIEknbSB0cnlpbmcgdG8gZmluZCBvdXQgaWYgdGhlcmUg
aXMgYSB3YXkgdG8gbWFrZSA0SyBzZWN0b3Igc2l6ZSB3b3JrIGZvciBXaW5kb3dzIGd1ZXN0cyB1
c2luZyBQViBkcml2ZXJzLiAgSSdkIGhhdGUgdG8gaGF2ZSB0aGUgcnVuIHRoZSBzZXJ2ZXIgd2l0
aG91dCB1c2luZyB0aGUgUFYgZHJpdmVycyBmb3Igb2J2aW91cyBwZXJmb3JtYW5jZSBpc3N1ZXMu
DQpUaGFua3MgZm9yIGFueSBpbnNpZ2h0IGFueW9uZSBtYXkgaGF2ZS4NCg0K

--_000_80329c44b7e4458f84f90dd6bf76771aAMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE1Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE1Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDM1MUE4LkUxQkNEMUMwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjxtOm1hdGhQcj4NCjxtOm1hdGhGb250IG06dmFsPSJDYW1icmlh
IE1hdGgiLz4NCjxtOmJya0JpbiBtOnZhbD0iYmVmb3JlIi8+DQo8bTpicmtCaW5TdWIgbTp2YWw9
IiYjNDU7LSIvPg0KPG06c21hbGxGcmFjIG06dmFsPSJvZmYiLz4NCjxtOmRpc3BEZWYvPg0KPG06
bE1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ck1hcmdpbiBtOnZhbD0iMCIvPg0KPG06ZGVmSmMgbTp2
YWw9ImNlbnRlckdyb3VwIi8+DQo8bTp3cmFwSW5kZW50IG06dmFsPSIxNDQwIi8+DQo8bTppbnRM
aW0gbTp2YWw9InN1YlN1cCIvPg0KPG06bmFyeUxpbSBtOnZhbD0idW5kT3ZyIi8+DQo8L206bWF0
aFByPjwvdzpXb3JkRG9jdW1lbnQ+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjx3OkxhdGVudFN0eWxlcyBEZWZMb2NrZWRTdGF0ZT0iZmFsc2UiIERlZlVuaGlk
ZVdoZW5Vc2VkPSJmYWxzZSIgRGVmU2VtaUhpZGRlbj0iZmFsc2UiIERlZlFGb3JtYXQ9ImZhbHNl
IiBEZWZQcmlvcml0eT0iOTkiIExhdGVudFN0eWxlQ291bnQ9IjM3MSI+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjAiIFFGb3JtYXQ9InRydWUiIE5hbWU9Ik5vcm1h
bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBRRm9ybWF0
PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFG
b3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2Vk
PSJ0cnVlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhp
ZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA2Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDciLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcg
OCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVh
ZGluZyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImluZGV4IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iaW5kZXggMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCAzIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9
InRydWUiIE5hbWU9ImluZGV4IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBT
ZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdo
ZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImluZGV4
IDciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggOCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJpbmRleCA5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idG9jIDEiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0b2MgMiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9InRvYyAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0idG9jIDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iMzkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0b2Mg
NSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9InRvYyA2Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idG9jIDciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2Vk
PSJ0cnVlIiBOYW1lPSJ0b2MgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSIzOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9
InRvYyA5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik5vcm1hbCBJbmRlbnQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0i
dHJ1ZSIgTmFtZT0iZm9vdG5vdGUgdGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJhbm5vdGF0
aW9uIHRleHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0
cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaGVhZGVyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9ImZvb3RlciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCBoZWFkaW5nIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM1IiBTZW1pSGlkZGVuPSJ0
cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iY2FwdGlvbiIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0YWJsZSBvZiBmaWd1cmVzIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9ImVudmVsb3BlIGFkZHJlc3MiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iZW52ZWxvcGUg
cmV0dXJuIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImZvb3Rub3RlIHJlZmVyZW5jZSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJhbm5vdGF0aW9uIHJlZmVyZW5jZSIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJsaW5lIG51bWJlciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlI
aWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJwYWdlIG51bWJlciIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdo
ZW5Vc2VkPSJ0cnVlIiBOYW1lPSJlbmRub3RlIHJlZmVyZW5jZSIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJlbmRub3RlIHRleHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idGFibGUgb2YgYXV0aG9y
aXRpZXMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVl
IiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0ibWFjcm8iLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0idG9hIGhlYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJMaXN0IEJ1bGxldCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IE51bWJl
ciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
TGlzdCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJMaXN0IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBCdWxsZXQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJMaXN0IEJ1bGxldCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxp
c3QgQnVsbGV0IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBCdWxsZXQgNSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJMaXN0IE51bWJlciAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxp
c3QgTnVtYmVyIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBOdW1iZXIgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJMaXN0IE51bWJlciA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjEwIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJUaXRsZSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJDbG9zaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlNpZ25hdHVy
ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iRGVmYXVsdCBQYXJhZ3JhcGgg
Rm9udCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iQm9keSBUZXh0IEluZGVudCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IENvbnRp
bnVlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgQ29udGludWUgMiIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJMaXN0IENvbnRpbnVlIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBD
b250aW51ZSA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgQ29udGludWUgNSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJNZXNzYWdlIEhlYWRlciIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIxMSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3VidGl0bGUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iU2FsdXRhdGlvbiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJE
YXRlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJvZHkgVGV4dCBGaXJzdCBJbmRlbnQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVu
VXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBUZXh0IEZpcnN0IEluZGVudCAyIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRy
dWUiIE5hbWU9Ik5vdGUgSGVhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQg
MiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQgMyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJCb2R5IFRleHQgSW5kZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBUZXh0
IEluZGVudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJsb2NrIFRleHQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0i
dHJ1ZSIgTmFtZT0iSHlwZXJsaW5rIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkZvbGxvd2VkSHlw
ZXJsaW5rIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjIyIiBR
Rm9ybWF0PSJ0cnVlIiBOYW1lPSJTdHJvbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iMjAiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkVtcGhhc2lzIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVz
ZWQ9InRydWUiIE5hbWU9IkRvY3VtZW50IE1hcCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJQbGFp
biBUZXh0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkUtbWFpbCBTaWduYXR1cmUiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iSFRNTCBUb3Agb2YgRm9ybSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJI
VE1MIEJvdHRvbSBvZiBGb3JtIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik5vcm1hbCAoV2ViKSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJIVE1MIEFjcm9ueW0iLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iSFRNTCBBZGRyZXNzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkhUTUwgQ2l0ZSIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJIVE1MIENvZGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iSFRNTCBE
ZWZpbml0aW9uIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkhUTUwgS2V5Ym9hcmQiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iSFRNTCBQcmVmb3JtYXR0ZWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
SFRNTCBTYW1wbGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iSFRNTCBUeXBld3JpdGVyIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9IkhUTUwgVmFyaWFibGUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
Tm9ybWFsIFRhYmxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRl
bj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImFubm90YXRpb24gc3ViamVjdCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJObyBMaXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik91
dGxpbmUgTGlzdCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRl
bj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ik91dGxpbmUgTGlzdCAyIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9Ik91dGxpbmUgTGlzdCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9
IlRhYmxlIFNpbXBsZSAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFNpbXBsZSAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFNpbXBsZSAzIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5h
bWU9IlRhYmxlIENsYXNzaWMgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNl
bWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBDbGFzc2lj
IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ2xhc3NpYyAzIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRy
dWUiIE5hbWU9IlRhYmxlIENsYXNzaWMgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBD
b2xvcmZ1bCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENvbG9yZnVsIDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVu
VXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29sb3JmdWwgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJUYWJsZSBDb2x1bW5zIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29sdW1ucyAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENvbHVtbnMgMyIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVl
IiBOYW1lPSJUYWJsZSBDb2x1bW5zIDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29s
dW1ucyA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdyaWQgMSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJUYWJsZSBHcmlkIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgR3Jp
ZCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdyaWQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVl
IiBOYW1lPSJUYWJsZSBHcmlkIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBT
ZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgR3JpZCA2
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdyaWQgNyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJUYWJsZSBHcmlkIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgTGlzdCAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJUYWJsZSBMaXN0IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgTGlzdCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJU
YWJsZSBMaXN0IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgTGlzdCA3Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVz
ZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgOCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJs
ZSAzRCBlZmZlY3RzIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgM0QgZWZmZWN0cyAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIDNEIGVmZmVjdHMgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJUYWJsZSBDb250ZW1wb3JhcnkiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFi
bGUgRWxlZ2FudCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBQcm9mZXNzaW9uYWwiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgU3VidGxlIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iVGFibGUgU3VidGxlIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgV2ViIDEiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgV2ViIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
VGFibGUgV2ViIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVu
PSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQmFsbG9vbiBUZXh0Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBOYW1lPSJUYWJsZSBHcmlk
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFRoZW1lIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgTmFtZT0iUGxhY2Vob2xkZXIgVGV4dCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxIiBRRm9ybWF0PSJ0
cnVlIiBOYW1lPSJObyBTcGFjaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYwIiBOYW1lPSJMaWdodCBTaGFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBOYW1lPSJMaWdodCBHcmlkIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBOYW1lPSJNZWRpdW0g
U2hhZGluZyAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0
IiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjY1IiBOYW1lPSJNZWRpdW0gTGlzdCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJNZWRpdW0gTGlzdCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3Jp
ZCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBOYW1l
PSJNZWRpdW0gR3JpZCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY5IiBOYW1lPSJNZWRpdW0gR3JpZCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmciLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIE5hbWU9IkNvbG9yZnVs
IExpc3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5h
bWU9IkNvbG9yZnVsIEdyaWQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjAiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9Ikxp
Z2h0IEdyaWQgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjMiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIg
QWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUi
IE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBOYW1lPSJSZXZpc2lvbiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNCIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iTGlz
dCBQYXJhZ3JhcGgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MjkiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlF1b3RlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjMwIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFF1b3Rl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJN
ZWRpdW0gTGlzdCAyIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFj
Y2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBO
YW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRp
bmcgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NzIiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDEiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIE5hbWU9IkxpZ2h0
IFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDIiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIE5hbWU9Ik1lZGl1
bSBTaGFkaW5nIDEgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIE5hbWU9Ik1lZGl1bSBMaXN0IDEg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYi
IE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNjciIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDIiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIE5hbWU9Ik1lZGl1bSBH
cmlkIDIgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjkiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgTmFtZT0iQ29sb3Jm
dWwgU2hhZGluZyBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MiIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2Nl
bnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MCIgTmFt
ZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2MSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgTmFtZT0iTGlnaHQgR3JpZCBBY2Nl
bnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgTmFt
ZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2NCIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBBY2NlbnQgMyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIgTmFtZT0iTWVkaXVt
IExpc3QgMSBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2NiIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQg
MyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgTmFtZT0i
TWVkaXVtIEdyaWQgMiBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI2OSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgTmFtZT0iRGFyayBMaXN0IEFjY2Vu
dCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBOYW1l
PSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcyIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAzIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBOYW1lPSJDb2xvcmZ1bCBH
cmlkIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYwIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBOYW1lPSJMaWdodCBH
cmlkIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjYzIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2Vu
dCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBOYW1l
PSJNZWRpdW0gTGlzdCAxIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3JpZCAx
IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4
IiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCA0Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExp
c3QgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDQi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5hbWU9IkNv
bG9yZnVsIEdyaWQgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjAiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9
IkxpZ2h0IEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjMiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDUiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5n
IDIgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NjUiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIE5hbWU9Ik1lZGl1
bSBHcmlkIDEgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNjgiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIE5hbWU9
IkRhcmsgTGlzdCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgTmFtZT0iQ29sb3JmdWwgTGlzdCBB
Y2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIg
TmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MCIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgTmFtZT0iTGlnaHQgTGlz
dCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
MiIgTmFtZT0iTGlnaHQgR3JpZCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2MyIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgTmFtZT0iTWVkaXVt
IFNoYWRpbmcgMiBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2NSIgTmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2Nl
bnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgTmFt
ZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2OCIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgTmFtZT0iTWVkaXVtIEdyaWQg
MyBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3
MCIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjcxIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA2Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBOYW1lPSJDb2xvcmZ1
bCBMaXN0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjczIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjE5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJTdWJ0bGUg
RW1waGFzaXMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMjEi
IFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgRW1waGFzaXMiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzEiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1YnRs
ZSBSZWZlcmVuY2UiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
MzIiIFFGb3JtYXQ9InRydWUiIE5hbWU9IkludGVuc2UgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMzIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJC
b29rIFRpdGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM3
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQmlibGlvZ3Jh
cGh5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0i
VE9DIEhlYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NDEiIE5hbWU9IlBsYWluIFRhYmxlIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNDIiIE5hbWU9IlBsYWluIFRhYmxlIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDMiIE5hbWU9IlBsYWluIFRhYmxlIDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDQiIE5hbWU9IlBsYWluIFRhYmxl
IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDUiIE5hbWU9
IlBsYWluIFRhYmxlIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNDAiIE5hbWU9IkdyaWQgVGFibGUgTGlnaHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJH
cmlkIFRhYmxlIDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NDkiIE5hbWU9IkdyaWQgVGFibGUgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1IERhcmsiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1
bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0i
R3JpZCBUYWJsZSA3IENvbG9yZnVsIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFibGUg
MiBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0
OCIgTmFtZT0iR3JpZCBUYWJsZSAzIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQgQWNjZW50IDEiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFi
bGUgNSBEYXJrIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9IkdyaWQgVGFibGUg
NyBDb2xvcmZ1bCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI0NiIgTmFtZT0iR3JpZCBUYWJsZSAxIExpZ2h0IEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJHcmlkIFRhYmxlIDIg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgi
IE5hbWU9IkdyaWQgVGFibGUgMyBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFtZT0iR3JpZCBUYWJsZSA0IEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJHcmlkIFRhYmxl
IDUgRGFyayBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI1MSIgTmFtZT0iR3JpZCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJHcmlkIFRhYmxlIDcg
Q29sb3JmdWwgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAyIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBO
YW1lPSJHcmlkIFRhYmxlIDMgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNDkiIE5hbWU9IkdyaWQgVGFibGUgNCBBY2NlbnQgMyIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1
IERhcmsgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNTEiIE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iR3JpZCBUYWJsZSA3IENv
bG9yZnVsIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFibGUgMiBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFt
ZT0iR3JpZCBUYWJsZSAzIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQgQWNjZW50IDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFibGUgNSBE
YXJrIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9IkdyaWQgVGFibGUgNyBDb2xv
cmZ1bCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI0NiIgTmFtZT0iR3JpZCBUYWJsZSAxIExpZ2h0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJHcmlkIFRhYmxlIDIgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9
IkdyaWQgVGFibGUgMyBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI0OSIgTmFtZT0iR3JpZCBUYWJsZSA0IEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJHcmlkIFRhYmxlIDUgRGFy
ayBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1
MSIgTmFtZT0iR3JpZCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJHcmlkIFRhYmxlIDcgQ29sb3Jm
dWwgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAyIEFjY2VudCA2
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJH
cmlkIFRhYmxlIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNDkiIE5hbWU9IkdyaWQgVGFibGUgNCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1IERhcmsg
QWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEi
IE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iR3JpZCBUYWJsZSA3IENvbG9yZnVs
IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2
IiBOYW1lPSJMaXN0IFRhYmxlIDEgTGlnaHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJMaXN0IFRhYmxl
IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9
Ikxpc3QgVGFibGUgNSBEYXJrIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRhYmxlIDYgQ29sb3JmdWwiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1
bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NiIgTmFtZT0i
TGlzdCBUYWJsZSAxIExpZ2h0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIgQWNjZW50IDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUg
MyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0
OSIgTmFtZT0iTGlzdCBUYWJsZSA0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJMaXN0IFRhYmxlIDUgRGFyayBBY2NlbnQgMSIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MSIgTmFtZT0iTGlz
dCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29sb3JmdWwgQWNjZW50IDEi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9Ikxp
c3QgVGFibGUgMSBMaWdodCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iTGlzdCBUYWJsZSAyIEFjY2VudCAyIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJMaXN0IFRhYmxlIDMg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDki
IE5hbWU9Ikxpc3QgVGFibGUgNCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iTGlzdCBUYWJsZSA1IERhcmsgQWNjZW50IDIiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9Ikxpc3Qg
VGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iTGlzdCBUYWJsZSA3IENvbG9yZnVsIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1lPSJMaXN0
IFRhYmxlIDEgTGlnaHQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiBBY2NlbnQgMyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIEFj
Y2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBO
YW1lPSJMaXN0IFRhYmxlIDQgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9Ikxpc3QgVGFibGUgNSBEYXJrIEFjY2VudCAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRh
YmxlIDYgQ29sb3JmdWwgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1bCBBY2NlbnQgMyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NiIgTmFtZT0iTGlzdCBU
YWJsZSAxIExpZ2h0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUgMyBBY2Nl
bnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFt
ZT0iTGlzdCBUYWJsZSA0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJMaXN0IFRhYmxlIDUgRGFyayBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MSIgTmFtZT0iTGlzdCBUYWJs
ZSA2IENvbG9yZnVsIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29sb3JmdWwgQWNjZW50IDQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9Ikxpc3QgVGFi
bGUgMSBMaWdodCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI0NyIgTmFtZT0iTGlzdCBUYWJsZSAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJMaXN0IFRhYmxlIDMgQWNjZW50
IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDkiIE5hbWU9
Ikxpc3QgVGFibGUgNCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI1MCIgTmFtZT0iTGlzdCBUYWJsZSA1IERhcmsgQWNjZW50IDUiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9Ikxpc3QgVGFibGUg
NiBDb2xvcmZ1bCBBY2NlbnQgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI1MiIgTmFtZT0iTGlzdCBUYWJsZSA3IENvbG9yZnVsIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1lPSJMaXN0IFRhYmxl
IDEgTGlnaHQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIEFjY2VudCA2
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJM
aXN0IFRhYmxlIDQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNTAiIE5hbWU9Ikxpc3QgVGFibGUgNSBEYXJrIEFjY2VudCA2Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRhYmxlIDYg
Q29sb3JmdWwgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1bCBBY2NlbnQgNiIvPg0KPC93Okxh
dGVudFN0eWxlcz4NCjwveG1sPjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmlu
aXRpb25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBh
bm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7DQoJbXNvLWZvbnQtY2hhcnNldDoxOw0KCW1zby1n
ZW5lcmljLWZvbnQtZmFtaWx5OnJvbWFuOw0KCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOw0KCW1z
by1mb250LXNpZ25hdHVyZTotNTM2ODcwMTQ1IDExMDczMDU3MjcgMCAwIDQxNSAwO30NCkBmb250
LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAz
IDIgNDsNCgltc28tZm9udC1jaGFyc2V0OjA7DQoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dp
c3M7DQoJbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7DQoJbXNvLWZvbnQtc2lnbmF0dXJlOi01MzY4
NTk5MDUgLTEwNzM3MzI0ODUgOSAwIDUxMSAwO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpw
Lk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21zby1zdHlsZS11bmhp
ZGU6bm87DQoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVzOw0KCW1zby1zdHlsZS1wYXJlbnQ6IiI7DQoJ
bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJbXNvLXBhZ2luYXRpb246d2lk
b3ctb3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBS
b21hbiIsc2VyaWY7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQphOmxpbmss
IHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1w
cmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7DQoJ
dGV4dC11bmRlcmxpbmU6c2luZ2xlO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xs
b3dlZA0KCXttc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJ
Y29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7DQoJdGV4dC11bmRlcmxp
bmU6c2luZ2xlO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDAN
Cgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1zdHlsZS11bmhpZGU6bm87DQoJbXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207DQoJbXNvLXBhZ2luYXRpb246d2lkb3ct
b3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biIsc2VyaWY7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLmdtYWls
LW0tODIyNjcxNjI1NTM4NzQ1NDc1M203MTYzODEyMzE5MjA5NDQzNDEwc3BlbGxlDQoJe21zby1z
dHlsZS1uYW1lOmdtYWlsLW1fLTgyMjY3MTYyNTUzODc0NTQ3NTNtXzcxNjM4MTIzMTkyMDk0NDM0
MTBzcGVsbGU7DQoJbXNvLXN0eWxlLXVuaGlkZTpubzt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXtt
c28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCglt
c28tc3R5bGUtdW5oaWRlOm5vOw0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJp
ZGktZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsN
Cgltc28tYXNjaWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWls
eTpDYWxpYnJpOw0KCW1zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZv
bnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5TcGVs
bEUNCgl7bXNvLXN0eWxlLW5hbWU6IiI7DQoJbXNvLXNwbC1lOnllczt9DQouTXNvQ2hwRGVmYXVs
dA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tZGVmYXVsdC1wcm9wczp5ZXM7
DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJbXNvLWFzY2lpLWZvbnQtZmFt
aWx5OkNhbGlicmk7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFu
c2ktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3
IFJvbWFuIjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQpAcGFnZSBXb3JkU2VjdGlv
bjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0
IDcyLjBwdDsNCgltc28taGVhZGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLWZvb3Rlci1tYXJnaW46
MzYuMHB0Ow0KCW1zby1wYXBlci1zb3VyY2U6MDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6
V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDEwXT48c3R5bGU+Lyog
U3R5bGUgRGVmaW5pdGlvbnMgKi8NCnRhYmxlLk1zb05vcm1hbFRhYmxlDQoJe21zby1zdHlsZS1u
YW1lOiJUYWJsZSBOb3JtYWwiOw0KCW1zby10c3R5bGUtcm93YmFuZC1zaXplOjA7DQoJbXNvLXRz
dHlsZS1jb2xiYW5kLXNpemU6MDsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUt
cHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLXBhcmVudDoiIjsNCgltc28tcGFkZGluZy1hbHQ6MGNt
IDUuNHB0IDBjbSA1LjRwdDsNCgltc28tcGFyYS1tYXJnaW46MGNtOw0KCW1zby1wYXJhLW1hcmdp
bi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1z
aXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tYXNj
aWktZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTsN
Cgltc28tYmlkaS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsNCgltc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUzt9DQo8L3N0eWxlPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48
eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwv
eG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQg
djpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hh
cGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1HQiIg
bGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSIgc3R5bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0K
PGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNv
LWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5
N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPk1pa2UsPG86cD48L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0
OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWJpZGktZm9udC1mYW1pbHk6
JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJy
aSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBS
b21hbiZxdW90Oztjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3Bh
biBzdHlsZT0ibXNvLXNwYWNlcnVuOnllcyI+Jm5ic3A7DQo8L3NwYW4+WWVzLCA8c3BhbiBjbGFz
cz0iU3BlbGxFIj5ibGtiYWNrPC9zcGFuPiBpcyBkZWZpbml0ZWx5IG1pc2xlYWRpbmcgdGhlIGZy
b250ZW5kLiBGcm9tIG15IHJlYWRpbmcgb2YgdGhlDQo8c3BhbiBjbGFzcz0iU3BlbGxFIj5ibGti
YWNrPC9zcGFuPiBjb2RlIHRob3VnaCwgaXQgYXBwZWFycyB0byBiZSB1c2luZyB0aGUgPHNwYW4g
Y2xhc3M9IlNwZWxsRSI+DQpnZXRfY2FwYWNpdHk8L3NwYW4+KCkgaW5saW5lIHRvIGdldCB0aGUg
bnVtYmVyIG9mIHNlY3RvcnMgZnJvbSB0aGUgZGlzayBzbyBJIHN1c3BlY3QgaXTigJlzIGFjdHVh
bGx5IGdldHRpbmcgdGhlIG51bWJlciBvZiBsb2dpY2FsIHNlY3RvcnMgYnV0IHRoZW4gc2V0dGlu
ZyB0aGF0IGluDQo8c3BhbiBjbGFzcz0iU3BlbGxFIj54ZW5zdG9yZTwvc3Bhbj4gYWxvbmcgd2l0
aCB0aGUgYWN0dWFsIHBoeXNpY2FsIHNlY3RvciBzaXplLCB3aGljaCBpdCBnZXRzIHN0cmFpZ2h0
IGZyb20gdGhlIGJsb2NrIGRldmljZS4gVW5mb3J0dW5hdGVseSBJIHRoaW5rIHRoaXMgaXMgYSBs
b25nLXN0YW5kaW5nIGJ1ZywgYnV0IGl04oCZcyB3b3J0aCByZXBvcnRpbmcgdG8gdGhlIG1haW50
YWluZXJzLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIg
Y29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tYmlkaS1m
b250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28t
ZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZu
YnNwOw0KPC9zcGFuPkNoZWVycyw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjttc28tYmlkaS1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7bXNvLWJpZGktZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28tc3Bh
Y2VydW46eWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj5QYXVsPG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9y
PSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWJpZGktZm9udC1m
YW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRp
bmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2Jv
cmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxz
cGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0
OmJvbGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJy
aSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjttc28tZmFyZWFzdC1mb250LWZhbWlseTom
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIE1p
a2UgUmVhcmRvbiBbbWFpbHRvOm11bGVAaW5zby5vcmddIDxicj4NCjxiPjxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDpib2xkIj5TZW50Ojwvc3Bhbj48L2I+IDMwIE9jdG9iZXIgMjAxNyAxNzoyMzxi
cj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Ubzo8L3NwYW4+PC9iPiBQYXVs
IER1cnJhbnQgJmx0O1BhdWwuRHVycmFudEBjaXRyaXguY29tJmd0Ozxicj4NCjxiPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkIj5DYzo8L3NwYW4+PC9iPiB4ZW4tdXNlcnNAbGlzdHMueGVu
cHJvamVjdC5vcmc7IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFJlOiBbd2lu
LXB2LWRldmVsXSBXaW5kb3dzIFBWIGRyaXZlcnMgd2l0aCA0SyBzZWN0b3Igc2l6ZTxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMg
TmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdCI+SGkgUGF1bCw8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBS
b21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkkgc3VzcGVjdCBpdHMgcHJvYmFi
bHkgYmxrYmFjay4uIEkgaGF2ZW4ndCBwYXNzZWQgYW55dGhpbmcgb24gdG8gdGhlIGd1ZXN0IHRv
IHNwZWNpZnkgc28gaXQgd291bGQgYmUgd2hpY2hldmVyIHRoZSBkZWZhdWx0IGlzICh0aGUgZGlz
ayBsaW5lDQogZnJvbSB0aGUgY29uZmlnIHJlYWRzIGFzICdwaHk6L2Rldi90dl9zdG9yYWdlL21h
aW4tc3RvcmFnZSx4dmRhLHcnLik8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxmb250
IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQiPkkgdGhpbmsgSSd2ZSBjb21lIGFjcm9zcyB0aGUgcHJvYmxlbSB0aG91Z2ggaW4gbG9v
a2luZyBhdCB0aGUgdmFsdWVzIGZyb20geGVuc3RvcmUsIHRob3VnaCBJJ20gbm90IHN1cmUgYXMg
dG8gd2h5IHRoaXMgaXMgaGFwcGVuaW5nLiZuYnNwOyBIZXJlDQogaXMgdGhlIHNlY3Rpb24gZnJv
bSB4ZW5zdG9yZS1scyBmb3IgdGhlIHJlbGV2YW50IExWOjxicj4NCjxicj4NCiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyA1MTcxMiA9ICZxdW90OyZxdW90Ozxicj4NCiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmcm9udGVuZCA9ICZxdW90Oy9sb2NhbC9kb21haW4v
MzkvZGV2aWNlL3ZiZC81MTcxMiZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBwYXJhbXMgPSAmcXVvdDsvZGV2L3R2X3N0b3JhZ2UvbWFpbi1zdG9yYWdlJnF1
b3Q7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNjcmlwdCA9ICZx
dW90Oy9ldGMveGVuL3NjcmlwdHMvYmxvY2smcXVvdDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgZnJvbnRlbmQtaWQgPSAmcXVvdDszOSZxdW90Ozxicj4NCiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvbmxpbmUgPSAmcXVvdDsxJnF1b3Q7PGJy
Pg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlbW92YWJsZSA9ICZxdW90
OzAmcXVvdDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYm9vdGFi
bGUgPSAmcXVvdDsxJnF1b3Q7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IHN0YXRlID0gJnF1b3Q7MiZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBkZXYgPSAmcXVvdDt4dmRhJnF1b3Q7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGUgPSAmcXVvdDtwaHkmcXVvdDs8YnI+DQombmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbW9kZSA9ICZxdW90O3cmcXVvdDs8YnI+DQombmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZGV2aWNlLXR5cGUgPSAmcXVvdDtkaXNr
JnF1b3Q7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRpc2NhcmQt
ZW5hYmxlID0gJnF1b3Q7MSZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBmZWF0dXJlLW1heC1pbmRpcmVjdC1zZWdtZW50cyA9ICZxdW90OzI1NiZxdW90Ozxi
cj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtdWx0aS1xdWV1ZS1tYXgt
cXVldWVzID0gJnF1b3Q7MTImcXVvdDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsgbWF4LXJpbmctcGFnZS1vcmRlciA9ICZxdW90OzQmcXVvdDs8YnI+DQombmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcGh5c2ljYWwtZGV2aWNlID0gJnF1b3Q7ZmU6
MCZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBwaHlzaWNh
bC1kZXZpY2UtcGF0aCA9ICZxdW90Oy9kZXYvZG0tMCZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBob3RwbHVnLXN0YXR1cyA9ICZxdW90O2Nvbm5lY3RlZCZx
dW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmZWF0dXJlLWZs
dXNoLWNhY2hlID0gJnF1b3Q7MSZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyBmZWF0dXJlLWRpc2NhcmQgPSAmcXVvdDswJnF1b3Q7PGJyPg0KJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZlYXR1cmUtYmFycmllciA9ICZxdW90OzEmcXVv
dDs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZmVhdHVyZS1wZXJz
aXN0ZW50ID0gJnF1b3Q7MSZxdW90Ozxicj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBzZWN0b3JzID0gJnF1b3Q7MzQzNTk3MzgzNjgmcXVvdDs8YnI+DQombmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaW5mbyA9ICZxdW90OzAmcXVvdDs8YnI+DQombmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc2VjdG9yLXNpemUgPSAmcXVvdDs0MDk2
JnF1b3Q7PGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBoeXNpY2Fs
LXNlY3Rvci1zaXplID0gJnF1b3Q7NDA5NiZxdW90OzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRp
bWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPlRoZSBudW1iZXIg
b2Ygc2VjdG9ycyBzZWVtZWQgYSBiaXQgaGlnaCBzbyBJIGNoZWNrZWQgaXQgYWdhaW5zdCBmZGlz
azo8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
MzAuMHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVz
IE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkRpc2sgL2Rldi90dl9z
dG9yYWdlL21haW4tc3RvcmFnZTogMTYgVGlCLCAxNzU5MjE4NjA0NDQxNiBieXRlcywgNDI5NDk2
NzI5NiBzZWN0b3JzPGJyPg0KVW5pdHM6IHNlY3RvcnMgb2YgMSAqIDQwOTYgPSA0MDk2IGJ5dGVz
PGJyPg0KU2VjdG9yIHNpemUgKGxvZ2ljYWwvcGh5c2ljYWwpOiA0MDk2IGJ5dGVzIC8gNDA5NiBi
eXRlczxicj4NCkkvTyBzaXplIChtaW5pbXVtL29wdGltYWwpOiA0MDk2IGJ5dGVzIC8gNDA5NiBi
eXRlczxicj4NCkRpc2tsYWJlbCB0eXBlOiBkb3M8YnI+DQpEaXNrIGlkZW50aWZpZXI6IDB4MDAw
MDAwMDA8YnI+DQo8YnI+DQpEZXZpY2UmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgQm9vdCBTdGFy
dCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBFbmQmbmJzcDsmbmJz
cDsmbmJzcDsgU2VjdG9ycyBTaXplIElkIFR5cGU8YnI+DQovZGV2L3R2X3N0b3JhZ2UvbWFpbi1z
dG9yYWdlMSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyAxIDQyOTQ5NjcyOTUgNDI5NDk2NzI5NSZuYnNwOyAxNlQgZWUgR1BUPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6
ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBw
dCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5TbyBp
dCBsb29rcyBsaWtlIFhlbiBpcyBnZXR0aW5nIHRoZSBzZWN0b3Igc2l6ZSBjb3JyZWN0IGFuZCBp
dHMgYWN0dWFsbHkgdGhlIG51bWJlciBvZiBzZWN0b3JzIHJlcG9ydGVkIGZyb20geGVuc3RvcmUg
dGhhdCBpcyA4eCBoaWdoZXIgdGhhbg0KIGl0IHNob3VsZCBiZS48bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5NaWtl
PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5PbiBNb24sIE9jdCAzMCwgMjAxNyBhdCA0
OjQ3IEFNLCBQYXVsIER1cnJhbnQgJmx0OzxhIGhyZWY9Im1haWx0bzpQYXVsLkR1cnJhbnRAY2l0
cml4LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPlBhdWwuRHVycmFudEBjaXRyaXguY29tPC9hPiZndDsg
d3JvdGU6PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJi
b3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O21zby1ib3JkZXItbGVm
dC1hbHQ6c29saWQgI0NDQ0NDQyAuNzVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDYuMHB0O21hcmdp
bi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowY20iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxpYnJp
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SGksPC9zcGFuPjwvZm9udD48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMx
ZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PC9mb250PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
Zm9udCBzaXplPSIyIiBjb2xvcj0iIzFmNDk3ZCIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyBXaGF0IGJhY2tlbmQgYXJlIHlvdSB1c2luZz8NCjxz
cGFuIGNsYXNzPSJnbWFpbC1tLTgyMjY3MTYyNTUzODc0NTQ3NTNtNzE2MzgxMjMxOTIwOTQ0MzQx
MHNwZWxsZSI+QmxrYmFjazwvc3Bhbj4gb3IgUUVNVQ0KPHNwYW4gY2xhc3M9ImdtYWlsLW0tODIy
NjcxNjI1NTM4NzQ1NDc1M203MTYzODEyMzE5MjA5NDQzNDEwc3BlbGxlIj5xZGlzazwvc3Bhbj4/
IEkgYmVsaWV2ZQ0KPHNwYW4gY2xhc3M9ImdtYWlsLW0tODIyNjcxNjI1NTM4NzQ1NDc1M203MTYz
ODEyMzE5MjA5NDQzNDEwc3BlbGxlIj5ibGtiYWNrPC9zcGFuPiBtYXkgaGF2ZSBlcnJvcnMgaW4g
c29tZSBvZiBpdHMgY2FsY3VsYXRlZCBzaXplcyBpZiB5b3UgdXNlIGEgYmxvY2sgc2l6ZSBvdGhl
ciB0aGFuIDUxMiBieXRlcy4gSW4gdGhlIFdpbmRvd3MgUFYgZnJvbnRlbmQgdGhlIGRyaXZlciBn
ZXRzIGJvdGggdGhlIHNlY3RvciBzaXplIGFuZCB0aGUgbnVtYmVyIG9mDQogc2VjdG9ycyBmcm9t
IDxzcGFuIGNsYXNzPSJnbWFpbC1tLTgyMjY3MTYyNTUzODc0NTQ3NTNtNzE2MzgxMjMxOTIwOTQ0
MzQxMHNwZWxsZSI+DQp4ZW5zdG9yZTwvc3Bhbj4sIHNvIGlmIHRoZSBiYWNrZW5kIHJlcG9ydHMg
dGhlbSBjb3JyZWN0bHkgdGhlbiB5b3UgKjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xk
Ij5zaG91bGQ8L3NwYW4+PC9iPiogc2VlIGEgZGlzayBvZiB0aGUgY29ycmVjdCBzaXplIGluIHRo
ZSBmcm9udGVuZC4gQ291bGQgeW91IGNoZWNrIHdoYXQgdmFsdWVzIGFyZSBiZWluZyBzZXQgaW4N
CjxzcGFuIGNsYXNzPSJnbWFpbC1tLTgyMjY3MTYyNTUzODc0NTQ3NTNtNzE2MzgxMjMxOTIwOTQ0
MzQxMHNwZWxsZSI+eGVuc3RvcmU8L3NwYW4+Pzwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBm
YWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjwvZm9udD48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6
ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4mbmJzcDsgQ2hlZXJzLDwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwv
Zm9udD48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGZvbnQgc2l6ZT0i
MiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgUGF1bDwvc3Bhbj48L2ZvbnQ+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdk
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjwvZm9udD48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci1sZWZ0OnNvbGlkIHdpbmRvd3RleHQgMS41cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdDti
b3JkZXItY29sb3I6Y3VycmVudGNvbG9yIGN1cnJlbnRjb2xvciBjdXJyZW50Y29sb3IgYmx1ZSI+
DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCB3aW5kb3d0
ZXh0IDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY207Ym9yZGVyLWNvbG9yOmN1cnJlbnRj
b2xvciBjdXJyZW50Y29sb3IiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1vdXRsaW5lLWxl
dmVsOjEiPg0KPGI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gbGFuZz0iRU4t
VVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjttc28tYW5zaS1sYW5ndWFnZTpFTi1VUztmb250LXdlaWdodDpib2xkIj5G
cm9tOjwvc3Bhbj48L2ZvbnQ+PC9iPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFu
IGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7bXNvLWFuc2ktbGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1w
di1kZXZlbCBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0
cy54ZW5wcm9qZWN0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPndpbi1wdi1kZXZlbC1ib3VuY2VzQGxp
c3RzLnhlbnByb2plY3Qub3JnPC9hPl0NCjxiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xk
Ij5PbiBCZWhhbGYgT2YgPC9zcGFuPjwvYj5NaWtlIFJlYXJkb248YnI+DQo8Yj48c3BhbiBzdHls
ZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U2VudDo8L3NwYW4+PC9iPiAyOSBPY3RvYmVyIDIwMTcgMDE6
NTI8YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+VG86PC9zcGFuPjwvYj4g
PGEgaHJlZj0ibWFpbHRvOnhlbi11c2Vyc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZyIgdGFyZ2V0PSJf
YmxhbmsiPg0KeGVuLXVzZXJzQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPjsgPGEgaHJlZj0ibWFp
bHRvOndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPg0K
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPC9hPjxicj4NCjxiPjxzcGFuIHN0eWxl
PSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0Ojwvc3Bhbj48L2I+IFt3aW4tcHYtZGV2ZWxdIFdp
bmRvd3MgUFYgZHJpdmVycyB3aXRoIDRLIHNlY3RvciBzaXplPC9zcGFuPjwvZm9udD48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PGZvbnQgc2l6ZT0iMyIgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPjxmb250IHNpemU9IjMi
IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQiPkhl
bGxvIGFsbCw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbTox
Mi4wcHQiPjxmb250IHNpemU9IjMiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMi4wcHQiPkkgYWRkZWQgc29tZSBuZXcgNEtuIGRyaXZlcyB0byBvbmUgb2Yg
bXkgc2VydmVycyBidXQgc2VlbSB0byBiZSBoYXZpbmcgc29tZSB0cm91YmxlIGdldHRpbmcgYSBX
aW5kb3dzIFZNIHRvIHdvcmsgd2l0aA0KIHRoZSBkcml2ZXMuJm5ic3A7IE9yaWdpbmFsbHkgSSBo
YWQganVzdCBhc3NpZ25lZCBhIG5ldyBsb2dpY2FsIHZvbHVtZSB0byB0aGUgZXhpc3RpbmcgZ3Vl
c3QsIGJ1dCBXaW5kb3dzIHJlcG9ydGVkIHRoZSBkaXNrIGFzIGJlaW5nIDh4IGxhcmdlciB0aGFu
IGl0IHdhcywgYW5kIGFueSBhdHRlbXB0cyB0byBwYXJ0aXRpb24gaXQgd291bGQganVzdCB0aHJv
dyBiYWNrIElPIGVycm9ycy4mbmJzcDsgSG9waW5nIGl0IHdhcyBqdXN0IHNvbWUgbGltaXRhdGlv
biBvZiBzZWFiaW9zLA0KIEkgY3JlYXRlZCBhIG5ldyBWTSB1c2luZyBvdm1mIGFuZCB0aGUgZGlz
ayBkZXRlY3RlZCBmaW5lIGFuZCB0aGUgaW5zdGFsbCB3ZW50IHdpdGhvdXQgaXNzdWUuJm5ic3A7
IFdoZW4gSSB0aGVuIGF0dGVtcHRlZCB0byBpbnN0YWxsIHRoZSBQViBkcml2ZXJzIGhvd2V2ZXIs
IHRoZSBzeXN0ZW0gd291bGQgbm8gbG9uZ2VyIGJvb3QsIGFuZCB3b3VsZCB0aHJvdyBiYWNrIElu
YWNjZXNzaWJsZSBCb290IERldmljZSBlcnJvcnMsIHNvIEknbSBndWVzc2luZyBteQ0KIHByb2Js
ZW0gaW4gdGhlIG9yaWdpbmFsIGd1ZXN0IHdhcyB0aGUgZHJpdmVycyByYXRoZXIgdGhhbiB0aGF0
IGJpb3MuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21hcmdpbi1ib3R0b206MTIu
MHB0Ij48Zm9udCBzaXplPSIzIiBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTIuMHB0Ij5TbyBJIGd1ZXNzIHdoYXQgSSdtIGdldHRpbmcgaXQgYXMgSSdtIHRy
eWluZyB0byBmaW5kIG91dCBpZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIDRLIHNlY3RvciBzaXpl
IHdvcmsgZm9yIFdpbmRvd3MNCiBndWVzdHMgdXNpbmcgUFYgZHJpdmVycy4mbmJzcDsgSSdkIGhh
dGUgdG8gaGF2ZSB0aGUgcnVuIHRoZSBzZXJ2ZXIgd2l0aG91dCB1c2luZyB0aGUgUFYgZHJpdmVy
cyBmb3Igb2J2aW91cyBwZXJmb3JtYW5jZSBpc3N1ZXMuPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Zm9udCBzaXplPSIzIiBmYWNl
PSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij5UaGFua3Mg
Zm9yIGFueSBpbnNpZ2h0IGFueW9uZSBtYXkgaGF2ZS48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9i
bG9ja3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIzIiBm
YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2JvZHk+DQo8L2h0bWw+DQo=

--_000_80329c44b7e4458f84f90dd6bf76771aAMSPEX02CL03citritenet_--


--===============0327018013155109698==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============0327018013155109698==--


